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

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

YOLOv7-Pose


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


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


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


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

e5e89a919c074bd6bd08a55021af31cf.png

实现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 \
相关文章
|
7月前
|
算法 固态存储 计算机视觉
Focaler-IoU开源 | 高于SIoU+关注困难样本,让YOLOv5再涨1.9%,YOLOv8再涨点0.3%
Focaler-IoU开源 | 高于SIoU+关注困难样本,让YOLOv5再涨1.9%,YOLOv8再涨点0.3%
257 0
|
7月前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
5月前
|
机器学习/深度学习 计算机视觉
YOLOv10实战:红外小目标实战 | 多头检测器提升小目标检测精度
本文改进: 在进行目标检测时,小目标会出现漏检或检测效果不佳等问题。YOLOv10有3个检测头,能够多尺度对目标进行检测,但对微小目标检测可能存在检测能力不佳的现象,因此添加一个微小物体的检测头,能够大量涨点,map提升明显; 多头检测器提升小目标检测精度,1)mAP50从0.666提升至0.677
1024 3
|
6月前
|
机器学习/深度学习 人工智能 编解码
Pixel Transformer:用像素代替补丁可以提升图像分类精度
**Pixel Transformer** 挑战了ViT的16×16像素块范式,将每个像素作为独立令牌,消除局部偏置。在多种任务中,包括图像分类和生成,性能显著提升,尤其是在CIFAR-100和ImageNet上。通过单像素处理,模型能捕获更精细细节,增强泛化能力。尽管计算复杂性增加,但研究表明这种方法有潜力推动视觉模型和跨模态学习的发展。[[https://avoid.overfit.cn/post/558881d4b25b4e9e944806441eaf887a]]
117 6
|
7月前
|
传感器 编解码 自动驾驶
即插即用 | Lite-FPN让CenterNet系列再涨4个点(3D检测也适用)
即插即用 | Lite-FPN让CenterNet系列再涨4个点(3D检测也适用)
241 0
|
7月前
|
机器学习/深度学习 数据可视化 网络协议
【论文精读】ECCV2020 - 带有圆平滑标签的定向目标检测
【论文精读】ECCV2020 - 带有圆平滑标签的定向目标检测
|
机器学习/深度学习 Ubuntu 机器人
【D435i深度相机YOLO V5结合实现目标检测】
【D435i深度相机YOLO V5结合实现目标检测】
1505 0
|
存储 机器学习/深度学习 人工智能
YOLOv5永不缺席 | YOLO-Pose带来实时性高且易部署的姿态估计模型!!!
YOLOv5永不缺席 | YOLO-Pose带来实时性高且易部署的姿态估计模型!!!
395 0
|
算法 计算机视觉
目标检测系列 | 无NMS的端到端目标检测模型,超越OneNet,FCOS等SOTA!(一)
目标检测系列 | 无NMS的端到端目标检测模型,超越OneNet,FCOS等SOTA!(一)
322 0
|
计算机视觉 异构计算
目标检测系列 | 无NMS的端到端目标检测模型,超越OneNet,FCOS等SOTA!(二)
目标检测系列 | 无NMS的端到端目标检测模型,超越OneNet,FCOS等SOTA!(二)
161 0

相关实验场景

更多
下一篇
DataWorks