How to evaluate trained model Average Precison and Mean AP with IOU=0.3
I finally could solve it by modifing hardcoded matching_iou_threshold=0.5 argument value in multiple method arguments (especially def __init) in the ../object_detection/utils/object_detection_evaluation.py
I trained a model using Tensorflow object detection API using Faster-RCNN with Resnet architecture. I am using tensorflow 1.13.1, cudnn 7.6.5, protobuf 3.11.4, python 3.7.7, numpy 1.18.1 and I cannot upgrade the versions at the moment. I need to evaluate the accuracy (AP/mAP) of the trained model with the validation set for the IOU=0.3. I am using legacy/eval.py script on purpose since it calculates AP/mAP for IOU=0.5 only (instead of 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/
I tried several things including updating pipeline config file to have min_score_threshold=0.3:
eval_config: {
num_examples: 60
min_score_threshold: 0.3
..
Updated the default value in the protos/eval.proto file and recompiled the proto file to generate new version of eval_pb2.py
// Minimum score threshold for a detected object box to be visualized
optional float min_score_threshold = 13 [default = 0.3];
However, eval.py still calculates/shows AP/mAP with IOU=0.5
The above configuration helped only to detect objects on the images with confidence level < 0.5 in the eval.py output images but this is not what i need.
Does anybody know how to evaluate the model with IOU=0.3?