计算机视觉:主流数据集整理

第一章:计算机视觉中图像的基础认知
第二章:计算机视觉:卷积神经网络(CNN)基本概念(一)
第三章:计算机视觉:卷积神经网络(CNN)基本概念(二)
第四章:搭建一个经典的LeNet5神经网络(附代码)
第五章:计算机视觉:神经网络实战之手势识别(附代码)
第六章:计算机视觉:目标检测从简单到容易(附代码)
第七章:MTCNN 人脸检测技术揭秘:原理、实现与实战(附代码)
第八章:探索YOLO技术:目标检测的高效解决方案
第九章:计算机视觉:主流数据集整理
第十章:生成对抗网络(GAN):从概念到代码实践(附代码)

在计算机视觉(CV)领域,数据集的质量和多样性对于推动算法创新和技术进步至关重要。本文整理当前最流行且最具影响力的数据集,涵盖目标检测、图像分类、语义分割、姿态估计等多个关键方向。

一、数据集格式

在计算机视觉领域,数据集的格式对于模型的训练和评估至关重要。不同的任务需要不同的数据集格式,本文介绍分类问题和目标检测问题的数据集格式。

1.1 分类任务数据集格式

分类问题是计算机视觉中最基本的任务之一,旨在识别图像中的主要对象或场景。下面以一个手势分类的例子来展示如何组织分类数据集。

gesture/
├── train/
│   ├── zero/
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   └── ...
│   ├── one/
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   └── ...
│   └── ...
├── test/
│   ├── zero/
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   └── ...
│   ├── one/
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   └── ...
│   └── ...
└── ...

在这个结构中

  • gesture: 数据集根目录。
  • train & test: 训练集与测试集文件夹,用于划分数据集以便于模型训练和评估。
  • zero, one: 类别文件夹,每个类别有自己的文件夹,里面包含该类别的所有图片。

1.2 检测任务数据集格式

目标检测不仅需要识别图像中的对象,还需要精确定位这些对象的位置。这通常涉及到边界框的标注。

数据集名字/
├── images/
│   ├── train/
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   └── ...
│   ├── test/
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   └── ...
│   └── ...
├── labels/
│   ├── train/
│   │   ├── 1.txt
│   │   ├── 2.txt
│   │   └── ...
│   ├── test/
│   │   ├── 1.txt
│   │   ├── 2.txt
│   │   └── ...
│   └── ...
└── ...
  • images: 包含原始图像的文件夹,分为训练集和测试集。
  • labels: 包含对应图像中对象位置信息(如边界框坐标)的文本文件。labels 文件夹包含对应的标签文件。每一行表示一个目标的边界框和类别信息。比如:
    在这里插入图片描述

1.3 标注工具

LabelImg 是一个常用的标注工具,用于创建目标检测的标签文件,从网络上找了一张LabelImg的使用界面图。
在这里插入图片描述

LabelImg标签文件格式
标签文件的每一行表示一个目标的边界框和类别信息,格式如下:

<class_id> <x_center> <y_center> <width> <height>

其中:

  • <class_id>:目标的类别 ID,从 0 开始。
  • <x_center><y_center>:边界框中心点的坐标,相对于图像宽度和高度的比例,范围为 0 到 1。
  • <width> <height>:边界框的宽度和高度,相对于图像宽度和高度的比例,范围为 0 到 1。

在这里插入图片描述

二、MNIST数据集

在这里插入图片描述

MNIST数据集是计算机视觉领域中用于手写数字识别任务的一个经典数据集。它由来自美国国家标准与技术研究所(NIST)的大量手写数字扫描图像组成,经过处理后被广泛应用于机器学习算法尤其是图像分类模型的基准测试。

主要特点

  1. 规模

    • 包含70,000张28x28像素的灰度手写数字图片。
    • 这些图片被划分为60,000张训练图像和10,000张测试图像。
  2. 内容

    • 图像内容为0到9的手写数字,每个数字都有大量的样本。
    • 每个图像都是灰度图,背景为黑色,前景(即手写数字)为白色,并且已经被归一化和平移缩放,以适应28x28像素的框架内。
  3. 标签

    • 每张图像都有一个对应的标签,表示该图像中的手写数字是什么(从0到9)。
  4. 用途

    • MNIST常被用来作为初学者入门机器学习的起点,特别是对于那些想要了解或实现图像分类算法的人。
    • 它也被用作比较不同算法性能的标准基准之一。
  5. 格式

    • 数据集通常以二进制格式提供,但也有许多工具可以方便地将其转换为其他格式(如CSV、NumPy数组等),以便于在各种编程环境中使用。
    • 在Python中,可以通过tensorflowkeras等库轻松加载MNIST数据集。

