端到端的全人体关键点检测:手把手实现从YOLOPose到YOLOWhole

目录

  • 一、搭建yolopose平台
  • 二、迁移训练任务
    • 2.1 任务拓展
      • 数据准备
      • 训练模型
      • 测试训练模型
  • 结论


To-do list:
1、数据集,COCO-whole, Halpe;下载好;
2、模型搭建,先基于yolov8来检测人体姿态,17个点;
3、迁移任务,17个点,把它拓展到133个点;
4、优化133个点的模型;

一、搭建yolopose平台

目标:利用yolov8框架来实现17个点的人体姿态估计;在上一篇博客,我们已经把yolov8搭建出来了;
在原yolov8的基础上下载好相对应的模型,本文下载的是YOLOv8n-pose,在将下载好的模型放入文件夹中,最后在根目录下创建一个执行文件,文件代码如下:

from ultralytics import YOLO
from PIL import Image
import cv2
model = YOLO("yolov8n-pose.pt")  # 选择自己模型位置
model.info()
imgPath = "resource/human1.jpg"#选择自己图片位置
im1 = Image.open(imgPath)
results = model.predict(source=im1, save=True)  # save plotted images

效果展示:
在这里插入图片描述

二、迁移训练任务

从上述内容,可知YOLO是可以做人体姿态估计的,也就是17个点的躯体关键点检测。如何拓展到全人体超过130多个点的关键点检测呢?

全人体关键点范畴:
在这里插入图片描述
COCO wholebody数据集包含了对全体关键点的标注,即 4种检测框 (person box, face box, left-hand box, and right-hand box) 和 133 keypoints (17 for body, 6 for feet, 68 for face and 42 for hands).

2.1 任务拓展

任务:人体框是不变的,只需要把17个点拓展到133个点;

数据准备

以coco wholebody为例子;

COCO whole非常大,每训练一次,可能都需要2-3天,那么是不是每次都需要在整个数据集上训练?
其实,可以从整个大规模的数据集里面构建一个小数据集,称之为miniCOCO;
1、收集miniCOCO
决定将训练集为10000张图片,测试集为1000张图片代码如下:

import json
import time
import shutil
import os
from collections import defaultdict
import json
from pathlib import Pathclass COCO:def __init__(self, annotation_file=None, origin_img_dir=""):"""Constructor of Microsoft COCO helper class for reading and visualizing annotations.:param annotation_file (str): location of annotation file:param image_folder (str): location to the folder that hosts images.:return:"""# load datasetself.origin_dir = origin_img_dirself.dataset, self.anns, self.cats, self.imgs = dict(), dict(), dict(), dict()  # imgToAnns 一个图片对应多个注解(mask) 一个类别对应多个图片self.imgToAnns, self.catToImgs = defaultdict(list), defaultdict(list)if not annotation_file == None:print('loading annotations into memory...')tic = time.time()dataset = json.load(open(annotation_file, 'r'))assert type(dataset) == dict, 'annotation file format {} not supported'.format(type(dataset))print('Done (t={:0.2f}s)'.format(time.time() - tic))self.dataset = datasetself.createIndex()def createIndex(self):# create index    给图片->注解,类别->图片建立索引print('creating index...')anns, cats, imgs = {}, {}, {}imgToAnns, catToImgs = defaultdict(list), defaultdict(list)if 'annotations' in self.dataset:for ann in self.dataset['annotations']:imgToAnns[ann['image_id']].append(ann)anns[ann['id']] = annif 'images' in self.dataset:for img in self.dataset['images']:imgs[img['id']] = imgif 'categories' in self.dataset:for cat in self.dataset['categories']:cats[cat['id']] = catif 'annotations' in self.dataset and 'categories' in self.dataset:for ann in self.dataset['annotations']:catToImgs[ann['category_id']].append(ann['image_id'])print('index created!')# create class membersself.</

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/33397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解RLHF技术

在《LLM对齐“3H原则”》这篇文章中&#xff0c;我们介绍了LLM与人类对齐的“3H”原则&#xff0c;但是这些对齐标准主要是基于人类认知进行设计的&#xff0c;具有一定的主观性。因此&#xff0c;直接通过优化目标来建模这些对齐标准较为困难。本文将介绍基于人类反馈的强化学…

ONLYOFFICE 8.1:全面升级,PDF编辑与本地化加强版

目录 &#x1f4d8; 前言 &#x1f4df; 一、什么是 ONLYOFFICE 桌面编辑器&#xff1f; &#x1f4df; 二、ONLYOFFICE 8.1版本新增了那些特别的实用模块&#xff1f; 2.1. 轻松编辑器 PDF 文件 2.2. 用幻灯片版式快速修改幻灯片 2.3. 无缝切换文档编辑、审阅和查…

RS-485和RS-422通信的3.3V低功耗收发器MAX3483

描述 国产MAX3485外观和丝印 该MAX3483ESA为15kV ESD保护、3.3V、低功耗收发器&#xff0c;用于RS-485和RS-422通信。 每个设备包含一个驱动器和一个接收器。 该MAX3483ESA具有压摆率限制驱动器&#xff0c;可最大限度地降低 EMI 并减少因端接不当电缆引起的反射&#xff0c;从…

system verilog 学习1

1 数据类型 sv 引进了一些新的数据类型&#xff0c;它们具有以下优点 &#xff08;1&#xff09;双状态数据类型&#xff1a;更好的性能&#xff0c;更低的内存消耗 &#xff08;2&#xff09;队列、动态和关联数组&#xff1a;减少内存消耗&#xff0c;自带搜索和分类功能 &a…

