一种基于移动终端的3D扫描系统
技术领域
本发明涉及3D扫描技术领域,尤其涉及一种基于移动终端的3D扫描系统。
背景技术
目前,市面上的扫描系统都是基于专业扫描仪来进行扫描,专业扫描仪由于对扫描精度有一定的要求,因此一般选用较高端的工业定焦镜头和高成本的激光器,而且专业扫描仪需要CPU性能强大的PC配合来计算,因此成本相对来说较高。
发明内容
本发明实施例的目的在于提供基于移动终端的3D扫描系统,以解决现有的现有扫描系统成本高的问题。
为了解决上述问题,本发明实施例提供了一种基于移动终端的3D扫描系统,所述系统包括扫描仪和移动终端,所述扫描仪包括用于发射激光的激光器,以及用于承载扫描物体并旋转的转台;
所述移动终端包括用于采集扫描物体图像的摄像头,以及用于控制激光器及转台启闭,对摄像头采集的扫描物体图像处理并生成3D点云的处理单元。
进一步地,所述处理单元包括:
扫描启闭模块,用于启闭激光器及转台;
标定模块,用于标定摄像头的内部参数、转台坐标系与摄像头坐标系的位置关系,以及激光平面在摄像头坐标系下的平面方程;
闭环检测模块,用于通过扫描启闭模块开启激光,若完成一圈扫描,记录光条图像的帧数n;
模型扫描模块,用于提取所述光条图像的2D图像坐标,并根据所述标定模块将所述2D图像坐标转换成转台坐标系下的3D图像坐标,并生成3D点云。
进一步地,所述标定模块包括:
摄像头内参标定模块,用于获取并标定摄像头的内部参数,包括焦距、中心坐标及畸变参数;
转台标定模块,用于获取并标定转台坐标系和摄像头坐标系的外部参数,包括旋转参数及平移参数;
激光平面标定模块,用于获取并标定激光平面在摄像头坐标系下的平面参数,包括激光平面的法向量和摄像头坐标系原点到激光平面的距离。
进一步地,所述闭环检测模块包括:
光条图像获取模块,用于记录激光的光条图像,并提取所述光条图像的第一帧图像,经过预设时间或预设帧数后,计算当前帧图像的匹配系数,并判断当前帧图像的匹配系数是否大于匹配系数阈值,是则将所述当前帧图像的匹配系数加入匹配集中;
图像匹配模块,用于在所述匹配集中筛选最大匹配系数,若所述最大匹配系数连续N次处于极大值时匹配成功,完成一圈扫描,并记录光条图像的帧数n。
进一步地,所述模型扫描模块包括:
去畸变模块,用于提取所述光条图像的2D图像坐标,对所述2D图像坐标进行归一化及去畸变处理;
交点求解模块,用于求解摄像头射线与激光平面的交点;
坐标转换模块,用于利用所述旋转参数及平移参数将所述交点进行旋转和平移变化,转化为转台坐标系下的3D图像坐标,生成3D点云。
进一步地,所述处理单元还包括:
纹理提取模块,用于通过扫描启闭模块关闭激光,进入第二圈扫描,获取颜色图像,根据所述2D图像坐标提取颜色图像中对应坐标的颜色,根据所述2D图像坐标的排列,生成对应的2D纹理图。
进一步地,所述纹理提取模块包括:
颜色序列写入模块一,用于获取光条图像第i帧图像的坐标序列,按y坐标从小到大排列,根据所述光条图像第i帧图像的坐标序列提取颜色图像第i帧图像的颜色序列,将所述颜色序列写入到2D纹理的第i列,其中,1≤i≤n;
纹理生成模块一,用于判断i是否等于n,若否则执行i++,并返回执行颜色序列写入模块一;若是则完成2D纹理图的生成。
进一步地,所述纹理提取模块包括:
扫描调整模块,用于计算激光平面与摄像头中心平面之间的图像帧数之差M,判断转台是否从激光平面转向摄像头中心平面,若是则第二圈扫描结束时,将前M帧颜色图像插入到颜色图像的队尾;若否则第二圈扫描结束时,将最后M帧颜色图像插入到颜色图像的队首;
颜色序列写入模块二,用于获取光条图像第i帧图像的坐标序列,按y坐标从小到大排列,根据所述光条图像第i帧图像的坐标序列提取颜色图像第i帧图像的颜色序列,将所述颜色序列写入到2D纹理的第i列,其中,1≤i≤n;
纹理生成模块二,用于判断i是否等于n,若否则执行i++,并返回执行颜色序列写入模块二;若是则完成2D纹理图的生成。
进一步地,所述处理单元还包括:
3D模型生成模块,用于对所述3D点云三角化,并将所述3D点云的顶点与所述2D纹理图一一映射,生成3D模型。
进一步地,所述扫描系统还包括OTG设备,用于连接移动终端与扫描仪,通过移动终端为扫描仪供电。
本发明的3D扫描系统包括扫描仪和移动终端,所述扫描仪包括用于发射激光的激光器,以及用于承载扫描物体并旋转的转台;所述移动终端包括用于采集扫描物体图像的摄像头,以及用于控制激光器及转台启闭,对摄像头采集的扫描物体图像处理并生成3D点云的处理单元。与现有技术相比,本发明利用手机的摄像头及处理单元分别作为图像获取即图像处理的平台,实现3D扫描功能,极大地降低了3D扫描的成本,提高了便携性。
附图说明
图1为本发明实施例提供的基于移动终端的3D扫描系统示意图。
图2为本发明实施例提供的处理单元的结构框图一。
图3为本发明实施例提供的闭环检测模块的结构框图。
图4为本发明实施例提供的模型扫描模块的结构框图。
图5为本发明实施例提供的处理单元的结构框图二。
图6为本发明实施例提供的纹理提取模块的结构框图一。
图7为本发明实施例提供的纹理提取示意图。
图8为本发明实施例提供的纹理提取模块的结构框图二。
图9为本发明实施例提供的基于移动终端的3D扫描系统坐标示意图。
图10为本发明实施例提供的基于移动终端的3D扫描系统示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用来限定本发明。
图1示出了本发明实施例提供的基于移动终端的3D扫描系统示意图,详述如下:
一种基于移动终端的3D扫描系统,所述系统包括扫描仪1和移动终端2,所述扫描仪1包括用于发射激光的激光器11,以及用于承载扫描物体并旋转的转台12;
所述移动终端2包括用于采集扫描物体图像的摄像头21,以及用于控制激光器及转台启闭,对摄像头采集的扫描物体图像处理并生成3D点云的处理单元22。
在本发明实施例中,通过移动终端自带的摄像头采集扫描扫描物体的图像信息,扫描仪包括激光器及转台,转台部分采用了直流电机而非步进电机,移动终端和扫描仪通过OTG设备连接,通过移动终端给扫描仪供电,,同时控制供电的启闭,省去了供电模块。
图2示出了本发明实施例提供的处理单元的结构框图一,详述如下:
处理单元22包括扫描启闭模块221、标定模块222、闭环检测模块223、模型扫描模块224;
扫描启闭模块221启闭激光器及转台;
标定模块222标定摄像头的内部参数、转台坐标系与摄像头坐标系的位置关系,以及激光平面在摄像头坐标系下的平面方程;
闭环检测模块223通过扫描启闭模块开启激光,若完成一圈扫描,记录光条图像的帧数n;
模型扫描模块224提取所述光条图像的2D图像坐标,并根据所述标定模块将所述2D图像坐标转换成转台坐标系下的3D图像坐标,并生成3D点云。
在本发明实施例中,扫描系统启动后,即启动标定模块222,标定模块222包括摄像头内参标定模块2221、转台标定模块2222,以及激光平面标定模块2223;
其中,摄像头内参标定模块2221获取并标定摄像头的内部参数,包括焦距、中心坐标及畸变参数;
在本发明实施例中,摄像头的内部参数包括fx、fy、cx、cy、k1、k2、k3,其中,fx、fy表示摄像头的焦距,cx、cy表示摄像头的中心坐标,k1、k2、k3表示摄像头畸变参数。
转台标定模块2222并标定转台坐标系和摄像头坐标系的外部参数,包括旋转参数及平移参数;
在本发明实施例中,R表示旋转参数,T表示平移参数,即转台与摄像头的位置关系。
激光平面标定模块2223获取并标定激光平面在摄像头坐标系下的平面参数,包括激光平面的法向量和摄像头坐标系原点到激光平面的距离。
在本发明实施例中,图3示出了本发明实施例提供的闭环检测模块的结构框图,详述如下:
闭环检测模块223包括光条图像获取模块2231和图像匹配模块2232;
其中,光条图像获取模块2231记录激光的光条图像,并提取所述光条图像的第一帧图像,经过预设时间或预设帧数后,计算当前帧图像的匹配系数,并判断当前帧图像的匹配系数是否大于匹配系数阈值,是则将所述当前帧图像的匹配系数加入匹配集中;
图像匹配模块2232在所述匹配集中筛选最大匹配系数,若所述最大匹配系数连续N次处于极大值时匹配成功,完成一圈扫描,并记录光条图像的帧数n。
闭环检测模块223在扫描启动后,通过扫描启闭模块控制启动激光器打开激光,在本实施例中,在经过预设时间或预设帧数后,对获取的当前帧图像计算匹配系数,判断当前帧图像的匹配系数是否大于预设匹配系数阈值,若是,则将当前帧图像的匹配系数加入匹配集中待筛选最大匹配系数,若否,则丢弃该当前帧图像的匹配系数。另外,可以在第一预设时间或预设帧数后,不针对每一帧图像进行匹配,在第二预设时间或预设帧数后,增大匹配频率,即在接近第一圈扫描结束时,对每一帧图像进行系数匹配,从而减少后台运算。
在本实施例中,在匹配集中筛选最大匹配系数,若该最大匹配系数连续N次处于极大值,则说明匹配系数达到峰值,匹配成功,统计光条图像的帧数n。
在本发明实施例中,图4示出了本发明实施例提供的模型扫描模块的结构框图,详述如下:
模型扫描模块224包括去畸变模块2241、交点求解模块2242以及坐标转换模块2243;
其中,去畸变模块2241提取所述光条图像的2D图像坐标,对所述2D图像坐标进行归一化及去畸变处理;
交点求解模块2242求解摄像头射线与激光平面的交点;
坐标转换模块2243利用所述旋转参数及平移参数将所述交点进行旋转和平移变化,转化为转台坐标系下的3D图像坐标,生成3D点云。
在本发明实施例中,去畸变模块2241将闭环检测模块223获取到的光条图像提取2D图像坐标,即光条中心的坐标(u,v),对2D图像坐标进行归一化及去畸变处理:
首先得到畸变后的归一化成像平面坐标(xd,yd),
即xd=(u-cx)/fx;(1)
yd=(v-cy)/fy;(2)
带入畸变模型中,即:
rd 2=xd 2+yd 2;(3)
r=x’2+y’2;(4)
rd=r*(1+k1*r2+k2*r4+k3*r6);(5)
通过公式(1)-(5)求解去畸变后的平面坐标(x’,y’),其中,rd表示带畸变的图像相对于中心点的半径,r表示去畸变后的图像到中心点的半径,fx、fy表示摄像头的焦距,cx、cy表示摄像头的中心坐标,k1、k2、k3表示摄像头畸变参数。
求解摄像头射线与激光平面的交点,其中摄像头射线指摄像头坐标系下,原点出发经过光条图像上的点发出的射线。由于归一化的成像平面到摄像头坐标原点的距离z=1,因此归一化成像平面上,去畸变的光条图像2D坐标(x’,y’)在相机坐标系下的3D表示即为(x’,y’,1),通过原点和(x’,y’,1)构成的直线方程为
联立直线方程和激光的平面方程n
x*x+n
y*y+n
z*z-d=0求解摄像头射线与激光平面的交点(x,y,z);
其中,(nx,ny,nz)表示平面法向量,d表示摄像头远点到激光平面的距离,联立直线方程和激光平面方程,得到摄像头射线与激光平面的交点(x,y,z);
求解转台坐标系下的3D坐标(X,Y,Z);
利用旋转参数及平移参数将所述交点进行旋转和平移变化,转化为转台坐标系下的3D图像坐标;
其中,R表示旋转参数,T表示平移参数,即表示转台与摄像头的位置关系。
图5示出了本发明实施例提供的处理单元的结构框图二,详述如下:
处理单元22包括扫描启闭模块221、标定模块222、闭环检测模块223、模型扫描模块224、纹理提取模块225以及3D模型生成模块226;
其中,扫描启闭模块221启闭激光器及转台;
标定模块222标定摄像头的内部参数、转台坐标系与摄像头坐标系的位置关系,以及激光平面在摄像头坐标系下的平面方程;
闭环检测模块223通过扫描启闭模块221开启激光,若完成一圈扫描,记录光条图像的帧数n;
模型扫描模块224提取所述光条图像的2D图像坐标,并根据所述标定模块将所述2D图像坐标转换成转台坐标系下的3D图像坐标,并生成3D点云;
纹理提取模块225通过扫描启闭模块关闭激光,进入第二圈扫描,获取颜色图像,根据所述2D图像坐标提取颜色图像中对应坐标的颜色,根据所述2D图像坐标的排列,生成对应的2D纹理图;
3D模型生成模块226对所述3D点云三角化,并将所述3D点云的顶点与所述2D纹理图一一映射,生成3D模型。
子模块在上述的实施例中已经描述,在此不再赘述。
在本发明实施例中,与上述实施例不同的是,可以获取3D模型的纹理,生成颜色的3D模型。
在本发明实施例中,图6示出了本发明实施例提供的纹理提取模块的结构框图一,详述如下:
纹理提取模块225包括颜色序列写入模块一2251和纹理生成模块一2252,其中,颜色序列写入模块一2251获取光条图像第i帧图像的坐标序列,按y坐标从小到大排列,根据所述光条图像第i帧图像的坐标序列提取颜色图像第i帧图像的颜色序列,将所述颜色序列写入到2D纹理的第i列,其中,1≤i≤n;
纹理生成模块一2252判断i是否等于n,若否则执行i++,并返回执行颜色序列写入模块一;若是则完成2D纹理图的生成。
在本实施例中,纹理提取思想是:闭环检测模块223在检测到第一圈扫描结束后,通过扫描启闭模块221关闭激光,进入第二圈扫描,根据第一圈光条图像的坐标,提取第二圈对应光条图像帧的颜色,例如,根据第一圈扫描第10帧光条图像某个点的坐标为(x,y),提取第二圈扫描第10帧颜色图像中坐标(x,y)的颜色。
具体的纹理提取为,创建一个空纹理,其行数等于颜色图像帧的行数,列数等于光条图像的帧数,如图7所示,为纹理提取示意图,通过获取每一帧光条图像的坐标序列,且按照y坐标从小到大排列,对应提取每一帧颜色图像的的坐标序列的颜色序列,即将提取的颜色序列,写入到纹理图第i列中,其中光条图像的y坐标与纹理图第i列第y行对应,即完成2D纹理图的生成。
本发明实施例还提供另一种纹理提取实施例,图8示出了本发明实施例提供的纹理提取模块的结构框图二,详述如下:
纹理提取模块225包括扫描调整模块2253、颜色序列写入模块二2254及纹理生成模块二2255;
其中,扫描调整模块2253计算激光平面与摄像头中心平面之间的图像帧数之差M,判断转台是否从激光平面转向摄像头中心平面,若是则第二圈扫描结束时,将前M帧颜色图像插入到颜色图像的队尾;若否则第二圈扫描结束时,将最后M帧颜色图像插入到颜色图像的队首;
颜色序列写入模块二2254获取光条图像第i帧图像的坐标序列,按y坐标从小到大排列,根据所述光条图像第i帧图像的坐标序列提取颜色图像第i帧图像的颜色序列,将所述颜色序列写入到2D纹理的第i列,其中,1≤i≤n;
纹理生成模块二2255判断i是否等于n,若否则执行i++,并返回执行颜色序列写入模块二;若是则完成2D纹理图的生成。
在本发明实施例中,与上一实施例不同在于,上一实施例的纹理提取方案是光条图像坐标与颜色图像坐标提取一一对应,而本实施例不是采用一一对应的方式。但是为了提取纹理的准确性,需要摄像头的中心竖直平面和激光平面过转台旋转轴,如图9-10所示,与上一实施例不同的是,上一实施例中,获取光条图像,摄像头获取的图像是从激光平面开始获取,即是从位置2开始获取图像,而本实施例中,获取颜色图像,摄像头获取的图像是从摄像头中心平面开始获取,即是从位置1开始获取图像,因此,若转台从激光平面转向摄像头中心平面扫描时,第二圈扫描获取的图像相比第一圈扫描超前M帧;若转台从摄像头中心平面转向激光平面,第二圈扫描获取的图像相比第一圈扫描延迟M帧。
计算激光平面与摄像头中心平面之间的图像帧数之差M,计算方法为:
M=n*theta/360;其中n表示转台旋转一周的图像帧数,theta表示激光平面和摄像头中心平面之间的夹角。
本发明的3D扫描系统包括扫描仪和移动终端,所述扫描仪包括用于发射激光的激光器,以及用于承载扫描物体并旋转的转台;所述移动终端包括用于采集扫描物体图像的摄像头,以及用于控制激光器及转台启闭,对摄像头采集的扫描物体图像处理并生成3D点云的处理单元。与现有技术相比,本发明利用手机的摄像头及处理单元分别作为图像获取即图像处理的平台,实现3D扫描功能,极大地降低了3D扫描的成本,提高了便携性。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以不再进行赘述,相关之处参见方法实施例的部分说明即可。
以上对发明的具体实施方式进行了详细说明,但其只作为范例,本发明并不限制于以上描述的具体实施方式。对于本领域的技术人员而言,任何对该发明进行的等同修改或替代也都在本发明的范畴之中,因此,在不脱离本发明的精神和原则范围下所作的均等变换和修改、改进等,都应涵盖在本发明的范围内。