03- 目标检测数据集和标注工具介绍 (目标检测)

news2024/10/5 19:13:57

要点:

  • 常用数据集和标注工具

标注工具 PPOCRLabel github地址:paddleocrlabel

参考文档:目标检测简介 - 知乎


一 目标检测数据集

1. PASCAL VOC

VOC数据集是目标检测经常用的一个数据集,自2005年起每年举办一次比赛,最开始只有4类,到2007年扩充为20个类,共有两个常用的版本:2007和2012。学术界常用5k的train/val 2007和16k的train/val 2012作为训练集,test 2007作为测试集,用10k的train/val 2007+test 2007和16k的train/val 2012作为训练集,test2012作为测试集,分别汇报结果。

包含的种类:

数据集结构:

PASCAL VOC挑战赛 (The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛,PASCAL全称:Pattern Analysis, Statical Modeling and Computational Learning,是一个由欧盟资助的网络组织。PASCAL VOC挑战赛主要包括以下几类:图像分类(Object Classification),目标检测(Object Detection),目标分割(Object Segmentation),行为识别(Action Classification) 等。

2. MS COCO

COCO数据集是微软团队发布的一个可以用来图像recognition+segmentation+captioning 数据集,该数据集收集了大量包含常见物体的日常场景图片,并提供像素级的实例标注以更精确地评估检测和分割算法的效果,致力于推动场景理解的研究进展。依托这一数据集,每年举办一次比赛,现已涵盖检测、分割、关键点识别、注释等机器视觉的中心任务,是继ImageNet Challenge以来最有影响力的学术竞赛之一。

相比ImageNet,COCO更加偏好目标与其场景共同出现的图片,即non-iconic images。这样的图片能够反映视觉上的语义,更符合图像理解的任务要求。而相对的iconic images则更适合浅语义的图像分类等任务。

COCO的检测任务共含有80个类,在2014年发布的数据规模分train/val/test分别为80k/40k/40k,学术界较为通用的划分是使用train和35k的val子集作为训练集(trainval35k),使用剩余的val作为测试集(minival),同时向官方的evaluation server提交结果(test-dev)。除此之外,COCO官方也保留一部分test数据作为比赛的评测集。

对于目标检测主要下载三个文件

  • 2017 Train images [118K/18GB]训练过程中使用到的所有图像文
  • 2017 Val images [5K/1GB]验证过程中使用到的所有图像文
  • 2017 Train/Val annotations [241MB]对应训练集和验证集的标注json

数据集结构:

标注解读:

数据集下载地址:

http://images.cocodataset.org/zips/train2017.zip

http://images.cocodataset.org/annotations/annotations_trainval2017.zip

http://images.cocodataset.org/zips/val2017.zip

http://images.cocodataset.org/annotations/stuff_annotations_trainval2017.zip

http://images.cocodataset.org/zips/test2017.zip

http://images.cocodataset.org/annotations/image_info_test2017.zip

论文地址:https://arxiv.org/pdf/1405.0312.pdf

官网地址:https://cocodataset.org/

3. Google Open Image

Open Image是谷歌团队发布的数据集。最新发布的Open Images V4包含190万图像、600个种类,1540万个bounding-box标注,是当前最大的带物体位置标注信息的数据集。这些边界框大部分都是由专业注释人员手动绘制的,确保了它们的准确性和一致性。另外,这些图像是非常多样化的,并且通常包含有多个对象的复杂场景(平均每个图像 8 个)。

4. ImageNet

ImageNet是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。ImageNet是美国斯坦福的计算机科学家,模拟人类的识别系统建立的。能够从图片识别物体。ImageNet数据集文档详细,有专门的团队维护,使用非常方便,在计算机视觉领域研究论文中应用非常广,几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。ImageNet数据集有1400多万幅图片,涵盖2万多个类别;其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。


二 常用图像标注工具

1. LabelImg

1)LabelImg 是一款开源的图像标注工具,标签可用于分类和目标检测,它是用 Python 编写的,并使用Qt作为其图形界面,简单好用。注释以 PASCAL VOC 格式保存为 XML 文件,这是 ImageNet 使用的格式。 此外,它还支持 COCO 数据集格式

