ST-GCN 架設
紀錄 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該專案
git clone https://github.com/yysijie/st-gcn.git
Prerequisites
PyTorch(0.4.0)
pip3 install torch==0.4.0 -f https://download.pytorch.org/whl/cu80/stable
也要安裝 torchvision
pip3 install torchvision -f https://download.pytorch.org/whl/cu80/stable
OpenPose
請參考 OpenPose 安裝紀錄 (github)
FFmpeg
失敗的安裝方式
sudo apt-get install ffmpeg
以此方法安裝的 FFmpeg ,在測試 demo 時會有以下錯誤:
ValueError: No way to determine width or height from video. Need `-s` in `inputdict`. Consult documentation on I/O.
可行的安裝方式
改為從 source code 編譯的方式安裝 FFmpeg1 :
以下的安裝FFmpeg的部分,筆者會另外開一個資料夾,在裡面進行編譯與安裝的步驟,因為會下載蠻多東西的。如 ~/ffmpeg_sources/
先移除已存在的 packages
sudo apt -y remove ffmpeg x264 libav-tools libvpx-dev libx264-dev
安裝依賴庫
sudo apt-get update
sudo apt-get -y install build-essential checkinstall git libfaac-dev libgpac-dev \
libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev \
librtmp-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev \
libx11-dev libxfixes-dev pkg-config texi2html yasm zlib1g-dev
Install Yasm
cd ~/ffmpeg_sources
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
Install nasm
cd ~/ffmpeg_sources
wget http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.bz2
tar xjvf nasm-2.13.01.tar.bz2
cd nasm-2.13.01
./autogen.sh
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
PATH="$HOME/bin:$PATH" make
make install
libx264
sudo apt-get install libx264-dev
libx265
sudo apt-get install libx265-dev
libfdk-aac
sudo apt-get install libfdk-aac-dev
libmp3lame
sudo apt-get install libmp3lame-dev
libopus
sudo apt-get install libopus-dev
libvpx
sudo apt-get install libvpx-dev
筆者在執行稍候的FFmpeg指令時,會出現以下錯誤:
ERROR: libass not found using pkg-config
所以需要安裝 libass2 3 :
FreeType-2.10.0 下載並解壓縮後,進到解壓縮後的資料夾,執行以下指令
./configure --prefix=/usr --enable-freetype-config --disable-static && make
FriBidi-1.0.5 下載並解壓縮後,進到解壓縮後的資料夾,執行以下指令
./configure --prefix=/usr --disable-docs && make
Fontconfig-2.13.1 下載並解壓縮後,進到解壓縮後的資料夾,執行以下指令
./configure --prefix=/usr -disable-docs && make && sudo make install
安裝 libass
git clone https://github.com/libass/libass.git
cd libass
sh autogen.sh
./configure --prefix=/usr --disable-static && make
sudo make install
設定環境變數
export PKG_CONFIG_PATH=/usr/local/ass/lib/pkgconfig:$PKG_CONFIG_PATH
cd ~/ffmpeg_sources
git clone --depth 1 https://git.ffmpeg.org/ffmpeg.git
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-librtmp \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree \
--enable-version3 \
--enable-libxcb
PATH="$HOME/bin:$PATH" make
make install
hash -r
其他 Python liberties
cd st-gcn
pip3 install -r requirements.txt
安裝
不知道為什麼 python setup.py install
會有權限問題,各位在安裝時可以試試看不加 sudo
能不能安裝
cd torchlight; sudo python3 setup.py install; cd ..
下載預訓練模型權重
bash tools/get_models.sh
測試demo
python3 main.py demo --openpose <path to openpose build directory> [--video <path to your video> --device <gpu0> <gpu1>]
範例:
python3 main.py demo --openpose /data/paperProjects/openpose/build --video /data/paperProjects/st-gcn/resource/media/ta_chi.mp4 --device 0
參考資料
最後編輯時間:2019/5/28
留言
張貼留言