李锦慧 吴烽云 邹湘军 司徒伟明 陈明猷
关键词: 图像预处理; 三维点云; 双目视觉; 半全局立体匹配; 点云配准; 复杂形状目标
中图分类号: TN911?34; TP391 文献标识码: A 文章编号: 1004?373X(2019)04?0112?05
Complete target point cloud acquisition method based on binocular vision
LI Jinhui1, WU Fengyun2, ZOU Xiangjun1, SITU Weiming1, CHEN Mingyou1
(1. School of Engineering, South China Agricultural University, Guangzhou 510642, China;
2. Guangzhou Institute of Energy Conversion, Chinese Academy of Sciences, Guangzhou 510642, China)
Abstract: The key technology and difficulty lie in the current intelligent detection and robot recognition and positioning are quick acquisition of the complete 3D point cloud of the complex shape target, and reconstruction of the 3D model of the target. Therefore, a method of image preprocessing and optimization of semi?global stereo matching process is proposed based on the stereoscopic vision. In the method, the image preprocessing algorithm is designed, which is cooperatively used with the semi?global stereo matching and point cloud registration algorithm, so as to obtain the complete 3D point clouds of complex shaped targets. A hardware experimental platform and a rotating worktable are set up to obtain the left and right image pairs of the target under multiple angles. A point cloud acquisition system based on the binocular vision is developed on this platform. The system was tested taking the complex shaped gear as the experimental object. The test results show that the object generated by using this method has a good 3D point cloud effect, the method can provide methodology and theories for 3D reconstruction of the target, and has a strong practicability, and the system has a fast operation speed and feasible algorithm processing process.
Keywords: image preprocessing; 3D point cloud; binocular vision; semi?global stereo matching; point cloud registration; complex shaped target
三维点云是用来描述物体三维信息数据点的集合。其在目标识别、三维重构、地理信息系统(GIS)构建、医疗辅助、古文物修复等各领域都有广泛应用[1?5]。如何快速获取复杂形状目标的完整三维点云,重构目标的三维模型是目前在线智能检测和智能机器人识别与定位的关键技术和难点。获取三维点云的方式主要可分为两类[6]: 通过一些机械接触来进行获取的接触式测量(例如:三坐标测量机测量);不需要通过机械接触来获取的非接触式测量(例如:基于机器视觉技术的测量[7?11])。其中三维扫描是获取三维点云的有效手段,现国内使用的高精度扫描仪多依赖于进口,例如激光扫描,精度高的同时成本也很高。工厂中基于视觉的扫描多采用对物体表面进行喷涂或进行特定光照射的工作模式。基于此,本文提出一种基于双目视觉获取复杂形状目标三维点云的方法,通过算法对双目视觉系统采集的物体图像进行处理,然后使用立体匹配算法计算视差,并将视差与重投影矩阵运算得到目标单一视角下的三维点云。同时,由于双目视觉检测范围有限,为了节省视觉硬件成本,设计了旋转平台使待检测目标旋转一定的角度,对待配准点云进行特征描述与对应关系估计后,使用迭代最近点算法得到目标的完整点云。这种方法为获取复杂目标物体的完整三维点云提供了一种低成本、高效率的有效途径。
本方法获取目标物体的三维点云要经过如图1所示的处理过程,具体步骤如下:
1) 对双目相机采集的左右图像分别进行预处理,将目标物体从图像中分割出来;
2) 自动截取目标所在的矩形区域,并对其进行立体匹配得到被测物体视差;
3) 将处理后的视差与双目标定得到的重投影矩阵进行运算,得到物体某一角度下的三维点云;
4) 通过对不同角度下经步骤1)~步骤3)得到的点云进行配准获得目标物体完整的三维点云。
1.1 图像预处理
图像分割是机器视觉图像处理中的一个基本问题,是图像预处理的方法之一,目的是把感兴趣的目标区域从图像背景中提取出来[12]。本文使用最大类间方差法(OTSU)对左右图像的灰度图进行阈值分割二值化处理,然后分别与原灰度图像进行叠加,得到目标图像。运算过程如下:
[Rx,y=Bx,y+Ix,y] (1)
式中:I表示原图像灰度图;B表示I经OTSU阈值分割后的图像;R表示目标图像;[Bx,y],[Ix,y],[Rx,y]分别表示各图像任意点[x,y]的灰度值。
图像灰度值取值范围为0~255,而在式(1)中,[Rx,y]的运算值可能存在大于255的情况,因此需要对[Rx,y]做进一步处理,如下:
[Rx,y=255 , Rx,y≥255Rx,y , Rx,y<255] (2)
预处理后的目标图像R变成了原灰度图像的目标区域,背景为纯白色的图像,目标物体被分割出来。分割效果如图2所示。
由于图像的大小是影响立体匹配消耗时间的主要因素。本文获取的图像大小为1 600×1 200,直接进行立体匹配将耗时过长。为了提高效率,在不影响目标区域的立体匹配结果的前提下,本文设计算法对图像进行匹配前处理:在左右目标图像中分别自动截取包含目标物体的矩形区域图像以减少匹配的计算量。具体过程如下:对经图像预处理后的左右图像R使用最小矩形自动包围目标物体的算法,用Rect_L(Xl,Yl,Wl,Hl)表示左图像最小矩形框,用Rect_R(Xr,Yr,Wr,Hr)表示右图像最小矩形框。其中X,Y表示矩形框左上角在图像中的横、纵坐标,W和H表示矩形框的寬度和高度。
立体匹配时,待配准图像(右图像)的有效匹配区域从第numDisparites列开始,所以待匹配图像目标物体左侧需空出numDisparites列。用Rect_ROI(Xroi,Yroi,Wroi, Hroi)表示算法自动截取的区域,各变量的数值计算如下:
[Xroi=Xr-numDisparites] (3)
[Yroi=Yl] (4)
[Wroi=Xl+Wl-Xroi] (5)
[Hroi=Hl] (6)
自动截取下来的左右图像背景区域都是纯白色,此时若直接进行立体匹配会产生较大误匹配,且大部分是背景与背景的误匹配(纯白背景无纹理特征)以及背景与目标物体的误匹配,后续得到的三维点云也会存在许多噪点。因此需要对截取的左右图像进行算法处理:将其中一张图像背景灰度值为255的像素点全赋值为0(背景由白变黑),以此减小背景之间的误匹配。通过实验发现仅改变右图像背景得到较少的误匹配,得到的图像如图3所示。
1.2 立体匹配及视差处理
本文使用OpenCV库中的半全局块匹配(Semi?global block matching,SGBM)算法对经过预处理的左右图像进行立体匹配得到视差。经SGBM立体匹配后的视差图如图4a)所示,图中灰度越大(颜色越白),表示视差值越大,该点距离相机越近,从图中可以看到因左右相机视角不同导致边缘处产生误匹配,使目标物体部分边缘出现灰度突变严重的情况。
因为生成的视差是以左图像为基础获得的,为消除边缘处部分误匹配,以左图像为基础修改视差矩阵,修改视差值:
[Dx,y=0 , Lx,y=255Dx,y , Lx,y≠255] (7)
式中:[Lx,y]表示左图像任意点[x,y]的灰度值;[Dx,y]表示视差矩阵任意点[x,y]的视差值。从图4b)中可以发现处理后得到的视差图灰度突变的情况减少了,为后续生成低噪点三维点云打下很好的基础。
1.3 单一角度下目标三维点云获取
三维点云中各点的坐标是通过将立体匹配得到的视差与双目标定得到的重投影矩阵进行运算所得。本文所采用的重投影矩阵[13]为:
[Q=100-cx010-cy000f00-1Tx0] (8)
式中:cx表示主点在左图像中的x坐标;cy表示主点在左图像中的y坐标;f表示立体标定后计算得到的焦距;Tx表示两相机的基线距离。给定一个二维齐次点(x,y)和其关联的视差d,可以将该点投影到三维中,如下:
[Qxyd1=XYZW] (9)
该点的三维坐标为([XW,YW,ZW])。
本文通过自动截取图像得到的视差矩阵,不能直接用来计算三维坐标。因此要先将视差矩阵还原到与原图像一样大小的矩阵的对应位置上再进行运算方可得到图像所有点的三维坐标。
本文对各角度下采集到的图像分别进行单一角度下的三维点云获取,设计不对背景进行预处理和视差做后处理的对比试验,生成的点云图效果对比如图5所示。因为篇幅有限,同一角度下任意选取2组效果图作为对比,由此可得出结论:直接对原图进行立体匹配,不对视差进行处理,得到的点云有很多噪点,如图5a)所示;而使用本文方法得到的三维点云噪点较少,目标物体表面的点云分布均匀,无明显的点云缺失,质量较高,如图5b)所示。说明该方法得到的点云可使用性较高。
1.4 目标完整三维点云获取
为了得到目标完整的三维点云,需要对不同角度获取的点云进行配准,本文采用的是算法过程简单并且配准精度较高的迭代最近点算法(Iterative Closest Point,ICP)[14]。ICP算法完成配准的流程如下:
1) 读取模型点云X和目标点P,点集中点的个数分别为NX,NP;
2) 在模型点云X中寻找与目标点云P中每一点pi最近的对应点xi,并组成新的点集[X],其中[X∈X];
3) 分别计算模型点云子集[X]、目标点云P的重心μP,μX,两点云的协方差矩阵[CovXP];
4) 由点集[X],P的协方差矩阵[CovXP]构造4×4的对称矩阵[Q(CovXP)];
5) 计算矩阵[Q(CovXP)]的特征向量,其中最大特征值所对应的特征向量即为用单位四元数表示的最优旋转向量[qR],进而计算最优平移向量[qT];
6) 将流程5)中的刚体变换矩阵[qR],[qT]作用于目标点云[X]得到变换后的新点云集和[Xk],计算新位置的目标点云[Xk]与模型点云[P]的平均欧氏距离平方和[dk];
7) 若目标点云[Xk]与模型点云[P]的差异[dk]的变化小于给定阈值[τ],即[dk]<[τ],终止迭代,否则返回流程2),直至满足[dk]<[τ]。
在对点云进行ICP两两配准之前最重要的是提取点云关键点和对关键点进行特征描述,然后在两片点云中寻找相似特征,确定重叠部分并估计对应点对。本文对待配准点云使用PCL提供的有关点特征直方图(PFH)描述子的算法[15]进行点云特征描述与提取,使用kd?tree最近邻搜索法进行对应估计。
本文对特征描述与对应估计得到的点集对使用ICP方法计算两个点集之间的旋转平移来对原点云进行拼接,将拼接好的点云作为新的点云,与下一片点云使用同样的方法进行拼接,最后获得目标物体完整的三维点云。完成ICP配准后获取的物体完整三维点云经点云下采样后的效果如图6所示。
本文搭建的实验平台如图7所示。该平台主要包括两个高分辨率的CCD工业相机(分辨率:1 600×1 200,镜头焦距为8 mm)、台式电脑(嵌入以Visual Studio 2013为编程环境的软件系统)、供图像采集的目标物体、承载目标的可旋转转台、背景挡板。本文设计的算法被开发成完整的软件系统,构建了人机交互界面将算法封装,系统界面如图8所示。
本文以有复杂形状的机械零件齿轮为例,通过旋转转台采集目标物面对相机0°~360°以30°为角度间隔的12对图像对,通过本文算法处理获得的点云效果良好,具有实用性。随着角度的增多,获取点云时间将增加,因此可根据实际中对时间和点云质量的不同要求采集多角度图像对。
三维点云的获取在各领域都有比较深刻的意义:以工业生产中视觉机器人抓取工件为例,工件的三维点云数据为获得工件准确的三维位置以及姿态,并指导机器人抓取工件提供依据;该技术在智能检测和逆向工程中也是重点和难点。本文从搭建平台到可实现算法的研究,实验证明本文方法能够较快获取复杂形状目标的完整三维点云,为三维定位、姿态估计以及三维重构的研究打下良好基础。本文自主搭建的实验平台可采集的图像范围有限,暂时只适用于小目标作为对象的情况,但目标形状复杂,有一定代表性和拓展性,可参考其原理扩大搭建平台或在生产线上使用。如何对获取的三维点云进行进一步有效处理是下一步研究工作的重点。
注:本文通讯作者为邹湘军。
参考文献
[1] 汪汉云.高分辨率三维点云目标識别技术研究[D].长沙:国防科技大学,2015.
WANG Hanyun. Research on object detection for high resolution 3D point cloud [D]. Changsha: National University of Defense Technology, 2015.
[2] MAI C Y, ZHENG L H, LI M Z. Rapid 3D reconstruction of fruit tree based on point cloud registration [J]. Transactions of the Chinese Society of Agricultural Engineering, 2015, 31(S2): 137?144.
[3] HOSSEINYALAMDARY S, BALAZADEGAN Y, TOTH C K. Tracking 3D moving objects based on GPS/IMU navigation solution, laser scanner point cloud and GIS data [J]. International journal of geo?information, 2015, 4(3): 1301?1316.
[4] 贾高杰,邱崧,蔡茗名,等.三维点云重构和体显示在医学辅助诊断中的应用[J].中国医学物理学杂志,2016,33(6):593?598.
JIA Gaojie, QIU Song, CAI Mingming, et al. Application of three?dimensional point cloud reconstruction and swept volume display in medical assistant diagnosis [J]. Chinese journal of medical physics, 2016, 33(6): 593?598.
[5] 李文怡,张蜓,杨洁.三维扫描及快速成型技术在文物修复中的应用[J].文博,2012(6):78?81.
LI Wenyi, ZHANG Ting, YANG Jie. Application of three?dimensional scanning and rapid prototyping in the restoration of cultural relics [J]. Relics and museology, 2012(6): 78?81.
[6] 周勇飞,徐昱琳,吕晓梦,等.基于双目的三维点云数据的获取与预处理[J].计算机技术与发展,2014,24(3):22?25.
ZHOU Yongfei, XU Yulin, L? Xiaomeng, et al. Three?dimensional point cloud data acquisition and pre?processing based on binocular [J]. Computer technology and development, 2014, 24(3): 22?25.
[7] KUMAR A N, PHEIFFER T S, SIMPSON A L, et al. Phantom?based comparison of the accuracy of point clouds extracted from stereo cameras and laser range scanner [J]. Proceedings of the SPIE, 2013, 8671(2): 25?37.
[8] ZOU X J, ZOU H X, LU J. Virtual manipulator?based binocular stereo vision positioning system and errors modeling [J]. Machine vision and applications, 2012, 23(1): 43?63.
[9] LUO L, TANG Y, ZOU X, et al. Vision?based extraction of spatial information in grape clusters for harvesting robots [J]. Biosystems engineering, 2016, 151: 90?104.
[10] 叶敏,邹湘军,罗陆锋,等.荔枝采摘机器人双目视觉的动态定位误差分析[J].农业工程学报,2016,32(5):50?56.
YE Min, ZOU Xiangjun, LUO Lufeng, et al. Error analysis of dynamic localization tests based on binocular stereo vision on litchi harvesting manipulator [J]. Transactions of the Chinese Society of Agricultural Engineering, 2016, 32(5): 50?56.
[11] WANG C, ZOU X, TANG Y, et al. Localisation of litchi in an unstructured environment using binocular stereo vision [J]. Biosystems engineering, 2016, 145: 39?51.
[12] 李洪艳,曹建荣,谈文婷,等.图像分割技术综述[J].山东建筑大学学报,2010,25(1):85?89.
LI Hongyan, CAO Jianrong, TAN Wenting, et al. Review of image segmentation technology [J]. Journal of Shandong Jianzhu University, 2010, 25(1): 85?89.
[13] 布拉德斯基,克勒.学习OpenCV[M].于仕琪,刘瑞祯,译.北京:清华大学出版社,2009.
BRADSKI G, KAEHLER A. Learning OpenCV [M]. YU Shiqi, LIU Ruizhen, translation. Beijing: Tsinghua University Press, 2009.
[14] 王欣,张明明,于晓,等.应用改进迭代最近点方法的点云数据配准[J].光学精密工程,2012,20(9):2068?2077.
WANG Xin, ZHANG Mingming, YU Xiao, et al. Point cloud registration based on improved iterative closet point method [J]. Optics and precision engineering, 2012, 20(9): 2068?2077.
[15] RUSU R B, BLODOW N, MARTON Z C, et al. Aligning point cloud views using persistent feature histograms [C]// Proceedings of International Conference on Intelligent Robots and Systems. Nice: IEEE, 2008: 3384?3391.