目标检测-AnyLabeling标注格式转换成YOLO格式

Anylabel可以极大的增加数据的标注效率,但是其标注格式如何能转换成YOLO标注格式,具体内容如下所示。


关于AnyLabeling的其它详细介绍如下链接所示

https://blog.csdn.net/u011775793/article/details/134918861

Github链接

https://github.com/vietanhdev/anylabeling

python代码

python 复制代码
import json
import os


def labelme_to_yolo(label_me_json_file, cls2id_dict):
    label_me_json = json.load(open(label_me_json_file, mode='r', encoding='UTF-8'))
    shapes = label_me_json['shapes']
    img_width, img_height = label_me_json['imageWidth'], label_me_json['imageHeight']
    img_path = label_me_json['imagePath']
    img_data = label_me_json['imageData'] if 'imageData' in label_me_json else ''

    labels = []
    for s in shapes:
        s_type = s['shape_type']
        s_type = s_type.lower()
        if s_type == 'rectangle':
            pts = s['points']
            x1, y1 = pts[0]  # left corner
            x2, y2 = pts[1]  # right corner
            x = (x1 + x2) / 2 / img_width
            y = (y1 + y2) / 2 / img_height
            w = abs(x2 - x1) / img_width
            h = abs(y2 - y1) / img_height
            cid = cls2id_dict[s['label']]
            labels.append(f'{cid} {x} {y} {w} {h}')

    return labels

def write_label2txt(save_txt_path,label_list):
    f=open(save_txt_path,"w",encoding="UTF-8")

    for label in label_list:
        temp_list=label.split(" ")
        f.write(temp_list[0])
        f.write(" ")
        f.write(temp_list[1])
        f.write(" ")
        f.write(temp_list[2])
        f.write(" ")
        f.write(temp_list[3])
        f.write(" ")
        f.write(temp_list[4])
        f.write("\n")

if __name__ == '__main__':
    # 原始图片文件夹路径
    img_dir=r"D:\desk\Work\Dataset\Test\Test_Anylabeling\imgs"
    # 原始JSON标签文件夹路径
    json_dir=r"D:\desk\Work\Dataset\Test\Test_Anylabeling\labels"
    # 生成保存TXT文件夹路径
    save_dir=r"D:\desk\Work\Dataset\Test\Test_Anylabeling\txt"
    # 类别和序号的映射字典
    cls2id_dict={"building1":"0"}

    if not os.path.exists(save_dir):
        os.makedirs(save_dir)

    for json_name in os.listdir(json_dir):
        json_path=os.path.join(json_dir,json_name)
        txt_name=json_name.split(".")[0]+".txt"
        save_txt_path=os.path.join(save_dir,txt_name)
        labels = labelme_to_yolo(json_path,cls2id_dict)
        write_label2txt(save_txt_path,labels)

具体修改

复制代码
# 原始图片文件夹路径
img_dir=r"D:\desk\Work\Dataset\Test\Test_Anylabeling\imgs"

改为自己的图片路径

复制代码
# 原始JSON标签文件夹路径
json_dir=r"D:\desk\Work\Dataset\Test\Test_Anylabeling\labels"

改为自己的JSON文件夹路径

复制代码
# 生成保存TXT文件夹路径
save_dir=r"D:\desk\Work\Dataset\Test\Test_Anylabeling\txt"

改为自己的保存生成的yolo文件夹路径

复制代码
# 类别和序号的映射字典
cls2id_dict={"building1":"0"}

改为自己的标签映射

开始实验

实验准备

运行代码

实验验证

实验验证可视化代码相关链接

https://blog.csdn.net/weixin_49824703/article/details/134050547

完美!

相关推荐
王哈哈^_^1 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
王哈哈^_^16 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
深度学习lover21 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
Eric.Lee20211 天前
yolo v5 开源项目
人工智能·yolo·目标检测·计算机视觉
极智视界1 天前
无人机场景数据集大全「包含数据标注+划分脚本+训练脚本」 (持续原地更新)
算法·yolo·目标检测·数据集标注·分割算法·算法训练·无人机场景数据集
深度学习lover1 天前
<项目代码>YOLOv8 夜间车辆识别<目标检测>
人工智能·yolo·目标检测·计算机视觉·表情识别·夜间车辆识别
小哥谈2 天前
源码解析篇 | YOLO11:计算机视觉领域的新突破 !对比YOLOv8如何 ?
人工智能·深度学习·神经网络·yolo·目标检测·机器学习·计算机视觉
挂科边缘2 天前
基于YOLOv8 Web的安全帽佩戴识别检测系统的研究和设计,数据集+训练结果+Web源码
前端·人工智能·python·yolo·目标检测·计算机视觉
小张贼嚣张2 天前
yolov8涨点系列之HiLo注意力机制引入
深度学习·yolo·机器学习
CV-King2 天前
yolov11-cpp-opencv-dnn推理onnx模型
人工智能·opencv·yolo·计算机视觉·dnn