2021/5/24 voc-test数据集 yolov4 1得到真实值 2 得到 mAP,P-R曲线

(VOC dataset):

1 python get_gt_txt.py #得到ground truth

2 python get_map.py #得到mAP,P-R曲线图

 

1 python get_gt_txt.py #得到ground truth

替换为绝对路径 (俩处)

image_ids = (
    open("C:/GitHub/test1/data/VOCdevkit/VOC2007/ImageSets/Main/test.txt").read().strip().split()
)  # 替换为绝对路径 原来为 VOCdevkit/VOC2007/ImageSets/Main/test.txt
        root = ET.parse(
            "C:/GitHub/test1/data/VOCdevkit/VOC2007/Annotations/" + image_id + ".xml"
        ).getroot()  # 替换为绝对路径 原来为 VOCdevkit/VOC2007/Annotations/

运行结果:

C:\Software\Anaconda3\envs\YOLOv4-pytorch\python.exe C:/GitHub/test1/utils/get_gt_txt.py
Conversion completed!

Process finished with exit code 0

 在  C:\GitHub\test1\utils\input\ground-truth  生成  ground-truth文件 ,得到  目标的 ground-truth

2 python get_map.py #得到mAP,P-R曲线图

无改动 运行程序 

C:\Software\Anaconda3\envs\YOLOv4-pytorch\python.exe C:/GitHub/test1/utils/get_map.py
Error. File not found: C:\GitHub\test1\utils\input\detection-results\0003.txt
(You can avoid this error message by running extra/intersect-gt-and-dr.py)

Process finished with exit code 0

再议。

 

 

5/25

input文件夹下没有detection-results文件,故找不到 。 

有人写  生成的detection-results文件也会有这样的结果,原因是  该文件下的 txt文件 内容格式会出错。故需要转化成 要求的格式后放进 detection-results文件。

 

 get_map.py 源自于 https://github.com/Cartucho/mAP

需要在input文件下 建立三个文件 ground-truth files(原始标注), detection-results files(检测结果) 和images-optional(检测图片)在同一文件下 运行程序

源自 https://blog.csdn.net/qq_35699505/article/details/89450321

 

由于没有detection-results文件 检查eval_voc.py,只有评估结果  没有检测结果 ,还在排查。

 

 

 

5/26

 pred_result 与 detection results 感觉是一个东西,大佬写的转换代码(https://github.com/argusswift/YOLOv4-pytorch/issues/142), 

pred_result 里内容格式转换成 合适格式的 detection results

生成detection results文件,读取pred_result文件内容,挨个改写到detection results文件,此时生成的detection results文件就是要求的格式,再复制到 input/detection results 里,运行get map.py即可。

还有一个问题  就是数据集分成 训练集 ,验证集,测试集 ,这里仅仅是 将图片的标注格式分为三个部分,如何将图片根据txt标注也随之分割成三个部分。。。。 

 

大佬转换代码出现error,不知解决。

 (pred_result 与 detection results 还有一种猜想就是   后者指测试集 前者为评估结果,可能有的会分为俩个部分  有的会分为三个部分,俩个时一样。)

经过查验,pred_result 文件内容确实是 测试集结果,so pred_result就是detection results,只有一种,需要将转换代码。

5/30

pred_result 文件内容确实是 测试集结果,so pred_result就是detection results,需要将转换代码。

大佬转换代码出现error,找不到pred_result对应的txt文档,自行创建detection results文件夹也不行。于是,将结果输出到detection results文件夹改到pred_result文件夹内,自己会拥有自己的格式文件和相对应的txt文档。运行成功,在pred_result文件夹内除原有的txt文档,生成对应序列图片的预测结果的置信度和注释。

但是 每张图片对应多个结果,第一个结果是最好的。(nms未起到作用?)此外 output文件夹内为空(?).

将得到的txt文档复制到 utils/input/detection-results 文件夹内,运行 get_map.py,可以运行 成功但mAP为0,且图中无曲线。

(如何保存原图?)

结果如下,

 

 

 

 

 

 

 

 

posted @ 2021-05-24 22:08  下着雨  阅读(578)  评论(0编辑  收藏  举报