DDP:微软提出动态detection head选择,适配计算资源有限场景 | CVPR 2022 - 晓飞的算法工程笔记

DDP:微软提出动态detection head选择,适配计算资源有限场景 | CVPR 2022 - 晓飞的算法工程笔记

💡 原文中文,约3800字,阅读约需9分钟。
📝

内容提要

DPP(动态提案处理)通过对目标检测中的提案进行非统一处理,选择不同复杂度的算子,从而加速推理过程。实验表明,DPP在保持精度的同时显著提高了计算效率,实现了复杂性与精度之间的平衡。

🔎

延伸解读

DPP的动机:检测头计算量成为瓶颈

文章指出,目标检测的推理速度主要受密集proposal设计影响,但即使如Sparse R-CNN将proposal减少到300个,其检测头计算量仍高达25 GFLOPS,是主干网络MobileNetV2(5.5 GFLOPS)的4倍多。这意味着检测头成为计算瓶颈,单纯减少proposal数量收益有限。DPP通过动态选择不同复杂度的算子处理proposal,旨在降低检测头计算成本,同时保留精度增益和proposal稀疏性。

动态选择机制:轻量选择器与算子集

DPP将检测头的单一算子替换为包含三个不同复杂度算子的集合,并引入轻量级选择器(3层MLP)为每个proposal在每个阶段动态选择算子。选择器仅应用于部分阶段(如K={2,4,6}),其余阶段复用上一次选择,以最小化开销。选择器输出权重分配,整体开销极小(100个proposal仅4e-3 GFLOPS),可端到端训练。这种设计允许检测器在复杂度与精度之间灵活权衡。

选择器损失:引导资源合理分配

为确保动态分配的有效性,DPP引入选择器损失,包含两个目标:一是将复杂算子分配给高质量proposal(高IoU),低IoU时抑制复杂算子;二是根据图像中实例总数调整整体复杂度,实例密集时选择更复杂算子。损失通过IoU值和实例数T(αM,并裁剪到[T_min, N])调节,使选择器学会在推理时仅凭proposal本身进行资源分配,无需IoU信息。

实验表现:精度与效率的平衡

实验显示,DPP在阶段1∼6的AP分别为15.6、32.1、39.3、41.7、42.0、42.2,精度在前4个阶段迅速提升后饱和。较后阶段复杂算子占比减少,表明DPP能根据阶段需求动态调整计算。基于ResNet-50和MobileNetV2的对比及推理速度测试表明,DPP在保持精度的同时显著提升计算效率,实现了复杂性与精度的平衡。

❓

Q&A

DPP是什么,它的主要功能是什么?

DPP(动态提案处理)是一种目标检测方法,通过对提案进行非统一处理,选择不同复杂度的算子以加速推理过程。

DPP如何提高目标检测的计算效率?

DPP通过动态选择算子,根据提案的质量分配不同复杂度的计算,从而在保持精度的同时显著提高计算效率。

DPP的选择器在目标检测中起什么作用?

DPP的选择器是控制精度和复杂性之间权衡的关键组件,能够根据提案的质量动态调整算子的分配。

DPP的实验结果如何?

实验表明,DPP在保持精度的同时显著提高了计算效率,实现了复杂性与精度之间的平衡。

DPP与传统检测算法有什么不同?

传统检测算法通常对所有提案使用相同复杂度的操作,而DPP通过动态选择算子优化资源分配,避免对低质量提案浪费计算资源。

DPP的主干网络使用了哪些技术?

DPP的主干网络使用MobileNet V2或ResNet-50,并结合特征金字塔网络生成多维特征,以提升目标检测性能。

🏷️

标签

➡️

继续阅读