Ubuntu16.04 openposeコンパイルおよびテストdemo


一、据付


公式インストールプロセスはopenpose公式を参照
インストール前に、できるだけ良いグラフィックスカードとメモリがあることを保証してください.そうしないと、demoを実行中にout of memoryが発生します.
プロセスは次のとおりです.

  1.ダウンロード

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose

2.更新

git pull origin master

git方式で最新のopenposeを直接更新できます

3.依存インストール


(1)caffe取付
インストールcaffeはcaffeインストールを参照してください.注意caffeをインストールする過程でProtobufの問題で多くのバグが発生するので、できるだけcaffeをインストールする前にanacondaをインストールしないでください.元のpythonではバージョンの問題はあまり発生しません.
  (2)cmake-gui
cmake-guiはcmakeのユーザインタフェースモードであり、多くのプロジェクトにとって使いやすいツールである.インストール方法は以下の通りです.
sudo apt-get install cmake-qt-gui

(3)GPUsの取り付け
cudaとcudnnを含むインストールはcuda-cudnnを参照
バージョンの問題に注意cuda 8.0+cudnn5.1(公式推奨ですが、インストール中に5.1エラーが発生し、6.0に変更されました)

4.OpenPose構成


cmake-guiを開き、ソースファイルがあるフォルダとbuildフォルダの場所を選択します.現在ない場合は、新しいかどうかを注意し、「はい」を選択し、Configureをクリックし、成功したらGenerateをクリックします.正常に表示されたら閉じる

5.OpenPoseコンパイル

cd build/
make -j`nproc`

コンパイル中に発生したバグは以下に記録されます.

6.運転Demo

./build/examples/openpose/openpose.bin --video examples/media/video.avi

二、バグ記録


1.demoを実行中、エラー記録:ERROR:something wrong with flag'logtostderr'in file'src/logging.cc'. One possibility: file 'src/logging.cc' is being linked both statically and dynamically into this executable
解決:主な原因はglogとgflagsのバージョンの問題で、まず両者のバージョンが適切であることを保証しなければならない.次に、コンパイルの過程で、-fPICを加えることを保証しなければならない.そうしないと、上述の問題が発生したり、makeの過程でBad valuesのようなエラーが発生したりする.
具体的には-fPICを加える方法が異なります.Makefileファイルについては、直接ファイルを開き、CXXFLAGSを検索し、-fPICを加えるとよい、CMakeの一環については、端末CMakeの後ろに-fPICを直接加えることができる.
特に、上記の問題はopenposeの問題ではありません.openposeはglogを使用していないため、実際にはcaffeの問題です.この問題は、caffeのインストール中に問題がなく、正常に実行された場合でも発生します.
-fPICの具体的な説明はhttps://blog.csdn.net/derkampf/article/details/69660050
2.demo実行中、エラー記録:Segmentation fault
解決:セグメントエラーが発生する可能性は多いが、直接発生するSegmentation faultについては、glogコンパイルプロセスに-fPICが追加されていないためだ.
3.demo実行中、エラー記録:Check failed:error==cudaSuccess(2 vs.0)out of memory
解決:一方ではcudaバージョンとcudnnバージョンの問題である可能性があり、一方では顕存が足りない可能性がある.
4.build caffeまたはopenposeで次のエラーが発生するか、demoが実行でき、外部でタイムズエラーが実行されます.
  ERROR: something wrong with flag 'flagfile' in file '/pose_estimator/gflags/src/gflags.cc' One possibility: '/pose_estimator/gflags/src/gflags.cc' is being linked both statically and dynamically into this executable.
解決:主な原因はgflagとglogのバージョン対応の問題で、bug 1と似ています.肝心なのはgflagsとglogがsoファイルにコンパイルしたほうがいいということです.そのため、sudoがインストールしたgflsgとglogであれば、sudo apt removeが必要です.ソースコードがインストールされている場合、具体的な手順は
       gflags glog
cd ${your_path}/gflags(glog)/build
sudo make uninstall
make clean
cd ..
sudo rm -rf build


  gflags
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON -DGFLAGS_NAMESPACE=google -G"Unix Makefiles"//-DBUILD_SHARED_LIBS=ON   ,   /usr/local/lib     .so  ,   .a  
make -j8//     cpu  ,       .so     
sudo make install
sudo ldconfig

  glog
cd glog 
./autogen.sh 
sudo CFLAGS="-fPIC" CFXXLAGS="-fPIC" ./configure 
mkdri build 
cd build 
cmake -D BUILD_gflags_LIBS=ON -D BUILD_SHARED_LIBS=ON -D BUILD_gflags_nothreads_LIBS=ON -D GFLAGS_NAMESPACE=ON .. 
make -j8
sudo make install

その後caffe,openposeを再コンパイルすればよい