yolov5的labelme格式的json标注转为txt
时间: 2023-07-01 11:17:01 浏览: 184
python项目文档:批量统计labelme标注的json文件中类别数
将LabelImg或LabelMe的JSON标注转换为YOLOv5的TXT标注可以使用以下Python脚本:
```python
import json
import os
classes = ['class1', 'class2', 'class3'] # 修改为自己的类别
def convert(json_file, txt_file):
with open(json_file, "r") as f:
data = json.load(f)
with open(txt_file, "w") as f:
for shape in data["shapes"]:
class_id = classes.index(shape["label"])
x1, y1 = shape["points"][0]
x2, y2 = shape["points"][1]
x_center = (x1 + x2) / 2 / data["imageWidth"]
y_center = (y1 + y2) / 2 / data["imageHeight"]
w = abs(x2 - x1) / data["imageWidth"]
h = abs(y2 - y1) / data["imageHeight"]
f.write(f"{class_id} {x_center} {y_center} {w} {h}\n")
```
其中,`json_file` 为LabelImg或LabelMe的JSON标注文件路径,`txt_file` 为要输出的YOLOv5格式的TXT标注文件路径。在 `classes` 列表中填写自己的类别名称,按照顺序排列,从0开始。
调用 `convert` 函数即可将LabelImg或LabelMe的JSON标注文件转换为YOLOv5的TXT标注文件。
注意:该脚本仅适用于LabelImg或LabelMe的JSON标注格式,不适用于其他格式的标注文件。
阅读全文