(论文速读)SCNN:用于交通场景理解的空间CNN
论文题目Spatial As Deep: Spatial CNN for Traffic Scene Understanding用于交通场景理解的空间CNN会议AAAI 2018摘要卷积神经网络(CNN)通常是通过逐层堆积卷积运算来构建的。虽然CNN已经显示出从原始像素中提取语义的强大能力但它捕获图像行和列中像素的空间关系的能力还没有得到充分的探索。这些关系对于学习具有较强形状先验但外观一致性较弱的语义对象是重要的例如如图1(A)所示交通车道通常被遮挡或甚至不被绘制在道路表面上。在本文中我们提出了空间CNN(SCNN)它将传统的深层逐层卷积推广到特征映射内的逐片卷积从而实现了层中跨行和跨列的像素之间的消息传递。这种SCNN特别适用于长连续形状结构或大型物体具有较强的空间相关性但外观线索较少如车道、杆子和墙壁。我们将SCNN应用于新发布的极具挑战性的车道检测数据集和Cityscapse数据集1。结果表明SCNN能够学习结构输出的空间关系显著提高了性能。在车道检测数据集上SCNN比基于递归神经网络(RNN)的Renet和MRFCNN(MRFNet)分别提高了8.7%和4.6%。此外我们的SCNN还获得了TuSimple基准车道检测挑战赛的第一名准确率为96.53%。SCNN用空间卷积神经网络理解交通场景一、背景与问题1.1 CNN 的空间信息传递能力不足卷积神经网络CNN通过逐层堆叠卷积操作已经展现出强大的语义特征提取能力。然而传统 CNN 的信息传递方式是**层与层之间layer-by-layer**的在同一个特征层内不同行或不同列的像素之间并没有直接的信息交流。这意味着CNN 捕获图像中像素跨行、跨列空间关系的能力是有限的。这一局限在处理具有强空间结构先验、但局部外观线索薄弱的对象时尤为突出——例如车道线细长、连续常被车辆遮挡甚至在路面上根本没有清晰涂画电线杆竖直延伸局部纹理简单墙体大面积延伸跨越图像多个区域。【论文Figure 1CNN 与 SCNN 在车道线检测和语义分割中的对比。(a) 车道线检测CNN 输出不连续、存在误判SCNN 输出连续平滑。(b) 语义分割SCNN 能修复 CNN 中电线杆等长结构的断裂部分】如图 1(a) 所示在车道线检测任务中普通 CNN 的输出经常出现不连续甚至断裂的情况而 SCNN 能够保持车道线的连续性和平滑性。对于图 1(a) 中最右侧的车道线车辆完全将其遮挡CNN 无法推断其位置而 SCNN 则能从上下文信息中恢复出被遮挡部分。1.2 现有方法的不足为了在 CNN 中引入空间关系建模此前已有若干尝试基于 MRF/CRF 的方法如 DenseCRF理论上能建模像素间全局关系但计算代价极高——在密集 CRF 中消息传递次数为对于几百行列的图像来说难以承受且 CRF 通常只作用在 CNN 输出层类别数维度而非信息更丰富的顶层隐特征层。基于 RNN 的方法如 ReNet用 LSTM 沿行或列方向传递信息但 LSTM 门机制计算量大且容易遭遇梯度消失问题实验中 ReNet 的性能甚至不如 w1 时的 SCNN。手工特征方法大多数早期车道线检测算法依赖人工设计的低层特征难以应对恶劣场景。二、核心创新空间卷积神经网络SCNN2.1 核心思想SCNN 的思路简洁而有效将传统 CNN 逐层layer-by-layer的卷积操作推广为特征图内部逐切片slice-by-slice的卷积操作从而在同一特征层内实现像素跨行、跨列的信息传递。可以这样理解传统 CNN 中信息在深度方向层间流动而 SCNN 让信息在空间方向同层内的行间或列间也能流动形成一种空间深度的信息传播网络。【论文Figure 3(a) MRF/CRF 方法的流程(b) SCNN 的实现结构包含 SCNN_D向下、SCNN_U向上、SCNN_R向右、SCNN_L向左四个方向模块依次串联在顶层隐特征层之后】2.2 SCNN 的数学形式以向下SCNN_D方向为例对一个尺寸为的三维特征张量将其沿行方向切分为 H 个切片。第一个切片直接输入卷积层从第二个切片起每个切片将上一切片卷积后的输出以残差形式叠加到自身再送入下一层其中 f 为 ReLU 非线性激活K 为在所有切片间共享的卷积核w 为卷积核宽度即每个像素能接收到的邻近像素范围。消息以残差形式传播即 ReLU 输出叠加到原始切片上而非直接替换这既借鉴了深度残差网络的思想使训练更稳定又避免了 RNN 式方法中梯度消失的问题。完整的 SCNN 模块包含四个方向向下D、向上U、向右R、向左L依次串联使任意像素都能通过四个方向的消息传播接收到来自全图所有位置的信息。2.3 SCNN 的三大优势(1) 计算效率高在密集 MRF/CRF 中消息传递次数为通常为 10100而在 SCNN 中消息传递次数仅为其中w 通常不超过 10。对于数百行列的图像SCNN 的计算量远少于密集 MRF/CRF且每个像素仍能通过四方向传播接收到全图信息。实验数据论文 Table 6验证了这一点在公平对比条件下输入尺寸均在 CPU 上运行密集 CRF 耗时737msSCNN 仅需176ms速度是密集 CRF 的4 倍以上。在实际使用场景GPU 上输入为顶层隐特征SCNN 仅需42ms而 LSTM 在 GPU 上也需115ms。【论文Table 6dense CRF、LSTM 与 SCNN实际使用和公平对比两种设置的运行时间对比】密集CRF、LSTM和SCNN的运行时。这两个SCNN分别对应于实际使用的SCNN和其输入大小被修改以与密集CRF进行公平比较的SCNN。SCNN的核宽w为9。(2) 残差消息传播训练稳定MRF/CRF 的加权求和消息传播计算量大RNN 类方法面临梯度消失风险。SCNN 以残差形式传播消息类似 ResNet训练更稳定效果也优于 LSTM 方法。(3) 灵活可嵌入任意位置SCNN 可以插入到 CNN 的任意层级。实验表明论文 Table 3将 SCNN 加在顶层隐特征层F10.5 71.6比加在输出层F10.5 68.8效果更好因为顶层隐特征携带更丰富的语义信息是建模空间关系的更优位置。三、CULane一个大规模挑战性车道线检测数据集论文同时贡献了一个大规模、高难度的车道线检测数据集——CULane这也是该论文的重要贡献之一。3.1 数据集构建研究团队在六辆不同车辆上安装摄像头由不同司机在北京不同天气、不同时间段驾驶累计录制55 小时以上的视频提取133,235 帧图像分辨率为 $1640 \times 590$远超 TuSimple 数据集约 6408 张的规模超过 20 倍。数据集划分为训练集 88,880 张、验证集 9,675 张、测试集 34,680 张。3.2 数据集特点【论文Figure 2(a) 九种场景的示例图像(b) 各场景在数据集中的比例饼图】测试集划分为1 个正常场景 8 个挑战性场景拥挤、夜晚、无车道线、阴影、箭头、强光、弯道、十字路口。挑战性场景共占72.3%使数据集具有很高的实际难度。数据集的另一重要特点是标注了遮挡和磨损情况下根据上下文推断的车道线——这正是 SCNN 所要解决的核心问题也是以往数据集普遍缺失的标注内容。本文专注于检测最受关注的四条车道线。四、实验与结果4.1 车道线检测实验设置模型基于 LargeFOVDeepLab 的一个变体构建预训练权重来自 VGG16ImageNet。主要改动包括将fc7层输出通道数设为 128atrous 卷积fc6的 rate 设为 4在每个 ReLU 前加入 BatchNorm并添加一个小网络预测车道线是否存在。网络输出各车道线的概率图probmap测试时每 20 行在 probmap 上搜索响应最高的位置再用三次样条曲线连接得到最终预测曲线。评估指标以 30 像素宽为车道线宽度计算预测与真值的 IoU在 IoU 阈值 0.3 和 0.5 下分别统计 F1 分数。4.2 消融实验1多方向 SCNN 的有效性【论文Table 1不同方向配置下的 SCNN 消融实验结果Baseline、ExtraConv、SCNN_D、SCNN_DU、SCNN_DURL】逐步增加 SCNN 的方向数性能持续提升仅加向下SCNN_D时 F10.5 为 68.6加上下SCNN_DU为 69.4四方向SCNN_DURL达到70.4比 Baseline 的 63.2 提升7.2 个百分点。对照实验还验证在基线后简单增加一个卷积层ExtraConv仅提升至 64.0说明性能增益来自 SCNN 的消息传递机制而非参数增加。2卷积核宽度 w 的影响【论文Table 2不同卷积核宽度 w 下的 SCNN 性能w 1, 3, 5, 7, 9, 11】w 越大每个像素能接收到的邻近像素范围越广性能越好。w9 时取得最优F10.3 80.9F10.5 71.6比基线分别高出8.4%和3.2%以 F10.5 计w11 时略有下降说明过大的感受野不一定有益。w1 的结果等同于 Visin 等人ReNet的方法说明更大的 $w$ 是 SCNN 优于 RNN 方法的重要原因之一。3SCNN 插入位置的影响【论文Table 3SCNN 分别插入输出层和顶层隐特征层时的性能对比】插入顶层隐特征层F10.5 71.6显著优于插入输出层F10.5 68.8差距达2.8 个百分点。顶层隐特征层信息更丰富是建模空间关系的更优位置。4顺序传播 vs. 并行传播【论文Table 4顺序消息传播与并行消息传播的性能对比SCNN_DULRw9】顺序传播Sequential的 F10.3 80.9F10.5 71.6并行传播Parallel的 F10.3 78.4F10.5 65.2。顺序传播大幅优于并行传播说明信息需要接力式逐步传递才能让每个像素真正受益于来自远处位置的信息而不仅仅是邻近像素的影响。4.3 与 SOTA 方法对比【论文Table 5CULane 数据集各场景下IoU 阈值 0.5SCNN 与 Baseline、ReNet、DenseCRF、MRFNet、ResNet-50、ResNet-101 的对比】【论文Figure 7Baseline、ReNet、MRFNet、ResNet-101 与 SCNN 的概率图probmap可视化对比】在 CULane 测试集上SCNNBaselineSCNN的综合 F1 达到71.6显著超越所有对比方法比 ReNet62.9高出8.7 个百分点比 MRFNet67.0高出4.6 个百分点比更深的 ResNet-10170.8也高出0.8 个百分点在正常90.6、拥挤69.7、夜晚66.1、无车道线43.4、阴影66.9、弯道65.5等多数场景均取得最优。值得注意的是DenseCRF 在车道线检测上反而不如基线61.0 63.2原因在于车道线外观线索稀少密集 CRF 无法有效区分车道线与背景。MRFNet 利用从数据中学习的卷积核能在一定程度上平滑结果但仍不及 SCNN。此外SCNN 仅使用16 层卷积 4 层 SCNN却超越了拥有超过百层、感受野极大的 ResNet-101充分证明 SCNN 捕获结构先验的能力远强于加深网络层数。在TuSimple 基准车道线检测挑战赛上SCNN 以96.53%的准确率获得第一名。4.4 语义分割Cityscapes上的泛化验证为了证明 SCNN 不局限于车道线检测论文还在 Cityscapes 语义分割数据集5000 张精细标注图像19 类上进行了验证。【论文Table 7Cityscapes 验证集上 LargeFOV、LargeFOVSCNN、ResNet-101、ResNet-101SCNN 各类别 IoU 及 mIoU 对比】【论文Figure 8Cityscapes 验证集上 LargeFOV 与 LargeFOVSCNN 的可视化对比输入图像、真值、LargeFOV 输出、LargeFOVSCNN 输出】实验结果Table 7显示LargeFOV 加入 SCNN 后mIoU 从68.0 提升至 69.2ResNet-101 加入 SCNN 后mIoU 从75.6 提升至 76.4对wall、pole、truck、bus、train、motor等长结构或大面积类别改善尤为显著。在 Cityscapes测试集的 MRF/CRF 方法对比中Table 8同样以 VGG16 为 backboneSCNN 的 mIoU 为68.2超越 LargeFOVDenseCRF63.1和 DPNDense MRF66.8。【论文Table 8Cityscapes 测试集上 SCNN 与其他 MRF/CRF 方法的 mIoU 对比】SCNN 的改善并不局限于细长结构对于墙体、卡车、公共汽车等大面积类别SCNN 的空间信息扩散效果也能纠正局部误分类将上下文信息传播到被误标注的区域如车头区域被错分为非路面加入 SCNN 后得到修正。五、总结与思考SCNN 以简洁的设计解决了一个长期被忽视的问题如何在 CNN 的同一特征层内实现像素间的空间信息传递。核心贡献可以概括为三点方法创新将逐层卷积推广为逐切片卷积以四方向顺序消息传递实现空间信息扩散残差传播保证训练稳定性数据集贡献构建了 CULane 大规模挑战性车道线检测数据集133,235 帧9 类场景推动了领域内的标准化评测广泛验证在车道线检测TuSimple 第一名CULane 全面 SOTA和语义分割Cityscapes mIoU 68.2两个任务上均验证了方法的有效性和通用性。SCNN 的启示在于对于具有强空间结构先验的对象专门设计空间信息传播机制比单纯加深网络更为有效。这一思路在后续大量工作包括本系列博客介绍的 CLRNet中都得到了延续和发展。