动物姿态识别(数据集+代码)
动物姿态识别是指利用计算机视觉和深度学习技术来识别动物的姿态,即确定动物身体的姿态、方向和位置等信息。这种技术可应用于动物行为研究、动物健康监测、智能养殖等领域。
动物姿态识别的关键技术包括图像处理、特征提取和分类器设计。首先,需要对动物图像进行预处理和增强,以消除噪声和增强图像质量。其次,需要提取特征来描述动物的身体特征和姿态信息,常用的特征包括轮廓、角度、比例、骨架和运动轨迹等。最后,需要设计一个分类器来将不同姿态的动物进行分类和识别,并输出识别结果。
目前,动物姿态识别已经被广泛应用于动物行为研究和养殖管理中。例如,通过对家禽和猪的姿态进行监测,可以提高养殖效率和生产效益;通过对野生动物的姿态进行追踪和分析,可以更好地理解它们的行为和生态环境。
但是,动物姿态识别也面临一些挑战和限制。首先,不同种类的动物具有不同的身体特征和姿态,因此需要针对不同的动物种类进行模型训练和优化。其次,光线、角度、背景等因素也会影响动物图像的质量和识别效果。因此,如何设计高效的算法和优化模型,是动物姿态识别研究中需要解决的难题。
总之,动物姿态识别是一种有前景的技术,它可以帮助我们更好地了解动物的行为和生存环境,同时也有望在动物养殖和保护等领域得到广泛应用。
介绍
这是基于《野外动物姿势》所做的工作。
它包含了动物姿态数据集的介绍、标注文件和代码。
动物姿态数据集是第一个用于通用动物姿势估计的大规模数据集。它包含了来自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()"。 …...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
