一种组合点群高精度三维信息视觉测量方法与流程

文档序号:12173084阅读:来源:国知局

技术特征:

1.一种组合点群高精度三维信息视觉测量方法,其特征是,测量方法中,由投影仪投影经过标定的多个点到待测物体表面形成组合点群,利用双目视觉测量方法与被测物上投影的组合点群空间位置关系相对不变相结合的方法进行三维精确测量;该方法通过对投影点群的移动,形成对待测物体表面的扫描,经过对组合点群空间三维信息粗测量和优化得到高精度的空间三维信息,实现对被测物体整个表面的三维信息精确测量;测量方法的具体步骤如下:

第一步、组合点群空间三维信息粗测量

采用双目视觉测量系统,首先以精密加工的靶标板对摄像机进行标定;该方法是以张正友等人提出的基于二维平面靶标的摄像机标定方法为基础,并针对测量过程中相对距离高精度的测量要求,以双目测量系统空间点的重建精度作为目标函数,实现双目系统在较大视场下的高精度标定;固定系统中的两个摄像机,使其对准靶标板,对靶标板进行图像采集后,根据采集的靶标板的图像采用张氏标定方法标定出两相机的内外参数;

<mrow> <mi>s</mi> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mi>u</mi> </mtd> </mtr> <mtr> <mtd> <mi>v</mi> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>&alpha;</mi> <mi>x</mi> </msub> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>u</mi> <mn>0</mn> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>&alpha;</mi> <mi>y</mi> </msub> </mtd> <mtd> <msub> <mi>v</mi> <mn>0</mn> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mi>R</mi> </mtd> <mtd> <mi>t</mi> </mtd> </mtr> <mtr> <mtd> <msup> <mn>0</mn> <mi>T</mi> </msup> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>X</mi> <mi>w</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>Y</mi> <mi>w</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>Z</mi> <mi>w</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,s为比例因子,u、v为相面坐标,Xw、Yw、Zw是世界坐标,αx、αy、u0、v0为摄像机内参数,分别代表u轴尺度因子、v轴尺度因子、相面中心u轴坐标、相面中心v轴坐标;R为旋转矩阵、t为平移矩阵,它们是摄像机的外参数;

事先制作好用于投影的组合点群图片,用于测量的组合点群图片由不同颜色的点组成,颜色不同是用于区别组合点群中的每个不同的点,并进行标定;标定完成后,两个摄像机位置固定不动,投影仪将带有组合点群的图片投影到待测物体表面,两个摄像机对组合点群进行图像采集,通过对采集的图像进行图像处理,利用双目视觉测量公式得出双目视觉测量结果,即组合点群的初始三维坐标,完成组合点群空间三维信息粗测量;双目视觉测量公式如下:

<mrow> <mi>s</mi> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>u</mi> <mrow> <mi>i</mi> <mi>l</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>v</mi> <mrow> <mi>i</mi> <mi>l</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>x</mi> <mi>l</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>u</mi> <mrow> <mn>0</mn> <mi>l</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>a</mi> <mrow> <mi>y</mi> <mi>l</mi> </mrow> </msub> </mtd> <mtd> <msub> <mi>v</mi> <mrow> <mn>0</mn> <mi>l</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mi>l</mi> </msub> </mtd> <mtd> <msub> <mi>t</mi> <mi>l</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msup> <mn>0</mn> <mi>T</mi> </msup> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>y</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>z</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>s</mi> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>u</mi> <mrow> <mi>i</mi> <mi>r</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>v</mi> <mrow> <mi>i</mi> <mi>r</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>x</mi> <mi>r</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>u</mi> <mrow> <mn>0</mn> <mi>r</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>a</mi> <mrow> <mi>y</mi> <mi>r</mi> </mrow> </msub> </mtd> <mtd> <msub> <mi>v</mi> <mrow> <mn>0</mn> <mi>r</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mi>r</mi> </msub> </mtd> <mtd> <msub> <mi>t</mi> <mi>r</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msup> <mn>0</mn> <mi>T</mi> </msup> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>y</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>z</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

其中:(uil,vil)为图像在左摄像机图像坐标系下的像素坐标,(uir,vir)为图像在右摄像机图像坐标系下的像素坐标,其中axl为左摄像机u轴上的尺度因子,ayl为左摄像机v轴上的尺度因子,axr为右摄像机u轴上的尺度因子,ayr为右摄像机v轴上的尺度因子,(u0l,v0l)为左摄像机光轴与图像平面交点的像素坐标,其中Rl为左摄像机旋转矩阵,tl为左摄像机平移矩阵,(u0r,v0r)为右摄像机光轴与图像平面交点的像素坐标,其中Rt为右摄像机旋转矩阵,tr为右摄像机平移矩阵,以上参数都与摄像机的标定有关,标定过程完成,则以上参量即确定,且只要摄像机不动,以上参数就不变,s是尺度因子,n为投影的组合点群的点数,(xi,yi,zi)为利用双目视觉测量原理获得的组合点群中任意空间点Ai的三维坐标;

第二步、组合点群空间三维信息精测量

组合点群图片由投影仪投影至待测物体表面后,其投影图片中组合点群中每一投影点的投射中心都为投影仪的原点O,投影点与投影仪原点的连线为该投影点的投影直线,设投影仪同时投影出n个不同颜色的点;通过第一步已经求出组合点群中每一点的初始空间三维信息,通过对其进行优化得到高精度的空间三维信息;

