Ailia SDKで服の物体検出してみた

# 背景
服装の検出ができる物体検出モデルがあるとどこかで見かけたので、
動作確認してみた次第です！
そこそこ工程も多いので、メモ代わりに残します🙌

# ailia SDKの導入
## Ailia SDKの利用申請

以下のサイトで必要な情報を入力して、利用申請を行いましょう！

https://axinc.jp/trial/

## メールでダウンロード
フリートライアル版の利用申請を出すと、以下のようなメールが届きます。
メールに記載されている**URLからSDKをダウンロード**してください。
また、**ライセンスファイルのURLもメモしておいてください！**

:::note warn
ライセンスには期限があるため、期限が切れた場合は再度利用申請する必要があります
:::

>この度はailia SDKのお問い合わせを頂きありがとうございます。
>
>SDKのダウンロードは以下のURLから行って下さい。
https://axip-console.appspot.com/binary/download/XXXX
ダウンロード期限：2023年X月XX日0時0分
>
>ailia SDKの実行にはライセンスファイルが必要です。以下のURLからダウンロードしてください。
ライセンスファイル：https://axip-console.appspot.com/license/download/XXXXXX
ダウンロード期限：2023年X月X日0時0分
>
>WindowsでUnityを使用する場合はAssets/Plugins/x86_64/に、C++APIおよびPythonAPIを使用する場合はailia.dllと同じフォルダにライセンスファイルを配置して下さい。Macでは~/Library/SHALO/にライセンスファイルを配置して下さい。
>
>また、下記のリソースも参照ください。
チュートリアル：https://medium.com/axinc
Python版サンプル：https://github.com/axinc-ai/ailia-models
Unity版サンプル：https://github.com/axinc-ai/ailia-models-unity
>
>Slack Communityも開設しています。ご質問などありましたら、こちらのコミュニティをご利用ください。
https://join.slack.com/t/axinc-ailia/shared_invite/zt-f5hboxhj-kZ~APYIHTHeSopL5NWqGtA
>
>今後ともailia SDKをよろしくお願い致します。


# 環境構築
以下の流れで環境構築を進めます！
1. AnacondaでPython3.8の仮装環境を作る
1. ディレクトリ構造
1. ライブラリのインストール

## 仮装環境の作成

以下のコマンドで作成します。
Python3.8で動作確認できているため、3.8にしています。
```zsh
% conda create -n cloth python=3.8 -y
```

## ディレクトリ構造

今回使う専用のディレクトリを作成します。
```zsh
% mkdir cloth
```

作成したディレクトリに移動後、以下のコマンドでローカルにモデルを引っ張ってきます。
```zsh
% git clone https://github.com/axinc-ai/ailia-models.git
```

同じディレクトリにメールのURLからダウンロードした`ailia_X_XXX_X_trial`をコピーします。

この時点で以下のような構造になっているはずです。
```
cloth
├── ailia-models
└── ailia_X_XXX_X_trial
```

## ライブラリのインストール

次に、ライセンスの登録とライブラリのインストールを行います。

### ライセンスの登録

```zsh
# 階層移動
% cd ailia_X_XXX_X_trial/python
# ライセンスの登録
% python bootstrap.py
```

`bootstrap.py`実行時に以下のように聞かれるので、ライセンスのPATHを入力しましょう！

```zsh
License file /root/.shalo/AILIA.lic is not found.
Try to copy lisence from ./AILIA.lic .
COPY license file ./AILIA.lic to /root/.shalo/AILIA.lic
bootstrap has been succeed. Next step is run 'pip install .'.
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Processing cloth/ailia_X_XXX_X_trial/python
>　PATH（URL）を入力
```

### ライブラリのインストール

ライセンス登録後、下記コマンドでailiaライブラリをインストールします
```zsh:cloth/ailia_X_XXX_X_trial/python
% pip install .
```

次に、モデルの実行に必要なライブラリをインストールします
```zsh:cloth/ailia_models
% pip install -r requirements.txt
```

# 実行
必要な準備は終わったので、実行します！！

```zsh:cloth/ailia-models/deep_fashion/clothing-detection
% python clothing-detection.py --input ./input.jpg --savepath sample_test.jpg
```

```zsh:実行結果
INFO utils.py (13) : Start!
 INFO utils.py (163) : env_id: 2
 INFO utils.py (166) : MPSDNN-Apple M1
 INFO model_utils.py (84) : ONNX file and Prototxt file are prepared!
 INFO clothing-detection.py (246) : ./input.jpg
 INFO clothing-detection.py (165) : Start inference...
object_count=5
+ idx=0
  category=3[ footwear ]
  prob=0.78515625
  x=0.4775
  y=0.7966666666666666
  w=0.074375
  h=0.10583333333333333
+ idx=1
  category=3[ footwear ]
  prob=0.67138671875
  x=0.58875
  y=0.7908333333333334
  w=0.06625
  h=0.11916666666666667
+ idx=2
  category=4[ outer ]
  prob=0.396484375
  x=0.3471875
  y=0.19645833333333335
  w=0.3728125
  h=0.300625
+ idx=3
  category=7[ pants ]
  prob=0.8916015625
  x=0.386875
  y=0.3466666666666667
  w=0.305625
  h=0.44916666666666666
+ idx=4
  category=8[ top ]
  prob=0.60205078125
  x=0.41
  y=0.2090625
  w=0.234375
  h=0.1546875
 INFO clothing-detection.py (180) : saved at : sample_test.jpg
 INFO clothing-detection.py (249) : Script finished successfully.
```

`clothing-detectiton`の階層に出力結果があるので、見てみると、
チュートリアル通りに服装検出できました🎉
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2017749/a409c768-7c81-ebcd-5760-65672b153da0.png)


# 終わりに
AiliaSDKを用いて、服装の物体検出ができました！
筆者はM1Macでなかなか気軽にAIを試すことができないのですが、Minicondaなどの使用に頼らず実行できたので
少し嬉しかったです🌸
みなさんもAiliaSDKを利用してみてください！


# 参考文献

https://medium.com/axinc/clothingdetection-%E6%9C%8D%E8%A3%85%E3%82%92%E6%A4%9C%E5%87%BA%E3%81%99%E3%82%8B%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%A2%E3%83%87%E3%83%AB-e75cc8bc75b7