最近有個小項目要搞姿態識別,簡單調研了一下2D的識別:
基本上是下面幾種
- (單人)single person
- 直接關鍵點回歸
- heatmap,感覺其實就是把一個點的標簽弄成一個高斯分布
- (多人)multi person
- 自頂向下:先把人圈出來,再針對單個人做檢測
- 自底向上:把所有關鍵點弄出來,再聚合適配到個人
這個不是本文重點,筆者也還沒吃透,可以看這篇綜述:Deep Learning-Based Human Pose Estimation: A Survey
作者試過幾個模型:openpose
,alpahpose
,mediapipe
,使用體驗如下:
- openpose流行度很高,效果也不錯,就是有點慢,fps比較低
- alphapose效果和速度都很滿意,比較重量級
- mediapipe效果速度都很好,使用體驗超級棒,封裝太好了
作者打算從頭到尾完整地訓練一個自己地數據集合,並且要求速度為第一位,精度達到要求即可,經過簡單調研,上面幾個雖然很不錯,但是系統學習下來成本可能比較高,所以后面再弄,打算從2018年的這篇lightweight openpose
開始學習,看一下這個introduction就知道為啥先弄這個了:
速度和精度都不錯,關鍵是論文才5頁,下面是論文和代碼鏈接,體量都不大,正好適合練手:
- 論文地址:https://arxiv.org/pdf/1811.12004.pdf
- Pytorch實現github主頁:https://github.com/Daniil-Osokin/lightweight-human-pose-estimation.pytorch
環境配置
requirement.txt內容如下:
torch>=0.4.1
torchvision>=0.2.1
pycocotools==2.0.0
opencv-python>=3.4.0.14
numpy>=1.14.0
首先配置pytorch環境,按照pytorch官網即可,然后安裝opencv-python
:
pip install opencv-python
有一個包pycocotools==2.0.0
,死活裝不上,
參考了兩個博客:
解決方案如第一篇博客的第一種方法,直接下載對應版本的.whl文件,下載鏈接在第二篇博客里面,從清華鏡像搜索下載也行,然后運行
pip install pycocotools_windows-2.0-cp37-cp37m-win_amd64.whl
注:如果采用第一篇博客所述第二種方法,直接安裝一個visual studio,應該也是可以的,只是比較麻煩;如果采用所述第三種方法,這時候bug就來了,采用Microsoft Visual C++ Build Tools來解決貌似是不錯的解決方式,但是每次安裝到一般就提示安裝包錯誤什么的,換了幾個博客推薦的下載都不行,放棄此方法,采用第一種或第二種即可。
測試python的demo
下載作者訓練好的checkpoint
:
配置好環境之后,運行如下命令應該就會打開一個攝像頭,實時檢測:
python demo.py --checkpoint-path checkpoint_iter_370000.pth --video 0
成功運行!有問題的小伙伴可以關注留言交流哈~