您当前的位置: 首页 > 

暂无认证

  • 1浏览

    0关注

    97533博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

人类高质量视觉模型YOLOP开源:同时处理三大视觉任务,还能各种超越SOTA…

发布时间:2021-09-02 07:00:00 ,浏览量:1

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨happy

编辑丨极市平台

导读

 

华中科技大学王兴刚团队近日开源了一项在全景驾驶感知方面的工作,该工作能够同时进行交通目标检测、驾驶区域分割以及车道线检测,并且在三个任务上都取得了SOTA。

arXiv:https://arxiv.org/abs/2108.11250

code:https://github.com/hustvl/YOLOP

code@opencv:https://github.com/hpc203/YOLOP-opencv-dnn

本文是华中科技大学王兴刚团队在全景驾驶感知方面的工作,提出了一种能够在嵌入式平台上实时处理三个感知任务(目标检测、可驾驶区域分割、车道线检测)的方案YOLOP。所提YOLOP不仅具有超高的推理速度,同时在极具挑战性的BDD100K三个任务上均取得了非常优异的性能。

Abstract

全景驾驶感知系统是自动驾驶非常重要的一部分,实时高精度感知系统可以帮助车辆作出合理的驾驶决策。

我们提出一种全景驾驶感知网络YOLOP同时进行交通目标检测、驾驶区域分割以及车道线检测。YOLOP包含一个用于特征提取的编码,三个用于处理特定任务的解码器。所提方案在极具挑战的BDD100K数据集上表现非常好,从精度与速度角度来看,所提方法在三个任务上取得了SOTA性能。此外,我们还通过消融实验验证了多任务学习模型的有效性。

据我们所知,该工作是首个可以在嵌入式设备(Jetson TX2)上实时处理三个视觉任务的方案,同时具有非常优异的精度。

Method

上图给出了本文所提方案YOLOP的网络架构示意图,它是一种单阶段网络,包含一个共享编码器,三个用于特定任务的解码器。不同解码器之间并没有复杂的、冗余共享模块,这可以极大降低计算量,同时使得该网络易于端到端训练。

Encoder

该网络中的编码器由骨干网络与Neck网络构成:

Backbone :骨干网络用于提取输入图像的特征,考虑到YOLOv4在目标检测中的优异性能,我们选择CSPDarkNet作为骨干网络。

Neck :Neck用于对骨干网络提取的特征进行融合,我们主要采用了SPP与FPN构建Neck模块。SPP用于生成融合不同尺度的特征;FPN则在不同语义层面融合特征,使得生成特征包含多尺度、多语义级信息。

Decoders

YOLOP包含三个用于三个任务的解码器:

Detect Head   类似YOLOv4,我们采用了基于Anchor的多尺度检测机制。首先,我们采用PAN进行更优特征融合,然后采用融合后特征进行检测:多尺度特征的每个grid被赋予三个先验anchor(包含不同纵横比),检测头将预测位置偏移、高宽、类别概率以及预测置信度。

Driable Area Segment Head & Lane Line Segment Head  驾驶区域分割头与车道线分割头采用了相同结构。我们将FPN的输出特征(分辨率为)送入到分割分支。我们设计的分割分支非常简单,通过三次上采样处理输出特征尺寸为,代表每个像素是驾驶区域/车道线还是背景的概率。由于Neck中已包含SPP模块,我们并未像PSPNet添加额外的SPP模块。此外,我们采用了最近邻上采样层以降低计算量。因此,分割解码器不仅具有高精度输出,同时推理速度非常快。

Loss Function

由于该网络包含三个解码器,故多任务损失包含三部分:

  • Detection Loss :它是分类损失、目标检测以及目标框损失的加权和,描述如下:

其中:为用于降低类别不平衡的Focal Loss,则采用了CIoU损失。

  • 分割:采用带Logits的交叉熵损失。必须要提到的是:中添加了IoU损失。因此,这两个损失的定义如下:

总而言之,最终的损失是由上述三个损失加权得到:

Training Paradigm

我们尝试了不同范式训练上述模型。最简单的是端到端训练,然后三个任务可以进行联合学习。当所有任务相当时,这种训练范式非常有用。此外,我们也尝试了交替优化算法:即每一步聚焦于一个或多个相关任务,而忽视不相关任务。下图给出了本文所用到的step-by-step训练方案。

Experiments Setting

Dataset Setting 训练数据采用了BDD100K,其中70K用于训练,10K用作验证,20K用于测试。由于测试数据无标签,故我们在验证数据集上进行评估。

Implementation Details  为提升模型性能,我们采用了一些实用技术与数据增广策略。比如,采用K-means聚类生成anchor先验信息;warm-up与cosine学习率衰减机制;Photometric distortion与Geometric distortion数据增广策略。

Result

在这里,我们采用简单的端到端训练方式,将所得结果与其他方案进行对比。

Traffic Object Detection Result  上表给出了所提方案与其他方案的检测性能对比,从中可以看到:

  • 从检测精度来看,YOLOP优于Faster R-CNN、MultiNet以及DLTNet,并与使用大量训练trick的YOLOv5s相当;

  • 从推理耗时来看,YOLOv5s更快,因为YOLOP不仅要进行检测还要进行分割,而YOLOv5s仅需进行检测。交通目标检测结果见下图。

Drivable Area Segmentation Result  上表给出了驾驶区域分割性能对比,从中可以看到:

  • 从推理速度来看,所提方法要比其他方案快4-5倍。

  • 从性能角度来看,所提方案以19.9%、20.2%以及1.9%优于MultiNet、DLTNet以及PSPNet。分割结果可参考下图。

Lane Detection Result  上表给出了车道线检测性能对比,可以看到:所提方案性能远超其他三个方案,下图给出了车道线检测结果示意图。

Ablation Studies

我们设计了两个消融实验进一步说明所提方案的有效性。

End-to-End vs Step-by-Step  上表给出了不同训练机制的性能对比,从中可以看到:

  • 通过端到端训练,所提YOLOP已经表现的非常好,没有必要再进行交替训练优化;

  • 然而,我们发现:先训练检测任务可以取得更高精度。

Multi-task vs Single-task  上表对比了多任务与单任务机制的性能,从中可以看到:多任务机制可以取得与聚焦单一任务训练相当的性能 ;重要的是,相比独立执行每个任务,多任务训练可以节省大量的时间。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.0487s