问题描述
我使用具有 resnet 架构的 Faster-RCNN 使用 Tensorflow 对象检测 API 训练了一个模型。我正在使用 tensorflow 1.13.1、cudnn 7.6.5、protobuf 3.11.4、python 3.7.7、numpy 1.18.1,目前我无法升级版本。我需要使用 IoU=0.3 的验证集来评估训练模型的准确性(AP/mAP)。我故意使用 legacy/eval.py 脚本,因为它仅计算 IoU=0.5 的 AP/mAP(而不是 mAP:0.5:0.95)
python legacy/eval.py --logtostderr --pipeline_config_path=training/faster_rcnn_resnet152_coco.config --checkpoint_dir=training/ --eval_dir=eval/
我尝试了几件事情,包括更新管道配置文件以使 min_score_threshold=0.3: 评估配置:{ num_examples: 60 min_score_threshold:0.3 ..
更新protos/eval.proto文件中的默认值,重新编译proto文件生成新版本的eval_pb2.py // 要可视化的检测到的对象框的最小分数阈值 可选浮动 min_score_threshold = 13 [默认 = 0.3];
然而,eval.py 仍然计算/显示 IoU=0.5 的 AP/mAP 上述配置仅有助于在 eval.py 输出图像中检测置信度
有谁知道如何评估 IoU=0.3 的模型?
解决方法
我终于可以通过修改../object_detection/utils/object_detection_evaluation.py中的多个方法参数(尤其是def __init)中的硬编码matching_iou_threshold=0.5参数值来解决它