使用示例

在Python中使用Keras加载MNIST数据集的例子如下:

from tensorflow.keras.datasets import mnist# 加载MNIST数据集
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()# 查看数据集的基本信息
print("训练集尺寸:", train_images.shape)
print("训练集标签数量:", len(train_labels))
print("测试集尺寸:", test_images.shape)
print("测试集标签数量:", len(test_labels))

这段代码首先导入了必要的库,然后加载了MNIST数据集,并打印出了训练集和测试集的一些基本信息。这有助于快速上手并开始探索如何构建和训练模型来解决手写数字识别问题。

MNIST数据集由于其相对简单但又具有代表性的特性,成为了机器学习社区中最受欢迎的数据集之一。尽管近年来随着更复杂的数据集如CIFAR-10、ImageNet等的出现,MNIST的重要性有所下降,但它仍然是教育和研究中的一个重要资源,特别适合用于教学目的以及快速原型设计和算法验证。

三、CIFAR-10数据集

在这里插入图片描述
CIFAR-10 是计算机视觉领域中一个非常流行的数据集,主要用于图像分类任务。它由Alex Krizhevsky、Vinod Nair和Geoffrey Hinton收集,并被广泛用于训练机器学习算法,尤其是深度学习模型。CIFAR-10 是其系列数据集中的一部分,该系列还包括了如 CIFAR-100 等其他变体。

主要特点

  1. 规模

    • 包含 60,000 张 32x32 像素的彩色图像。
    • 这些图像被划分为 50,000 张训练图像和 10,000 张测试图像。
  2. 类别

    • 数据集包含 10 个不同的类别:飞机(airplane)、汽车(automobile)、鸟(bird)、猫(cat)、鹿(deer)、狗(dog)、青蛙(frog)、马(horse)、船(ship)和卡车(truck)。
    • 每个类别有 6,000 张图像,确保了类别之间的平衡。
  3. 图像格式

    • 所有图像均为 RGB 彩色图像,尺寸为 32x32 像素,每个像素点由红、绿、蓝三个 8 位颜色通道组成,因此每个图像大小为 32x32x3 = 3,072 字节。
  4. 用途

    • CIFAR-10 数据集常被用来作为开发、训练和评估图像分类算法的基础,尤其是在卷积神经网络(CNNs)的研究中。
    • 它是许多初学者进入深度学习领域的第一步,也是研究人员比较不同模型性能的重要基准之一。
  5. 挑战性

    • 尽管图像尺寸较小,但由于类间差异有时不明显,以及存在光照变化、遮挡等现实世界中的问题,使得 CIFAR-10 对于机器学习算法来说具有一定的挑战性。

使用示例

在Python中使用Keras加载CIFAR-10数据集的例子如下:

from tensorflow.keras.datasets import cifar10# 加载CIFAR-10数据集
(train_images, train_labels), (test_images, test_labels) = cifar10.load_data()# 查看数据集的基本信息
print("训练集尺寸:", train_images.shape)
print("训练集标签数量:", len(train_labels))
print("测试集尺寸:", test_images.shape)
print("测试集标签数量:", len(test_labels))

这段代码首先导入了必要的库,然后加载了CIFAR-10数据集,并打印出了训练集和测试集的一些基本信息。这有助于快速上手并开始探索如何构建和训练模型来解决图像分类问题。

四、ImageNet数据集

在这里插入图片描述

ImageNet是一个大规模的图像数据库,主要用于训练和评估机器学习模型,特别是那些用于图像分类任务的模型。以下是关于ImageNet数据集的一些关键点:

  • 起源与发展:ImageNet项目始于2007年,由李飞飞等人发起,旨在构建一个大规模的、高质量的图像数据集,并通过众包的方式为每个类别标注大量的图片。“众包的方式”意味着项目团队通过在线平台邀请广大网络用户参与图像的分类与标注工作。每个参与者会被分配一定数量的图片,并要求根据指示为这些图片打上相应的标签,即识别出图片中的主要物体属于哪个或哪些类别。

  • 规模与内容:截至2010年代中期,ImageNet包含了超过1400万张手工标注的图像,这些图像被分配到了大约21,000个类别中。这些类别覆盖了从动物、植物到人造物品等各种对象。

  • ILSVRC竞赛:ImageNet最著名的应用之一是其关联的年度竞赛——ImageNet大规模视觉识别挑战赛(ILSVRC)。该竞赛自2010年开始举办,吸引了全球的研究人员参与,促进了深度学习技术的发展,尤其是卷积神经网络(CNNs)的进步。

  • 对AI领域的影响:由于其庞大的规模和多样性,ImageNet成为了开发和测试新的计算机视觉算法的重要资源。许多现代深度学习模型,包括AlexNet、VGG、ResNet等,在它们的研究初期都是在ImageNet数据集上进行训练和验证的,这大大推动了图像识别技术的发展。

