文章目录

  • 1. 预训练模型
  • 2. 测试代码
  • 3. 运行代码
  • 4. 问题

上文搭建了YOLO7开发环境,并进行了物体定位测试。参见:YOLO7环境搭建、代码测试。本文将介绍如何使用YOLO7进行姿势识别。

1. 预训练模型

下载YOLO7姿势识别预训练模型(点击下载),将下载的yolov7-w6-pose.pt放到YOLO7项目根目录下。

2. 测试代码

在项目跟目录下,新建文件pos_reg.py,并输入如下代码:

# 姿势识别# 导入类库
import matplotlib.pyplot as plt
import torch
import cv2
from torchvision import transforms
import numpy as np
from utils.datasets import letterbox
from utils.general import non_max_suppression_kpt
from utils.plots import output_to_keypoint, plot_skeleton_kpts# 加载模型
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
weigths = torch.load('yolov7-w6-pose.pt')
model = weigths['model']
model = model.half().to(device)
_ = model.eval()# 读取图片
image = cv2.imread('./person.jpg')
image = letterbox(image, 960, stride=64, auto=True)[0]
image_ = image.copy()
image = transforms.ToTensor()(image)
image = torch.tensor(np.array([image.numpy()]))
image = image.to(device)
image = image.half()# 姿势识别
output, _ = model(image)# 输出结果
output = non_max_suppression_kpt(output, 0.25, 0.65, nc=model.yaml['nc'], nkpt=model.yaml['nkpt'], kpt_label=True)
output = output_to_keypoint(output)
nimg = image[0].permute(1, 2, 0) * 255
nimg = nimg.cpu().numpy().astype(np.uint8)
nimg = cv2.cvtColor(nimg, cv2.COLOR_RGB2BGR)
for idx in range(output.shape[0]):plot_skeleton_kpts(nimg, output[idx, 7:].T, 3)# 保存结果
cv2.imwrite("pos_reg.jpg",nimg)

3. 运行代码

找一张图片放到项目根目录下(示例图片下载),命名为person.jpg。打开并运行pos_reg.py,运行完成后会输出pos_reg.jpg,即姿势识别后的图片。

4. 问题

如果提示错误:RuntimeError: Can’t call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.,则需修改utils/plots.py的442行和443行,将将cpu().numpy()修改为cpu().detach().numpy():

def output_to_keypoint(output):# Convert model output to target format [batch_id, class_id, x, y, w, h, conf]targets = []for i, o in enumerate(output):kpts = o[:,6:]o = o[:,:6]# 将cpu().numpy()修改为cpu().detach().numpy()for index, (*box, conf, cls) in enumerate(o.cpu().detach().numpy()): targets.append([i, cls, *list(*xyxy2xywh(np.array(box)[None])), conf, *list(kpts.cpu().detach().numpy()[index])])return np.array(targets)

YOLO7 姿势识别实例相关推荐

  1. 基于openpose的用户姿势识别

    基于openpose数据的用户姿势识别 继续上一篇的github项目,继续将他修改成基于openpose数据集的网络结构. 1. 神经网络复习 为了方便读懂神经网络的框架代码和后续的网络按需修改,在这 ...

  2. 在成人影片里做17种姿势识别?大佬在线求助:训练集不够用!

    点击上方"迈微AI研习社",选择"星标★"公众号 重磅干货,第一时间送达 转载自:新智元 后台回复"加群"进入-> CV 微信技术交流 ...

  3. 【计算机视觉40例】案例26:姿势识别

    [导读]本文是专栏<计算机视觉40例简介>的第26个案例<姿势识别>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenCV-Python)> ...

  4. PHP验证码识别实例

    PHP验证码识别实例 PHP验证码识别实例,识别的过程包括对图像的二值化.降噪.补偿.切割.倾斜矫正.建库.匹配,最后会提供实例代码,能够直接运行识别. 简述 要识别的验证码相对比较简单,没有粘连字符 ...

  5. 【卷积神经网络】CNN详解以及猫狗识别实例

    文章目录 一.卷积神经网络(CNN)介绍 1.1 整体结构 1.2 说明 1.3 特点 1.4 应用领域 二.配置实验环境 三.猫狗识别实例 3.1 准备数据集 3.2 图片分类 3.3 网络模型搭建 ...

  6. 痞子衡嵌入式:在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺...

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺. 恩智浦 MCU SE 团队近期一直在加班加点赶 SBL 项目 ...

  7. EmguCV OCR识别实例演示与代码--Tesseract数字识别

    本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍EmguCV OCR识别实例演示与代码--Tesseract数字识别! EmguCV中的OCR识别示例代码可以在安装目录D:\Em ...

  8. python识别手写文字_Python3实现简单可学习的手写体识别(实例讲解)

    1.前言 版本:Python3.6.1 + PyQt5 + SQL Server 2012 以前一直觉得,机器学习.手写体识别这种程序都是很高大上很难的,直到偶然看到了这个视频,听了老师讲的思路后,瞬 ...

  9. 韩服 永恒之塔 验证码识别实例测试[非商业用途]

    韩服 永恒之塔 验证码识别实例 韩服 永恒之塔外挂 过验证码必备工具 外挂必用 永恒之塔 验证码识别率90%以上

  10. Windows 入门 AI 视觉处理 --- 搭建姿势识别应用 之 利用NVIDIA Maxine识别人体姿势

    随着AI技术的发展, 数字内容创建业务也变得越来越火热.人脸美化,身材修图,虚拟姿势和背景等功能也让我们的照片视频等数字内容越来越丰富.而在这些功能背后,离不开姿势识别,人脸特征点识别,虚拟背景,现实 ...

最新文章

  1. iOS进阶之类扩展(Extension)(8)
  2. debug.keystore文件不存在解决办法
  3. PyQt5:窗口的基本功能
  4. 微架构设计:微博计数器的设计
  5. 用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
  6. D-Link service.cgi远程命令执行漏洞复现
  7. 用html标记语言编写一个简单的网页代码,一个简单的网页设计代码
  8. python程序设计实训报告-Python编程实践(1)
  9. 麻省理工18年春软件构造课程阅读15“相等”
  10. matlab偏微分方程工具箱应用简介,MATLAB工具箱简介
  11. CREO:CREO软件之零件【模型】曲面之填充曲面、拉伸曲面、旋转曲面的简介及其使用方法(图文教程)之详细攻略
  12. log4j2配置详解及自定义Appender
  13. 二维数组传参(二维数组作为函数参数)
  14. 在ARM开发板上安装OpenCV4.5.1
  15. GNU和LINUX到底怎么个发音?
  16. linux用shell奇数打印星号,shell 打印偶数行-奇数行 ,打印行号
  17. 自建CA给内部网站颁发SSL证书
  18. Android开源框架PowerfulViewLibrary——PowerfulEditText的介绍和源码解析
  19. 算法设计与分析: 4-3 磁带最优存储问题
  20. 【经典论文】ResNeXt

热门文章

  1. python 取数组最后一个_在numpy数组中查找最后一个值
  2. 2022年Web前端开发流程和学习路线
  3. mac制作u盘启动盘
  4. 病毒入侵:全靠分布式 Gossip 协议
  5. 斯坦福大学公开课IOS 7学习笔记 (1)
  6. 个推消息推送SDK通知栏铃声功能解析及使用攻略
  7. pageadmin CMS网站建设教程:栏目单页内容如何修改
  8. java替换word空格,java替换word 2007字符串
  9. DRM in Android
  10. 革文B2B行业洞察:增长/存亡,中国医疗加速器第三方维保市场迷局