YOLOv7+姿态估计Pose+tensort部署加速

YOLOv7-Pose

在这里插入图片描述

实现YOLOv7:可训练的免费套件为实时目标检测设置了最新技术标准

YOLOv7-Pose的姿态估计是基于YOLO-Pose的。关键点标签采用MS COCO 2017数据集。

训练

使用预训练模型yolov7-w6-person.pt进行训练。训练命令如下:

python -m torch.distributed.launch --nproc_per_node 8 --master_port 9527 train.py --data data/coco_kpts.yaml --cfg cfg/yolov7-w6-pose.yaml --weights weights/yolov7-w6-person.pt --batch-size 128 --img 960 --kpt-label --sync-bn --device 0,1,2,3,4,5,6,7 --name yolov7-w6-pose --hyp data/hyp.pose.yaml

部署

  1. 导出ONNX模型

运行以下命令生成onnx模型和引擎模型:

python models/export_onnx.py \--weights weights/yolov7-w6-pose.pt \--img-size 832 \--device 0 \--batch-size 1 \--simplify
  1. 导出TensorRT模型

使用脚本:

python models/export_TRT.py \--onnx weights/yolov7-w6-pose.onnx \--batch-size 1 \--device 1 \--fp16

或者使用trtexec:

trtexec \--onnx=weights/yolov7-w6-pose.onnx \--workspace=4096 \--saveEngine=weights/yolov7-w6-pose-FP16.engine \--fp16

推理

  1. PyTorch模型推理
python detect_multi_backend.py \--weights weights/yolov7-w6-pose.pt \--source data/images \--device 0 \--img-size 832 \--kpt-label
  1. ONNX模型推理
python detect_multi_backend.py \--weights weights/yolov7-w6-pose.onnx \--source data/images \--device 0 \--img-size 832 \--kpt-label
  1. TensorRT模型推理
python detect_multi_backend.py \--weights weights/yolov7-w6-pose.engine \--source data/images \--device 0 \--img-size 832 \--kpt-label

测试

使用yolov7-w6-pose.pt进行测试:

官方YOLOv7-pose和YOLO-Pose代码只在test.py中计算检测mAP。若要计算关键点mAP,需使用COCO API。在此仓库中实现的oks_iou矩阵计算加速了关键点mAP的计算。测试关键点mAP时,oks区域设置为0.6乘以ground truth box的区域。

  1. 测试PyTorch模型
python test_multi_backend.py \--weights weights/yolov7-w6-pose.pt \--data data/coco_kpts.yaml \--img-size 832 \--conf-thres 0.001 \--iou-thres 0.6 \--task val \--device 0 \--kpt-label
  1. 测试ONNX模型
python test_multi_backend.py \--weights weights/yolov7-w6-pose.onnx \--data data/custom_kpts.yaml \--img-size 832 \--conf-thres 0.001 \--iou-thres 0.6 \--task val \--device 0 \--kpt-label
  1. 测试TensorRT模型
python test_multi_backend.py \--weights weights/yolov7-w6-pose-FP16.engine \--data data/coco_kpts.yaml \--img-size 832 \--conf-thres 0.001 \--iou-thres 0.6 \--task val \--device 0 \--kpt-label

INT8校准

python models/export_TRT.py \--onnx weights/yolov7-w6-pose.onnx \

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

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

相关文章

Windows系列:Windows Server 2012 R2 安装VMware Tools的正确姿势(实现物理机和虚拟机文件互传)

Windows Server 2012 R2 安装VMware Tools的正确姿势(实现物理机和虚拟机文件互传) 安装环境安装步骤一. 安装补丁下面进入教程首先打开虚拟机,点击"虚拟机"选项中的"安装VMware Tools"点击确定如果出现下图中的问题,说明虚拟机中缺少更新程序,我们需…

企业真题(泛型、数据结构与集合源码)

二、企业真题 1. Java 的泛型是什么?有什么好处和优点?JDK 不同版本的泛型有什么区别?(软*动力) 泛型,是程序中出现的不确定的类型。 以集合来举例:把一个集合中的内容限制为一个特定的数据类…

Redis 安装

文章目录 第1关:Redis 安装第2关: Redis 启动 第1关:Redis 安装 编程要求 在右侧命令行中在线安装 Redis 服务器软件和客户端软件: 在线安装 Redis(实验环境使用的是 Ubuntu 系统); 测试说明…

iptables——建立linux安全体系

目录 一. 安全技术类型 二. linux防火墙 1. 按保护范围划分: 2. 按实现方式划分: 3. 按网络协议划分: 4. 防火墙原理 三. 防火墙工具——iptables 1. netfilter 中五个勾子函数和报文流向 数据包传输过程: ① .五表四链…

OOM了?物理内存不够了?试试这个方法来提升内存容量,不花钱的

通过增加虚拟内存来提高内存使用 本文解决的实际问题: 当我们物理内存小的时候,会出现OOM,然后服务自动死掉的情况。因为物理内存大小是固定的,有没有其他好的办法来解决呢?这里我们可以适当调整Linux的虚拟内存来协作…

