自动驾驶感知多任务学习网络方法盘点!(检测/分割/车道线/关键点/深度估计)

简介: 多任务学习是自动驾驶领域非常重要的一个模块,旨在通过一个网络在较小计算量下实现多个任务,比如分割、检测、关键点、车道线等,除了具有节省计算量的优势外,多任务之间还具有一定的相互辅助作用,比如分割任务会帮助检测任务提升整体性能,下面梳理下自动驾驶领域常用到的一些多任务学习网络;

原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA



多任务学习是自动驾驶领域非常重要的一个模块,旨在通过一个网络在较小计算量下实现多个任务,比如分割、检测、关键点、车道线等,除了具有节省计算量的优势外,多任务之间还具有一定的相互辅助作用,比如分割任务会帮助检测任务提升整体性能,下面梳理下自动驾驶领域常用到的一些多任务学习网络;


1. Mask RCNN



Mask RCNN是何凯明于CVPR2017上发表的工作,率先提出集检测和分割为一体的端到端网络,这是一个多任务网络,可以扩展为:目标实例分割、目标关键点检测任务。Mask-RCNN 是基于Faster-RCNN 的框架,在基础特征网络之后又加入了全连接的分割网络,由原来的两个任务(分类+回归)变为了三个任务(分类+回归+分割/关键点)。

640.png



RPN网络使用backbone提取的feature map作为网络的输入,输出proposals的类别(前景or背景)与坐标位置。早期在Faster-RCNN中使用RoIPooling做特征提取,但这种方法存在两次量化操作,对于目标检测任务其对bounding box的坐标位置影响较小,但在分割任务中有较大影响。为此,Mask RCNN中采用RoIAlign用于从所有RoI中提取相同大小的feature map,给后续进行分类与分割。论文将Mask RCNN结构扩展成检测+实例分割与检测+关键点检测任务,实例分割任务采用FCN全卷积结构,预测对应类别的mask。关键点检测任务则将keypoint的位置信息建模为one-hot mask,并预测K个Mask,对应K个关键点类型(例如眼睛、鼻子等)。Mask RCNN在实例分割上的结构验证如下图所示:


640.png640.png


Mask RCNN在人体关键点检测上的性能如下图所示,相比于mask任务,keypoint任务对bbox性能有抑制作用,mask+keypoint联合训练任务基本能够保持三项性能;

640.png


2. Cascade Mask RCNN



Cascade Mask RCNN通过级联多个检测网络达到不断优化预测结果的目的。和普通的级联检测器不同,Cascade R-CNN的多个检测网络是基于不同的IOU阈值进而确定不同的正负样本来训练,在COCO数据集上Cascade R-CNN取得了非常出色的结果,并且也成为了当前目标检测比赛中的有力Trick。简单来说,Cascade R-CNN就是由一系列检测器组成的级联检测模型,并且每个检测器都基于不同IOU阈值的正负样本训练得到,前一个检测器的输出作为后一个检测器的输入,并且越往后走,检测器的阈值是越大的,论文指出,很难让一个在指定IOU阈值界定的训练集上训练得到的检测模型对IOU跨度较大的输入候选框都达到最佳,因此采取级联的方式能够让每一个阶段的检测器都专注于检测IOU在某一范围内的候选框,因为输出IOU普遍大于输入IOU,因此检测效果会越来越好,Cascade RCNN结构如下图所示,前一个检测模型回归得到的边界框坐标初始化下一个检测模型的边界框,迭代回归:


640.png


论文指出(d)中方案要优于(b)和(c);


640.png


级联方案无论在检测抑或实例分割任务上,都能取得较大收益,论文验证了不同主干不同任务在COCO2017上的性能对比,如下图所示:



640.png

3.Mask Scoring RCNN



Mask Scoring R-CNN主要用来学习预测实例mask的质量,论文提出了一种对实例分割假设进行评分的新方法,其原因在于大多数评价指标是根据假设得分来定义的,更精确的得分有助于更好地表征模型的性能。大多数实例分割方法使用分类置信度来度量mask质量是不合适的,因为它只区分proposals的语义类别,而不知道实例mask的实际质量和完整性。分类置信度与mask质量之间的偏差如下图所示,其中实例分割假设得到了准确的box-level定位结果和较高的分类分值,但对应的mask不准确。显然,使用这样的分类分数对mask进行评分会降低评价结果的质量。

640.png


Mask Scoring R-CNN受实例分割的AP度量的启发,该度量使用预测mask与其真实mask之间的像素级(IoU)来描述实例分割质量。论文提出了一个直接学习IoU的网络,一旦在测试阶段获得了预测的MaskIoU,就可以通过将预测的MaskIoU与分类得分相乘来重新评估mask得分。MaskIOU Head分支如下图所示,Mask Head输出特征和ROIAlign特征进行Concat,

