获取精确高密度点云的方法与流程

文档序号:16282932发布日期:2018-12-14 23:02阅读:445来源:国知局
获取精确高密度点云的方法与流程

本发明涉及三维重建领域,具体地,涉及一种获取精确高密度点云的方法。

背景技术

基于结构光编码的三维重建对计算机视觉和机器人学都具有重要的研究和应用价值,且具有精度高、速度快、适用范围广等诸多优点。目前已经广泛用于人脸识别、自动化测量、航空航天、逆向工程等多个领域。物体的三维测量方法主要包括接触式和非接触式两大类。接触式测量仪大多使用机械探针等触发式测试头直接接触被测物体表面,测量精度高,但是其不适用于测量柔性物体,且测量速度慢、测量数据密度低等缺陷也影响了该技术的应用。

非接触式测量系统主要采用光、声、电磁等方式测量,如超声波测距、核磁共振成像等。随着光电检测技术、计算机技术的日渐成熟,基于光学的非接触式测量技术成为三维测量的主要方法。非接触式测量包括主动式和被动式两种。被动式测量方法不提供光源,根据多个相机获取的图像特征点匹配信息得到被测物体的三维数据,如立体视觉法。而结构光法又被称为主动三角法,通过光源向被测物体投射预先设计好的结构光图像,投射到物体表面上的编码图案被调制后,所形成的变形条纹包含了被测物体表面高度信息,这些信息被左、右两台摄像机捕获记录,并由计算机通过图像处理方法得到物体的三维信息。与双目立体视觉不同的是,双目结构光方法可对无纹理物体表面赋予人工编码的特征点,通过立体匹配技术寻找到左右对应的特征点位置,即可计算深度值。对被测物体表面的所有编码点都计算得到其深度值后,可获取物体的三维点云,点云经过适当处理即可得到三维模型。

结构光编码方法按照投影和解码原理方面不同可以分为空间编码和时间编码两种;按结构光图案的灰度值分布不同可以分为空间二级灰度值编码和多级灰度值编码;按结构光投影图案和成像相机颜色通道不同可以分为彩色编码和单色编码。空间编码仅需要单帧或者少量帧数即可对场景进行编码,适用于动态场景编码,但这种编码图案易受到物体表面特性影响而产生噪声干扰。而时间编码方案利用序列编码图案进行编解码,物体表面特性影响导致的误差大为减少,但这种方法要求物体场景静止,不适用与动态场景。但随着快速dlp投影技术和高速工业相机的成熟,目前已经可以在短时间内完成大量编码图案的投射和采集。

目前,结构光测量技术大多是应用在干扰比较少的场景中,此时可近似认为被测物体只受到投影单光源的直接照射。但是在实际应用的工业环境中,被检测物体除了受到直接投射光源外,还可能受到周围物体表面互反射光的照射,且环境中也可能存在多个光源的干扰等,这些都会使相机采集到的结构光编码信息发生错误,从而造成解码错误。



技术实现要素:

本发明的目的在于,针对上述问题,提出一种取精确高密度点云的方法,以实现至少部分的解决现有技术中存在的问题。

为实现上述目的,本发明采用的技术方案是:

一种获取精确高密度点云的方法,包括,

对目标工件投射编码结构光图案,即对目标工件投射生成高频编码条纹和高频采样条纹;

采集投射光图案后的目标工件的图像;

对所述图像进行预处理;

对预处理后的图像进行正反码二值化判断;

对经过正反码二值化判断后的图像进行解码;

对解码后的图像进行采样,得到采样点;

将所述采样点进行立体匹配;

对匹配的采样点进行三维坐标计算。

优选的,所述对目标工件投射生成高频编码条纹,包括:

对目标工件投射格雷码条纹图案;

在所述格雷码条纹图案中选取高频条纹作为基准条纹;

将所述格雷码条纹图案中频率小于基准条纹频率的条纹与基准条纹进行异或变换。

优选的,所述在所述格雷码条纹图案中选取高频条纹作为基准条纹,包括:

将格雷码中每一位图案二值化;

判断二值化结果受反射光影响的大小;

选取受反射光影响小的高频条纹为基准条纹。

优选的,所述在所述格雷码条纹图案中选取高频条纹作为基准条纹,具体为:选择m种频率的高频条纹为基准条纹,所述m≥2。

优选的,所述m=2。

优选的,对目标工件投射生成高频采样条纹,包括:

在格雷码条纹图案中选择频率最高的一位图案作为高频采样条纹;

以所述高频采样条纹初始位置为基准,向两侧分别对称平移n次,得到2n幅采样图案;

将每次对称平移的两幅采样图案作为一组。

优选的,所述以所述高频采样条纹初始位置为基准,向两侧分别对称平移n次中:

每次平移距离为d=i×d,其中,i=1,2…,n,d小于采样条纹中最小条纹宽度,c为格雷码编码位数,l为编码图像宽度。

优选的,所述对所述图像进行预处理,包括:

对图像进行中值滤波和灰度归一化处理。

优选的,所述对经过正反码二值化判断后的图像进行解码,包括:

对解码后的码值进行矫正,即将解码得到的不同码值进行减法运算,并将减法运算的结果取绝对值后与设定阈值相比较。

优选的,对预处理后的图像进行正反码二值化判断,具体为:根据公式确定像素是否处于编码条纹中被照亮的区域,所述公式为:

其中,i为编码图像,i`为i取反后的编码图像。

本发明的技术方案具有以下有益效果:

本发明的技术方案,对目标工件投射编码结构光图案,投射产生高频采样条纹,提高了采样密度,消除了图像二值化误差,提高了解码和采样精度,在反射光影响下获取了高密度的精确点云。从而达到避免由于全局光照中反射光造成被测物体重构点云缺失、采样精度低等问题。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明实施例所述的获取精确高密度点云的方法的流程图;

图2为本发明实施例所述的获取精确高密度点云的方法一个具体实施例的流程图;

图3为本发明实施例所述的利用格雷码中的高频条纹作为基准条纹对低频条纹作异或变换示意图;

图4a为本发明实施例所述的投射格雷码条纹后的条纹图像;

图4b为本发明实施例所述的投射xor6后的条纹图像;

图4c为本发明实施例所述的投射xor7后的条纹图像;

图5为本发明实施例所述的高频采样条纹的移动距离、移动方向示意图;

图6为本发明实施例所述的格雷码边缘与一次高频采样边缘组合示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

本发明主要公开一种机器视觉测量方法,具体是指利用高频基准条纹对传统格雷码进行改进,得到新的编码结构光条纹,并利用高频采样条纹对编码区间进行多次高密度采样,在反射光条件下获取高密度点云的结构光三维测量方法。

如图1所示,一种获取精确高密度点云的方法,包括,

s101:对目标工件投射编码结构光图案,即对目标工件投射生成高频编码条纹和高频采样条纹;

高频采样条纹生成:

将最后一位格雷码向左、向右对称平移n次,每次平移距离为d。计算公式如下:

其中,i=1,2...n,c为格雷码位数,l为编码图像宽度。

s102:采集投射光图案后的目标工件的图像;

利用对称方向的两个图像采集装置采集图像信息,对称方向可以是左右方向或前后方向等。

在一个具体的实施方式中,采用左右两个摄像机采集投射光图案后的目标工件的图像,主要为获取被调制后条纹的左右视图。

s103:对所述图像进行预处理;

优选的,采用中值滤波消除系统误差;利用灰度归一化,消除由于两个摄像机光圈大小不同和光照不一造成的影响;

采用中值滤波,可以去除设备及信号传输过程中的系统噪声,二维中值滤波公式如下:

g(x,y)=med{f(x-k,y-l);k,l∈w},

其中,f(x,y),g(x,y)分别代表原始图像和滤波后图像,w为二维模板,通常选取3*3和5*5样式,若w为3*3样式,则k,l∈{-1,0,1}。

对输入图像进行灰度归一化处理,消除左右相机光照不一致造成的影响,公式如下:

其中,v(x,y)和h(x,y)分别为归一化处理前后的图像灰度值,max(v(x,y))、min(v(x,y))分别为图像灰度值得最大值和最小值。

s104:对预处理后的图像进行正反码二值化判断;

该步骤主要是将预处理后的图像二值化,优选的,主要为根据公式,确定某一像素是否处于编码条纹中被照亮的区域,公式为:

其中,i为某一张编码图像,i`为i取反后的编码图像。

s105:对经过正反码二值化判断后的图像进行解码;

将格雷码条纹与m组高频编码条纹调制后的图像二值化,格雷码条纹按照格雷码与十进制数关系解码;高频编码条纹先与其对应的基准高频图案的二值结果进行同一位置像素的异或运算,将其还原为格雷码的二值结果;再根据二进制码值,求解对应的十进制值,如果采用m种基准频率获取高频编码条纹,可以得到同一像素位置的(m+1)组格雷码十进制值;将每个像素的(m+1)个码值进行比对校验,对异常点码值进行纠正或剔除。

以xor6图像序列为例,将xor6作为编码图案进行投射,设左相机采集的图像分别为l1,l2...l8。首先对这些图像进行二值化操作,公式如下:

l_new(i)=f(li),i=1,2…8。

根据得到的二值化图像,将xor6和xor7序列进行还原,还原公式如下:

上式中,l_new为高频编码条纹二值化结果,l_final为l_new还原为格雷码的二值化结果。

