深度学习笔记(十四)车道线检测 SCNN
论文:Spatial As Deep: Spatial CNN for Traffic Scene Understanding
代码:https://github.com/XingangPan/SCNN
参考:
数据集:CULane
Overview
一般的 CNNs 通常是通过堆叠卷积层来实现的。然而这种方式不能有效的获取各行各列像素检的空间关系。而这种空间关系对于类似车道线检测这种具有“形状先验强但是外观一致性若”的语义目标来说是很重要的。
在这篇论文中,作者提出了一种名为 SCNN(Spatial CNN) 的网络结构,它将常规的 layer-by-layer convolutions 换成了 to slice-byslice convolutions,这使得信息可以跨行和跨列传递。这种 SCNN 特别适用于连续形状结构或者大型的目标,这类目标空间关系强但外观线索少。
作者在车道线检测数据集上和实例分割数据集上进行了实验。实验结果表明了,SCNN 可以显著提高系统的性能。本文同时获得了 TuSimple Benchmark Lane Detection Challenge 的第一名,with an accuracy of 96.53%.

如图中,车道线是一种 long continuous shape and might be occluded 的目标,人类可以很容易通过上下文信息来填充被遮挡部分,但一般的 CNNs 不行。
In a layer-by-layer CNN, a convolution layer receives input from the former layer, applies convolution operation and nonlinear activation, and sends result to the next layer. This process is done sequentially. Similarly, SCNN views rows or columns of feature maps as layers and applies convolution, nonlinear activation, and sum operations sequentially, which forms a deep neural network. In this way information could be propagated between neurons in the same layer.
CULane
作者还提供了 CULane 数据集,在这之前的一些数据集,例如 Tusimple(6408 imgs),场景简单且对于磨损的车道线没有进行标注,而这种车道线人肉眼是很容易被推断补齐的。
To collect data, we mounted cameras on six different vehicles driven by different drivers and recorded videos during driving in Beijing on different days. More than 55 hours of videos were collected and 133,235 frames were extracted, which is more than 20 times of TuSimple Dataset. We have divided the dataset into 88880 for training set, 9675 for validation set, and 34680 for test set. These images were undistorted using tools in (Scaramuzza, Martinelli, and Siegwart 2006) and have a resolution of 1640 x 590

CULane 数据集对于遮挡和磨损的部分进行了估计,如上图2、4;为了让算法能够识别出栅栏,只对栅栏一侧进行标注,如上图1。CULane 只标注了最需要关注的 4 条车道线。
SCNN

以 SCNN_D 为例,假定经过一系列卷积操作后, feature map size 为 $C$ x $H$ x $W$, 从 $H$ 维度出发,将feature map 切成 $H$ slices,然后第一个 slice 经过一个 $1$ x $w$ x $C$ 的卷积、非线性操作后加到下一个 slice 上(一般这个 $w$ 是个较大尺度的卷积核,作者实验证明 $w=9$ 结果最理想)。这个操作继续往下进行,直到最后一个 slice 也被更新了。图中的标记符 D, U, R, L 分别表示 SCNN that is downward, upward, rightward, and leftward 四个方向进行上述操作。
作者提到,同常规卷积相比 SCNN 有三个优点:
- Computational efficiency. 这是相比于 MRF/CRF来说的。

- Message as residual.
- Flexibility. Usually, the top hidden layer contains information that is both rich and of high semantics,thus is an ideal place to apply SCNN
训练测试相关
In both tasks, we train the models using standard SGD with batch size 12, base learning rate 0.01, momentum 0.9, and weight decay 0.0001. The learning rate policy is ”poly” with power and iteration number set to 0.9 and 60K respectively.
As shown in Fig.5 (b), for each lane marking whose existence value is larger than 0.5, we search the corresponding probmap every 20 rows for the position with the highest response. These positions are then connected by cubic splines, which are the final predictions.
During training, the line width of the targets is set to 16 pixels, and the input and target images are rescaled to 800x288. Considering the imbalanced label between background and lane markings, the loss of background is multiplied by 0.4.
评价指标
作者利用 intersection over union (IoU) 和阈值(0.3/0.5)来判断一条车道线是否被检测出来。
\begin{equation}
\label{a}
\begin{split}
& Precision = \frac{TP}{TP+FP} \\
& Recall= \frac{TP}{TP+FN}\\
& F-measure = (1+\beta^2) \frac{Precision*Recall}{\beta^2*Precision + Recall}\\
& F-measure = \frac{2} {\frac{1}{Precision} + \frac{1}{Recall}}, if \beta =1
\end{split}
\end{equation}
Ablation Study
作者从 6 个角度证明了 SCNN 有多牛逼:
- Effectiveness of multidirectional SCNN:同简单添加常规卷积层相比 SCNN 更牛逼

- Effects of kernel width w:w 大小等于9 时最理想

- Spatial CNN on different positions:SCNN 结构作用在最后一个隐含层上比作用在输出层上更理想

