李日亮, 徐 晓
(华南理工大学 物理与光电学院,广东 广州 510640)
在机器视觉领域中,双目三维重建方法多数采用提取图像特征点进行特征匹配[1,2],通过匹配点来计算出其对应的空间三维坐标[3,4],而特征匹配的方法涉及到的都是二维图像。由于双目视差[5,6]的存在,双目图像并不相同,只是相似,对应点邻域的图像是有差异的。这种差异引起对应点匹配不准,或者找错匹配点而产生误匹配,从而使计算出的三维坐标不准确或者计算出不存在的点[7,8]。大量的实验和理论表明,只要从不同的方位采集图像,在三维物体光照情况固定,并且光照条件足够体现出物体形貌信息的情况下,是可以避免上面的误匹配问题的[9~12]。
但在真实工况下,被摄物体保持稳定姿态和光照稳定的时间都是有限的;同时考虑到成本,也不会用多相机和硬件复杂的数据处理系统。项目组要设计一个双目三维重建系统,相机由平移台控制,可相对物体运动,并要求在尽量短的时间内,使相机相对物体移动尽量短的距离和少的次数采集新图像,并补充更多的新的目标物三维信息。考虑到相机移动以寻求不同拍摄角度时[12,13],两相机间相对关系若不固定,也会为结果计算和系统标定带来复杂性,并会降低检测复原的精度[14~16],所以,相机移动是沿精确的已知轨道。在一定精度条件下,是工程可实现的。命名该方法为抖动法[17],仿真实验验证了本文算法的有效性。
抖动法三维复原系统示意图如图1。系统有2个相机,通过移动平台控制使两相机位置发生变动[18]。
图1 抖动法三维复原系统
为验证抖动法,仿真仅移动相机1~2次。通过仿真发现,如果相机沿基线运动,不能获得太多的验证信息。而项目组分析发现,极几何条件要求特征点匹配时,左右图像β要一样,移动方向要显著改变双目成像极几何条件中的β取法,才能对最先的三维复原点有明显的检验效果。
为了运动的典型性和坐标易算性,作为典型条件,让两相机分别沿着垂直L1R1方向移动。同时,鉴于旋转并不能改变明显改变β取法,也不引入相机旋转。
图2 算法仿真模型
类似左相机,右相机有R1-R2系统。其中,∠PR1R2为αR1,∠PR2N为αR2(αR1>0,αR2>0),R1R2垂直于L1R1。R1,R2处相机图像的匹配与左相机处理方式相同。
为计算直角坐标,抖动法三维重建模型有3个直角坐标系统。图3(a)为这三个直角坐标系统。L1-R1系统中,以L1为原点,L1R1为x轴,L1M为y轴。L1-L2系统中,以L2相机光心为原点,L2L1为x轴,L2Q为y轴。R1-R2系统中,以R1相机的光心为原点,R1R2方向为x轴,R1L1方向为y轴。三个坐标系统都以垂直于基准极平面向上为z轴。
图3 坐标转换
设空间一点P在L1-R1系统的坐标为(xp,yp,zp),在L1-L2系统的坐标为(xL,yL,zL),在R1-R2系统的坐标为(xR,yR,zR);转换关系如下
(1)
如图3(b),在L1-L2系统中,面PML2与面HML2的夹角为,∠PL1M=αL1,∠PL2M=αL2;P点坐标是(xL,yL,zL);世界坐标转换成角度坐标如下
(2)
式中αL1,αL2的范围为(0°,180°)。
本文的实验步骤如下:
1)图像L1,R1坐标转换,匹配,计算匹配特征点对的三维欧氏坐标(xp,yp,zp)[19];
2)将三维复原的空间域坐标转换成L1-L2系统的角度坐标,用图像L1,L2的角度坐标匹配点检查L1,R1转换而来的角度坐标是否存在误匹配点,如果有,则淘汰;
3)将剩余点复原到L1-R1系统空间域,再把空间域坐标转换成R1-R2系统的角度坐标;
4)用图像R1,R2的角度坐标匹配点检查图像L1,R1转换而来的角度坐标是否存在误匹配点,如果有,则淘汰;
5)用剩余点进行三维重建。
由图像L1,R1三维复原特征点的欧氏坐标(xp,yp,zp),先转成L1-L2系统的欧氏坐标(xL,yL,zL),再通过式(2),转换成了L1-L2系统的角度坐标,记为(αL1P,αL2P,βLP)。L1,L2图像直接匹配,得到匹配点的角度坐标为(αL1,αL2,βL);以{(αL1,αL2,βL)}特征点集合为标准,来检查{(αL1P,αL2P,βLP)}集合中是否有误匹配点。
如图4所示,表明了取某个βL时,且βLP≈βL时,两类特征点的相互关系。其中,点表示集合{(αL1,αL2,βL)}中的点,圆圈表示{(αL1P,αL2P,βLP)}集合中的点。
图4 两集合内点的关系
观察图4,{(αL1P,αL2P,βLP)}集合中的点,可以分为三类:a.离{(αL1,αL2,βL)}中某个点较近;b.离{(αL1,αL2,βL)}所有点较远,但其横坐标离某个点近;c.横纵坐标都远离{(αL1,αL2,βL)}的点。
a类点的划分标准,是其距{(αL1,αL2,βL)}离中最近点的距离小于事先给定的阈值,这类点会被保留;b类点的划分标准,是其横坐标与{(αL1,αL2,βL)}中的某个点横坐标的差的绝对值小于某个给定阈值,但其纵坐标与对应点的纵坐标的差距大于某个阈值,这类点会被抛弃;c类点就是除a,b类以外的点,其如何取舍,取决于这个点在L1和L2图上对应位置的灰度值和灰度值沿αL方向一阶导相互之间的差距,如果差距大于某个值,则此点被抛弃,否则,被保留。
图像L1,R1经淘汰后留下来的点,可用作三维复原。
图5 实验组合圆柱
淘汰条件的设置如下:
1)判断待淘汰点αL1轴0.02°范围内有没有参考点,如果有,继续判断待淘汰点αL2轴0.02°范围内有没有参考点,如果有,则保留该点;
2)判断待淘汰点的αL1轴0.01°范围内有没有参考点,如果有,继续判断该参考点沿αL2轴方向与该待淘汰点差值绝对值是不是大于0.02°,如果是,则淘汰该点;
3)判断待淘汰点的αL1轴0.02°范围内有没有参考点,如果没有,判断待淘汰点的αL2轴0.02°范围内有没有参考点,如果没有,则继续判断该点在L1和L2图上的灰度值差值绝对值是否小于30,灰度值一阶导差值绝对值是否小于10。如果同时满足两个条件则留下该点。如图4所示。
把组合圆柱体还原在L1-R1系统欧氏坐标中,将三维重建结果以“*”的形式打到同一张图上。将组合圆柱体和淘汰后三维复原结果画在另一张图上,如图6所示。同一行β,匹配错误一个点导致的深度方向误差[6]为3.4 mm。取圆柱面附近一个像素点距离内为正确匹配点,由于本次实验2个圆柱距离很近,故而取圆柱顶面和底面高度各加减3 mm内:离圆心距离在(r(半径)+3)mm以内为正确匹配点;圆柱底面高度加3 mm到顶面高度减3 mm范围内:距离圆柱圆心的距离在[r-3:r+2.25]mm范围内为正确匹配点。统计数据如表1所示。
表1 a,b,c组圆柱过滤前后正确匹配点
a组圆柱严格匹配三维重建结果如图6。
图6 a组圆柱三维重建结果
将淘汰前正确率设为x,淘汰后正确率设为y,它们之间关系如图7(a)所示,小方块表示a组圆柱数据,*号表示b组圆柱数据,小圆圈表示c组圆柱数据。正确率提高量(y-x)/x×100 %与x的关系如图7(b)所示。
图7 正确率统计
实验二的目的,将一个对读者有印象的形状较复杂的对象作为目标物,来直观上检查方法的有效性。本实验采用3D仿真软件Cinema 4D模拟相机拍摄艺术家头像雕塑,放置L1,L2,R1,R2共4个相机在4个不同的位置模拟拍照,得到4张1 628×1 236的图像。L1(到L2),R1(到R2)的移动距离为20 mm。其他实验参数设置与实验一相同[19]。
图像L1,R1三维重建结果如图8(c)所示。淘汰条件设置与实验一相同。
图8 原始图像与过滤前后的三维重建结果
由图8可以看出,淘汰后人侧脸有明显改善。
实验一表明:三维重建点云经过淘汰后正确点的比例会提高,证明了实验方法显著淘汰错误点同时又保留足够多的正确点。而且,原始匹配的误匹配率越高,经过抖动过滤的改善情况越明显。实验二直观地表明,在明显改变β取值方向的情况下,左右相机抖动前后的匹配结果能够减小传统三维重建的不确定度,改善三维重建的结果。
仿真实验验证了抖动算法筛选特征点的有效性。改善率和正确率的函变关系的确定,为未来抖动法三维重建的运动步长以及运动次数提供参照,为抖动法的工程设计和实现,打下了基础。