Windows OpenPose導入方法について

openposeのタグがなかったのでここで質問するべき内容か迷いましたがかと言って他に聞けるところもないので  
質問させていただきます。

失敗するたびにやり方が間違ってたのしれないとコントロールパネルからCUDA(NVIDIA GPU Computing Toolkit)をアンインストールし  
また最初からやり直すという作業を２０回くらいしました。

やりたいこと：  
MMDを使ってアニメーションを作っています。  
いちいちボーンを設定して作るのがめんどくさいなぁと思っていた時  
Openposeというものを見つけました。  
これを使えば映像から人体のボーンを検出することができるみたいで、  
いちいちボーンを１から作成する必要がなくなるってことですね。

導入手順はこちらのサイトの通りにやりました。  
<https://qiita.com/miu200521358/items/539aaa63f16869191508#1-openposedemo%E3%83%9D%E3%83%BC%E3%82%BF%E3%83%96%E3%83%AB%E7%89%88-%E3%81%AE%E5%AE%9F%E8%A1%8C>

要約すると

１：ここからOpenPose zipをダウンロードし、解凍したものを適当な場所に置く。

<https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases>

２：CUDA8 のインストール

３：cuDNN 5.1 のインストール

どれ選べばいいかわからなかったのでとりあえず一番上のものを選びました。

ダウンロードし解凍したものを

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1"  
（NVIdATA GPU Toolkitは２完了後作られる）

以下に配置。

４：実行

cd "C:\Users\xxxx\Desktop\openpose\bin"

OpenPoseDemo.exe --video 対象動画のパス

* * *

また、②においてwindowsのドライバとの互換性検出段階にて問題が発生したため（？）  
CUDA8ではなくCUDA10をダウンロードしました。

<https://developer.nvidia.com/cuda-10.0-download-archive>

* * *

では、実行・・・

```

    C:\Users\xxxxx\Desktop\openpose\bin>OpenPoseDemo.exe --video "C:\Users\xxxxx\Downloads\tfnsl-ro6qx.avi"
    OpenPoseDemo.exe --video "C:\Users\matsu\Downloads\tfnsl-ro6qx.avi"
    Starting OpenPose demo...
    Configuring OpenPose...
    Starting thread(s)...
    ---------------------------------- WARNING ----------------------------------
    We have introduced an additional boost in accuracy in the CUDA version of about 0.2% with respect to the CPU/OpenCL versions. We will not port this to CPU given the considerable slow down in speed it would add to it. Nevertheless, this accuracy boost is almost insignificant so the CPU/OpenCL versions can be safely used.
    -------------------------------- END WARNING --------------------------------
    
    Error:
    Prototxt file not found: models\pose/body_25/pose_deploy.prototxt.
    Possible causes:
            1. Not downloading the OpenPose trained models.
            2. Not running OpenPose from the root directory (i.e., where the `model` folder is located, but do not move the `model` folder!). E.g.,
                    Right example for the Windows portable binary: `cd {OpenPose_root_path}; bin/openpose.exe`
                    Wrong example for the Windows portable binary: `cd {OpenPose_root_path}/bin; openpose.exe`
            3. Using paths with spaces.
    
    Coming from:
    - C:\openpose_cpu\src\openpose\net\netCaffe.cpp:op::NetCaffe::ImplNetCaffe::ImplNetCaffe():61
    - C:\openpose_cpu\src\openpose\net\netCaffe.cpp:op::NetCaffe::ImplNetCaffe::ImplNetCaffe():97
    - C:\openpose_cpu\src\openpose\pose\poseExtractorCaffe.cpp:op::addCaffeNetOnThread():106
    - C:\openpose_cpu\src\openpose\pose\poseExtractorCaffe.cpp:op::PoseExtractorCaffe::netInitializationOnThread():196
    - C:\openpose_cpu\src\openpose\pose\poseExtractorNet.cpp:op::PoseExtractorNet::initializationOnThread():102
    - C:\openpose_cpu\src\openpose\pose\poseExtractor.cpp:op::PoseExtractor::initializationOnThread():34
    - C:\openpose_cpu\include\openpose/pose/wPoseExtractor.hpp:op::WPoseExtractor<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > > >::initializationOnThread():57
    - C:\openpose_cpu\include\openpose/thread/worker.hpp:op::Worker<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > > >::initializationOnThreadNoException():77
    - C:\openpose_cpu\include\openpose/thread/subThread.hpp:op::SubThread<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > >,class std::shared_ptr<class op::Worker<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > > > > >::initializationOnThread():150
    - C:\openpose_cpu\include\openpose/thread/thread.hpp:op::Thread<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > >,class std::shared_ptr<class op::Worker<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > > > > >::initializationOnThread():173
    - C:\openpose_cpu\include\openpose/thread/thread.hpp:op::Thread<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > >,class std::shared_ptr<class op::Worker<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > > > > >::threadFunction():203
    - C:\openpose_cpu\include\openpose/thread/thread.hpp:op::Thread<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > >,class std::shared_ptr<class op::Worker<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > > > > >::exec():128
    - C:\openpose_cpu\include\openpose/thread/threadManager.hpp:op::ThreadManager<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > >,class std::shared_ptr<class op::Worker<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > > > >,class op::Queue<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > >,class std::queue<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > >,class std::deque<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > >,class std::allocator<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > > > > > > >::exec():202
    - C:\openpose_cpu\include\openpose/wrapper/wrapper.hpp:op::WrapperT<struct op::Datum,class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > >,class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > >,class std::shared_ptr<class op::Worker<class std::shared_ptr<class std::vector<class std::shared_ptr<struct op::Datum>,class std::allocator<class std::shared_ptr<struct op::Datum> > > > > > >::exec():424
    
```

Prototxt file not found: models\pose/body_25/pose_deploy.prototxt.

pose_deploy.prototxtといファイルがないのかな？とも思いましたが  
ディレクトリを確認するとちゃんとありました。

何が原因なのでしょうか？  
分かる方教えてくれますと助かります・・・。
CC BY-SA 4.0
2020-12-15T23:19:32.123
72678
2020-12-15T23:19:32.123
37492
question
cuda
Windows Openpose導入方法について