1. 程式人生 > >tensorflow——openpose程式碼和原理分析

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!