yolov8+动物+姿态识别(训练教程+代码)

简介: yolov8+动物+姿态识别(训练教程+代码)

本文关键词:

关键点检测 关键点估计 姿态估计 YOLO

  • 动物姿态估计是计算机视觉的一个研究领域,是人工智能的一个子领域,专注于自动检测和分析图像或视频片段中动物的姿势和位置。
  • 目标是确定一种或多种动物的身体部位(例如头部、四肢和尾巴)的空间排列。
  • 这项技术具有广泛的应用,从研究动物行为和生物力学到野生动物保护和监测。


在这篇博文中,我们将专门处理狗的关键点估计,并向您展示如何微调 Ultralytics 非常流行的 YOLOv8 姿势模型。


动物姿势估计数据集

对于我们的动物姿势估计实验,我们将使用斯坦福数据集,该数据集包含 120 个品种的狗,分布在 20,580 张图像中。此外,数据集还包含这些图像的边界框注释。


关键点注释需要通过填写谷歌表单从 StandfordExtra 数据集下载。在 12,538 张图像中提供了 20 个狗姿势关键点的关键点注释(每条腿 3 个,每只耳朵 2 个,尾巴、鼻子和下巴 2 个)。


下载的注释将包含以下结构:

dog
├── StanfordExtra_v12.json
├── test_stanford_StanfordExtra_v12.npy
├── train_stanford_StanfordExtra_v12.npy
└── val_stanford_StanfordExtra_v12.npy

训练、验证和测试拆分作为原始 StanfordExtra_v12.json 数据的索引提供,这些数据分别包含 6773、4062 和 1703 图像的注释。

还以CSV文件的形式提供了关键点元数据,其中包含动物姿势名称、每个关键点的颜色编码等。但是,它包含 24 个关键点的信息(每个眼睛、喉咙和肩膀各 1 个)。可以使用下图来说明关键点。

66c965be26af205f9812e7b83d277e93_2aa8bde96b844e729c1d8fc0d08e693a.png

为训练和验证数据创建与 YOLOv8 一致的注解

以下几点突出显示了用于微调 Ultralytics 的 YOLOv8 Pose 模型的数据集格式:


用于训练YOLO姿态模型的数据集格式如下:


每个图像一个文本文件:数据集中的每个图像都有一个对应的文本文件,其名称与图像文件相同,扩展名为 .txt。

每个对象一行:文本文件中的每一行对应于图像中的一个对象实例。

每行对象信息:每行包含有关对象实例的以下信息:

对象类索引:表示对象类的整数(例如,0 表示人,1 表示汽车等)。

对象中心坐标:对象中心的 x 和 y 坐标归一化为 0 和 1.

对象宽度和高度:对象的宽度和高度被规范化为介于 0 和 1 之间.

对象宽度和高度:对象的宽度和高度被规范化为介于 0 和 1 之间.

此外,可见性标志与关键点坐标相关联。它可以包含以下三个值之一:


0:未标记

1:已标记但不可见

2:标记和可见。

JSON 注释包含一个额外的布尔可见性标志和前面讨论的关键点坐标。我们将所有可见关键点的标志设置为 2.

d684bab22294040b330afc70eb2d6785_737ea64362f8432599a794067397a245.png


下载图像数据和关键点元数据

在开始数据准备之前,我们需要先下载图像数据。让我们定义一个实用程序函数,用于下载和提取包含图像的图像images.tar文件。此外,我们还将下载包含关键点元数据keypoint_definitions.csv,例如动物姿势名


def download_and_unzip(url, save_path):
 
    print("Downloading and extracting assets...", end="")
    file = requests.get(url)
    open(save_path, "wb")).write(file.content)
 
    try:
        # Extract tarfile.
        if save_path.endswith(".tar"):
            with tarfile.open(save_path, "r") as tar:
                tar.extractall(os.path.split(save_path)[0])
             
        print("Done")
    except:
        print("Invalid file")

所有下载的图像都将提取到 Images 目录中。它具有以下目录结构:

Images/
├── n02085620-Chihuahua
│   ├── n02085620_10074.jpg
│   ├── n02085620_10131.jpg
│   └── ...
├── n02085782-Japanese_spaniel
│   ├── n02085782_1039.jpg
│   ├── n02085782_1058.jpg
│   └── n02085782_962.jpg
└── ...

可视化来自 YOLO 注释的数据

一旦我们创建了与YOLO兼容的数据,我们就可以可视化一些地面实况样本,以确保我们的转换是正确的。

在可视化样本之前,我们可以将 keypoint_definitions.csv 值的十六进制颜色编码映射到 RGB 值。

ann_meta_data = pd.read_csv("keypoint_definitions.csv")
COLORS = ann_meta_data["Hex colour"].values.tolist()
 
