一种基于光条中心线的测距方法

2016-10-27 09:09游佳兴
网络安全与数据管理 2016年17期
关键词:中心线测距像素点

游佳兴,黄 鲁

(中国科学技术大学 电子科学与技术系,安徽 合肥 230026)



一种基于光条中心线的测距方法

游佳兴,黄鲁

(中国科学技术大学 电子科学与技术系,安徽 合肥 230026)

在单目视觉避障系统中,利用红色LED水平光条照射前方障碍物,由摄像头获得图像并处理后得到红光光条,根据光条中心在图像中的位置判断障碍物与摄像头之间的距离。该文对Zhang并行细化算法进行了改进,以适应嵌入式系统快速准确得到红光光条的中心线,由中心线坐标得到障碍物距离及宽度。实验结果证明,该算法具有很好的中心线提取效果;测距范围为25 cm,测距误差在3 mm以内。

openCV;中心线提取;测距;单目视觉

引用格式:游佳兴,黄鲁. 一种基于光条中心线的测距方法[J].微型机与应用,2016,35(17):11-13.

0 引言

目前,扫地机器人避障是非常热门的研究领域,与传统的超声波、红外测距[1]相比,视觉传感器可以得到更多的环境信息;单目视觉系统具有成本低、体积小的特点,适合于扫地机器人。单目视觉避障的方法主要有单目图像还原3D场景[2]、特征检测[3]、结构光测距。本文利用红色LED矩形光条照射前方障碍物,根据光条中心在图像中的位置来判断障碍物距离。

图1(a)、(b)所示分别为距离障碍物5 cm和10 cm的情况下摄像头获得的图像。由这两个图像可知,不同距离下的光条中心在图像上的位置不同,从而达到测距的目的。

图1 不同距离下摄像头获得的光条图像

1 中心线提取

目前中心线的提取算法主要有以下两种:

(1)基于距离变换的方法[4]。建立红色光条的距离场模型,提取距离场中的局部极值点,然后细化处理得到的中心线。该算法的优点是精度高,适合三维场景;缺点是计算复杂度高,实时性较差。

(2)二值细化法[5]。该算法将得到的红色光条二值化,利用迭代的方法从边界开始逐渐删除,直至得到中心线。该算法的优点是实现简单,速度快,可反映各个光条的形状;缺点是如果边界有许多毛刺将会出现除中心线外其他的分支。

图2 提取光条中心线步骤

由于本单目视觉避障系统是用于扫地机器人上,要求测距精度较高、实时性好,因此本文采用二值细化法。提取光条中心线的步骤如图2所示。首先在Open Source Computer Vision Library(openCV)中利用HSV颜色空间将红色光条提取出来[6],如图3所示,将红色光条部分的像素值置0(黑色),其他背景的像素值置255(白色)。针对边界出现毛刺会影响中心线提取的缺点,对提取出的红色光条图像进行开运算,消除边界毛刺的影响。

图3 HSV颜色空间提取红色光条

1.1图像开运算去毛刺

开运算是图像形态学中的先腐蚀后膨胀的结果,开运算可以在不改变光条基本形状的情况下平滑边界,消除边界毛刺,避免中心线出现分支。本文利用openCV自带的腐蚀函数cvErode(src,dst,element,1)和膨胀函数cvDilate(src,dst,element,1)来进行开运算操作。其中src为原图像,dst为处理后的图像,element为腐蚀膨胀窗口的形状和大小(在本文中,选择的是10×10的矩形窗口),最后一个参数为膨胀腐蚀的次数。

1.2中心线提取算法

本文算法的思想是迭代删除光条的上边界和下边界,且保证中心线上的像素点不会被删除,直至得到光条的中心线。

将开运算处理后的二值图像归一化,利用openCV内的函数cvThreshold,光条部分的像素值为1,其他为0。为了判定像素值为1(光条部分)的点P1(i,j)是否为边界,取其周围3×3的窗口内的像素点作为判定,如表1所示。遍历光条中的所有像素点,根据3×3窗口内P1(i,j)周围8个像素点确定其是否为上边界或下边界,如果是则将其像素置0(删除边界),最终得到水平方向垂直宽度为1的中心线。

表1 P1(i,j)周围3×3窗口的像素点

算法将迭代分为两个部分:第一部分是将光条的上边界删除,第二部分是将光条的下边界删除。将位于光条上边界的点P1(i,j)置0的条件为:(1)B(P1)≤6;(2)A(P1)=1;(3)P2=0 &&P6≠0。

其中,B(P1)为P1点周围8个像素点中为1的个数,即:

B(P1)=P2+P3+P4+P5+P6+P7+P8+P9

A(P1)为P2,P3,P4,…,P8,P9顺序中01序列的个数,如图4(a)所示,A(P1)=1;图4(b)所示,A(P1)=2。

图4 P1周围8个像素点01序列的个数

如果P1点不满足上述3个条件中的任何一个,则该点不属于上边界,P1点将不会被置0。位于光条下边界的点满足的条件与上边界的条件类似,只是条件(3)有所改变:

P6=0 &&P2≠0。

图5 判定条件(1)和(2)的必要性

对于条件(1),如果B(P1)>6,则该点肯定不在边界上,如图5(a)所示,该P1点满足条件(2)和条件(3),但是该点明显位于中心线上,不能置0,所以需要满足条件(1)。对于条件(2),如果出现图5(b)所示的情况,该情况满足(1)和(3)两个条件,但是该P1点是位于中心线上,不能置0,由图可知A(P1)=2,不满足条件(2),该P1点不会被置0。因此,条件(1)和(2)都是为了保护中心线上的点不会被置0而被保存下来的必须条件。

