欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2020-11-17

程序员文章站 2024-02-08 21:39:46
...

针对开源工程mAp实现,根据实际项目操作便利性,对该工程进行了改进,已使用实际项目中的物体检测场景。改进后测试步骤如下:

准备模型

这里假设你已经有了对应的测试模型

准备测试集

测试集格式为VOC标注格式

val
├── Annotations
├── JPEGImages

目录中含有1697张测试集,标注了hand_phone和hand_other两个分类

2020-11-17

测试测试集

使用你训练好的模型,检测你的测试集,检测后,在val目录下生成detector_out.txt文件,文件内容格式为

dectect out: hand_other: 0.953 : 4 169 26 221 :xxx/val/JPEGImages/11031011480001146_3613.jpg
dectect out: hand_phone: 0.995 : 73 79 106 148 :xxx/val/JPEGImages/11031011480001146_3613.jpg
...
dectect out: hand_other: 0.900 : 55 373 98 453 :xxx/val/JPEGImages/09161953150004444_2349.jpg
dectect out: hand_phone: 0.919 : 153 267 199 332 :xxx/val/JPEGImages/09161953150004444_2349.jpg

开始测试

生成测试txt

下载AI_Pef_tool,放到与测试集同级目录,此时目录结构为:

AI_Perf_tool

val
├── Annotations
├── JPEGImages
├── detector_out.txt

运行如下命令,转换detector_out.txt中的检测结果为每张测试图片对应一个txt文件

python AI_Perf_tool/Create_detection_ret_txt.py  -log val/detector_out.txt  -o val

运行成功后,在val目录下生成一个

val
├── Annotations
├── JPEGImages
├──detector_out.txt
├──detection_result

val/detection_result# ls
11031551160000021_527.txt
...
11031551160000191_2260.txt
11031551160000226_2978.txt
11031551160000291_2598.txt

每一个txt的内容格式为:[class_name score box]

hand_phone 0.899  36 113 179 322  

生成groud_truth txt

运行如下命令,读取val/Annotations下每一个xml文件,生成标注txt文件

python AI_Perf_tool/Create_ground_truth_txt.py  -test val

运行成功后,在val目录下,会生成groud_truth目录,目录下各个txt文件

val/ground_truth#ls
11031551160000021_527.txt
11031551160000044_3418.txt
11031551160000093_819.txt
11031551160000129_3321.txt
11031551160000178_1058.txt

每个txt的内容为:[class_name box]

hand_phone 161 57 223 176

生成各个分类AP

运行以下命令,分别读取groud_truth txt和detetion_result txt,生成Recall,Precision,Ap等指标

python AI_Perf_tool/test.py -gt val/ground_truth/ -dr  val/detection_result/ -jpg  val/JPEGImages/ -o val/

测试结果

AP

2020-11-17

召回和误报率

2020-11-17

github

相关标签: AI实践总结