- Effectiveness of sequential propagation:顺序执行(一个切片更新后再去更新下一个切片)比平行更新效果好很多,这说明 a pixel does not merely affected by nearby pixels, but do receive information from further positions.

- Comparison with state-of-the-art methods: 这里的 baseline 就是上面网络(a) DeepLab.


- Computational efficiency over other methods:这个,看下面表情。。。

作者还从 Semantic Segmentation on Cityscapes 角度做了实验,这里就不累述了
SCNN for Tusimple
。。。
深度学习笔记(十四)车道线检测 SCNN的更多相关文章
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- UFLDL深度学习笔记 (四)用于分类的深度网络
UFLDL深度学习笔记 (四)用于分类的深度网络 1. 主要思路 本文要讨论的"UFLDL 建立分类用深度网络"基本原理基于前2节的softmax回归和 无监督特征学习,区别在于使 ...
- (C/C++学习笔记) 十四. 动态分配
十四. 动态分配 ● C语言实现动态数组 C语言实现动态数组,克服静态数组大小固定的缺陷 C语言中,数组长度必须在创建数组时指定,并且只能是一个常数,不能是变量.一旦定义了一个数组,系统将为它分配一个 ...
- SCNN车道线检测--(SCNN)Spatial As Deep: Spatial CNN for Traffic Scene Understanding(论文解读)
Spatial As Deep: Spatial CNN for Traffic Scene Understanding 收录:AAAI2018 (AAAI Conference on Artific ...
- 【转】angular学习笔记(十四)-$watch(1)
本篇主要介绍$watch的基本概念: $watch是所有控制器的$scope中内置的方法: $scope.$watch(watchObj,watchCallback,ifDeep) watchObj: ...
- angular学习笔记(十四)-$watch(1)
本篇主要介绍$watch的基本概念: $watch是所有控制器的$scope中内置的方法: $scope.$watch(watchObj,watchCallback,ifDeep) watchObj: ...
- 深度学习笔记(四)VGG14
Very Deep Convolutional Networks for Large-Scale Image Recognition 1. 主要贡献 本文探究了参数总数基本不变的情况下,CNN随着层数 ...
- python 学习笔记十四 jQuery案例详解(进阶篇)
1.选择器和筛选器 案例1 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- SharpGL学习笔记(十四) 材质:十二个材质球
材质颜色 OpenGL用材料对光的红.绿.蓝三原色的反射率来近似定义材料的颜色.象光源一样,材料颜色也分成环境.漫反射和镜面反射成分,它们决定了材料对环境光.漫反射光和镜面反射光的反射程度.在进行光照 ...
随机推荐
- JavaScript的几种循环方式
JavaScript提供了许多通过LOOPS迭代的方法.本教程解释了现代JAVASCRIPT中各种各样的循环可能性 目录: for forEach do...while while for...in ...
- 怎样使 html 文本文字不能被选中?
-webkit-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none;
- 5.Shell变量
5.Shell变量本章介绍 shell 中所使用的变量.Bash 会自动给其中一些变量赋默认值.5.1 波恩Shell的变量Bash 使用一些和波恩 shell 同样的变量.有时,Bash 会给它赋默 ...
- Laravel save部分字段失效的bug问题解决
问题描述:今天在编写api的更新部分,发现有部分字段怎么更新都更新不上去. 问题排查: 经过多次测试,发现每次提交只能更新部分字段,字段分别为:id,user_id,device_room_id,na ...
- 打印从1到最大的n位数(考虑大数问题)
void Print1ToMaxOfNDigits(int n) { if(n <= 0) { return; } int * number = new int[n]; for(int i = ...
- hdfs存储与数据同步
两个hadoop集群之间同步数据 实例为dws的 store_wt_d表 一 文件拷贝 hadoop distcp -update -skipcrccheck hdfs://10.8.31.14:80 ...
- OWASP Hakcing Lab在线漏洞环境
OWASP Hakcing Lab在线漏洞环境 OWASP hakcing-lab 是一个提供免费的远程安全(Web)挑战和 OWASP TOP 10,OWASP WebGoat,OWASP Ha ...
- 2.NumPy简介
一:NumPy简介 • 官网链接:http://www.numpy.org/ • NumPy教程链接:https://www.yiibai.com/numpy/ • NumPy是Python语言的一个 ...
- Linux rpm yum
RPM : 1 rpm -q 子选项 软件名 -a :列出已安装所有的软件包 -i :查看指定软件的详细信息 -l:查看指定软件的文件安装清单 -f:查看某个目录.文件是哪个包带来的 rpm -q ...
- 修改虚拟机CentOS系统ip地址和主机名
按照教程安装了虚拟机但是未配置静态IP,所以导致IP地址经常变化,CRT,mysql等连接时经常出现问题. 所以修改虚拟机内CentOS系统的IP为静态IP. 一.查看当前网关 虚拟机-->[编 ...