有关深度学习打标签DIY的五种方式

news2024/11/28 20:58:44

有关深度学习打标签DIY的五种方式:Labelme、LabelImg、EISeg、Make Sence和CVat等

  • 五种制作Label的方式:
    • 1.CVAT(Open Data Annotation Platform)
    • 2.EISeg(Efficient Interactive Segmentation)自动标注
    • 3.Make Sence在线标注(对Yolo和VOC格式十分友好)
    • 4.LabelImg和Labelme
  • 注入json2txt以及json2xml的python脚本(其它的转换脚本持续更新中...)

五种制作Label的方式:

1.CVAT(Open Data Annotation Platform)

  1. 了解
  2. CVAT开放注释平台:https://www.cvat.ai/
    在这里插入图片描述
    此平台由:
    在这里插入图片描述
    共同开发,可以进行图像分类、目标检测、语义和实例分割、点云/雷达、3D立方体、视频注释和骨架等等。
    在这里插入图片描述
  3. 准备开始
  4. 在线:https://app.cvat.ai/tasks?page=1
  5. 离线:
    Installation on Ubuntu
    Installation on Windows 10
    Installation on Mac OS
    (1) 需要邮箱注册:
    在这里插入图片描述
    (2)开始:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (补充,Advanced configuration里面包含:数据格式、图像质量、数据集仓库URL等),以手动多边形标注为例:
    在这里插入图片描述在这里插入图片描述
    参考:
    目标检测数据集标注工具 CVAT 使用方法
    使用Amazon SageMaker部署CVAT AI自动图像标注系统

2.EISeg(Efficient Interactive Segmentation)自动标注

代码和论文网址:
https://github.com/PaddlePaddle/PaddleSeg
EISeg: Effective interactive segmentation

  1. 了解
    基于飞桨开发的一个高效智能的交互式分割标注软件。它涵盖了通用、人像、遥感、医疗、视频等不同方向的高质量交互式分割模型。 另外,将EISeg获取到的标注应用到PaddleSeg提供的其他分割模型进行训练,便可得到定制化场景的高精度模型,打通分割任务从数据标注到模型训练及预测的全流程。
    在这里插入图片描述
  2. 安装:
pip install opencv-python==4.5.5.64
pip install opencv-contrib-python==4.5.5.64
pip install opencv-python-headless==4.5.5.64
pip install eiseg

在这里插入图片描述
参考:百度智能语义分割开源软件EIseg新手安装指南
我是安装的PaddlePaddle-gpu、
终端输入:eiseg打开:
下载模型:
在这里插入图片描述
我下载的是:高精度模型,通用图像标注场景,EdgeFlow,static_edgeflow_cocolvis。
然后加载的时候:
在这里插入图片描述
出现错误:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
不管许多,上解决方式:
代码前加入两行如下代码即可:

import os
os.environ["KMP_DUPLICATE_LIB_OK"]  =  "TRUE"

之后载入一段时间:
在这里插入图片描述
可以正常使用。
因为我需要的是yolo格式的标签文件,但是该eiseg只支持coco和json格式,所以有一个json2txt的python代码参考:

#处理labelme多边形矩阵的标注  json转化txt
#!/usr/bin/ python
# -*- encoding: utf-8 -*-
import json
import cv2
import numpy as np
import glob

def totxt():
        # 第二列:中心归一化横坐标(x)
        # 第三列:中心归一化纵坐标(y)
        # 第四列:归一化宽度(w)
        # 第五列:归一化高度(h)

        height,width = img.shape[0],img.shape[1]
        dw = 1 / width
        dh = 1/ height
        
        with open(out_txt_file, "w+") as f:
            for shape in data:
                points = shape["points"]
                cls_id = shape["labelIdx"]-1
                xmin, ymin, w, h = cv2.boundingRect(np.array(points, dtype=np.int))
                xmax = xmin+w
                ymax = ymin+h

                x = (xmin + xmax) / 2.0 - 1
                y = (ymin + ymax) / 2.0 - 1
                w = xmax - xmin
                h = ymax - ymin
                if w < 50 or h < 50:
                    continue
                x = x * dw
                w = w * dw
                y = y * dh
                h = h * dh
                f.write("%s %s %s %s %s\n"%(cls_id,x, y, w, h))


if __name__=="__main__":
    # 文件列表
    json_list = glob.glob("Annotations/*.json")
    for file in json_list:
        basename = file.split("\\")[-1].split(".")[0]
        # 读取图片
        img = cv2.imread("images/"+basename+".png")
        if img is None:
            continue
        # 读取json文件
        data = ""
        with open(file, 'r', encoding='utf-8') as f:
            data = json.load(f)
      	# yololabels
        out_txt_file = "labels/" + basename + ".txt"
        totxt()

