传感器就像人类的眼睛一样, 具有对物体的立体实景化分析. 传感器能否全面感知信息关系到自主移动机器人能否顺利完成任务[1, 2]. 国内外有许多学者都在参与研究讨论传感器对障碍物检测的问题. Cristina D等提出了基于超声波的检测方法[3], 不易检测形状较为复杂的障碍物, 而且要求被检测障碍物便面有一定的光泽度; Sahba K等提出的基于激光雷达的检测方法[4], García JJ提出的基于红外的检测方法[5]以及游有鹏等[6]提出一种激光雷达的机器人定位信息处理技术中, 在进行激光定位和红外定位时, 差分性较大, 会导致定位精度较低. 而本文提出的设计可有效解决形状较为复杂的障碍物的识别和定位误差等问题. 通过可靠性高的RGBD摄像头识别障碍物, 利用改进的帧差法和深度图距离提取法, 易读出图像在二维平面的坐标和深度信息的坐标值, 相关参数经过坐标系转换, 能够得出目标物体的高度与宽度, 可达到准确度与效率兼备.
1 模型介绍 1.1 帧差法帧差法是对相邻两张图像像素值相减得到的差分图像, 并通过图像二值化处理得出阈值T, 得到的差分结果大于阈值T的像素点就是运动目标[7, 8], 但是传统的帧差法易出现“空洞”或“重影”现象[9], 在复杂的背景下不能检测出完整的目标, 尤其是对于背景像素值与前景像素值相似的情况下, 易出现漏检和误检的问题[10].
第k帧和k+1帧图像
$\begin{split} &D(x,y) = \\ &\left\{ {\begin{array}{*{20}{l}} {1,}&{{\rm{if}}\left| {{f_{k + 1}}\left( {x,y} \right) - {f_k}} \right|T\left( {T{\text{为差分图像二值化阈值}}} \right)}\\ {0,}&{{\rm{others}}} \end{array}} \right. \end{split}$ | (1) |
在背景较为简单的情况下, 可以认为构成视频画面的各个背景像素点处在个较为稳定的值附近, 服从一维正态分布[11].
$P\left( x \right) = \dfrac{1}{{\sqrt {2{\text{π}} } }}{e^{\frac{{{{\left( {x - \mu } \right)}^2}}}{{2{\sigma ^2}}}}},x \in {g_k}\left( {x,y} \right)$ | (2) |
T表示概率阈值, 如果k+1帧图像在该点的像素值大于等于T, 该值归为背景, 否则判别为前景. 随着时间的变化, 背景图像也会发生缓慢的变化, 这时我们要不断更新每个像素点的参数, 更新均值
设Bk
${B_k}\left( {x,y} \right) = f\left( x \right) = \left\{ {\begin{array}{*{20}{l}} {1,}&{P\left( {{g_k}\left( {x,y} \right)} \right) > T}\\ {0,}&{\text{其他}} \end{array}} \right.$ | (3) |
改进帧差法流程如图1.
2 图像处理
在形态学处理中, 通过闭运算、开运算最小矩形外接匹配法等方法, 对物体进行膨胀或者腐蚀处理, 使得图像对比度增强、图像轮廓清晰[12], 最终获得比较完美的目标的整体形状. 同时, 图像处理是检测障碍物最基础的一步[13], 其结果对对后续的坐标转换中数值计算有着直接影响.
2.1 图像二值化为了使数据量减小, 得到明显的黑白效果图, 本文在帧差法处理过程中采用灰度化、二值化处理. 把白色与黑色之间按对数关系分为若干等级来增强对比度[14, 15]. 所有灰度大于或等于阈值的像素被判定为属于特定物体, 其灰度值为255表示, 否则这些像素点被排除在物体区域以外, 灰度值为0, 表示背景或者例外的物体区域.
2.2 检测轮廓为了找到图像中亮度变化剧烈的像素点构成的集合, 本文对差值图进行先闭运算后开运算处理[16, 17]以及Canny算子边缘检测. 边缘检测(如图2)能够精确的测量和定位, 包括物体的面积、物体的直径、物体的形状等就能被测量[18, 19].
2.3 障碍物识别的结果分析
为了能够及时获取更全面的信息, 本文将视频的帧数设置为20帧. 改进帧差法识别过程如图3. 首先, 模拟机器人在运动过程中对障碍物的检测. 在运动过程中, 捕获第k帧图像和k+1帧图像之间有时间差0.05 s, 所以我们选取了正在移动的机器人捕获的视频流中的相邻两帧画面, 在第k+1帧里, 前进的0.5 cm方向向右扭转了0.07°, 捕获的图像很明显地可以看出光线和方向有细微差别, 同时也弥补光线对障碍物的影响, 结果表明: 改良的帧差法可以准确地识别出障碍物.
如图4, 用传统的帧差法, 运动时人的腿部因为动作幅度过大导致分辨率减小, 识别率下降, 出现“空洞现象”. 而利用改进的帧差法可以准确识别. 在开运算和闭运算后, 图像得到有效的填补.
3 摄像机标定 3.1 确定障碍物距离机器人的距离
获取场景中各点相对于机器人的距离是计算机视觉系统的重要任务之一[20]. 在深度图像中的每一个像素值表示场景中某一点与摄像机之间的距离. 传感器获取机器人到各个障碍物的距离, 发布到激光扫描传感器话题, 本文通过Turtlebot机器人的数据话题scan 获取障碍物距离机器人的距离.
3.2 摄像机标定摄像机标定是深度信息测量的基础[21], 在计算机视觉中起到越来越重要的作用. 摄像机标定通过求解摄像机的内外参数, 获取空间物体三维坐标与图像二维坐标的对应关系[22].
保持摄像头与机体本身方向一致, 障碍物与摄像头的相对位置关系就是障碍物与机体本身的相对位置关系. 利用世界坐标系、相机坐标系、像素坐标系和成像平面坐标系的转换关系(如图5)可以实现对障碍物高度和宽度的计算.
$\begin{split} \dfrac{1}{{{Z_c}}} \cdot \left[ {\begin{array}{*{20}{c}} u\\ v\\ 1 \end{array}} \right] & =\left[ {\begin{array}{*{20}{c}} {\dfrac{f}{{{S_x}}}}&r&{{u_0}}\\ 0&{\dfrac{f}{{{S_x}}}}&{{v_0}}\\ 0&0&1 \end{array}} \right] \cdot \left[ {\begin{array}{*{20}{c}} {{R_{3 \times 3}}}&{{T_{3 \times 3}}}\\ O&1 \end{array}} \right] \cdot \left[ {\begin{array}{*{20}{c}} {{X_w}}\\ {{Y_w}}\\ {{Z_w}}\\ 1 \end{array}} \right] \\ &= {K_{3 \times 3}} \cdot \left[ {\begin{array}{*{20}{c}} {{X_{3 \times 3}}}&{{T_{3 \times 1}}}\\ 0&1 \end{array}} \right] \cdot \left[ {\begin{array}{*{20}{c}} {{X_w}}\\ {{Y_w}}\\ {{Z_w}}\\ 1 \end{array}} \right] \end{split}$ | (4) |
$s \cdot \left[ {\begin{array}{*{20}{c}} u \\ v \\ 0 \end{array}} \right] = {P_{3 \times 4}} \cdot \left[ {\begin{array}{*{20}{c}} {{X_w}} \\ {{Y_w}} \\ {{Z_w}} \\ 1 \end{array}} \right]$ | (5) |
其中, 世界坐标系表示为
表1是同一物体不同距离的测量大小.
实验结果表明, 在机器人位于不同位置检测同一物体时, 距离越近, 检测效果越好; 距离越远, 检测效果逐渐变差. 但是检测成功率一直保持在91%以上. 分析结果后, 发现误差一般是获取的部分区域深度信息错误和图像差分时轮廓不清所致. 但总体来说文中算法检测率较高.
4 结论与展望文中提出了一种基于RGBD摄像头的障碍物检测设计, 通过对传统的帧差法改进、最小矩形匹配法以及图像处理, 更加准确的标出了障碍物的轮廓; 然后利用四种坐标系之间的转换关系, 最后得到了有效的目标物体的高度和宽度.
实验结果表明, 该设计能够实时的获取视频流, 对常见的、不规则的障碍物进行检测, 得到了较好的检测结果. 由于在改进的帧差法需要对图像进行多次处理, 导致时间在0.08~0.3 s之间浮动, 因此下一步的工作方向是将时间控制在微秒级, 保证改进的帧差法准确率与效率兼备.
[1] |
王烁. 基于图像处理技术的智能车研究[硕士学位论文]. 兰州: 兰州理工大学, 2013.
|
[2] |
张毅, 蒋翔, 罗元, 等. 基于深度图像的移动机器人动态避障算法. 控制工程, 2013, 20(4): 663-666, 675. DOI:10.3969/j.issn.1671-7848.2013.04.019 |
[3] |
Diego C, Hernández A, Jiménez A, et al. Ultrasonic array for obstacle detection based on CDMA with Kasami codes. Sensors, 2011, 11(12): 11464-11475. DOI:10.3390/s111211464 |
[4] |
Sahba K, Alameh KE, Smith CL. Obstacle detection and spectral discrimination using multi-wavelength motionless wide angle laser scanning. Optics Express, 2008, 16(8): 5822-5831. DOI:10.1364/OE.16.005822 |
[5] |
García JJ, Ureña J, Mazo M, et al. Sensory system for obstacle detection on high-speed lines. Transportation Research Part C: Emerging Technologies, 2010, 18(4): 536-553. DOI:10.1016/j.trc.2009.10.002 |
[6] |
游有鹏, 张宇, 李成刚, 面向直接示教的机器人零力控制. 机械工程学报, 2014, 50(3): 10–17.
|
[7] |
赵建. 基于三帧差法的运动目标检测方法研究[硕士学位论文]. 西安: 西安电子科技大学, 2013.
|
[8] |
张应辉, 刘养硕. 基于帧差法和背景差法的运动目标检测. 计算机技术与发展, 2017, 27(2): 25-28. |
[9] |
汪国强, 盖琪琳, 于怀勇, 等. 基于背景差分法的视频目标检测算法研究. 黑龙江大学工程学报, 2014, 5(4): 64-68. |
[10] |
高海壮, 段先华. 基于帧差法和混合高斯的海上运动目标检测. 计算机与数字工程, 2019, 47(5): 1140-1144. DOI:10.3969/j.issn.1672-9722.2019.05.025 |
[11] |
喻旭勇, 王直杰. 一种基于改进单高斯模型的运动目标提取方法. 科学技术与工程, 2013, 13(13): 3609-3614. DOI:10.3969/j.issn.1671-1815.2013.13.017 |
[12] |
刘海峰, 张超, 罗江, 等. 基于区域外接矩形的自动化孔洞填充算法. 指挥信息系统与技术, 2017, 8(3): 77-81. |
[13] |
王书平. 复杂室内环境下移动机器人障碍物检测与避障研究[硕士学位论文]. 金华: 浙江师范大学, 2016.
|
[14] |
张开兴, 吕高龙, 贾浩, 等. 基于图像处理和BP神经网络的玉米叶部病害识别. 中国农机化学报, 2019, 40(8): 122-126. |
[15] |
付莉, 付秀伟, 陈玲玲. 基于图像处理的车牌识别技术. 吉林化工学院学报, 2019, 36(3): 42-46. |
[16] |
王国成. 基于形态学的文本图像光照均衡化算法研究及实现[硕士学位论文]. 成都: 电子科技大学, 2015.
|
[17] |
周旭廷, 王桂丽, 傅赟, 等. 基于MATLAB的数字图像去噪处理. 计算机系统应用, 2016, 25(11): 270-273. |
[18] |
宋人杰, 刘超, 王保军. 一种自适应的Canny边缘检测算法. 南京邮电大学学报(自然科学版), 2018, 38(3): 72-76. |
[19] |
王娟. 图像边缘检测算法的比较分析. 电子测试, 2016(23): 36-37. DOI:10.3969/j.issn.1000-8519.2016.23.020 |
[20] |
王丽军, 王景川, 陈卫东. 动态环境下智能轮椅的路径规划与导航. 上海交通大学学报, 2010, 44(11): 1524-1528. |
[21] |
王子昂, 黄富瑜, 刘秉琦, 等. 大视场摄像机标定方法研究进展. 半导体光电, 2019, 40(3): 303-308. |
[22] |
朱涛, 芦利斌, 金国栋. 基于Kinect深度技术的障碍物在线快速检测算法. 电子设计工程, 2014, 22(12): 176-179. DOI:10.3969/j.issn.1674-6236.2014.12.061 |