基于单相机和投影仪的静态物体三维数字化研究
2014-06-27王立梅
李 健, 郭 敬, 王立梅 , 何 斌
(1.陕西科技大学 电气与信息工程学院, 陕西 西安 710021; 2.同济大学 电子与信息工程学院, 上海 200092)
0 引言
传统的建模方法一般是利用建模软件对物体进行建模,而物体的三维尺寸的测量精度直接影响
建模效果,复杂结构物体的三维尺寸的测量工作十分麻烦.因此,从物体的表面直接获取三维信息的研究成为计算机视觉研究中的热点课题.其在文物保护,精密仪器制造,三维人脸识别等领域具有重要的作用.如何快速的对物体进行高精度数字化重建既是研究的重点也是难点.
从物体的表面获取三维信息的方法主要分为两类:一类是利用非接触式三维扫描设备对物体表面扫描从而获得三维信息,这种方法获得的三维信息比较精确,但是三维扫描设备价格昂贵,这种方法不具有普适性.一类是利用一组二维图像或视频实现三维重建[1-3],这种方法可分为基于双目立体视觉的三维重建[4-6],基于光度立体法的三维重建,基于单目视觉的三维重建[7]等.这类方法比较实用,需要的实验设备也容易获取,有较好的三维重建效果.
本文使用单相机和投影仪,利用结构光对静态物体进行三维数字化重建.首先对相机和投影仪进行标定[8,9],利用投影仪对被测物体投射格雷码条纹,使用已标定过的相机采集图像,通过立体匹配和三角化,最后得到三维点云坐标并在Meshlab中显示.
光度立体法[10]对物体进行三维重建时要求只有三色光投射,且没有其他光线的干扰,对周围环境的要求很高.本文提出的方法与光度立体法相比实验环境要求简单,三维表面恢复效果更好.而与传统的双目立体视觉方法相比,本方法进行立体匹配时更加简单高效,对应点的匹配成功率更大,恢复精度更高.
1 系统组成与总体技术流程
1.1 系统组成
标定实验主要用到一个投影仪,一个相机,被测物体和笔记本电脑.如图1所示.
图1 实验系统组成
1.2 总体技术流程
本实验先对相机和投影仪进行标定,将20幅格雷图(10幅水平方向和10幅垂直方向)和20幅格雷反码图分别投影到被测物体上,用相机采集图片,对采集的图片进行有效区域选择和二值化,将采集的图片和投影仪成像平面中的每个像素点编码,利用编码将相机拍摄图片的像素点与投影仪成像平面像素点进行匹配,最后通过三角化原理计算出点的三维坐标.
总体的技术流程如图2所示.
图2 系统流程图
2 关键技术
2.1 相机标定
本文使用张正友的相机标定法[11]实现对相机的标定.
对相机标定时只需要相机从多个不同角度拍摄平面棋盘格图片.设图像中点m的二维坐标为m=(u,v),其在世界坐标系中的三维点M的坐标表示为M=(X,Y,Z),我们令m′表示为m′=[u,v,1]T,M′表示为M′=[X,Y,Z,1]T,相机模型采用针孔模型,则图像中的点坐标m′和其在世界坐标系中的三维坐标M′之间的关系可以表示为:sm′=A[RT]M′,其中A为相机的内参数矩阵,
fc为焦距,cc为主点,alpha_c为x和y像素轴之间的夹角,即片度系数,R为旋转矩阵,T为平移矩阵,s为比例因子.其中m′和M′很容易得到,经过封闭式求解和基于最大似然准则的非线性优化可以求出矩阵A,R,T.
2.2 投影仪标定[12]
本文将投影仪模型看作针孔模型,投影仪的成像过程正好与相机的成像过程相反:相机是将三维世界中的物体通过小孔成像投射到相机的二维成像平面中,而投影仪是将成像平面中的二维图像投射到三维世界中.因此,可以将投影仪看作是一个反相机,可用相机标定方法对投影仪标定.
对投影仪标定的关键是要求投影仪投影到标定板上的棋盘格图像角点的三维坐标M′.角点的二维坐标m′容易求得,求解出M′后,利用张正友相机标定原理完成投影仪的标定.
对棋盘格角点的三维坐标M′求解过程分为以下4步:
(1)计算标定板在相机坐标系中的平面方程
对相机标定之后,可以得到相机的外参
图3 利用外参计算平面方程
ax+by+cz+d=0
(2)检测投影棋盘格角点
图4 投影棋盘格的角点提取
(3)求解从相机发出经过投影棋盘格图案角点的射线方程
图5 经过投影图案角点的射线
设经过二维平面角点(Cx,Cy)的射线向量为(Rx,Ry,Rz),相机的内参Kint,则有:
s为缩放因子.
(4)求解射线与平面的交点确定棋盘格角点的三维坐标
图6 线与面角点求解三维投影点
根据方程:
a(sRx)+b(sRy)+c(sRz)+d=0
可以求解s,从而确定角点的三维坐标M′.
2.3 匹配
在由物体表面直接恢复三维结构方法中,基于结构光编码图案的方法可以快速、准确的恢复物体的三维点云坐标.本文采用结构光编码中的格雷码编码,其编码简单,抗干扰能力强.与二进制码相比,格雷码相邻码的码字只有一位不同,也就是最多有一位误码.
格雷码编码图像含有黑、白两种条纹,0表示黑、1表示白.简单来说,格雷码图案有两种构建方式,分别为黑、白、白、黑或白、黑、黑、白.格雷反码图是将格雷图中的黑色条纹变成白色,白色条纹变成黑色.如图7所示,图中有十行,表示十幅不同的格雷码,每个格雷码可以赋给像素点一位编码,即图中的每一列像素点都有一个十位的编码,最多可以表示210=1 024列像素点.需要格雷图像的个数由要区分的像素个数有关,假如需区分分辨率为n,那么需要log2n幅格雷码编码图.
图7 格雷图
实验用的投影仪分辨率为1 024*768,给投影仪中的每个像素点一个十位编码.将十幅横向格雷图,十幅纵向格雷图,十幅横向格雷反码图和十幅纵向格雷反码图分别投影到被测物体上,给图片中的每个点一个二十位的编码,前十位表示x坐标,后十位表示y坐标.
图8中的第一行图像表示十幅纵向格雷码,第二行图像表示十幅横向格雷码.
将图片中每个点的前十位编码和后十位编码分别与投影仪中点的十位编码比较,从而确定图像中每个点的坐标位置,完成匹配.
图8 格雷图
2.4 三角化[13]
在得到相机与投影仪两幅图像对应的匹配点之后,结合相机标定,根据双目视觉的经典三角测量方法可以得到物体的深度信息,即三维信息.假设任意一空间点P在相机和投影仪的图像平面上的投影点分别为pl,pr并已经利用前面介绍的立体匹配方法检测出来,结合相机与投影仪标定结果得到投影矩阵分别为Ml和Mr,则有:
(1)
将式(1)按行展开得到(2)式:
(2)
用上式中前两个算式除以第三个等式消去λ1并整理得到式(3):
(3)
对有摄像机同理可得式(4):
(4)
将式3和4联立并写成矩阵的形式得式(5):
(5)
求解式5中的方程组便可得到被测物体的三维坐标值,当然求解方法有多,本文采用奇异值分解方法得到空间点P(X,Y,Z)值.
3 实验
3.1 相机与投影仪的标定
实验中标定的系统组成如图9所示:
图9 标定实验硬件组成
实验中用到一台惠普笔记本、Micro vision相机、一台panasoinc PT-ux70投影仪、白色标定板、棋盘格等硬件,用到visual studio、opencv函数库、MATLAB、meshlab等软件.
标定时,用相机拍摄20幅棋盘格平面不同方向的照片.图10中选取了其中的9幅图片.图片中标定板的左边是打印的棋盘格,右边是空白区域,用于投影仪投影棋盘格图案.
相机标定时,将照片输入到张正友标定工具箱中,利用标定板中左侧棋盘格完成相机标定.
图10 标定图片
相机内部参数标定结果如表1所示:
表1 相机内部参数
根据上文提到的方法提取出投影棋盘格角点的三维坐标M′之后,对投影仪投影的二维棋盘格图片提取角点m′,利用张正友相机标定原理实现投影仪的标定.
投影仪内部参数标定结果如表2所示.
表2 投影仪内部参数
相机与投影仪外部参数标定结果如图11所示.
图11 投影仪标定外参
3.2 图像采集
实验平台如图12所示.
图12 三维重建实验系统组成
标定完成后,将图8中展示的格雷码和其对应的格雷反码(格雷码中的黑色部分变为白色,白色部分变为黑色)投影到被测物体上,采集到的图像如图13和图14所示.
图13 格雷码投影图像采集
图14 格雷反码投影图像采集
3.3 三维点云的获取
对采集到的图像进行灰度二值化处理,再用格雷码给图像中的所有像素点编码,根据像素点的编码实现像素点匹配,匹配完成后用经典的三角测量方法恢复物体的深度信息,最后得到物体表面的三维点云坐标.
将实验生成的三维点云坐标在meshlab软件中显示如图15所示.
图15 恢复效果图
从实验恢复出来的图片看,本实验方法可以很好的恢复出来物体的三维点以及深度信息,对于物体表面的三维重建结果比较接近真实情况,误差较小,具有较高的精确度.
4 结论与展望
本文主要介绍了基于单相机和投影仪并利用结构光恢复物体表面三维点云坐标的方法.该方法在对相机和投影仪标定时操作简单,标定结果精确.利用格雷码对图像中的像素点进行编码和匹配,通过三角化得到点的三维点云坐标.
实验结果表明本文提出的方法有很好的重建效果,但是那些阴影部分的点存在丢失问题,我们接下来的工作需要研究如何能更好的检测出被测物体阴影部分点,从而更完善的恢复出物体的三维表面.
[1] 王宇宙.计算机视觉三维重建理论与应用[D].西安:西北大学,2004.
[2] 佟 帅,徐晓刚,易成涛,等.基于视觉的三维重建技术综述[J].计算机应用研究,2011,28(7):2 411-2 417.
[3] 蔡钦涛.基于图像的三维重建技术研究[D].杭州:浙江大学,2004.
[4] 刘晓辉,江开勇.基于格雷码与相移结合的双目立体视觉测量研究[D].泉州:华侨大学,2011.
[5] 杨 明.基于双目立体视觉的三维重建研究[D].武汉:武汉工程大学,2012.
[6] 陈 坤.多视图三维立体重建方法[D].杭州:浙江大学,2013.
[7] C.Tomasi, T.Kanade.Shape and motion from image streams under orthography:A factorization method[J].Computer Vision,1992,9(2):137-154.
[8] 戴小林,钟约先,袁朝龙,等.单摄像机结构光扫描系统中投影仪标定技术Ⅱ[J].机械设计与制造,2008(8):194-196.
[9] 李中伟,史玉升,钟 凯,等.结构光测量技术中的投影仪标定算法[J].光学学报,2009,29(11):3 061-3 065.
[10] 李德仁,王新华,黄培之.基于光度立体的物体三维表面重建[J].测绘学报,1995(3):197-203.
[11] Z.Zhang.A flexible new technique for camera calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11):1 330-1 334.
[12] Gabriel Falcao,Natalia Hurtos,Joan Massich.Phane-based calibration of a projector-camera system[BE/OL].http://code.google.com/p/procamcalib/downloads/detail?name=ProCam_Calib_v2.pdf & can=2 & q=,2014-06-30.
[13] 张成艳.基于双目视觉的织物三维数字化技术研究[D].西安:陕西科技大学,2014.