半自动辅助制作数据集【实例分割】

利用yoloV8的实例分割模型,半自动辅助制作数据集


引言:【主要步骤】

步骤1:无人机航拍,收集基础图片
步骤2:将收集到的图片,全部用yoloV8-seg.pt模型进行实例分割【预测之前,将配置文件default.yaml的save_txt:设置为True】
步骤3:将txt标注文件转换为JSON格式
步骤4:打开labelme开始修改再加工标注

  • 步骤1:【比如,如下规格】
    图片特征数据:车辆、人,等等
    图片拍摄变量:无人机高度、相机水平方向、相机俯仰角度
    (a)固定高度、水平方向,调整俯仰角
    (b)固定水平方向、俯仰角,调整高度
    (c)固定俯仰角、高度,调整水平方向

  • 步骤2:【预测代码及配置】
    default.yaml【save_txt:设置为True】 default.yaml
    使用脚本预测:my_predict.py【source参数:存放图片的目录路径】
    在这里插入图片描述
    得到的预测结果会存放在run文件夹下
    在这里插入图片描述

  • 步骤3:【将txt文件转换为JSON文件】
    利用我在Cityscapes数据集转换为COCO数据集的文章中写的方法,改一下坐标为缩放前的即可:

import os
import cv2
import json
import glob
import numpy as npdef convert_txt_to_labelme_json(txt_path, image_path, output_dir, image_fmt='.jpg'):# txt 转labelme jsontxts = glob.glob(os.path.join(txt_path, "*.txt"))for txt in txts:labelme_json = {'version': '4.5.7','flags': {},'shapes': [],'imagePath': None,'imageData': None,'imageHeight': None,'imageWidth': None,}txt_name = os.path.basename(txt)image_name = txt_name.split(".")[0] + image_fmtlabelme_json['imagePath'] = image_nameimage_name = os.path.join(image_path, image_name)if not os.path.exists(image_name):raise Exception('txt 文件={},找不到对应的图像={}'.format(txt, image_name))image = cv2.imdecode(np.fromfile(image_name, dtype=np.uint8), cv2.IMREAD_COLOR)h, w = image.shape[:2]labelme_json['imageHeight'] = hlabelme_json['imageWidth'] = wwith open(txt, 'r') as t:lines = t.readlines()for line in lines:content = line.split(' ')label = content[0]tem_label=str(label)#   0: car #车#   1: street  #街道、路#   2: person #人#   3: lawn #草坪#   4: construction #建筑#   5: tree #树,树林mapLabel={"0":"car","1":"street","2":"person","3":"lawn","4":"construction","5":"tree"}shape = {'label': mapLabel.get(str(label)),'flags': {},'points': []}for i in range(len(content)):if 2 * i + 1 >= len(content):breakelse:try:shape['points'].append([float(content[2 * i + 1])*w, float(content[2 * i + 2])*h])except Exception as e:print(e)labelme_json['shapes'].append(shape)json_name = txt_name.split('.')[0] + '.json'json_name_path = os.path.join(output_dir, json_name)fd = open(json_name_path, 'w')json.dump(labelme_json, fd, indent=4)fd.close()print("save json={}".format(json_name_path))if __name__=="__main__":in_imgs_dir = 'D:\\yoloProject\\ultralytics-registry\\test_11\\imgs'in_label_txt_dir = 'D:\\yoloProject\\ultralytics-registry\\test_11\\labels'out_labelme_json_dir = 'D:\\yoloProject\\ultralytics-registry\\test_11\\jsons'if not os.path.exists(out_labelme_json_dir):os.mkdir(out_labelme_json_dir)convert_txt_to_labelme_json(in_label_txt_dir,in_imgs_dir,out_labelme_json_dir,image_fmt='.png')

转换前:
在这里插入图片描述
转换后得到:
在这里插入图片描述

  • 步骤4【将生成的JSON文件和原图片文件放到同一个文件夹下,然后lableme打开目录】
    在这里插入图片描述