“Classify”模型在ImageNet数据集上预先训练意味着该模型已经在一个广泛且多样化的图像集合上进行了学习,从而获得了强大的泛化能力,这对于解决各种实际问题非常有帮助。ImageNet数据集的配置文件ImageNet.yaml

五、COCO数据集

COCO数据集是一个广泛用于计算机视觉任务,特别是目标检测、分割、关键点检测和图像字幕生成等领域的大型数据集。它由微软资助并由一群研究人员共同创建。以下是样例图片:
在这里插入图片描述

主要特点

  1. 规模

    • COCO 数据集包含超过 33 万张图像。
    • 其中有超过 20 万张标注了对象边界框,适用于目标检测任务。
    • 约 16 万张图像标注了实例分割,适合于更精细的对象识别任务。
    • 还有大约 25 万张图像标注了人物的关键点,可用于人体姿态估计。
  2. 类别

    • 数据集覆盖了 80 个不同的对象类别,从常见的“人”、“车”到较为具体的“叉子”、“飞盘”等。
    • 每个类别都包含了大量实例,确保了模型学习的多样性和鲁棒性。
  3. 上下文信息

    • 与许多其他数据集不同的是,COCO 强调对象在具体场景中的位置和相互关系,这使得它非常适合研究如何理解和处理复杂的视觉场景。
    • 提供了丰富的语义信息,如每张图片的描述性文字(caption),有助于进行图像理解的研究。
  4. 数据格式

    • 图像通常以高分辨率JPEG格式提供。
    • 标注文件采用 JSON 格式,包含了详细的对象边界框、分割掩码、类别标签以及关键点坐标等信息。
  5. 子集划分

    • 数据集被划分为训练集(train)、验证集(val)和测试集(test)。
    • 常用的版本包括 train2017, val2017, 和 test2017,这些版本的数据量和用途各有侧重,方便研究人员根据需要选择合适的子集进行实验。
  6. 应用场景

    • 目标检测:识别图像中所有对象的位置和类型。
    • 实例分割:精确地描绘出每个对象的轮廓。
    • 关键点检测:定位人体上的特定部位,如眼睛、肩膀等。
    • 图像字幕生成:为图像自动生成描述性的文本。

使用示例

在使用COCO数据集进行模型训练或评估时,通常会参考其官方提供的配置文件(如 .yaml 文件),这些文件定义了数据集的位置、类别映射以及其他相关信息。例如,在YOLO框架中,可以这样加载COCO数据集:

from ultralytics import YOLO# Load a model
model = YOLO("yolo11n.yaml")  # 或者加载预训练模型# Train the model on COCO dataset
results = model.train(data="coco.yaml", epochs=100, imgsz=640)

这里的 "coco.yaml" 是一个配置文件,指定了COCO数据集的具体路径和其他必要的参数。

COCO数据集由于其广泛的覆盖面、详细的标注以及丰富的应用场景支持,成为了计算机视觉领域内最为重要的基准之一。

六、COCO8数据集

COCO8 是一个小型但功能齐全的数据集,专门设计用于测试和调试目的。它是从更大的 COCO(Common Objects in Context)数据集中提取出来的子集,包含来自 COCO train 2017 数据集的前 8 张图像,并分为训练集和验证集。以下是样例图片
在这里插入图片描述
主要特点

  • 规模:COCO8 包含总共 8 张图像,其中 4 张用于训练,另外 4 张用于验证。
  • 用途:这个数据集非常适合用来快速测试新的检测方法、实验不同的模型配置或进行代码调试,因为它足够小,可以迅速处理,同时又足够多样化以揭示潜在的问题。
  • 类别:尽管是小规模的数据集,COCO8 保留了原始 COCO 数据集中的丰富类别信息。具体来说,它包含了从 ‘person’ 到 ‘toothbrush’ 的 80 个类别。
  • 格式:遵循 YOLO 所需的标准格式,包括图像文件以及相应的标注文件(通常为 .txt 文件),每个标注文件对应一张图像,并列出所有对象的位置(边界框坐标)和类别标签。
  • 下载与使用:可以通过提供的 YAML 文件 (coco8.yaml) 轻松地将其集成到 Ultralytics YOLO 框架中。该 YAML 文件定义了数据集路径、类别名称以及其他相关信息。

