西部数码网站建设教程,哪学网页设计,南宁网络技术,手机app怎么开发的第一章#xff1a;计算机视觉中图像的基础认知 第二章#xff1a;计算机视觉#xff1a;卷积神经网络(CNN)基本概念(一) 第三章#xff1a;计算机视觉#xff1a;卷积神经网络(CNN)基本概念(二) 第四章#xff1a;搭建一个经典的LeNet5神经网络(附代码) 第五章#xff1…第一章计算机视觉中图像的基础认知 第二章计算机视觉卷积神经网络(CNN)基本概念(一) 第三章计算机视觉卷积神经网络(CNN)基本概念(二) 第四章搭建一个经典的LeNet5神经网络(附代码) 第五章计算机视觉神经网络实战之手势识别(附代码) 第六章计算机视觉目标检测从简单到容易(附代码) 第七章MTCNN 人脸检测技术揭秘原理、实现与实战(附代码) 第八章探索YOLO技术目标检测的高效解决方案 第九章计算机视觉主流数据集整理 第十章生成对抗网络(GAN)从概念到代码实践(附代码) 第十一章计算机视觉经典数据格式(VOC、YOLO、COCO)解析与转换(附代码) 第十二章计算机视觉YOLOv11遥感图像目标检测(附代码)
在计算机视觉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的大量手写数字扫描图像组成经过处理后被广泛应用于机器学习算法尤其是图像分类模型的基准测试。
主要特点 规模 包含70,000张28x28像素的灰度手写数字图片。这些图片被划分为60,000张训练图像和10,000张测试图像。 内容 图像内容为0到9的手写数字每个数字都有大量的样本。每个图像都是灰度图背景为黑色前景即手写数字为白色并且已经被归一化和平移缩放以适应28x28像素的框架内。 标签 每张图像都有一个对应的标签表示该图像中的手写数字是什么从0到9。 用途 MNIST常被用来作为初学者入门机器学习的起点特别是对于那些想要了解或实现图像分类算法的人。它也被用作比较不同算法性能的标准基准之一。 格式 数据集通常以二进制格式提供但也有许多工具可以方便地将其转换为其他格式如CSV、NumPy数组等以便于在各种编程环境中使用。在Python中可以通过tensorflow或keras等库轻松加载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 等其他变体。
主要特点 规模 包含 60,000 张 32x32 像素的彩色图像。这些图像被划分为 50,000 张训练图像和 10,000 张测试图像。 类别 数据集包含 10 个不同的类别飞机airplane、汽车automobile、鸟bird、猫cat、鹿deer、狗dog、青蛙frog、马horse、船ship和卡车truck。每个类别有 6,000 张图像确保了类别之间的平衡。 图像格式 所有图像均为 RGB 彩色图像尺寸为 32x32 像素每个像素点由红、绿、蓝三个 8 位颜色通道组成因此每个图像大小为 32x32x3 3,072 字节。 用途 CIFAR-10 数据集常被用来作为开发、训练和评估图像分类算法的基础尤其是在卷积神经网络CNNs的研究中。它是许多初学者进入深度学习领域的第一步也是研究人员比较不同模型性能的重要基准之一。 挑战性 尽管图像尺寸较小但由于类间差异有时不明显以及存在光照变化、遮挡等现实世界中的问题使得 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数据集是一个广泛用于计算机视觉任务特别是目标检测、分割、关键点检测和图像字幕生成等领域的大型数据集。它由微软资助并由一群研究人员共同创建。以下是样例图片
主要特点 规模 COCO 数据集包含超过 33 万张图像。其中有超过 20 万张标注了对象边界框适用于目标检测任务。约 16 万张图像标注了实例分割适合于更精细的对象识别任务。还有大约 25 万张图像标注了人物的关键点可用于人体姿态估计。 类别 数据集覆盖了 80 个不同的对象类别从常见的“人”、“车”到较为具体的“叉子”、“飞盘”等。每个类别都包含了大量实例确保了模型学习的多样性和鲁棒性。 上下文信息 与许多其他数据集不同的是COCO 强调对象在具体场景中的位置和相互关系这使得它非常适合研究如何理解和处理复杂的视觉场景。提供了丰富的语义信息如每张图片的描述性文字caption有助于进行图像理解的研究。 数据格式 图像通常以高分辨率JPEG格式提供。标注文件采用 JSON 格式包含了详细的对象边界框、分割掩码、类别标签以及关键点坐标等信息。 子集划分 数据集被划分为训练集train、验证集val和测试集test。常用的版本包括 train2017, val2017, 和 test2017这些版本的数据量和用途各有侧重方便研究人员根据需要选择合适的子集进行实验。 应用场景 目标检测识别图像中所有对象的位置和类型。实例分割精确地描绘出每个对象的轮廓。关键点检测定位人体上的特定部位如眼睛、肩膀等。图像字幕生成为图像自动生成描述性的文本。
使用示例
在使用COCO数据集进行模型训练或评估时通常会参考其官方提供的配置文件如 .yaml 文件这些文件定义了数据集的位置、类别映射以及其他相关信息。例如在YOLO框架中可以这样加载COCO数据集
from ultralytics import YOLO# Load a model
model YOLO(yolo11n.yaml) # 或者加载预训练模型# Train the model on COCO dataset
results model.train(datacoco.yaml, epochs100, imgsz640)这里的 coco.yaml 是一个配置文件指定了COCO数据集的具体路径和其他必要的参数。
COCO数据集由于其广泛的覆盖面、详细的标注以及丰富的应用场景支持成为了计算机视觉领域内最为重要的基准之一。
六、COCO8数据集
COCO8 是一个小型但功能齐全的数据集专门设计用于测试和调试目的。它是从更大的 COCOCommon 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 数据集或其他类似的大型数据集合。
持续整理中…