tensorflow——openpose代码和原理分析

做openpose已经做了两个月了,精度和速度都还没有提上去,但是还是要总结一下。

人体姿态估计(pose estimation)的目标

   实时地对图片中每个人的姿态进行精准的估计。总结起来,就是实时的多人姿态精准估计

现状

    实时的算法精度不高,精度高的算法慢的要死。

    openpose——比较快,比较准

     cpn——慢,准(pass,在实际场景中,慢等于没用)

     poseNet——快,不准(pass,不准更没啥用了)

 openpose的原理

    输入一张图片,经过一个backbone(比如vgg,resnet,mobilenet),在经过6个stage,每个stage有2个branch,一个用来检测heatmap,一个用来检测vectmap。有了heatmap和vectmap就可以知道图片中所有的关键点,但是不知道这些关键点都是哪个人的,PAFs把这些点对应到每个人身上。end

openpose的训练

   数据集:coco,MPII,AIC,PoseTrack

    硬件要求:至少4  个 gpu以上(GPU不充裕的,可以直接用原作者公布的caffe模型,我训练了俩月精度都没赶上他们)

openpose的代码(tensorflow版本)

    这俩月学到了啥,就是代码能力吧。之前就是只会训练MNIST,我就以为自己会深度学习了。源码比这个难100倍,不过,道理是相同的。我听过那么多道理,依然写不好代码,想哭......

(1)下载数据集

1.coco数据集的标注是什么形式

2.coco数据集API使用 

3.json文件的读和写      

(2)数据处理

1.关键点从COCO的格式转为openpose的格式

2. 生成heatmap

3.生成vectmap

(3)多线程数据增强

1.多线程

2.数据增强

(4)dataflow数据读入

1.入队和出队

(5)网络定义

1.网络基础函数的定义

2.网络定义

3.loss函数

(6)多GPU训练

1.多GPU训练的流程

(7)模型保存,恢复以及可视化

1.模型和日志的保存

2.训练的可视化

3.模型的恢复

4.模型挂载在服务器上训练

(8)模型转freeze pb

1.模型的发布

(9)数据后处理

(10)模型测试+opencv显示

 

整体流程就这么多。。。。

写完流程我就不想写细节了。。。

随后再补
--------------------- 
作者:饿二饿二饿 
来源:CSDN 
原文:https://blog.csdn.net/eereere/article/details/81151756 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(机器学习)