在这里插入图片描述

  • 步骤5【开始修改标注失误的多边形、删除标注错误的多边形】
    在这里插入图片描述
    自此,接着我这篇文章:
    【YOLOv8—seg实例分割(制作数据集,训练模型,预测结果)】
    【https://blog.csdn.net/weixin_43624549/article/details/139532142】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决有关css动画@keyframes写在嵌套样式中,引用失效问题

目录 问题场景 问题原因 解决方案 问题场景 在写项目中&#xff0c;有个页面级组件&#xff0c;组件内部有个页面标题&#xff0c;我想给标题文字添加一个文字闪烁效果&#xff0c; 这就需要用到css动画来设定各时间段的透明度。代码如下&#xff1a; <style scoped &…

【乐吾乐2D可视化组态编辑器】消息

消息 乐吾乐2D可视化组态编辑器demo&#xff1a;https://2d.le5le.com/ 监听消息 const fn (event, data) > {}; meta2d.on(event, fn);// 监听全部消息 meta2d.on(*, fn);// 取消监听 meta2d.off(event, fn); meta2d.off(*, fn); Copy 系统消息 event&#xff08;…

使用llama.cpp量化模型

文章目录 概要整体实验流程技术细节小结 概要 大模型量化是指在保持模型性能尽可能不变的情况下&#xff0c;通过减少模型参数的位数来降低模型的计算和存储成本。本次实验环境为魔搭社区提供的免费GPU环境&#xff08;24G&#xff09;&#xff0c;使用Llama.cpp进行4bit量化可…

arm的GIC中断

一、gic V2 ①、中断状态&#xff1a; gic为每个中断维护着4个状态&#xff0c;inactive、pending、active、active and pending The following states apply at each interface between the GIC and a connected processor: Inactive: An interrupt that is not active or…

Python面试宝典第14题:背包问题

题目 现有编号从 0 到 n - 1 的 n 个背包&#xff0c;给你两个下标从 0 开始的整数数组 capacity 和 rocks 。第 i 个背包最大可以装 capacity[i] 块石头&#xff0c;当前已经装了 rocks[i] 块石头&#xff08;0 < rocks[i] < capacity[i]&#xff09;。另给你一个整数 a…

深度学习入门——神经网络的学习

前言 这里所说的“学习”是指从训练数据中自动获取最优权重参数的过程。 为了使神经网络能进行学习&#xff0c;将导入损失函数这一指标 为了找出尽可能小的损失函数的值&#xff0c;本章我们将介绍利用了函数斜率的梯度法 从数据中学习 本章将介绍神经网络的学习&#xff0c;…

ubuntu上模拟串口通信

前言 有时候写了一些串口相关的程序&#xff0c;需要调试的时候&#xff0c;又没有硬件&#xff0c;或者需要等其他模块完成才能一起联调。这样搭建环境费时费力&#xff0c;很多问题等到最后联调才发现就已经很晚了。 本文提供一种在ubuntu环境下模拟串口&#xff0c;直接就可…

opencv—常用函数学习_“干货“_5