C# 使用Vector256写了一个简单的帮助类Vector256Helper

当数据量大的时候用普通代码计算非常耗时&#xff0c;这里简单利用simd加速处理 internal unsafe class Vector256Helper{/// <summary>/// 统计元素个数/// </summary>/// <param name"array"></param>/// <param name"elementToCo…

板凳--------57.Linux/Unix 系统编程手册(下) -- SOCKET : Unix domain

https://blog.51cto.com/u_15567199/5204540 【linux网络编程】容错处理文件 wrap.h、wrap.c_wx623c6c9. // 容错处理 wrap.h #ifndef _WRAP_H_ #define _WRAP_H_#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <error.h> #i…

【BSCP系列第2期】XSS攻击的深度剖析和利用(文末送书)

文章目录 前言一、官方地址二、开始&#xff08;15个&#xff09;1&#xff1a;Lab: DOM XSS in document.write sink using source location.search inside a select element2&#xff1a;Lab: DOM XSS in AngularJS expression with angle brackets and double quotes HTML-e…

北邮《计算机网络》MAC子层笔记

文章目录 缩写复习MAC层所在层次动态分配信道算法们的简要介绍信道的五条基本假设多路访问的协议&#xff08;理论上的协议&#xff09;aloha协议CSMA协议其他冲突避免协议无线局域网协议 &#xff0c;MACA 以太网协议802.3&#xff08;实际协议&#xff0c;刚刚是理论&#xf…

小白学python(第一天)

在有了C语言的基础后&#xff0c;我们学python会变得相当容易&#xff0c;毕竟c生万物&#xff0c;废话不多说&#xff0c;直接进入我们的正题 课前准备 Python环境的搭建以及Pycharm的安装 python环境安装 Download Python | Python.org 因为我的电脑是windows&#xff0c;…

C++精解【6】

文章目录 eigenMatrix基础例编译时固定尺寸运行指定大小 OpenCV概述 eigen Matrix 基础 所有矩阵和向量都是Matrix模板类的对象。向量也是矩阵&#xff0c;单行或单列。Matrix模板类6个参数&#xff0c;常用就3个参数&#xff0c;其它3个参数有默认值。 Matrix<typename…

使用鸿蒙HarmonyOs NEXT 开发 快速开发 简单的购物车页面

目录 资源准备&#xff1a;需要准备三张照片&#xff1a;商品图、向下图标、金钱图标 1.显示效果&#xff1a; 2.源码&#xff1a; 资源准备&#xff1a;需要准备三张照片&#xff1a;商品图、向下图标、金钱图标 1.显示效果&#xff1a; 定义了一个购物车页面的布局&#x…

6. Revit API UI: PreviewControl(预览控件)

6. Revit API UI: PreviewControl&#xff08;预览&#xff09; PreviewControl 有时我们需要一个预览功能&#xff0c;而Revit也提供了一个PreviewControl类来帮助我们实现这个功能。 从类的继承关系来看&#xff0c;PreviewControl就是一个用户自定义控件&#xff0c;它就…

accelerate 笔记:进程管理

在使用分布式训练系统时&#xff0c;管理各个进程在 GPU 上的执行时间和顺序非常重要。一些进程会比其他进程更快完成&#xff0c;有些进程在其他进程未完成之前不应该开始执行 1 每台机器进行一次 accelerator.on_local_main_process def do_my_thing():do_thing_once_per_s…

外贸行业 - 收汇日期

“收汇日期”指的是外贸业务中&#xff0c;出口方从进口方收到货款的具体日期。在外贸交易中&#xff0c;特别是使用信用证&#xff08;Letter of Credit, L/C&#xff09;、电汇&#xff08;Telegraphic Transfer, T/T&#xff09;、付款交单&#xff08;Documents against Pa…

HTML【重点标签】

一、列表标签 1.无序列表 父级别&#xff1a; 无序列表的标题 ----表示无序列表的整体&#xff0c;用于包裹li标签 子级别&#xff1a; 无序列表一行的内容 ----表示无序列表的每一项&#xff0c;用于包含一行的内容 语义&#xff1a;构建没有顺序的列表 特点&#xff1a;列…

Linux 中经常见到的 gz 文件

在linux的使用中&#xff0c;.gz格式的压缩文件非常常见&#xff0c;下面整理一下关于.gz格式的压缩和解压缩。 解压缩gz文件 通过gzip解压缩 gzip -d myfile.gz执行该命令后&#xff0c;文件被解压到当前目录&#xff0c;原gz文件被删除。 如果你不想删除源文件&#xff0c…

基于 RGB的热成像无人机树冠数据集(目标检测)

亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 摘要&a…

基于PaddleDetection的电路板瑕疵检测

文章目录 1. 数据集与框架介绍2. 任务详情3. Cascade R-CNN简介4. 数据分析各类别样本的数量真实框的宽高比真实框在原图的大小比例 5. 相关配置数据增强数据集路径和评估指标学习率和优化器配置预训练CascadeRCNN 的配置日志记录 6. 训练预测7. 参考链接 1. 数据集与框架介绍 …

问题:以下哪个不是报名“天天特价“活动必须具有的条件( ) #其他#其他#媒体

问题&#xff1a;以下哪个不是报名"天天特价"活动必须具有的条件( ) A、店铺信誉达到一钻 B、开通淘金币抵扣 C、宝贝月销量达到10个 D、店铺同类产品要达到10个以上 参考答案如图所示