参考:
使用EISeg自动标注数据,yolov5训练模型(保姆教程)
PaddlePaddle/PaddleSeg
PaddleLabel机器学习辅助标注后端

3.Make Sence在线标注(对Yolo和VOC格式十分友好)

网址:https://www.makesense.ai/
在这里插入图片描述
很好上手:
在这里插入图片描述
标注结束,多边形支持导出VGG Json和COCO Json格式,矩形框支持导出yolo、csv和VOC xml格式。
在这里插入图片描述
在这里插入图片描述

4.LabelImg和Labelme

LabelImg 标注工具:https://github.com/heartexlabs/labelImg
安装LabelImg之前需要安装:

pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install PyQt5_tools -i https://pypi.tuna.tsinghua.edu.cn/simple

LabelImg 的界面如下所示:
在这里插入图片描述
只能正方形,适合做分类,不太适合做实例分割的数据集标注。LabelImg 可以保存三种数据格式:PASCAL VOC: voc 的xml 格式,yolo 格式和ML格式。
而labelme可以直接安装:

pip install labelme

打开:
在这里插入图片描述

labelme支持多边形操作,只能导出json格式,需要的话,还要进行xml或者txt转换。

注入json2txt以及json2xml的python脚本(其它的转换脚本持续更新中…)

Python+Matlab+Halcon语言的转换文件合集

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

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

相关文章

中国人民大学与加拿大女王金融硕士国际班——全方位培养金融人才,你心动了吗

中国人民大学与加拿大女王大学中外合作办学的金融硕士项目有国际班&#xff08;使用英文授课&#xff0c;无工作经验要求&#xff09;和高管班&#xff08;使用中文授课&#xff0c;一般需在中国金融行业拥有至少7年以上的工作经验&#xff09;两个班次&#xff0c;属于滚动式录…

机器学习模型——分类模型

文章目录 K近邻&#xff08;KNN&#xff09;KNN示例KNN距离计算KNN算法代码实现1. 引入依赖&#xff1a;2. 数据加载和预处理&#xff1a;3. 核心算法实现&#xff1a;4. 测试&#xff1a; 逻辑斯谛回归线性回归问题分类边界曲线——逻辑斯谛回归Sigmoid函数&#xff08;压缩函…

多模块更新,助力模型训练及应用|ModelWhale 版本更新

绿暗红稀&#xff0c;蝉鸣草长。本次更新中&#xff0c;ModelWhale 带来了一系列的功能优化&#xff0c;期待为你提供更好的使用体验。 本次更新中&#xff0c;ModelWhale 主要进行了以下功能迭代&#xff1a; • 优化 模型与人工组合式数据标注&#xff08;团队版✓ &#xf…

基于stm32F407的hal库,移植FreeRTOS的具体步骤和遇到的问题(看正点原子的视频)

1. 资料准备 因为板子是stm32F407的第二版的&#xff0c;所以开始下的资料是旧版本的&#xff0c;但是旧版本的FreeRTOS工程没有hal库的&#xff0c;都是标准库的&#xff0c;这里是下载stm32F407最新版的资料&#xff0c;进行移植。 资料可以在正点原子官网下载&#xff0c;…

格式化输出Printf总结说明

一&#xff0c;简介 在C语言运行调试过程中&#xff0c;需要使用printf进行打印log信息&#xff0c;本文主要介绍常用的printf打印格式信息&#xff0c;方便提高调试的效率。 二&#xff0c;Printf转换说明 printf函数的转换说明由字符%和跟随其后的最多5个不同的选项构成&a…

PHP快速实战18-PHP使用PHPMailer来发送邮件

文章目录 前言安裝与实现步骤1&#xff1a;下载PHPMailer步骤2&#xff1a;包含PHPMailer文件步骤3&#xff1a;设置SMTP服务器和端口号步骤4&#xff1a;设置发件人和收件人步骤5&#xff1a;设置邮件主题和内容步骤6&#xff1a;添加附件&#xff08;可选&#xff09;步骤7&a…

深度学习-第T8周——猫狗识别

深度学习-第T8周——猫狗识别 深度学习-第T8周——猫狗识别一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目 四、数据预处理1、 加载数据1.1、设置图片格式1.2、划分训练集1.3、划分验证集1.4、查看标签1.5、再次检查数据1.6、配置数据集 2、数据可视化 五、搭建…

GMesh网格选项介绍

GMesh网格介绍 2D mesh algorithm MeshAdapt&#xff1a;这是一种自适应网格算法&#xff0c;可在需要更大的精度或在某些区域需要更密集的网格时自动添加额外的网格。该算法的优点包括较高的收敛性和灵活性&#xff0c;它可以让用户在需要的地方添加更多的网格&#xff0c;但…

隐形黑客潜入美国和关岛关键基础设施而未被发现

