紀錄 Spatial Temporal Graph Convolutional Networks(ST-GCN) 的架設過程,ST-GCN是一種深度學習網路,將GCN應用到基於骨架的人體動作識別方法。
原論文: Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition
GitHub: yysijie/st-gcn: Spatial Temporal Graph Convolutional Networks (ST-GCN) for Skeleton-Based Action Recognition in PyTorch
st-gcn 是用 python 3 運行,雖然原作者的指令都是用 python
,但筆者的 python 預設為 2,所以以下皆會替換成 python3
的指令。
Clone
在想要的目錄下,clone該專案
1 | git clone https://github.com/yysijie/st-gcn.git |
Prerequisites
PyTorch(0.4.0)
1 | pip3 install torch==0.4.0 -f https://download.pytorch.org/whl/cu80/stable |
也要安裝 torchvision
1 | pip3 install torchvision -f https://download.pytorch.org/whl/cu80/stable |
OpenPose
請參考 OpenPose 安裝紀錄 (github)
FFmpeg
失敗的安裝方式
1 | sudo apt-get install ffmpeg |
以此方法安裝的 FFmpeg ,在測試 demo 時會有以下錯誤:
1 | ValueError: No way to determine width or height from video. Need `-s` in `inputdict`. Consult documentation on I/O. |
可行的安裝方式
改為從 source code 編譯的方式安裝 FFmpeg[1] :
以下的安裝FFmpeg的部分,筆者會另外開一個資料夾,在裡面進行編譯與安裝的步驟,因為會下載蠻多東西的。如 ~/ffmpeg_sources/
先移除已存在的 packages
1 | sudo apt -y remove ffmpeg x264 libav-tools libvpx-dev libx264-dev |
安裝依賴庫
1 | sudo apt-get update |
Install Yasm
1 | cd ~/ffmpeg_sources |
Install nasm
1 | cd ~/ffmpeg_sources |
libx264
1 | sudo apt-get install libx264-dev |
libx265
1 | sudo apt-get install libx265-dev |
libfdk-aac
1 | sudo apt-get install libfdk-aac-dev |
libmp3lame
1 | sudo apt-get install libmp3lame-dev |
libopus
1 | sudo apt-get install libopus-dev |
libvpx
1 | sudo apt-get install libvpx-dev |
筆者在執行稍候的FFmpeg指令時,會出現以下錯誤:
1 | ERROR: libass not found using pkg-config |
所以需要安裝 libass[2] [3] :
FreeType-2.10.0 下載並解壓縮後,進到解壓縮後的資料夾,執行以下指令
1 | ./configure --prefix=/usr --enable-freetype-config --disable-static && make |
FriBidi-1.0.5 下載並解壓縮後,進到解壓縮後的資料夾,執行以下指令
1 | ./configure --prefix=/usr --disable-docs && make |
Fontconfig-2.13.1 下載並解壓縮後,進到解壓縮後的資料夾,執行以下指令
1 | ./configure --prefix=/usr -disable-docs && make && sudo make install |
安裝 libass
1 | git clone https://github.com/libass/libass.git |
設定環境變數
1 | export PKG_CONFIG_PATH=/usr/local/ass/lib/pkgconfig:$PKG_CONFIG_PATH |
1 | cd ~/ffmpeg_sources |
其他 Python liberties
1 | cd st-gcn |
安裝
不知道為什麼 python setup.py install
會有權限問題,各位在安裝時可以試試看不加 sudo
能不能安裝
1 | cd torchlight; sudo python3 setup.py install; cd .. |
下載預訓練模型權重
1 | bash tools/get_models.sh |
測試demo
1 | python3 main.py demo --openpose <path to openpose build directory> [--video <path to your video> --device <gpu0> <gpu1>] |
範例:
1 | python3 main.py demo --openpose /data/paperProjects/openpose/build --video /data/paperProjects/st-gcn/resource/media/ta_chi.mp4 --device 0 |