当前位置: 首页 > news >正文

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

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


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

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

 Github链接

https://github.com/vietanhdev/anylabeling

python代码


import json
import osdef 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 cornerx2, y2 = pts[1]  # right cornerx = (x1 + x2) / 2 / img_widthy = (y1 + y2) / 2 / img_heightw = abs(x2 - x1) / img_widthh = abs(y2 - y1) / img_heightcid = cls2id_dict[s['label']]labels.append(f'{cid} {x} {y} {w} {h}')return labelsdef 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

完美!

http://www.lryc.cn/news/365042.html

相关文章:

  • MongoDB管理内存使用
  • 【Elasticsearch】IK分词器的下载及使用
  • Hyper-SD: diffusion实时出图,一步搞定,字节出品
  • :长亭雷池社区版动态防护体验测评
  • 数据结构复习
  • 小世界网络生成及其分析
  • Flutter基础 -- Flutter布局练习(小项目)
  • 详解布隆过滤器,实现分布式布隆过滤器
  • 程序员职业素养:AI新时代下的机遇与挑战
  • 智能管理,无忧报修——高校校园报事报修系统小程序全解析
  • nc解决自定义参照字段前台保存后只显示主键的问题
  • 鸿蒙全栈开发-一文读懂鸿蒙同模块不同模块下的UIAbility跳转详解
  • 【Python】使用 SQLObject orm 库快速将接口数据存入数据库
  • @EnableResourceServer资源服务注解源码分析
  • SpringBoot实现图片文件上传和回显的两种方式
  • 进程和计划任务以及步骤
  • 使用Python实现深度学习模型:序列到序列模型(Seq2Seq)
  • 力扣283. 移动零
  • 二叉树的顺序结构(堆的实现)
  • 2024大模型如何学习【附学习资料】
  • 计算机组成原理·考点知识点整理
  • python-datetime模块时间戳常用方法汇总
  • 【Python报错】已解决ModuleNotFoundError: No module named ‘timm’
  • 【设计模式】适配器模式(结构型)⭐⭐⭐
  • 云原生周刊:Gateway API v1.1 发布 | 2024.6.3
  • KotlinConf 2024:深入了解Kotlin Multiplatform (KMP)
  • 探索ChatGPT-4在解决化学知识问题上的研究与应用
  • 性能狂飙:SpringBoot应用优化实战手册
  • Github上一款开源、简洁、强大的任务管理工具:Condution
  • LeetCode-2938. 区分黑球与白球【贪心 双指针 字符串】