IBM Watson  - 画像認識（Visual Recognition) を試そう

# はじめに

IBM Cloudには「Watson Visual Recognition」というCloud上の画像認識ソフトがあります。
プログラミングしなくても、簡単に画像の機械学習ができるツールがあり、今回は自分自身で「カスタムモデル」を作成する手順をご紹介したいと思います。

本記事は <b>2020年6月末</b> 時点のものになります。

Visual Recognition についてはこちらの記事にも詳細に書かれていますのでご参考ください。
[Watson Visual Recognition カスタムクラスを作ろう!](https://qiita.com/nishikyon/items/7d1c07e2f50c1002e815)

今回の記事は、上記と画面が少し変わっていたので、ハンズオン用に作成してみました。。

# 事前準備

Watson Visual Recognitionを利用する事前準備として、以下の手順がございます。
1. IBMidの準備
2. Watson Studioのオーダー
3. Watson Studioでプロジェクトを作成

こちらについては以下のサイトを参考にしてください。
[無料でなんでも試せる! Watson Studioセットアップガイド](https://qiita.com/makaishi2/items/b666f847a98c2e42dfbb)

# 今回作成するモデルに関して

今回は Visual Recognition で「フライドチキン」か「トイプードル」を見分ける分析を実施してみたいと思います。

Googleなどの画像検索で、それぞれ15枚以上の「フライドチキン」と「トイプードル」写真を入手してください。（モデルを作成するためには最低10枚の画像が必要となります）
それぞれ画像の種類ごとに、「半角英数字」のファイル名をつけて、ZIPファイルにしておきます。

画像を集めるのが面倒な場合には、以下の製品サイトのチュートリアルに、犬のいくつかの犬種の写真が集まったZIPファイルがダウンロードできますのでそちらをご利用ください。
https://cloud.ibm.com/docs/visual-recognition?topic=visual-recognition-tutorial-custom-classifier#create

[beagle犬](https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual-recognition/beagle.zip)
[husky犬](https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual-recognition/husky.zip)
[golden-retriever犬](https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual-recognition/golden-retriever.zip)
[cats](https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual-recognition/cats.zip)

# Visual Recognitionサービスの追加


Watson Studioのプロジェクトを開いた画面で「プロジェクトに追加」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/6e08fd30-ef4f-95c6-8ad3-158409a2261e.png)

Visual Recognitionをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/37ef6a3d-a049-6bb1-8632-f40c0f58212c.png)

Visual Recognitionのサービスが存在しない場合は、
次の画面で「here」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/4ffd9b71-cc00-8c92-b784-3633ddcbd195.png)

Visual Recognitionのカタログの画面になるので、
「Lite（無償）」プランを選択し、「Create」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/51b7fed8-e049-f254-4de6-e530eb6a13ef.png)


サービス名に適当な名前を入力して、「Confirm」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/e4be9bd9-7d27-2bf4-ddd5-45dcc8d2477e.png)

次の画面がでてきたら、とりあえず成功です

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/f8a9612d-0aee-496c-bc49-9e95b6da4d10.png)

次回以降、新しい画像モデルを作成する場合には、プロジェクト画面の「新規 Visual Recognition Model+」というところからスタートできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/12922392-9d64-eff3-8b64-0c7e0c600225.png)


# 画像のカスタマイズモデルの作成

今回は自分でカスタムモデルを作成するんで、「Classify Images」を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/778a1409-b61b-cecb-3e89-fa747c33bf9a.png)

以下の画面がでてきますので、作成したいモデル名を付けましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/da45bd68-556a-8043-a518-b44da35325d6.png)

今回は「FriedChicken or ToyPoodle 1」とつけました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/9770b236-98e9-6ab3-3b98-c0b81c78c1be.png)

右側の「Upload directly」の「Browse」ボタンをクリックし、
今回学習させたいzipファイルを選択してください。

今回はフライドチキンとトイプードルの写真が保管された「FriedChiken.zip」と「ToyPoodle.zip」を選択しました。

すると、「FriedChiken」と「ToyPoodle」のクラスが作成されます。

これで学習データの準備は完了です。
それでは、右上の「Train Model」をクリックし、学習させましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/fed0aa94-d3ac-238c-cc8a-2d580ebad81c.png)

学習が完了すると、右上に「Model Traing started.」のメッセージが表示され、
完了すると「Training Successful」と表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/53819a55-4304-886e-3f53-b2d97c6d7709.png)

# 作成したモデルの検証

これでモデルの作成が完了しました。ではテストを実施してみましょう。
上のモデル名の箇所「FriedChicken or ToyPoodle 1」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/895ccd63-da99-e5e4-3ea6-55e8c14650ef.png)

すると、以下の画面がでてきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/e1752b7a-9fbe-a6dc-69cb-2cb4fa5f1a65.png)

「Test」と書いてあるところをクリックすると、テスト画面がでてきます。

ここの右側のボックスのところに、テストしたい画像ファイルをドラッグ＆ドロップします。
すると、、、学習モデルによる判定結果がでます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239309/b5ff4d01-3fa3-7335-ba1c-e3d60d0f2cd8.png)

見事すべてのフライドチキンとトイプードルを見分けるモデルが作成できていることが確認できました。

# さいごに
いかがでしたでしょうか。簡単に画像のモデルを作ることがわかったと思います。
せひ色々な画像を集めて、自分独自のモデルを作成してみてください。