吕志涛
【摘 要】 成衣交易占据了网购很大的比重,但是成衣网络交易存在很大的弊端—购衣者不可避免的面临合身与不合身的问题,也不可能随意地试衣服,网购的这些弊端极大的抹杀了消费者的网购的意愿。现有的很多试衣软件也只是在二维的基础上模拟人体试衣,但是这些试衣法仅仅能让消费者选择衣服的颜色样式,合身与否就无法得知。本文论述一种采用固定普通的家庭数码相机,并手持激光扫描器扫描并摄制视频,通过近景摄影测量学对人体进行三维模型的构建,生成的深度图像,通过设计出的具有试衣功能的虚拟3D试衣间软件,得到人体实际尺寸,并大致展示出试衣效果,从而满足人们的网络试衣的需求。
【关键词】 家庭数码相机 手持激光扫描 三维模型 深度图像 试衣
1 测量基本原理及开发环境
1.1 结构光三维测量基本原理
结构光三维测量是基于光学三角法测量原理。如图1所示,激光器投射的光束通过一个柱面镜在空间中形成一个激光平面,当与物体的表面相交时便在物体表面产生一亮的光条。如光条弯曲表示曲面有变化,光条的偏移程度与物体表面深度有关,光条不连续表示物体表面有间隙。
在近景摄影测量中共线条件方程式具体的数学关系式如式2.1。
(2.1)
通过对相机的标定及平差处理,内外方位元素都可以计算出来。于是式2.1中的各个参数已知,由此就可以建立起来从相片上的x,y到物点坐标X,Y,Z之间的数学关系式,这个过程在摄影测量学上被称为(单像)空间后方交会。
如图1,点1,3,4,2共面,通过点1,3所在的线和点4,2所在的线的函数式可以求出四个点所在的平面,而点5也在这个平面上,这样点5就又有一个方程,结合上面的共线方程即可解算出点5的空间坐标X,Y,Z。
1.2 系统硬件环境介绍
(1)标定平面的设计。两个辅助平面由两块镶嵌着一系列黑色圆点的标定木板组成,圆点中安装了40个红色灯珠,主要目的是确定相机的内外方位元素。两板之间的夹角为90度。(2)拍摄相机的选取。因为项目目标是为了适应普通家用数码相机,本次选用的是固定在地面的Sony数码相机,制作过程中关闭了自动变焦功能,以解算出正确的外方位元素。
2 直接线性法相机标定
2.1 直接线性变换
直接线性变换从共线条件方程式(详见式2.1)演绎而来。由于非本文叙述重点,在此省略详细的推导过程,对其做进一步推导,可列出一组解系数的线性方程,见式3.1。
(3.1)
本系统所设计的标点共四十个,于是就有80个方程参与解算。由求出至十一个参数的最小二乘解。
由于本系统所用的相机为普通家用数码相机,其光学畸变差通常较大,改正模型如下:
(3.2)
和为像点观测值的改正数,光学畸变差改正为和。本系统索顾及的径向畸变参数为,;偏心畸变参数为,。因此根据间接平差原理求出至以及镜头光学畸变参数、、和。
2.2 外方位元素获取
本系统利用OpenCv逐帧获取图像。在标定视频部分使用otsu算法求取最佳二值化阈值并阈值化,对每个轮廓分别计算平均点坐标即可获得40个点中心的像方坐标。
将检测出来的点进行排序,基本思想为:在y方向按照y坐标排序可以分隔左板和右板的点,在分别按照x方向排序可以分隔各个点,这样计算机就正确识别了点号。
最后使用钢尺测量得到标定点的物方坐标,即可使用直接线性法解算得到外方位元素。
2.3 物点坐标反算获取
在检测扫描线函数关系式的时候,按照x方向按照点灰度求加权得到加权坐标,然后从上至下由x方向遍历这个图像,当检测到图像最大灰度小于一个经验阈值110的时候停止检测,如此按列反复扫描并将这些点进行最小二乘拟合可以得到上下扫描线函数,结合外方位元素可以计算得到这些线的物方坐标函数。将夹在扫面线中间的点中间的点经过灰度加权求像方坐标,而这个像方坐标是满足的共线方程的,结合求出来的两个扫描线函数即可解算出每个点的XYZ,得到物体表面深度数据。
3 OpenGL3D展示平台
3.1 三角网的建立
目前,Deluanay三角网的建立方法比较成熟,但经试验这些建网方法大量耗时,而本次研究提出的建网方法充分发挥了解算中每一帧的点云之间的相关性,从而进行更快的建网,具体如下述。
选取相邻两帧的扫描线并在两条扫描线之间均匀的建网,建立两个指针fron和back分别指向上一帧和下一帧扫描线第一个点。并进行比较,如果back指针的点比fron指针的点x坐标小,则在fron,back,back+1三个点之间建立三角网并储存,并把back指向同一帧的下一个点,如果fron指针点x比back的小反之。当其中一个指针指到了对应一帧的最后一个点,则另一个指针不断的向后移动同时建立三角网并存储。当两个指针都指到了本帧的尽头则fron指针和back指针指向分别对应的下一帧的开头。当扫描完所有的帧数画出网形,建网完毕。
经过实验,使用这种建网方法可以在1秒左右完成20000个点的人体表面三角网建立。
3.2 OpenGL服装绘制
本项目致力于人体表面真实三维点云坐标提建模及其较为准确的数据提取,服装的艺术性以及可欣赏性不是本项目研究的重点。因此,下面的研究将使用比较简单的方法对服装进行绘制展示。
绘制服装将使用OpenGL的NURBS曲面绘制接口进行绘制,对上衣和下衣分别使用16个控制点绘制NURBS曲面来显示衣服,结果如图2。
4 精度评定
4.1 实验结果与结论
作者使用本文述标定点获取方法检测得到的标定点坐标值如表1所示。endprint
而这些点在打点的时候物方坐标已知,这样就可以通过本文论述的方法获得相机外方位元素。
4.2 OpenGL平台展示及其效果评定
作者使用本文论述解算方法进行实验,通过OpenGL接口提供的点的选取功能选出肩膀处及腰部两侧坐标如下:
肩膀: (1.13687 0.457177 2.00333)
(0.732448 0.667097 1.9898 )
S1=0.456m
腰部: (1.14168 0.550894 1.98853)
(0.830256 0.660169 1.97889)
S2=0.330m
实际使用钢尺对人测的距离
S10=0.460m
S20=0.340m
上述数据可以为受测试者选定衣服提供依据,是相对准确的。
4.3 偏差原因
由上述数据分析可以看出,实际测量结果和点云得到的结果有一定差距,偏差原因分析如下:(1)使用钢尺测得不是很准确的直线距离,和点云计算得到的直线距离有一定差距。(2)在点云选取上与实际的测量位置有不一致,也是产生误差的原因之一。(3)本系统的偶然误差和三维外方位元素解算过程中的系统误差。改进方向: (1)制作一个工字型的测量尺来得到腰宽和肩宽的直线距离。(2)改进系统的各个环节,可以加入更加复杂的畸变参数模型。(3)改进激光条带中心提取算法。(4)硬件层面上,可以使用质地更好的标定板,适当降低标定灯亮度以减少光晕对测量的影响。(5)可以使用更好的数码相机来采集视频数据。(6)选取激光线更细的激光器,降低因为线细化过程中引起的误差。
5 总结与展望
5.1 本文总结
本课题完成的主要工作如下:(1)根据本课题的实际需要,成功地研制了一套用于测量物体表面深度图像成像系统,并对其所涉及到的关键技术进行了探讨。(2)针对本系统的具体情况,提出一种基于直接线性变换的标定方法,完成了摄影过程中相机外方位元素的获取。(3)使用OpenGL显示出来了测量得到的深度深度数据,研究并提出一种大量点云的快速三角网建法进行了三角网的建设。并使用OpenGL绘制了衣服提供三维的人体试衣初步效果。
5.2 展望
本课题要求系统具有测量、成像速度快,系统成本低并且能比较快捷的实现人体表面展示,经过实验已经基本实现了这个要求。但仍有需要进一步完善的地方。本课题今后的工作主要有以下几点:(1)改进标定板质量。由于两个辅助标定平面的平整度以及两两直接的垂直性直接关系到标定精度,向专业的加工公司订制标定板以提高质量并实现更加精确的打孔;(2)利用质量比较好的网络摄像头来代替照相机,网络摄像头可以直接连接计算机实现实时的标定和解算,提升实验成果的趣味性和实用性。(3)另外,标定板上安装的LED灯也可以使用更加柔和,光线相对较弱的灯珠,这样可以减少刺眼的LED在正射摄像头时产生的光晕现象,增强标定的精度。 (4)使用光线更细的一字型激光器,减少激光线细化过程中产生的误差,提升人体表面扫描的分辨率。(5)集成所有软件为一个自动化处理的软件,使研究成果具有更好的易用性。(6)使用更为精细的人体表面纹理方法,可以在摄取视频即使拍摄人体表面照片并根据照片进行纹理。
参考文献:
[1]冯文灏.近景摄影测量[M].武汉:武汉大学出版社,2002.
[2]武汉大学测绘学院测量平差学科组.误差理论与测量平差基础[M].武汉:武汉大学出版社,2003.
[3]Edward Angel,段飞(译).OpenGL编程基础[M].北京:清华大学出版社,2008.endprint
而这些点在打点的时候物方坐标已知,这样就可以通过本文论述的方法获得相机外方位元素。
4.2 OpenGL平台展示及其效果评定
作者使用本文论述解算方法进行实验,通过OpenGL接口提供的点的选取功能选出肩膀处及腰部两侧坐标如下:
肩膀: (1.13687 0.457177 2.00333)
(0.732448 0.667097 1.9898 )
S1=0.456m
腰部: (1.14168 0.550894 1.98853)
(0.830256 0.660169 1.97889)
S2=0.330m
实际使用钢尺对人测的距离
S10=0.460m
S20=0.340m
上述数据可以为受测试者选定衣服提供依据,是相对准确的。
4.3 偏差原因
由上述数据分析可以看出,实际测量结果和点云得到的结果有一定差距,偏差原因分析如下:(1)使用钢尺测得不是很准确的直线距离,和点云计算得到的直线距离有一定差距。(2)在点云选取上与实际的测量位置有不一致,也是产生误差的原因之一。(3)本系统的偶然误差和三维外方位元素解算过程中的系统误差。改进方向: (1)制作一个工字型的测量尺来得到腰宽和肩宽的直线距离。(2)改进系统的各个环节,可以加入更加复杂的畸变参数模型。(3)改进激光条带中心提取算法。(4)硬件层面上,可以使用质地更好的标定板,适当降低标定灯亮度以减少光晕对测量的影响。(5)可以使用更好的数码相机来采集视频数据。(6)选取激光线更细的激光器,降低因为线细化过程中引起的误差。
5 总结与展望
5.1 本文总结
本课题完成的主要工作如下:(1)根据本课题的实际需要,成功地研制了一套用于测量物体表面深度图像成像系统,并对其所涉及到的关键技术进行了探讨。(2)针对本系统的具体情况,提出一种基于直接线性变换的标定方法,完成了摄影过程中相机外方位元素的获取。(3)使用OpenGL显示出来了测量得到的深度深度数据,研究并提出一种大量点云的快速三角网建法进行了三角网的建设。并使用OpenGL绘制了衣服提供三维的人体试衣初步效果。
5.2 展望
本课题要求系统具有测量、成像速度快,系统成本低并且能比较快捷的实现人体表面展示,经过实验已经基本实现了这个要求。但仍有需要进一步完善的地方。本课题今后的工作主要有以下几点:(1)改进标定板质量。由于两个辅助标定平面的平整度以及两两直接的垂直性直接关系到标定精度,向专业的加工公司订制标定板以提高质量并实现更加精确的打孔;(2)利用质量比较好的网络摄像头来代替照相机,网络摄像头可以直接连接计算机实现实时的标定和解算,提升实验成果的趣味性和实用性。(3)另外,标定板上安装的LED灯也可以使用更加柔和,光线相对较弱的灯珠,这样可以减少刺眼的LED在正射摄像头时产生的光晕现象,增强标定的精度。 (4)使用光线更细的一字型激光器,减少激光线细化过程中产生的误差,提升人体表面扫描的分辨率。(5)集成所有软件为一个自动化处理的软件,使研究成果具有更好的易用性。(6)使用更为精细的人体表面纹理方法,可以在摄取视频即使拍摄人体表面照片并根据照片进行纹理。
参考文献:
[1]冯文灏.近景摄影测量[M].武汉:武汉大学出版社,2002.
[2]武汉大学测绘学院测量平差学科组.误差理论与测量平差基础[M].武汉:武汉大学出版社,2003.
[3]Edward Angel,段飞(译).OpenGL编程基础[M].北京:清华大学出版社,2008.endprint
而这些点在打点的时候物方坐标已知,这样就可以通过本文论述的方法获得相机外方位元素。
4.2 OpenGL平台展示及其效果评定
作者使用本文论述解算方法进行实验,通过OpenGL接口提供的点的选取功能选出肩膀处及腰部两侧坐标如下:
肩膀: (1.13687 0.457177 2.00333)
(0.732448 0.667097 1.9898 )
S1=0.456m
腰部: (1.14168 0.550894 1.98853)
(0.830256 0.660169 1.97889)
S2=0.330m
实际使用钢尺对人测的距离
S10=0.460m
S20=0.340m
上述数据可以为受测试者选定衣服提供依据,是相对准确的。
4.3 偏差原因
由上述数据分析可以看出,实际测量结果和点云得到的结果有一定差距,偏差原因分析如下:(1)使用钢尺测得不是很准确的直线距离,和点云计算得到的直线距离有一定差距。(2)在点云选取上与实际的测量位置有不一致,也是产生误差的原因之一。(3)本系统的偶然误差和三维外方位元素解算过程中的系统误差。改进方向: (1)制作一个工字型的测量尺来得到腰宽和肩宽的直线距离。(2)改进系统的各个环节,可以加入更加复杂的畸变参数模型。(3)改进激光条带中心提取算法。(4)硬件层面上,可以使用质地更好的标定板,适当降低标定灯亮度以减少光晕对测量的影响。(5)可以使用更好的数码相机来采集视频数据。(6)选取激光线更细的激光器,降低因为线细化过程中引起的误差。
5 总结与展望
5.1 本文总结
本课题完成的主要工作如下:(1)根据本课题的实际需要,成功地研制了一套用于测量物体表面深度图像成像系统,并对其所涉及到的关键技术进行了探讨。(2)针对本系统的具体情况,提出一种基于直接线性变换的标定方法,完成了摄影过程中相机外方位元素的获取。(3)使用OpenGL显示出来了测量得到的深度深度数据,研究并提出一种大量点云的快速三角网建法进行了三角网的建设。并使用OpenGL绘制了衣服提供三维的人体试衣初步效果。
5.2 展望
本课题要求系统具有测量、成像速度快,系统成本低并且能比较快捷的实现人体表面展示,经过实验已经基本实现了这个要求。但仍有需要进一步完善的地方。本课题今后的工作主要有以下几点:(1)改进标定板质量。由于两个辅助标定平面的平整度以及两两直接的垂直性直接关系到标定精度,向专业的加工公司订制标定板以提高质量并实现更加精确的打孔;(2)利用质量比较好的网络摄像头来代替照相机,网络摄像头可以直接连接计算机实现实时的标定和解算,提升实验成果的趣味性和实用性。(3)另外,标定板上安装的LED灯也可以使用更加柔和,光线相对较弱的灯珠,这样可以减少刺眼的LED在正射摄像头时产生的光晕现象,增强标定的精度。 (4)使用光线更细的一字型激光器,减少激光线细化过程中产生的误差,提升人体表面扫描的分辨率。(5)集成所有软件为一个自动化处理的软件,使研究成果具有更好的易用性。(6)使用更为精细的人体表面纹理方法,可以在摄取视频即使拍摄人体表面照片并根据照片进行纹理。
参考文献:
[1]冯文灏.近景摄影测量[M].武汉:武汉大学出版社,2002.
[2]武汉大学测绘学院测量平差学科组.误差理论与测量平差基础[M].武汉:武汉大学出版社,2003.
[3]Edward Angel,段飞(译).OpenGL编程基础[M].北京:清华大学出版社,2008.endprint