2)安装方法:

前置条件:安装Python3以上版本,安装pyqt5 第一步:下载安装包 第二步:使用Pycharm打开项目,运行labelImg.py文件;或直接运行labelImg.py文件

pip install labelImg -i https://pypi.douban.com/simple

3)使用流程:

打开软件: 在命令行输入labelImg

设置图像文件所在目录, 以及标注文件保存目录.

标注图像, 保存.

4)常见错误处理:

① 报错:ModuleNotFoundError: No module named 'libs.resources'

  • 处理方式:
  • 将python下scripts添加到环境变量path中
  • 在labelImg目录下执行命令:pyrcc5 -o resources.py resources.qrc
  • 将生成的resources.py拷贝到labelImg/libs/下
  • 执行labelImg.py程序

GitHub地址:https://github.com/tzutalin/labelImg

2. Labelme

labelme 是一款开源的图像/视频标注工具,标签可用于目标检测、分割和分类。灵感是来自于 MIT 开源的一款标注工具 Labelme。Labelme具有的特点是:

  • 支持图像的标注的组件有:矩形框,多边形,圆,线,点(rectangle, polygons, circle, lines, points)
  • 支持视频标注
  • GUI 自定义
  • 支持导出 VOC 格式用于 semantic/instance segmentation
  • 支出导出 COCO 格式用于 instance segmentation

3. Labelbox

Labelbox 是一家为机器学习应用程序创建、管理和维护数据集的服务提供商,其中包含一款部分免费的数据标签工具,包含图像分类和分割,文本,音频和视频注释的接口,其中图像视频标注具有的功能如下:

  • 可用于标注的组件有:矩形框,多边形,线,点,画笔,超像素等(bounding box, polygons, lines, points,brush, subpixels)
  • 标签可用于分类,分割,目标检测等
  • 以 JSON / CSV / WKT / COCO / Pascal VOC 等格式导出数据
  • 支持 Tiled Imagery (Maps)
  • 支持视频标注 (快要更新)

4. RectLabel

RectLabel 是一款在线免费图像标注工具,标签可用于目标检测、分割和分类。具有的功能或特点:

  • 可用的组件:矩形框,多边形,三次贝塞尔曲线,直线和点,画笔,超像素
  • 可只标记整张图像而不绘制
  • 可使用画笔和超像素
  • 导出为YOLO,KITTI,COCO JSON和CSV格式
  • 以PASCAL VOC XML格式读写
  • 使用Core ML模型自动标记图像
  • 将视频转换为图像帧

5. CVAT

CVAT 是一款开源的基于网络的交互式视频/图像标注工具,是对加州视频标注工具(Video Annotation Tool) 项目的重新设计和实现。OpenCV团队正在使用该工具来标注不同属性的数百万个对象,许多 UI 和 UX 的决策都基于专业数据标注团队的反馈。具有的功能

  • 关键帧之间的边界框插值
  • 自动标注(使用TensorFlow OD API 和 Intel OpenVINO IR格式的深度学习模型)

6. VIA

VGG Image Annotator(VIA)是一款简单独立的手动注释软件,适用于图像,音频和视频。 VIA 在 Web 浏览器中运行,不需要任何安装或设置。 页面可在大多数现代Web浏览器中作为离线应用程序运行。

  • 支持标注的区域组件有:矩形,圆形,椭圆形,多边形,点和折线

7. PPOCRLabel

PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,内置PP-OCR模型对数据自动标注和重新识别。使用Python3和PyQT5编写,支持矩形框标注和四点标注模式,导出格式可直接用于PaddleOCR检测和识别模型的训练

通过Python脚本运行PPOCRLabel:

cd ./PPOCRLabel  # 切换到PPOCRLabel目录
python PPOCRLabel.py --lang ch

