GCP:AutoML Visionで、二階堂ふみと山本舞香見分けられる？

以下の写真は誰でしょうか。

![nikaidou.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/484ff254-e673-bb63-805f-e2156c425238.jpeg)


二階堂ふみさんです！

では、以下の写真は誰でしょうか。

![yamamoto1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/aaa3a0b1-0090-4583-f2f3-3c71c58f3d4a.jpeg)

山本舞香さんです！

髪型、表情、照明によっては、非常に似ていますね。
どちらも綺麗です。
（以下比較画像。）

![nikaidou3.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/2e0162e0-2f9e-7905-c1c4-2f83681d296f.jpeg)


今回は、Googleの機械学習を元にしたGCPのプロダクト「AutoMLVision」を
使って、二人の画像識別を行いました。

#Cloud AutoML
機械学習の専門知識、プログラミング知識がなくても、簡単に機械学習の
トレーニング、評価、改善、デプロイが可能。ビジネスニーズに合わせて作成することも可能。

AutoMLの中には、いくつかのプロダクトがある。

|プロダクト名       |用途    |
|:-----------------|------------------:|
| **AutoML Vision**             |  **画像分類**  | 　
| AutoML Video Inteligence           |             動画コンテンツ検出 |
| AutoML Natural Language             |              自然言語処理 |
| AutoML Translation               |                翻訳|
| AutoML Tables            |             構造化データ |


今回使用するプロダクトは、「AutoMLVision」。

[ドキュメント](https://cloud.google.com/automl?hl=ja)

#AutoML Vision
独自の画像識別の機械学習モデルを作成できる。
自分で識別したい画像をアップロードすることで、プログラムを書くことなく、
自動でアップロード画像に合わせてモデル作成される。

（例: 猫の種類の識別、カレイの種類識別、不良品の識別）

#注意
-　GoogleCloudアカウント登録が必要。（無料枠あり）

#1.準備
GCPコンソール上でCloud AutoML API
![Screenshot 2020-06-21 at 12.08.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/bbf7360e-e601-1293-a7a6-dc609c54ec2f.png)

GCPメニュー　Vision > ダッシュボード > AutoML Vision > 画像分類
![Screenshot 2020-06-21 at 12.12.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/4bb13904-21f9-4db8-84ff-8bf1dc17124c.png)

データセット＞新しいデータセット
![Screenshot 2020-06-21 at 12.16.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/ccd42f3c-a45d-2c58-2bbd-c1f75fd9aa37.png)

データセット名を適当に記述。
モデルの目的を「単一ラベル分類」を選択。
![Screenshot 2020-06-21 at 12.16.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/bc291157-7048-2137-fb69-bb2ea08400c3.png)

#2.モデル作成に必要な画像アップロード
最初に使用する画像をアップロードして、ラベリングする必要がある。

アップロード方法は、
・localから直接アップロード
・GCSからCSVファイルをアップロード
→　今回は、直接PCからアップロード。

**＜ポイント＞**
最適なモデルを作成するには、各ラベルに少なくとも 100 個の画像を含める必要があります。
より、精度を求めるには、最低1000枚必要という人もいる、、、
今回は、1000枚頑張って用意した、、、
画像の取得は、スクレイピング等を使うとある程度が取得可能。（末尾Apendixに追記）

![Screenshot 2020-06-21 at 12.26.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/5f8f2b8f-b5c1-d6a4-e1b4-693c231ed345.png)

#3 ラベリング

ローカルから画像アップロードした場合、別途ラベリングする必要がある。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/41a1a7ee-38b8-47a4-b5c4-dc388da2316c.png)

200枚ずつラベリング可能。

#4 トレーニング
全てラベリングしたら、トレーニングを行う。
学習は、自動的に画像を３つのセットに分割されて、それぞれ
**トレーニング：80%**
**ハイパーパラーメータ調整等：10％**
**モデルの評価：10%**
に使用される。


トレーニングタブから「新しいモデルをトレーニング」。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/5a15534a-956e-7a72-8455-be540a3cd588.png)

モデルを選択。
「Cloud hosted」を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/ff715b83-8994-199d-5d41-2dfb68087c3a.png)

トレーニングのノード時間を設定。
今回は8時間に設定。　
初回無料枠あり。

>請求先アカウント 1 つにつき、トレーニングとオンライン予測それぞれに 40 時間の無料ノード時間を、さらにバッチ?>予測に 1 時間の無料ノード時間を使用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/789ea04b-f7cb-82aa-cf8a-e907ea4924db.png)

トレーニングを開始。（約１時間）

#5 評価
以下評価結果。
適合率:84.83%
再現率:84.83%

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/70c7bfa9-d569-9c50-1f32-5d06b4ea88f0.png)

最初にしては、いい数値かと！

#6 デプロイ・テスト
モデルで実際に予測できるように、デプロイする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/c8c1b2a0-3684-3d0e-48c6-1394fca5140a.png)

APIでオンライン予測も可能。サービスに組み込むこともできる。

実際の画像をアップロードして、予測を行う。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/c53fcb0e-703e-ef5c-7f03-099e9410a802.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/8d96c15b-0c43-6b73-3c75-006183601fb1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/e825b3a0-ff44-6ba4-6b33-8917ec164fb9.png)



# Appendix
1000枚の画像収集が大変。以下の記事を参考に取得。
その他、Youtube動画のスクリーンショットをする。
https://qiita.com/kumakuma324/items/9e026c11838b4e94ad2d

# おまけ
宮崎あおいはどちらに似ているのでしょうか。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354039/7fc32c60-7204-23b9-cfe7-7022616ee6c0.png)