发明名称 一种基于频率的动态编码点的设计与解码方法
摘要 本发明一种基于频率的动态编码点的设计与解码方法属于计算机视觉测量技术领域,涉及一种基于频率的动态编码点的设计与解码方法。动态编码点的设计采用圆形特征点为提取特征,分为静态定位区和动态编码区。对采集到的编码点图像进行滤波处理,获得高质量图像;提取特征轮廓,对图像进行分割,滤除背景,保留感兴趣区域;利用编码点静态定位区识别编码点位置,获取编码点中心坐标;然后对动态编码区采集到的相机序列图像进行解码处理。该方法利用投影仪投影动态编码点,解决了普通编码点布局繁琐的问题,提高了测量系统的现场适应性,方便,提取速度快,解码及匹配准确,精度高,可满足视觉动态测量中编码点的使用要求。
申请公布号 CN105957116A 申请公布日期 2016.09.21
申请号 CN201610285851.4 申请日期 2016.05.03
申请人 大连理工大学 发明人 刘巍;兰志广;杨帆;高鹏;张洋;李晓东;贾振元;高航
分类号 G06T9/00(2006.01)I 主分类号 G06T9/00(2006.01)I
代理机构 大连理工大学专利中心 21200 代理人 关慧贞
主权项 一种基于频率的动态编码点的设计与解码方法,其特征是,动态编码点的设计采用圆形特征点为提取特征,分为静态定位区和动态编码区,首先对采集到的编码点图像进行滤波处理,获得高质量图像;提取特征轮廓,对图像进行分割,滤除背景,保留感兴趣区域;利用编码点静态定位区识别编码点位置,获取编码点中心坐标;然后对动态编码区采集到的相机序列图像进行解码处理,根据动态编码区基于其频率变化而产生的灰度变化得到循环数列;利用循环数列循环数的不同检测出不同的编码点,并以其最小循环数作为编码值,根据编码值实现左右相机编码点的准确匹配;方法的具体步骤如下:第一步、编码点图像预处理利用投影仪投影编码点,并用双目相机对编码点进行采集;对双目视觉测量系统采集到的原始图像,首先进行中值滤波处理,获得高质量的图像;然后选取合适的阈值对图像进行二值化处理,提取圆形特征点的特征轮廓,并对图像进行分割,滤除背景区域,保留感兴趣区域;第二步、动态编码点的识别定位对于图像中经过图像预处理无法去除的一些杂散点,要基于编码点特征圆的特征,对图像进行进一步处理,滤除非目标信息,从而保证编码点的精确识别及定位;1)动态编码点的识别根据特征圆的形状信息和灰度信息,分别采用面积准则、圆度准则和灰度均匀准则对静态定位区的编码点进行识别;面积准则:由于投影在物体表面的编码点特征圆在被测物体表面所占的像素数可以通过提前标定,因此可以利用编码点的面积作为约束,对图像进行处理,将面积不符合要求的特征区域剔除,滤除杂散点;面积准则判据公式如下:N<sub>p</sub>>N<sub>t</sub>   (1)其中,N<sub>p</sub>为特征区域所占像素数,N<sub>t</sub>为面积阈值,可通过提前标定得出;圆度准则:由于动态编码点采用的是圆形特征点,其形状信息应该满足圆度准则,圆度准则判据公式为:<maths num="0001"><math><![CDATA[<mrow><mi>e</mi><mo>=</mo><mfrac><mrow><mn>4</mn><mi>&pi;</mi><mi>S</mi></mrow><msup><mi>l</mi><mn>2</mn></msup></mfrac><mo>&gt;</mo><msub><mi>e</mi><mi>t</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000980003420000021.GIF" wi="404" he="126" /></maths>其中,e为特征区域的圆度,e<sub>t</sub>为圆度的阈值,S为连通区域的面积,l为连通区域的轮廓周长;圆度e的值在0到1的范围内,对于正圆,e=1;若目标区域越接近正圆,则其圆度值越接近1,反之越接近0;采用该准则可以滤除边界不规则的近圆区域,提高编码点的提取精度,避免出现错误编码点;灰度均匀性准则:由于编码点特征圆是由投影仪投影产生的,其所在区域的灰度值分布相对非编码点区域要更加均匀,因此采用灰度均匀性准则对图像中的所有连通区域进行判断;首先计算连通区域的灰度平均值,公式如下:<maths num="0002"><math><![CDATA[<mrow><mover><mi>g</mi><mo>&OverBar;</mo></mover><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munder><mo>&Sigma;</mo><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo><mo>&Element;</mo><mi>S</mi></mrow></munder><mi>g</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000980003420000022.GIF" wi="531" he="134" /></maths>其中,<img file="FDA0000980003420000023.GIF" wi="32" he="53" />为目标灰度值的平均值,S为连通区域,n为连通区域的像素数,g(x<sub>i</sub>,y<sub>j</sub>)为连通区域内像素坐标(x<sub>i</sub>,y<sub>j</sub>)处的灰度值;则灰度判据可表示为:<maths num="0003"><math><![CDATA[<mrow><msub><mi>D</mi><mi>g</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munder><mo>&Sigma;</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub><mo>)</mo><mo>&Element;</mo><mi>S</mi></mrow></munder><msup><mrow><mo>(</mo><mi>g</mi><mo>(</mo><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub></mrow><mo>)</mo><mo>-</mo><mover><mi>g</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mn>2</mn></msup><mo>&lt;</mo><msub><mi>D</mi><mi>t</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000980003420000031.GIF" wi="765" he="150" /></maths>其中,D<sub>g</sub>为目标区域的灰度方差,D<sub>t</sub>为灰度阈值;利用以上三个判断准则对编码点进行识别,对于不满足以上三个判据的连通区域予以剔除,保留同时满足三个判据的连通区域,并可认为其为编码点;2)动态编码点的定位对于被识别为编码点的连通区域采用灰度重心法对编码点的中心进行准确定位,得到编码点的中心坐标值;灰度重心法公式如下:<maths num="0004"><math><![CDATA[<mrow><msub><mi>x</mi><mi>C</mi></msub><mo>=</mo><mfrac><mrow><munder><mo>&Sigma;</mo><mrow><mo>(</mo><mo>(</mo><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub></mrow><mo>)</mo><mo>&Element;</mo><mi>S</mi><mo>)</mo></mrow></munder><msub><mi>x</mi><mi>i</mi></msub><mi>g</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><mrow><munder><mo>&Sigma;</mo><mrow><mo>(</mo><mo>(</mo><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub></mrow><mo>)</mo><mo>&Element;</mo><mi>S</mi><mo>)</mo></mrow></munder><mi>g</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000980003420000032.GIF" wi="590" he="279" /></maths><maths num="0005"><math><![CDATA[<mrow><msub><mi>y</mi><mi>C</mi></msub><mo>=</mo><mfrac><mrow><munder><mo>&Sigma;</mo><mrow><mo>(</mo><mo>(</mo><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub></mrow><mo>)</mo><mo>&Element;</mo><mi>S</mi><mo>)</mo></mrow></munder><msub><mi>y</mi><mi>j</mi></msub><mi>g</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><mrow><munder><mo>&Sigma;</mo><mrow><mo>(</mo><mo>(</mo><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub></mrow><mo>)</mo><mo>&Element;</mo><mi>S</mi><mo>)</mo></mrow></munder><mi>g</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000980003420000033.GIF" wi="613" he="279" /></maths>其中,(x<sub>C</sub>,y<sub>C</sub>)为编码点中心坐标;第三步、动态编码点的解码得到编码点特征圆的中心(x<sub>C</sub>,y<sub>C</sub>)后,对编码点进行解码,得到其编码值,以匹配左右相机图像的编码点;动态编码区的编码点将以一定的频率闪烁,明暗交替出现,同时相机以一定的采样频率进行采样,拍摄一序列图像,以实现基于频率的动态编码点的解码;根据相机的触发过程和动态采集特性,基于采样定理,设定圆形动态编码点的闪烁频率应满足如下条件:<maths num="0006"><math><![CDATA[<mrow><msub><mi>f</mi><mi>F</mi></msub><mo>=</mo><mo>{</mo><mi>f</mi><mo>|</mo><mfrac><mn>1</mn><msub><mi>T</mi><mrow><mi>D</mi><mi>C</mi></mrow></msub></mfrac><mo>&lt;</mo><mi>f</mi><mo>&lt;</mo><msub><mi>f</mi><mi>c</mi></msub><mo>,</mo><mfrac><msub><mi>f</mi><mi>c</mi></msub><mi>f</mi></mfrac><mo>&Element;</mo><mi>N</mi><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000980003420000041.GIF" wi="740" he="151" /></maths>其中,f<sub>F</sub>为圆形动态编码点的闪烁频率,T<sub>DC</sub>为分配给动态编码区的时间,f<sub>C</sub>为相机采集帧频,N为自然数集;进行解码时,首先要对动态编码起始位置进行准确判断,然后根据特征圆的灰度进行解码;先判断编码点起始位置,编码点在从静态定位区过渡到动态编码区时,编码点特征圆的灰度会发生明显的变化,因此将图像序列前后两帧图像中特征圆的灰度差作为编码起始位置的判断依据;直接采用特征圆圆心点(x<sub>C</sub>,y<sub>C</sub>)所在像素格的灰度值代替特征圆的灰度值,灰度差判据可以表示为:g<sub>n</sub>(x<sub>C</sub>,y<sub>C</sub>)‑g<sub>n‑1</sub>(x<sub>C</sub>,y<sub>C</sub>)≥g<sub>T</sub>   (8)其中,g<sub>n</sub>(x<sub>C</sub>,y<sub>C</sub>)为图像序列第n张图片中特征圆圆心(x<sub>C</sub>,y<sub>C</sub>)所在像素格的灰度值,g<sub>n‑1</sub>(x<sub>C</sub>,y<sub>C</sub>)为图像序列第n‑1张图片中特征圆圆心(x<sub>C</sub>,y<sub>C</sub>)所在像素格的灰度值,g<sub>T</sub>为灰度阈值,此阈值根据环境周围亮度进行选取;对于满足式(8)的第n张图片作为编码的起始位置;解码动态编码点:判断特征圆灰度时,以编码点中心的灰度值代表其整体灰度,并以编码点亮时的灰度为g<sub>1</sub>,编码点暗时的灰度值为g<sub>0</sub>;以上述得到的第n张图片作为编码的起始位置,对后续编码图像序列内每帧图像中编码点中心的灰度进行判断,将图像序列转化为一个二进制数的数列,得到数列{a<sub>n</sub>},数列中的每一项由以下公式确定:<maths num="0007"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>a</mi><mi>i</mi></msub><mo>=</mo><mn>0</mn><mo>,</mo><msub><mi>g</mi><mi>i</mi></msub><mo>-</mo><msub><mi>g</mi><mn>0</mn></msub><mo>&lt;</mo><mo>|</mo><mi>&sigma;</mi><mo>|</mo></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>a</mi><mi>i</mi></msub><mo>=</mo><mn>1</mn><mo>,</mo><msub><mi>g</mi><mi>i</mi></msub><mo>-</mo><msub><mi>g</mi><mn>1</mn></msub><mo>&lt;</mo><mo>|</mo><mi>&sigma;</mi><mo>|</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>&Element;</mo><mi>N</mi></mrow><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000980003420000042.GIF" wi="661" he="149" /></maths>其中,σ为灰度差阈值;由于编码点是按照固定的频率闪烁的,该二进制数序列为循环数列,即存在常数K,使得公式a<sub>n+K</sub>=a<sub>n</sub>,n∈N   (10)则使式(10)成立的最小自然数K为数列{a<sub>n</sub>}的循环周期,而K即为动态编码点的编码值,改变动态编码点的闪烁频率f<sub>F</sub>就可以相应得到不同的编码值K,此时即实现了动态编码点的解码,根据此编码点的编码值匹配左、右相机图像内的编码点,完成特征点的匹配。
地址 116024 辽宁省大连市甘井子区凌工路2号