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