当前位置: 首页 > news >正文

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

YOLOv7-Pose

YOLOv7是一种高效的目标检测算法,用于实时物体检测。姿态估计Pose是一种用于识别和跟踪人体关键点的技术。TensorRT是一个针对深度学习推理任务进行加速的高性能推理引擎。

将YOLOv7和姿态估计Pose与TensorRT结合可以实现快速而准确的目标检测和姿态估计任务。首先,使用YOLOv7进行目标检测,它具有高效的网络结构和多尺度特征融合机制,能够在保持准确性的同时提高推理速度。然后,利用得到的目标框信息,将其输入到Pose模型中,进行姿态估计。Pose模型通过分析人体关键点来确定人体的姿态,例如头部、手臂、腿部等。

为了进一步提升推理速度,可以使用TensorRT进行加速。TensorRT利用深度学习模型中的并行计算、内存优化和精度调整等技术,对模型进行优化和推理加速。通过将YOLOv7和Pose模型转换为TensorRT可执行文件,可以充分利用GPU的计算能力,实现更快的推理速度。

总之,通过将YOLOv7和姿态估计Pose与TensorRT结合,可以实现高效的目标检测和姿态估计任务。这种部署加速方案不仅提高了推理速度,还保持了较高的准确性,适用于实时应用场景,如视频监控、人体行为分析等
在这里插入图片描述

实现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.lryc.cn/news/251625.html

相关文章:

  • Java数据结构 之 包装类简单认识泛类
  • 人工智能 - 人脸识别:发展历史、技术全解与实战
  • 多元排列熵 Multivariate Permutation Entropy
  • Windows安装MySQL8.2
  • Windows下安全认证机制
  • (学习笔记)Xposed模块编写(一)
  • SSM框架(五):Maven进阶
  • 【计算机视觉】基于OpenCV计算机视觉的摄像头测距技术设计与实现
  • Java项目实战《苍穹外卖》 四、Swagger接口文档
  • 深度学习——第03章 Python程序设计语言(3.1 Python语言基础)
  • 【人工智能Ⅰ】实验6:回归预测实验
  • 前端下载文件的方法-blob下载
  • zookeeper+kafka+ELK+filebeat集群
  • 【LangChain实战】开源模型学习(2)-ChatGLM3
  • Python编程技巧 – 迭代器(Iterator)
  • C语言练习题
  • 常见的AI安全风险(数据投毒、后门攻击、对抗样本攻击、模型窃取攻击等)
  • flutter开发实战-为ListView去除Android滑动波纹
  • 牛客在线编程(SQL大厂面试真题)
  • ubuntu下快速搭建docker环境训练yolov5数据集
  • SpringMVC常用注解和用法总结
  • webpack如何处理css
  • IELTS学习笔记_grammar_新东方
  • 【计算机组成原理】存储器知识
  • vscode配置代码片段
  • vite脚手架,手写实现配置动态生成路由
  • 解决浏览器缓存问题
  • 【数据中台】开源项目(2)-Davinci可视应用平台
  • Java实现简单飞翔小鸟游戏
  • numpy实现神经网络