然后通过卷积和全连接层进行预测。


640.png


COCO2017测试集上的实验表示,Mask Score RCNN相比于Mask RCNN在AP指标上有近1%的提升;

640.png


4. OmniDet



OmniDet是ICRA2021上的一篇paper,主要针对环视鱼眼镜头的多任务视觉感知系统展开讨论,模型集深度估计、视觉里程计、语义和运动分割、目标检测和镜头污染检测多个任务为一体。环视鱼眼相机通常被部署在自动驾驶车辆上用来感知车周边360°信息,论文在未校正的鱼眼相机上实现了一个多任务视觉感知网络,使得车辆感知周边环境信息,提出了一个基于相机几何的自适应机制在训练和推理过程中编码鱼眼畸变的模型,并证明了联合训练的模型优于相应的单个任务模型,模型结构如下图所示:


640.png


针对无监督深度估计和视觉里程计任务,论文基于FisheyeDistanceNet,loss主要包括重建项、正则项来强制边缘平滑和序列间距离一致项,在此基础上,论文又引入了特征度量loss。针对目标检测任务,由于严重的径向畸变,尤其是在外围,标准box表示已经失效。网络使用了一个24边的多边形表示来完成目标检测。论文基于YOLO3结构,对鱼眼目标检测使用polygon表示,称之为PolyYOLO。针对分割任务,论文采用有监督的语义和运动分割,基于Lovasz-Softmax loss和Focal loss。针对污染检测任务,论文基于SoilingNet,同时采用asynchronous backpropagation训练,相比于原始模型,输出从tilted output变成了pixel level segmentation。论文在KITTI数据集上将领域主流模型和OmniDet一起做了验证实验,如下图所示,在深度估计和pose估计上OmniDet有明显优势:


640.png


5. MultiTask-CenterNet



MultiTask-CenterNet提出了用一个网络同时完成目标检测、语义分割和人体姿态估计三个基本任务。论文增强了anchor-free的CenterNet方法来训练多个不同的感知相关的任务,包括目标检测和语义分割以及人体姿态估计。此外,作者还研究了不同的MCN(MultiTask-CenterNet)设置的效率,MCN可以同时执行多个任务,在某些情况下甚至超过其相应的单个任务网络的性能。更重要的是,与单个任务网络的组成相比,MCN结构减少了推理时间,减少了网络大小,网络结构如下图所示:

640.png


目标检测和人体姿态估计任务中,MCN架构使用CenterNet作为Anchor Free的检测算法,语义分割则采用全卷积方法。MCN中独立于目标检测任务进行人体关键点检测,关键点学习通过回归其偏移量来完成。此外,论文还扩展了语义分割的MCN架构,在语义分割架构中,模型对图像进行了像素级别的分类。


COCO测试集上的验证效果如下图所示,Seg + Det方案在分割指标上略低于Seg only网络,检测指标上基本对齐;Seg+Det+Pose方案相比于Det+Pose方案,在检测和关键点任务上基本保持,分割指标也和纯分割网络对齐。图19显示了多任务和单任务模型的推理速度和参数量,虽然多任务网络在精度上没有较大优势,但速度和参数量上优于多个单任务模型。


640.png640.png


6.  YOLOP



YOLOP由华中科技大学的团队提出,能够同时进行交通目标检测、可驾驶区域分割和车道检测三项任务。它由一个用于特征提取的编码器和三个用于处理特定任务的解码器组成。模型在BDD100K数据集上表现非常好,在准确性和速度方面,在所有三项任务上都达到了SOTA。为了获得高精度和快速的速度,YOLOP使用轻量级 CNN 作为编码器从图像中提取特征,然后将这些特征图馈送到三个解码器以完成各自的任务。检测任务的解码器是基于当前性能最佳的单级检测结构,主要因为单级检测网络比两级检测网络更快;单级检测器基于网格的预测机制与其他两个语义分割任务相关,而实例分割通常与基于区域的检测器相结合。编码器输出的特征图融合了不同级别和尺度的语义特征,分割分支可以利用这些特征图出色地完成像素级语义预测,YOLOP的整体结构如下图所示:


640.png


论文选择CSPDarknet作为主干,解决了优化时梯度重复的问题;Neck部分由SPP模块和FPN模块组成。解码器部分主要包括三个任务的特定解码器。检测任务解码器与YOLOv4类似,论文采用基于anchor的多尺度检测方案,并使用PAN结构以获得更好的特征融合效果,在多尺度融合特征图上进行检测。可行驶区域分割和车道线分割采用相同的网络结构,论文将 FPN 的底层特征送入分割分支,大小为 (W/8, H/8,256)。分割分支较为简单,经过三个上采样过程,将输出特征图恢复到(W, H, 2)的大小,代表了输入图像中每个像素对于可行驶区域/车道线和背景的概率。上采样层使用最邻近插值方法来降低计算成本,分割解码器不仅获得了高精度的输出,在推理过程中也非常快。论文在BDD100k上充分验证了三项基本任务的性能,针对检测任务,由于Multinet和DLT-Net只能检测车辆,作者只考虑BDD100K数据集上5个模型的车辆检测结果。如下表所示,使用 Recall 和 mAP50 作为检测精度的评估指标。模型在检测精度上超过了 Faster RCNN、MultiNet 和 DLT-Net,并且可以与YOLOv5s 相媲美。

