【Papers】Robust Lane Detection via Expanded Self Attention 论文解读
论文题目:Robust Lane Detection via Expanded Self Attention
链接地址:https://arxiv.org/abs/2102.07037
文章核心想要解决的是车道线遮挡、缺失、模糊等情况下的识别精度问题。主要通过一个自注意力模块,增强网络对于这部分车道线的关注程度,从而提升效果。
1. 概述
1.1 问题定义
这里的 Lane Detection,检测的目标是抽象意义上的车道分隔线,更关注全局的几何特征;
而不是路面上印刷的 Lane Mark,如果目标是 Lane Mark,则不存在遮挡的问题,能看到什么就识别什么,目标非常明确,且更关注局部特征。
至于为什么把识别目标设定为 Lane 而非 Lane Mark,我想很重要的一个原因是,像素级的 Lane Mark 标注成本远高于用折线段标注的 Lane。目前可用的公开集,也大部分都是 Lane 的形式。
1.2 问题分析
相比于其他更一般化的待识别对象,车道线有很多明显的特点:
- 细长的外观形态
- 很强的透视关系
- 不同目标之间有明显的相互约束
这些都指向了一个结论,Lane Detection 非常依赖全局信息(global contextual information)。
说到增强全局信息,有以下几个思路:
增大每一个输出像素的感受野(尽量覆盖到全图尺度),而增大感受野的方法,比如:
- 增加卷积层数,卷积核大小(很影响效率)
- 使用池化层(近期的网络设计,很多都通过Conv层的Stride设置来实现降采样,很少用Pooling)
- 使用空洞卷积
但单纯增大感受野的效果其实是存疑的,因为感受野是类似一个向外扩散的圆形高斯核,既与图片的矩形不符,也与车道线的线形不符,效率可能比较低。
做更充分的多尺度特征融合,以FPN、PANet、BiFPN这些方法为主。
加入直接利用全局信息的模块,如:
- 通用型的:Non-local block(Non-local neural networks)
- 专为车道线场景设计的:SCNN(Spatial As Deep: Spatial CNN for Traffic Scene Understanding)和RESA(RESA: Recurrent Feature-Shift Aggregator for Lane Detection)
这些方法一般计算量都不低,实际能够提升的效果与付出的代价之间,需要结合使用场景来考量。
摒弃CNN的套路,考虑从Transformer/DETR这一路线来解决 Lane Detection, 而问题的关键可能在于如何定义要识别的目标。可能的路线包括但不限于:
- 直接回归方程参数(与相机内外参强绑定)
- 将车道线打散成小的线段,检测线段(相对折中的方案,与DETR有可比性)
- 像素级分割(后处理更复杂)
1.3 本文方法
本文中增强全局信息的方法为,给网络增加一个 Expanded Self Attention (ESA) 模块。这个 ESA 模块利用车道线预测结果的 Confidence, 来指示车道线的清晰程度。
这个模块不需要对车道线被遮挡部分进行额外的标注,因此称之为 Self Attention。
2. 具体方法
2.1 ESA模块
2.1.1 模块结构
原文关于 ESA 的结构和解释如下:
一个简单的理解,分为 HESA 和 VESA,分别对应水平和垂直方向,输出特征尺度分别为C*H*1
和C*1*W
,并统一扩展成C*H*W
,称之为 ESA matrix。
ESA matrix 作为一个注意力图,与主干网络输出的特征图进行点乘( element-wise product),得到注意力加权后的特征图。
原文中提到 ESA 为一个不影响网络推理速度的方法,因此该模块应该只存在于训练过程中。在执行推理预测的使用环节是不需要的,它的影响已经在训练环节中作用到了车道线检测结果的输出中。
2.1.2 模块输出
对于 ESA 的输出,作者也给出了一个示例:
可以看到,当线比较清晰时,ESA 的输出值较高(基本在0.5以上);而车道线被遮挡的部分,对应的 ESA 的输出值比较低(大致在0~0.25之间)。而不存在车道线的部分(天空),输出为0。
2.2 整体模型
2.2.1 模型结果
原文关于网络模型的结构和解释如下:
2.2.2 输出形式
一个简单的理解,模型为典型的 Encoder-Decoder 结构,输出有三个分支:
Segment Branch:输出车道线检测的分割结果
Existence Branch:输出每一条车道线是否存在的二分类结果
这里需要根据车道线位置预设每一条线的编号,这种方式只适合用来刷公开集,无法解决车辆压线/换道过程中的跳变问题,且可识别的车道线数量有上限。
ESA Branch:输出每一条线在水平或者垂直方向上的Confidence,生成 ESA matrix。
2.2.3 Loss函数
**ESA matrix ** 分别与 Segment Branch 输出的特征图,以及作为 Ground-Truth 的特征图,进行点乘,生成加权后的特征图(weighted probability map / weighted gt map)。
对加权后的 Probability-map 和 GT-map 计算 ESA loss,再叠加常规的 Segmentation loss 和 Existence loss。
ESA loss 形式如下,包括两项:
- 第一项为对两个特征图使用标准的 MSE-loss。
- 第二项是一个正则项,主要含义是使得 ESA 的输出均值趋向于 GT-map 均值的一个百分比。根据原文所述,如果不加这个正则项,则 ESA 的输出永远是0(因为加权权重为0,则输出为0,loss也就为0,是最小的)。
2.3 推理效果
原文作者对比了几种典型的 Lane Detection 方法。从给出的例子来看,对于车道线模糊不清的场景,确实效果有所提升。
具体的量化对比可以看原文。
3. 问题和思考
3.1 可借鉴处
对于本文提出的方法,我觉得思路上可以借鉴的地方为:
常规的路况下,其实各种已有的车道线检测网络效果都已经做得比较接近,实际使用中的差别主要体现在各种 Corner Case 上, 而车道线被遮挡/模糊不清,可能是最主要得解决的场景。
在模型容量受限的情况下,应该让模型的识别能力更多关注到这些比较难处理的场景和部分,自然而然的想法就是引入注意力机制。
而 Self Attention 作为一种不需要额外监督信息的 End-to-End 方法,理论上很适合应用在这个场景。
3.2 疑惑之处
截至目前,原作者还没有发布源码,只能从文章的描述中去推测一些实现细节。
有一个很关键的点,我还没有想通,也没有在原文中找到解答。
根据原文所述,ESA module 输出的是车道线识别的 Confidence,即越确定的地方,输出越高,这一点也可以从文中 Figure 4 得到印证。
将这个输出作为注意力通道,对提取的特征图进行加权,直觉上感觉应该是加强了网络对于车道线清晰部分的注意力,而非加强了被遮挡区域的注意力。结合文中 Figure 5 的解释,画面中部车道线清晰的地方,得到的 MSE loss 低;而画面下部车道线模糊的地方,得到的 MSE loss 高。
那么,随着训练收敛程度的增加,是否会产生这样的情况: ESA 的输出对于车道线清晰的部分,响应越来越强烈,导致 ESA loss 越来越关注车道线清晰的部分,车道线模糊的部分更加没有得到充分的关注和训练。
我的一种猜测是:
是否在加权过程中,实际上对 ESA 的输出进行了取反,即 Confidence 越低的地方,加权的权重越高,从而让模型更加关注车道线模糊的地方。
但这里又存在一个问题,即画面上部天空的位置,是不存在车道线的,ESA 输出理论上为0,这样的话,加权的权重最大,网络又会关注到天空中不存在车道线的位置。
可能是我读得不够仔细,没看到这个关键点,也可能是我对 Self Attention 这种机制的理解有误。也许只能等作者放出源码后,看看实际的实现方式是怎样的。
【Papers】Robust Lane Detection via Expanded Self Attention 论文解读的更多相关文章
- 《Stereo R-CNN based 3D Object Detection for Autonomous Driving》论文解读
论文链接:https://arxiv.org/pdf/1902.09738v2.pdf 这两个月忙着做实验 博客都有些荒废了,写篇用于3D检测的论文解读吧,有理解错误的地方,烦请有心人指正). 博客原 ...
- 论文笔记之:Learning Cross-Modal Deep Representations for Robust Pedestrian Detection
Learning Cross-Modal Deep Representations for Robust Pedestrian Detection 2017-04-11 19:40:22 Moti ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- PP: Robust Anomaly Detection for Multivariate Time Series through Stochastic Recurrent Neural Network
PROBLEM: OmniAnomaly multivariate time series anomaly detection + unsupervised 主体思想: input: multivar ...
- 论文解读(FedGAT)《Federated Graph Attention Network for Rumor Detection》
论文信息 论文标题:Federated Graph Attention Network for Rumor Detection论文作者:Huidong Wang, Chuanzheng Bai, Ji ...
- 轮廓检测论文解读 | Richer Convolutional Features for Edge Detection | CVPR | 2017
有什么问题可以加作者微信讨论,cyx645016617 上千人的粉丝群已经成立,氛围超好.为大家提供一个遇到问题有可能得到答案的平台. 0 概述 论文名称:"Richer Convoluti ...
- Object Detection · RCNN论文解读
转载请注明作者:梦里茶 Object Detection,顾名思义就是从图像中检测出目标对象,具体而言是找到对象的位置,常见的数据集是PASCAL VOC系列.2010年-2012年,Object D ...
- 【论文解读】行人检测:What Can Help Pedestrian Detection?(CVPR'17)
前言 本篇文章出自CVPR2017,四名作者为Tsinghua University,Peking University, 外加两名来自Megvii(旷视科技)的大佬. 文章中对能够帮助行人检测的ex ...
- 【尺度不变性】An Analysis of Scale Invariance in Object Detection – SNIP 论文解读
前言 本来想按照惯例来一个overview的,结果看到1篇十分不错而且详细的介绍,因此copy过来,自己在前面大体总结一下论文,细节不做赘述,引用文章讲得很详细,另外这篇paper引用十分详细,如果做 ...
随机推荐
- GitHub Classroom
GitHub Classroom GitHub Education https://classroom.github.com/classrooms https://classroom.github.c ...
- Flutter for web
Flutter for web https://flutter.dev/web https://github.com/flutter/flutter_web Dart https://github.c ...
- NGK公链依靠技术创新推动数字经济产业发展
数字经济更让人们的生活发生了翻天覆地的变化.数字经济的发展要依靠技术的创新,发展出生态新模式.同时数字经济的发展要利用新技术对传统产业进行全面的的改造升级,释放数字对经济发展的放大.倍增作用.打造数字 ...
- uni-app小白入门自学笔记(一)
码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14427845.html 目录 码文不易啊,转载请带上本文链接呀,感谢感谢 https ...
- winform解析json API数据
{ "retCode" : "SUCCESS", "msg" : "", "data" : { ...
- Kubernetes中分布式存储Rook-Ceph的使用:一个ASP.NET Core MVC的案例
在<Kubernetes中分布式存储Rook-Ceph部署快速演练>文章中,我快速介绍了Kubernetes中分布式存储Rook-Ceph的部署过程,这里介绍如何在部署于Kubernete ...
- 2021-2-27:Linux 下如何优化 Java MMAP 写入
主要是调整 pdflush 相关参数. 在linux操作系统中,写操作是异步的,即写操作返回的时候数据并没有真正写到磁盘上,而是先写到了系统cache里,随后由pdflush内核线程将系统中的脏页写到 ...
- 如何理解JavaScript中的函数
转: 如何理解JavaScript中的函数 JS中的函数简介 JS中的函数是一种通过调用来完成具体业务的一段代码块.最核心的目的是将可重复执行的操作进行封装,然后供调用方无限制的调用. JS中的函数的 ...
- 12张图打开JMeter体系结构全局视角
JMeter是Java技术栈工具,在软件测试领域应用非常广泛,无论是性能测试还是接口测试,技术都很成熟和稳定.它有一个突出特点:开源,适合做二次开发,以阿里为代表的Java技术栈公司都对它青睐有加.在 ...
- Java 常见对象 04
常见对象·Arrays 类和 包装类 数组高级冒泡排序原理图解 * A:画图演示 * 需求: 数组元素:{24, 69, 80, 57, 13} 请对数组元素进行排序 * 冒泡排序: 相邻元素两两比较 ...