• 人体姿态估计


    人体姿态估计

    人体姿态估计(Human Pose Detection)是计算机视觉中的一个重要分支,应用范围宽广,比如在自动驾驶行业进行街景中行人的姿态检测、动作预测;在安防领域的行人再识别问题,特殊场景的特定动作监控;影视产业的电影特效等。

    Openpose是卡内基梅隆大学提出的一种人体姿态检测模型,在github上有比较完整的实现Openpose on github。它是第一个基于深度学习的实时多人2D姿态估计方法,模型效果很好,鲁棒性较高,但网络较深,算法复杂度很高。Openpose提供了开源的caffe模型,在i7机器上,用caffe进行cpu前向推理测试,单帧图像耗时约3s+。而使用MLU,同样的网络推理速度可以得到很大提升,在mlu100上单帧图像推理耗时约60+ms。通过CNStream视频处理框架,可以较方便地利用寒武纪MLU和软件栈资源,进行一个完整的姿态检测App开发。本文主要介绍如何在CNStream中进行Openpose的Demo开发。

    1. Demo的整体需求

    Demo的目标是利用openpose模型进行人体骨骼关节点检测,针对输入视频,检测视频中每一帧中的人体骨骼关键点,匹配连接并绘制到原图后重新输出视频。

    Demo开发使用18点表示的人体骨架图:

     

    对应的人体关键点Map表示:

    POSE_18_BODY_PARTS {

      {0,  "Nose"},

      {1,  "Neck"},

      {2,  "RShoulder"},

      {3,  "RElbow"},

      {4,  "RWrist"},

      {5,  "LShoulder"},

      {6,  "LElbow"},

      {7,  "LWrist"},

      {8,  "RHip"},

      {9,  "RKnee"},

      {10, "RAnkle"},

      {11, "LHip"},

      {12, "LKnee"},

      {13, "LAnkle"},

      {14, "REye"},

      {15, "LEye"},

      {16, "REar"},

      {17, "LEar"}};

    2. 开发步骤

    准备工作:

    利用cambricon caffe提供的一系列工具,转换openpose提供的caffe原生模型为cambricon离线模型。

    整个Demo运行过程拆解开,大致包括:

    (1) 图片/视频解码

    (2) 图像颜色空间转换,并针对推理进行图像数据前处理(整个操作简称前处理)

    (3) 进行网络推理过程

    (4) 解析网络输出,筛选检测到的关节点,匹配连接有效关节点对,在原图像绘制(整个操作简称后处理)

    (5) 重新编码图像为视频

    基于CNStream进行开发,可以看作组合三个功能插件搭建整条pipeline的过程:

    (1) 利用DataSource插件实现图片的解码,或视频的解析解码过程,该功能插件输入为图片/视频路径,输出为NV12格式的图像数据;

    (2) 推理插件,推理插件接收DataSource插件的输入后,首先进行前处理,包括图像颜色空间转换(NV12->BGR)和减均值归一化等,推理后的数据经过后处理过程后输出;

    (3) 编码插件,将绘制了骨骼关键点的RGB图像序列重新编码输出为视频

    CNStream中提供了满足基本需求的DataSource插件、Inference插件和Encode插件,Demo开发主要需要编写网络的前处理、后处理方法,并将所有插件通过cnstream的配置方式,连接为完整的pipeline(实际开发中可能根据自己的需求定制化开发部分插件)。

    3. 最终的Demo输出效果:

    针对单人姿态检测,收集了一系列交警手势信号图进行展示:

      

    针对多人姿态检测,对多人舞蹈视频处理展示:

     

     可以看出,单人常规姿态检测可以说非常准确;在多人姿态检测绘制结果上,某些帧出现关节点对匹配错误出现的误连,但整体效果还不错。    

  • 相关阅读:
    并行计算上机代码
    BZOJ 5170: Fable
    ANTLR4 实验总结
    ANTLR4将BF翻译成CPP
    BF语言学习
    ANTLR4将JSON翻译成XML
    ANTLR4加载csv数据
    语法分析树监听器和访问器
    数据库数据类型总结
    java介绍
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12996295.html
Copyright © 2020-2023  润新知