【Nyantech ハンズオンシリーズ】機械学習を使って写真に写っている猫を見分けてみよう!

〜中編:Amazon Rekognition Custom Labels を使った機械学習モデルの作成

2020-04-01
デベロッパーのためのクラウド活用方法

Author : 大渕 麻莉

この連載記事のその他の記事はこちら

🐱前編 : Amazon SageMaker Ground Truth を使った画像のラベリング »

🐱中編:Amazon Rekognition Custom Labels を使った機械学習モデルの作成 »

🐱後編:Amazon SageMakerを使った機械学習モデルの作成 »

 はじめに

こんにちは、機械学習ソリューションアーキテクトの大渕です。

前回の記事で、スマートフォンに大量に保存されている猫の写真から特定の猫が写っている写真をピックアップしたいときってありますよね ! と力説いたしました。続けて、機械学習を使って画像分類すれば良いじゃないか ! というご提案をし、Amazon SageMaker Ground Truth というサービスを使って、画像のラベリングをする方法をご紹介したのですが、みなさまお楽しみいただけましたでしょうか。(まだの方は、ぜひご覧ください)

中編となる今回は、前回ラベリングした結果を教師データとして、Amazon Rekognition というサービスの Custom Labels という機能を使って、「うちの猫を見分ける機械学習モデル」を作る方法をハンズオン形式でご紹介したいと思います。教師データを作る際にみなさま自身の猫さんの画像を使っていただくと、みなさま専用の猫分類モデルをお作りいただけます。

ひきつづき今回も、こちらのタマとミケを見分けることを目標にします。写真には、どちらか一方の猫しか写っていないという想定にします。

img_ml_cat_01

機械学習で猫の写真を分類するモデルを作る場合、以下のような3ステップで行います。前編では、「ステップ 1:画像を準備する」と「ステップ 2:画像にラベルをつける」の部分をご紹介したので、今回は「ステップ3:モデルを学習させる」の方法をご紹介します。AWS の機械学習サービスを使って猫の写真を分類するモデルを作る方法は 2 通りあり、今回はより簡単に独自の機械学習モデルを作れる Amazon Rekognition を使う方法をご説明します。次回は機械学習プロジェクトのためのマネージドサービスである Amazon SageMaker を使う方法をご紹介しますのでお楽しみに!

 Amazon Rekognition とは

Amazon Rekognition は、機械学習の専門的な知識がなくても、みなさまのアプリケーションに画像や動画認識の機能を簡単に組み込んでいただくことができる AI サービスです。物体、人物、テキスト、シーン、動きを検出したり、不適切なコンテンツかどうかの判定をすることができます。また、一般的な物体だけではなく自分のニーズに合わせた画像認識をやりたい、というお客様は Amazon Rekognition Custom Labels を使うことで、独自の画像認識の機械学習モデルを作成することができます。

現在、Amazon Rekogniton Custom Labels を使って、シーン認識モデル (画像分類モデル) と、物体検知モデルを作ることができます。こちらの図の、左側が画像分類モデルの例で、画像に何が写っているのか、どんなシーンなのかを認識する場合に使用します。右側が物体検知モデルの例で、画像のどこに何が写っているのかをバウンディングボックスで検出する場合に使用します。用途に応じて、どちらのモデルが適切かは変わりますが、今回は、写真にはどちらか一方の猫しか写っていないという想定なので、画像分類モデルを作成します。

img_rekognition-cat_01

 Amazon Rekognition で猫を見分けるモデルを作る

それでは、前回作成した教師データを使ってモデルを作っていきましょう。

Amazon Rekognition Custom Labels のコンソールにアクセス

Chrome か Firefox で AWS マネジメントコンソールにアクセスして、サービス検索窓に reko を入力すると、Amazon Rekognition が候補に出てくるのでクリックします。

img_rekognition-cat_02
img_rekognition-cat_02

クリックすると拡大します

Amazon Rekognition のコンソールが表示されたら、以下の 2 つの設定を行います。

  • リージョンをバージニア北部 (N. Virginia) にする。(オレゴン、オハイオでも可)
  • 言語設定を英語にする

リージョンの設定は、画面右上から変更できます。言語設定は、左下から変更できます。

リージョンと言語設定が完了したら、メニューの一番上に Custom Labels というメニューが出てくるので、そちらをクリックします。

img_rekognition-cat_03
img_rekognition-cat_03

クリックすると拡大します

(初回のみ) Amazon S3 バケットの作成

Amazon Rekognition Custom Labels を初めて使用する場合は、このような画面が表示されます。バケットを作成しないと先に進めないので、「Create S3 bucket」をクリックしてバケットを作成します。この操作で作成されるバケットは、Amazon Rekognition Custom Labels を使う際に必要な権限設定がされた状態で作成されます。が、今回はこのバケットは使用しません。

img_rekognition-cat_04
img_rekognition-cat_04

クリックすると拡大します

プロジェクトの作成

Amazon Rekognition Custom Labels のコンソールが表示されたら、オレンジ色の「Get started」をクリックするか、左側のメニューから「Projects」を選択します。