在满足条件(1)和(2)以后,确定P1点不在中心线及光条内部(B(P1)=8的情况),如果满足条件(3),说明P1点位于光条的上边界,则该点会被标记并置0。同样,条件(3)′确定P1点位于光条的下边界。如图6所示为该算法得到中心线的例子,其中“*”代表标记置0的边界,先标记上边界并置0,再标记下边界并置0,迭代以上步骤,直到得到图6最右图片的中心线为止。

图6 中心线提取算法例子

图7所示为程序的流程图,vector M的初始值为0,即size(vector M)=0。

图7 算法流程图

2 根据中心线坐标求出距离

图8所示为摄像机透视投影模型,其中,ABCD为图像坐标系,A′B′C′D′为实际坐标系,机器人的前进方向为X′轴方向。O点为摄像机位置,O′为LED所在位置,OO′的距离为h,G点为图像中心,G′为G点在实际坐标系的投影点,摄像机的俯仰角即∠G′OO′为θ,P点为1.2节中得到的中心线上的一点,相对于G点的坐标为P(x,y),P′为P点对应的实际坐标系上的点,Dx为X′轴方向上P′与机器人之间的距离(即障碍物与机器人之间的距离),Dy为P′在Y′轴方向上的距离(即障碍物的水平距离)。

由图8可以得到Dx和Dy的距离公式如式(1)和式(2)所示,其中,(x,y)为P点相对于图像坐标系中心G的坐标,dx和dy分别为图像坐标系水平和垂直方向上的坐标点距,f为摄像机焦距。dx、dy、f为摄像机参数,通过标定得到,如表2所示。

(1)

(2)

图8 透视投影模型

3 实验结果及分析

图9 前方障碍物为红色纸盒和黄色纸盒

为了检测算法的有效性,选取了前方障碍物为纸盒的环境信息。图9(a)表示具体的环境信息图片,(b)为摄像头获得并处理后的红色光条的图像,(c)为本文算法得到的中心线,(d)为Zhang并行化细化算法得到的骨架中心线。如图9(d)所示,由于Zhang并行细化得到的是骨架中心线,是在两个方向上对图像进行细化,如果光条宽度不一致,就会得到竖直方向的分支,且会缩减中心线的长度,这样会给机器人避障带来很大的误差(中心线的位置代表障碍物的位置)。

如表3所示,P(x,y)为图9(c)中两条中心线上的其中一个点相对于图像中心的坐标。根据式(1)、式(2)测得障碍物距离。两个盒子与机器人之间的实际距离分别为5 cm和10 cm,水平实际距离分别为8 cm和11.5 cm,结果如表3所示,其中Dy为正代表障碍物在机器人中心左边,负为右边。测距误差在3 mm以内。在ARM Cortex-A8,CPU主频为1 GHz,内存为512 MB的开发板中,对于图9(a)所示的环境信息,该算法的运行时间为0.23 s。

表3 障碍物实际距离

4 结束语

本文针对单目视觉避障系统提出了一种快速的测距方法,算法处理效果好,测距精度较高,在嵌入式系统中能够较好地保证实时性,但在算法的处理时间上还需改进。在未来的工作中,可以通过提高硬件要求来改进算法,改进算法的方案是增加中心线算法窗口大小,使每次迭代删除的边界更多,缩短运算时间。

[1] 曹小松,唐鸿儒,杨炯. 移动机器人多传感器信息融合测距系统设计[J]. 自动化与仪表,2009,24(5):4-8.

[2] LIN Z, DAVIS L. Shape-based human detection and segmentation via hierarchical part-template matching[J]. Pattern Analysis and Machine Intelligence,2010,32(4):604-618.

[3] SAXENA A, SUN M, NG A Y. Make 3 D: Learning 3 D scene structure from a single still image[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2009,31(5):824-840.

[4] SHARF A,LEWINER T,SHAMIR A,et al. On-the-fly curve-skeleton computation for 3D shapes[J].Computer Graphics Forum,2007,26(3):323-328.

[5] PALAGYI K,KUBA A. A parallel 3D 12-subiteration thinning algorithm[J]. Graph Models Image Process,1999,61(4):199-221.

[6] 汤一平, 宗明理. 基于双色反射模型的彩色结构光颜色识别的研究[J]. 计算机学报,2013,36(9):1908-1916.

A method of ranging based on light strip centerline

You Jiaxing,Huang Lu

(Electronic Science and Technology Department, University of Science and Technology of China, Hefei 230026, China)

In monocular vision obstacle avoidance system, using a red LED light illuminated in front of the obstacle, the image obtained by the camera and processed to give a red light bar, the distance between the obstacle and the camera is judged according to the position of the light strip center in the image. In this paper, Zhang parallel thinning algorithm has been improved to accommodate the embedded systems quickly and accurately obtain the center line of the red light. The obstacle distance and width is obtained by the centerline coordinates. Experimental results show that the algorithm has a good centerline extraction effect. Distance measuring range is 25 cm, the ranging error is within 3 mm.

openCV; centerline extraction; ranging; monocular vision

TP391

ADOI: 10.19358/j.issn.1674- 7720.2016.17.003

2016-04-01)

游佳兴(1991-),男,硕士研究生,主要研究方向:嵌入式系统。

黄鲁(1961-),男,硕士,副教授,主要研究方向:电路与系统、集成电路。E-mail:luhuang@ustc.edu.cn。

猜你喜欢
中心线测距像素点
立式水轮发电机组“三条线”浅析
基于局部相似性的特征匹配筛选算法
类星体的精准测距
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
浅谈超声波测距
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
X线摄影中中心线对DR摄影质量的重要性
基于Meanshift和Hough变换的秧苗行中心线提取
基于PSOC超声测距系统设计