非COCO数据集,使用pycocotools评价yolo模型的几点说明

文章讲述了在使用Yolo进行对象检测后,如何将txt格式的预测数据转换为pycocotools所需的json格式,强调了类别id需从1开始的重要性,同时也指出了标签转换和评价过程中的匹配问题,以及pycocotools评估值与Yolo原生指标的差异。
摘要由CSDN通过智能技术生成

一.格式转换

        -yolo输出的预测数据是txt格式,而pycocotools使用json格式对ground truth和predict进行评估

*首先说明,数据集的图片名称应是数字,不含字母的,如果不是需要自己写个脚本给图片批量改名称

1.yolo预测的数据可以通过开启val.py/test.py中的save_json来开启,同时把is_coco硬编码为False;

把self.class_map硬编码为self.class_map=list(range(1000)[1:]),使得预测的json中标签id从1开始;

2.数据集的标签如果没有json格式的需要转换成json格式(代码自行搜索)

        注意事项:

        ①标签转json时需要注意类别id的初始值,设为从1开始,比如有4类,类别id就是[1,2,3,4];

        ②注意图片id的初始值,与数据集中的名称对应,数据集中从0.jpg开始初始值就设为0,从1.jpg开始就设为1,如果初始值设置的不对会出现评价后的值大部分都为0,或者报错提示“标签不匹配”。

二、问题说明

①上面多次提到类别id从1开始,要注意标签转json和预测的json文件的类别id都是从1开始,否则会出现评价后的值大部分都为0;

②如果标签转json和预测的json文件的类别id都是从0开始,则最后一类目标不能完成评估,最后一类的所有AP和AR值都为-1;

③要注意使用pycocotools评价时,标签转json时,这个标签要和验证集/训练集(数量)对应,不能是预测c生成的json是验证集或测试集,而标签转json是整个数据集所有的标签,这会出现评价后的AP值低。

④最后pycocotools的评价值和yolo自带的评价指标不一致,这是正常的。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值