OpenPoseセットアップUbuntu22.04


軽い気持ちからOpenPoseに沼ってしまったのでその記録を残します。
少しでもお役に立てれば幸いです。

## 私の作業環境

M1 macbook Air Sonoma14で
Ubuntu22.04にssh接続しています。

## 準備
**Ubuntu desktopで作業してる方はパス**
リモートデスクトップをセットアップします。
（のちにcmake-GUIを使う工程があるためです）
自分はこの記事通りに進めました。

https://qiita.com/hoto17296/items/0e3e5bd407351fd2e6ca

## OpenPose install
まずは普通にgit cloneします。
```bash
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
```
そしたら移動してサブモジュールのupdateをします。
```bash
cd openpose/
git submodule update --init --recursive --remote
```
こんな感じになるかなと思います。
(リモートデスクトップで作業しています)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/3ffd8d4f-ff8b-9511-c635-be543e9b1c47.png)

## model install 
次にモデルのダウンロードを行います。
本来ならbuildの時に自動でダウンロードされるのですが、今はサーバーが止まっているみたいです。

オリジナルとサードパティ製のリンクがありました。
今回は一番上のオリジナルモデルたちを使いました。お好みでどうぞ。

https://drive.google.com/file/d/1QCSxJZpnWvM00hx49CJ2zky7PWGzpcEh/edit
https://drive.google.com/file/d/1mqPEnqCk5bLMZ3XnfvxA4Dao7pj0TErr/edit
https://drive.google.com/file/d/1WvftDLLEwAxeO2A-n12g5IFtfLbMY9mG/edit


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/31e8e448-b812-1717-4396-159d73f2d636.png)

いろいろと警告が出てきますが、無視してzipをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/19a5f848-9f06-e9cc-2e1f-006724dcd192.png)

解凍するとこんな感じになっているはずです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/9d8db84c-e7e3-d118-20b5-c3d7c6b3fd91.png)

これをOpenPose/modelsに入れていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/cf4f65d3-9e39-7bcb-9414-62bf18a7ce39.png)

次に、[github](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/models/face/pose_deploy.prototxt) から各部位に対応するprototxtをダウンロードして配置していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/b0ae9226-a85a-6d87-23a9-59884f69d788.png)

配置後のubuntuはこんな感じになるはず
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/12339ded-0aa7-755f-8ad7-ec43ea86531e.png)

## build

ここまでできたらOpenPose直下に、build用のフォルダを作ります。
```bash
mkdir build/
cd build/
```
ここからはGUI環境で実行します。
まずはcmake-guiの起動です。
```
cmake-gui ..
```
以下のような画面が立ち上がります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/1696cc20-2ba0-f760-3b38-18e09482fc1c.png)

画面上部のところにopenposeのフォルダと、先ほど作ったbuildフォルダを入れます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/233a6265-a680-d6e4-833d-c60504c9c94f.png)

フォルダを入れたら、画面下部のConfigureをポチ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/ca6c23df-4ccd-c78c-ee58-8081bf318be4.png)

Unix Makefilesを選択してfinishをポチ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/0dc7c80e-f5b3-1f34-6dbf-3114511f9f12.png)

そうすると、画面下部にこんな感じの案内が出てdoneとなるはずです。
ちなみに、先ほどGoogle Driveからモデルをダウンロード済みなので、
already existsになっています。
どうやらmodelダウンロード用のサーバーが死んでいるみたいで、先ほどの手順を踏まないとmodelがダウンロードされず、OpenPoseが機能しません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455134/563efab6-cb11-ad56-e556-217471253376.png)

この時、画面上部で詳細が設定できますが、項目が多いので公式ページで確認しながら進めてください。デフォルトのままでも動きます。
https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation/0_index.md
そしたらGenerateボタンを押してGUIを閉じます。

最後にbuildディレクトリで以下のコマンドを実行してbuildは終了です
ちょっと時間かかりますんでお待ちください。
```bash
make -j`nproc`
```
## 動作確認

openpose直下で以下を実行します
```
./build/examples/openpose/openpose.bin --video examples/media/video.avi