COLORS_RGB_MAP = []
for COLORS incolor COLORS:
    R, G, B = int(颜色[:2], 16), int(颜色[22:4], 16 ), ), intintint], (color[(color[4:4(color[:], 16:], 1616)
    COLORS_RGB_MAP.append({color: (R,G,B)})

动物姿势估计的微调和训练

最后,我们将使用上面定义的配置进行训练。

pose_model = = model = YOLO(train_config.MODEL)
 
pose_model.train(data = train_config.DATASET_YAML,
            epochs = train_config.EPOCHS,
            imgsz = data_config.IMAGE_SIZE,
            batch = data_config.BATCH_SIZE,
            project = train_config.PROJECT,
            name = train_config.NAME,
            close_mosaic = data_config.CLOSE_MOSAIC,
            mosaic = data_config.MOSAIC,
            fliplr = data_config.FLIP_LR
           )

动物姿态估计:超参数设置和微调

Ultralytics 提供以下在 MS-COCO 数据集上预训练的姿势模型,该数据集由 17 个关键点组成.

使用上面的配置,我们获得了 YOLOv8m 的以下指标:

Box 指标:

mAP@50: 0.991

map@50-95:0.922

姿势指标:

mAP@50: 0.937

map@50-95:0.497

下图显示了 YOLOv8m 的指标。

训练结果展示

结论

在本文中,我们了解了如何微调 YOLOv8 以进行动物姿态估计。可以根据此训练自己的数据,也可以在学习中使用模型对动物进行姿态估计!

相关文章
|
机器学习/深度学习 算法 PyTorch
动物姿态识别+数据集+代码
动物姿态识别+数据集+代码
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
机器学习/深度学习 JSON 算法
如何在自定义数据集上训练 YOLOv8 实例分割模型
在本文中,我们将介绍微调 YOLOv8-seg 预训练模型的过程,以提高其在特定目标类别上的准确性。Ikomia API简化了计算机视觉工作流的开发过程,允许轻松尝试不同的参数以达到最佳结果。
|
7月前
|
人工智能 监控 算法
狗狗6种行为识别检测数据集(近3000张图片已标注)| YOLO训练数据集 AI视觉检测
本数据集含近3000张高质量标注图片,覆盖狗狗吠叫、进食、趴卧、奔跑、端坐、站立6类行为,YOLO格式(v5/v8兼容),已划分训练/验证/测试集,适用于宠物监护、行为分析及AI教学。
1294 13
|
10月前
|
传感器 人工智能 边缘计算
宠物识别算法在智能猫窝上的应用:区域预警、Vlog生成与睡眠监测一体化方案
基于边缘计算与多传感器融合,智能猫窝集成宠物识别算法,实现区域预警、Vlog自动生成与睡眠监测一体化。通过AI视觉、毫米波雷达等技术,精准识别宠物行为,助力远程看护与健康管理,提升人宠情感连接,打造智慧养宠新体验。
823 1
|
7月前
|
数据采集 人工智能 监控
猫行为识别检测数据集(近2000张图片已标注)| YOLO训练数据集 AI视觉检测
本数据集含近2000张高质量猫行为图像,标注4类静态姿态(趴卧、坐姿、睡眠、站立),采用YOLO标准格式,覆盖多场景、多光照与多姿态,适配YOLOv5/v8等模型,适用于智能宠物监控、健康分析及AI视觉研究。
|
7月前
|
机器学习/深度学习 人工智能 计算机视觉
猫的6类行为检测数据集(6000张高清标注)| YOLO实战 宠物行为识别与智能监护
本数据集开源6000张高清标注图像,涵盖猫咪进食、玩耍、休憩、端坐、伸展、打哈欠6类核心行为,YOLO格式,严格划分训练/验证/测试集,支持YOLOv5/v8/v11直接训练,助力宠物AI与智能硬件开发。
|
10月前
|
人工智能 边缘计算 监控
宠物识别算法在AI摄像头的应用实践:从多宠识别到行为分析
基于边缘计算与轻量化AI模型,本方案实现多宠家庭中宠物个体识别、行为分析与健康监测。通过端云协同架构,在本地完成实时识别(延迟<50ms),保障隐私同时支持8只宠物同屏追踪。结合多模态特征与行为模式,准确率超98%,可联动喂食器、猫砂盆等设备,为宠物提供个性化智能照护,适用于家庭、托管中心及医疗场景,推动智能养宠迈向精准化、生态化发展。
1625 4
|
11月前
|
存储 机器学习/深度学习 人工智能
智能宠物设备端侧AI技术深度解析:从模型压缩到实时响应
随着宠物经济兴起,智能设备迎来发展机遇。本文聚焦端侧AI在宠物识别中的应用,探讨模型压缩、硬件适配与性能优化技术,解决识别不准、响应慢等痛点,助力开发者打造高效、低功耗的智能宠物产品,实现毫秒级精准识别。
756 3
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
7167 3