发明名称 一种室内视觉导航用障碍物高度检测方法
摘要 本发明公开了一种在室内环境中检测地面障碍物高度的方法,属于视觉导航技术领域。本发明可以帮助室内视觉导航系统正确判断室内环境中的障碍物区域和地面区域。本发明通过如下技术方案予以实现:在室内的天花板上安装相机和激光发射装置,激光发射装置可围绕轴心任意旋转。相机的光心和激光发射装置的旋转轴心位于同一水平面。激光发射装置向地面投射光斑,如果没有障碍物光斑可以到达地面;如果存在障碍物则光斑投射到障碍物上。利用相机拍摄室内的俯视图像,利用光斑投射到地面和投射到障碍物上成像位置的偏移计算障碍物的高度。
申请公布号 CN102338621B 申请公布日期 2013.11.20
申请号 CN201110105389.2 申请日期 2011.04.27
申请人 天津工业大学 发明人 汪剑鸣;王胜蓓
分类号 G01B11/03(2006.01)I 主分类号 G01B11/03(2006.01)I
代理机构 代理人
主权项 1.一种在室内环境中检测地面障碍物高度的方法,包括下列步骤:(1)把相机和激光发射装置安装在天花板上,激光发射装置的旋转轴心C和相机的光心O在同一水平面;O点到C点的距离为<img file="FSB00001110371700011.GIF" wi="76" he="54" />;相机的光轴与地面垂直,且与地面交于O<sub>f</sub>点;O到O<sub>f</sub>点的距离为<img file="FSB00001110371700012.GIF" wi="120" he="70" />即O点到地面的距离;激光发射装置水平方向旋转转角表示为θ,竖直方面转角为ф;相机的焦距为f<sub>c</sub>;(2)固定激光发射装置的旋转角度,向地面发射光斑;地面上没有障碍物时,光斑投射到地面上,在相机像平面的成像为i<sub>R</sub>;地面上有障碍物时,光斑投射到障碍物上,在相机像平面的成像为i<sub>P</sub>;相机像平面中用于成像的矩形区域为W,拍摄的图像表示为I=[I<sub>r</sub>(x,y),I<sub>g</sub>(x,y),I<sub>b</sub>(x,y)|(x,y)∈W],其中I<sub>r</sub>(x,y),I<sub>g</sub>(x,y),I<sub>b</sub>(x,y)分别为坐标(x,y)处图像颜色值的红色分量,绿色分量和蓝色分量;选择阈值T,利用阈值分割方法对I进行分割,得到<img file="FSB00001110371700013.GIF" wi="1763" he="186" />i<sub>R</sub>和i<sub>P</sub>间存在偏移,表示为<img file="FSB00001110371700014.GIF" wi="96" he="66" /><maths num="0001"><![CDATA[<math><mrow><mover><mrow><msub><mi>i</mi><mi>R</mi></msub><msub><mi>i</mi><mi>P</mi></msub></mrow><mo>&OverBar;</mo></mover><mo>=</mo><mroot><mrow><msup><mrow><mo>(</mo><msubsup><mi>x</mi><mi>R</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>P</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msubsup><mi>y</mi><mi>R</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>-</mo><msubsup><mi>y</mi><mi>P</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup></mrow><mn>2</mn></mroot><mo>,</mo></mrow></math>]]></maths>其中<maths num="0002"><![CDATA[<math><mrow><msub><mi>x</mi><mi>R</mi></msub><mo>=</mo><mover><mi>OC</mi><mo>&OverBar;</mo></mover><mo>+</mo><mi>cos</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mi>tan</mi><mrow><mo>(</mo><mi>&phi;</mi><mo>)</mo></mrow><mover><msub><mi>OO</mi><mi>f</mi></msub><mo>&OverBar;</mo></mover><mo>,</mo></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><msub><mi>y</mi><mi>R</mi></msub><mo>=</mo><mi>sin</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mi>tan</mi><mrow><mo>(</mo><mi>&phi;</mi><mo>)</mo></mrow><mover><msub><mi>OO</mi><mi>f</mi></msub><mo>&OverBar;</mo></mover><mo>,</mo></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msubsup><mi>x</mi><mi>R</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><msub><mi>f</mi><mi>c</mi></msub><mover><msub><mi>OO</mi><mi>f</mi></msub><mo>&OverBar;</mo></mover></mfrac><msub><mi>x</mi><mi>R</mi></msub><mo>,</mo></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><msubsup><mi>y</mi><mi>R</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><msub><mi>f</mi><mi>c</mi></msub><mover><msub><mi>OO</mi><mi>f</mi></msub><mo>&OverBar;</mo></mover></mfrac><msub><mi>y</mi><mi>R</mi></msub><mo>,</mo></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><msubsup><mi>x</mi><mi>P</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mrow><munder><mrow><mo>&Integral;</mo><mo>&Integral;</mo></mrow><mrow><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>W</mi></mrow></munder><mi>x</mi><msub><mi>I</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>dxdy</mi></mrow><mrow><munder><mrow><mo>&Integral;</mo><mo>&Integral;</mo></mrow><mrow><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>W</mi></mrow></munder><msub><mi>I</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>dxdy</mi></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><msubsup><mi>y</mi><mi>P</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mrow><munder><mrow><mo>&Integral;</mo><mo>&Integral;</mo></mrow><mrow><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>W</mi></mrow></munder><mi>y</mi><msub><mi>I</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>dxdy</mi></mrow><mrow><munder><mrow><mo>&Integral;</mo><mo>&Integral;</mo></mrow><mrow><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>W</mi></mrow></munder><msub><mi>I</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>dxdy</mi></mrow></mfrac><mo>;</mo></mrow></math>]]></maths>得到障碍物的高度<maths num="0008"><![CDATA[<math><mrow><mi>h</mi><mo>=</mo><mfrac><mrow><mover><msub><mi>OO</mi><mi>f</mi></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><msub><mi>OO</mi><mi>f</mi></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>i</mi><mi>R</mi></msub><msub><mi>i</mi><mi>P</mi></msub></mrow><mo>&OverBar;</mo></mover></mrow><mrow><msub><mi>f</mi><mi>c</mi></msub><mo>&CenterDot;</mo><mover><mi>OC</mi><mo>&OverBar;</mo></mover><mo>+</mo><mover><msub><mi>OO</mi><mi>f</mi></msub><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><mover><mrow><msub><mi>i</mi><mi>R</mi></msub><msub><mi>i</mi><mi>P</mi></msub></mrow><mo>&OverBar;</mo></mover></mrow></mfrac><mo>.</mo></mrow></math>]]></maths>
地址 300387 天津市河东区成林道63号