示例 YAML 配置 (coco8-seg.yaml)

# Ultralytics YOLO , AGPL-3.0 license
# COCO8-seg dataset (first 8 images from COCO train2017) by Ultralytics
path: ../datasets/coco8-seg # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Classes
names:
0: person
1: bicycle
...
79: toothbrush
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-seg.zip

使用场景

由于其小巧的体积,COCO8 特别适合以下情况:

  • 快速迭代开发过程中对新想法进行初步验证。
  • 在大规模训练之前检查管道是否存在基本错误。
  • 教育和学习目的,帮助新手理解如何准备和使用目标检测数据集。

虽然 COCO8 对于最终的产品级模型评估并不适用,但它是一个非常有用的工具,可以帮助研究人员和开发者在投入更多资源之前确保他们的算法和实现是正确的。对于更全面的评估,则需要转向更大规模的数据集,如完整的 COCO 数据集或其他类似的大型数据集合。

持续整理中…

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

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

相关文章

二级公共基础之数据结构与算法篇(五)树和二叉树

目录 前言 一、树的基本概念 1.父结点和根节点 2.子节点和叶子节点 3.度和深度 4.子树 二、二叉树及其基本性质 1. 二叉树的定义 2. 二叉树的基本性质 性质1 性质2 性质3 性质4 性质5 性质6 三、二叉树的存储结构 四、二叉树的遍历 1.遍历二叉树的概念 1. 前…

自制操作系统学习第七天

今天要做什么&#xff1f; 实现HLT&#xff0c;不让计算机处于HALT&#xff08;HLT&#xff09;.用C语言实现内存写入&#xff08;错误&#xff0c;需要分析&#xff09; 一:使用HLT&#xff0c;让计算机处于睡眠状态 写了下面这个程序&#xff0c;naskfunc.nas 函数名叫io_h…

Python Django系列—入门实例(二)

数据库配置 现在&#xff0c;打开 mysite/settings.py 。这是个包含了 Django 项目设置的 Python 模块。 默认情况下&#xff0c;​ DATABASES 配置使用 SQLite。如果你是数据库新手&#xff0c;或者只是想尝试 Django&#xff0c;这是最简单的选择。SQLite 包含在 Python 中…

DeepSeek接入Siri(已升级支持苹果手表)完整版硅基流动DeepSeek-R1部署

DeepSeek接入Siri&#xff08;已升级支持苹果手表&#xff09;完整版硅基流动DeepSeek-R1部署 **DeepSeek** 是一款专注于深度学习和人工智能的工具或平台&#xff0c;通常与人工智能、机器学习、自动化分析等领域有关。它的主要功能可能包括&#xff1a;深度学习模型搜索&…

抗辐照加固CAN FD芯片的商业航天与车规级应用解析

在工业自动化、智能汽车、航空航天及国防装备等关键领域&#xff0c;数据传输的安全性、可靠性与极端环境适应能力是技术升级的核心挑战。国科安芯推出全新一代CANFD&#xff08;Controller Area Network Flexible Data Rate&#xff09;芯片&#xff0c;以高安全、高可靠、断电…

Java数据结构第十二期:走进二叉树的奇妙世界(一)

专栏&#xff1a;数据结构(Java版) 个人主页&#xff1a;手握风云 目录 一、树型结构 1.1. 树的定义 1.2. 树的基本概念 1.3. 树的表示形式 二、二叉树 2.1. 概念 2.2. 两种特殊的二叉树 2.3. 二叉树的性质 2.4. 二叉树的存储 三、二叉树的基本操作 一、树型结构 1.…

nginx 反向代理 配置请求路由

nginx | 反向代理 | 配置请求路由 nginx简介 Nginx&#xff08;发音为“Engine-X”&#xff09;是一款高性能、开源的 Web 服务器和反向代理服务器&#xff0c;同时也支持邮件代理和负载均衡等功能。它由俄罗斯程序员伊戈尔西索夫&#xff08;Igor Sysoev&#xff09;于 2004…

ath9k(Atheros芯片)开源驱动之wifi连接

为什么会推荐这个wifi 驱动进行学习&#xff1f; ath9k&#xff08;Atheros芯片&#xff09;&#xff1a;代码结构清晰&#xff0c;适合学习实践 为什么我只在开篇写了一个wifi连接的操作&#xff1f; 先让一个开源驱动在你的硬件上跑起来&#xff0c;再逐步修改&#xff0c…

LLaMA-Factory|微调大语言模型初探索(4),64G显存微调13b模型