目录 十五、图像分割 简单阈值分割 (threshold) 自适应阈值分割 (adaptiveThreshold) 颜色范围分割 (inRange) 分水岭算法 (watershed) 泛洪填充 (floodFill) GrabCut算法 (grabCut) 距离变换 (distanceTransform) 最大稳定极值区域检测 (MSER) 均值漂移滤波 (pyrMean…

【Web服务与Web应用开发】【C#】VS2019 创建ASP.NET Web应用程序,以使用WCF服务

目录 0.简介 1.环境 2.知识点 3.详细过程 1&#xff09;创建空项目 2&#xff09;添加Web表单 3&#xff09;使用Web表单的GUI设计 4&#xff09;添加服务引用 5&#xff09;在Web的button函数中调用服务&#xff0c;获取PI值 6&#xff09;测试 0.简介 本文属于一个…

Mysql的JSON格式字段实用操作函数JSON_CONTAINS、JSON_SEARCH、JSON_EXTRACT

文章目录 前言一、示例数据二、使用1.JSON_CONTAINS2.JSON_SEARCH3.JSON_EXTRACT 总结 前言 在开发中难免会遇见在Mysql字段存储JSON格式数据的业务情况&#xff0c;记录几种常用函数的 用法。 一、示例数据 建一张表&#xff0c;字段memo存储JSON格式数据 CREATE TABLE use…

摄像头 RN6752v1 视频采集卡

摄像头 AHD倒车摄像头比较好&#xff0c;AHD英文全名Analog High Definition&#xff0c;即模拟高清&#xff0c;拥有比较好的分辨率与画面质感。 RN6752v1 GQW AKKY2 usb 采集卡 FHD&#xff08;1080p&#xff09;、HD&#xff08;720p&#xff09;和D1&#xff08;480i&am…

MySQL第七次作业

Product表内容 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 产品编号 Int(10) 是 否 是 是 否 Name 产品功能 Varchar(20) 否 否 是 否 否 Function 主要功能 Varchar(50) 否 否 否 否 否 Company 生产厂家 Varchar(20) 否 否 是 否 否 Address 家庭住址 Varchar(20…

支持大量边缘盒子集中管理调度的智慧物流开源了。

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用户只需在界面上…

404/400、Flask、WSGI

对于404和400错误&#xff1a; 1.404 Not Found​ 表示客户端能够与服务器通信&#xff0c;但服务器找不到请求的资源。 2.400 Bad Request​ 表示服务器无法理解客户端的请求&#xff0c;通常是由于请求语法错误、请求参数错误或请求头不正确等原因。 解决&#xff1a; 对于 4…

AR0132AT 1/3 英寸 CMOS 数字图像传感器(AR0132AT6R、AR0132AT6C)适用于监控和高清视频等多种应用

AR0132AT 1/3 英寸 CMOS 数字图像传感器&#xff0c;带 1280H x 960V 有效像素阵列。它能在线性或高动态模式下捕捉图像&#xff0c;且带有卷帘快门读取。它包含了多种复杂的摄像功能&#xff0c;如自动曝光控制、开窗&#xff0c;以及视频和单帧模式。它适用于低光度和高动态范…

大模型学习笔记十一:视觉大模型

一、判别式模型和生成式模型 1&#xff09;判别式模型Discriminative ①给某一个样本&#xff0c;判断属于某个类别的概率&#xff0c;擅长分类任务&#xff0c;计算量少。&#xff08;学习策略函数Y f(X)或者条件概率P(YIX)&#xff09; ②不能反映训练数据本身的特性 ③学习…

精准打击:Conda中conda remove命令的高效使用指南

精准打击&#xff1a;Conda中conda remove命令的高效使用指南 在Python项目开发中&#xff0c;Conda作为Anaconda发行版中的包管理器&#xff0c;不仅用于安装和管理包&#xff0c;还提供了强大的环境管理功能。随着项目的发展&#xff0c;有时需要从环境中移除不再需要的包。…

SpringMVC 控制层框架-上

一、SpringMVC简介 1. 介绍 Spring Web MVC 是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework 中。在控制层框架经历Srust、WebWork、Strust2等诸多产品的历代更迭之后&#xff0c;目前业界普遍选择了SpringMVC 作为Java EE项目表述层开发的首…

解读|http和https的区别,谁更好用

在日常我们浏览网页时&#xff0c;有些网站会看到www前面是http&#xff0c;有些是https&#xff0c;这两种有什么区别呢&#xff1f;为什么单单多了“s”&#xff0c;会有人说这个网页会更安全些&#xff1f; HTTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;…

[Labview] 表格单元格外边框 二维图片叠加绘图

最终效果如下所示 转行做Labview都没到三个月&#xff0c;主程居然让我做这么复杂的功能&#xff0c;真是看得起我/(ㄒoㄒ)/~~ 思路大致分为两步 1、确定每个框体的左上/右下单元格位置&#xff0c;转换为表格表格坐标并在二维图片上绘制生成&#xff1b; 2、为二维图片添加…