#概要
【Nyantech ハンズオンシリーズ】機械学習を使って写真に写っている猫を見分けてみよう!をやってみました。
いろいろとハマってしまったので、補足します。
##環境
###リージョン
「us-east-1」のバージニアに統一する必要があります。(オレゴンとかでも大丈夫らしい)
私は説明をよく読まずにS3を東京リージョンにして進めてしまい途中でエラーとなり、やり直しました。
また、SageMakerも東京リージョンにしてしまったため再度やり直しました。
###画像のサイズ
使用する画像のサイズに制限があるようです。私が最初に準備した画像は4896x3672ピクセルでした。
このサイズでもRekognitionで「Train model」を開始するまでは問題なく進みます。しかし、Train Modelを開始して数秒後にTrain Failとなり、無効なデータが多すぎるとメッセージされてしまいます。
Rekognitionの要件には画像サイズは最大で4096x4096ピクセルとなっていますので、準備する画像はサイズを確認する必要があります。
###画像の枚数
学習に使う画像は1種類のラベルに付き10枚程度はあったほうが良いようです。理由は(推測)、RekognitionのTrain Modelの際に学習用データセットを2:8にテスト用と学習用に振り分ける設定を選択するためと思われます。
##APIを実行して判定結果を確認する
学習が完了してモデルができあがると好きな画像を判定させることができます。
操作はすべてAWS CLIからAPIを実行するようになっています。
画像は事前にS3へアップロードしておく必要があります。
Rekognitionが発行してくれるAPIは、「Start Model」「Analyze image」「Stop model」の3つです。
使い始めるときに「Start Model」のAPIを実行して、判定時には「Analyze image」、停止するときは「Stop model」のAPIを実行します。「Stop model」しないと利用料金が発生し続けるようです。
###「Analyze image」時の注意
Start、StopのAPIはすぐに応答があったのですが、「Analyze image」のAPIを実行した初期は「準備ができていない」というエラーが返ってきました。StartのAPIでは「Starting」という返答があり、Rekognitionのコンソール上でもStartingと表示されていたので何がおかしいのか全くわかりませんでしたが、数分後には正常に動作できたので、おそらく「Analyze image」できるまでには時間がかかるようです。
##まとめ
以上の補足事項があれば、おそらく2~3時間で完了できるハンズオンかと思います。
ちなみに私の環境では19枚の画像を学習させて約50分の学習時間でした。
精度は50%でした。(画像の問題)
誰かの助けになれれば最高です。