【画像検査AI】ADFIで開発した画像検査AIを普通のPC（GPU無し）で動かしてみた手順【所要時間15分】

クラウド上でAIを開発できるプラットフォーム[「ADFI」](https://adfi.jp/ja/)で開発した画像検査AIを自宅のPC（GPU無し）で簡単に動かせたので、手順をメモしておきます。

自分のPC（CPUのみ）でも、１秒間に5枚以上の画像に対してAIを実行できた（１画像あたり0.1秒台の処理速度）ので、とっても快適でした！

[ADFIについて解説した過去記事はこちら](https://qiita.com/umapyoi/items/ddd45a47aa79ccbde28b)

![umapyoi0.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/1a42b9fe-bb66-6b62-2848-e28761811251.jpeg)


# AIを作成して自分のPCで実行するまでの手順
大まかな流れは下記になります。
所要時間としてはAIの学習時間（約30分）を除くと15分くらいでした！

1. 学習用の画像と評価用の画像を準備
2. ADFIにログイン
3. プロジェクトとデータセットを作成
4. 学習用の画像と評価用の画像をアップロード
5. AIの学習を実行
6. 作成したAIモデルと、AI実行プログラムをダウンロード
7. 自分のPCでAI実行プログラムを実行

## 1. 学習用の画像と評価用の画像を準備
事前に、AIで画像検査したい画像データを準備しておきます。

今回は、公式サイトで無料で公開されている「[コーヒー豆の異物検査の画像データセット](https://adfi.jp/wp-content/uploads/Coffee_beans.zip)」を使いました。
下記ダウンロードした画像データセットの中身は下記構成になっています。
 - train: 学習用の画像データ
     - good: 学習画像（正常）
     - chocolate: 学習画像（異常）
 - test: 評価用の画像データ
     - good: 評価画像（正常）
     - candy: 評価画像（異常）
     - chocolate: 評価画像（異常）

[コーヒー豆の異物検査の画像データセットのダウンロードはこちら](https://adfi.jp/wp-content/uploads/Coffee_beans.zip)

## 2. ADFIにログイン
まずは、[ADFIのログインページ](https://web.us.adfi.karakurai.com/webapp/signin?lang=ja)からログインします。
初めての場合は「アカウント新規作成」を押してアカウントを作成してから、ログインします。

[ADFIのログインページはこちら](https://web.us.adfi.karakurai.com/webapp/signin?lang=ja)

## 3. プロジェクトとデータセットを作成
ログインしたら、右上の「プロジェクト新規作成」ボタンを押して、プロジェクトを作成します。
作成したプロジェクトをクリックして次の画面に進み、「新規DMLデータセット」ボタンを押して、データセットを作成します。
作成したデータセットをクリックして、データセットの詳細画面を開きます。

## 4. 学習用の画像と評価用の画像をアップロード
学習用の画像と評価用の画像をアップロードします。具体的な操作を箇条書きにします。

 - 「学習画像（正常）」ボタンを押して、学習用の画像データをアップロードします。コーヒー豆の画像データセットの「train」→「good」フォルダを開いて、フォルダ内の画像を全て選択（Ctrl+A）して、一度にアップロードしました。
 - 「学習画像（異常）」ボタンを押して、学習用の画像データをアップロードします。コーヒー豆の画像データセットの「train」→「chocolate」フォルダを開いて、フォルダ内の画像を全て選択（Ctrl+A）して、一度にアップロードしました。
 - 「学習画像（異常）」でアップロードした画像の右側の「異常領域の選択」ボタンを押して、異常領域を選択（チョコレートを部分を選択）して「保存」します。これは、全ての「学習画像（異常）」に対して行います。
 - 「評価画像（正常）」ボタンを押して、学習用の画像データをアップロードします。コーヒー豆の画像データセットの「test」→「good」フォルダを開いて、フォルダ内の画像を全て選択（Ctrl+A）して、一度にアップロードしました。
 - 「評価画像（異常）」ボタンを押して、学習用の画像データをアップロードします。コーヒー豆の画像データセットの「test」→「candy」フォルダを開いて、フォルダ内の画像を全て選択（Ctrl+A）して、一度にアップロードしました。
 - 「評価画像（異常）」ボタンを押して、学習用の画像データをアップロードします。コーヒー豆の画像データセットの「test」→「chocolate」フォルダを開いて、フォルダ内の画像を全て選択（Ctrl+A）して、一度にアップロードしました。

![umapyoi1_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/55ab46c1-842b-206e-f3fd-4bd52c570924.jpeg)


![umapyoi1_2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/be29af9a-9e85-1bb7-9451-1c2caf67ad1c.jpeg)


## 5. AIの学習を実行
「AIモデル作成」ボタンを押します。学習が完了するまで（30分くらい）待ちます。「AIモデルステータス」が「AIモデル作成済み」になったらAIの作成が完了です。

## 6. 作成したAIモデルと、AI実行プログラムをダウンロード
「ローカル実行情報」タブを開いて、下記ボタンを押して、AIモデルとAI実行プログラムをダウンロードします。
 - 「ローカル環境用のAIモデルをダウンロードする」：作成したAIモデルのファイル
 - 「ローカル環境用AI実行モジュールをダウンロードする」：AIモデルを実行するためのPythonプログラム「adfi_runtime_module_v1_0_0.zip」

![umapyoi2_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/69776586-c95b-a9db-ce39-24e086f2b2dc.jpeg)


## 7. 自分のPCでAI実行プログラムを実行
Pythonをインストール済みの自分のPCで、ダウンロードしたPythonプログラムでAIモデルを実行できます。同梱されているsample.pyの中のAIモデルのパスと画像のパスを修正するだけで、すぐにAIを実行できます。
また、sample.pyの中身を参考にすれば、自由に自分のPythonプログラムにAIを組み込めます。
 - Python環境のバージョンは、3.7～3.10でないとダメとの記載あり。
 - プログラムのコメントに記載のある下記ライブラリをインストールしておく。
```
pip install opencv-python
pip install cryptography
pip install pillow
pip install torch
pip install torchvision
pip install scikit-learn
```
 - sample.pyの下記部分をAIモデルのパスと入力画像のパスに変更する。
```
    model_path = "runtime_xxxxxxxx_xxxxxx.xxx_model"
    img_1 = "xxxxx.png"
    img_2 = "yyyyy.png"
```
 - 「python sample.py」でAIを実行。

# 所感
簡単に、画像検査AIを作成して、自分のPC（GPU無し）で実行することができました！
これまでADFIのAPIだとAIを実行するのに画像あたり3秒くらいかかっていましたが、今回、自分のPCでAI実行すると画像あたりの処理時間が0.1秒台なので、非常に高速で満足でした！（これまでより10倍以上高速！！）
作成したAIモデルは３か月間無料で試用できるようなので、自作アプリに組み込んでいろいろと遊べそうです。