当前位置: 首页 > news >正文

动物姿态识别(数据集+代码)

动物姿态识别是指利用计算机视觉和深度学习技术来识别动物的姿态,即确定动物身体的姿态、方向和位置等信息。这种技术可应用于动物行为研究、动物健康监测、智能养殖等领域。

动物姿态识别的关键技术包括图像处理、特征提取和分类器设计。首先,需要对动物图像进行预处理和增强,以消除噪声和增强图像质量。其次,需要提取特征来描述动物的身体特征和姿态信息,常用的特征包括轮廓、角度、比例、骨架和运动轨迹等。最后,需要设计一个分类器来将不同姿态的动物进行分类和识别,并输出识别结果。

目前,动物姿态识别已经被广泛应用于动物行为研究和养殖管理中。例如,通过对家禽和猪的姿态进行监测,可以提高养殖效率和生产效益;通过对野生动物的姿态进行追踪和分析,可以更好地理解它们的行为和生态环境。

但是,动物姿态识别也面临一些挑战和限制。首先,不同种类的动物具有不同的身体特征和姿态,因此需要针对不同的动物种类进行模型训练和优化。其次,光线、角度、背景等因素也会影响动物图像的质量和识别效果。因此,如何设计高效的算法和优化模型,是动物姿态识别研究中需要解决的难题。

总之,动物姿态识别是一种有前景的技术,它可以帮助我们更好地了解动物的行为和生存环境,同时也有望在动物养殖和保护等领域得到广泛应用。
介绍


这是基于《野外动物姿势》所做的工作。

它包含了动物姿态数据集的介绍、标注文件和代码。

动物姿态数据集是第一个用于通用动物姿势估计的大规模数据集。它包含了来自23个动物家族和54个物种的10,015张图像,具有高质量的关键点标注。

我们还包含了约50,000张带有家族和物种标签的图像。该数据集可用于监督学习、跨领域迁移学习、家族内和家族间领域等。它还可用于自监督学习、半监督学习等。标注文件采用COCO风格提供。

关键点定义 

具体定义如下: 

 背景

环境安装

步骤 0. 从官方网站下载并安装Miniconda。

步骤 1. 创建并激活一个conda环境。

conda create --name openmmlab python=3.8 -y
conda activate openmmlab

 

步骤 2. 安装PyTorch,按照官方说明进行操作,例如:

在GPU平台上:

conda install pytorch torchvision -c pytorch

此命令将自动安装最新版本的PyTorch和cudatoolkit,请检查它们是否与您的环境匹配。

在CPU平台上:

conda install pytorch torchvision cpuonly -c pytorch

安装

我们建议用户按照我们的最佳实践安装MMPose。然而,整个过程是高度可定制的。请查看“自定义安装”部分以获取更多信息。

最佳实践

步骤 0. 使用MIM安装MMCV。

pip install -U openmim
mim install mmcv-full

数据及代码使用

数据集准备

请从下载部分下载数据集,并将其解压缩到data文件夹下,例如:

mkdir data
unzip ap-10k.zip -d data/
mv data/ap-10k data/ap10k

解压后的数据集应该如下所示:

AP-10K
├── mmpose
├── docs
├── tests
├── tools
├── configs
|── data│── ap10k│-- annotations│   │-- ap10k-train-split1.json│   |-- ap10k-train-split2.json│   |-- ap10k-train-split3.json│   │-- ap10k-val-split1.json│   |-- ap10k-val-split2.json│   |-- ap10k-val-split3.json│   |-- ap10k-test-split1.json│   |-- ap10k-test-split2.json│   |-- ap10k-test-split3.json│-- data│   │-- 000000000001.jpg│   │-- 000000000002.jpg│   │-- ...
推理

可以从HRNet-w32、HRNet-w48、ResNet-50、ResNet-101下载检查点。

python tools/test.py <CONFIG_FILE> <DET_CHECKPOINT_FILE>
训练
bash tools/dist_train.sh <CONFIG_FILE> <GPU_NUM>

例如,要在1个GPU上训练HRNet-w32模型,请运行:

bash tools/dist_train.sh configs/animal/2d_kpt_sview_rgb_img/topdown_heatmap/ap10k/hrnet_w32_ap10k_256x256.py 1
关键问题

1. 数据集的创建目的是什么?


数据集的创建旨在促进动物姿势估计领域的研究。在更多来自不同物种的训练数据可用的情况下,有必要研究一些具有挑战性的问题,比如:

1)不同代表性人体姿势模型在动物姿势估计任务上的性能如何?
2)深度模型的表征能力是否受益于在具有不同物种的大规模数据集上的训练?
3)在具有不同物种的大规模数据集的背景下,预训练(例如在ImageNet数据集或人体姿势估计数据集上的预训练)的影响如何?
4)在使用来自特定物种或家族的数据训练的模型中,模型的家族内和家族间泛化能力如何?

