【大厂AI课学习笔记NO.54】2.3深度学习开发任务实例(7)数据标注和数据集拆分

news2024/12/24 11:35:28

数据标注

有时我们会把特征工程和数据集的标注弄混淆,在普通的机器学习项目中,我们需要进行特征工程,但是在深度学习项目过程中,我们需要进行数据标注工作。

标注工具

在本案例中,使用的是开源的标注工具Labelme,生成格式为yolo格式的标准文件。

在人工智能的深度学习项目中,数据标注是一个非常重要的环节,它涉及到将原始数据转化为机器学习算法可以理解和学习的形式。下面是一些常用和重要的开源数据标注工具,以及它们的使用方式、重要步骤和数据格式。

  • LabelImg

LabelImg是一个图形图像标注工具,它支持多种标注形式,包括矩形框、多边形、线段、关键点等。使用LabelImg进行标注的步骤大致如下:

(1)导入图像数据:将需要标注的图像数据导入到LabelImg中。

(2)创建标注任务:设置标注任务的名称、描述、标签等信息。

(3)进行标注:使用LabelImg提供的标注工具对图像进行标注。

(4)导出标注数据:将标注数据导出为特定格式的文件,如PASCAL VOC、YOLO等。

LabelImg支持的数据格式包括PASCAL VOC、YOLO、COCO等,这些格式都是深度学习领域常用的数据格式。

  • VIA (VGG Image Annotator)

VIA是VGG发布的图像标注工具,它支持对象检测、图像语义分割和实例分割等标注任务。使用VIA进行标注的步骤大致如下:

(1)上传图像数据:将需要标注的图像数据上传到VIA的服务器上。

(2)创建标注项目:设置标注项目的名称、描述、标签等信息。

(3)进行标注:使用VIA提供的标注工具对图像进行标注。

(4)导出标注数据:将标注数据导出为JSON格式的文件。

VIA支持的数据格式为JSON,其中包含了图像的元数据、标注信息和标签等信息。

  • CVAT (Computer Vision Annotation Tool)

CVAT是一个高效的计算机视觉标注工具,它支持图像分类、对象检测、图像语义分割、实例分割等多种标注任务。使用CVAT进行标注的步骤大致如下:

(1)上传图像数据:将需要标注的图像数据上传到CVAT的服务器上。

(2)创建标注任务:设置标注任务的名称、描述、标签等信息。

(3)进行标注:使用CVAT提供的标注工具对图像进行标注。CVAT支持多人协作标注,可以提高标注效率。

(4)导出标注数据:将标注数据导出为特定格式的文件,如COCO、PASCAL VOC等。

CVAT支持的数据格式包括COCO、PASCAL VOC、YOLO等,这些格式都是深度学习领域常用的数据格式。此外,CVAT还支持视频数据标注和本地部署,可以满足更多的需求。

对于以上这些工具,使用方式都相对直观,一般都会有详细的用户指南和教程可供参考。在使用过程中,需要注意的是要保证标注的准确性和一致性,这样才能训练出高质量的深度学习模型。同时,对于大规模的数据标注任务,可以考虑使用多人协作的方式进行标注,以提高效率。

此外,有2个标准工具,LabelImg和Labelme,我们常弄混淆。

LabelMe和LabelImg是两个不同的图像标注工具,它们各自具有独特的特点和功能。

