APP下载

基于FPGA嵌入式视觉的导盲算法实现

2020-04-09孙鑫宇储辉杨天歌高天维王嵘万永箐

计算技术与自动化 2020年1期

孙鑫宇 储辉 杨天歌 高天维 王嵘 万永箐

摘   要:项目在FPGA平台上实现了一系列的图像处理算法。通过HSV色彩空间上的阈值判断、形态学滤波等方法识别出了一张图像中的盲道成分,加以一系列的分析判断,得出盲道的详细情况,并充分发挥了FPGA的高速并行特点,实现了每秒千帧的超高速处理。结果表明,系统具有很高的识别准确度与很强的环境适应性。

关键词:FPGA;盲道识别;嵌入式视觉;

中图分类号:TP391                                             文献标识码:A

Blind-guiding Algorithms Based on FPGA Embedded Vision

SUN Xin-yu,CHU Hui,YANG Tian-ge,GAO Tian-wei,WANG Rong,WAN Yong-jing?覮

(School of Automation ,East China University of Science and Technology,Shanghai 200237,China)

Abstract:Our project implements a series of image processing algorithms on the FPGA platform. Through the morphological filtering on the HSV color space and threshold judgment,the blind sidewalk components in an image are identified,and a series of analysis and judgment are made to obtain the details of the blind sidewalk,and the high-speed parallel characteristics of the FPGA are fully utilized to realize ultra-high speed processing of thousands of frames per second. The final result shows that the system has high recognition accuracy and strong environmental adaptability.

Key words:FPGA;blind sidewalk identification;embedded vision;

视障人群是一个很大的弱势群体。调查表明,中国现有视力残疾人数量达到1350万,其中550多万为盲人,占世界盲人总数的18%,同时,还有800多万的低视力者[1]。视障人群数量庞大,但我国社会导盲设备现状却仍存在很多问题亟待解决。常见辅助工具主要有导盲杖和导盲犬两种,然而导盲杖功能过于局限而导盲犬可控性差且价格昂贵--社会急需新型导盲设备。

国内外市场中,一方面,成熟商业化智能导盲产品为数不多,且大多产品存在有传感技术落后、欠智能化、人机交互困难的通病,可改进空间较大。另一方面,企业缺乏与盲人使用者的深入沟通了解,对用户体验和需求把握有偏差,且收集用户意见反馈环节较为薄弱。

为了更加切合盲人群体的实际需求,笔者团队走访了上海市的各类公共场所,及时记录当前盲道设施现状。同时,与上海市盲人协会取得了联系,并与几位盲人朋友进行了深入的交流。在实地调研、走访交流与相关文献查阅过程中我们得知,鲜有盲人会选择行走盲道,由于对盲道等基础设施的不信任,更有盲人直言,“走盲道就是作死”[2]。

着眼于保障盲人群体在盲道上的安全问题,旨在利用机器视觉方法弥补视障群体先天视觉的不足,通过利用FPGA实现高速并行流水图像处理算法,为视障人群提供基于FPGA嵌入式视觉的导盲方法。

1   系统设计

为了实现系统对视频信号的高速处理,与系统状态变化的快速响应,我们将任务划分为了多个符合费林分类法SIMD原则的高并行度处理结构,依次为:视频流采集单元、色彩空间转换及阈值分割单元、形态学开运算及判定单元、盲道状态分析单元、障碍检测单元、VGA显示单元,各独立单元之间采用数据流的形式连接。

图1   系统框图

1.1   视频流采集单元

该单元作为视频流DVP信号的入口单元与CMOS摄像头控制信号的出口单元[3]。单元通过SCCB总线实现对CMOS摄像头的寄存器功能参数的配置[4],SCCB总线由SCCB_E、SIO_C、SIO_D、PWDN信号组成。

图2   SCCB总线信号仿真时序图

单元解析视频流DVP信号以获取视频内容[5],信号由VSYNC、HSYNC(HREF)、PCLK、DATA[8]组成;通过行列同步信号可以实现对视频信号的同步,并在PCLK上升沿采集获取原始RGB數据。

视频流信号接收后被送入行缓存空间,行缓存空间存有视频流内容及对应行号。其中行号数据由本单元计数产生,计数值在HSYNC上升沿时加一,在VXYNC上升沿时清零。

图3   DVP总线信号仿真时序图

图4   行缓存空间示意图

1.2   色彩空间转换及阈值分割单元

图像识别方法多是基于灰度图像完成的,而盲道作为有明显统一颜色信息的图像,可以应用颜色阈值分割出大概范围,使得目标图像与背景更好的分离[6]。常用的RGB彩色图像的三个基色分量受光照等环境因素影响很大,不易设置阈值,而HSV颜色模型更贴近人眼对颜色的感知程度,不易受周围环境的影响,其中色度信息H分量可近似表达一副图像。因此,阈值分割主要考虑H分量,辅以S与V分量以防亮度过高或过低的区域。此外,相较于HSI(亦作HSL)空间,HSV空间更利于色彩的选择,而HSI空间则利于色彩的调整[7]。