然而,先前用于动物姿势估计的数据集包含有限数量的动物物种。因此,使用现有数据集无法研究这些问题,因为它们包含的最多只有5种物种,这远远不足以得出可靠的结论。相比之下,数据集包含23个家族和54个物种,因此可以帮助研究人员研究这些问题。

2. 是否进行了数据清理?


我们使用aHash算法检测相似图像并进行手动检查,删除了重复的图像。手动删除了有重叠和标志的图像。清理后的图像被分类到不同的物种和家族中。

3. 关键点如何指导进行标注?


标注者首先了解动物的相貌、体型和关键点分布。然后,给标注者展示每个物种的五张图像,用于标注关键点,这些标注用于评估其标注质量。具有良好标注质量的标注者进一步接受培训,了解如何处理由于遮挡导致的身体部分的部分缺失,并参与后续的标注过程。标注者被要求标注所有可见的关键点。对于被遮挡的关键点,他们被要求标注他们可以根据身体结构、姿势和身体的对称性估计的关键点,其中可以从可见的肢体或关键点推断出被遮挡的肢体的长度或被遮挡的关键点的位置。其他关键点则保持未标记。
为了确保标注质量,我们采用了顺序标注策略。进行了三轮交叉检查和校正,包括手动检查和自动检查(根据特定规则,例如,属于同一实例的关键点位于同一边界框中),以减少可能的错误标注。首先,标注者标注了每个实例的关键点,并向经验丰富的高级标注者提交了版本-1标签,然后经验丰富的高级标注者检查了版本-1标签的质量,并向标注者返回了错误列表,标注者根据此列表修复了这些错误。最后,标注者向经验丰富的高级标注者提交了修复后的版本-2标签,他们进行最后的校正,查找任何潜在的错误标注的关键点。完成所有三轮工作后,带有高质量标签的数据集的发布版本完成了。

结果展示

 欢迎交流学习QQ767172261。

相关文章:

动物姿态识别(数据集+代码)

动物姿态识别是指利用计算机视觉和深度学习技术来识别动物的姿态&#xff0c;即确定动物身体的姿态、方向和位置等信息。这种技术可应用于动物行为研究、动物健康监测、智能养殖等领域。 动物姿态识别的关键技术包括图像处理、特征提取和分类器设计。首先&#xff0c;需要对动…...

JSON-handle工具安装及使用

目录 介绍下载安装简单操作 介绍 JSON-Handle 是一款非常好用的用于操作json的浏览器插件&#xff0c;对于开发人员和测试人员来说是一款很好用的工具&#xff0c;如果你还没有用过&#xff0c;请赶紧下载安装吧&#xff0c;下面是安装过程和具体使用。 下载安装 点击下载JSON…...

kali安装LAMP和DVWA

LANMP简介 LANMP是指一组通常用来搭建动态网站或者服务器的开源软件&#xff0c;本身都是各自独立的程序&#xff0c;但是因为常被放在一起使用&#xff0c;拥有了越来越高的兼容度&#xff0c;共同组成了一个强大的Web应用程序平台。 L:指Linux&#xff0c;一类Unix计算机操作…...

上门服务小程序|预约上门服务系统开发有哪些功能?

在现代快节奏的生活中&#xff0c;压力和疲劳常常困扰着我们。为了缓解这种状况&#xff0c;越来越多的人选择去按摩店进行放松。然而&#xff0c;繁忙的工作和家庭责任往往让我们无法抽出时间去按摩店。在这种情况下&#xff0c;上门按摩服务应运而生。而随着科技的发展&#…...

uniapp vue3版本引用 jsencrypt加密库报错:“default“ is not exported by……

个人产生这个异常的原因&#xff1a;将历史项目&#xff08;vue2&#xff09;的jsencrypt文件复制到新项目&#xff08;vue3&#xff09;里直接引用报错。存在兼容问题&#xff0c;需要重新安装vue3版本的jsencrypt 安装依赖 npm install jsencrypt页面引入 import { JSEncry…...

【WPF.NET开发】WPF中的双向功能

本文内容 FlowDirectionFlowDocumentSpan 元素非文本元素的 FlowDirection数字替换 与其他任何开发平台不同&#xff0c;WPF 具有许多支持双向内容快速开发的功能&#xff0c;例如&#xff0c;同一文档中混合了从左到右和从右到左的数据。 同时&#xff0c;WPF 也为需要双向功…...

Pytest 测试框架与Allure 测试报告——Allure2测试报告-L3

目录&#xff1a; allure2报告中添加附件-图片 Allure2报告中添加附件Allure2报告中添加附件&#xff08;图片&#xff09;应用场景Allure2报告中添加附件&#xff08;图片&#xff09;-Python代码示例&#xff1a;allure2报告中添加附件-日志 Allure2报告中添加附件&#xff…...

