王栿栋
(宁波职业技术学院 机电工程学院,浙江 宁波 315800)
在三维机器视觉中,首要任务是通过视觉传感器(相机、雷达等)来获取外界的真实信息,然后再通过信息处理技术或者投影模型得到物体的空间三维坐标[1]。通过一般意义上的三维重建,得到结果是三维点云信息。这是最原始的三维信息。很多场合还要从这些原始点云信息中提取并识别我们需要那部分三维点云,这是三维机器视觉中目标识别的研究课题。
从数据获取方式区分,三维重建技术分接触式和非接触式两种。前者利用仪器触头直接碰触待测目标,如机械式的三坐标测量仪就是此类三维重建技术。而非接触式通常被分为主动视觉和被动视觉两个类型,以下分别介绍。
主动视觉就是利用特殊的光学仪器向视觉场景中投射特殊的结构光,然后通过检测这些投射光在目标表面的图像,或者计算回收反射信号的时间来进行深度信息获取的三维重建技术。当前常用主动视觉三维重建有以下几种。
1.1.1 结构光法
基于结构光三维重建研究始于上世纪80年代。结构光源把某种特殊的光投射到测量物体表面上,形成了一幅特殊规律的结构光图。通过视觉传感器(相机)获取这些结构光图,然后结合测量算法,计算出对应图像对应点的深度信息。结构光根据不同情况可选用点结构光、线结构光、面结构光等[2]。结构光三维重建简单方便,精度高。但对使用场景有较高要求,不适合在室外场景使用。
1.1.2 激光扫描法
20世纪60年代,一些欧美国家开始对激光扫描技术进行研究。激光扫描法利用激光测距仪发射光束到物体表面,然后接受从物体表面反射回来的信号。它通过计算激光发射和回收之间的时间差,可以直接计算出目标物体表面的深度信息,结合传感器参数便可以计算出目标的三维点云。通过不同角度的连续激光扫描结合配准技术,可以重建出复杂的三维结构。它精度高,但巨量的点云配准会消耗大量时间,同时所需设备复杂昂贵。
1.1.3 TOF法
TOF(Time of flight)法即时间飞行法,它利用光学仪器(如激光雷达)向目标物体发射一定频率的脉冲光,直到接收器回收到返回光停止,然后通过计数脉冲个数并结合光速计算出目标的距离信息。TOF技术原理简单,垂直视场大。但因光速很快,所以对脉冲发生器和接受器都有苛刻的要求。测得的三维点云误差相对较大。
1.1.4 雷达技术法
基于雷达技术三维重建通过发射和接收的光束之间的时间差来计算物体的距离。雷达法的测量视场大,距离远。但受环境影响较大,重建三维数据精度一般。
被动视觉不需要额外的装置往视场发射可见光、电磁波等形式的能量,而是直接利用视觉传感器从客观外界获取相关信息。然后在相关约束条件下,通过信息处理算法计算出目标的三维坐标信息。它要比主动视觉系统更轻巧,成本更低。当前常用被动视觉三维重建有以下几种。
1.2.1 单目立体视觉
单目立体视觉顾名思义就是只需要使用一台相机就可以实现三维重建任务。如果仅凭单个相机获取目标物体图像而言,单个图像本身是没有深度信息的。所以单目相机三维视觉方法需要建立在一定的模型假设之上。如SFS法,光度立体视觉法,纹理法,还有基于单个相机移动的轮廓法。单目相机三维视觉设备简单,应用灵活,成本低。但其三维重建数据精度较差。
1.2.2 双目立体视觉
双目视觉原理来源于人类自身双目视觉系统。两个相机从不同的视角获取同一目标的两个图像。通过极线几何原理可以恢复目标物体的三维坐标信息。但要获得精确的三维坐标信息,高精度的双目匹配技术是其中的难点和研究热点[3]。
1.2.3 多目立体视觉
多目立体视觉就是用多于二个的相机从不同视角获取同一目标的多副图像。是双目立体视觉的延伸。多目视觉通过多角度的图像信息获取,可以减少测量中的视觉盲区,获得更大的视野范围。但多台相机会使得整个系统更复杂。匹配运算量大大增加。
无论是基于主动视觉还是被动视觉的三维重建,有时为了获得更完整的目标表面三维点,还要从不同的视角对同一测量目标进行多次三维重建。然后通过配准把各部分三维点重新拼接成更完整的三维点云数据。
通过上述一般意义上的三维重建,得到结果是三维点云信息。这是最原始的三维信息。很多场合还要从这些原始点云信息中识别、提取我们需要的那部分三维点云,这是三维机器视觉中目标识别的研究课题。它是一个有关模式识别领域的问题。三维目标识别方法目前主要有以下两大类。
基于三维点云的三维视觉识别方法,它是直接以三维点云数据为处理对象。但如今许多成熟的二维视觉识别算法[4]并不能简单地移植到三维视觉来。因为三维点云信息要比二维图像信息多了一个维度,其信息量和复杂度都要大得多,而且各领域已有的三维图像数据也远没二维图像丰富。所以基于三维点云的三维视觉识别方法还有许多待研究的问题,是当前较为热门的研究课题。
康胤祯等[5]采用3D相机获取零件的三维点云,然后对三维点竖直方向坐标值设定一个阀值,分割出零件的凹陷区域。这样的提取目标方便简单,但精确度较低。袁天文[6]利用改进后的ISS3D、SHOT等三维特征提取,并通过与模型库的三维模型匹配[7]的方法,实现了复杂三维场景中的目标识别任务。此方法必须事先准备包含大量精确合适的三维样本的模型库。深度学习本质是一个多隐层的人工神经网络。要是能提供大量的数据进行训练学习,便可以得到一个足够优秀的分类决策神经网络。但必须要设计一个合适的训练模型。同时需要准备大量的3D数据样本提供训练,这在目前很难做到。深度学习对硬件的运算速度要求也很高,所以目前深度学习在三维点云识别中还没有大规模普及。2017年南加州大学的Donghyun等[8]实现了一个基于深度卷积神经网络的3D人脸识别。其实是通过把三维点云转化为伪深度图(像素值表示目标点与相机距离)来进行处理,实质还是一个关于二维图像的深度学习。
该方法主要是根据二维图(包括深度图)的丰富特征并通过各种约束理论来进行三维目标的识别提取。这是一种比较传统的三维目标识别方法,很多二维图像识别算法在此都可以得到应用。该方法数据处理复杂度低,算法效率高。所以现有很多三维识别方法中都直接或间接地使用了基于二维图像的识别方法。一般可分为基于几何模型,基于视图,基于深度图这几类方法。
2.2.1 基于几何模型的方法
这种方法利用被测量三维物体显著的几何特性(如直线轮廓、圆弧轮廓、骨架)投影到二维图像后仍保持明显的可识别特征。Wang Songwei等[9]利用飞机二维图像骨架所反映的目标拓扑结构,建立了不同目标局部结构之间的对应关系。以此实现对空中飞机的识别。张跃强[10]利用对二维图像中直线段几何特征提取与匹配,实现了三维目标识别。于加其[11]通过激光雷达获得地面场景的三维点云,然后在拟合和识别出地面的基础上,让地面的目标(如车辆)向地面方向投影得到二维图。最后从这个二维图像中车辆的长宽线框特征来识别车辆类型。王一江[12]在利用双目视觉对空间网架结构中球节点位移的测量中,利用球体投影到相机的二维图像为圆的几何特征识别球形关节点。由于这个球关节投影到相机呈现的不是完整的圆形,故再对二维图像中的非完整圆形使用深度进行学习来实现对空间球关键的识别。
2.2.2 基于视图的方法
该方法是提取一个或多个来自空间三维目标的二维视图,然后从这些二维视图中提取特征来识别三维目标。方雪等[13]通过对三维目标的各视点二维图像提取基于网格的统计模型特征,不但实现了对三维目标的识别。同时还结合模型库,实现了对三维目标位姿的估计。李长军等[14]针对战场环境中目标识别,提出将目标的三维模型投影到二维平面,并采用余弦傅里叶矩和瑞利分布的CFAR检测方法分别对其矩特征和峰值特征进行提取,利用级联组合分类器对目标识别。肖大鹏[15]将无人车获得的激光点云从三维空间投影到二维空间,通过图像膨胀、轮廓检测等对点云做二值化处理,然后利用HOG和LBP等描述子进行二维特征提取。最后结合支持向量机实现对汽车、行人的识别。
2.2.3 基于深度图的方法
此处的深度图指伪深度图,即每个图像的像素值代表对应空间点到相机的距离。Donghyun等[8]把人脸的三维点云转化为深度图来进行处理,并通过关于二维图像的深度学习来实现人脸识别。所以此种方法也被称为是基于2.5D图像的方法。
上述的三维重建,三维目标识别可以作为单独的工作目标存在。但在此基础上,有时还需要对三维对象进行定量精密的测量。三维精密测量不仅要设法重建三维场景的三维点云,或是将感兴趣的三维目标从三维点云中识别出来,更需要对其尺寸、位置、方向等参数进行精确地测量。三维机器视觉方兴未艾,应用潜力巨大。同时还有诸如实时性、场景适应性、可靠性等问题有待进一步完善和提高。