
论文:YOLOP: You Only Look Once for Panoptic Driving Perception
代码:https://github.com/hustvl/YOLOP
作者:华中科大王兴刚团队
时间:2022.03
贡献:
全景自动驾驶感知系统在自动驾驶系统中非常重要,可以帮助车辆做出正确的决策。
全景驾驶感知系统的两个重要的要求,也是挑战,分别是:
但全景驾驶面临的最大的难点在于:系统需要部署到边端设备上,需要优先考虑其有限的计算资源
还有一个隐藏的信息:全景驾驶系统虽然有多个任务,但这些任务面对的对象都是有一定的关联的。车道线通常是可通行区域的边界,可通行区域一般紧密的环绕在车辆等的周围,所以多任务网络非常适合解决这类问题:
基于上述讨论,提出了 panoptic driving perception network(YOLOP), 是一个支持多任务学习的全景感知网络,能够同时支持目标检测、可通行区域识别、车道线检测任务。
YOLOP 的构成:


1、Backbone:使用 CSP-Darknet 作为 backbone(YOLOv4 中的)
2、Neck:SPP + FPN,SPP 生成并结合各个不同尺度的特征,FPN 结合各个不同语义尺度的特征,让组合后的特征包含多尺度和多语义层级的信息。
1、Detect Head
和 YOLOv4 类似,使用 anchor-based multi-scale 检测方式:
2、Drivable Area Segmentation Head and Lane Line Segmentation Head
这两个头使用的是相同的网络结构,输入 FPN 的最后一层给分割分支,大小为 (W/8, H/8, 256)。
上采样 3 次后,最终的输出为 (W, H, 2),2 是分割类别:前景(可通行区域和车道线)+ 背景
3、Loss
由于有三个 decoder,所以也需要三部分的 loss 函数
① 检测任务的 loss: L d e t L_{det} Ldet

② 可通行区域分割的 loss: L d a − s e g L_{da-seg} Lda−seg,交叉熵 loss

③ 车道线分割的 loss: L l l − s e g L_{ll-seg} Lll−seg,交叉熵 loss + IoU loss( L I o U = 1 − T P T P + F P + F N L_{IoU}=1-\frac{TP}{TP+FP+FN} LIoU=1−TP+FP+FNTP),因为车道线像素比较稀疏,IoU loss 更高效一些

总的 loss 如下:

数据集:BDD100K
共有 100K 数据,支持 10 个自动驾驶任务
训练,验证,测试 分别为 70k,10k,20k
1、检测效果


2、可通行区域分割效果


3、车道线分割效果


4、消融实验
① 到底端到端训练好呢还是分步训练好呢
表 4 中对比了不同的训练方式:

② 多任务效果好还是单任务效果好呢
表 5 对比了两种方式的效果:

③ Region-based 方法好还是 Grid-based 方法好呢
作者给 Faster RCNN 添加了两个分割头,得到 R-CNNP,分别使用同时训练和单独训练的方式,结果如表 6。