640.png


可行驶区域分割任务中,BDD100K数据集中被不加区分地归类为“可行驶区域”,模型只需要区分图像中的可行驶区域和背景。mIoU用于评估不同模型的分割性能,结果下图所示:


image.png


BDD100K数据集中的车道线标记为两条线,因此直接使用标定真值非常困难。为了方便比较,论文根据双线注释计算中心线,然后绘制训练的车道线,宽度设置为8像素,同时将测试集的车道线宽度保持为2像素。使用像素精度和车道IoU作为评估指标,指标对比如下图所示:


image.pngimage.png


下图显示了单任务和多任务方案在每个特定任务上的性能对比。可以看出,YOLOP采用了多任务方案性能接近专注于单个任务的性能,更重要的是,与单独执行每个任务相比,多任务模型可以节省大量时间。

image.png


7. YOLO-Pose



YOLO-Pose主要基于YOLO目标检测框架完成2D多人姿态估计, 论文中的模型学习联合检测多人的box信息及其相应的2D姿态,从而实现自上而下和自下而上方法的最佳结合。YOLO-pose在COCO测试集上取得了最新成果,达到SOTA,无需翻转、多尺度或任何其它增加测试时间的方法来提升性能。YOLO-pose网络结构如图34所示,整体基YOLOv5结构,backbone采用CSPDarknet主干,Neck部分采用PANet,接下来是四个不同比例的探测头,两个解耦的头部用于预测框和关键点。对于检测任务,特征图上每个grid对应三个anchor,COCO数据集上类别+定位+置信度预测为85个元素;对于关键点任务,采样和检测任务对齐,人体具有17个关键点,预测对应坐标和置信度,每个anchor预测为51个元素;


image.png


论文在COCO开源数据集上进行了验证,在关键点指标上,YOLO-pose和主流bottom-up方法进行了对比。图35展示了与其它基于HigherHRNet和EfficientHRNet的SOTA方法进行了比较,与SOTA DEKR模型相比,YOLOv5-m6-pose的AP50更高,而DEKR复杂度是其4倍,YOLOv5-l6-pose比任何其他自下而上的姿势都能获得更好的AP50,DEKR复杂度是其2倍。COCO数据集上的这些结果表明,YOLO是现有基于HigherNet的自下而上方法的有力替代品 :


image.png


该篇论文整体来说工程意义较大;

相关文章
|
4天前
|
NoSQL Java Redis
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
12 0
|
4天前
|
存储 消息中间件 缓存
Redis系列学习文章分享---第十七篇(Redis原理篇--数据结构,网络模型)
Redis系列学习文章分享---第十七篇(Redis原理篇--数据结构,网络模型)
12 0
|
6天前
|
网络协议
计算机网络学习记录 运输层 Day5(2)
计算机网络学习记录 运输层 Day5(2)
10 1
|
6天前
计算机网络学习记录 应用层 Day6(2)
计算机网络学习记录 应用层 Day6(2)
7 0
|
6天前
|
网络协议
计算机网络学习记录 应用层 Day6(1)
计算机网络学习记录 应用层 Day6(1)
8 0
|
6天前
|
网络协议 算法 网络性能优化
计算机网络学习记录 运输层 Day5(1)
计算机网络学习记录 运输层 Day5(1)
8 0
|
6天前
|
网络虚拟化 网络架构
计算机网络学习记录 网络层 Day4(下)(2)
计算机网络学习记录 网络层 Day4(下)(2)
9 0
|
25天前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
41 1
|
10天前
|
安全 物联网 Linux
学习Linux对网络安全的重要性
**学习Linux对网络安全至关重要:** 1. 开源操作系统广泛应用于服务器、网络设备,掌握Linux是安全专家必备技能。 2. Linux内置安全特性,如最小权限和防火墙,加上丰富的安全工具,提供强大保障。 3. 可定制性允许灵活配置,满足安全需求,开源社区提供持续更新和教育资源。 4. 学习Linux能提升攻防能力,用于系统加固和渗透测试,适应跨平台安全场景。 5. 随着云计算和物联网发展,Linux在网络安全中的角色日益关键。
35 3
|
5天前
|
监控 安全 Linux
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
17 0

热门文章

最新文章