demo_system_algorithm/docs/openpose.md

2.0 KiB
Raw Blame History

openpose示例

概述

  • 模型类型openpose 人体姿态估计模型OpenPose 是由卡耐基梅隆大学等机构联合提出的人体姿态估计开源框架多阶段、多分支网络结构常采用“Part Affinity Fields (PAFs)”+关键点热力图的思想来实现多人姿态的检测与关联。
  • 代码来源:https://github.com/Daniil-Osokin/lightweight-human-pose-estimation.pytorch

输入、输出

  • 输入、输出信息

    INPUT:0
    DATA_FORMAT:UINT8
    NUM_OF_DIMENSION:4
    SIZES_OF_DIMENSION:1272 256 1 1 0 0
    QUANT_FORMAT:NONE
    OUTPUT:0
    DATA_FORMAT:FP32
    NUM_OF_DIMENSION:4
    SIZES_OF_DIMENSION:53 32 19 1 0 0
    QUANT_FORMAT:NONE
    OUTPUT:1
    DATA_FORMAT:FP32
    NUM_OF_DIMENSION:4
    SIZES_OF_DIMENSION:53 32 38 1 0 0
    QUANT_FORMAT:NONE
    OUTPUT:2
    DATA_FORMAT:FP32
    NUM_OF_DIMENSION:4
    SIZES_OF_DIMENSION:53 32 19 1 0 0
    QUANT_FORMAT:NONE
    OUTPUT:3
    DATA_FORMAT:FP32
    NUM_OF_DIMENSION:4
    SIZES_OF_DIMENSION:53 32 38 1 0 0
    QUANT_FORMAT:NONE
    

后处理流程

  • 非极大值抑制 从热力图中定位候选关键点的位置(非极大值点)
  • 关键点对齐与骨架候选(候选边)产生 基于两端点的坐标,形成潜在的骨架连线候选
  • 基于 PAf 的连接评分与筛选 筛选出高置信度且两端点未被其它连接“占用”的骨架候选
  • 构建姿态条目 把筛选出的高置信度骨架连接组装成一个或多个完整的姿态条目
  • 多人姿态聚类与去重 在图像中可能出现多个人,需将检测到的骼架分配到不同个体

执行与性能

  • 执行

    python openpose.py
    
  • 推理时间 板卡推理时间约 60.35ms

  • 输出fe的相似度 板卡的输出2和pc端输出2的fe_mean、fe_max分别为 0.00037104913 0.14568077 板卡的输出3和pc端输出3的fe_mean、fe_max分别为 0.00013199929 0.093690544

  • 输出结果 结果图保存路径 ../resource/openpose/result.jpg 本地示例图