论文解读SCNN 用于交通场景理解的空间CNN admin 2023-05-26 11:03:01 篇首语:本文由小编为大家整理,主要介绍了论文解读SCNN 用于交通场景理解的空间CNN相关的知识,希望对你有一定的参考价值。 前言 Spatial CNN,这里的Spatial不是指Spatial Convolution,而是通过特殊设计的CNN架构传递空间信息,更有效地学习空间关系,简称SCNN;它提出了一种新的神经网络结构用于提取特征。 传统的网络结构是卷积层接收来自前一层的输入,应用卷积运算和激活函数,并将结果发送到下一层;该过程按顺序结构,一层一层传递下去。但SCNN是先对这部分输入特征进切片,再按照下、上、右、左四种顺序进行卷积。 比如:一个三维的特征,相当于一个立方体,先进行横切片,分别进下、上顺序进行卷积。再对得到特征,进行竖切片,分别进行右、左顺序进行卷积。 SCNN简介 SCNN将传统的深层逐层(layer-by-layer)卷积推广到特征映射中的逐片(slice-by-slice)卷积,从而实现层中行和列之间的像素之间的消息传递。 SCNN对于长距离连续形状的目标、大型目标、以及有着极强空间关系但是外观线索不明显的目标,比如车道线、电线杆,具有很好的检测效果;它对遮挡的车道线的检测的结果明显好于传统CNN的方法。因为空间信息可以通过层间(特征图的行列)传播来加强。 论文地址:Spatial As Deep: Spatial CNN for Traffic Scene Understanding 开源代码(原版):https://github.com/XingangPan/SCNN 开源代码(Pytorch版):https://github.com/harryhan618/SCNN_Pytorch 一、网络结构 SCNN核心工作是提出了一种新的网络结构,如下图b部分所示;a部分是传统的CNN,它是顺序结构,一层一层传递下去。SCNN除了结构部分,在训练和测试流程上与其他方法没有大的区别。 a部分,传统CNN结构,卷积层接收来自前一层的输入,应用卷积运算和激活函数,并将结果发送到下一层;该过程按顺序完成,一层一层传递下去。 b部分,SCNN结构,先对这部分输入特征进切片;先进行横切片,分别进下、上顺序进行卷积。再对得到特征,进行竖切片,分别进行右、左顺序进行卷积。 四种顺序进行卷积,下、上、右、左,分别对应图中的"SCNN_D", "SCNN_U", "SCNNR", "SCNNL"。 SCNN应用在车道线检测中 切片部分用来提取特征的,只是网络中的一部分,其他卷积层、全连接层等仍然存在。作者所采用的方法也不是直接设计一个全新的网络,而是把这四个顺序卷积的部分嵌入到一个已有的网络模型中去。作者选用的网络是LargeFOV。新的网络如下图所示: (a)是训练的网络,(b)是用网络进行预测的流程,需要注意的是,(b)中右侧输出了四个数值,这四个数分别对应四条车道线的概率,0.99就是有车道线,0.02就是没有车道线,所以图中就显示了三条车道线,至于为啥是四条,这就属于作者设置的一个先验信息了,如果超过四条,最终也只会输出四条。当然,他既然这么做,就说明至少这个数据集里没有超过四条的。 二、计算效率 在SCNN之前,有许多尝试在深度网络找那个使用空间信息的工作。 使用循环神经网络RNN按每行或每列传递信息,但每个像素点只能接到来自同一行或同一列的信息。使用长短期记忆网络LSTM的变体来探索语义分割中的上下文信息,但计算量较大。使用CNN和图模型,如马尔可夫随机场MRF,和条件随机场CRF结合,通过大卷积核来传递信息,计算量很大。Dense MRF / CRF:每个像素直接从所有其他像素接收消息(大卷积核实现),可能具有很多冗余,如下图中a部分所示。 SCNN:消息传递是顺序传递,如下图中b部分所示。 顺序消息传递方案比传统的密集MRF / CRF具有更高的计算效率。 三、残差传递消息 SCNN使用残差进行信息传递,使训练更容易进行,并使用于多种神经网络。 四、灵活性 SCNN是灵活的,可以很容易地融入其他深度神经网络并进行端到端训练。 五、实验结果 SCNN应用于车道线检测的效果,与其他模型对比: 具体对比数据: SCNN应用于语义分割的效果: 六、小结 SCNN在空间层面实现有效的信息传播。SCNN可以很容易地融入其他深度神经网络并进行端到端训练。它在交通场景理解中的两个任务进行评估:车道检测和语义分割。 七、参考文献 [1] https://zhuanlan.zhihu.com/p/79524785 [2] https://zhuanlan.zhihu.com/p/72201700 [3] https://www.cnblogs.com/xuanyuyt/p/12022040.html [4] Spatial As Deep: Spatial CNN for Traffic Scene Understanding [5] 开源代码(原版):https://github.com/XingangPan/SCNN [6] 开源代码(Pytorch版):https://github.com/harryhan618/SCNN_Pytorch 本文只提供参考学习,谢谢。 CULane 数据集 CULane 是一个大规模的具有挑战性的数据集,用于交通车道检测的学术研究。它由安装在北京不同司机驾驶的六辆不同车辆上的摄像头收集。收集了超过 55 小时的视频并提取了 133,235 帧。数据示例如上所示。我们将数据集分为训练集 88880、验证集 9675 和测试集 34680。测试集分为普通和8个挑战类别,分别对应上面的9个例子。 数据集地址:https://xingangpan.github.io/projects/CULane.html 提供方:香港中文大学多媒体实验室 以上是关于论文解读SCNN 用于交通场景理解的空间CNN的主要内容,如果未能解决你的问题,请参考以下文章 oracle中CAST函数使用简介 如何使用securecrt软件配置交换机 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号