用python语言实现coco格式segment怎么转yolo格式
时间: 2024-06-14 12:06:47 浏览: 174
yolo预标注的txt转换成labelme中segment的json
以下是将COCO格式的数据集转换为YOLO格式的数据集的Python代码示例:
```python
import json
import os
def coco_to_yolo(coco_file, output_dir):
with open(coco_file, 'r') as f:
coco_data = json.load(f)
for image in coco_data['images']:
image_id = image['id']
image_width = image['width']
image_height = image['height']
txt_file = os.path.join(output_dir, f"{image_id}.txt")
with open(txt_file, 'w') as f:
for annotation in coco_data['annotations']:
if annotation['image_id'] == image_id:
category_id = annotation['category_id']
bbox = annotation['bbox']
x_center = bbox[0] + bbox[2] / 2
y_center = bbox[1] + bbox[3] / 2
width = bbox[2]
height = bbox[3]
x_center /= image_width
y_center /= image_height
width /= image_width
height /= image_height
line = f"{category_id} {x_center} {y_center} {width} {height}\n"
f.write(line)
# 使用示例
coco_file = 'path/to/coco.json'
output_dir = 'path/to/output'
coco_to_yolo(coco_file, output_dir)
```
上述代码将COCO格式的数据集文件(`coco.json`)转换为YOLO格式的数据集文件,并将结果保存在指定的输出目录中。每个图像的标注信息将保存在以图像ID命名的文本文件中,每行表示一个目标的类别ID、中心点坐标、宽度和高度。
阅读全文