互联网产品经理常用的ChatGPT通用提示词模板

产品规划和设计:请帮助我规划和设计一款互联网产品,包括市场调研、用户需求分析、产品功能设计、产品原型设计等方面的内容,以便我能够更好地满足用户需求并开发出优秀的产品。 产品开发和迭代:请帮助我进行互联网产品的开发和迭…

如何在 vue 项目中创建 svg 组件

在Vue项目中,SVG是一种非常常见的图像形式。与传统的矢量图像不同,SVG可以设置可缩放且清晰度高的图像形式。Vue使得使用SVG组件非常容易,本文将介绍如何在Vue项目中创建SVG组件。 步骤1:创建SVG文件 要创建SVG组件,…

更改Jupyter Notebook 默认存储路径

import osprint(os.path.abspath(.)) 然后打开cmd,输入: jupyter notebook --generate-config 按照路径在本地文件夹中找到那个文件。 然后找到"c.NotebookApp.notebook_dir"这条语句:(直接通过"crtlf"输入关键字找阿 …

vue 使用decimal.js 解决小数相加合计精确度丢失问题

安装依赖 decimal.js npm install --save decimal.js 封装 在utils文件夹下创建decimal.js文件 import { Decimal } from decimal.js export function add (x, y) {if (!x) {x 0}if (!y) {y 0}const xx new Decimal(x)const yy new Decimal(y)return xx.plus(yy).toNumbe…

【哈希】1.两数之和

题目&#xff1a;https://leetcode.cn/problems/two-sum/description/?envTypestudy-plan-v2&envIdtop-100-liked class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map new HashMap<>();for (int i 0; i < nums.l…

mysql常见配置文件参数

1)mysql常用配置文件参数 MySQL的配置文件通常位于安装目录下的 my.cnf 或 my.ini 文件中。在Unix/Linux操作系统上&#xff0c;MySQL配置文件被命名为 my.cnf。在Windows操作系统上&#xff0c;MySQL配置文件被命名为 my.ini。 [mysqld] max_connections&#xff1a;该参数定…

JAVA-每一页PDF转图片

结论&#xff1a;1、iText几乎找不到如何PDF转图片的信息&#xff0c;但能找到获取到PDF里面的图片并保存下来的信息&#xff1b;2、PDF box满大街都是参考代码&#xff08;下面会附上一个作为参考&#xff09;&#xff1b;3、收费的库使用起来更简单&#xff0c;但就是要收费&…

微机原理——定时器学习1

目录 定时类型 8253内部结构框图 8253命令字 六种工作方式及输出波形 计数初值的计算与装入 8253的初始化 定时类型 可编程定时器8253&#xff1a;&#xff08;内部采用的是16位 减法计数器&#xff09; 8253内部结构框图 8253命令字 8253有三个命令字&#xff1a;方式命…

C++11 类的新功能

新的默认成员函数 C11在6个默认成员函数基础上又加了两个:移动构造函数和移动赋值函数 针对移动构造函数和移动赋值运算符重载有一些需要注意的点如下&#xff1a; 小结&#xff1a; &#xff08;1&#xff09; 生成默认移动构造的条件比较严苛&#xff1a;必须是没有实现析…

Hdoop学习笔记(HDP)-Part.07 安装MySQL

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

YOLOv8改进 | 2023 | 给YOLOv8换个RT-DETR的检测头(重塑目标检测前沿技术)

一、本文介绍 本文给大家带来是用最新的RT-DETR模型的检测头去替换YOLOv8中的检测头。RT-DETR号称是打败YOLO的检测模型&#xff0c;其作为一种基于Transformer的检测方法&#xff0c;相较于传统的基于卷积的检测方法&#xff0c;提供了更为全面和深入的特征理解&#xff0c;将…

Java实现学生分数的最小差值

Java实现学生分数的最小差值 01 分类 数组 02 题目 给你一个 下标从 0 开始 的整数数组 nums &#xff0c;其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。 从数组中选出任意 k 名学生的分数&#xff0c;使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 …

【从删库到跑路 | MySQL总结篇】事务详细介绍

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】&#x1f388; 本专栏旨在分享学习MySQL的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 一、事务…

学习TypeScrip3(接口和对象类型)

对象的类型 在typescript中&#xff0c;我们定义对象的方式要用关键字interface&#xff08;接口&#xff09;&#xff0c;我的理解是使用interface来定义一种约束&#xff0c;让数据的结构满足约束的格式。定义方式如下&#xff1a; 使用接口约束的时候不能多一个属性也不能少…

逻辑回归 正则化

正则化 过拟合问题 对于模型&#xff0c;如果一个模型对于数据的偏差很大&#xff0c;不能能够很好的拟合数据的分布&#xff0c;称为欠拟合&#xff0c;或者说这个算法具有高偏差的特性。 如果一个模型虽然可以穿过所有的数据点&#xff0c;但是其图像波动很大&#xff0c;其…