动物姿态识别(数据集+代码)
动物姿态识别是指利用计算机视觉和深度学习技术来识别动物的姿态,即确定动物身体的姿态、方向和位置等信息。这种技术可应用于动物行为研究、动物健康监测、智能养殖等领域。
动物姿态识别的关键技术包括图像处理、特征提取和分类器设计。首先,需要对动物图像进行预处理和增强,以消除噪声和增强图像质量。其次,需要提取特征来描述动物的身体特征和姿态信息,常用的特征包括轮廓、角度、比例、骨架和运动轨迹等。最后,需要设计一个分类器来将不同姿态的动物进行分类和识别,并输出识别结果。
目前,动物姿态识别已经被广泛应用于动物行为研究和养殖管理中。例如,通过对家禽和猪的姿态进行监测,可以提高养殖效率和生产效益;通过对野生动物的姿态进行追踪和分析,可以更好地理解它们的行为和生态环境。
但是,动物姿态识别也面临一些挑战和限制。首先,不同种类的动物具有不同的身体特征和姿态,因此需要针对不同的动物种类进行模型训练和优化。其次,光线、角度、背景等因素也会影响动物图像的质量和识别效果。因此,如何设计高效的算法和优化模型,是动物姿态识别研究中需要解决的难题。
总之,动物姿态识别是一种有前景的技术,它可以帮助我们更好地了解动物的行为和生存环境,同时也有望在动物养殖和保护等领域得到广泛应用。
介绍
这是基于《野外动物姿势》所做的工作。
它包含了动物姿态数据集的介绍、标注文件和代码。
动物姿态数据集是第一个用于通用动物姿势估计的大规模数据集。它包含了来自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。
相关文章:
动物姿态识别(数据集+代码)
动物姿态识别是指利用计算机视觉和深度学习技术来识别动物的姿态,即确定动物身体的姿态、方向和位置等信息。这种技术可应用于动物行为研究、动物健康监测、智能养殖等领域。 动物姿态识别的关键技术包括图像处理、特征提取和分类器设计。首先,需要对动…...
JSON-handle工具安装及使用
目录 介绍下载安装简单操作 介绍 JSON-Handle 是一款非常好用的用于操作json的浏览器插件,对于开发人员和测试人员来说是一款很好用的工具,如果你还没有用过,请赶紧下载安装吧,下面是安装过程和具体使用。 下载安装 点击下载JSON…...
kali安装LAMP和DVWA
LANMP简介 LANMP是指一组通常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。 L:指Linux,一类Unix计算机操作…...
上门服务小程序|预约上门服务系统开发有哪些功能?
在现代快节奏的生活中,压力和疲劳常常困扰着我们。为了缓解这种状况,越来越多的人选择去按摩店进行放松。然而,繁忙的工作和家庭责任往往让我们无法抽出时间去按摩店。在这种情况下,上门按摩服务应运而生。而随着科技的发展&#…...
uniapp vue3版本引用 jsencrypt加密库报错:“default“ is not exported by……
个人产生这个异常的原因:将历史项目(vue2)的jsencrypt文件复制到新项目(vue3)里直接引用报错。存在兼容问题,需要重新安装vue3版本的jsencrypt 安装依赖 npm install jsencrypt页面引入 import { JSEncry…...
【WPF.NET开发】WPF中的双向功能
本文内容 FlowDirectionFlowDocumentSpan 元素非文本元素的 FlowDirection数字替换 与其他任何开发平台不同,WPF 具有许多支持双向内容快速开发的功能,例如,同一文档中混合了从左到右和从右到左的数据。 同时,WPF 也为需要双向功…...
Pytest 测试框架与Allure 测试报告——Allure2测试报告-L3
目录: allure2报告中添加附件-图片 Allure2报告中添加附件Allure2报告中添加附件(图片)应用场景Allure2报告中添加附件(图片)-Python代码示例:allure2报告中添加附件-日志 Allure2报告中添加附件ÿ…...
【机器学习300问】16、逻辑回归模型实现分类的原理?
在上一篇文章中,我初步介绍了什么是逻辑回归模型,从它能解决什么问题开始介绍,并讲到了它长什么样子的。如果有需要的小伙伴可以回顾一下,链接我放在下面啦: 【机器学习300问】15、什么是…...
OPC【4】:物理包
概述 OPC遵循zip标准,因此可以使用python标准库zipfile对docx格式的物理文件进行读写操作。在OPC中,物理包与抽象包是一对相对的概念,后续可以看到抽象包内的内容是将物理包内的信息进行编排形成地。简单点理解,物理包的作用在于…...
关于 Go 协同程序(Coroutines 协程)、Go 汇编及一些注意事项。
参考: Go 汇编函数 - Go 语言高级编程 Go 嵌套汇编 - 掘金 (juejin.cn) 前言: Golang 适用 Go-Runtime(Go 运行时,嵌入在被编译的PE可执行文件之中)来管理调度协同程式的运行。 Go 语言没有多线程(MT&a…...
深入剖析BaseMapperPlus扩展接口及其在MyBatis-Plus中的实践价值
前言 BaseMapperPlus并非MyBatis-Plus(MP)官方提供的标准接口,而是社区开发者基于MP的BaseMapper接口进行二次封装和增强后创建的一个自定义接口。这个概念可能因不同项目或个人实践而有所差异,但其核心思想是为了解决特定场景下…...
Linux之安装配置VCentOS7+换源
目录 一、安装 二、配置 三、安装工具XSHELL 3.1 使用XSHELL连接Linux 四、换源 前言 首先需要安装VMware虚拟机,在虚拟机里进行安装Linux 简介 Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件&#…...
[极客大挑战 2019]LoveSQL1
万能密码测试,发现注入点 注意这里#要使用url编码才能正常注入 测试列数,得三列 查看table,一个是geekuser另一个是l0ve1ysq1 查看column,有id,username,password,全部打印出来,…...
网络安全的介绍
1.什么是网络安全 网络安全是一门关注保护计算机系统、网络基础设施和数据免受未经授权访问、破坏或窃取的学科。随着数字化时代的发展,网络安全变得尤为重要,因为大量的个人信息、商业机密和政府数据都储存在电子设备和云端系统中。以下是网络安全的概…...
django邮件通知功能-
需求: 1:下单人员下订单时需要向组长和投流手发送邮件通知 2:为何使用邮件通知功能?因为没钱去开通短信通知功能 设计 1:给用户信息表添加2个字段 第一个字段为:是否开通邮件通知的布尔值 第二个字段为: 用…...
C++ 类定义
C 类定义 定义一个类需要使用关键字 class,然后指定类的名称,并类的主体是包含在一对花括号中,主体包含类的成员变量和成员函数。 定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么࿰…...
IntelliJ IDE 插件开发 | (五)VFS 与编辑器
系列文章 IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听IntelliJ IDE 插件开发 |(四)来查收…...
金融OCR领域实习日志(一)
一、OCR基础 任务要求: 工作原理 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用…...
CC++编译和链接介绍
介绍 C语言的编译和链接是将源代码转换为可执行文件的两个关键步骤。以下是详细的流程: 编译过程(Compilation) 预处理(Preprocessing): 编译器首先对源代码进行预处理,这个阶段处理#include包…...
Element-UI中的el-upload插件上传文件action和headers参数
官网给的例子action都是绝对地址,我现在需要上传到自己后台的地址,只有一个路由地址/task/upload 根据 config/index.js配置,那么action要写成/api/task/upload,另外也可以传入函数来返回地址:action"uploadUrl()"。 …...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...
医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