图5   HSV分量效果图

常规方法是将原始RGB数据通过转换公式转化为HSV空间后,再进行阈值判断[8]。式中max、min分别表示RGB三分量中的最大值与最小值。

但是上述方法将会产生2至3个除法器,在消耗大量系统逻辑资源的同时,还会带来较大的组合逻辑时延。因此,需对以上公式进行系列线性变换,根据FPGA自身特性,将耗费资源量大的除法运算变成可以依靠内部DSP资源完成的乘法运算。

标准盲道应为鲜艳的黄色,其色调大致位于60°附近,故H分量阈值下限h1落入(0°,60°)区间,而上限h2落入(60°,120°)区间。又因S分量为零时,H分量无意义,故S分量下限s1为正数。

经过上述修正,像素点是否位于阈值范围内的判别式为:

(4)

修正前后消耗内部资源对比如下:

表1   修正前后消耗内部资源对比

1.3   形態学开运算及判定单元

在保护图像边缘和细节方面,非线性滤波器有着良好的效果。形态学滤波器是其重要组成部分,包括二值形滤波器,多值(灰度)形态滤波器等,常用于形状识别、边缘检测、纹理分析、图像恢复和增强等领域。形态学有两种基本运算,膨胀与腐蚀。膨胀通过求局部最大值,可以填补图像区域中某些空洞,连接图像,并消除图像区域中的小颗粒噪声。腐蚀通过求局部最小值,可消除掉面积小且无意义的图像区域。形态滤波主要方法开运算与闭运算就是由膨胀与腐蚀组成,开运算是先腐蚀再膨胀,闭运算是先膨胀再腐蚀。开运算可去除图像上与结构元素形态不相吻合的分布结构,并保留其余吻合部分。闭运算可填充图像上与结构元素形态不相吻合的分布结构,同样保留其余吻合的部分。有效的组合膨胀与腐蚀可用来有效提取特征和平滑图像。因为形态学运算是通过图像的几何形态特征进行处理,所以可保持图像结构不被钝化[9]。

为了防止图像边缘信息的丢失,首先应对图像进行边缘复制填充。又因盲道大多为水泥材质,表面粗糙且易附着杂质,存在有大量椒盐噪粒[10],故需选取范围较大的卷积核,本文中选取了5×5的矩形窗。

图6   图像边缘复制填充示意

卷积操作采用了流水线结构,通过滑动窗口遍历整幅图像。首先对位图进行二值膨胀,当卷积结果大于规定阈值时,可认为锚点存在有相应成分;相应地,在腐蚀操作时,若卷积结果小于相应阈值即可认为锚点不存在盲道成分。

经实际测试,对位图进行三次膨胀两次腐蚀后的处理效果最佳,此时系统几乎不存在有噪粒。

形态学开运算后,划分出若干符合盲道颜色特征的位图区域,对每一个区域的阈值分割后的图像反色,并进行霍夫直线检测[11],统计长度大于一定值(暂取200)的直线之间的关系。

图7   膨胀腐蚀实现示意图

通过直线与底边的夹角角度差判断是否平行,垂直(直线顺时针旋转,直至与底边重合的旋转角),角度差相差小于10度,视为平行,角度差在85度至95度内,视为垂直。若某一区域中超过30%的直线关系不是平行或垂直,则不将该区域视为盲道。

1.4   盲道分析单元

盲道砖在道路上的铺设主要有两种,一为竖条型,一为圆点型,在行走的过程中,主要存在直行,左右转、左右偏等五种情况。设直行是默认情况,这时只需判断是否是左右偏转。

在分割出盲道位图的基础上,左右偏转判断可由盲道左上顶点(lefttop),右上顶点(righttop),左下顶点(leftdown),右下顶点(rightdown)的数值关系得出。

先以公式

righttop.x-lefttop.x≥2*(rightdown.x - leftdown.x)

(5)

判断是否满足转弯情况。该表征了盲道在直行的基础上存在着横方向的路径。

在此基础上,满足

leftdown.x-rightdown.x > rightdown.x-leftdown.x

(6)

时前方左转。反之,若满足

righttop.x-rightdown.x > rightdown.x - leftdown.x

(7)

时则表征了前方右转。又考虑图像识别出的盲道两边未必垂直,以及视觉图像近大远小的特点计算会略有修正。

而左右偏则仅需判断底端顶点位置,以下判据分别描述了左偏和右偏的情况

(rightdown.x + leftdown.x)/2 < leftThreshold.x

(8)

(rightdown.x + leftdown.x)/2 < rightThreshold.x

(9)

