Biu懂AI:Object Detection训练数据的Label格式

  Bui~ 新系列博文将专注AI相关领域,想要学习高通蓝牙相关知识请查看之前的系列或关注大博主声波电波就看今朝

       在CV(computer vision)中,Object detection是其中的一个核心任务,它可以在输入图像或视频中识别并框出目标。这种应用在生活中应用很多,例如停车场的车牌识别,监控的物体识别,智能驾驶的车道车辆识别等等。平常我们不会看到它是怎么框出识别物的,但是在debug模式下我们经常会看到下图这样的识别,识别到特定物体后会框出来并显示他的类别和置信度,直观得表现模型的准确性。

(图片来自于Prediction - Deci AI Documentation Hub)

        这种框框就是Object detection输出的结果,这和我们训练数据时提供的label数据差不多,只是少了置信值。模型通过对比输出结果和输入label的差异来调整模型参数。因此label的输入准不准确,决定了模型输出准不准确。

        因为不同的模型要求label的格式会有所不同,目标类型、标记方框坐标这些数据的排序;label存储的方式;有时训练数据的文件架构也要考虑,这些设置都要和训练框架匹配好才能训练出正确的模型。因此在模型训练的时候,我们要留意训练模型的要求,根据要求去调整label数据的格式。

       首先我们来了解一下label数据包含的主要数据——目标类型和标记方框坐标。目标类型主要用索引值的方式保存;方框坐标就有多种表达方式:

  1. 左上角右下角(XYXY):这种是最直观的方式,通过对角坐标画一个矩形
     
  2. 左上角宽高(XYWH):这种只有一个左上角坐标,加上宽和高之后得到右下角坐标,就能画出矩形了
     
  3. 中心点宽高(CXCYWH):这种只有一个中心点坐标,加减一半的宽和高之后也能得到左上角坐标和右下角坐标