然后以传统格雷码的解码方式进行解码,得到xor6条纹序列的解码结果。同理也可以得到xor7条纹序列解码结果。该解码结果为二进制格雷码值。若某一采样点的格雷码二进制码值为(g0g1g2...gi-1)2,则按照如下公式进行转换:

l_h_code=2c-i+((g0g1g2…gi-1)2)10·2c-i+1

其中,c为格雷码位数,i=1,2,...c为二值化图像序数,gi为该点在第i幅图像中的二值化结果,其中g0=0。

优选的,所述对经过正反码二值化判断后的图像进行解码,包括:

对解码后的码值进行矫正,即将解码得到的不同码值进行减法运算,并将减法运算的结果取绝对值后与设定阈值相比较。设定阈值优选的为3。

码值矫正具体如下:对于同一位置的像素点,将其解码得到的(m+1)组码值进行比对校验,根据给定的阈值判断码值是否正确,对异常点码值进行纠正或剔除;当m=2时,如将得到的xor6、xor7序列进行解码,可以得到三组不同编码方法的解码结果。

假设对任意一像素点q,投射格雷码条纹、xor6和xor7条纹后,投射格雷码条纹、xor6和xor7条纹后的条纹图像分别如图4a、图4b和图4c所示。解码得到的码值分别为r1,r2,r3,矫正公式如下:

其中,tresh为设定阈值,通常设置为3。通过不同码值之间的相互比对,对每一个像素点进行校正,得到最终的码值r。在实际测量中,只需要对采样点进行解码、矫正即可。

s106:对解码后的图像进行采样,得到采样点;

采样采用边缘采样方法:利用边缘检测算子对格雷码条纹以及高频采样条纹采集得到的每一位图像提取边缘像素;并对得到的像素进行细化处理,得到单像素边缘;将格雷码序列中每一位图像的单像素边缘合并,得到格雷码采样边缘;将每次对称平移后获取的高频采样条纹图像中的单像素边缘合并,作为该次高频采样的采样边缘,共可得到(n+1)组边缘采样条纹,包括格雷码条纹边缘和n组高频采样条纹边缘。如图6所示。

对格雷码序列边缘点采样的方法如下:

利用边缘检测算子对格雷码序列中采集到的每一位图像提取边缘像素,得到l1,…l8,将这8张边缘图像进行逻辑“或”运算,得到在某个方向上完整的边缘单像素采样图。

为了防止在匹配过程中出现一对多、多对多的情况出现,需对得到边缘进行细化处理。

设某一边缘非零像素的坐标为(x,y),有效地址为(x',y'),而(x,y)处对应的图像灰度值为g(x,y),则对于横向条纹的边缘采样,其有效像素地址为:

(x',y')∈{(x,y)|f(x+1,y)=0},

纵向条纹的边缘采样,其有效像素地址为:

(x',y')∈{(x,y)|f(x,y+1)=0},

通过对横、纵条纹进行单像素边缘提取,将单像素边缘交点作为采样点。

对高频采样条纹边缘点采样:

以对格雷码序列边缘点采样中的方法对每次高频采样条纹边缘点进行采样,并以该点所在格雷码编码区域的码值作为该采样点的码值。

s107:将所述采样点进行立体匹配;

为了避免采样点的码值在匹配时出现冲突,需要将格雷码条纹采样点和n次高频条纹采样点分别进行立体匹配,本技术方案进行立体匹配的方法与现有的线移编码方法相比,不需要对额外的采样条纹进行重新编码,从而减少了算法的运算量。

在与步骤s101投射图案条纹垂直的方向上重复所述步骤s102至步骤s106,两个正交方向上的单像素边缘相交的点作为采样点,并将两个方向的码值组合计算作为最终的码值,由于两个方向的码值是连续递增的,因此最终的码值是全局唯一的;由步骤s106得到的(n+1)组采样点位置的码值,在同一组采样点中,根据极线约束原理在同一水平像素位置进行左、右图像的像素匹配。

s108:对匹配的采样点进行三维坐标计算。

根据步骤s107得到的同一像素点在左、右图像中对应的像素坐标,利用三角测量法求该采样点的三维坐标。得到(n+1)组三维坐标点,将其合并作为最终结果。

利用双目三角测量法对匹配点进行三维坐标计算。假设左相机中某一采样点的坐标为pl(ul,vl),与之在右相机中的匹配点坐pr(ur,vr),则该对点集对应的世界坐p(xw,yy,zw)的计算公式如下:

其中,s1,s2为比例因子,为左、右相机的成像变换矩阵。

优选的,所述对目标工件投射生成高频编码条纹,包括:

对目标工件投射格雷码条纹图案;

在所述格雷码条纹图案中选取高频条纹作为基准条纹;

将所述格雷码条纹图案中频率小于基准条纹频率的条纹与基准条纹进行异或变换。

