(论文速读)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和MRF+CNN(MRFNet)分别提高了8.7%和4.6%。此外,我们的SCNN还获得了TuSimple基准车道检测挑战赛的第一名,准确率为96.53%。
SCNN:用空间卷积神经网络理解交通场景
一、背景与问题
1.1 CNN 的空间信息传递能力不足
卷积神经网络(CNN)通过逐层堆叠卷积操作,已经展现出强大的语义特征提取能力。然而,传统 CNN 的信息传递方式是**层与层之间(layer-by-layer)**的,在同一个特征层内,不同行或不同列的像素之间并没有直接的信息交流。这意味着,CNN 捕获图像中像素跨行、跨列空间关系的能力是有限的。
这一局限在处理具有强空间结构先验、但局部外观线索薄弱的对象时尤为突出——例如:
- 车道线:细长、连续,常被车辆遮挡,甚至在路面上根本没有清晰涂画;
- 电线杆:竖直延伸,局部纹理简单;
- 墙体:大面积延伸,跨越图像多个区域。
【论文Figure 1:CNN 与 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 的性能甚至不如 w=1 时的 SCNN。
- 手工特征方法:大多数早期车道线检测算法依赖人工设计的低层特征,难以应对恶劣场景。
二、核心创新:空间卷积神经网络(SCNN)
2.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 中,消息传递次数为(
通常为 10~100);而在 SCNN 中,消息传递次数仅为
,其中
,w 通常不超过 10。对于数百行列的图像,SCNN 的计算量远少于密集 MRF/CRF,且每个像素仍能通过四方向传播接收到全图信息。
实验数据(论文 Table 6)验证了这一点:在公平对比条件下(输入尺寸,均在 CPU 上运行),密集 CRF 耗时737ms,SCNN 仅需176ms,速度是密集 CRF 的4 倍以上。在实际使用场景(GPU 上,输入为顶层隐特征
),SCNN 仅需42ms,而 LSTM 在 GPU 上也需115ms。
【论文Table 6:dense 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 加在顶层隐特征层(F1@0.5 = 71.6)比加在输出层(F1@0.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 车道线检测实验设置
模型基于 LargeFOV(DeepLab 的一个变体)构建,预训练权重来自 VGG16(ImageNet)。主要改动包括:将fc7层输出通道数设为 128,atrous 卷积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)时 F1@0.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 越大,每个像素能接收到的邻近像素范围越广,性能越好。w=9 时取得最优(F1@0.3 = 80.9,F1@0.5 = 71.6),比基线分别高出8.4%和3.2%(以 F1@0.5 计);w=11 时略有下降,说明过大的感受野不一定有益。w=1 的结果等同于 Visin 等人(ReNet)的方法,说明更大的 $w$ 是 SCNN 优于 RNN 方法的重要原因之一。
(3)SCNN 插入位置的影响
【论文Table 3:SCNN 分别插入输出层和顶层隐特征层时的性能对比】
插入顶层隐特征层(F1@0.5 = 71.6)显著优于插入输出层(F1@0.5 = 68.8),差距达2.8 个百分点。顶层隐特征层信息更丰富,是建模空间关系的更优位置。
(4)顺序传播 vs. 并行传播
【论文Table 4:顺序消息传播与并行消息传播的性能对比(SCNN_DULR,w=9)】
顺序传播(Sequential)的 F1@0.3 = 80.9,F1@0.5 = 71.6;并行传播(Parallel)的 F1@0.3 = 78.4,F1@0.5 = 65.2。顺序传播大幅优于并行传播,说明信息需要"接力"式逐步传递,才能让每个像素真正受益于来自远处位置的信息,而不仅仅是邻近像素的影响。
4.3 与 SOTA 方法对比
【论文Table 5:CULane 数据集各场景下(IoU 阈值 0.5)SCNN 与 Baseline、ReNet、DenseCRF、MRFNet、ResNet-50、ResNet-101 的对比】
【论文Figure 7:Baseline、ReNet、MRFNet、ResNet-101 与 SCNN 的概率图(probmap)可视化对比】
在 CULane 测试集上,SCNN(Baseline+SCNN)的综合 F1 达到71.6,显著超越所有对比方法:
- 比 ReNet(62.9)高出8.7 个百分点;
- 比 MRFNet(67.0)高出4.6 个百分点;
- 比更深的 ResNet-101(70.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 7:Cityscapes 验证集上 LargeFOV、LargeFOV+SCNN、ResNet-101、ResNet-101+SCNN 各类别 IoU 及 mIoU 对比】
【论文Figure 8:Cityscapes 验证集上 LargeFOV 与 LargeFOV+SCNN 的可视化对比(输入图像、真值、LargeFOV 输出、LargeFOV+SCNN 输出)】
实验结果(Table 7)显示:
- LargeFOV 加入 SCNN 后,mIoU 从68.0 提升至 69.2;
- ResNet-101 加入 SCNN 后,mIoU 从75.6 提升至 76.4;
- 对"wall"、"pole"、"truck"、"bus"、"train"、"motor"等长结构或大面积类别,改善尤为显著。
在 Cityscapes测试集的 MRF/CRF 方法对比中(Table 8,同样以 VGG16 为 backbone),SCNN 的 mIoU 为68.2,超越 LargeFOV(DenseCRF,63.1)和 DPN(Dense MRF,66.8)。
【论文Table 8:Cityscapes 测试集上 SCNN 与其他 MRF/CRF 方法的 mIoU 对比】
SCNN 的改善并不局限于细长结构,对于墙体、卡车、公共汽车等大面积类别,SCNN 的空间信息扩散效果也能纠正局部误分类,将上下文信息传播到被误标注的区域(如车头区域被错分为非路面,加入 SCNN 后得到修正)。
五、总结与思考
SCNN 以简洁的设计解决了一个长期被忽视的问题:如何在 CNN 的同一特征层内实现像素间的空间信息传递。
核心贡献可以概括为三点:
- 方法创新:将逐层卷积推广为逐切片卷积,以四方向顺序消息传递实现空间信息扩散,残差传播保证训练稳定性;
- 数据集贡献:构建了 CULane 大规模挑战性车道线检测数据集(133,235 帧,9 类场景),推动了领域内的标准化评测;
- 广泛验证:在车道线检测(TuSimple 第一名,CULane 全面 SOTA)和语义分割(Cityscapes mIoU 68.2)两个任务上均验证了方法的有效性和通用性。
SCNN 的启示在于:对于具有强空间结构先验的对象,专门设计空间信息传播机制,比单纯加深网络更为有效。这一思路在后续大量工作(包括本系列博客介绍的 CLRNet)中都得到了延续和发展。
