Anchor-Based:Anchor-Free你很会打吗?Waymo实时目标检测新SOTA!

简介: 本文概述了自动驾驶场景中anchor-based检测器常用的模型改进和推理时间优化方法。

论文链接:https://arxiv.org/pdf/2208.06062.pdf


1摘要



本文概述了自动驾驶场景中anchor-based检测器常用的模型改进和推理时间优化方法。在针对普通目标检测场景设计的高性能RCNN-RS和RetinaNet-RS检测框架的基础上,我们研究了一组框架改进,使检测器能够更好地检测密集场景中的小目标。然后,我们提出了一种模型缩放策略,通过缩放输入分辨率和模型大小来获得更好的速度-精度权衡曲线。我们在Waymo开放数据集(WOD)[24]的实时2D目标检测赛道上评估我们的模型family。在V100 GPU上70ms/帧的延迟限制下,最大的Cascade RCNN-RS模型获得了76.9%的AP/L1和70.1%的AP/L2,实现了WOD实时2D检测的新SOTA。我们最快的RetinaNet-RS模型在保持50.7% AP/L1的合理检测精度的同时,达到6.3 ms/帧和42.9% AP/L2。

640.png


2介绍



自动驾驶场景中的目标框检测是计算机视觉领域中最受欢迎但也最具挑战性的任务之一。与普通的目标检测场景不同,自动驾驶场景通常专注于街道驾驶视角,其中感兴趣的目标尺寸较小,且类别较少。自动驾驶场景的典型目标包括汽车、行人、骑自行车的人、骑摩托车的人、街景标志等。


从2015年开始,COCO[17]已经成为评估目标检测器性能的基准。因此,大多数流行的目标检测器[3-11 ,15 ,16 , 18 ,19 ,21 ,25]在模型的设计、训练技巧、后处理方法、推理时间优化、模型缩放策略等方面都为COCO量身定制。在本项工作中,我们的目标是优化自动驾驶中常用的目标检测器。我们采用RCNN-RS和RetinaNet-RS[7]框架作为我们的强基线,并且仔细研究自动驾驶场景中常用COCO检测设置在模型改进和推理时间优化中的有效性。接下来,我们发现了一个通过输入分辨率和backbone缩放来对模型进行调整的更好的策略,并提出了一个更好的速度-精度权衡的模型family。


我们的模型family在Waymo开放数据集的实时2D检测赛道上进行评估。我们采用RCNN-RS模型作为最好精度的模型,采用RetinaNet-RS模型作为最快的速度的模型。在V100 GPU上的70帧/ms延迟约束下,我们的Cascade RCNN-RS模型实现了76.9%的AP/L1,运行速度为68.8帧/毫秒,在实时2D检测排行榜[1]上实现了新SOTA。为了进一步推动最高精度和最快速度,我们最大的Cascade RCNN-RS模型达到78.9%的AP/L1,运行速度为103.9 ms/帧,我们最小的RetinaNet-RS达到6.3 ms/帧,同时保持合理的AP/L1为50.7%。


3方法



改进RCNN-RS


结构上的改进


RCNN-RS方法使用现有的一些训练策略,提升了普通场景的目标检测效果,这些训练策略包括:随机缩放增强、随机深度正则化、更长的训练时间以及SiLU激活函数。

为了提升其在自动驾驶场景的检测效果,我们做了以下改进。


Cascaded head: 原生的Cascade RCNN-RS中采用两个级联、两个iou阈值(0.6、0.7)的head,得到了较好的精度,这里我们采用了三个级联head,前景IoU阈值越来越大,分别为{0.5,0.6,0.7}。


轻量级头部:我们去除head和RPN中的所有卷积层,只保留最终的全连接层进行框回归和分类。轻量级的head设计显著提高了模型的速度,同时达到了与原始head设计相似的精度,该设计由4个卷积层和一个全连接层组成。


L2-L6特征金字塔:多尺度特征金字塔上检测目标可以获得好的性能[15]。通常COCO检测设计选择是构建L3-L7特征金字塔[5,6,8,16,26]。为了更好的定位和识别小目标,我们增加了L2,去除了L7特征层。


推理时间上的改进


推理时间框架设计:我们给Cascade RCNN-RS检测器的第二阶段提供了512个proposals,而不是1000个,用于推理和训练。在ROI生成和最终检测生成过程中,NMS阈值由0.5提高到0.7,提升重叠目标的检测效果。


改进:进一步采用NVIDIA TensorRT,使用float16精度优化模型推断速度。


改进RetinaNet-RS


主要也是更改了包括使用L2-L6层特征、更大的NMS阈值、TensorRT和float16精度推理。


WOD上进行模型缩放


我们通过缩放输入分辨率和缩放backbone尺寸来探索WOD上的模型缩放。在一定计算成本范围内选择性能最好的模型,形成较好的速度-精度权衡曲线。对于输入分辨率,我们将输入图像的高度从384逐渐增加到1536,宽度从640逐渐增加到2688。对于backbone,我们采用了5种不同规模的架构:ResNet-RS18×0.251包含5.3M参数的(RN18×0.25); SpineNet-49×0.25(SN49×0.25),包含5.6M参数;包含30.3M参数的SpineNet-49(SN49);包含37.6M参数的SpineNet-96(SN96);包含49.7M参数的SpineNet-143(SN143)。


4实验



我们在WOD训练集上使用同步BN、0.9动量的SGD、batch_size=256,20000次迭代,分别训练所有模型[14]。采用初始学习率为0.32的cosine学习率更新策略。前1000步采用线性学习率预热。为了获得更好的结果,我们遵循[7]的训练实践,在COCO[17]数据集上预训练我们的模型。


