• AAAI2018-Spatial As Deep: Spatial CNN for Traffic Scene Understanding


    概述

    提出了SCNN语义分割网络,将传统的深度逐层卷积推广到特征图中的逐片卷积,在同一特征图的行和列上做信息传递,可有效识别强先验结构的目标。此外论文还发布了一个大型的车道线检测数据集CULane Dataset,用于进一步推动自动驾驶的发展

    总结

    • 创新点:

      • 提出面向RGB图像针对车道线的语义分割网络SCNN,实现行和列上的信息传递
      • 发布车道线检测数据集CULane Dataset(三次样条曲线标注四条线)
    • 不足:只有四条车道线;基于语义分割;代码配置?

    • 分析:

      • 1.分割单通道多通道都还行
      • 2.细长结构信息,可解决外显不明显问题
      • 3.有益于大目标分割
    • 结论:传递空间信息 、易集成、端到端、1st in a challenge


    1. Introdution

    自动驾驶->交通场景理解->车道线检测->语义分割->挑战:严酷场景;强结构信息但外观线索少。CNN网络常常通过逐层堆叠卷积来构建,但捕获行列之间空间关系的能力还未完全开发,而这些关系对于学习强形状先验但弱外观一致性(空间关系强但外观线索少)的语义对象是重要的,如遮挡或磨损或根本就没画的车道线。
    在这里插入图片描述
    在CNN逐层传播中,卷积层接收上一层的结果作为输入,应用卷积和非线性激活操作后,将本层结果输出到下一层;SCNN将特征图的行列视为层,然后应用卷积和非线性激活与求和运算,将结果输出到下一层。实现了信息在同层中的传递,强化了空间信息,这对容易被遮挡的结构化对象非常有用。
    SCNN相较于其他方法的优点:

    • 顺序消息传递方案比传统的密集MRF/CRF具有更高的计算效率
    • 消息作为残差传播,使SCNN更易于训练
    • SCNN灵活可插入深度神经网络的任何层中

    2. SCNN

    2.1 CULane Dataset

    专用于车道线检测的数据集。KITTI和CamVid有像素级标注但只有几百张太少了;Caltech Lanes Dataset和TuSimple分别有1224和6048张图片,但场景简单。上述数据集均未标注遮挡不可见的车道线,CULane用三次样条也标注了车道线遮挡不可见的部分,共分为9个场景(1普通8挑战),共133235帧,分辨率1640×590。
    在这里插入图片描述

    2.2 Pipeline

    在这里插入图片描述
    在这里插入图片描述
    传统的建模空间关系的算法是基于马尔科夫随机场(MRF)或条件随机场(CRF)的,现有的工作将其与CNN联合起来的pipeline如图3(a),其具体过程为:(1)归一化:CNN的输出被视为一元势,并通过softmax操作来归一化;(2)信息传递:通过具有大核的通道维卷积实现(对于密集CRF,核大小将覆盖整个图像,其核的权重取决于输入图像);(3)兼容性变换:用1×1卷积实现;(4)添加一元势:这个过程重复N次来给出最终的输出。每个像素从其他所有像素接收信息,计算昂贵很难实时,难学习初始化难,其应用在CNN的输出而非高隐藏层(含有更丰富的信息)。
    本文提出的方法如3(b),将数据看成一个3D张量,然后将张量切成H片,对第一片送入一个核大小为C×w的卷积层,w为核的宽度,然后将输出加入到下一片形成新的一片,新的一片继续被送入下一个卷积层直到到达最后的一片。具体前向传播过程公式如下所示: X i , j , k X_{i, j, k} Xi,j,k表示通道、行、列索引像素, K i , j , k K_{i, j, k} Ki,j,k表示最后一片位于通道i和当前片位于通道j,两个元素w在列上有k个偏移的元素之间的权重,'表示的是更新后的值,f表示非线性激活函数例如ReLU,卷积核的权重在所有切片上共享。且SCNN是有方向的,DURL分别表示向下/上/右/左。
    在这里插入图片描述

    2.3 Advantages

    (1)计算效率高:传统其他所有点到1,SCNN顺序传播。张量H行W列,迭代n次,密集MRF/CRF消息传递nWWHH次(每两个行列像素传递一次),SCNN消息传递nWHw次(每个像素只接收w个像素的信息)。迭代次数由0到100,迭代方向设为4即上下左右。
    在这里插入图片描述
    (2)信息残差:SCNN中的信息按照残差的方式传播,公式(1)中的ReLU函数的输出,这种信息传递方案比LSTM更好。
    (3)灵活性:SCNN可以很容易的集成进CNN的任何部分而不仅是在输出位置,高隐藏层是个很好的集成位置,它有丰富且高度的语义信息

    3. Experiment

    相关训练参数设置详见原文,在CULane和Citysacpes两个数据集上进行实验。整个模型基于LargeFOV模型修改,四个空间方向上的SCNN依次添加到顶部隐藏层(fc7层)之后,以引入空间信息传播。
    在这里插入图片描述
    检测模型
    生成像素级的真值来训练网络就像语义分割,四条车道线被视为不同的类别,先预测是否存在再预测类别;测试时置信度大于0.5,每20行搜索一个最高相应的位置,然后用三次样条曲线连接起来即是最后的预测结果。SCNN模型与LargeFOV的区别:(1)fc7层的输出通道设为128;(2)fc6的atrous卷积层速率设置为4;(3)在每个ReLU层前添加BN层;(4)加入了个小网络来预测车道线是否存在。
    评价标准
    使用调和平均值F-measure = ( 1 + β 2 )  Precision Recall  β 2  Precision  +  Recall  \left(1+\beta^2\right) \frac{\text { Precision Recall }}{\beta^2 \text { Precision }+\text { Recall }} (1+β2)β2 Precision + Recall  Precision Recall ,其中Precision = T P T P + F P =\frac{T P}{T P+F P} =TP+FPTP,Recall = T P T P + F N =\frac{T P}{T P+F N} =TP+FNTP β \beta β设置为1。
    消融实验
    (1)SCNN多方向性的效果
    在这里插入图片描述
    (2)核宽度w的效果
    在这里插入图片描述
    (3)空间CNN在不同的位置
    在这里插入图片描述
    (4)顺序传播的有效性
    在这里插入图片描述
    (5)与SOTA方法的比较
    在这里插入图片描述
    在这里插入图片描述
    (6)计算效率
    在这里插入图片描述
    Cityscapes上的语义分割
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4. Conclusion

    提出了一个类CNN框架的网络SCNN,有效的实现了空间级的信息传播。很容易集成进深度网络中并进行端到端的训练,实验表明可有效保持细长结构的连续性。发布的数据集会有用。

  • 相关阅读:
    Nginx 负载均衡实现上游服务健康检查
    java并发编程学习四——ReentrantLock使用
    Spring Cloud(七)Sentinel
    探究精酿啤酒的秘密:原料中的天然酵母与纯净水质
    530. 二叉搜索树的最小绝对差
    浅谈智能化能源管理系统平台在企业中的应用
    localStorage
    R语言在vector向量数据的指定位置添加元素、被跳过的位置自动赋值为缺失值NA
    忘记过滤.idea文件导致maven管理错误一系列操作...
    2023年中国工业炉分类、产量及市场规模分析[图]
  • 原文地址:https://blog.csdn.net/qq_42672745/article/details/127517224