论文题目: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)。

说到增强全局信息,有以下几个思路:

  1. 增大每一个输出像素的感受野(尽量覆盖到全图尺度),而增大感受野的方法,比如:

    • 增加卷积层数,卷积核大小(很影响效率)
    • 使用池化层(近期的网络设计,很多都通过Conv层的Stride设置来实现降采样,很少用Pooling)
    • 使用空洞卷积

    但单纯增大感受野的效果其实是存疑的,因为感受野是类似一个向外扩散的圆形高斯核,既与图片的矩形不符,也与车道线的线形不符,效率可能比较低。

  2. 做更充分的多尺度特征融合,以FPN、PANet、BiFPN这些方法为主。

  3. 加入直接利用全局信息的模块,如:

    这些方法一般计算量都不低,实际能够提升的效果与付出的代价之间,需要结合使用场景来考量。

  4. 摒弃CNN的套路,考虑从Transformer/DETR这一路线来解决 Lane Detection, 而问题的关键可能在于如何定义要识别的目标。可能的路线包括但不限于:

    • 直接回归方程参数(与相机内外参强绑定)
    • 将车道线打散成小的线段,检测线段(相对折中的方案,与DETR有可比性)
    • 像素级分割(后处理更复杂)

1.3 本文方法

本文中增强全局信息的方法为,给网络增加一个 Expanded Self Attention (ESA) 模块。这个 ESA 模块利用车道线预测结果的 Confidence, 来指示车道线的清晰程度。

这个模块不需要对车道线被遮挡部分进行额外的标注,因此称之为 Self Attention

2. 具体方法

2.1 ESA模块

2.1.1 模块结构

原文关于 ESA 的结构和解释如下:

一个简单的理解,分为 HESAVESA,分别对应水平和垂直方向,输出特征尺度分别为C*H*1C*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-mapGT-map 计算 ESA loss,再叠加常规的 Segmentation lossExistence 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 论文解读的更多相关文章

  1. 《Stereo R-CNN based 3D Object Detection for Autonomous Driving》论文解读

    论文链接:https://arxiv.org/pdf/1902.09738v2.pdf 这两个月忙着做实验 博客都有些荒废了,写篇用于3D检测的论文解读吧,有理解错误的地方,烦请有心人指正). 博客原 ...

  2. 论文笔记之: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 ...

  3. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

  4. PP: Robust Anomaly Detection for Multivariate Time Series through Stochastic Recurrent Neural Network

    PROBLEM: OmniAnomaly multivariate time series anomaly detection + unsupervised 主体思想: input: multivar ...

  5. 论文解读(FedGAT)《Federated Graph Attention Network for Rumor Detection》

    论文信息 论文标题:Federated Graph Attention Network for Rumor Detection论文作者:Huidong Wang, Chuanzheng Bai, Ji ...

  6. 轮廓检测论文解读 | Richer Convolutional Features for Edge Detection | CVPR | 2017

    有什么问题可以加作者微信讨论,cyx645016617 上千人的粉丝群已经成立,氛围超好.为大家提供一个遇到问题有可能得到答案的平台. 0 概述 论文名称:"Richer Convoluti ...

  7. Object Detection · RCNN论文解读

    转载请注明作者:梦里茶 Object Detection,顾名思义就是从图像中检测出目标对象,具体而言是找到对象的位置,常见的数据集是PASCAL VOC系列.2010年-2012年,Object D ...

  8. 【论文解读】行人检测:What Can Help Pedestrian Detection?(CVPR'17)

    前言 本篇文章出自CVPR2017,四名作者为Tsinghua University,Peking University, 外加两名来自Megvii(旷视科技)的大佬. 文章中对能够帮助行人检测的ex ...

  9. 【尺度不变性】An Analysis of Scale Invariance in Object Detection – SNIP 论文解读

    前言 本来想按照惯例来一个overview的,结果看到1篇十分不错而且详细的介绍,因此copy过来,自己在前面大体总结一下论文,细节不做赘述,引用文章讲得很详细,另外这篇paper引用十分详细,如果做 ...

随机推荐

  1. how to copy to clipboard using windows cmd

    how to copy to clipboard using windows cmd Windows clipboard command line https://www.labnol.org/sof ...

  2. asm movbe 指令

    movbe MOVBE 目标操作数,源操作数 复制源操作数的数据,交换字节后,移动数据 假如: movbe eax,(float)1000.0 eax == 0x00007A44 movbe eax, ...

  3. OSPF“孤儿”区域

    在多区域OSPF中,area0为主干区域,其他非主干区域都需要包含一个接口连接主干区域,那么当出现有的区域不和主干区域相连,成了"孤儿": 解决办法: 虚链路 在连接孤儿区域的路由 ...

  4. InnoDB存储引擎——页和记录(行)

    一.InnoDB页 InnoDB是一个将表中的数据存储到磁盘上的存储引擎,所以即使关机后重启我们的数据还是存在的.而真正处理数据的过程是发生在内存中的,所以需要把磁盘中的数据加载到内存中,如果是处理写 ...

  5. 2021-2-28:调用 System.gc() 后究竟发生了什么?

    首先,根据 DisableExplicitGC 这个 JVM 启动参数的状态,确定是否会 GC,如果需要 GC,不同 GC 会有不同的处理. 1. G1 GC 的处理 如果是 System.gc() ...

  6. Python3.x 基础练习题100例(11-20)

    练习11: 题目: 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析: 兔子的规律为数列1,1,2, ...

  7. 使用.net5 创建具有身份验证和授权的Blazor应用程序

     

  8. 中小企业上云首选,华为云全新云服务器S6性能评测分析

    转: 中小企业上云首选,华为云全新云服务器S6性能评测分析 [小宅按]今天,华为云全新弹性云服务器ECS通用计算型云服务器S6(以下简称为"华为云S6云服务器")正式发布,至顶网云 ...

  9. dubbo使用和配置讲解

    1. 分布式系统中相关概念 1.1 互联网项目特点及目标 1.1.1 特点: 用户多 流量大.并发高 海量数据 易受攻击 功能繁琐 变更快 1.1.2 指标及相关目标 互联网项目三高目标:高并发.高可 ...

  10. Kubernetes Container lifecycle hooks

    简介 在kubernetes中,容器hooks旨在解决服务进程启动与停止时的一些优雅操作需求.比如说进程停止时要给进程一个清理数据的时间,保证服务的请求正常结束,而不是强行中断服务的运行,这样在生产环 ...