Saya telah menyempurnakan model fast_rcnn_resnet101 yang tersedia di Model Kebun Binatang untuk mendeteksi objek khusus saya. Saya membagi data menjadi set train dan eval, dan saya menggunakannya dalam file konfigurasi saat pelatihan. Sekarang setelah pelatihan selesai, saya ingin menguji model saya pada data yang tidak terlihat (saya menyebutnya data uji). Saya menggunakan beberapa fungsi tetapi tidak tahu pasti kode mana yang akan digunakan dari API tensorflow untuk mengevaluasi kinerja pada kumpulan data pengujian. Berikut adalah hal-hal yang saya coba:
- Saya menggunakan fungsi object_detection/metrics/offline_eval_map_corloc.py untuk mendapatkan evaluasi pada kumpulan data pengujian. Kode berjalan dengan baik tetapi saya memiliki nilai negatif atau AR dan AP untuk kotak pembatas berukuran besar dan sedang.
Presisi Rata-rata (AP) @[ IoU=0,50:0,95 | luas= semua | maxDets=100 ] = 0,459
Presisi Rata-rata (AP) @[ IoU=0,50 | luas= semua | maxDets=100 ] = 0,601
Presisi Rata-rata (AP) @[ IoU=0,75 | luas= semua | maxDets=100 ] = 0,543
Presisi Rata-rata (AP) @[ IoU=0,50:0,95 | luas= kecil | maxDets=100 ] = 0,459
Presisi Rata-rata (AP) @[ IoU=0,50:0,95 | luas=sedang | maxDets=100 ] = -1.000
Presisi Rata-rata (AP) @[ IoU=0,50:0,95 | luas= besar | maxDets=100 ] = -1.000
Penarikan Rata-rata (AR) @[ IoU=0,50:0,95 | luas= semua | maxDets= 1 ] = 0,543
Penarikan Rata-rata (AR) @[ IoU=0,50:0,95 | luas= semua | maxDets= 10 ] = 0,627
Penarikan Rata-rata (AR) @[ IoU=0,50:0,95 | luas= semua | maxDets=100 ] = 0,628
Penarikan Rata-rata (AR) @[ IoU=0,50:0,95 | luas= kecil | maxDets=100 ] = 0,628
Penarikan Rata-rata (AR) @[ IoU=0,50:0,95 | luas=sedang | maxDets=100 ] = -1.000
Penarikan Rata-rata (AR) @[ IoU=0,50:0,95 | luas= besar | maxDets=100 ] = -1.000
Sekarang saya tahu bahwa mAP dan AR tidak boleh negatif dan ada yang salah. Saya ingin tahu mengapa saya melihat nilai negatif ketika saya menjalankan evaluasi offline pada kumpulan data pengujian?
Kueri yang saya gunakan untuk menjalankan saluran ini adalah: SPLIT=test
echo "
label_map_path: '/training_demo/annotations/label_map.pbtxt'
tf_record_input_reader: { input_path: '/training_demo/Predictions/test.record' }
" > /training_demo/${SPLIT}_eval_metrics/${SPLIT}_input_config.pbtxt
echo "
metrics_set: 'coco_detection_metrics'
" > /training_demo/${SPLIT}_eval_metrics/${SPLIT}_eval_config.pbtxt
python object_detection/metrics/offline_eval_map_corloc.py \
--eval_dir='/training_demo/test_eval_metrics' \
--eval_config_path='training_demo/test_eval_metrics/test_eval_config.pbtxt' \
--input_config_path='/training_demo/test_eval_metrics/test_input_config.pbtxt'
- Saya juga mencoba object_detection/legacy/eval.py tetapi saya mendapatkan nilai metrik evaluasi sebagai negatif:
DetectionBoxes_Recall/AR@100 (medium): -1.0 DetectionBoxes_Recall/AR@100 (kecil): -1.0 DetectionBoxes_Precision/[email protected]: -1.0 DetectionBoxes_Precision/mAP (medium): -1.0 dll.
Saya menggunakan pipa, python eval.py \ --logtostderr \ --checkpoint_dir=trained-inference-graphs/output_inference_graph/ \ --eval_dir=test_eval_metrics \ --pipeline_config_path=training/faster_rcnn_resnet101_coco-Copy1.config
Eval_input_reader di fast_rcnn_resnet101_coco-Copy1.config menunjuk ke TFRecord pengujian dengan informasi kebenaran dasar dan deteksi.
- Saya juga mencoba object_detection/utils/object_detection_evaluation untuk mendapatkan evaluasi. Ini tidak ada bedanya dengan menggunakan pendekatan pertama karena fungsi dasar yang sama tidak berguna - evaluator.evaluate()
Saya akan sangat menghargai bantuan apa pun dalam hal ini.