目标检测coco格式数据集
- coco数据集
- 快速构建
- 总结
coco数据集
首先搞清楚coco格式数据集的组成。在data数据下、分为train、val以及annotations三个文件夹。(image是我未划分训练集和测试集的图像存储文件夹)
1.train文件夹:用来存放作为训练的图片(一般为JPG文件)。
2.val文件夹:用来存放作为测试的图片。
3.annotation文件夹:一般有两个.json文件。(instances_train.json以及instance_val.json)
快速构建
明白了coco格式数据集,我们比葫芦画瓢,构造一个相似的就可以。
下面是重点!!!!!
我们目标检测任务需要构建的几个键(必不可少的)如图所示:
{
"images": [image],
"annotations": [annotation],
"categories": [category]
}
image = {
"id": int, #(图片id)
"width": int, #(图片宽度)
"height": int, #(图片高度)
"file_name": str,
}
annotation = {
"id": int, #(标注id)
"image_id": int, #(图片id)
"category_id": int, #(类别id)
"segmentation": RLE or [polygon], #(分割任务用,我们不需要)
"area": float, #(分割任务用,我们不需要)
"bbox": [x,y,width,height], # (x, y) 为 bbox 左上角的坐标
"iscrowd": 0 or 1, #(bbox是否拥挤)
}
categories = [{
"id": int,
"name": str,
"supercategory": str,
}]
最上面一段代码的就是用python写的一个字典,包含了我们目标检测任务的三个重要键。我们主要是通过python字典的形式。然后import json,通过json.dump来生成我们需要的.json文件。
用python处理json文件推荐链接:
https://cloud.tencent.com/developer/article/1654900
同样介绍了coco数据集的文章推荐链接:
https://zhuanlan.zhihu.com/p/309549190
总结
键名不能错,我之前粗心file_name写成了 filename,然后就debug了几十分钟才发现。
最后,祝大家代码0 error。点个赞支持一下吧~