操作步骤:

  1. 安装与运行:使用上述命令安装与运行程序。
  2. 打开文件夹:在菜单栏点击 “文件” - "打开目录" 选择待标记图片的文件夹[1].
  3. 自动标注:点击 ”自动标注“,使用PP-OCR超轻量模型对图片文件名前图片状态[2]为 “X” 的图片进行自动标注。
  4. 手动标注:点击 “矩形标注”(推荐直接在英文模式下点击键盘中的 “W”),用户可对当前图片中模型未检出的部分进行手动绘制标记框。点击键盘Q,则使用四点标注模式(或点击“编辑” - “四点标注”),用户依次点击4个点后,双击左键表示标注完成。
  5. 标记框绘制完成后,用户点击 “确认”,检测框会先被预分配一个 “待识别” 标签。
  6. 重新识别:将图片中的所有检测画绘制/调整完成后,点击 “重新识别”,PP-OCR模型会对当前图片中的所有检测框重新识别[3]。
  7. 内容更改:单击识别结果,对不准确的识别结果进行手动更改。
  8. 确认标记:点击 “确认”,图片状态切换为 “√”,跳转至下一张。
  9. 删除:点击 “删除图像”,图片将会被删除至回收站。
  10. 导出结果:用户可以通过菜单中“文件-导出标记结果”手动导出,同时也可以点击“文件 - 自动导出标记结果”开启自动导出。手动确认过的标记将会被存放在所打开图片文件夹下的Label.txt中。在菜单栏点击 “文件” - "导出识别结果"后,会将此类图片的识别训练数据保存在crop_img文件夹下,识别标签保存在rec_gt.txt中[4]。

PPOCRLabel github地址:paddleocrlabel

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

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

相关文章

JWT快速入门及日常使用

什么是JWT JSON Web Token,通过数字签名的方式,以json对象为载体,在不同服务端之间安全的传输信息 JWT有什么用 JWT最常见的场景就是授权认证,一旦用户登录,后续每个请求都将包含JWT,系统每次处理用户请求前…

总结下自己编译alembic的过程

编译alembic过程回顾 前言 总结下自己编译alembic的过程 最近想学习编译啥的,就想着一边编译着,一边学习的,刚好,拿alembic编译练手,记录下自己编译的过程吧。 编译的使用的是Visual Studio 2022,python…

【性能设计篇】性能设计-缓存

前言 在分布式系统中,最耗费性能的地方就是数据库,而对于数据库的操作基本上就是添加,修改,删除和查询,对于前3者来说,基本上不会出现性能瓶颈。最耗费性能的地方就是查询了,对于查询有join、w…

Kafka相关知识

一、基本概念及流程 Broker:kafka集群中的实例Topic:队列的主题,逻辑概念;Partition:Topic分区,物理概念,同意parttion内消息有序;Producer & Consumer:生产消息的客户端 & 消费消息的客户端,kafka认为是服务器。将每个Topic划分为多个分区Partition,每个分…

Vim (NeoVim) 配置

Vim 基础 模式 o 代表的是open a new line i 代表的是insert a 代表的是append Visual [Character] 视觉模式:用于选择单个字符(v小写’v’)视觉线模式:用于一次选择整条线(V大写“V”)视觉块模式&#…

深度学习数据集—动物数据集大合集(二)

近期又整理了一批各类动物数据集,分享给大家。废话不多说,直接上干货!! 1、151种动物图片数据集共6271张,图片大小:224x224 jpg ​ ​ 下载地址:151种动物图片数据集 2、9种海洋生物&#xff0…

C++学习之字符常量、字符串常量和符号常量的区别

字符常量 字符常量就是把一个字符用单引号括起来。 注: 字符常量只能包含一个字符,如’AB’是不合法的字符常量区分大小写字母单引号“ ’ ”是定界符,而不属于字符常量的一部分 字符串常量 字符串常量时用双引号括起来的字符序列。 举例…

kill 命令信号详解

信号 列出所有信号 $ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18…

【数据结构】交换排序(详细)

