labelme批量标注多张图片
时间: 2023-07-03 20:21:57 浏览: 201
以下是使用 Python 编写的 labelme 批量标注多张图片脚本,您可以根据自己的需要进行修改和使用:
```python
import os
import json
# 设置标注类别
LABEL_MAP = {
"1": "cat",
"2": "dog",
# 添加更多标注类别
}
# 设置标注文件夹路径和保存路径
ANNOTATION_DIR = "/path/to/annotation/dir"
SAVE_DIR = "/path/to/save/dir"
# 遍历标注文件夹中的所有 JSON 文件进行批量标注
for filename in os.listdir(ANNOTATION_DIR):
if filename.endswith(".json"):
filepath = os.path.join(ANNOTATION_DIR, filename)
with open(filepath, "r") as f:
data = json.load(f)
shapes = data["shapes"]
label = None
for shape in shapes:
if shape["label"] in LABEL_MAP:
label = LABEL_MAP[shape["label"]]
break
if label is not None:
# 构建新的标注数据
new_data = {
"version": data["version"],
"flags": data["flags"],
"shapes": [{
"label": label,
"points": shape["points"],
"group_id": shape["group_id"],
"shape_type": shape["shape_type"],
"flags": shape["flags"]
}]
}
# 保存新的标注数据
new_filename = filename.replace(".json", ".new.json")
savepath = os.path.join(SAVE_DIR, new_filename)
with open(savepath, "w") as f:
json.dump(new_data, f)
# 复制标注文件到保存路径
img_filename = filename.replace(".json", ".jpg")
img_filepath = os.path.join(ANNOTATION_DIR, img_filename)
img_savepath = os.path.join(SAVE_DIR, img_filename)
os.system("cp {} {}".format(img_filepath, img_savepath))
```
这个脚本会遍历指定的标注文件夹中的所有 JSON 文件,将标注类别进行转换,并将新的标注数据保存到指定的保存路径中。同时,它还会将原始的标注图片复制到保存路径中。您需要将 `LABEL_MAP`、`ANNOTATION_DIR` 和 `SAVE_DIR` 分别设置为您的标注类别、标注文件夹路径和保存路径。
阅读全文