优选的,所述在所述格雷码条纹图案中选取高频条纹作为基准条纹,包括:

将格雷码中每一位图案二值化,二值化采用正反码即步骤s104中的方法;

判断二值化结果受反射光影响的大小;

选取受反射光影响小的高频条纹为基准条纹。

优选的,所述在所述格雷码条纹图案中选取高频条纹作为基准条纹,具体为:选择m种频率的高频条纹为基准条纹,所述m≥2。

优选的,所述m=2。

高频编码条纹生成具体为:

先对目标工件投射格雷码条纹图案;然后以格雷码条纹中的某一高频条纹为基准。选择依据为依次将传统格雷码中每一位图案二值化,以二值化结果受反射光影响较小的条纹开始为高频条纹,通常从第6位图案开始。通过异或逻辑运算xor,将小于该频率的条纹与基准条纹进行像素异或变换,其余条纹保持不变。选择m种频率(m≥2,建议选择2)的基准条纹,生成m组高频格雷码序列,依次投射变化后的高频条纹。如图3所示。

由于采用编码图案是黑白图案,二值化之后其数值只有0和1。对于任意的逻辑异或运算,满足以下公式:

且对于某两种不同频率的条纹p1,p2,其二值化过程满足以下公式:

即某一频率条纹的二值化结果可以等效为将其分解为两种频率后,各自二值化结果的异或组合,得到:

因此,选择某一高频条纹作为基准条纹,对低频条纹pl进行分解,可以得到新的高频条纹

选择格雷码中的高频条纹作为基准条纹,对低频条纹pl进行分解,可以得到新的高频条纹

以8位格雷码位例,设格雷码编码条纹序列分别为p1,p2,…,p8。假设以第6位格雷码图案p6作为基准图案,依次将该基准图案与前五幅图进行对应像素的异或运算,即得到变换后的前五位条纹及其反码。将以第6位格雷码图为基准图得到的编码序列,命名为xor6,同理可以得到xor7编码序列。

优选的,对目标工件投射生成高频采样条纹,包括:

在格雷码条纹图案中选择频率最高的一位图案作为高频采样条纹;

以所述高频采样条纹初始位置为基准,向两侧分别对称平移n次,得到2n幅采样图案;

将每次对称平移的两幅采样图案作为一组。

优选的,所述以所述高频采样条纹初始位置为基准,向两侧分别对称平移n次中:

每次平移距离为d=i×d,其中,i=1,2…,n,d小于采样条纹中最小条纹宽度,c为格雷码编码位数,l为编码图像宽度。如图5所示。

在原始格雷码条纹序列中选择频率最高的一位图案作为高频采样条纹,以该条纹初始位置为基准,向两侧分别对称平移n次,每次平移距离为d=i×d,得到2n幅采样图案,每次对称平移的两幅作一组。在已经投射了高频编码条纹的基础上,依次投射高频采样条纹。

在一个具体的实施方式中,如图2所示,分别使用左右两个摄像机采集投射光图案后的目标工件的图像,主要为获取被调制后条纹的左右视图。然后分别读取左右视图图像,分别读取n位格雷码+m组高频变换条纹,然后对读取的左右视图进行预处理,即对视图进行中值滤波和归一化处理,对左右视图图像进行正反码二值化判断,即将左右视图进行二值化,然后将二值化的左右视图进行格雷码边缘与高频线移条纹边缘采样,判断采样的码值组数是否小于m+1,如不小于则对采样点的组合编码解码,如小于则进行码值矫正,然后对码值进行全局解码,然后联合横向和纵向码值计算左右视图各采样像素的唯一性编码,将得到的唯一性编码的等值码值匹配,然后进行三维坐标计算,即完成三维空间测量。

综上所述,本发明提供了一种利用异或逻辑运算改进的高频编码的结构光三维测量方法,可在反射光影响下获取精确的高密度点云。该方法采用异或逻辑运算生成高频结构光编码条纹,并加入了高频采样条纹,避免了由于反射光影响造成被测工件点云误差、缺失以及点云采样精度低的问题;利用高频条纹对反射光具有抗干扰能力的特点,将格雷码的低频部分与一张基准高频图案进行逻辑异或运算,将其转化为高频条纹再进行投射,然后将采集后的条纹还原、解码,最后再对不同组条纹码值进行相互比对校正,得到最终的精准码值;通过投射高频采样条纹,可以进一步提高采样密度和采样精度;高频采样条纹码值与所在格雷码区间码值相同;左、右视图中高频采样点与格雷码采样点分别单独匹配;相对于现有的格雷码编码方法,本发明采用利用异或运算改进的高频编码条纹,结合高频采样条纹,对反射光下的工件重构点云数量可以提高50%以上;在反射光较强的区域具有较强的抵抗反射光干扰的能力,可以得到准确的码值。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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