论文笔记 Road detection using convolutional neural networks

  • 会议:European Conference on Artificial Life (ECAL)
  • 机构:Aberystwyth University (英国)

Abstract

  • 解决自动驾驶的问题:使用卷积神经网络预测图像中路面的位置和宽度。
  • 实验了两种网络架构,六种色彩模型
  • 使用机器人Pioneer 3-AT,离线测试5个不同的路段

1. Introduction

  • 自动驾驶车辆都需要判断前方的路面和非路面区域
  • 当道路线清晰,标准的图像处理+视觉方法可以直接解决
  • 当路面不清晰时就会变得复杂
  • 图像处理应该足够鲁棒,满足动态复杂路面检测的需求
  • 如果能判断前方路面的位置的形状,能够使得问题变简单
  • Alvarez[^1],Thrun[^2] 尝试通过路面颜色分布的差异进行分割,这种方法不依赖道路标识,但是道路的颜色分布不是一直静止的,局部和动态的变化(阴影,水坑,纹理)都可以降低精度。此外,有些颜色通道,路面和非路面的分布基本没差异。

  • Ososinski[^3] 提出 Adaptive Statistical Colour Based(ASC),在图像上投影体形来定义路面区域。评估路面检测,采用Mahalanobis距离^wiki 评估在梯形内和外的像素。在多个道路上测试,大部分情况较好,但还是存在识别案例,以及有些具有系统性偏差。依赖前一帧颜色通道,当发生突变时可能存在问题。

    本文主要参考这篇文章的工作框架

  • Zhou,提出支持向量机分割输入图像。其假设路面的结构路面,为了能够使用不同路面及减少分类错误,其不断加入新帧中的像素,删除旧帧中的像素。但是在复杂场景中该方法失效。
  • Pomerleau,ALVINN项目,最早使用神经网络控制无人车在室外驾驶。三层前馈网络,输入灰度图像,输出车辆方向命令。网络的训练数据通过一个人在一个模拟道路环境中驾驶生成。之后在户外的一个运行车辆上让驾驶员假设车辆来训练网络。该网络能够在已训练过的路上进行假设,但是不能迁移到新的道路环境。
  • 为了克服上述问题,Jochem,提出MANIAC模块,其包含几个独立的NN,分别对应基准不同的道路类型,然后整合到一个模块中,基于所有NN的输出,最后得出结果。该方法无法覆盖所以道路类型,需要大量NN,而且每加入一个新NN,整个系统需要重新训练。
  • Shinzato,提出一种多网络方法适应多种路段。首先,每个图像被分为多块,每个块10x10像素,每个块被标记为可行或不可信,然后从block提取特征输入NN,然后综合结果输出预测。NN等方法对训练过的路段较好,但是对其他路段较差。

近几年神经网络发展迅速,在检测、识别相关的视觉问题上,卷积神经网络能实现更高的精度。神经网络能获得高层语义特征,对路面检测来说,提取高级语义能够实现更好的鲁棒性。

  • Hadsell,使用CNN实现了野地自动驾驶
  • Chen,Liu,使用赛车模拟器视频训练CNN,其效果比使用Gabor的baseline方法好。该方法还是主要限制在城市道路场景。
  • Huval,使用CNN检测高速公路的车道线,训练数据采用大量采集的视频数据。
  • Badrinarayanan,提出反卷积网络用于图片语义分割
  • 据作者所知,上述方法没有在非城市道路评估,我们评估了Bad等人的方法在各种不同路面上的效果,如图1所示,效果较差。

Method

  • 两个网络架构
  • 10组道路序列图像,满足多样的道路环境
  • 6个色彩模型(RGB,HSV,YUV,YCbCr,lab,CbCra),看是否会影响CNN的性能
  • 评估方法类似Ososinski,结果显示最好的网络性能与ASC基本一致,在一两个环境下CNN更好

Road Shap

  • 路面模型,梯形,两个可变参数,位置$x$,宽度$w$,如图2

  • 增加高度$h$和角度$\theta$,能够实现更好匹配,但是会增加网络任务的复杂度。

  • 对机器人来说位置x已足够让其保持在路面上,宽度w使其满足不同速度需求,使其保证行动的顺滑,不会产生突变。

    个人觉得这个模型太简单

CNN

  • 是否更深的网络能得到更精确的结果
  • 作者设计了一个4层的网络LCNN,输入图像是50x50x3的图像,两层网络(见图3中红框),分别有1000和600个神经元,最后两个节点输出参数x和w
  • 平均位置偏差大于20个像素
  • 另一个模型采用AlexNet
  • 参数随机初始化
  • 学习率0.0001
  • dropout:0.2(conv)0.5(fc)
  • Caffe
  • 使用ImageNet初始化,然后去掉最后两个全连接层,使用随机初始化两个输出节点
  • 迭代30次

Datasets

自己采集标注了数据集,下载地址:https://www.aber.ac.uk/en/cs/research/ir/dss/#road-driving

离线检测

从6种色彩模型中选择选择每个模型最好的,好的标准是平均像素偏差。可以发现RGB不区分明度和颜色,YUV和YCbCr是相似的颜色模型,也具有相对更低的偏差。AlexNet跨颜色模型的效果更好。但是如果选择和是的色彩模型LCNN也可以与AlexNet比较。

![1521642366208](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/2017 - Narayan et al. - Road detection using convolutional neural networks/1521642366208.png)

选择两个表现最好的ASC的色彩模型(HSV和lab)与LCNN和AlexNet进行比较。比较结果如下面两个图所示。

![1521642885864](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/2017 - Narayan et al. - Road detection using convolutional neural networks/1521642885864.png)

![1521642902451](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/2017 - Narayan et al. - Road detection using convolutional neural networks/1521642902451.png)

Boxplots是一种统计图标,wiki,其关键是理解四分位数,Q1:25%数据小于等于它,Q2:50%数据小于等于它,即中位数,Q3,75%数据小于等于它,四分卫距IQR=Q3-Q1。Q3+1.5IQR就是外限,Q1-1.5IQR就是外限。超过外限的则显示出来。

可以发现AlexNet的性能比ASC要好,同时也比LCNN好。Lakeside数据集,NN方法偏右,ACS在KITTI数据集的效果较差,如图7所示。

Robot Trials

在室内进行多种颜色环境的训练,25条线路,5种不同道路环境。如图8所示。

25条线路,只有两个没有成功。Red-Blue路线,Robot很难保持在中间,如图8所示,会往右边的绿色区域偏离。

Conclusion

CNN可能不容易分解为清晰的操作原则,但是它们不受人主观意见的干扰,导致系统的鲁棒性受限。我们以ASC方法为baseline,AlexNet展现了更好的效果,并且其简化版LCNN也能达到相似等级的精度。我们在室内环境验证了方法的可行性。为了我们会在更广泛的数据上测试,并将在我们的robot移动平台上嵌入一个GPU模块,使其满足运行CNN,实现实时的控制需求。