基于深度图像信息的室内导盲系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-56- 科学技术创新2019.09
基于深度图像信息的室内导盲系统
李定航
(四川大学电气信息学院,四川成都610065)
摘要:针对盲人独自在室内环境下行动容易受到障碍物的影响的问题,提出了基于图像深度信息的室内多种障碍物的检测 算法。
首先使用微软Kinect v2来拍摄室内的图像,然后从采集到的深度信息来重建出三维场景,并获取相应的3D 点云数据;其
次利用经典的随机采样一致性(RANSAC)算法,参考地面相对于人体的位置和距离等特点,将地面从获取的点云中提取出来;最 后利用剩余的点云数据,根据不同障碍物各自的特性,提出对应的检测算法并结合欧式聚类算法可将各障碍物分割开来,再根据 门宽和门高所满足的条件精确区别出门平面和墙平面,最后利用N -近邻采样一致性(NAPSAC)算法提取台阶面,最终通过各台 阶面之间的距离来判定是否有楼梯。
实验结果显示文中提出的算法能够有效检测到室内多种障碍物,并给予盲人精确有效的提
示,有效解决传统方法易受光照影响,对于不同深度、倾斜和形状不规则的障碍物检测效果差,输出信息单一的问题。
关键词:三维图像处理;障碍物检测;Kinect;深度信息;3D 点云中图分类号:TP391.41
文献标识码:A 文章编号:2096-4390 (2019) 09-0056-03
根据《第二次全国残疾人抽样调查主要数据公报》统计,中 国盲人数目约为1233万,并且盲人数目以每年45万人的速度 增加。
在陌生的环境中,两种最常用的盲人导航工具是导盲杆 和导盲犬。
然而,导盲杖对用户具有很高要求,并且导盲犬训 练昂贵,通常只能用于户外,在室内环境中盲人大多靠自己摸 索。
现有的盲人导引系统在市场上普遍不太准确,易受GPS 信 号的影响,无法提供目前盲人障碍物的详细信息。
这部分基于 GPS 的产品都是适用于户外环境,而盲人大多数时间是在室内
活动,相关室内辅助产品较少见。
随着计算机视觉算法的发展,
先进的视觉识别系统逐渐受到人们的关注。
基于双目视觉的障 碍物检测一般先利用两个摄像头成像的视差来获取周围环境 的深度信息叫然后结合彩色图像信息分割出障碍物。
这种方法 的缺陷在于易受光照影响,有可能会漏检。
上述各算法可以看 出深度信息对障碍物检测是非常有帮助的。
本文利用微软的 Kinect v2设备来获取周围环境的彩色信息以及深度信息,然后 重建三维场景,获取3D 点云数据并进行预处理,根据室内环境 中常见障碍物各自的形状特征,结合随机采样一致性、N 邻近点 采样一致性和欧式聚类提取等算法,检测出地面上的分散障碍 物、门、墙和楼梯等多种障碍物,并输出障碍物的方向、距离和尺 寸等信息。
1 Kinect v2传感器简介
Kinect v2是微软在2014年发售的一款传感器,可以同时 获取图片的彩色和深度信息,我们也可以通过该传感器实现人 脸的识别跟踪,手势识别以及对人体关节点的检测等等功能。
图1是Kinect v2的外观图。
图1 Kinect v2外观图
Kinect v2是一个主要由麦克风和摄像头组成的感应器系
统。
摄像头分别包括红外摄像头、彩色摄像头和红外深度摄像
头。
麦克风阵列是L 形布局的。
本文主要是通过Kinect v2来获
取室内环境的深度和彩色信息。
Kinect v2采用的是TOF(Time of Flight)技术,也就是说,深度信息是通过计算反射红外线的返 回时间得到的。
点的深度值表示点位置到相机平面的距离。
通
过该方法得到的数据相对比较稳定,详细,不易受到光照条件的
影响。
2多种障碍物的检测算法
2.1算法概述
根据文献⑶中作者针对学校盲生的调查结果显示可知,盲
学在室内需要避开的常见障碍有墙、门、楼梯、垃圾桶等。
整个算
法流程分为以下几步。
第一步是使用Kinect v2设备在用户面前 获取RGB-D 信息,该装置位于人体腰部,与地面形成一定角度a 。
第二步利用采集的信息,重建3D 点云。
第三步是对点云进行 滤波实现下采样和过滤等预处理。
第四步利用RANSAC 算法从
点云中提取地平面。
最后根据提取地面后剩余点云的物理特征,
利用不同的算法来确定不同种类的障碍物。
2.2平面提取
本文中涉及平面提取的主要有地面、门、墙以及楼梯台阶 面。
一般情况下地面、门和墙平面在点云中所占比例较大,本文
采用经典的RANSAC 算法进行提取。
而楼梯台阶面较小,则采
用NAPSAC 算法回进行提取。
对于一个三维空间中的平面,其模
型如下式:
ax+by+cz+d =0
(1)
平面模型参数为0(a,b,c,d),其中X = (a,b,c)为平面法
向量。
点(x,y,z)到平面0(a,b,c,d)的距离公式为:
\ax + by + cz + d\ •Ja 2 +b 2 +c 2
(2)
随机采样一致性算法的输入包括:预处理后离群值较多的
点云数据u;—些可信参数(如最大迭代次数,置信区间%,判 断是否为局内点的阈值t)。
置信区间"。
的取值范围一般为
[0.95,0.99] , %与迭代次数的关系为:
1一%=(1 —,产今监
log(l-%)log(l-e 3)其中e 为局内点在数据集u 中的比例。
公式⑶的意思是在
作者简介:李定航(1994-),男,汉,重庆,四川大学,图像处理。
(3)
2019.09科学技术创新-57-
kd次子循环过程中,至少有一次采样使得所有三个采样点都是局部点的概率为%。
随着局部点数n唤增加,6增加,k爲减小,迭代进程加快。
该算法的输岀是平面模型的参数
e\a,b\c,d-),和满足该模型的所有局部点的集合I*。
算法流程如下:
经典RANSAC算法
输入:
1-初始化:《=0,儘=~,心=0,N为"的大
小||;
2.从u中随机采样3个点,组成最小子集:
3.最小子集估算平面模型参数;
4.通过对"中所有数据点进行遍历,得到各点
到平面模型的距离D计算公式为(2):如果距
离DM,则被视为局部内点,得到点集人,
中点数为”*;
5.若”*进入步骤6,否则进入步骤7;
6.歹==盃”/N,通过公
式(3)更新殆,;
7.令k=k+l,若*<*……为真,则返回
步骤2,否则前进到步骤8;
&优化模型参数:釆用最小二乘法,通过局内
点/•重新估计模型参数歹。
输岀:
RANSAC算法通过随机采样选取最小子集,常常得到非最佳模型参数,在数据集较大而局内点占比较小的情况下效果较差。
NAPSAC算法对RANSAC算法最小子集获取方式进行了改进,其改进是基于以下观点:数据集中,局内点与其他局内点的距离要比局外点近,即距离越远,是局外点的可能性越大。
针对三维空间,NAPSAC算法最小子集的采样过程如下:
1)在点云"中随机选取一个点。
,设定半径八
以。
为中心尸为半径建立球形;
2)判断球内数据点个数是否小于3,是返回步
骤1),否则进入步骤3):
3)从球体内均匀地取3个点,组成最小子集。
上述过程只替换RANSAC算法中的步骤2,其余步骤与经典算法一致。
由于NAPSAC算法的最小子集采样方法相较于RANSAC更为复杂,耗时更长,因此本文中只在平面占比较小,RANSAC算法提取困难的情况下使用NAPSAC算法,如楼梯的台阶面提取。
2.3分散的障碍物检测
在室内环境中,地面上分散着各种障碍物,比如垃圾桶、箱子、桌子和椅子等。
欧几里得聚类提取算法的主要过程是遍历点云中的点,围绕每个点搜索,将阈值t以内的点分类为同一个聚类,最后将输入的点云划分为多个聚类,每个聚类代表一个障碍物。
我们使用欧几里得距离来测量点(%加《)与点
(兀宀心)之间的距离,公式如下:
D=—x2)2-1^(^—y2)2+(Z]-¾)2(4)提取出各障碍物点云簇之后,需要确定障碍物的大小。
本文采用AABB轴对齐边界框来近似描述复杂障碍物。
一个三维的AABB就看做一个简单的立方体,每一面都平行于一个坐标轴,它的内部是个简单的几何空间,也可以包含形状复杂的物体。
AABB内的点满足以下条件:
<Z<Z max(5)因此需要遍历点云中的全部点,并获取x,y,z每个方向上的最大值最小值,并形成两个重要顶点和
(%^,儿逊,・“)就能唯一地定义一个AABB来描述障碍物的大小。
此外,我们还需要知道障碍物相对于盲人的距离和方向,包括左、右和前。
可用公式⑺来获取障碍物点云的中心点
£,(x“,y“,z“):
、再+兀+…+x”..一必+%+…+儿
"_n'儿—n,
__z1+z2+---+z (6)
其中£(Xi,”,cJ为点云中的第i个点,n为点云大小。
令儿=0,即可得R在xz平面的投影点£;(心,0,・)。
0为坐标原点,障碍物到盲人的距离大小为向量函的模:
Dk=1OP;1=Jx:+z:(7)若x n>0,则障碍物靠右,兀,<0则障碍物靠左,最终可输出各障碍物的距离、方向及尺寸。
2.4门与墙的检测
在实际场景中,门是镶嵌在墙中的,而门所在平面与墙平面并非同一平面,在垂直方向可能存在一定距离,且两平面都垂直于地面,因此可通过RANSAC算法分别将两平面提取出来。
根据国际建筑条例,门的最小宽度为81.3cm,高度最低不能低于200cm,最高不能超过240cm。
然而并非所有门都满足上述条例,尤其是许多门都是双扇门海扇门的宽度都不是81.3cm。
因此本文将门的宽度限制条件设置为最小60cm,最大120em,而高度仍然为200cm到240em之间。
综上所述.针对可能存在墙与门的点云,检测步骤如下:
a.利用RANSAC算法提取垂直于地面的平面,且要求提取的平面数据量足够大;
b.利用Qhull库中的快速凸包算法获得各平面的凸包点,并求得平面的宽度和高度;
c.比较各平面的宽度和高度是否满足门的限制条件,若满足则可判定为门,剩下的平面判定为墙。
最后求解门与墙的距离和方向,方法同2.3节。
2.5楼梯的检测
我们规定楼梯由至少3级间隔相同的台阶组成,各相邻台阶平行面和垂直面间距相等。
对于向下楼梯,每级台阶的平行面数据点充足,而对于向上楼梯,由于拍摄角度限制,每级台阶平行面数据点稀疏,垂直面数据点密集。
据此提出以下检测算法。
-58-科学技术创新2019.09
向上(向下)楼梯检测
1.输入点云p;
2.利用NAPSAC算法提取垂直(平行)于地面
的平面.得封集合尸={片丄耳};
3.将卩中互相平行的平页存入集合旷;
4.计算"”中各平面之间的距离.若某平面与
另一平面的距离在叭-%,眄v+%】
+)内・则将该平面存入
集合卩”中;
5.若厂'的大小|卩"|<3,则判定没有楼梯.退
出,否则进入步骤6:
6.输出台阶垂直(平行)面集合厂'.
考虑到台阶面面积小,在点云中所占比例较小,因此这里采用NAPSAC算法提取台阶面。
步骤3中需要判断两平面是否平行,可结合公式(4)求得両不面的法向量之间的夹角,若夹角小于阈值范围内则判定为平行。
步骤4中涉及求平面之间的距离,若两平行平面的参数为(a,b,c,d)和(a,b,c,e),则距离公式为:
~^a2+b2+c2⑻求解猱梯的方位距离等方法与2.3节中一致。
3室内场景实验
3.1实验软硬件及参数设置
本文实验中收集了三种常见的室内环境:办公室、走廊、楼道。
一共采集了240幅彩色深度图像,包含了多种室内常见的障碍物。
如纸箱、垃圾桶、雨伞、门、墙、楼梯等。
为了评估该方法在实际场景中的检测效果,本文是在Visual Studio2013平台上使用C++进行了编程实验。
计算机配置为i54200M(2.5Ghz) CPU,6G内存。
本文算法的实验中设置Kinect v2设备距离地面的高度为lm,倾斜角度a=20。
,能够有效检测到前方lm到3.5m 的距离。
RANSAC算法中置信裕度%=035,最大迭代次数
心皿=100,距离阈值d=4cm。
NAPSAC算法中搜索半径r=0.4m。
欧式聚类提取算法中距离阈值r=4cm,向上楼梯检测中W n设为25cm,W tnl为10cm.向下楼梯检测中H n设为20cm,H,ol
为10cm。
判断向量平行或垂直的夹角阈值"=15。
3.2实验结果
本文分别在办公室、走廊和楼道三个场景下进行障碍物检测,除了将检测到的障碍物封闭在彩色图像中并标记距离和方向信息外,还使用边界框来描述分割的障碍物点云。
本文算法能够有效提取出相邻障碍物,如一个彼此靠着的纸箱和伞,倾斜的桌子挡板,以及不规则形状的椅子等。
并且能够用不同颜色的点云表示分割出的不同障碍物,显示了本文算法对门、墙和楼梯检测的有效性。
具体实验数据如表1所示。
为了在实际场景中测试该方法的检测率,对实验中采集到的图像进行了障碍物检测。
其中检测率为障碍物实际检测数与期望检测数之比。
检测结果如表2所示。
表2中检测的图像是在多个场景下采集的,每幅图像包含多种障碍物。
其中部分分散的障碍物检测失败是由于障碍物体积过小,或被其他障碍物遮挡所致。
部分门的检测失效则是由于只拍摄到门的一部分,未获取门的完整图像,或者门与墙的凹凸性不强,无法进行平面分离。
上下楼梯检测失效的情况是由于拍摄角度过于倾斜。
另外若获取的深度
表1障碍物检测数据对比
F
纸箱[图
2(c)③]
垃圾桶[图
2(c)④]
转椅[图
2(C)⑥]
雨伞[图
2(c)⑦]真实长度35.1cm23.9cm64.9cm912cm
检测长度37.2cm21.8cm70.8cm97.4cm
准确率94.02%91.21%90.91%93.20%
真实宽度32.9cm23.8cm57.8cm458cm
检测宽度36.8cm19.7c m64.2cm64.4cm
准确率88.15%82.77%88.93%59.39%
真实高度42.6cm29.6cm70.2cm61.4cm
检测高度3&7cm27.7cni76.9cm692cm
准确率90.85%93.58%90.46%87.30%
真实距离 2.00m234m 1.20m 2.40m
检测距离 1.91m 2.42m1.26m 2.49m
准确率95.50%96.58%95.00%96.25%
表2室内障碍物检测结果
分散的门墙上楼梯下楼梯
障碍物
期望检测数472451133530
实际检测数435411063428检测率0.9220.9110.9380.9710.933总体检测率644/695=0.927
图像有较大的噪点和空洞,或图像中地面面积过小而未能提取出来,都会影响检测结果。
总的来说,在室内环境下算法的检测率达到了0.927,且平均每帧图像的处理速度为0.765s,精度高,速度快。
结束语
本文旨在研究适合室内环境的各种障碍物检测算法,以帮助盲人在室内环境中独立安全地行走。
本文利用Kinect v2设备采集前方环境的彩色深度图像,将采集到的信息转换为三维点云数据,进行地面预处理和提取,运用不同的算法检测不同的障碍物。
本文的贡献在于结合了多种不同方法来检测多种室内常见障碍物,对于不同深度、倾斜和形状不规则的障碍物也能有效地检测出来,且不受光照的影响。
实验结果表明本文算法精度高,处理速度较快。
但是本文是针对不同障碍物人为地切换使用相应的算法,后续工作将结合改进上述各种算法,不用人为干预而自动检测出同一幅图像中不同障碍物。
参考文献
[1]W ang Ping,Han Xie,Han Yan.The Extraction of Depth Information about the Object Based on Binocular Vision[J]. Science Technology and Engineering,2014(2):56-61.
王平,韩燮,韩炭.基于双目视觉技术的物体深度信息提取[J].科学技术与工程,2014(2):56-61.
[2]D.R.Myatt,P.H.S.Torr,S.J.Nasuto,J.M.Bishop,and R. Craddock,NAPSAC:High Noise,High Dimensional Robust Estimation[J],Proc.British Machine Vision Conf.,2002,pp. 458-467.
[3]Huy-Hieu Pham,Thi-Lan Le,and Nicolas Vuillerme,Real-Time Obstacle Detection System in Indoor Environment for the Visually Impaired Using Microsoft Kinect Sensor[J],Hindawi Publishing Corporation,Journal of Sensors,2016(11):1-13.。