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

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

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

Author : 大渕 麻莉

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

 はじめに

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

私は猫を 2 匹飼っているのですが、スマートフォンの中には猫の写真が大量に溜まっています。たまに、「こっちの猫の写真だけピックアップして見たい !」と思うときがありまして、もしかしたら他のみなさまもそんなことがあるんじゃないかと想像しています。

そんなときに機械学習を使うと、写真に写っているのがどの猫なのかを自動で識別することができます。このような用途で使用する機械学習モデルを、「画像分類モデル」「シーン分類モデル」と言います。今回は、1 枚の写真に猫が1匹だけ写っていることを想定しているので画像分類モデルを使いますが、もし複数の猫が写っている写真に対してどの猫がどこに写っているのかを知りたい場合は「物体検知モデル」を使います。

今回は、こちらのタマとミケを見分けることを目標にします。

img_ml_cat_01

機械学習で猫の写真を分類する場合、以下のような 3 ステップがあります。今回の記事では、「ステップ 1 : 画像を準備する」と「ステップ 2 : 画像にラベルをつける」の部分のやり方をご紹介します。

 ステップ 1 : 画像を準備する

まずは、分類したい猫の画像を Amazon S3 にアップロードします。みなさまの PC などに画像をご用意ください。あまり多すぎると次のステップで画像にラベルをつける際に苦労しますので、とりあえずはそれぞれの猫に対して 10 枚くらいの画像を用意します。

今回は、2 匹の猫の画像を分類するので、cats というフォルダを作り、その中にそれぞれ 10 枚ずつ、合計 20 枚の画像を用意しました。どの画像にも、ミケかタマのどちらかが 1 匹だけ写っています。

img_ml_cat_02

画像が用意できたら、次は AWS コンソールにアクセスし、ストレージサービスの Amazon S3 のコンソールを表示します。そこで、新しいバケットを作成しましょう。下の図の、「バケットを作成する」をクリックします。

img_ml_cat_03
img_ml_cat_03

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

このような画面が出たら、バケット名とリージョンを設定して左下の「作成」をクリックします。今回はバージニア北部リージョンを使用します。

バケット名は、他の誰かと同じ名前にはできないので、もしエラーが出たら日付やご自分の名前を入れるなどしてバケット名を変更してください。今回は、バケット名を「cat-image-classification」としました。

img_ml_cat_04
img_ml_cat_04

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

作成したバケット名をクリックして、バケットの中に入ってみましょう。「アップロード」というボタンが表示されているので、こちらをクリックします。

img_ml_cat_05
img_ml_cat_05

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

すると、このような画面になるので、こちらに猫の画像をドラッグ & ドロップし、左下に表示される「アップロード」をクリックして、画像を S3 にアップロードします。猫の画像が入ったフォルダをこちらにドラッグ & ドロップすると便利です。

img_ml_cat_06
img_ml_cat_06

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

猫の画像が入った cats フォルダが S3 にアップロードされました。ここまででステップ 1 は終了です。

img_ml_cat_07
img_ml_cat_07

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

 ステップ 2 : 画像にラベルをつける

続いて、先ほど S3 にアップロードした画像にラベルをつけていきましょう。Amazon SageMaker のコンソールにアクセスし、左側のメニューの「ラベリングワークフォース」をクリックします。

img_ml_cat_08
img_ml_cat_08

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

ワーカーの登録

ここでは、ラベリングを行う人、ワーカーを登録します。

 

img_ml_cat_09
img_ml_cat_09

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

img_ml_cat_10
img_ml_cat_10

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

ラベリングジョブの作成

img_ml_cat_11
img_ml_cat_11

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

img_ml_cat_12
img_ml_cat_12

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

img_ml_cat_31_new
img_ml_cat_31_new

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

img_ml_cat_15
img_ml_cat_15

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

img_ml_cat_30_new
img_ml_cat_30_new

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

img_ml_cat_16
img_ml_cat_16

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

img_ml_cat_17
img_ml_cat_17

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

img_ml_cat_18
img_ml_cat_18

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

ワーカーによるラベリング

img_ml_cat_19
img_ml_cat_19

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

img_ml_cat_20
img_ml_cat_20

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

img_ml_cat_21
img_ml_cat_21

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

ラベリング結果の確認

img_ml_cat_22
img_ml_cat_22

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

img_ml_cat_23
img_ml_cat_23

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

{"source-ref":"s3://cat-image-classification/cats/DSCF0019.jpg","cats":0,"cats-metadata":{"confidence":0.68,"job-name":"labeling-job/cats","class-name":"mike","human-annotated":"yes","creation-date":"2020-02-14T10:03:18.431354","type":"groundtruth/image-classification"}}
{"source-ref":"s3://cat-image-classification/cats/DSCF0031.jpg","cats":0,"cats-metadata":{"confidence":0.68,"job-name":"labeling-job/cats","class-name":"mike","human-annotated":"yes","creation-date":"2020-02-14T10:03:18.431344","type":"groundtruth/image-classification"}}
{"source-ref":"s3://cat-image-classification/cats/DSCF0209.jpg","cats":1,"cats-metadata":{"confidence":0.68,"job-name":"labeling-job/cats","class-name":"tama","human-annotated":"yes","creation-date":"2020-02-14T10:03:18.431375","type":"groundtruth/image-classification"}}
(後略)

 リソースの削除

使用したリソースの中には、削除しない限り課金が続くものがあります。料金をゼロにするためには、以下のリソースの削除を行います。

 さいごに

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

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

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

photo_ohbuchi

筆者紹介

大渕 麻莉

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

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

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

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

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

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