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 
   

原文地址:https://blog.csdn.net/ALiLiLiYa/article/details/134758819

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_35220.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注