プロジェクト作成画面が表示されたら、任意のプロジェクト名を入力して「Create project」をクリックします。エラーが出た場合は、プロジェクト名に空白や特殊な記号が含まれている可能性があるので、別のプロジェクト名をお試しください。

img_rekognition-cat_05
img_rekognition-cat_05

クリックすると拡大します

データセットの登録

プロジェクトが作成できたら、次はデータセットを登録します。Amazon Rekognition Custom Labels のコンソールの左側のメニューの「Datasets」をクリックします。さらに「Create dataset」をクリックします。

img_rekognition-cat_06
img_rekognition-cat_06

クリックすると拡大します

データセット作成画面で以下の項目を設定します。

  • データセット名

  • Image location:
    前回の手順で作成したGround Truth のラベリング結果を使用するので、「Import images labeled by SageMaker Ground Truth」を選択。

  • .manifest file location:
    Ground Truth のラベリング結果が出力されている manifest ファイルの S3 パスを入力。
img_rekognition-cat_07
img_rekognition-cat_07

クリックすると拡大します

manifest ファイルの出力先は、Amazon SageMaker のコンソールのメニューから「Labeling jobs」を選択し、表示されたジョブ一覧からジョブの詳細画面にアクセスすると、Labeling job summary の部分の Output dataset location からたどることができます。

img_rekognition-cat_29
img_rekognition-cat_29

クリックすると拡大します

こちらに記載されたリンクをクリックし、manifests -> output -> output.manifest とクリックしていくと見つかります。

img_rekognition-cat_30
img_rekognition-cat_30

クリックすると拡大します

こちらの図のように manifest ファイルをクリックすると表示される詳細画面で「Copy path」をクリックすると、ファイルの S3 パスがクリップボードにコピーされるので、こちらをペーストすると楽です。

img_rekognition-cat_08
img_rekognition-cat_08

クリックすると拡大します

img_rekognition-cat_09
img_rekognition-cat_09

クリックすると拡大します

S3 バケットにバケットポリシーを設定

img_rekognition-cat_10
img_rekognition-cat_10

クリックすると拡大します

img_rekognition-cat_11

データセットの確認

img_rekognition-cat_12
img_rekognition-cat_12

クリックすると拡大します

モデルの学習

データセット詳細画面の「Train model」をクリックして、モデルを作成します。以下の 3 つを設定し「Submit」をクリックします。

  • Choose project:テキストボックスをクリックし、先ほど作成したプロジェクトを選択。
  • Choose training set:テキストボックスをクリックし、先ほど作成したデータセットを選択。
  • Create test set:「Split training dataset」を選択。データセットを学習用と検証用に分割して使用します。
img_rekognition-cat_13
img_rekognition-cat_13

クリックすると拡大します

img_rekognition-cat_14
img_rekognition-cat_14

クリックすると拡大します

img_rekognition-cat_15
img_rekognition-cat_15

クリックすると拡大します

モデルの確認

img_rekognition-cat_16
img_rekognition-cat_16

クリックすると拡大します

img_rekognition-cat_17
img_rekognition-cat_17

クリックすると拡大します

 作ったモデルを使って猫の写真を見分ける (推論)

API の確認

img_rekognition-cat_18
img_rekognition-cat_18

クリックすると拡大します

API 実行環境について

AWS Cloud9 の環境の立ち上げ

img_rekognition-cat_19
img_rekognition-cat_19

クリックすると拡大します

img_rekognition-cat_20
img_rekognition-cat_20

クリックすると拡大します

img_rekognition-cat_21
img_rekognition-cat_21

クリックすると拡大します

img_rekognition-cat_22
img_rekognition-cat_22

クリックすると拡大します

API を実行して猫を見分ける

img_rekognition-cat_23
img_rekognition-cat_23

クリックすると拡大します

img_rekognition-cat_24
img_rekognition-cat_24

クリックすると拡大します

img_rekognition-cat_25
img_rekognition-cat_26
img_rekognition-cat_27
img_rekognition-cat_27

クリックすると拡大します

img_rekognition-cat_28
img_rekognition-cat_28

クリックすると拡大します

 リソースの削除

Amazon Rekognition Custom Labels の推論用エンドポイントの停止

img_rekognition-cat_24
img_rekognition-cat_24

クリックすると拡大します

S3 バケットの削除

 さいごに

この連載記事のその他の記事はこちら

🐱前編 : Amazon SageMaker Ground Truth を使った画像のラベリング »

🐱中編:Amazon Rekognition Custom Labels を使った機械学習モデルの作成 »

photo_ohbuchi

筆者紹介

大渕 麻莉

アマゾン ウェブ サービス ジャパン株式会社 機械学習ソリューションアーキテクト。
組込みソフトウェア開発から画像処理アルゴリズム開発を経てクラウドに到達し、2019
年にアマゾン ウェブ サービス ジャパン株式会社に入社。主に製造業のお客様の機械学習導入・運用の技術サポートを担当。
脳内 CPU の半分が猫のことで占められており、視界に入るすべての生き物がうちの猫に見えるという日々を過ごしている。

AWS のベストプラクティスを毎月無料でお試しいただけます

さらに最新記事・デベロッパー向けイベントを検索

下記の項目で絞り込む
絞り込みを解除 ≫
フィルタ
1

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する