上篇文章记录了使用lora微调deepseek-7b&#xff0c;微调成功&#xff0c;但是微调llama3-8b显存爆炸&#xff0c;这次尝试使用qlora微调HQQ方式量化&#xff0c;微调更大参数体量的大语言模型&#xff0c;记录下来微调过程&#xff0c;仅供参考。 对过程不感兴趣的兄弟们可以直…

知识管理平台如何实现高效数据整合?

内容概要 现代知识管理平台通过架构化的四库体系&#xff08;资源库、规则库、模型库、知识库&#xff09;驱动数据智能整合进程。核心机制依托智能数据工具集对异构数据进行自动化清洗与语义标注&#xff0c;其跨源数据汇聚能力支持超过200种结构化与非结构化数据源的接入&am…

近10年气象分析(深度学习)

这是一个气象数据分析程序&#xff0c;主要用于分析和可视化气象数据。以下是该文件的主要功能&#xff1a; 1. 数据加载 在线数据&#xff1a;尝试从 GitHub 加载气象数据。 示例数据&#xff1a;如果无法加载在线数据&#xff0c;程序会自动生成示例数据。 2. 数据分析 …

DeepSeek最新开源动态:核心技术公布

2月21日午间&#xff0c;DeepSeek在社交平台X发文称&#xff0c;从下周开始&#xff0c;他们将开源5个代码库&#xff0c;以完全透明的方式与全球开发者社区分享他们的研究进展。并将这一计划定义为“Open Source Week”。 DeepSeek表示&#xff0c;即将开源的代码库是他们在线…

wps中zotero插件消失,解决每次都需要重新开问题

参考 查看zotero目录 D:\zotero\integration\word-for-windows 加载项点击 dotm即可 长期解决 把dom 复制到 C:\Users\89735\AppData\Roaming\kingsoft\office6\templates\wps\zh_CN还是每次都需要重新开的话 重新加载一下

洛谷B3629

B3629 吃冰棍 - 洛谷 代码区&#xff1a; #include<algorithm> #include<iostream>using namespace std; int main(){int n,ans;cin >> n;for(int in/2;i<n;i){int ti;ans0;while(t>3){t-3;ans3;t;}if(anst>n){cout << i;return 0;}}return…

VMware安装Centos 9虚拟机+设置共享文件夹+远程登录

一、安装背景 工作需要安装一台CentOS-Stream-9的机器环境&#xff0c;所以一开始的安装准备工作有&#xff1a; vmware版本&#xff1a;VMware Workstation 16 镜像版本&#xff1a;CentOS-Stream-9-latest-x86_64-dvd1.iso &#xff08;kernel-5.14.0&#xff09; …

[ProtoBuf] 介绍 | 保姆级win/linux安装教程

目录 一、序列化概念 二、ProtoBuf 是什么 三、ProtoBuf 的使用特点 ProtoBuf 在不同操作系统下的安装 一、ProtoBuf 在 Windows 下的安装 二、ProtoBuf 在 Linux 下的安装 三、检查是否安装成功 安装教程 可以直接目录跳转到后面 笔记参考&#xff1a;官方文档 一、序…

element ui的select选择框

我们首先先试一下&#xff0c;这个东西怎么玩的 <el-select v-model"select" change"changeSelect"><el-option value"香蕉"></el-option><el-option value"菠萝"></el-option><el-option value&quo…

51单片机学习之旅——定时器

打开软件 1与其它等于其它&#xff0c;0与其它等于0 1或其它等于1&#xff0c;0或其它等于其它 TMODTMOD&0xF0;//0xF01111 0000进行与操作&#xff0c;高四位保持&#xff0c;低四位清零&#xff0c;高四位定时器1&#xff0c;低四位定时器0 TMODTMOD|0x01;//0x010000 0…

【跟我学YOLO】(1)YOLO12:以注意力为中心的物体检测

欢迎关注『跟我学 YOLO』系列 【跟我学YOLO】&#xff08;1&#xff09;YOLO12&#xff1a;以注意力为中心的物体检测] 0. YOLOv12 简介0.1 YOLO12 论文下载0.2 YOLO12 的主要改进0.3 YOLO12 支持的任务和性能0.4 论文摘要 1. 背景介绍2. 相关的工作3. 方法3.1 效率分析3.2 区域…

基于Martin的全国基础底图实现

概述 前面有文章基于Martin实现MapboxGL自定义底图分享了Martin的使用&#xff0c;本文使用网络收集的数据实现了全国基础数据的收集和基础底图。 实现后效果 实现 1. 数据准备 实例中包含如下数据&#xff1a; 边界线和九段线数据省边界面数据省会城市点数据市边界面数据…