微软和“五眼联盟”国家周三表示&#xff0c;一个隐秘的组织成功地在美国和关岛的关键基础设施组织中建立了一个持久的立足点&#xff0c;而没有被发现。 这家科技巨头的威胁情报团队正在以伏特台风(Volt Typhoon)的名义跟踪这些活动&#xff0c;包括入侵后的凭证访问和网络系…

如何实现torna文档生成管理工具api接口从内网到外网的访问?

企业接口文档解决方案&#xff0c;目标是让文档管理变得更加方便、快捷。Torna采用团队协作的方式管理和维护项目API文档&#xff0c;将不同形式的文档纳入进来&#xff0c;形成一个统一的维护方式。下面简单给大家介绍一下torna接口文档管理工具都有哪些功能特性&#xff1a; …

【Java EE 初阶】TCP协议的安全效率机制

目录 1.应用层协议 2.传输层协议 3.UDP协议格式 4.TCP协议格式 5.TCP的安全效率机制 1.确认应答机制 2.超时重传机制 但是&#xff0c;主机A未收到B发来的确认应答&#xff0c;也可能是因为ACK丢失了&#xff1b; 3.连接管理机制 面试题&#xff1a;会不会有可能变成三…

【A卡,Windows】stable diffusion webui下载安装避坑指南

观前提醒 本文内容都是本人亲身经历的&#xff0c;一个一个安装下载测试所感&#xff0c;当然如果你更想用傻瓜式集成包的&#xff0c;那还是跳过这篇文章吧。 当然我不推荐这篇文章的操作&#xff0c;因为我用了差不多1h才有一副图&#xff0c;有N卡&#xff0c;就用N卡&…

jdk14——独立打包工具jpackage

jpackage是jdk14正式加入的一个用于独立打包的工具&#xff1b; 官网简介翻译&#xff1a; jpackage工具将以Java应用程序和Java运行时映像作为输入&#xff0c;并生成一个包含所有必要依赖项的Java应用程序映像。它可以生成特定于平台格式的本机软件包&#xff0c;例如Windo…

【UE】制作可拖动的UI

效果 步骤 1. 新建一个控件蓝图并打开 这里我在画布面板中加了一个垂直框&#xff0c;垂直框内包含一个按钮和一个图像控件 我设置图像控件占垂直框的2/3&#xff0c;按钮占1/3 添加按钮按压事件、松开事件 在控件蓝图的事件图表中添加如下节点&#xff0c;其中“Close”、“…

通达信三重滤网交易系统指标公式(含强力指数指标)

三重滤网交易系统由《以交易为生》的作者亚历山大埃尔德(Alexander Elder)发明的&#xff0c;1986年首次公开&#xff0c;后续又不断改进&#xff0c;增加或者改变了一些细节&#xff0c;但是使用多重时间周期和技术指标进行分析决策的原理没变。 一、强力指数指标 《以交易为…

Taro 项目怎么获取元素的高度和视口高度

最近做小程序&#xff0c;用的Taro&#xff0c;需要设置空状态居中显示&#xff0c;因为空状态出现的地方不一样&#xff0c;所以需要动态设置&#xff0c;那么就需要获取元素的高度来计算 文档翻了一遍也没有找到&#xff0c;原生js获取高度得到的是null&#xff0c;百度了下…

点云拟合平面原理和实现(Halcon)

最近学习了一下拟合平面的原理&#xff0c;看了这篇文章最小二乘拟合平面(C版) - 知乎 讲到了以下几种方法&#xff0c;我这里在halcon中对其一一实现。 一、算法原理 1&#xff0c;直接求解法 2.使用拉格朗日乘子法 3 SVD分解法 二、Halcon实现 1.各方法对比 在halcon中…

Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性

什么是对象和类 什么是 Python 类、类对象、实例对象 类变量、实例变量/类属性、实例属性 前言 只是叫法不一样 实例属性 实例变量 类属性 类变量 个人认为叫属性更恰当 类属性和实例属性区别 类属性&#xff0c;所有实例对象共享该属性实例属性&#xff0c;属于某一…

win10系统如何设置虚拟回环

在日常生活中&#xff0c;人们(特别是IT行业者)通常需要在一台机上进行软件测试&#xff0c;而同一台计算上通常只能使用一个地址&#xff0c;而在需要同时使用两个地址进行测试的时候就显得捉襟见肘。此方法通过配置window10自带的环回适配器&#xff0c;达到上述目的。 win1…

如何用chatgpt写作论文 GPT写毕业论文的技巧

如何用chatgpt写作论文 GPT写论文的技巧 经常被问到为什么万事知天下小程序不能写论文。也不是不能写&#xff0c;只是GPT3.5的上下文只有4K&#xff0c;一般论文要写上万字&#xff0c;所以不可能你直接输入一个论文标题就直出结果的。 不过手工分一下步骤就可以了。先让写…