除了格式不一样之外,还有一些会对坐标数据先进行normalized处理,还原坐标时只需要乘上图片对应的宽和高即可。例如一个数据集的坐标格式是CXCYWH,其中一个图片宽高是200*100,有一个label坐标是【0.63 0.66 0.24 0.22】,要将它转成左上右下坐标,

  1. 将CX乘上图片的宽得到实际中心点x:63 * 200 = 126
     
  2. 将CY乘上图片的高得到实际中心点y:66 * 100 = 66
     
  3. 将W乘上图片的宽得到实际方框w:24 * 200 = 48
     
  4. 将H乘上图片的高得到实际方框h:22 * 100 = 22

 

  • 将实际中心点x分别减加去实际方框w的一半得到x1,x2:126 ± 48/2 = 102和150
     
  • 将实际中心点y分别减加去实际方框h的一半得到y1,y2:66 ± 22/2 = 55和77
     
  • 我们就能得到左上角坐标(102,55)和右下角坐标(150,77)

        label的数据格式不固定的,目标类型和标记方框坐标也可以互相调换位置。再来是文件保存格式,一般是保存在文本文档或json文档中。如果是文档格式不兼容的话,可以用python脚本去转换,现在很多训练框架也有提供转换接口。方框坐标也是这样处理。如果是在意文件架构的,也有脚本去整理。如果框架没提供方法,网络也能找到大量的例程。

        Object detection的label格式大概是这样,不同的模型或框架有不同的要求。在训练时,甄别出来,用框架api或自写脚本去设置装换。下一篇将介绍pytorch如何准备训练数据,包含label数据在哪进行转换哦。

       以上是本期博文的全部内容,如有疑问请在博文下方评论留言,我会尽快解答(o´ω`o)و。谢谢大家浏览,我们下期再见。

简单是长期努力的结果,而不是起点

                                                 —— 不是我说的

FAQ 1:数据集的格式没写明,要怎么判断他的坐标格式?

A1:标志这种也能判断:Pascal-VOC format(xyxy)COCO format(xywh)YOLO format(cxcywh)。再不行就在那张图片上把坐标画上去看看

FAQ 2:图像数据格式要匹配吗?

A2:要的,但基本是那三个通道调一下

FAQ 3:有些数据集的json文件还有别的参数,要怎么用?

A3:要根据数据集的说明再去处理

FAQ 4: json文件的label类型用了字符串表示

A4: 如果框架不能识别,就要写一张表,把字符串转成索引,这样模型才好训练

FAQ 5:为什么有些数据集的json文件只有一个,而有些是一张图片对应一个文件

A5: 只有一个文件时,文件里面会记录每个sample的文件名字和对应的label数据,必要时提取出来即可

 

 登录大大通,了解更多详情,解锁1500+完整应用方案,更有大联大700+FAE在线答疑解惑!

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

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

相关文章

【网页设计期末】茶文化网站

本文资源:https://download.csdn.net/download/weixin_47040861/88818886 1.题目要求 设计要求: (1)网站页面数量不少于4个,文件命名规范,网站结构要求层次清楚,目录结构清晰,代码…

Redis的数据类型与示例演示

目录 一、KEY操作 1.1 相关命令 说明: 1.2示例演示 二、String类型 2.1 结构图 2.2 示例演示 三、List类型 3.1 结构图 3.2 相关命令 3.3 示例演示 四、SET类型 4.1 结构图 4.2 相关命令 4.3 示例演示 五、ZSET类型 5.1 结构图 5.2 相关命令 六、…

C#上位机与三菱PLC的通信02--MC协议介绍

1、协议介绍 三菱 PLC MC 协议是一种用于三菱 PLC 与上位机之间进行数据通信的协议,也称为 Mitsubishi Communication Protocol。该协议支持串口、以太网等多种通讯方式,可实现实时数据的采集和交换。三菱PLC的MC协议是一种数据通信协议,它用…

Bootstrap5 响应式导航栏

Bootstrap5 响应式导航栏 我们可以使用 Bootstrap5 导航栏组件为网站或应用程序创建响应式导航标题。 这些响应式导航栏在手机等小视口的设备上会折叠,但当用户单击切换按钮时会展开。 但是,它在中型和大型设备(例如笔记本电脑或台式机&#…

考研数据结构笔记(4)

链表(链式存储) 单链表定义基本操作的实现单链表的插入按位序插入指定节点的前插指定节点的后插 单链表的删除 小结 单链表 定义 顺序表优点:可随机存取,存储密度高,缺点:要求大片连续空间,改变容量不方便。 单链表优…

中科星图——如何利用中科星图智脑引擎来下载0.5米分辨率的高清遥感影像

简介 如何利用中科星图智脑引擎来下载0.5米分辨率的高清遥感影像,这里我们一旦您有GEE的基础那么还是非常好的接入到这个平台当中的,所以这里我们依旧是使用的JavaScript语言来进行编程,地球计算器-地球编程 (geovisearth.com) 这里有一个好处是这里的函数我们可以直接悬浮…

1898_野火FreeRTOS教程阅读笔记_链表操作

1898_野火FreeRTOS教程阅读笔记_链表操作 全部学习汇总: g_FreeRTOS: FreeRTOS学习笔记 (gitee.com) 新的节点的插入,影响到的是链表中最后一个元素的后继以及当前被插入元素的前驱、后继以及归属属性。具体的操作效果为:新的节点更新自己的前…

2 月 7 日算法练习- 数据结构-树状数组

树状数组 lowbit 在学习树状数组之前,我们需要了解lowbit操作,这是一种位运算操作,用于计算出数字的二进制表达中的最低位的1以及后面所有的0。 写法很简单: int lowbit(int x){return x &am…

2024.02.08

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);this->setWindowIcon(QIcon(":/zh.png"));ui->lineEdit->setPlaceholderText("账号/手…

WordPress Plugin HTML5 Video Player SQL注入漏洞复现(CVE-2024-1061)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 0x02 漏洞概述 WordPress Plugin HTML5 Video Player 插件 get_v…

Python进阶--爬取美女图片壁纸(基于回车桌面网的爬虫程序)

目录 一、前言 二、爬取下载美女图片 1、抓包分析 a、分析页面 b、明确需求 c、抓包搜寻 d、总结特点 2、编写爬虫代码 a、获取图片页网页源代码 b、提取所有图片的链接和标题 c、下载并保存这组图片 d、 爬取目录页的各种类型美女图片的链接 e、实现翻页 三、各…

ZooKeeper安装及配置(Windows版)

步骤: 1.官网下载二进制版本ZooKeeper安装包。 2.解压到你要安装的目录下 3.配置 3.1进入目录 D:\Install\apache-zookeeper-3.9.1-bin 新增两个文件夹:data和log 3.2 进入目录D:\Install\apache-zookeeper-3.9.1-bin\conf 复制zoo_sample.cfg文件&a…

手把手教你开发Python桌面应用-PyQt6图书管理系统-主窗体点击菜单显示功能窗体实现

锋哥原创的PyQt6图书管理系统视频教程: PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

【人工智能】人工智能 – 引领未来科技的潮流

写在前面 引言红利挑战结论 引言 人工智能是指使计算机系统表现出类似于人类智能的能力。其目标是实现机器具备感知、理解、学习、推理和决策等智能行为。人工智能的发展可以追溯到上世纪50年代,随着计算机技术和算法的不断进步,人工智能得以实现。 今天…

visual studio code could not establish connection to *: XHR failed

vscode远程连接服务器时,输入密码,又重新提示输入密码,就这样循环了好几次,然后会报上述的错误。由于我是window系统,我用cmd,然后ssh */你的IP地址/*发现可以远程到服务器上,但是通过Vscode就不…

向量搜索查询faiss、annoy

首先介绍annoy : 转发空间:https://download.csdn.net/blog/column/10872374/114665212 Annoy是高维空间求近似最近邻的一个开源库。 Annoy构建一棵二叉树,查询时间为O(logn)。 Annoy通过随机挑选两个点,并使用垂直于这个点的等距离超平面…

新书速览|PyTorch 2.0深度学习从零开始学

实战中文情感分类、拼音汉字转化、中文文本分类、拼音汉字翻译、强化学习、语音唤醒、人脸识别 01 本书简介 本书以通俗易懂的方式介绍PyTorch深度学习基础理论,并以项目实战的形式详细介绍PyTorch框架的使用。为读者揭示PyTorch 2.0进行深度学习项目实战的核心技…

Git介绍和常用命令说明

目录 一、Git概述 1.1 Git是什么 1.2 Git有什么用 1.3 Git仓库介绍 二、Git下载与安装 三、Git代码托管服务(远程仓库) 四、Git常用命令 4.1 设置用户信息 4.2 获取Git仓库 4.2.1 本地初始化Git仓库 4.2.2 从远程仓库克隆 4.3 本地仓库操作 …

相机图像质量研究(10)常见问题总结:光学结构对成像的影响--光圈

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

SERVLET线程模型

1. SERVLET线程模型 Servlet规范定义了两种线程模型来阐明Web容器应该如何在多线程环境中处理servlet。第一种模型称为多线程模型,默认在此模型内执行所有servlet。在此模型中,每次客户机向servlet发送请求时Web容器都启动一个新线程。这意味着可能有多个线程同时访问servle…