优化约束包括两部分:一部分投影到被测物表面的组合点群中每两条投影直线之间的相对空间角度位置关系不变,另一部分在双目视觉系统的两个摄像机坐标系中,组合点群中每点测得的三维坐标在摄像机图像坐标系下的像素坐标与已知的摄像机坐标系中的像素坐标之差最小;通过以上的优化约束,对于第一步求得的组合点群中所有投影点的初始三维信息逐一进行优化,要求最终获得的组合点群中每一点的空间点三维信息(xi,yi,zi)都同时满足以上优化条件;由以上约束条件得到的约束函数包括两部分:第一部分是由三个目标函数组成的方程组,第一个目标函数为计算测得的待测点i处投影直线向量与组合点群中其他点投影直线向量的夹角和事先已知的其间的投影向量空间夹角之差,第二个目标函数为计算测得的待测点i处的空间三维坐标转化为双目系统中左摄像机坐标系下的像素坐标和已知的其在左摄像机坐标系下的像素坐标之差,第三个目标函数为计算测得的待测点i处的空间三维坐标转化为双目系统中右摄像机坐标系下的像素坐标和已知的其在右摄像机坐标系下的像素坐标之差,第二部分是要求最终得到的待测点i处的空间三维信息(xi,yi,zi)同时满足使第一部分的三个方程的值最小;

其具体的优化公式如下:

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>H</mi> <mn>1</mn> </msub> <mo>=</mo> <mi>arccos</mi> <mfrac> <mrow> <mrow> <mo>(</mo> <mrow> <mover> <msub> <mi>a</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> </mover> <mo>-</mo> <mover> <mi>o</mi> <mo>&RightArrow;</mo> </mover> </mrow> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <mrow> <mo>(</mo> <mrow> <mover> <msub> <mi>a</mi> <mi>j</mi> </msub> <mo>&RightArrow;</mo> </mover> <mo>-</mo> <mover> <mi>o</mi> <mo>&RightArrow;</mo> </mover> </mrow> <mo>)</mo> </mrow> </mrow> <mrow> <mo>|</mo> <mover> <msub> <mi>a</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> </mover> <mo>-</mo> <mover> <mi>o</mi> <mo>&RightArrow;</mo> </mover> <mo>|</mo> <mo>&CenterDot;</mo> <mo>|</mo> <mover> <msub> <mi>a</mi> <mi>j</mi> </msub> <mo>&RightArrow;</mo> </mover> <mo>-</mo> <mover> <mi>o</mi> <mo>&RightArrow;</mo> </mover> <mo>|</mo> </mrow> </mfrac> <mo>-</mo> <msub> <mi>&alpha;</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>H</mi> <mn>2</mn> </msub> <mo>=</mo> <mi>s</mi> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>u</mi> <mrow> <mi>i</mi> <mi>l</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>v</mi> <mrow> <mi>i</mi> <mi>l</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>x</mi> <mi>l</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>u</mi> <mrow> <mn>0</mn> <mi>l</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>a</mi> <mrow> <mi>y</mi> <mi>l</mi> </mrow> </msub> </mtd> <mtd> <msub> <mi>v</mi> <mrow> <mn>0</mn> <mi>l</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mi>l</mi> </msub> </mtd> <mtd> <msub> <mi>t</mi> <mi>l</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msup> <mn>0</mn> <mi>T</mi> </msup> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>y</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>z</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>H</mi> <mn>3</mn> </msub> <mo>=</mo> <mi>s</mi> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>u</mi> <mrow> <mi>i</mi> <mi>r</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>v</mi> <mrow> <mi>i</mi> <mi>r</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>a</mi> <mrow> <mi>x</mi> <mi>r</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>u</mi> <mrow> <mn>0</mn> <mi>r</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>a</mi> <mrow> <mi>y</mi> <mi>r</mi> </mrow> </msub> </mtd> <mtd> <msub> <mi>v</mi> <mrow> <mn>0</mn> <mi>r</mi> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mi>r</mi> </msub> </mtd> <mtd> <msub> <mi>t</mi> <mi>r</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msup> <mn>0</mn> <mi>T</mi> </msup> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>y</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>z</mi> <mi>i</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>~</mo> <mi>n</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>M</mi> <mo>=</mo> <mi>min</mi> <mrow> <mo>(</mo> <msqrt> <mrow> <msup> <msub> <mi>H</mi> <mn>1</mn> </msub> <mn>2</mn> </msup> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>H</mi> <mn>2</mn> </msub> <mo>|</mo> <mo>|</mo> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>H</mi> <mn>3</mn> </msub> <mo>|</mo> <mo>|</mo> </mrow> </msqrt> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

利用LM优化方法,优化问题转化成求解M最小值问题,求解满足使M值最小的空间点三维坐标优化结果(xi,yi,zi);其中为组合点群中的任意一投影点Ai与投影仪原点O形成的向量,是除待测点Ai以外的任意投影点Aj与投影仪原点O形成的向量,αij为已知的向量的夹角;H1为求得的组合点群中待测投影向量与其他任意投影向量间的空间夹角与事先已知的其间夹角之差,H2为待测点求得的空间坐标与已知双目系统中左侧摄像机中坐标之差,H3为待测点求得的空间坐标与已知双目系统中右侧摄像机中坐标之差,M为最终的优化目标,求解同时满足公式(4)中每个方程都求取最小值;通过以上的优化过程,精确求解出使优化目标最小值的组合点群中所有点的三维空间信息;

再沿待测物体表面通过对投影点群的移动,形成对待测物体表面的扫描,实现对被测物体整个表面的三维信息精确测量。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1