LabelMe是由麻省理工学院(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具。它主要用于创建计算机视觉和机器学习应用所需的标记数据集,支持多种标注类型,如矩形框、多边形、圆形、多段线、线段、点等,可以用于目标检测、图像分割等任务。此外,LabelMe还可以用于视频标注,生成VOC格式和COCO格式的数据集。它的源代码已经开源,并且可以在服务器上安装使用,是一个在线的Javascript图像标注工具,可以在任意地方使用,不需要在电脑中安装大型数据集。

LabelImg也是一款开源的图像标注工具,它的标签可用于分类和目标检测,其注释以PASCAL VOC格式保存为XML文件。它使用Python编写,并使用QT作为其图形界面。

主要区别如下:

  1. 开发背景:LabelMe由知名的麻省理工学院(MIT)的计算机科学和人工智能实验室(CSAIL)研发,而LabelImg则可能由不同的开发团队或组织开发。
  2. 功能和用途:虽然两者都用于图像标注,但LabelMe支持更多的标注类型,并且可以用于视频标注,而LabelImg则更专注于图像分类和目标检测任务。
  3. 数据格式:LabelMe可以生成VOC格式和COCO格式的数据集,而LabelImg的注释则以PASCAL VOC格式保存为XML文件。
  4. 使用方式:LabelMe是一个在线的Javascript图像标注工具,可以在任意地方使用,而LabelImg则是基于Python和QT的桌面应用程序。

总的来说,LabelMe和LabelImg虽然都是图像标注工具,但它们在开发背景、功能和用途、数据格式以及使用方式等方面存在一些差异。选择哪个工具取决于具体的项目需求和个人偏好。

这2个文件,都支持使用yolo格式来存储文件,我们在本案例中,也选择这个文件格式。

在YOLO的标注文件中,通常会包含以下几个部分:

  1. 图像文件:这些是原始的图像文件,通常以JPEG或PNG格式存储。

  2. 标注文件:对于每个图像,都会有一个与之对应的标注文件,通常以.txt为扩展名。这个文件包含了图像中每个对象的边界框坐标和类别ID。在YOLO格式中,这个文件的每一行代表一个对象,包含以下信息:对象类别ID、对象的中心点x坐标、对象的中心点y坐标、对象的宽度、对象的高度。这些信息都是相对于图像的宽度和高度的比例值,并且是按空格分隔的浮点数。

  3. classes.txt:这个文件包含了数据集中所有类别的列表,每个类别占一行。这个文件用于将类别ID映射到实际的类别名称。例如,如果classes.txt中的内容是:

    person
    bicycle
    car
    ...

    那么类别ID 0就对应着"person",类别ID 1对应着"bicycle",以此类推。

在开源工具中,能够处理YOLO格式的工具很多,但具体哪一个工具生成了包括classes.txt的YOLO格式标注文件并不是由文件格式本身决定的,而是由使用该工具的用户或开发者决定的。许多标注工具都支持导出为YOLO格式,同时附带一个classes.txt文件来指明类别。

我们存储为的格式是:

 标注文件每行表示一个矩形框;含义分别是:类别编号、中心点x坐标、中心点y坐标、框体宽度、框体高度;数值是根据图片宽高归一化后的数据,所以是0~1之间的小数。

classes.txt:存放标注的所有类别。本案例中,做了简化,就是traffic一个类别。

抽查

抽查比例由具体任务决定,由于本案中的检测任务较为简单,我们抽查1%,即 100 张。

数据集拆分

将所有数据按照8:2的比例拆分为训练集(8000张)与测试集(2000张)。注意标注文件也应当对应拆。

训练集将提供跟算法组用于模型训练,测试集将提供给测试组用于验证数据的泛化效果。

要用随机采样的方式划分,确保独立。

2个集,不要有1张重合的。这是非常重要的概念。本认证考试中,也特意有这样的考题。

(待续)

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

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

相关文章

SSMBUG之 url +

1. Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured. 经查, 书写一切正常. 注意到此时yml文件的图标是一个红色的Y而不是绿色的spring , 推测没有正确加载. 重新创建项目, 所有东西拷贝一份便恢复正常…

递归与回溯(一)

递归 递归一定要有出口,不然会无限调用,死循环 string fun(int n){if(n0)return "a";if(n1)return "b";return fun(n - 1) fun(n - 2); }输出前8种结果: 双写数字递归例子 注意递归的return int doubleNum(int n){i…

内衣洗衣机哪个牌子好用?甄选安利四款优质好用的内衣洗衣机

内衣洗衣机是近几年新兴的一种家用电器产品,正日益引起人们的重视。但是,面对市面上品牌繁多、款式繁多的内衣洗衣机,使得很多人都不知道该如何选择。身为一个数码家电博主,我知道这类产品在挑选方面有着比较深入的了解。为此&…

python3GUI--酷狗音乐By:PyQt5(附下载地址)

文章目录 一.前言二.展示1.主界面2.乐库3.歌单3.频道4.视频5.我的频道6.视频7.听书8.探索9.其他细节1.搜索中间页2.主菜单3.歌单详情4.托盘菜单 三.心得四.总结 一.前言 之前仿作了几款音乐播放器,有的有功…

【底层解读】ArrayList源码学习

成员变量 学习源码前,我们还是先看一下ArrayList中成员变量有哪些 构造函数 ArrayList一共有三个构造函数。 第一个:带有指定初始容量的构造函数 第二个:空参构造 第三个:包含指定集合的构造函数 OK,看完构造函数&a…

Numpy 数组添加行

参考:Add Row to Numpy Array 在机器学习和数据分析中,经常需要处理大型数据集。Numpy是Python中一个非常有用的库,它提供了高性能的多维数组对象以及用于处理这些数组的函数。在Numpy中,可以使用numpy.append()函数来添加行到一…

【Git教程】(三)提交详解 —— add、commit、status、stach命令的说明,提交散列值与历史,多次提交及忽略 ~

Git教程 提交详解 1️⃣ 访问权限与时间戳2️⃣ add命令与 commit 命令3️⃣ 提交散列值4️⃣ 提交历史5️⃣ 一种特别的提交查看方法6️⃣ 同一项目的多部不同历史6.1 部分输出:-n6.2 格式化输出:--format、--oneline6.3 统计修改信息:--st…

异常的处理

文章目录 1. 异常概述1.1 异常总结:1.2 什么是程序的异常1.3 异常的抛出机制1.4 如何对待异常 2. Java异常体系2.1 Error和Exception2.2 Throwable2.3 编译时异常和运行时异常 3. 常见的错误和异常3.1 Error3.2 运行时异常3.3 编译时异常 4. 异常的处理4.1 异常处理…

大好河山集团带医生的旅游团 守护旅客安康多年

回首大好河山集团成立之初,大好河山就秉持着对旅客安康的关切,怎么能让较高年龄的老人也能畅游祖国的大好河山,是大好河山集团迫切需要解决的问题,因此大好河山集团旗下部分旅游团设有带医生的旅游团为此类游客服务,他…

docker容器技术(2)

docker容器数据卷 什么是数据卷? 在Docker中,数据卷(Data Volumes)是一种特殊的目录,可以在容器和主机之间共享数据。它允许容器内的文件持久存在,并且可以被多个容器共享和访问。 数据卷的主要作用如下&am…

Pycharm 配置Django 框架

Pycharm 配置Django 框架 一、创建第一个django项目 先在自己所在盘创建一个文件夹”projectDjango“ 二、打开pycharm专业版,打开刚刚新建的“projectDjango”项目。 三、打开菜单栏“File"->“Settings” 选择自己安装的python版本 四、安装Django库 1.点…

浅浅的画一个STDP的图像吧

stdp最重要的是两个窗口函数 根据这个方程我们刻画出他的轨迹,代码如下 import numpy as np import matplotlib.pyplot as plt# 定义STDP参数 tau_pos 30 # 正向突触权重变化的时间常数 tau_neg 30 # 负向突触权重变化的时间常数 A_pos 0.1 # 正向突触权重变…

解决谷歌浏览器,每次重启都重置所有设置的问题

一、问题: 修改谷歌浏览器的设置 关闭浏览器再打开设置页面后,会显示(部分设置已重置Chrome检测到您的部分设置被其他程序篡改了,因此已将这些设置重置为原始默认设置。了解详情) 之前的设置被重置了 二、解决 创建—…

Python入门必学:print函数--从基础语法到高级用法

Python入门必学:print函数–从基础语法到高级用法 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您…

1.0 RK3399项目开发实录-Ubuntu环境搭建(物联技术666)

1.下载Ubuntu所需的版本:Index of /releases 2.安装vmplayer:Download VMware Workstation Player | VMware 3.安装Ubuntu时,磁盘空间尽量大些,开发板系统包都比较大,避免存不下,建议空间100G。 关闭Ubuntu自动更新…

MYSQL--(1.存储引擎 *2.事务*)

一 存储引擎: 1.介绍 1>在数据库管理系统当中通过使用数据引擎来实现数据的增删改,查询 2>不同的存储引擎提供的有不同的存储机制,索引技巧等功能 MYSQL的核心,就是存储引擎 3>同样的,用户也可以根据自己的需要进行选择,更改自己需要…

机器学习YOLO操作全流程​​编

YOLO介绍 Ultralytics YOLOv8,是最新的著名实时目标检测和图像分割模型。它基于深度学习和计算机视觉的最新进展,提供了无与伦比的速度和精度性能。由于其精简的设计,适用于各种应用,并且可以轻松适配不同的硬件平台,从边缘设备到云端API。 探索 YOLOv8 文档,这是一个全…

Unity类银河恶魔城学习记录7-9 P75 Saw spin sword源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Sword_Skill_Controller.cs using System.Collections; using System.Col…

数据可视化--了解数据可视化和Excel数据可视化

目录 1.1科学可视化: 可视化是模式、关系、异常 1.2三基色原理: 三基色:红色、绿色和蓝色 1.3Excel数据可视化 1.3.1 excel数据分析-13个图表可视化技巧 1.3.2 excel数据分析-28个常用可视化图表(video) 1.3.3Excel可视化…

DM数据库学习之路(十六)DEM部署DM8DPC集群

DEM部署DPC集群 DPC准备工作 在所有安装DPC服务器上部署dmagent,dmagent的运行环境需要依赖JAVA环境,JAVA版本必须为JAVA1.8。 创建用户 所有安装DPC服务器,手工建dmdba用户 # groupadd dinstall # useradd -g dinstall -d /home/dmdba…