本发明涉及视觉测量技术领域,尤其涉及一种单相机结合二维码测量玻璃板不平度的方法。
背景技术:
物体表面的三维形貌是物体表面最基本的几何性质,对物体表面形貌信息的获取在工业生产制造中具有重要的意义,所以如何高效、准确地获取物体表面点的三维数据是现代工业发展中一个需要解决的难题。近年来,随着传感技术,图像处理以及计算机技术的发展,具有测量快速、准确,且可测量范围很大等优点的非接触式三维重建方法,在物体表面外形检测领域中得到了非常广泛的应用。
目前常用的三维测量方式包括使用双目相机或者单相机加一定的光学条件。在使用双目相机测量时,对于两个相机的摆放位置有一定要求,这会使得整个测量系统的体积较大。并且大多数测量物体都是刚性物体,且多为漫反射表面。
技术实现要素:
本发明目的就是为了弥补已有技术的缺陷,提供一种单相机结合二维码测量玻璃板不平度的方法。
本发明是通过以下技术方案实现的:
本发明利用单相机获得玻璃板的图像,通过精确识别玻璃板上角点坐标可计算的二维码(如qr码)阵列,从而建立图像点和空间三维点的关系,来确定物体三维信息。整个测量过程包括相机标定,求取相机内外参数;基于玻璃板反射的相机外参数求解;对二维码先计算外围轮廓中心距,作为定位点,然后根据轮廓顶点关系确定二维码的四个顶点坐标;将采集图像上的变形角点坐标与已知角点坐标拟合求得反射对应关系,根据其对应关系来求玻璃板的每点深度表达式,恢复表面形貌,从而可分析其不平度。
一种单相机结合二维码测量玻璃板不平度的方法,包括以下步骤:
s1:相机标定,得到相机内参数和外参数初始值,建立图像像素的位置坐标与场景点所处空间位置之间的关系。所述相机的内参数包含相机的有效焦距、光心及描述相机像平面u轴与v轴的相互垂直程度的参数。所述外参数是指旋转矩阵和平移向量。
s2:基于玻璃板反射的相机外参数求解,得到相机与投影设备的位置关系。
s3:玻璃板反射角点坐标已知的二维码阵列,用相机采集图像。对二维码先计算外围轮廓中心距,作为定位点,然后根据轮廓顶点关系确定二维码的四个顶点坐标,提取图像中所有二维码中的角点。
s4:将检测到的特征点与标记点进行拟合,根据所得表达式求取待测面每点深度,从而求得玻璃板的表面形貌。
所述的s1的具体过程如下:
s1.1:建立空间三维点与相机平面上二维点映射关系,空间任意一点p在图像上的成像位置可以用针孔模型近似表示。
空间点p在世界坐标系和相机坐标系下的齐次坐标分别为(xw,yw,zw,1)和(x,y,z,1),可以写为如下表达式:
其中m2表示世界坐标系和相机坐标系之间的转换关系,为4×4的矩阵;
将相机坐标系内物点p以理想小孔模型映射到图像坐标系,表达式如下:
其中(x,y)为p点对应的图像坐标,f代表相机的焦距;
相机cmos靶面上,像元水平方向尺寸用dx表示,垂直方向尺寸用dy表示,则理想小孔模型下的像点p,在图像坐标系下物理坐标到像素坐标之间的转化可用如下表达式表示:
由公式(1)至(3)可得到,一物点p从世界坐标系经过忽略畸变的小孔模型,投影到像面坐标系下的数学表达式如下:
其中内参数矩阵
相机外参数中r是旋转矩阵,t是平移向量。
s1.2:对相机进行标定,获得相机内外参数。通过计算单应性矩阵hi求解出相机内参数矩阵a和相机相对于不同位置靶标的旋转矩阵ri,以及平移向量ti(i=1,2…..n),利用径向畸变系数与切向畸变系数k1,k2,p1,p2校正理想模型,最后使用l-m优化算法对所有参数的初始值进行优化,提高精度。
平面靶标上角点p在世界坐标系下的坐标记为p=[xw,yw,zw]t,经过相机数学模型成像后的像点坐标记为p=[u,v]t,将二者的坐标写作齐次坐标为
上式中s为一任意的非零尺度因子,a为相机内参数矩阵,r是靶标坐标系与相机坐标系之间的旋转矩阵,t是靶标坐标系到相机坐标系的平移向量。
为计算方便,令标志点坐标的z值为零,即zw=0,令
如果标定所用的平面靶标含有n个标定点,每个标定点可以列出一个关系式,所有关系式联立可以写成
标定过程中相机总共采集了n个靶标空间不同位置的图像,总共有n个单应性矩阵hi(i=1,2…..n)与每个空间位置的靶标相对应,通过计算n个单应性矩阵可以求出摄像机的内参数矩阵a,以及相机相对于每个靶标的旋转矩阵ri以及平移向量ti(i=1,2…..n)。根据旋转矩阵r的正交性可以得到内参数矩阵a的两个基本约束条件:
由式(8)可以计算a-ta-1,并令
通过svd分解法求出最优
求得单应性阵h=[h1h2h3]与内参矩阵a之后,由(11)可求得相机相对靶标位置的外参数:
由于实验中存在误差,由公式(11)计算得到的
为提高精度,对相机参数进行优化,利用最优化方法中的l-m优化方法,建立目标函数如下:
其中mij表示相机图像坐标系下实验获得的坐标,
所述的s2的具体过程如下:
s2.1:建立镜面反射数学模型。
镜面到屏幕参考点p的距离与镜面到屏幕参考点镜像
在相机坐标系下,nj是镜面π在j位置下的表面法向量,dj是镜面在位置j下到相机坐标系原点的距离,
由此,屏幕参考点与参考点镜像之间的关系可以写成:
其中s是描述镜面反射的矩阵:
s2.2:基于镜面反射的相机外参数求解。
用r表示镜像屏幕坐标系与相机坐标系之间的旋转矩阵,t表示二者之间的平移矩阵,则将投影模型与镜面反射模型相结合可以得到屏幕坐标系到相机坐标系的变换关系:
t=2djrnj+t(19)
其中
所述的s3的具体过程如下:
s3.1在玻璃板上投射二维码阵列;
s3.2对拍摄的玻璃板图像进行处理,转为灰度图像;
s3.3对图像进行校正、去噪、图像增强处理,使特征信息更明显;
s3.4二维码中心点提取,包含行列信息;
s3.5计算得到所有二维码四个角点的坐标信息,提取图像中所有二维码中的角点。
所述的s4的具体过程如下:
s4.1根据之前标定求得的相机内外参数,以及基于玻璃板的相机外参,得到目标位置与姿态的六个参数;
s4.2根据之前提到的小孔成像模型,由入射光线和反射光线的关系求得待测物上点的法向量;
s4.3由投影点在相机坐标系下的坐标和图像点在相机坐标系下的坐标拟合求得反射对应关系,而后求得待测物上点的深度函数g(x,y);
s4.4对于图像中的每点求取深度g,再与图像点相乘得到待测物空间三维点信息;
s4.5得到被测物三维点坐标信息后,可用积分方式得到面型,而后用重建面中的高度差来衡量其不平度。
本发明的优点是:本发明采用单目相机来实现三维测量,降低了成本和测量系统的体积,并且便于操作。玻璃板反射角点坐标可求得的二维码阵列,所以可由单张图像进行处理得到物体三维信息,降低了测量系统的复杂度。该方法可以通过对待测面的拟合,由表面最高点和最低点建立两个平面,从而用它们的高度差来表示玻璃板不平度。
附图说明
图1本发明的方法流程图。
图2本发明中相机成像模型。
图3本发明中相机标定示意图。
图4本发明中基于镜面的标定示意图。
图5本发明中二维码阵列示意图。
具体实施方式
如图1所示,一种单相机结合二维码测量玻璃板不平度的方法,包含了以下几个细分步骤:
步骤1:相机标定
本发明的相机标定采用张正友二维靶标标定法。设定整个工作范围为1~3m,为了满足测量要求,在考虑视场、焦距等各参数之后,选用usb2.0接口cmos工业数字相机和焦距为16mm的固定焦距镜头。
步骤1.1参见图2所示,建立二维坐标和三维坐标之间的映射关系,空间任意一点p在图像上的成像位置可以用针孔模型近似表示。
空间点p在世界坐标系和相机坐标系下的齐次坐标分别为(xw,yw,zw,1)和(x,y,z,1),可以写为如下表达式:
其中m2表示世界坐标系和相机坐标系之间的转换关系,为4×4的矩阵;
将相机坐标系内物点p以理想小孔模型映射到图像坐标系,表达式如下:
其中(x,y)为p点对应的图像坐标,f代表相机的焦距;
相机cmos靶面上,像元水平方向尺寸用dx表示,垂直方向尺寸用dy表示,则理想小孔模型下的像点p,在图像坐标系下物理坐标到像素坐标之间的转化可用如下表达式表示:
由公式(1)至(3)可得到,一物点p从世界坐标系经过忽略畸变的小孔模型,投影到像面坐标系下的数学表达式如下:
其中内参数矩阵
相机外参数中r是旋转矩阵,t是平移向量。
步骤1.2对相机进行标定,获得相机内外参数。如图3所示,具体按以下步骤进行:
(1)已靶标左上第一个特征角点为坐标原点,靶标所在平面为xy平面,z轴垂直于xy平面,使其符合右手坐标系。
(2)调节相机焦距及光圈,使其拍摄图像尽可能清晰,避免出现曝光。
(3)拍摄靶标,手持靶标在相机拍摄视野内变换位置,尽量将物体位于图像中间,注意要有旋转和平移,不能只在同一平面内移动。
(4)采集15幅靶标图像,利用matlab中程序对其标定,初次标定发现有些参与标定的靶标图片重投影误差过大,这可能是角点提取有误,或者手持靶标进行拍摄过程中出现抖动,将重投影误差过大的靶标图片逐一剔除,进行再次标定,最终留下了10幅图像作为双目相机标定的图像,求得相机内外参数。
通过计算单应性矩阵hi求解出相机内参数矩阵a和相机相对于不同位置靶标的旋转矩阵ri,以及平移向量ti(i=1,2…..n),利用径向畸变系数与切向畸变系数k1,k2,p1,p2校正理想模型,最后使用l-m优化算法对所有参数的初始值进行优化,提高精度。
步骤2:玻璃板标定
步骤2.1参见图4所示,建立镜面反射数学模型。具体按以下步骤进行:
(1)在相机标定好后,接着进行玻璃板在相机下的标定。首先投射编程产生的与相机分辨率相同棋盘格靶标图像,确定棋盘格靶标的宽度和高度。
(2)完成在显示靶标图像后,利用相机拍摄玻璃板上屏幕靶标在三个位置下的镜像,然后根据之前标定所得的相机的内参数,利用opencv的相关函数计算相机相对于这三个镜像靶标的外参数,继而使用基于镜面的相机外参标定算法编写程序求解相机相对于真实屏幕靶标位置的外参数。
(3)利用基于镜面的相机外参数标定算法求得了相机相对于真实屏幕靶标位置的外参数。
镜面到屏幕参考点p的距离与镜面到屏幕参考点镜像
在相机坐标系下,nj是镜面π在j位置下的表面法向量,dj是镜面在位置j下到相机坐标系原点的距离,
由此,屏幕参考点与参考点镜像之间的关系可以写成:
其中s是描述镜面反射的矩阵:
步骤2.2基于镜面反射的相机外参数求解。
用r表示镜像屏幕坐标系与相机坐标系之间的旋转矩阵,t表示二者之间的平移矩阵,则将投影模型与镜面反射模型相结合可以得到屏幕坐标系到相机坐标系的变换关系:
t=2djrnj+t(11)
其中
步骤3:投射编码产生的二维码阵列并采集玻璃板上镜像。所用二维码阵列如图5所示,具体按以下步骤进行:
(1)利用行列坐标作为二维码编码所存储的信息,产生阵列码,投射到墙面上,相机拍摄得到图像。
(2)对拍摄的玻璃板图像进行处理,转为灰度图像。
(3)对图像进行校正、去噪、图像增强处理,使特征信息更明显。
(4)二维码中心点提取,包含行列信息。
(5)计算得到所有二维码四个角点的坐标信息,提取图像中所有二维码中的角点。
步骤4:检测特征点,根据图像与与参考面之间的关系,求得待测物表面信息,具体按以下步骤进行:
(1)根据之前标定求得的相机内外参数,以及基于玻璃板的相机外参,得到目标位置与姿态的六个参数;
(2)根据之前提到的小孔成像模型,由入射光线和反射光线的关系求得待测物上点的法向量
(3)由投影点在相机坐标系下的坐标和图像点在相机坐标系下的坐标拟合求得反射对应关系m(x,y),而后求得待测物上点的深度函数g(x,y);
(4)对于图像中的每点求取深度g,再根据p(x,y)=g(x,y)v得到待测物空间三维点信息;
(5)得到被测物三维点坐标信息后,可用积分方式得到面型,而后用重建面中的高度差来衡量其不平度。