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

YOLOv8实例分割离线数据增强,标签可视化!

YOLOv8实例分割离线数据增强的方式:首先使用labelme对图像进行标注,将图像和标注文件存放到images_json文件夹中,然后使用离线数据增强代码对进行增强。

代码较长,完整代码下载地址:完整代码

使用步骤:

1.在代码中设置增强次数和文件路径,选择想要数据增强的方式
if __name__ == '__main__':need_aug_num = 5  # 每张图片需要增强的次数toolhelper = ToolHelper()  # 工具is_endwidth_dot = True  # 文件是否以.jpg或者png结尾dataAug = DataAugmentForObjectDetection()  # 数据增强工具类# 获取相关参数parser = argparse.ArgumentParser()parser.add_argument('--source_img_json_path', type=str, default='H:/CSDN/DataAugForObjectSegmentation/images_json')parser.add_argument('--save_img_json_path', type=str, default='H:/CSDN/DataAugForObjectSegmentation/images_json2')args = parser.parse_args()source_img_json_path = args.source_img_json_path  # 图片和json文件原始位置save_img_json_path = args.save_img_json_path  # 图片增强结果保存文件
# 是否使用某种增强方式self.is_addNoise = Trueself.is_changeLight = is_changeLightself.is_random_point = is_random_pointself.is_filp_pic_bboxes = is_filp_pic_bboxesself.is_shift_pic_bboxes = True
2.标签可视化代码如下:
import os
import json
import cv2
import numpy as np# 设置源文件夹和目标文件夹路径source_folder = 'H:/Data-enhancement-main/Data-enhancement/DataAugForObjectSegmentation/images_json2'
target_folder = 'H:/Data-enhancement-main/Data-enhancement/DataAugForObjectSegmentation/images_json2keshihua'# 确保目标文件夹存在
if not os.path.exists(target_folder):os.makedirs(target_folder)# 遍历源文件夹中的所有文件
for file_name in os.listdir(source_folder):if file_name.endswith('.json'):json_path = os.path.join(source_folder, file_name)with open(json_path) as json_file:data = json.load(json_file)# 获取图片路径image_path = os.path.join(source_folder, data['imagePath'])# 读取图片image = cv2.imread(image_path)# 遍历所有的标注for shape in data['shapes']:points = np.array(shape['points'], dtype=np.int32)cv2.polylines(image, [points], True, (0, 255, 0), 2)  # 标注为绿色线条# 保存标注后的图片cv2.imwrite(os.path.join(target_folder, file_name.replace('.json', '.png')), image)print("标注可视化完成,并保存到指定文件夹。")

相关文章:

  • 切换分支报错:Untracked Files Prevent Checkout
  • mysql实战——mysql5.7保姆级安装教程
  • MySQL——存储过程,触发器
  • C++的文件I/O与流stream
  • 【静态分析】在springboot使用太阿(Tai-e)01
  • Paddle 稀疏计算 使用指南
  • CP AUTOSAR之ASWS_TransformerGeneral详细说明(更新中...)
  • 项目集成SkyWalking,基于k8s搭建
  • Linux实验五:进程间通信(一)
  • 【博客主页】博客主旨 精华
  • 最小生成树要点和难点具体应用
  • 蓝海卓越计费管理系统 agent_setstate.php SQL注入漏洞复现
  • Stable Diffusion|黑白老照片修复
  • C++简洁版全排列代码
  • 微服务如何做好监控
  • 【Leetcode】101. 对称二叉树
  • 30秒的PHP代码片段(1)数组 - Array
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Centos6.8 使用rpm安装mysql5.7
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • opencv python Meanshift 和 Camshift
  • spring + angular 实现导出excel
  • Vue 重置组件到初始状态
  • web标准化(下)
  • 百度地图API标注+时间轴组件
  • 开源SQL-on-Hadoop系统一览
  • 我与Jetbrains的这些年
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • # Kafka_深入探秘者(2):kafka 生产者
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #162 (Div. 2)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (AngularJS)Angular 控制器之间通信初探
  • (C语言)二分查找 超详细
  • (function(){})()的分步解析
  • (待修改)PyG安装步骤
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (剑指Offer)面试题34:丑数
  • (南京观海微电子)——COF介绍
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET开发不可不知、不可不用的辅助类(一)
  • .net专家(高海东的专栏)
  • .py文件应该怎样打开?
  • .so文件(linux系统)
  • @angular/cli项目构建--http(2)
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [.net] 如何在mail的加入正文显示图片
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [AX]AX2012 R2 出差申请和支出报告
  • [BZOJ1053][HAOI2007]反素数ant
  • [C#]winform部署yolov5-onnx模型