结构光3D扫描原理总结.docx
《结构光3D扫描原理总结.docx》由会员分享,可在线阅读,更多相关《结构光3D扫描原理总结.docx(8页珍藏版)》请在冰豆网上搜索。
结构光3D扫描原理总结
结构光3D扫描原理总结
可移动式结构光三维扫描技术
常见的可移动式三维扫描技术可以通过空间结构光编码、视频和激光等技术方案实现
结构光编码方法中只有空间编码可以实现可移动式三维扫描,但精度和分辨率不够高;基于视频方式易于实现,约束条件少,但获取的三维信息有限,多适用于建筑物等大型场景,对于小物体细节刻画的效果不够好。
激光三维扫描仪是较理想的解决方案,但高昂的价格制约了其普及的程度。
由于扫描仪视角范围的原因,大部分系统都是只产生了物体某一部分的三维模型。
获得完整模型通常需要旋转物体或者旋转扫描仪,做多次扫描。
得到多个视角的三维模型后,再通过RapidForm等第三方软件实现多视角模型的配准,得到完整的模型。
这样的处理很费时,自动化程度低。
基于时间一空间混合结构光编码方法的可移动式三维模型获取技术。
该技术结合了时间编码在精度上的优势和空间编码在处理动态物体扫描上的优势,给出了亚像素级别的解码算法,并利用三角测距法从不同角度获得物体的三维模型。
研究了多角度模型的ICP配准技术。
该技术将第二部分获得的多角度模型通过ICP配准算法快速自动拼接成完整的模型并进行渲染。
空间结构光编码技术对投影出的结构光做编码,然后采集图像进行解码,结合事先标定好的设备内外参数通过三角测距法获得物体的三维信息。
视频相关技术利用视频中包含的图像序列的特点以及被扫描物体本身的特性获得三维模型,多用于建筑物等场景的三维信息获取。
激光三维扫描技术利用激光发射和反射的时间差来计算物体的深度信息,结果精确,生成模型的速度较快。
存在的问题:
首先,存在技术和成本上的挑战。
空间结构光编码方法精度和分辨率不够高,且要求物体表面结构不能有太多突变,否则会引起严重的遮挡,造成解码错误;基于视频的方法获取的三维信息有限,多适用于建筑物等大型场景,对于小物体细节刻画的效果不够好。
激光扫描仪是目前比较理想的解决方案,速度快精度高,但高昂的价格制约了其普及的程度。
采用时间一空间混合编码,使得每4帧图案构成一个序列,投影图案中每一个点在序列中都有唯一的编码,避免了解码时需要面对的二义性;
采集到包含投影图案的图像后,本文给出了一个亚像素级精度的边界识别方案。
该方案利用照片中一条扫描线内灰度值变化的规律,避免了全局二值化带来的影响,识别精度达到了亚像素级别,其在效率上和精度上的优势保证了后续三维重构的精确性;由于允许被扫描物体在扫描过程中运动,因此对一个系列中图像的识别出的边界进行匹配不再是一个简单的问题。
为了保证系统的效率,本文在边界配准时假设每条边界都和相邻最近的一条边界匹配,给出了一个简单高效的匹配算法;将识别后的数据结合标定好的扫描仪内部参数和外部参数,利用三角测距原理进行三维重构。
在三维重构时对用户感兴趣区域(ROI、点云的深度范围进行设定,同时利用点云的性质进行了简单的去噪,有助于模型的精确配准)。
模型配准方面,采用了扫描点云数据配准方面的经典算法一一最近点迭代算法(ICP),对重建后的物体不同部分的模型进行配准,获得物体完整的三维信息。
根据系统的实际需要对ICP算法做了修改,通过微切面法计算每个点的法向量,在此基础上进行迭代计算。
能在较短时间内配准好不同视角获取的模型。
三维形态获取设备,如FastScan,InSpeck
可移动式三维形态获取技术
1.基于视频的三维重建技术
多用于两个方面,分别是基于视频的建筑物和场景重建和基于视频的运动捕获。
基于视频的三维形态获取方法在对大型场景方面可以满足用户的需要,但对体积较小的物体,尤其是缺乏类似建筑物的明确几何特征的小物体,很难得到令人满意的结果,而在运动形态获取方面的相关研究则对更多关注物体运动的过程而非物体本身。
2.基于激光的三维重建技术
激光三维扫描仪是可移动式三维形态获取方面使用较多的技术方案。
激光三维扫描技术主要采用脉冲测距法进行三维扫描。
扫描仪中包含一个激光二极管和光电二极管接收器。
当扫描开始时,向物体发射近红外波长的激光束。
激光投射到物体表面后发生漫反射,部分反射的激光会被接收器接收到。
扫描中还设置了一个时间测量单元,记录了激光从扫描仪到物体再反射回扫描仪的时间。
根据此时间差,可以计算扫描仪和物体间的距离,据此恢复出物体的三维信息。
由于激光本身具有单色性、高亮度、全天候等的特点,激光三维扫描仪一般可以实现高精度的扫描,并且可以胜任对物体三维信息动态获取任务,而其本身属于非接触式三维扫描,相较于传统的接触式测绘方法对被扫描物体的物理损害较少。
制约激光三维扫描技术普及的主要因素是其高昂的成本。
主流的激光三维扫描仪和配套的建模软件通常售价高达一套数十万人民币,对一般的研究机构和中小公司较难承受。
3.基于结构光编码的三维重建技术
结构光编码主要指对投射到物体表面的图案进行编码,通过对包含结构光编码的照片进行解码和三维重构,获取物体的三维信息。
从大类上结构光编码可以分为时间编码,空间编码和直接编码。
编码时,既可以对图案上的每个点进行编码,也可以只对某个方向(如Y方向)进行编码。
前者在进行三维重构时只需利用线与线相交进行解码,后者则需要利用面线相交进行解码。
其中空间编码和直接编码多采用前者,而时间编码多采用后者。
时间编码一般只能做静态扫描,空间编码可以进行可移动式扫描,直接编码一般只能进行静态扫描,编码和解码的过程较复杂,实际应用较少。
格雷码结合相移码方式是时间编码中的代表技术之一。
可以得到照片中像素点和投影空间点的对应关系,利用三角测距原理对数据进行三维重建恢复,同时对模型中的每一点绘制纹理,获得了精度较高的三维点云数据。
空间编码:
空间编码利用了投影图案中每个点和相部点的关系进行编码,由于在单次获取过程里不依赖其他投影图案,因此可以较好处理动态扫描的问题。
根据空间邻接关系编码可以分为三类:
非形式化编码策略,是设计者根据直觉生成编码;基于DeBruijn序列的编码策略,使用伪随机序列理论;基于M一数组的编码策略,是伪随机序列理论在二维条件下的扩展。
非形式化编码策略将一个整幅的编码分成若干个区域,每个区域包含不同的编码信息,此外不使用任何数学理论和方法。
Dodle等[l2]设计了一种编码序列,采用灰度值分别为。
128,255三种颜色,按一定顺序对像素编码。
所有的条纹以该顺序重复出现。
解码时通过寻找起始点和特定编码组合的位置,进行解码,获得三维信息。
Ito和Ishiill3]的空间编码方案中采用三种颜色对每个点进行编码,编码原则是任一点和上下左右邻接的点的颜色不同,解码时利用邻域内的信息对每一点解码。
由于允许重复编码存在。
当重复编码出现时,需要结合相机和投影仪间的关系来辅助识别。
由于非形式化策略编码一般都没有从理论上提出编码的生成方法,编码的获得很大程度上源于作者的直觉,因此在理论研究上缺乏普遍意义。
DeBruijn编码是一种常见的空间编码方式。
简单来说,DeBruijn序列是一个在由n个符号组成的字母表上生成的满足一定条件的字符串。
由于该字母表的长度一般大于2,因此黑白图案无法满足要求,故多采用彩色编码。
Monk等[14]设计了一种基于水平彩色条纹的编码方式。
一共使用了6种颜色。
在解码阶段,需要面对图片中的色条缺失的问题。
为了正确识别照片中条纹的位置,必须利用相邻条纹的信息。
此方法在识别人脸形态方面取得了不错的结果。
将伪随机序列理论扩展到二维,就能得到M-数组编码策略。
Griffin等给出了一个在长度为4的字母表上生成的M一数组,Hsieh提出了该算法的解析解码过程,完成了整个三维信息获取流程。
和DeBruijn编码类似,字母表的长度使得实现编码时通常需要多种颜色。
时间编码方式编码和解码相对简单,在解码时较容易实现高精度像素点识别,但编码本身的限制使得该类方法无法对物体进行动态三维扫描。
空间领域编码对每个像素进行编码时需要考虑其领域像素点,这种方法适用于动态获取物体表面的三维信息。
但是,这种编码策略的解码过程存在许多难点,比如扫描中一些遮挡关系或者阴影,使得某些点的编码信息不能正确的获得,造成解码错误。
所以空间领域编码策略通常仅限于扫描表面变化平缓的物体。
时间一空间混合编码一方面利用了获取精度较高优点,同时也综合了空间编码中可以获取动态物体形态的长处。
SzymonRusinkiewicz编码方式:
。
该方案通过穷举法给出了一个包含110条黑白条纹的编码方案。
通过对黑白条纹的边界(共111条)在一个4帧图案序列中给出唯一的编码。
基于此解码并进行三维重构,最后通过ICP算法将单帧模型配准起来。
该方案较好的解决了物体三维形态的动态快速获取问题。
点云配准技术:
根据三维重构生成的点云模型通常只能表现物体的个别角度的特征。
要获得完整的物体模型,需要对物体进行不同角度的三维重构,再将得到的模型进行配准。
常见的配准方法有以下三种。
一是标定物体的运动过程。
在进行扫描时采用
转台是此类方法中的典型代表。
在进行扫描前不仅要标定相机和投影仪,还需要
标定转台。
在得到不同角度的模型后,结合标定好的转台数据,将模型进行配准。
主要优点是实现比较简单;主要缺点是增加了标定的工作量,同时配准的精度受
转台本身精度和标定精度的双重影响。
二是设定标志物。
由于标志物是固定的,只要保证在采集到的图片中标志物始终可见,通过不同角度模型间标志物的变换计算整个模型的变换矩阵。
主要优点是比较容易实现,同时得到变换矩阵的速度也较快;主要缺点是物体上标志物覆盖的部分不能被扫描到,同时,某些情况很难在物体表面设置标志物(如文物、器官等)。
三是采用自动配准算法。
自动性高,相关约束条件较少等优点使得该类方法称为点云配准技术中应用最广的方法之一。
。
自动性高,相关约束条件较少等优点使得该类方法称为点云配准技术中应用最广的方法之一。
K.s.Arun等曾经提出一种利用最小二乘法配准两个点云模型的算法。
通过比较奇异值分解法(SVD)、四元数法(Quatemion)和迭代法(fterative)比较求解最小二乘的效率和精度。
实验结果表明,奇异值分解法和四元数法在效率上更优,但迭代法的结果更加精确。
在模型配准的迭代法中,最近点迭代法(IeP,IterativeelosetPoints)是最常用的经典算法之一。
该算法首先给出两个模型间的初始变换,同时选择若干对应样本点,通过迭代不断缩小指定的误差度量计算模型间的变换,在模型间的变换不是很大时,配准的效果和效率都很好。
ICP算法
IcP算法最早由Besl和McKay[l9]提出,现在已经成为三维模型配准方面的最常使用的算法之一。
该算法首先给出两个模型间的初始变换,同时选择若干对应样本点,通过迭代不断缩小指定的误差度量来计算模型间的变换矩阵。
szymonRusinkie初cz和MareLevoy[z0]曾经对IcP方法做过一个详细的分阶段说明和效率分析。
他们认为ICP算法一般可以分解为6个阶段:
1.在待配准的两个模型间选择对应样本点。
可以采用选择所有样本点,随机选择样本点或者均匀选择样本点等方法。
2.将一个模型上的样本点和另一个模型上的样本点做配对。
通过指定的方法配
对最近的一个样本点。
3.对配对后的点对赋权值。
赋权的原则有很多选择,可以根据点对的距离或者
点对间的法向量的关系设置权重,也可以赋常值权重。
4.设置全局标准过滤配准点对。
5.设置点对误差度量。
可以选择点到点的距离,也可以选择点到平面的距离等误差度量。
6.迭代对误差最小化,可以通过最小二乘法等方法实现误差最小化。
采用OlafHall-Holt和SzymonRusinkiewicz提出的时间-空间混合
编码,每4帧为一个编码周期,通过缩短采集图像、处理图像、条纹识别、系统
解码、三维重构以及模型配准的周期来提高模型获取的效率,增强了用户和系统
的交互性,减少了扫描过程中对被扫描物体的约束。
为每个点在不同时刻赋予不同的颜色,例如黑色或者白色,使得在编码的4帧序列里每条条纹的边界上的每个点在任何时刻都有自己唯一的编码。
编码生成的具体方法。
主要是通过将编码和图论联系起来,通过寻找图中的最长路径来生成编码。
生成的编码允许不同帧投影图案之间物体有位移存在的,因此拍摄得到的照片的系统解码成』为三维重构前的重要部分。
系统解码主要包括边界识别(Reeognition)和边界配准(Matehing)以及序列解码(neeoding)部分。
识别主要是从照片中识别所有黑白条纹边界.
匹配主要是将识别后的编码和前一帧的编码里相同位置的编码匹配起来;
解码主要是将经过配准的编码从编码表中的位置识别出来,得到该编码在投影图案中的纵坐标,用于三维重建.
1.边界识别
编码后的图案是黑白条纹,边界识别即选出黑白条纹间的边界。
一种比较直观的做法是先将得到的图片先转为灰度图片,然后设定全局阂值几,对全图进行二值化,灰度值大于阂值的为1,反之取O。
然后寻找黑白条纹的交界处,记录该点的位置,可以取黑色和白色点的中点取得亚像素坐标值。
亚像素级别边界识别
VS+OpenCV+OpenGL+trimesh2库(ICP配准算法)