cocoapi评估u版yolo

ultralytics的yolo系列训练好的模型采用cocoapi评估记录。
代码地址:evaluate-and-plot_score

获取json文件

在已经有instance_val.json的基础上,我们还需要获得yolo模型预测的结果results.json,事实上源代码中有保存results.json的参数选项(–save-json);
但由于源代码获取image_id的方式(根据图片名字)仅仅适用与coco数据集(或者说是图片名字要和image_id一样的数据集,我觉得这样每次都要修改图片名字,很麻烦),代码如下:

if save_json:
   # [{"image_id": 42, "category_id": 18, "bbox": [258.15, 41.29, 348.26, 243.78], "score": 0.236}, ...
    image_id = Path(paths[si]).stem

这里要说一下,使用cocoapi评估需要instances_val.json和results.json的image_id能对应上,所以需要修改这里的image_id的选择方式。
为保证和instance.json的image_id一致,我写了一个get_image_id的函数 将image_name与image_id对应起来保存为一个json字典。
代码地址:https://github.com/Laughing-q/evaluate-and-plot_score/blob/master/get_image_id.py
然后就创建了一个image_id文件夹,里面的val_id.json就是保存的image_id的字典,然后将上面的获取方式修改为下方代码,这个coco91class是因为coco数据集只有80类,但是索引到了91,所以这个是一个映射,category_id获取方式也需要修改,:

if save_json:
    # [{"image_id": 42, "category_id": 18, "bbox": [258.15, 41.29, 348.26, 
COCO数据集转换为YOLO格式需要进行以下步骤: 1. 下载COCO数据集:首先,你需要从COCO官方网站下载COCO数据集。COCO数据集包含了大量的图像和对应的标注信息,用于目标检测任务。 2. 解析COCO标注文件:COCO数据集的标注信息保存在JSON格式的文件中。你需要使用相应的库(如Python中的json库)来解析这些标注文件,获取图像的路径、目标类别、边界框等信息。 3. 转换为YOLO格式:YOLO格式要求每个图像的标注信息保存在一个单独的文本文件中,与对应的图像文件放在同一目录下。每个文本文件的命名应与对应的图像文件相同,只是扩展名不同(如.jpg对应.txt)。每个文本文件中的每一行表示一个目标,包含目标类别和边界框的位置信息。 - 目标类别:YOLO使用整数编码来表示不同的目标类别。你需要将COCO数据集中的目标类别映射为对应的整数编码。可以创建一个字典来存储类别与编码之间的映射关系。 - 边界框位置:YOLO使用归一化坐标来表示边界框的位置。边界框的位置信息包括左上角和右下角的坐标。你需要将COCO数据集中的边界框位置转换为归一化坐标。 4. 生成YOLO标注文件:根据上述转换规则,遍历COCO数据集中的每个图像及其对应的标注信息,将其转换为YOLO格式的标注信息,并保存到对应的文本文件中。 完成上述步骤后,你就可以使用YOLO框架来训练和测试目标检测模型了。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值