从Faster RCNN-RS模型开始,再增加两个级联头,AP/L1提高+1.3%。将L2层特征加入多尺度特征金字塔,去掉L7层,AP/L1再上升1.2%。去除RPN头部和检测头部中的3×3卷积层使模型速度提高25%,同时精度变化不大。通过将第二阶段的proposals数量从1000减少到512,模型快了9%,将NMS阈值从0.5提高到0.7,进一步提高了AP/L1 +1.2%。最后,使用TensorRT优化模型,并将推理模型精度从float32更改为float16,可以显著降低推理时间(53%)。


具体如下表所示:


640.png


输入分辨率和backbone缩放,通过实验发现,在合理的输入分辨率范围内(高度从512到1280),使用更大的backbone比使用更小的backbone更有效。为了进一步推动更高的精度或更快的速度,在保持输入分辨率的同时缩放主干尺寸成为一个更有效的策略。


640.png640.png


RCNN vs. RetinaNet,在实验中,同样推理时间条件下,Cascade RCNN-RS相比 RetinaNet-RS高了4.1%AP/L1,而RetinaNet-RS可以达到更快的速度(比如512输入的条件下,达到6.3ms/frame)。如下图所示:

640.png

640.png


最终在实时2D目标检测排行榜,与其他模型进行的对比:


640.png


5总结



本项工作中,我们从架构优化和推理时间优化改进了自动驾驶场景的强两阶段RCNN-RS检测器。我们研究了缩放输入分辨率和模型大小对WOD实时2D检测任务的影响,并提出了一系列适用于不同延迟条件的模型。我们希望这项研究可以帮助研究工作者更好地设计自动驾驶目标检测器,并将优化转移到更多的检测框架和检测场景。


6参考



[1] Optimizing Anchor-based Detectors for Autonomous Driving Scenes



相关文章
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
11208 1
|
9月前
|
监控 数据可视化 算法
基于高德MCP2.0的智能旅游攻略系统设计与实现
MCP2.0(Map-based Collaborative Planning)是新一代旅游攻略系统,通过Web端可视化界面与高德地图API深度集成,实现了从静态攻略到动态智能规划的升级。系统核心功能包括可视化地图生成、高德地图APP深度集成、智能行程规划、实时路况优化和多端同步。技术栈采用Vue.js、Node.js、MongoDB和WebSocket,支持实时通信和数据同步。系统通过智能算法优化行程,结合实时路况动态调整路线,提升用户体验。未来发展方向包括AI推荐、AR导航和多语言支持,进一步扩展系统的
507 4
基于高德MCP2.0的智能旅游攻略系统设计与实现
|
消息中间件 分布式计算 NoSQL
大数据-134 - ClickHouse 集群三节点 安装配置启动
大数据-134 - ClickHouse 集群三节点 安装配置启动
449 0
|
人工智能 并行计算 测试技术
AI计算机视觉笔记三十一:基于UNetMultiLane的多车道线等识别
该项目基于开源数据集 VIL100 实现了 UNetMultiLane,用于多车道线及车道线类型的识别。数据集中标注了六个车道的车道线及其类型。项目详细记录了从环境搭建到模型训练与测试的全过程,并提供了在 CPU 上进行训练和 ONNX 转换的代码示例。训练过程约需 4 小时完成 50 个 epoch。此外,还实现了视频检测功能,可在视频中实时识别车道线及其类型。
|
JSON 算法 数据可视化
5.3 目标检测YOLOv3实战:叶病虫害检测——损失函数、模型训练
这篇文章详细介绍了使用YOLOv3模型进行叶病虫害检测时的损失函数配置、模型训练过程、评估方法以及模型预测步骤,并提供了相应的代码实现和可能的改进方案。
|
人工智能 自然语言处理 语音技术
Ultravox:端到端多模态大模型,能直接理解文本和语音内容,无需依赖语音识别
Ultravox是一款端到端的多模态大模型,能够直接理解文本和人类语音,无需依赖单独的语音识别阶段。该模型通过多模态投影器技术将音频数据转换为高维空间表示,显著提高了处理速度和响应时间。Ultravox具备实时语音理解、多模态交互、低成本部署等主要功能,适用于智能客服、虚拟助手、语言学习等多个应用场景。
868 14
Ultravox:端到端多模态大模型,能直接理解文本和语音内容,无需依赖语音识别
|
数据采集 机器学习/深度学习 算法
5.2.3 检测头设计(计算预测框位置和类别)
这篇文章详细介绍了YOLOv3目标检测模型中的检测头设计,包括预测框是否包含物体的概率计算、预测物体的位置和形状、预测物体类别的概率,并展示了如何通过网络输出得到预测值,以及如何建立损失函数来训练模型。
|
监控 架构师 项目管理
项目管理架构师的角色与职责:构建高效项目交付框架
【8月更文第7天】在当今快速变化的商业环境中,组织需要灵活高效的项目交付机制来应对不断出现的新挑战。项目管理架构师(Project Management Architect, PMA)作为一种新兴的角色,在确保项目成功交付方面扮演着至关重要的角色。本文将探讨PMA的核心职责,以及他们如何通过设计和实施项目管理流程来提高项目的可扩展性和适应性,并通过有效的项目治理来提升团队的整体表现。
535 0
|
NoSQL Shell Go
在go中简单使用go-redis库
在go中简单使用go-redis库
yolov5--datasets.py --v5.0版本-数据集加载 最新代码详细解释2021-7-5更新
yolov5--datasets.py --v5.0版本-数据集加载 最新代码详细解释2021-7-5更新
623 0

热门文章

最新文章