我尝试使用
yolov7
对我的自定义数据集进行实例分割,并努力将 coco 风格注释文件转换为 yolo 风格。我知道 yolo 中边界框的注释文件是什么样的。
name_of_class x y width height (in normalized format)
但是,当 COCO JSON 文件包含
area
、segmentation
或 rle
等字段时,会发生什么?如下:
{
"id":0,
"image_id":0,
"category_id":2,
"bbox":[305,235,139.303,172.783],
"area":24069.206,
"segmentation":[[444.426,257.731,384.96,234.539,351.049,259.643,347.667,260.952,305.122,320.454,359.729,407.321,428.896,382.991,444.426,257.731]],
"iscrowd":0
}
为了转换边界框,我使用这个函数:
def coco_to_yolo(x1, y1, w, h, image_w, image_h):
return [((2*x1 + w)/(2*image_w)) , ((2*y1 + h)/(2*image_h)), w/image_w, h/image_h]
但是如何扩展它来进行分割呢?
尝试使用roboflow,这是一个非常有用的工具,可以将一种格式的注释转换为另一种格式,例如将coco转换为yolo,vooc转换为Yolo等。
请点击此链接:- [Roboflow 链接][1]
对于任务,根据您的需要选择语义或实例分割
如果您仍然坚持这个问题,请在这里向我询问。
[1]:https://roboflow.com/convert/coco-json-to-yolov8-pytorch-txt