【mmdetection】验证时AP为-1

目录

问题

AP的解释

可能的Bug

问题

验证的时候评价指标输出是酱紫的

 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.177
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=1000 ] = 0.608
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=1000 ] = 0.057
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.293
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = -1.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.292
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=300 ] = 0.292
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=1000 ] = 0.292
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.292
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = -1.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = -1.000

 可见area= medium和area=large的AP值为-1,不知道是不是bug导致我的mAP很低,翻了一圈找到了以下解释,总算是弄懂了

AP的解释

首先得搞懂这些AP都代表什么意思,为什么就medium和large的AP值为-1

所以说,这和验证集里标注框面积有关,得检查自己的数据集如果数据框的都是比较小的,中型和大型的自然就没有,所以无法评判(从Github上的回答来看,源码里对于没有的就设置为-1)

可能的Bug

那如果说确实有中大型的检测框,还是-1,那是为啥呢?

那可能是coco数据集的json文件有问题了,在json2coco.py转换时area恒等于1了

因此找到并修改

# annotation['area'] = 1.0  # 导致medium和large的ap都是-1
annotation['area'] = annotation['bbox'][2] * annotation['bbox'][3]

就可以了~

### MMDetection 和 YOLO 对比 #### 设计理念差异 MMDetection 是一个模块化设计的目标检测框架,支持多种不同的骨干网络、颈部结构以及头部组件的选择和组合[^1]。YOLO (You Only Look Once) 则采用单阶段(one-stage)检测器的设计思路,在单一神经网络中完成边界框预测与类别分类的任务。 #### 性能表现对比 对于性能方面,YOLO 系列模型因其快速推理速度而闻名,尤其适合实应用场景。然而,在精度上可能不如两阶段(two-stage)方法如 Faster R-CNN 或者经过精心调优后的 MMDetection 中实现的各种先进算法。平衡功能金字塔将长方体AP从36.8提高到37.7。小、中、大尺度的结果都得到了一致的改进,这验证了平衡语义特征平衡了各个层次的低层和高层信息,进而产生了一致的改进[^2]。 #### 易用性和灵活性 MMDetection 提供了一个高度灵活且易于扩展的研究平台,允许研究人员轻松尝试新的想法并构建复杂的检测流水线。相比之下,YOLO 更加专注于提供简单易用的一站式解决方案,具有较低的学习曲线,特别适用于那些希望迅速部署目标检测系统的开发者群体。 #### 社区和支持情况 两者都有活跃的开源社区维护和发展各自项目。不过由于 YOLO 的广泛流行度及其相对简单的架构特性,使得它拥有更大的用户基数和技术文档资源可供参考学习;与此同,作为由学术界主导开发出来的工具包之一,MMDetection 同样获得了不少研究者的青睐,并持续贡献着高质量的新特性更新。 ```python import torch from mmdet.apis import init_detector, inference_detector config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py' checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth' model = init_detector(config_file, checkpoint_file, device='cuda:0') result = inference_detector(model, img) print(result) ```
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值