三、单目三维空间测量与定位要解决的问题
1、 求解原理和过程
如前文所述,单目三维空间测量与定位,是依据PnP原理来求解的。理论上讲,如果可以获取一个三维刚体上不共面的任意6个点在摄像机二维成像平面的投影位置,是可以唯一反解出来这个刚体在三维空间的唯一6DoF参数的。如果少于6个点,解就不一定唯一了。但在实践中,由于刚体往往存在一些约束条件,因此,大多数情况下,如果能提取获得刚体上4个不共面点的二维投影,一般就可以反解出刚体的6DoF。其求解的前提条件为:
求解过程如下:
在结算过程中,会遇到的关键技术环节和问题包括:环境噪声点去除,光斑中心像素提取,二维和三维点匹配,6DoF计算迭代优化,以及多传感器融合问题。
2、 环境噪声点去除问题
在计算机视觉、图像处理领域,最常见的一个问题,也往往是一个非常头疼的问题就是环境噪声。所有图像处理的问题,都会面临:光照是否足够,太阳光、日光灯、白炽灯、卤素灯(展会往往会有)等各种灯的红外分量、可见光分量的干扰和影响。解决环境噪声的手段包括:1)使用主动光源,这样可以有效的减少白天、黑夜所带来的影响,一般使用的主动光源时,会使用红外光源;2)使用滤波片,特别是窄带滤波片。在使用主动光源时,往往会配合使用滤波片,将不需要的光学成分去除,最常见的,例如第一代Kinect中,其发光为波长828nm的红外光,因此,其使用了828±15nm的窄带滤波片。这是抗干扰手段中性价比最高的方法。3)使用主动调制光源。如果前面两种措施还不能有效抑制干扰(最常见的情况是在室外或者室内使用,但有阳光射入),这就可能要使用带调制信息的主动光源了,CMOS Sensor在接收到光线信号后,算法可以将阳光等不带调制信息的光线信号给滤除。虽然,使用调制光源可以进一步抑制干扰,但其往往也有副作用,例如增大处理器运算工作量,降低帧率。
3、 光斑中心像素提取精度问题
利用计算机视觉的定位中,影响定位精度的其中一个最重要的因素就是光斑中心的提取精度。在实际应用中,即便不考虑外界光线的影响,仅仅CMOS Sensor本身,也会对光斑成像带来各种噪声,包括:读出噪声、暗电流噪声、固定模式噪声等。理想情况下,光学系统能将光斑的平行光束投影到CMOS Sensor的一个或几个像素点上,使其分布呈现中心某个或某几个像素有均匀光线,而其余像素无光线的情况。但实际上,由于光学系统的成像误差、衍射、以及CMOS Sensor噪声的存在,使得成像结果往往会呈现以某个像素为中心的光强正态分布情况。为提高光斑中心像素提取精度,硬件上的做法是通过提高摄像机的分辨率来实现更高精度的图像提取,但这样也会相应的增加硬件成本。而且,随着分辨率的增加,运算量也成几何倍数的增长,这也会带来处理器的性能增长需求,这将极大的增加整体成本。另外,在算法层面,采用一些传统的灰度质心提取算法,其一般做法是通过对图像二值化预处理然后使用连通域提取,对光斑的质心进行求解,这在目标距离摄像机较近,光斑亮度比较均匀的情况下,传统方法提取的质心精度效果比较好,然而实际情况中,光斑的亮度分布往往不是非常均匀,尤其在距离较远的情况下,亮度的均匀性和大小都将快速衰减,使得质心质心精确性大幅下降。其中改进的方法包括对连通域范围先进行致密上采样 随后对上采样范围的像素亮度进行加权求解质心,这种方法在效果上可以达到较高的亚亚像素精度,然而牺牲了较多的运算效率。但如果我们对算法进行一些改进,是可以将提取精度提高到亚亚像素级的。欢创科技在这一点上进行了比较深入的研究,从光斑成像的角度入手,对光斑亮度的衰减过程进行分析,从而总结出了一种预处理方式,使得质心提取精度在维持亚亚像素精度的情况下,不牺牲任何运算效率。
4、 二维和点匹配问题
对于单目的姿态求解, PnP原理是求解的基础,然而PnP求解的前提是空间中的3D坐标和相机投影的2D像素间的对应关系已知,在匹配未知的情况下,求解PnP 问题变得比较复杂,在计算机视觉领域,这个问题又叫做即时姿态和匹配求解问题(Simultaneous Pose and Correspondence Problem),针对这个问题比较常见的算法有softPOSIT,BlindPnP等,这些方法都采用的迭代求解的思想,将姿态求解和匹配归结为优化问题,交替求解当前最优姿态以及最优匹配,相对于softPOSIT,BlindPnP加入一些先验姿态信息,并且将高斯混合模型应用于3D-2D匹配, 在某些案例中可以达到较精确的效果,然而这些方法的通病就是无法确保结果是全局最优的,由于求解的空间复杂,因此有不收敛或收敛到局部最优的可能,导致求解失败。因此一些基于Branch-and-Bound以及Bundle Adjustment全局求解的思想框架逐渐运用到了这个问题上来,并且获得了不错的结果。总的说来,3D-2D的匹配和姿态求解密不可分,匹配算法的鲁棒性和效率直接决定了姿态求解的性能,也是所有基于视觉的空间定位系统至关重要的环节。
5、 相机运动情况下与IMU传感器融合的问题
早在惯性测量单元(IMU)还未大规模普及的时代,SLAM 系统往往只依靠相机捕获的图像信息进行空间定位,由于图像信息中的角点或Marker点是可以直接约束相机的姿态和位置的, 因此纯视觉输入可以保证SLAM系统在小范围空间内的跟踪结果不存在漂移。然而纯视觉定位的局限在于其帧率往往不是很高,而且图像运算复杂,使得姿态求解不具有较高的动态性能。 而反过来,惯性测量单元具有极好的瞬时动态性,可以很好的弥补视觉系统的不足。因此,视基于觉和惯性单元融合的空间定位系统Vision-Inertial Navigation System(VINS) 便成为当前流行的SLAM系统最佳方案,在VR领域,这也是inside-out 定位系统的基础。VINS的核心是利用卡尔曼滤波器对惯性单元的输入进行预积分,将积分结果用于预测当前姿态下所有角点或Marker点在相机中的投影位置,接着通过相机捕获到的角点或marker点坐标对预测姿态进行修正更新,整个预测和更新过程交替进行。当前市面流行的IMU输出帧率可以达到1000帧,因此VINS可以以很高的帧率对当前姿态进行预测,同时以相对较低的图像频率对姿态进行更新修正,这样可以同时保证定位系统的瞬时响应速度和长时间使用的准确性。
以上就是为大家带来的单目空间定位的一些技术介绍,在后续,本专栏还会结合一些实际应用和产品再介绍和空间定位、测量相关的技术。