方艳红, 赵 琳, 张红英,2, 王学渊
(1.西南科技大学 信息工程学院,四川 绵阳 621010; 2.特殊环境机器人技术四川省重点实验室,四川 绵阳 621010)
世界卫生组织2018年10月发布的统计数据显示,在全球范围内,估计有13亿人患不同形式及程度的视力损害,且大多数视力受损人员的年龄超过50岁。近年来,随着计算机软件和硬件技术的发展,使我们更有能力为盲人这一弱势群体的生活带去一些便利[1,2]。现有的盲人辅助工具为视力受损人群提供了一定的帮助,但在实际的推广使用过程中都存在价格昂贵、体验不好、实时性差等问题。
本文设计了一种人性化、智能化、大众化的便携式导盲系统来帮助盲人躲避障碍物。具体的,首先实现基于视觉的障碍物检测,在此基础上,将障碍物的图像距离转换为空间中的实际距离,实现对障碍物的测距并将结果转换成语音信号输出。
系统的整体结构设计框图如图1所示。
图1 系统整体结构框图
在树莓派中利用OpenCV平台检测视频中的障碍物,利用透视投影变换计算深度信息,当使用者在白墙面前时,视频图像数据无法提取除障碍物信息,辅助以超声波传感器来完善功能,最后将处理分析结果通过耳机从3.5 mm音频接口进行输出。为了方便设计过程中的调试测试,通过HDMI接口外接一电容显示屏,设计开发完成后取下。
如图2所示,障碍物检测处理流程主要分为三部分,首先是对原图进行色彩空间转换;然后用提出的改进VE算法确定分割阈值;最后通过形态学处理填补空洞等。
图2 障碍物检测流程图
当图像中目标较大且与背景有足够差异时,即直方图呈现较明显的双峰分布时,Otsu能找出恰当的分割阈值。但当图像中目标较小,直方图近似呈现单峰分布时,Otsu基本失效。文献[7]提出强调谷底的(valley-emphasis,VE)算法对大津法进行优化
(1)
式中 权重W=1-pk。pk值越小(即发生的概率低,也即直方图谷底),权重越大。通过加权使最佳阈值始终在双峰的峰谷或单峰的底部及其附近取得。
本文提出基于类间均值差的改进VE算法,在考虑权重的同时,兼顾两类的类间均值到全局均值的距离,使分割出的两类的均值远离全局均值,最佳阈值的选取如下式
k*=argmax(Ww1w2[(μ1-μ2)2+(μ1-μ)2+
(μ2-μ)2])
(2)
与基本Otsu算法相比,本文算法考虑权重,奖励波谷附近位置,平衡类间大小的差异。与VE算法相比,本文算法新增两项来奖励使两类均值远离全局均值的分割阈值,这样一来,分割出的两类相互远离,形成更好的分割效果。
障碍物检测完成后,可以得出图像中的障碍物位置及相应特征点坐标,下一步需要实现图像距离到世界距离的转换。具体流程如图3所示。
图3 障碍物测距流程图
如图4所示的测距模型中,F是地平面上任意一点,P是过F点向世界坐标系中Yw轴作垂线的交点;f=OcO是CCD摄像机的有效焦距,H为摄像机垂直于地面的垂足,h为镜头中心到地面的高度,(x0,y0)为成像平面坐标系原点,通常为(0,0),A为P在成像平面上的投影坐标,B为F在成像平面上的投影,根据几何关系得到点P与镜头光心的水平距离HP的计算表达式HP=h×/tan-1[α+arctan((y-y0)/f)],其中的α是摄像头与水平面的夹角大小,α,h都是通过测量得到,y0一般取0,f,y是未知的。f是摄像头的有效焦距,是摄像头的内参,y是P点在成像平面上的投影坐标在y轴上的分量,称为成像平面坐标,单位记为mm。
图4 测距几何模型
1)成像平面坐标系到像素坐标系的变换数字图像上任意点的坐标(u,v)表示像素点位于像素坐标系的第几行第几列,要确定其物理位置,需建立以物理单位表示的成像坐标系Ox,y,任意点的坐标记为(x,y),其转换关系为
(3)
式中dx,dy分别为像素坐标系中每个像素在x,y轴上的物理尺寸,(u0,v0)为成像坐标系原点在像素坐标系中的坐标,一般在中心位置,但由于摄像头制造工艺、安装角度等原因会出现漂移现象。
2)摄像头坐标系到成像平面坐标系的变换
在理想摄像头模型中,空间中任意点P在摄像机透视投影到二维成像平面坐标系中,投影关系为
(4)
式中f为摄像机焦距,即成像平面到摄像机焦平面的距离,(x,y)为成像点在成像坐标系下的坐标,(XC,YC,ZC)为空间点在摄像机坐标系下的坐标。
3)世界坐标系到摄像头坐标系的变换
从世界坐标系到摄像头坐标系之间的变换属于刚性变换,是由旋转和平移组成的,其转换关系如下
(5)
式中R,T分别为世界坐标系和摄像头坐标系之间的相对位置和姿态,R为一个3×3阶正交矩阵,表示旋转;T为一个3×1的平移向量。
4)世界坐标系到像素坐标系的变换
联立式(3)~式(5)可以得到世界坐标系到像素坐标系之间的映射转换关系
(6)
式中ax=f/dx,ay=f/dy分别为在u,v轴上的归一化焦距,式(6)等号右侧第一部分为内参矩阵,只与摄像头内部结构、制造工业有关,R,T与摄像头的外部环境有关,称为摄像头的外参矩阵。
5)畸变校正
在实际应用中,由于摄像头在制造安装过程存在一定的误差,因此会产生不同程度的镜头畸变,如径向畸变、偏心畸变和薄透镜畸变等。非线性畸变表示为[8]
x′=x+δx(x,y),y′=y+δy(x,y)
(7)
式中 (x,y)为理想成像点P的坐标,(x′,y′)为畸变下的成像点P′的坐标。δx和δy与成像点在图像中的位置有关,为非线性畸变量
(8)
式中k1,k2,p1,p2,s1,s2为非线性畸变参数,在一般的实际应用情景中,仅考虑径向畸变已经可以比较准确地描述出非线性畸变,因此将上式进一步化简成x′=x(1+k1r2),y′=x(1+k2r2)。
本文使用张正友的平面标定法来对摄像头进行标定。在不同的角度和距离下连续20次拍摄7×10的平面棋盘格标定板(每个棋盘格大小为26 mm×26 mm)。对靶标图像进行处理,检测棋盘格角点,所有标定角点全部检测完成后,标定出摄像头参数。将图像反投影到成像平面,计算反投影后的像素误差,本文实验的像素误差均值为0.067,最大误差是0.07,在误差范围内。最后,得到的摄像头内参矩阵为
系统采用Rpi Camera(E)摄像头采集 像素大小的视频图像,通过CSI接口传入树莓派开发板,在树莓派上进行分析处理,将处理结果通过3.5 mm的音频接口输出。
本文提出了基于改进VE的分割算法来实现障碍物的检测,在实验室内用Rpi Camera拍摄一张图片并进行处理,效果如图5所示。
图5 室内场景处理效果
同样在其他场景下进行测试,效果如图6所示。
图6 障碍物检测测试
如图6所示的多场景下测试实验,由于本文选择图像的饱和度特性分量做分析处理,因此在光照条件下有良好的鲁棒性,如图6(a)的强光照和图6(f)的弱光照场景;当背景与目标障碍物的色彩相近时,算法促使两类类内均值相互远离,使两类最大程度分开,如图6(c),(d)所示;如图6(e)所示的多目标干扰场景下,各个障碍物的颜色、形状和大小都不一样,算法能将目标都检测到。
检测到图像的障碍物之后,用最小外接矩将单个障碍物标注出来,选取最小外接矩的中心点作为特征点。
将相应特征点坐标及摄像头参数代入测距模型进行解算,记录不同距离的测试结果如表1所示。
表1 障碍物测距实验记录
表1所示的是对7张不同距离下障碍物图片的测试记录,从中可以看出,测试的距离与实际距离的绝对误差不超过8 cm,误差率在5.6 %之内,可以满足导盲测距的精度需求,满足设计需求。
首先实现基于视觉的障碍物检测,即对图像中目标的准确分割和定位,研究了如何提高在光照、背景因素等干扰条件下对目标障碍物检测的准确率;在此基础上,将障碍物的图像距离转换为空间中的实际距离,实现对障碍物的测距;最后将障碍物检测系统移植到树莓派开发板上,完成整个系统的设计。