交换排序 1. 冒泡排序2. 快速排序2.1霍尔版本2.2 挖坑法2.3 前后指针法(最优)2.4 小区间优化2.5 非递归快排 1. 冒泡排序 思想 排升序:每趟将前后两元素进行比较,按照“前小后大”进行交换,将最大的元素放在最后。 排…

Solr(3):Solr的名词解释及配置文件说明

1 名称解释 1.1 索引库 我们导入数据,solr 会被它以某种格式保存在索引库里面! 可以看出刚安装的现在没有任何索引库 1.2 索引分词 Solr在导入数据库时,会对某些语句进行分词 1.3 搜索分词 Solr在搜索数据库时,会对某些语句进…

PyQt5桌面应用开发(10):界面布局基本支持

本文目录 PyQt5桌面应用系列布局利器游戏总结 PyQt5桌面应用系列 PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2):事件循环 PyQt5桌面应用开发(3):并行设计 PyQt5桌…

星火认知大模型发布,科大讯飞入场科技巨头AI大战?

自从ChatGPT横空出世,一个更美好的世界开始向我们招手。为了推开新时代的大门,几乎所有人工智能厂商都投入了最大的热情逐浪AIGC。 5月6日,科大讯飞召开了“讯飞星火认知大模型”成果发布会。发布会现场,科大讯飞董事长刘庆峰展示…

Hadoop[3.3.x]-1本地环境搭建

环境:Mac Hadoop版本:Apache Hadoop 3.3.4 由于hadoop依赖java环境,所以需要事先安装好java。 Hadoop下载 进入官网进行下载Apache Hadoop 下载后解压到自己的规划的目录。 环境文件配置 Hadoop相关配置文件都在目录的../hadoop-3.3.4/et…

Vulkan 总结

一、Vulkan 对象简介 1、VKInstance 这个对象是我们 Vulkan api 的一个对象,用于通过 Instance 我们与 Vulkan 底层进行交互。 2、VkPhysicalDevice 对应我们当前设备(PC、手机)的一个显卡硬件(GPU ),有的…

如何导出cloudflare warp内部存的私钥和token

结论:管理员身份运行 mimikatz:https://github.com/gentilkiwi/mimikatz/releases/tag/2.2.0-20220919 然后输入: privilege::debug (提升权限到:NT-AUTHORITY\SYSTEM)以及sekurlsa::credman 就能看到&…

Java中的反射(通过反射获取类的结构、invoke方法、获取注解)

文章目录 1. 创建运行时类的对象2. 获取运行时类的完整结构2.1 相关API2.2 获取所有的属性及相关细节2.3 获取所有的方法及相关细节2.4 获取其他结构(构造器、父类、接口、包、注解等)2.5 获取泛型父类信息2.6 获取内部类或外部类信息2.7 总 结 3. 调用运行时类的指定结构3.1 调…

HDOJ 1022 Train Problem Ⅰ 模拟栈操作

🍑 OJ专栏 🍑 HDOJ 1022 Train Problem Ⅰ 输入 3 123 321 3 123 312输出 Yes. in in in out out out FINISH No. FINISH🍑 思路 🍤 栈顶元素与目标元素不匹配就进栈,匹配就出栈 🍤 匹配完:y…

es 7.0.8 常用操作(windwos版本安装,索引crud操作)

一 es7.x的核心 1.1 es的核心概念 1.ES 里的 Index 可以看做一个库(名称必须为小写),而 Types 相当于表,Documents 则相当于表的行。 2.这里 Types 的概念已经被逐渐弱化,Elasticsearch 6.X 中,一个 index 下已经只能包含一个…

分布式搜索引擎——elasticsearch搜索功能

DSL查询语法 DSL Query的分类 Elasticsearch提供了基于JSON的DSL (Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一般测试用。例如:match_all全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排…

Java 基础进阶篇(九)—— Java集合详细总结

文章目录 一、集合类体系结构二、Collection系列集合2.1 Collection 集合体系2.2 Collection 集合体系特点2.3 Collection 常用API2.4 Collection 集合的遍历方式2.4.1 方式一:迭代器2.4.2 方式二:foreach(增强for循环)2.4.3 方式…