内容提要
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,并结合特征金字塔网络生成多维特征,以提升目标检测性能。