至于盲道区域左右顶点的寻找可以通过比较判断锚点斜向窗口内盲道成分数量,辅以锚点横纵坐标。以左上顶点为例,若右下窗口内的盲道成分与左下之差大于某一阈值,且该点横纵坐标和最小,则可认为该锚点为盲道左上顶点。

图8   膨胀腐蚀实现示意图

1.5 障碍检测单元

通过盲道的四个顶点可在盲道位图内划分出一个矩形边框

beginrow = max(lefttop.y,righttop.y)        (10)

endrow = min(leftdown.y,rightdown.y)        (11)

begincol = max(lefttop.x,leftdown.x)        (12)

endcol = min(rightdown.x,righttop.x)        (13)

定義一个数组与行变量进行障碍连通判定,遍历此矩形边框的像素判定情况。

若某一列的像素被判定为不是盲道内容,则行变量加一并判断该列数组变量值与前一列数组变量值的关系,若前一列数组变量值大于该列数组变量值,则该列数组变量更新为前一列数组变量值加一,若小于或等于,则该列数组变量更新为原值加行变量值。若某一列的像素被判定为盲道内容,则该列数组变量与行变量归零。

在遍历完一行后,需反向遍历,在某一列的像素被判定为不是盲道内容且该列数组变量值小于其后一列数组变量值时,该列数组变量值更新为其后一列数组变量值,若某一列数组变量值超过一定值时(暂取300)时判定前方盲道上有障碍。

1.6   VGA显示单元

为了方便系统调试及图像处理结果输出,系统增设VGA显示单元用于输出某一阶段的处理效果。

由于VGA显示时序与采集及处理部分存在差异,故需在VGA显示单元之前增设一双口RAM作为缓冲[12],由任意指定功能单元写入相应地址空间,与此同时,VGA显示单元读出另一地址空间内容,两者之间互不干扰。

图9   FUNCTION-RAM-VGA 结构RTL视图

2   系统实现效果

系统选取了ISE14.7作为软件开发工具,Xilinx Virtex-5系列的XUPV5-LX110T作为硬件平台,对系统进行了功能性仿真及板上实际测试。

实验结果表明,系统能够满足功能需求,总体处理速度高达每秒1000FPS。此外,系统还能适应复杂的道路情况并受环境光条件制约相对较小,具有较高的准确性与鲁棒性。

图10   XUPV5-LX110T评估平台

图11   强反光条件下的系统效果

图12   阴影条件下的系统效果

3   结  论

基于嵌入式机器视觉和FPGA技术,提出了一种盲道识别的图像处理方法,并在Xilinx 的XUPV5-LX110T平台上进行了相应算法实现。此方法可以广泛用于基于嵌入式机器视觉的导盲辅具,从而有效地保障了视障群体在盲道上的出行安全。

视障人群作为这个社会不可忽视的一部分,如何让他们走出黑暗,融入社会,全方位的满足他们的需求,让出行不再困难,信息不再闭塞,让每一个视障人士都获得基本的权力和自由,是需要不断关注讨论和研究的课题。真诚希望借助科技的力量,可以帮助弱视人群克服生理残疾障碍,逆光出行。

参考文献

[1]    中国残疾人联合会.2010 年末全国残疾人总数及各类、 不同残疾等级人数[EB/OL].http://www.cdpf.org.cn/sjzx/ cjrgk/201206/t20120626_387581.shtml,2012-06-26.

[2]    张旭光,陈琳,王萍,等.闲着的盲道[N].北京晨报,2013-8-27(A16-17) .

[3]    王华,娄小平,李伟仙,等.基于FPGA工具的关节臂激光扫描测头CMOS图像采集系统[J].工具技术,2017,51(6):112—116.

[4]    杨会建,杨阳,张环,等.基于SCCB总线配置的FPGA视频采集系统设计[J].长春理工大学学报:自然科学版,2015,(4):97—100.

[5]    王浩宇,漆晶,谭歆.基于Zynq-7000的视频采集平台设计[J].工业控制计算机,2017,30(4):55—56,59.

[6]    靖固,任晓宇,纪颖.盲道识别系统算法设计及FPGA实现[J].哈尔滨理工大学学报,2014,19(6):38—43.

[7]    王书志,张建华,冯全.基于纹理和颜色特征的甜瓜缺陷识别[J].农业机械学报,2011,42(3):175—179.

[8]    彭玉青,薛杰,郭永芳.基于颜色纹理信息的盲道识别算法[J].计算机应用,2014,34(12):3585—3588,3604.

[9]    王佳宁.图像处理中方向滤波器的设计[J].考试周刊,2011,(46):148.

[10]  王阳.高密度椒盐噪声污染图像修复方法研究[D].大连:大连理工大学,2016.

[11]  ILLINGWORTH J,KITTLER J. A survey of the hough transform[J]. Computer Vision,Graphics,and Image Processing,1988,44(01):87—107.

[12]  郑争兵.基于FPGA的VGA波形显示系统设计与实现[J].液晶与显示,2014,29(1):88—93.