基于视觉的障碍物检测和规避

来源:互联网 发布:中兴下载软件应用 编辑:程序博客网 时间:2024/05/01 02:46

1. 介绍

为了使直升机在复杂多变的走廊中平稳避障飞行,本文提出了三个算法:

  • 一个鲁棒性好的平稳控制算法(基于光流+声波传感器);对周围环境做及时反应使helicopter保持在航线上
  • 障碍物检测(基于SVM,对图像进行分割提取特征);检测到接近的任何障碍物
  • 障碍物规避;给出避障控制量:最佳偏角

实验: 走廊跟踪和楼梯跟踪。

2. 引言

用单目摄像头在走廊中检测障碍物,光流可以用于检测静态障碍物或者某些场景下的动态障碍物。但是在狭窄空间很难检测到静态障碍物,因为障碍物与背景的运动相似。

3. 相关工作

平稳飞行

之前均需要笨重的设备并且处理过程复杂,但是本文需要最小化的载重且不需要定位。
近年来有:使用光流来处理上述约束使helicopter稳定飞行。

运动障碍物检测

  1. 运动物体的运动和周围环境不一致来检测;
  2. 用聚类的方法来分类运动物体和背景的运动。

静止障碍物检测

文献4中假设:相机的运动轨迹一直跟随着地面,任何稀疏光流不满足单一性变化的认为是障碍物边界。
也有不用光流,而是基于低层次特征(如颜色和边界)图像分割来检测地面上的大型障碍物。但是此方法只能用于地面机器人。

本文

本文避障算法基于图像结构。假设图像能量谱对于深度估计来说很重要(如文献6中)

4. 硬件

Blade CX2 Coaxial Micro Helicopter
重: 200grams with the battery
载重: 70grams.
控制命令传输: Spectrum DX6i 2.4GHz transmitter, off-board
通信: Endurance PCTx interface
KX141 camera: 795×596 pixels,

5. 稳定

5.1 光流

光流用于补偿漂移和偏航。

  • 使用比例项来补偿猛烈运动和抑制不稳定;
  • 微分项对于惯性导航系统来说不是必须要的,因为光流本身就是对位置的微分项,所以P控制就可以了。

    这里写图片描述

5.2 墙壁避障

UAV上的声呐传感器(会生成指数衰减量)用于墙壁避障;当UAV靠近wall时,会增大指数衰减量。能保证UAV沿走廊中线飞行而不受wall上障碍物影响,也保证避墙飞行。

5.3 高度

垂直声呐传感器用于UAV定高飞行,在飞行过程中,通过调节节流阈值利用PID控制来使UAV高度在理想值。
这里写图片描述

PID各个项的作用:

  • P: 在t时刻,调整使高度在理想值;
  • I:在飞行过程中,调整使高度在理想值;(积分)
  • D: 在UAV接近理想值,调整使高度在理想值。(微分)

6. 障碍物检测和规避

6.1 训练

训练集:

  • 560张图片
  • 每张图片分割为3*5个单位(cell)

    • 每个cell64*64pixels
    • 每个cell提取384个基于光谱特征的属性值(文献7中提到: 从图像频域上提取的光谱特征可以用于表示场景深度)

    如果每个cell再增加边缘定位、颜色、color的属性值,在预测过程中处理时间会大幅增加,太耗时间。
    本文建立此cell和其上下左右cell的关系来扩充特征属性值

训练过程
本文采用基于径向(高斯)核函数的SVM分类器来训练,通过调节SVM参数来最大化训练阶段的召回率(公式10)
低的障碍物检测遗漏率比障碍物检测错误率更为重要。宁可空闲识别为障碍物也不障碍物识别成空闲。即在分类过程中障碍物识别为空闲占的比重应该大。

6.2 避障

SVM检测到障碍物,我们给UAV发送相应控制量使其避障飞行同时向目标靠近。
但是为了避免UAV在避障过程中朝wall飞去,因此尽量让UAV沿着图像中间飞行。

7. 实验

7.1 数据

光谱特征属性提取(matlab源码):
http://people.csail.mit.edu/torralba/code/spatialenvelope/

SVM训练了4组不同的数据集;每个数据集都是人工标定的。
这里写图片描述

召回率recall, 准确率precision
其中,TP: 所有标记障碍物的个数;
MI:标记为障碍物却识别为空间的个数;
FA:标记为空闲却识别为障碍物的个数。

7.2 结果

SVM准确率在4个数据集上均达到了70%以上;
在数据集1上,结果基本和标记一致。

这里写图片描述

7.3 UAV实时实验

C++、OpenCV
可实现3帧/秒处理速度

7.4 UAV稳定性实时实验

在4个实际场景下检验了UAV稳定性算法。
这里写图片描述

8. 想法

我们可以将图像分割为不同块,然后提取每一块的特征值(待定,可参考之前论文中基于光流的特征属性)和块与块之间的相互关系,用SVM训练。

0 0