【机器学习300问】16、逻辑回归模型实现分类的原理?

在上一篇文章中&#xff0c;我初步介绍了什么是逻辑回归模型&#xff0c;从它能解决什么问题开始介绍&#xff0c;并讲到了它长什么样子的。如果有需要的小伙伴可以回顾一下&#xff0c;链接我放在下面啦&#xff1a; 【机器学习300问】15、什么是…...

OPC【4】:物理包

概述 OPC遵循zip标准&#xff0c;因此可以使用python标准库zipfile对docx格式的物理文件进行读写操作。在OPC中&#xff0c;物理包与抽象包是一对相对的概念&#xff0c;后续可以看到抽象包内的内容是将物理包内的信息进行编排形成地。简单点理解&#xff0c;物理包的作用在于…...

关于 Go 协同程序(Coroutines 协程)、Go 汇编及一些注意事项。

参考&#xff1a; Go 汇编函数 - Go 语言高级编程 Go 嵌套汇编 - 掘金 (juejin.cn) 前言&#xff1a; Golang 适用 Go-Runtime&#xff08;Go 运行时&#xff0c;嵌入在被编译的PE可执行文件之中&#xff09;来管理调度协同程式的运行。 Go 语言没有多线程&#xff08;MT&a…...

深入剖析BaseMapperPlus扩展接口及其在MyBatis-Plus中的实践价值

前言 BaseMapperPlus并非MyBatis-Plus&#xff08;MP&#xff09;官方提供的标准接口&#xff0c;而是社区开发者基于MP的BaseMapper接口进行二次封装和增强后创建的一个自定义接口。这个概念可能因不同项目或个人实践而有所差异&#xff0c;但其核心思想是为了解决特定场景下…...

Linux之安装配置VCentOS7+换源

目录 一、安装 二、配置 三、安装工具XSHELL 3.1 使用XSHELL连接Linux 四、换源 前言 首先需要安装VMware虚拟机&#xff0c;在虚拟机里进行安装Linux 简介 Linux&#xff0c;一般指GNU/Linux&#xff08;单独的Linux内核并不可直接使用&#xff0c;一般搭配GNU套件&#…...

[极客大挑战 2019]LoveSQL1

万能密码测试&#xff0c;发现注入点 注意这里#要使用url编码才能正常注入 测试列数&#xff0c;得三列 查看table&#xff0c;一个是geekuser另一个是l0ve1ysq1 查看column&#xff0c;有id&#xff0c;username&#xff0c;password&#xff0c;全部打印出来&#xff0c;…...

网络安全的介绍

1.什么是网络安全 网络安全是一门关注保护计算机系统、网络基础设施和数据免受未经授权访问、破坏或窃取的学科。随着数字化时代的发展&#xff0c;网络安全变得尤为重要&#xff0c;因为大量的个人信息、商业机密和政府数据都储存在电子设备和云端系统中。以下是网络安全的概…...

django邮件通知功能-

需求&#xff1a; 1&#xff1a;下单人员下订单时需要向组长和投流手发送邮件通知 2&#xff1a;为何使用邮件通知功能&#xff1f;因为没钱去开通短信通知功能 设计 1&#xff1a;给用户信息表添加2个字段 第一个字段为&#xff1a;是否开通邮件通知的布尔值 第二个字段为: 用…...

C++ 类定义

C 类定义 定义一个类需要使用关键字 class&#xff0c;然后指定类的名称&#xff0c;并类的主体是包含在一对花括号中&#xff0c;主体包含类的成员变量和成员函数。 定义一个类&#xff0c;本质上是定义一个数据类型的蓝图&#xff0c;它定义了类的对象包括了什么&#xff0…...

IntelliJ IDE 插件开发 | (五)VFS 与编辑器

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听IntelliJ IDE 插件开发 |&#xff08;四&#xff09;来查收…...

金融OCR领域实习日志(一)

一、OCR基础 任务要求&#xff1a; 工作原理 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;是指电子设备&#xff08;例如扫描仪或数码相&#xff09;检查纸上打印的字符&#xff0c;经过检测暗、亮的模式肯定其形状&#xff0c;而后用…...

CC++编译和链接介绍

介绍 C语言的编译和链接是将源代码转换为可执行文件的两个关键步骤。以下是详细的流程&#xff1a; 编译过程&#xff08;Compilation&#xff09; 预处理&#xff08;Preprocessing&#xff09;&#xff1a; 编译器首先对源代码进行预处理&#xff0c;这个阶段处理#include包…...

Element-UI中的el-upload插件上传文件action和headers参数

官网给的例子action都是绝对地址&#xff0c;我现在需要上传到自己后台的地址&#xff0c;只有一个路由地址/task/upload 根据 config/index.js配置&#xff0c;那么action要写成/api/task/upload&#xff0c;另外也可以传入函数来返回地址:action"uploadUrl()"。 …...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...