双目视觉在智能导盲眼镜中的应用

2018-05-30 01:48吉林大学通信工程学院康亚男樊昌熙张学毅于倩楠施书通
电子世界 2018年9期
关键词:导盲红绿灯斑马线

吉林大学通信工程学院 康亚男 樊昌熙 张学毅 于倩楠 施书通

引言

盲人群体在残疾人群体中占很大比重,我国也是世界上盲人数量最多的国家。由于出行会遇到诸多不便,盲人出行基本依靠盲杖、导盲犬或者他人的照顾,这给他们的心理造成负面影响,同时也增加了家庭和社会负担[1]。在我国人口老龄化逐渐加剧的过程中,由于白内障等眼疾会导致高龄人失去视力,盲人数量会有所增加[2],盲人出行的问题急需解决。即便科技不断发展,他们仍没有如预期那样迈出家门与社会交流,所以我们应当重视盲人出行,让他们也能享受科技的福音。

近期看来,导盲设备的研究还处于萌芽阶段,主要以智能导盲手杖为主,它利用的超声波测距技术在使用过程中不够稳定,不易做推广。其次还有导盲车、可穿戴的导盲系统等,由于不易携带或受外界影响较大等原因,只能停留在概念模型上。本文以树莓派3代B型(Raspberry Pi 3 Model B)[3]为主要控制平台,体积较小,满足了盲人出行的便携性;同时利用OpenCV进行图像快速处理,满足了在盲人出行遇到各种不确定障碍物时信息处理的实时性。

1.智能导盲眼镜整体设计

智能导盲眼镜整体以树莓派为控制平台,外设两个相同的摄像头和一个声卡,其整体框架图如图1所示。智能导盲眼镜主要实现四个功能:第一,识别红绿灯;第二,识别斑马线;第三,计算图像中各物体的位置坐标;第四,语音输出红绿灯、斑马线以及较近障碍物的位置信息。其主要工作流程:摄像头实时获取图像,将图像转化并颜色过滤处理后得出红绿灯识别结果;然后将图像边缘提取和变换后得出斑马线识别结果;再利用视差数据得出位置信息;最后语音输出结果。

图1 智能导盲眼镜框架图

2.功能设计与测试

2.1 红绿灯识别

我们利用OpenCV来进行红绿灯的识别,具体步骤如图2所示。由于摄像头所拍摄的图像为RGB通道,而我们所采用的是基于HSV色彩模型的算法,所以需要对图像进行转化。在提取目标区域过程中,周围环境对图像有一定的影响,所以需要对提取后的图像做进一步的优化处理,如模糊处理、闭运算等,实际情况下,环境较为复杂,所以最终决定采用形态学中的腐蚀和膨胀处理,来进一步减小干扰[4]。

图2 红绿灯识别过程

随机在街头进行测试,摄像头实时拍摄的图像为RGB通道如图3-(a)所示,转化后在HSV模型下的图像如图3-(b)所示。在HSV模型中红色的H范围约为[0,10],[156,180]两个区间,S的范围约为[43,255],V的范围约为[43,255];绿色的H范围约为[35,77],S的范围约为[43,255],V的范围约为[43,255]。确定如上信息之后,通过Opencv中的inRange函数,设定相应的参数,对图片中的红色或者绿色区域进行提取[5],提取结果如图3-(c)所示,优化之后的结果如图3-(d)。对所裁剪后的图片进行遍历每个像素处理,根据其H的大小,确定出是红灯还是绿灯,实验图3最终判定为红灯,结果正确。

图3 红灯判定的处理过程

2.2 斑马线识别

斑马线的特征提取主要利用OpenCV实现,具体有四个步骤:第一,灰度直方图均衡化,即对摄像头拍摄的图片进行灰度图处理,利用equalizeHist函数均衡化图片;第二,中值滤波,即利用medianBlur函数进行中值滤波后消除噪点;第三,Canny边缘提取,即利用Canny函数对图片进行边缘检测,如图4-(a)所示;第四,Hough变换,即利用Hough进行直线提取[6],如图4-(b)所示。通过以上步骤,即可得到图片中的直线,完成特征的提取。

在图像中能提取到很多直线,所以需要一些限定条件来判定斑马线。特征的提取过程中可以得到由rho和theta组成的二维向量表示的直线,我们利用两个限定条件判定斑马线:①相互平行的直线个数>=6;②相互平行的直线之间的距离是相互递减的。

由此可以得到如图4所示结果,斑马线判定成功。

图 4 斑马线识别的处理过程

2.3 计算物体距离

计算物体距离主要利用的是OpenCV和MATLAB,在获得物体位置信息的过程中,考虑到标定误差和实际测量误差,近距离测距结果达到了预期要求[7]。使用 BM 算法测距速度很快,可以达到实时应用的要求,而SGBM( Semi-Global Block Mathing) 算法和 GC(Graph Cuts) 算法虽在精度上略胜一筹,但测距速度较慢,实时性不佳 ,所以系统采用 BM 算法[8]。具体流程如图5所示。

我们对其进行了测验,设定距离小于2.5m时进行语音警报,得到图6所示结果,得到的三维坐标信息中,z轴坐标为距离,单位为毫米(mm),我们将整个图像的每个像素进行遍历,根据亮度与距离的相近程度来判断物体轮廓。

图5 测量距离过程

图6 测量距离的处理过程

3.结语

本文主要基于双目视觉在装有双摄树莓派上的应用研究,在Linux系统上使用Python、MATLAB与OpenCV来对两个摄像头获取的图像进行处理,整个智能导盲眼镜系统具有红绿灯识别、斑马线识别、物体位置信息的计算与语音输出的功能。

现今科技发展迅速,社会环境也变得复杂多样,利用智能导盲眼镜来分担一部分盲人的出行压力,让他们勇于踏入人群之中,感受不一样的生活。

[1]郭嵩,张钰莹,韩少华.关于盲人出行解困的设计研究[J].设计,2014(06):35-36.

[2]赵家良,睢瑞芳,贾丽君,LeonB-Ellwein,张承训,降丽娟,张红,孙国强,宋学峰,毛进.北京市顺义区白内障患病和手术状况的调查[J].中华眼科杂志,2001(01):6-11.

[3]百度百科,树莓派,

https://baike.baidu.com/item/树莓派/80427?fr=aladdin,2018.

[4]高薪,胡月,杜威,史晓玥.田益民腐蚀膨胀算法对灰度图像去噪的应用[J].北京印刷学院学报,2014,22(4):63-65

[5]赵浩杰,金德智,李彦.基于 OpenCV 的彩色目标识别[J].中国科技信息,2016,(2):36-37.

[6]刘波,苗贝贝,史斌,译.oe Minichino.OpenCV3计算机视觉:Python语言实现[M].北京:机械工业出版社,2016.

[7]Adrian Kaehler,Gary Bradski.Learning OpenCV[M].O’Reilly Media,2008.

[8]蔡健荣,赵杰文.双目立体视觉系统摄像机标定[J].江苏大学学报:自然科学版,2006,27(1):6-9.

猜你喜欢
导盲红绿灯斑马线
礼让斑马线
基于云端技术的多功能导盲手杖的设计与实现
基于物联网的导盲机器犬的研究与设计
礼让斑马线
创意斑马线
偷斑马线的人
路口导盲及马路障碍物检测提醒系统的设计
红绿灯前
神奇的红绿灯
会说话的红绿灯