我已经训练了一个 Single Shot Detector 模型(使用 Tensorflow),并运行了评估指标。但是,我不完全确定该怎么做。进行计算机视觉文献搜索时,报告的常见评估指标是精度、召回率、交叉联合 (IoU) 和平均平均精度 (mAP)。作为对象检测的新手,我试图获得这些结果,但我很难理解为精度、召回率、mAP 等选择哪个指标。YOLOv5 等算法将自动计算平均精度/召回率、mAP @ 0.5 等。 ,但这些结果与 Tensorflow 提供的结果略有不同。(注意:我用 Ubuntu 18.04 机器按照本教程中描述的方法训练了模型)。
结果如下:
INFO:tensorflow:DONE (t=0.02s)
I1027 11:06:36.038156 139881781995328 coco_tools.py:138] DONE (t=0.02s)
creating index...
index created!
Running per image evaluation...
Evaluate annotation type *bbox*
DONE (t=5.55s).
Accumulating evaluation results...
DONE (t=0.41s).
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.375
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.684
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.376
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.159
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.363
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.382
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.148
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.454
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.577
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.250
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.541
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.585
INFO:tensorflow:Eval metrics at step 100000
I1027 11:06:42.064121 139881781995328 model_lib_v2.py:1007] Eval metrics at step 100000
INFO:tensorflow: + DetectionBoxes_Precision/mAP: 0.375002
I1027 11:06:42.090729 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Precision/mAP: 0.375002
INFO:tensorflow: + DetectionBoxes_Precision/mAP@.50IOU: 0.684183
I1027 11:06:42.092986 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Precision/mAP@.50IOU: 0.684183
INFO:tensorflow: + DetectionBoxes_Precision/mAP@.75IOU: 0.376293
I1027 11:06:42.094577 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Precision/mAP@.75IOU: 0.376293
INFO:tensorflow: + DetectionBoxes_Precision/mAP (small): 0.159241
I1027 11:06:42.096016 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Precision/mAP (small): 0.159241
INFO:tensorflow: + DetectionBoxes_Precision/mAP (medium): 0.362854
I1027 11:06:42.097296 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Precision/mAP (medium): 0.362854
INFO:tensorflow: + DetectionBoxes_Precision/mAP (large): 0.381929
I1027 11:06:42.098785 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Precision/mAP (large): 0.381929
INFO:tensorflow: + DetectionBoxes_Recall/AR@1: 0.147922
I1027 11:06:42.100110 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Recall/AR@1: 0.147922
INFO:tensorflow: + DetectionBoxes_Recall/AR@10: 0.454406
I1027 11:06:42.101474 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Recall/AR@10: 0.454406
INFO:tensorflow: + DetectionBoxes_Recall/AR@100: 0.576815
I1027 11:06:42.102799 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Recall/AR@100: 0.576815
INFO:tensorflow: + DetectionBoxes_Recall/AR@100 (small): 0.250000
I1027 11:06:42.104048 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Recall/AR@100 (small): 0.250000
INFO:tensorflow: + DetectionBoxes_Recall/AR@100 (medium): 0.541326
I1027 11:06:42.105308 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Recall/AR@100 (medium): 0.541326
INFO:tensorflow: + DetectionBoxes_Recall/AR@100 (large): 0.584876
I1027 11:06:42.106697 139881781995328 model_lib_v2.py:1010] + DetectionBoxes_Recall/AR@100 (large): 0.584876
INFO:tensorflow: + Loss/localization_loss: 0.212005
I1027 11:06:42.107778 139881781995328 model_lib_v2.py:1010] + Loss/localization_loss: 0.212005
INFO:tensorflow: + Loss/classification_loss: 0.288771
I1027 11:06:42.108886 139881781995328 model_lib_v2.py:1010] + Loss/classification_loss: 0.288771
INFO:tensorflow: + Loss/regularization_loss: 0.279903
I1027 11:06:42.110019 139881781995328 model_lib_v2.py:1010] + Loss/regularization_loss: 0.279903
INFO:tensorflow: + Loss/total_loss: 0.780679
I1027 11:06:42.111117 139881781995328 model_lib_v2.py:1010] + Loss/total_loss: 0.780679
同样,我正在寻找精确度、召回率、IoU 和 mAP,并希望以 YOLO 提供的类似方式报告它们。我是否需要对所有的准确率和召回分数进行平均以获得这些分数,还是只需要查看一个特定的输出?