zoukankan      html  css  js  c++  java
  • 姿态估计的两个数据集COCO和MPII的认识

     

    COCO      数据集                                                                                               

    MPII数据集 Posetrack数据集
    数据集格式   COCO数据集的标注格式

    0 - r ankle, 1 - r knee, 2 - r hip,3 - l hip,4 - l knee, 5 - l ankle, 6 - l ankle, 7 - l ankle,8 - upper neck, 9 - head top,10 - r wrist,11 - r elbow, 12 - r shoulder, 13 - l shoulder,14 - l elbow, 15 - l wrist

     

    0 - r ankle, 1 - r knee, 2 - r hip,3 - l hip,4 - l knee, 5 - l ankle, 8 - upper neck, 9 - head top,10 - r wrist,11 - r elbow, 12 - r shoulder, 13 - l shoulder,14 - l elbow, 15 - l wrist

    关键点数量 17  16 14
    是否有mask  有   
    评估标准    

    state of art算法

                                                                                                                                                       

         

    目前主流的pose estimation方法:

    pose-track和CPM的异同点:多了一个PAFs

    目前存在的问题与常用解决思路:

    现阶段有哪些大牛活跃在这个领域,并且目前的研究方向是什么:



    COCO数据集keypoint标注:

     {0-nose    1-Leye    2-Reye    3-Lear    4Rear    5-Lsho    6-Rsho    7-Lelb    8-Relb    9-Lwri    10-Rwri    11-Lhip    12-Rhip    13-Lkne    14-Rkne    15-Lank    16-Rank} 

    但是在 openpose 训练时转换成了如下顺序

     {0-'nose', 1-'neck', 2-'Rsho', 3-'Relb', 4-'Rwri',5-'Lsho', 6-'Lelb', 7-'Lwri', 8-'Rhip', 9-'Rkne', 10-'Rank', 11-'Lhip', 12-'Lkne', 13-'Lank', 14-'Leye', 15-'Reye', 16-'Lear', 17-'Rear', 18-'pt19'}

    其中 1-‘neck' 是openpose增加的一个,也能认为是人体中心点。。但是18-'pt19' 是背景类,最后会被剔除

    %%MATLAB code
    s_vec = net.forward(input_data); scores = cat(3, s_vec{2}(:,:,1:end-1), s_vec{1});

    在Keypoint Annotations中,有个flag v 的定义:  v=0 :没标记(x=y=0)  ||  v=1 : 标记了但不可见  ||  v=2 : 标记了且可见

    ↑参考:http://blog.csdn.net/happyhorizion/article/details/77894205



    MPII数据集标注:

      { 0 - r ankle, 1 - r knee, 2 - r hip,3 - l hip,4 - l knee, 5 - l ankle, 6 - pelvis, 7 - thorax,8 - upper neck, 9 - head top,10 - r wrist,11 - r elbow, 12 - r shoulder, 13 - l shoulder,14 - l elbow, 15 - l wrist }

    openpose在训练时,剔除了6 - pelvis(盆骨), 7 - thorax(胸部)两个点,并增加了一个 center 点,共计输出是15个keypoint的heatmap和1个背景(要剔除)。

      对应heatmap中的顺序为:{ 0-'nose', 1-'neck', 2-'Rsho', 3-'Relb', 4-'Rwri',5-'Lsho', 6-'Lelb', 7-'Lwri', 8-'Rhip', 9-'Rkne', 10-'Rank', 11-'Lhip', 12-'Lkne', 13-'Lank', 14-'center' }

    14-'center' 这个点是由 2,3,12,13四个位置坐标取平均得到的!!!!!!!

    else if(np == 43){
        //int MPI_to_ours_1[15] = {9, 8,12,11,10,13,14,15, 2, 1, 0, 3, 4, 5, 7};
        //int MPI_to_ours_2[15] = {9, 8,12,11,10,13,14,15, 2, 1, 0, 3, 4, 5, 6};
        int MPI_to_ours_1[15] = {9, 8,12,11,10,13,14,15, 2, 1, 0, 3, 4, 5, 3};
        int MPI_to_ours_2[15] = {9, 8,12,11,10,13,14,15, 2, 1, 0, 3, 4, 5, 2};
        int MPI_to_ours_3[15] = {9, 8,12,11,10,13,14,15, 2, 1, 0, 3, 4, 5, 13};
        int MPI_to_ours_4[15] = {9, 8,12,11,10,13,14,15, 2, 1, 0, 3, 4, 5, 12};
        jo.joints.resize(np);
        jo.isVisible.resize(np);
    
        for(int i=0;i<15;i++){
    //      jo.joints[i] = (j.joints[MPI_to_ours_1[i]] + j.joints[MPI_to_ours_2[i]]) * 0.5;
          jo.joints[i] = (j.joints[MPI_to_ours_1[i]] + j.joints[MPI_to_ours_2[i]]+j.joints[MPI_to_ours_3[i]] + j.joints[MPI_to_ours_4[i]]) * 0.25;
          if(j.isVisible[MPI_to_ours_1[i]]==2 || j.isVisible[MPI_to_ours_2[i]]==2){
            jo.isVisible[i] = 2;
          }
          else {
            jo.isVisible[i] = j.isVisible[MPI_to_ours_1[i]] && j.isVisible[MPI_to_ours_2[i]];
          }
        }
      }


    center map 是什么:

    center map(绿色)是一个提前生成的高斯函数模板,用来把响应归拢到图像中心。长这样: 

  • 相关阅读:
    厦门航空牵手阿里云打造航空业移动研发中台,研发效率提升50%
    可能是国内第一篇全面解读 Java 现状及趋势的文章
    这样才能正确解锁MaxCompute客户端
    MaxCompute问答整理之10月
    tensorflow入门
    buctoj——合法的出栈顺序
    nyoj299——如何优雅的写矩阵快速幂
    nyoj164——卡特兰数(待填坑)
    nyoj139——康托展开
    字符串练习
  • 原文地址:https://www.cnblogs.com/caffeaoto/p/7793994.html
Copyright © 2011-2022 走看看