本申请涉及三维测量技术领域,尤其涉及一种三维测量方法、装置及系统。
背景技术:
三维测量,顾名思义就是测量确定被测物的三维坐标数据。目前,三维测量技术已被广泛应用于铁路、汽车、航空、军工等多种领域。常用的三维测量系统主要有结构光视觉系统(Structured Light Vision System)和双目立体视觉系统(Binocular Stereo Vision System)。
其中,结构光视觉系统基于光学三角法测量原理,通过专用的光学投射器(主要包括激光器)将结构光投射于被测物表面,并通过处于另一位置的图像采集器(如相机、摄像机等)获取该被测物的二维畸变图像,在光学投射器和图像采集器的相对位置确定时,即可以根据该二维畸变图像中任一点的二维坐标计算得到被测物表面相应被测点的三维坐标。结构光视觉系统具有原理简单、测量精度高、抗干扰性强等优点,但其受限于激光扫描速率,不能用于高速铁路等被测物处于高速运动状态的场景。
双目立体视觉系统基于视差原理,通过两套图像采集器模拟人的双眼,利用被测物上一点在两套图像采集器中成像位置的偏差,来计算得到被测物上该点的三维坐标。双目立体视觉系统原理、结构简单,测量范围广,通常利用双线阵相机作为图像采集器,扫描速度快,可以适应高速铁路等高速运动的测量场景,但其测量精度不稳定。
因此,有必要提供一种测量精度高、且扫描速度快的三维测量方法及相关装置,以满足高速铁路等高速运动场景的高精度测量需求。
技术实现要素:
本申请实施例提供了一种三维测量方法、装置及系统,以解决相关技术中难以兼顾测量精度和扫描速度的问题。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
根据本申请实施例的第一方面,提供一种三维测量方法,包括:
获取结构光视觉系统和双目立体视觉系统的标定信息;所述标定信息至少包括,结构光视觉系统坐标系Os-XsYsZs和双目立体视觉系统的第一图像采集器对应的第一坐标系OL-XLYLZL之间的坐标转换关系、测量精度δ、所述双目立体视觉系统的基准距b、焦距f,以及所述第一图像采集器的主点位置u;
利用结构光视觉系统,确定被测物上一物点P在坐标系Os-XsYsZs下的坐标(xs,zs),并根据所述坐标转换关系对所述坐标(xs,zs)进行坐标转换,得到物点P在第一坐标系OL-XLYLZL下的参考坐标(xL,zL);
根据所述基准距b、焦距f、测量精度δ和所述物点P的参考坐标值zL,确定物点P在所述双目立体视觉系统的第一图像采集器和第二图像采集器之间的视差最小值dmin和视差最大值dmax;其中,
根据所述参考坐标(xL,zL)和主点位置u,确定物点P在第一图像采集器所拍摄的第一图像中对应第一像素位置x1;
根据所述视差最小值dmin、视差最大值dmax和第一像点位置x1,确定物点P在第二图像采集器所拍摄的第二图像中的第二像素位置x2的取值区间T=[x1-dmax,x1-dmin];
根据预设立体匹配算法,分别计算所述第一像素位置x1对应的第一像点与所述取值区间T中每一个取值x2对应的备选第二像点之间的匹配代价;
从计算得到的各个匹配代价中确定匹配代价最小值,并确定所述匹配代价最小值对应的最优第二像素位置x'2;
根据所述第一像素位置x1和最优第二像素位置x 2',计算物点P在第一图像采集器和第二图像采集器中的实际视差dP;
根据所述实际视差dP计算物点P在所述第一坐标系OL-XLYLZL下的实际坐标。
可选的,根据所述参考坐标(xL,zL)和主点位置u,确定物点P在所述第一图像采集器所拍摄的第一图像中的第一像素位置x1,包括:
利用公式计算得到第一像素位置x1。
可选的,根据预设立体匹配算法,分别计算所述第一像素位置x1对应的第一像点与所述取值区间T中每一个取值x2对应的第二像点之间的匹配代价,包括:
依次获取所述取值区间T中的每一个取值x2,将其对应的像点作为备选第二像点;
根据绝对差AD算法计算所述第一像点和备选第二像点之间的第一匹配代价CAD(P,d);其中,为所述第一像点的灰度值,为所述备选第二像点的灰度值;
根据census变换算法计算所述第一像点和备选第二像点之间的第二匹配代价Ccensus(P,d);
根据归一化函数ρ(C,λ)=1-exp(C/λ)分别对所述第一匹配代价和第二匹配代价进行归一化处理,并对归一化处理后的第一匹配代价和第二匹配代价求和,得到所述取值x2对应的匹配代价C(P,d)=ρ(CAD(P,d),λAD)+ρ(Ccensus(P,d),λcensus);
其中,λAD为所述第一匹配代价的预设权重,λcensus为所述第二匹配代价的预设权重。
可选的,从计算得到的各个匹配代价中确定匹配代价最小值,包括:
根据十字交叉算法对计算得到的各个匹配代价进行聚合;
对于经过聚合的各个匹配代价,根据胜者为王WTA算法确定其中的匹配代价最小值。
可选的,根据所述实际视差dP计算物点P在所述第一坐标系OL-XLYLZL下的实际坐标,包括:
根据公式z=b·f/dp计算物点P在所述第一坐标系OL-XLYLZL下的ZL轴实际坐标值z;
根据公式x=z·xL/zL计算物点P在所述第一坐标系OL-XLYLZL下的XL轴实际坐标值x。
根据本申请实施例的第二方面,提供一种三维测量装置,包括:
标定信息获取单元,用于获取结构光视觉系统和双目立体视觉系统的标定信息;所述标定信息至少包括,结构光视觉系统坐标系Os-XsYsZs和双目立体视觉系统的第一图像采集器对应的第一坐标系OL-XLYLZL之间的坐标转换关系、测量精度δ、所述双目立体视觉系统的基准距b、焦距f,以及所述第一图像采集器的主点位置u;
参考坐标确定单元,用于利用结构光视觉系统,确定被测物上一物点P在坐标系Os-XsYsZs下的坐标(xs,zs),并根据所述坐标转换关系对所述坐标(xs,zs)进行坐标转换,得到物点P在第一坐标系OL-XLYLZL下的参考坐标(xL,zL);
视差范围确定单元,用于根据所述基准距b、焦距f、测量精度δ和所述物点P的参考坐标值zL,确定物点P在所述双目立体视觉系统的第一图像采集器和第二图像采集器之间的视差最小值dmin和视差最大值dmax;其中,
第一像点确定单元,用于根据所述参考坐标(xL,zL)和主点位置u,确定物点P在第一图像采集器所拍摄的第一图像中对应第一像素位置x1;
第二像点确定单元,用于根据所述视差最小值dmin、视差最大值dmax和第一像点位置x1,确定物点P在第二图像采集器所拍摄的第二图像中的第二像素位置x2的取值区间T=[x1-dmax,x1-dmin];
匹配代价计算单元,用于根据预设立体匹配算法,分别计算所述第一像素位置x1对应的第一像点与所述取值区间T中每一个取值x2对应的备选第二像点之间的匹配代价;
最佳匹配确定单元,用于从计算得到的各个匹配代价中确定匹配代价最小值,并确定所述匹配代价最小值对应的最优第二像素位置x 2';
实际视差计算单元,用于根据所述第一像素位置x1和最优第二像素位置x 2',计算物点P在第一图像采集器和第二图像采集器中的实际视差dP;
实际坐标计算单元,用于根据所述实际视差dP计算物点P在所述第一坐标系OL-XLYLZL下的实际坐标。
可选的,所述第一像点确定单元具体被配置为:
利用公式计算得到第一像素位置x1。
可选的,所述匹配代价计算单元具体被配置为:
依次获取所述取值区间T中的每一个取值x2,将其对应的像点作为备选第二像点;
根据绝对差AD算法计算所述第一像点和备选第二像点之间的第一匹配代价CAD(P,d);其中,为所述第一像点的灰度值,为所述备选第二像点的灰度值;
根据census变换算法计算所述第一像点和备选第二像点之间的第二匹配代价Ccensus(P,d);
根据归一化函数ρ(C,λ)=1-exp(C/λ)分别对所述第一匹配代价和第二匹配代价进行归一化处理,并对归一化处理后的第一匹配代价和第二匹配代价求和,得到所述取值x2对应的匹配代价C(P,d)=ρ(CAD(P,d),λAD)+ρ(Ccensus(P,d),λcensus);
其中,λAD为所述第一匹配代价的预设权重,λcensus为所述第二匹配代价的预设权重。
可选的,所述最佳匹配确定单元具体被配置为:
根据十字交叉算法对计算得到的各个匹配代价进行聚合;
对于经过聚合的各个匹配代价,根据胜者为王WTA算法确定其中的匹配代价最小值。
可选的,所述实际坐标计算单元具体被配置为:
根据公式z=b·f/dp计算物点P在所述第一坐标系OL-XLYLZL下的ZL轴实际坐标值z;
根据公式x=z·xL/zL计算物点P在所述第一坐标系OL-XLYLZL下的XL轴实际坐标值x。
根据本申请实施例的第三方面,提供一种三维测量系统,包括:结构光视觉系统、双目立体视觉系统和上述任一项所述的三维测量装置。
由以上技术方案可知,针对结构光视觉系统扫描频率低、分辨率低,以及双目立体视觉系统测量精度低的缺点,本申请实施例首先通过结构光视觉系统进行初步三维测量,进而结合结构光视觉系统的测量精度,以初步三维测量结果为参考值,通过预设立体匹配算法确定物点P在双目立体视觉系统中的最小匹配代价对应的第一像素位置及最优第二像素位置,再根据所述第一像素位置及最优第二像素位置确定物点P对应的实际视差,最后根据该实际视差即可计算得到物点P的实际三维坐标。可见,本申请实施例实现了结构光视觉系统和双目立体视觉系统的融合,既可以克服结构光视觉系统扫描频率低、分辨率低的问题,又可以克服双目立体视觉系统测量精度低的问题,从而保证在被测物高速运动的场景下也能测得被测物的三维坐标精确值。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的三维测量系统的硬件结构示意图;
图2为本申请实施例提供的三维测量方法的流程图;
图3为本申请实施例提供的三维测量方法中基于双目立体视觉系统的测量原理示意图;
图4为本申请实施例提供的三维测量方法中基于双目立体视觉系统的像点匹配示意图;
图5为本申请实施例提供的三维测量装置的结构框图;
图6为本申请实施例提供的三维测量系统的结构框图。
具体实施方式
为了使本领域的技术人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
本申请实施例提供了一种三维测量方法、装置及系统,以解决相关技术中难以兼顾测量精度和扫描速度的问题。
发明人在本申请的研究过程中发现,结构光视觉系统和双目立体视觉系统在进行三维测量时,各自存在优缺点,故本申请实施例利用上述两种视觉系统对同一被测物进行三维测量,对两种视觉系统得到的三维测量数据进行融合,使两种视觉系统之间扬长避短,得到精确度高且适用于高速运动物体的三维测量方法。下面结合图1所示的本申请实施例提供的三维测量系统的结构图对本申请实施例进行详细阐述。
参照图1,本申请实施例提供的三维测量系统至少包括一个光学投射器和三个图像采集器;其中,光学投射器110和图像采集器120构成结构光视觉系统,光学投射器110具体可以为激光器,其投射形成结构光平面130;第一图像采集器210和第二图像采集器220构成双目立体视觉系统。
可选的,上述图像采集器120具体可以采用面阵相机,第一图像采集器210和第二图像采集器220均采用线阵相机,以获得比面阵相机扫描频率更高、分辨率更高的图像。
为实现两种视觉系统之间测量数据的融合,在测量之前,首先对图1中的两种视觉系统的相对位置关系进行标定,具体标定内容主要包括以下三个方面:
1)结构光视觉系统的标定
即对图1中光学投射器110和图像采集器120的标定,具体可以采用任一现有标定方法,本申请实施例不对此进行限定。其中,与两种视觉系统的数据融合直接相关的一个标定参数为,结构光视觉系统的测量精度δ,也即图1所示整个三维测量系统的测量精度。例如,当δ=1cm时,表示所述三维测量系统最终测得的物点坐标精确到1cm,当δ=1mm时,表示所述三维测量系统最终测得的物点坐标精确到1mm。
2)双目立体视觉系统的标定
即对图1中第一图像采集器210和第二图像采集器220的标定,主要包括对二者内部参数的标定,如焦距f(第一图像采集器210和第二图像采集器220的焦距相同,均为f)、基准距b、畸变系数、第一图像采集器210的主点位置u(即第一图像采集器210成像平面的中心点位置,也即第一图像采集器210的光轴与其成像平面的交点位置)等。其中,第一图像采集器210的视场平面和第二图像采集器220的视场平面重合,基准距b表示第一图像采集器210的光心和第二图像采集器220的光心之间的距离。
3)两种视觉系统相对位置关系的标定
如图1所示,本申请实施例利用锯齿靶标对结构光视觉系统和双目立体视觉系统的相对位置关系进行标定;即,利用图像采集器120和第一图像采集器210同时对锯齿靶标进行拍摄,通过分析拍摄到的图像来对系统光路进行调节(如调节各个图像采集器的光轴方向、调节光线投射器的光线投射方向),使得第一图像采集器210的视场平面(也即第二图像采集器220的视场平面)与结构光平面130重合,分析得到结构光视觉系统所在坐标系Os-XsYsZs与第一图像采集器210所在的第一坐标系OL-XLYLZL之间的坐标转换关系M。当然,实际应用中,也可以基于上述原理标定得到结构光视觉系统所在坐标系Os-XsYsZs和第二图像采集器220所在的第二坐标系OR-XRYRZR之间的坐标转换关系M’;下文实施例仅以坐标转换关系M为例阐述具体的三维测量方法,本领域技术人员可以相应推导得到基于坐标转换关系M’的三维测量方法。
具体的,上文提及的三个坐标系可按如下方式定义:
首先,如图1所示,对于第一图像采集器210所在的第一坐标系OL-XLYLZL定义如下:原点OL可以设定为第一图像采集器210的光心,ZL轴平行于(重合于)第一图像采集器210的光轴,XL轴垂直于ZL轴,且XL轴与第一图像采集器210的视场平面平行,YL轴分别垂直于所述ZL轴和XL轴。实际应用中,为减小数据处理难度,可以取被测物的移动方向为YL轴方向,并相应调节第一图像采集器210的光路,使其所在的第一坐标系满足上述定义。
可选的,在本申请其他实施例中原点OL还可以设定为第一图像采集器210的主点,即第一图像采集器210的光轴与成像平面的交点。
其次,第二图像采集器220所在第二坐标系OR-XRYRZR可以参照上述第一坐标系OL-XLYLZL建立,且满足XL轴和XR轴平行、YL轴和YR轴平行、ZL轴和ZR轴平行(为避免线条或标号重合,图1中仅示出了第二坐标系OR-XRYRZR的ZR轴)。
再次,对于上述结构光视觉系统所在坐标系Os-XsYsZs中,原点Os可以设定为图像采集器120的光心,Zs轴平行于图像采集器120的光轴,Xs轴垂直于Zs轴,且Xs轴与结构光平面130平行(由此可以推知,Xs轴也平行于XL轴),Ys轴分别与所述Zs轴和Xs轴垂直。
上述三个坐标系定义完成后,即可根据同一时刻图像采集器120和第一图像采集器210拍摄到的图像分析得到上述坐标转换关系M。
下面基于以上标定结果,开始介绍本申请实施例提供的三维测量方法。
参照图2,本申请实施例提供的三维测量方法包括以下步骤:
S1、获取结构光视觉系统和双目立体视觉系统的标定信息。
其中,所述标定信息至少包括上文所述的测量精度δ、双目立体视觉系统的基准距b、焦距f、第一图像采集器210的主点位置u,以及结构光视觉系统坐标系Os-XsYsZs和第一坐标系OL-XLYLZL之间的坐标转换关系M。
S2、利用结构光视觉系统,确定被测物上一物点P在坐标系Os-XsYsZs下的坐标(xs,zs)。
可选的,可以在结构光视觉系统的图像采集器120所拍摄的二维图像中任选一个像素点,进而利用坐标系Os-XsYsZs计算得到该像点对应的被测物上的物点P的坐标(xs,zs)。
S3、根据所述坐标转换关系M对所述坐标(xs,zs)进行坐标转换,得到物点P在第一坐标系OL-XLYLZL下的参考坐标(xL,zL)。
由于相对于第一图像采集器210,图像采集器120的扫描频率及分辨率都较低,故第一图像采集器210拍摄到的图像包含更多的像素点,仅通过坐标转换并不能得到第一图像采集器210拍摄到的图像中每个像素点的坐标,更不能得到每个物点的坐标;而且,上述经过坐标转换得到的物点P在第一坐标系OL-XLYLZL下的坐标存在较大误差,不能作为实际坐标。有鉴于此,本申请实施例将由坐标转换得到的物点P在第一坐标系OL-XLYLZL下的坐标作为物点P的参考坐标,结合双目视觉系统的测量原理进一步确定精确度更高的物点P的实际坐标。
S4、根据所述基准距b、焦距f、测量精度δ和所述物点P的参考坐标值zL,确定物点P在所述双目立体视觉系统的第一图像采集器和第二图像采集器之间的视差最小值dmin和视差最大值dmax。
其中,视差最小值的计算公式为视差最大值的计算公式为
本申请实施例中,上述视差最小值dmin和视差最大值dmax的计算公式根据双目立体视觉系统的测量原理得到,下面结合图3所示的原理图进行介绍。
图3所示平面为第一坐标系OL-XLYLZL的ZL轴和XL轴所构成的平面(也即第二坐标系的ZR轴和XR轴所构成的平面,也即第一图像采集器210和第二图像采集器220的视场平面),且符合前文所述坐标系定义;其中,S1和S2分别为第一图像采集器210和第二图像采集器220的成像平面,OL和OR分别为坐标原点(也是第一图像采集器210和第二图像采集器220的光心);物点P和光心OL之间的连线与成像平面S1的交点P1,对应物点P的第一像点;物点P和光心OR之间的连线与成像平面S2的交点P2,对应物点P的第二像点。
假设P在第一坐标系OL-XLYLZL下的坐标为(xL,yL,zL),则在图3所示的二位坐标系OL-XLZL下,P的坐标为(xL,zL),交点P1处的坐标为(xP1,zP1),在图3所示第二坐标系OR-XRZR下,交点P2处的坐标为(xP2,zP2),且有:
物点P在双目立体视觉系统中的视差可以表示为d=xP1-xP2;
zP1=zP2=f,zL=Z(其中,Z称为物点P的深度值)。
由三角形POLOR与三角形PP1P2相似这一几何关系可知:
变形得到:即,
又由于结构光视觉系统的测量精度为δ,故物点P在第一坐标系OL-XLYLZL的ZL轴实际坐标值取值范围为[zL-δ,zL+δ],从而可以得到视差d的最小值为最大值为
S5、根据所述参考坐标(xL,zL)和主点位置u,确定物点P在第一图像采集器所拍摄的第一图像中对应第一像素位置x1。
所述第一像素位置也即图3所示的交点P1在第一图像中的位置。由于所述第一图像及第二图像传感器所拍摄的第二图像实际是由N列M行的像素阵列构成,故任意像点对应的像素位置,包括主点位置,都可以用相应像素对应的列号及行号来表示,即(n,m);其中,1≤n≤N且1≤m≤M,或者,0≤n≤N-1且0≤m≤M-1。
在本申请实施例一个可行的实施例中,为提高双目立体视觉系统的分辨率,第一图像采集器210和第二图像采集器220采用高度方向上仅含一个感光点的线阵相机,即所述第一图像和第二图像中的像素总行数M=1,主点位置及任意像点对应的像素位置只需考虑各自的像素列号。例如,主点对应的列号为n0,则主点位置u记为u=n0。
由坐标系定义可知,主点在XL轴上的坐标值为0,则对于xP1、x1和u,存在如下关系:xP1-0=k(x1-u),即
其中,k为坐标值与像素位置之间的转换系数,表示XL轴单位距离与单个像素宽度的比值。例如,每个像素宽度为0.5mm,XL轴单位距离为1mm,则k=1/0.5=2;反之,每个像素宽度为1mm,XL轴单位距离为0.5mm,则k=0.5。
又,参照图3所示原理图,由zP1=f以及几何关系可得:
由上述两个公式和可得:
特别的,当k=1时,第一像素位置的计算公式为:
S6、根据所述视差最小值dmin、视差最大值dmax和第一像点位置x1,确定物点P在第二图像采集器所拍摄的第二图像中的第二像素位置x2的取值区间T。
具体的,根据d=x1-x2及d∈[dmin,dmax],可得:x2∈T=[x1-dmax,x1-dmin]。
S7、根据预设立体匹配算法,分别计算所述第一像素位置x1对应的第一像点与所述取值区间T中每一个取值x2对应的备选第二像点之间的匹配代价。
S8、从计算得到的各个匹配代价中确定匹配代价最小值,并确定所述匹配代价最小值对应的最优第二像素位置x 2'。
S9、根据所述第一像素位置x1和最优第二像素位置x 2',计算物点P在第一图像采集器和第二图像采集器中的实际视差dP。
具体的,实际视差的计算公式为:dP=x1-x 2'。
S10、根据所述实际视差dP计算物点P在所述第一坐标系OL-XLYLZL下的实际坐标。
可见,本申请实施例首先通过结构光视觉系统确定被测的物点P在结构光视觉系统坐标系下的坐标(xs,zs);然后根据预先标定的两种视觉系统之间的坐标转换关系进行坐标转换,得到物点P在双目立体视觉系统的第一图像采集器对应的第一坐标系下的参考坐标(xL,zL);然后根据该参考坐标(xL,zL)以及预先标定的结构光视觉系统的测量精度δ,利用双目立体视觉系统的三维测量原理,确定物点P通过双目立体视觉系统得到的第一像点所在的第一像素位置x1,及相应的第二像点所在的第二像素位置的取值区间T;然后对取值区间T中的每一个取值,分别计算其对应的备选第二像点与x1对应的第一像点相匹配所带来的匹配代价,并将匹配代价最小值对应的T中的取值x 2'作为最优第二像素位置;然后可以确定物点P在第一图像采集器和第二图像采集器中的实际视差dP=x1-x'2,进而根据所述实际视差dP计算物点P在所述第一坐标系下的实际坐标。
由以上技术方案可知,针对结构光视觉系统扫描频率低、分辨率低,以及双目立体视觉系统测量精度低的缺点,本申请实施例首先通过结构光视觉系统进行初步三维测量,进而结合结构光视觉系统的测量精度,以初步三维测量结果为参考值,通过预设立体匹配算法确定物点P在双目立体视觉系统中的最小匹配代价对应的第一像素位置及最优第二像素位置,再根据所述第一像素位置及最优第二像素位置确定物点P对应的实际视差,最后根据该实际视差即可计算得到物点P的实际三维坐标。可见,本申请实施例实现了结构光视觉系统和双目立体视觉系统的融合,既可以克服结构光视觉系统扫描频率低、分辨率低的问题,又可以克服双目立体视觉系统测量精度低的问题,从而保证在被测物高速运动的场景下也能测得被测物的三维坐标精确值。
需要说明的是,由于不同物点对应的实际视差不尽相同,故可以依照本申请实施例分别确定图像采集器120所拍摄的二维图像中每一个像素点对应的物点的实际视差,进而确定该物点在第一坐标系OL-XLYLZL下的实际坐标(即循环执行步骤S2至S10)。
可选的,为区别于通过坐标转换得到的物点P的参考坐标(xL,zL),本实施例最终所要测得的物点P的实际坐标,即物点P在第一坐标系OL-XLYLZL下的实际坐标,记为(x,y,z),则由上文根据图3得到的结论及可知:
物点P在ZL轴实际坐标值z的计算公式为z=b·f/dp;
物点P在XL轴实际坐标值x的计算公式为x=z·xL/zL。
对于物点P在YL轴实际坐标值y,由于本申请实施例所取的YL轴方向为物点P的运动方向,故可以根据物点P的运动速度和运动时间计算得到实际坐标值y。
以下举例说明本申请实施例通过预设立体匹配算法确定最优第二像素位置的原理。
例如,假设dmin=0.1,dmax=0.3,且步骤S5计算得到第一像素位置x1=3.5,从而可以确定x2∈T=[x1-dmax,x1-dmin]=[3.2,3.4],然后分别计算:x1=3.5和对应的匹配代价C1,x1=3.5和对应的匹配代价C2,以及x1=3.5和对应的匹配代价C3;通过比较C1、C2和C3得到匹配代价的最小值为C2,则说明x1=3.5对应的第一像点和对应的第二像点为最佳像点配对,即最优第二像素位置x'2=3.3;进而可以计算得到物点P在双目立体视觉系统中的实际视差dP=3.5-3.3=0.2。
如图4所示的双目立体视觉系统中像点匹配示意图,在确定第一图像中第一像点对应的第一像素位置,并根据视差范围确定第二图像中对应的第二像素位置的取值范围后,该取值范围内的每一个像点均可称为备选第二像点,都有可能为与第一像点最匹配的第二像点,而该取值范围之外的像点都不可能为与第一像点最匹配的第二像点;故,只需遍历该范围内的每个备选第二像点,并分别计算其与第一像点之间的匹配代价,匹配代价最小值对应的备选第二像点即为与第一像点最匹配的第二像点,相应的该与第一像点最匹配的第二像点的像素位置即为最优第二像素位置。
可见,本申请实施例根据结构光视觉系统的测量精度δ,预测物点P在双目立体视觉系统中的视差范围,进而根据该视差范围和第一像素位置确定对应的第二像点对应的第二像素位置的取值范围,从而仅在该取值范围对应的图像块内遍历,根据匹配代价确定与第一像点匹配度最佳的第二像点;显然,相对于现有技术在无法预知视差范围的情况下,在第二图像采集器所拍摄的整幅图像中遍历以确定最佳的第二像点,本申请实施例可以缩小第二像点的搜索范围,提高匹配速度,还可以提高匹配精度,避免因在不相关的位置内搜索第二像点而造成误匹配。
在本申请一个可行的实施例中,步骤S7中所采用的预设立体匹配算法可以为基于AD-census变换的区域匹配算法,即遍历第二图像采集器所拍摄的图像中第一像点对应的视差范围内的每一个备选第二像点,利用AD-census变换公式计算第一像点和每一个备选第二像点之间的匹配代价。
具体的,利用AD-census变换公式计算匹配代价的步骤如下:
S71、根据AD(absolute difference,绝对差)算法计算所述第一像点和备选第二像点之间的第一匹配代价CAD(P,d);
其中,第一匹配代价CAD(P,d),表示两个像点之间的灰度值绝对差,公式为:
其中,为所述第一像点的灰度值,为当前遍历到的备选第二像点的灰度值。
S72、根据census变换算法计算所述第一像点和备选第二像点之间的第二匹配代价Ccensus(P,d);
S73、通过归一化函数将上述第一匹配代价CAD(P,d)和第二匹配代价Ccensus(P,d)进行归一化处理;
本申请实施例中,归一化函数公式为ρ(C,λ)=1-exp(C/λ),对第一匹配代价CAD(P,d)进行归一化处理得到:ρ(CAD(P,d),λAD)=1-exp(CAD(P,d)/λAD),对第二匹配代价Ccensus(P,d)进行归一化处理得到:ρ(Ccensus(P,d),λcensus)=1-exp(Ccensus(P,d)/λcensus)。
其中,λAD为所述第一匹配代价的预设权重,λcensus为所述第二匹配代价的预设权重。
S74、对处理后的两种匹配代价ρ(CAD(P,d),λAD)和ρ(Ccensus(P,d),λcensus)求和,得到P1和P2j之间的匹配代价C(P,d)=ρ(CAD(P,d),λAD)+ρ(Ccensus(P,d),λcensus)。
以前文实施例所述的计算匹配代价C1为例,即计算第一图像采集器所拍摄的图像中x1=3.5对应的第一像点和第二图像采集器所拍摄的图像中对应的备选第二像点之间的匹配代价,计算过程为:1)利用上述CAD(P,d)计算公式计算得到其第一匹配代价其中,为x1=3.5对应的第一像点的灰度值,为对应的备选第二像点的灰度值;2)利用census变换算法计算得到x1=3.5对应的第一像点和对应的备选第二像点之间的第二匹配代价3)利用归一化函数执行归一化处理,得到和4)执行求和计算,得到P1和P2 1之间的匹配代价
在本申请一个可行的实施例中,步骤S8所述的从计算得到的各个匹配代价中确定匹配代价最小值,具体包括:
S81、根据十字交叉算法对计算得到的各个匹配代价进行聚合;
由于图像采集器所拍摄的图像会受到光照、噪声等因素的影响,导致空间中同一物点在双目立体视觉系统的两个图像采集器所拍摄的图像中的灰度值差别较大,因此,本申请实施例将以待匹配点(即上述第一像点)为中心的周围像素点的匹配代价进行聚合,加权在一起,来缩小单个像点引起的误差。
S82、对于经过聚合的各个匹配代价,根据胜者为王(winner takes all,WTA)算法确定其中的匹配代价最小值。
可见,本申请实施例通过匹配代价聚合,来消除同一物点在双目立体视觉系统的两个图像采集器所拍摄的图像中的灰度值差别对匹配代价的影响,提高匹配代价的计算精确度,从而提高匹配精度,进而提高整个系统的三维测量精度。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非暂态计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的非暂态计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
相应的,本申请实施例公开一种三维测量装置,该装置分别与图1所示的结构光视觉系统和双目立体视觉系统的数据输出接口连接,通过对两种视觉系统的测量数据进行融合,得到更精确的、适用于高速运动物体的三维测量结果。参见图5所示的结构示意图,所述三维测量装置500包括:
标定信息获取单元501,用于获取结构光视觉系统和双目立体视觉系统的标定信息;所述标定信息至少包括,结构光视觉系统坐标系Os-XsYsZs和双目立体视觉系统的第一图像采集器对应的第一坐标系OL-XLYLZL之间的坐标转换关系、测量精度δ、所述双目立体视觉系统的基准距b、焦距f,以及所述第一图像采集器的主点位置u;
参考坐标确定单元502,用于利用结构光视觉系统,确定被测物上一物点P在坐标系Os-XsYsZs下的坐标(xs,zs),并根据所述坐标转换关系对所述坐标(xs,zs)进行坐标转换,得到物点P在第一坐标系OL-XLYLZL下的参考坐标(xL,zL);
视差范围确定单元503,用于根据所述基准距b、焦距f、测量精度δ和所述物点P的参考坐标值zL,确定物点P在所述双目立体视觉系统的第一图像采集器和第二图像采集器之间的视差最小值dmin和视差最大值dmax;其中,
第一像点确定单元504,用于根据所述参考坐标(xL,zL)和主点位置u,确定物点P在第一图像采集器所拍摄的第一图像中对应第一像素位置x1;
第二像点确定单元505,用于根据所述视差最小值dmin、视差最大值dmax和第一像点位置x1,确定物点P在第二图像采集器所拍摄的第二图像中的第二像素位置x2的取值区间T=[x1-dmax,x1-dmin];
匹配代价计算单元506,用于根据预设立体匹配算法,分别计算所述第一像素位置x1对应的第一像点与所述取值区间T中每一个取值x2对应的备选第二像点之间的匹配代价;
最佳匹配确定单元507,用于从计算得到的各个匹配代价中确定匹配代价最小值,并确定所述匹配代价最小值对应的最优第二像素位置x 2';
实际视差计算单元508,用于根据所述第一像素位置x1和最优第二像素位置x 2',计算物点P在第一图像采集器和第二图像采集器中的实际视差dP;
实际坐标计算单元509,用于根据所述实际视差dP计算物点P在所述第一坐标系OL-XLYLZL下的实际坐标。
上述三维测量装置中各个单元的具体工作原理可参照上文方法实施例。
可选的,上述第一像点确定单元504具体可以被配置为:
利用公式计算得到第一像素位置x1。
可选的,上述匹配代价计算单元506具体可以被配置为:
依次获取所述取值区间T中的每一个取值x2,将其对应的像点作为备选第二像点;
根据绝对差AD算法计算所述第一像点和备选第二像点之间的第一匹配代价CAD(P,d);其中,为所述第一像点的灰度值,为所述备选第二像点的灰度值;
根据census变换算法计算所述第一像点和备选第二像点之间的第二匹配代价Ccensus(P,d);
根据归一化函数ρ(C,λ)=1-exp(C/λ)分别对所述第一匹配代价和第二匹配代价进行归一化处理,并对归一化处理后的第一匹配代价和第二匹配代价求和,得到所述取值x2对应的匹配代价C(P,d)=ρ(CAD(P,d),λAD)+ρ(Ccensus(P,d),λcensus);
其中,λAD为所述第一匹配代价的预设权重,λcensus为所述第二匹配代价的预设权重。
可选的,上述最佳匹配确定单元507具体可以被配置为:
根据十字交叉算法对计算得到的各个匹配代价进行聚合;
对于经过聚合的各个匹配代价,根据胜者为王WTA算法确定其中的匹配代价最小值。
可选的,上述实际坐标计算单元509具体可以被配置为:
根据公式z=b·f/dp计算物点P在所述第一坐标系OL-XLYLZL下的ZL轴实际坐标值z;
根据公式x=z·xL/zL计算物点P在所述第一坐标系OL-XLYLZL下的XL轴实际坐标值x;
以及,根据物点P的运动速度和运动时间计算物点P在所述第一坐标系OL-XLYLZL下的YL轴实际坐标值y。
由以上技术方案可知,针对结构光视觉系统扫描频率低、分辨率低,以及双目立体视觉系统测量精度低的缺点,本申请实施例首先通过结构光视觉系统进行初步三维测量,进而结合结构光视觉系统的测量精度,以初步三维测量结果为参考值,通过预设立体匹配算法确定物点P在双目立体视觉系统中的最小匹配代价对应的第一像素位置及最优第二像素位置,再根据所述第一像素位置及最优第二像素位置确定物点P对应的实际视差,最后根据该实际视差即可计算得到物点P的实际三维坐标。可见,本申请实施例实现了结构光视觉系统和双目立体视觉系统的融合,既可以克服结构光视觉系统扫描频率低、分辨率低的问题,又可以克服双目立体视觉系统测量精度低的问题,从而保证在被测物高速运动的场景下也能测得被测物的三维坐标精确值。
本申请实施例还提供了一种三维测量系统;如图6所示框架图,该系统包括:结构光视觉系统100、双目立体视觉系统200和上文任一项实施例所述的三维测量装置500。
其中,结构光视觉系统100包括光学投射器110和图像采集器120,双目立体视觉系统200包括第一图像采集器210和第二图像采集器220,其硬件结构可参照图1所示。
三维测量装置500分别与结构光视觉系统100和双目立体视觉系统200的测量数据输出接口(如图像采集器120、第一图像采集器210和第二图像采集器220的输出接口)连接,通过对两种视觉系统的测量数据进行融合,得到更精确的、适用于高速运动物体的三维测量结果。
可见,本申请实施例提供的三维测量系统,同时利用结构光视觉系统和双目立体视觉系统进行三维测量,并将二者得到的三维测量数据进行融合,从而既可以克服结构光视觉系统扫描频率低、分辨率低的问题,又可以克服双目立体视觉系统测量精度低的问题,保证在被测物高速运动的场景下也能测得被测物的三维坐标精确值。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。