介绍yolov7数据集格式之前,首先要了解mask rcnn使用的数据集格式。Mask rcnn采用数据集格式:

四个文件夹分别是:

        掩码标签 label.png;

        从labelme产生的json文件转换的后的json文件;

        labelme 标注后的json文件;

        图片。

注意,mask rcnn是采用分割图作为标签,不使用源数据集提供的边界框坐标,而是从掩码中计算边界框。使用的数据是与yolov7不同。

想要复现Yolov7,并训练自己的数据,了解数据格式是必须的,以yolov7-main程序中使用的coco数据为例:

yolov7-main程序:https://github.com/WongKinYiu/yolov7

 

其中annotations中共一个instances_val2017.json文件,包含所有图像标注信息;

labels 是对应images的 .txt 文件,txt文件中是物体分割标注点。

标注内容是:45是bowl,49是orange,50是broccoli

 

为了进一步对数据集有所了解,这里放上对应的图:查看coco数据集的标注情况可以看link:

http://cocodataset.org/#explore?id=402563

参考:https://github.com/matterport/Mask_RCNN/blob/master/samples/coco/inspect_data.ipynb

做自己的数据集用yolov7训练,可以用labelme等标注工具。这里放一张 形状识别和分割数据标注图像,和json文件截图:

其中,标注类型包括矩形边界框和多边形mask标记等等。我用的是 polygon, rectangle两种格式,可以用于目标识别和实例分割。根据自己的需求可以选择其他的标注方式。

每张图像标注完都会产生对应的一个 .json文件,记录了标记的点的坐标和类型等信息。

训练自己的数据集用来识别目标时,仅使用标注文件中的rectangle信息即可。将标注框转换为cls_num center_x center_y w h 格式的数据即可。每个图像对应一个txt文件,每个目标标注对应一行标注信息。训练自己的数据集实例分割和目标识别时,仅用polygon格式的标注信息即可。将多边形点转换为 cls_num x0 y0 x1 y1 ...xn yn 格式的数据即可。同理一个图像对应一个txt文件,一个多边形标注对应txt中的一行。

将labelme 工具产生的.json 文件中的rectangle 或者polygon格式的标注信息转换为txt文件的程序:

https://github.com/SuperLuu7/labelme2yolo

yolov7使用的数据集格式就是这样了,希望大家都能训练得到自己想要的结果。

Logo

秉承“创新、开放、协作、共享”的开源价值观,致力于为大规模开源开放协同创新助力赋能,打造创新成果孵化和新时代开发者培养的开源创新生态!支持公有云使用、私有化部署以及软硬一体化私有部署。

更多推荐