• 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

    部署

    1. 导出ONNX模型

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

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

    使用脚本:

    python models/export_TRT.py \
        --onnx weights/yolov7-w6-pose.onnx \
        --batch-size 1 \
        --device 1 \
        --fp16
    
    • 1
    • 2
    • 3
    • 4
    • 5

    或者使用trtexec:

    trtexec \
        --onnx=weights/yolov7-w6-pose.onnx \
        --workspace=4096 \
        --saveEngine=weights/yolov7-w6-pose-FP16.engine \
        --fp16
    
    • 1
    • 2
    • 3
    • 4
    • 5

    推理

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

    测试

    使用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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    INT8校准

    python models/export_TRT.py \
        --onnx weights/yolov7-w6-pose.onnx \
       
    
    • 1
    • 2
    • 3
  • 相关阅读:
    EM@从整数指数幂到实指数幂
    蓝牙AOA定位那点事系列090:第一次转载伙伴的文章客观理性成熟的观点:UWB定位和蓝牙AOA比较
    MySQL视图
    【ARM Coresight 系列文章 3.3 - ARM Coresight SWD 协议详细介绍】
    推荐系统-模型:Feed 流推荐
    Flink学习17:算子介绍flatMap
    24小时“政变”之后,OpenAI CEO或将回归
    【算法-字符串1】反转字符串 + 反转字符串2
    金融业信贷风控算法7-分类场景之决策树和随机森林
    net-java-php-python-校园二手图书销售网站计算机毕业设计程序
  • 原文地址:https://blog.csdn.net/ALiLiLiYa/article/details/134758819