[新機能] SageMakerが物体検出アルゴリズムをサポートしました

2018.07.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本日紹介の新機能はこちらです。

SageMakerが物体検出(Object Detection)アルゴリズムをサポートしました。これまでSageMakerでは画像を分析するアルゴリズムとして、画像認識(Image Classification)アルゴリズムをサポートしていましたが、ついに物体検出までできるようになりました。

このアルゴリズムを使うことで簡単に。。

画像を、

JSONに出力し、

こうすることができる!!

ということで早速やってみました!!

やってみた

ノートブックインスタンス作成

まずはノートブックインスタンスを作成します。

以下の情報を入力し、インスタンスを作成します。

  • ノートブックインスタンス名
  • ノートブックインスタンスのタイプ
  • IAMロール(S3へのアクセス権限があるものを選択)

ノートブックインスタンスより作成したインスタンスが確認できます。数分後、このインスタンスのステータスがIn Serviceとなるのでオープンをクリックします。

ノートブックを開く

オープンのリンクをクリックすると、別タブが開き、Jupyter Notebookの画面が表示されます。今回は、SageMaker Examplesよりobject_detection_image_json_format.ipynbを開きます。

ノートブックを実行(Introduction〜Hosting)

上のセルから順次実行していきます。コードが記載されているセルを選択し一つ一つCtrl-Enterで実行していきます。注意するポイントとしては、トレーニングデータやモデルを格納するバケットを作りyour_s3_bucket_name_hereを書き換えるくらいで、その他の部分については特につまるところなく進めれると思います。

Training完了後

Trainingの部分まで終わらせると、ダッシュボードよりジョブが完了したことが確認でき、また、完了をクリックするとジョブの詳細や実行時のログも確認することができます。

また、S3にはトレーニングのoutputとして学習モデルが格納されます。

その後、学習モデルをホスティングする(Hostingの部分を進める)ことで、モデルが利用できる状態となります。

Inference(推論)

さてお待ちかねの推論です。ここではまずテスト画像をローカル上に持ってきます。

この画像が冒頭の写真です。

その後、上記でダウンロードした画像に対し物体検出を実行します。outputとしてjsonが返却されていることが確認できます。

プログラム上であれば、これでも問題ないのですが、結果がどうか人間にはわからないので視覚化する関数も用意されています。

で、物体検出の閾値が低いとノイズが多くなるので、thresholdを0.20から0.70変えて実行すると。

まとめ

SageMakerの物体検出(Object Detection)アルゴリズムを利用することで、簡単に物体検出(Object Detection)を実現することができました。この学習モデルはDeepLensなどのエッジ端末にデプロイして利用することもできます!!うーん、夢が広がる!!