[论文解读] A Parallel Implementation of Computing Mean Average Precision
本文提出了一种并行的、硬件加速的平均平均精度(mAP)计算方法,用于目标检测任务,通过在PyTorch和TensorFlow中使用广播、掩码和索引技术,将原有的顺序循环替换为向量化操作。该方法在训练过程中实现近实时的mAP评估,性能开销极低,且mAP值与标准顺序实现相比仅相差0.62%,证明了其在效率上显著提升的同时,精度几乎完全一致。
Mean Average Precision (mAP) has been widely used for evaluating the quality of object detectors, but an efficient implementation is still absent. Current implementations can only count true positives (TP's) and false positives (FP's) for one class at a time by looping through every detection of that class sequentially. Not only are these approaches inefficient, but they are also inconvenient for reporting validation mAP during training. We propose a parallelized alternative that can process mini-batches of detected bounding boxes (DTBB's) and ground truth bounding boxes (GTBB's) as inference goes such that mAP can be instantly calculated after inference is finished. Loops and control statements in sequential implementations are replaced with extensive uses of broadcasting, masking, and indexing. All operators involved are supported by popular machine learning frameworks such as PyTorch and TensorFlow. As a result, our implementation is much faster and can easily fit into typical training routines. A PyTorch version of our implementation is available at https://github.com/bwangca/fast-map.
研究动机与目标
- 解决现有mAP计算方法在深度学习训练流水线中效率低下且不兼容的问题。
- 通过并行处理小批量检测结果与真实框,实现在训练过程中的实时mAP评估。
- 消除传统顺序实现中因需将检测结果写入磁盘而产生的I/O瓶颈。
- 提供一种与硬件加速兼容、原生支持PyTorch和TensorFlow的框架解决方案。
- 使训练流程能够基于验证集的mAP选择模型权重,从而提升模型选择的准确性。
提出的方法
- 将针对类别特定检测的顺序循环替换为使用广播、掩码和索引在小批量上进行的向量化操作。
- 将精确率和召回率表示为向量P和Q,其中每个元素对应一个按置信度排序的检测结果。
- 通过梯形积分公式计算AP:对每个i计算(P[i] + P[i-1]) * (Q[i] - Q[i-1]) / 2,再在所有类别上求和并取平均。
- 支持完整的PR曲线评估与特定召回率水平下的评估,通过复制和广播对齐召回阈值。
- 利用PyTorch和TensorFlow中的优化算子,实现GPU加速,并无缝集成到训练循环中。
- 采用统一的张量表示法,通过逻辑掩码和索引处理真正例(TP)、假正例(FP)和被忽略的检测结果。
实验结果
研究问题
- RQ1是否可以在深度学习训练过程中高效且实时地计算mAP用于目标检测?
- RQ2如何重构mAP计算流水线,以实现无I/O开销的批量并行推理?
- RQ3并行向量化mAP实现与标准顺序方法之间的数值差异有多大?
- RQ4硬件加速在训练工作流中能多大程度上提升mAP评估性能?
- RQ5是否可以将原生框架支持、可微分的mAP实现集成到标准训练流程中,以提升模型选择效果?
主要发现
- 所提出的并行mAP实现方法在Pascal VOC 2007测试集上达到mAP 0.6658,而顺序基线方法为0.6617,相对差异仅为0.62%。
- mAP值的差异主要源于计算框架中底层算子的差异,而非算法缺陷,对模型评估而言可忽略不计。
- 该方法可同时处理整个小批量的检测结果与真实框,消除了对每个类别进行顺序处理的需求。
- 该实现完全兼容PyTorch和TensorFlow,充分利用其优化算子实现硬件加速。
- 向量化方法消除了磁盘I/O开销,实现在训练过程中无需性能下降的实时mAP评估。
- 该方法通过复制和广播技术,同时支持完整的PR曲线积分与特定召回率水平下的评估。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。