0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS SageMaker】SageMaker Ground Truthで手持ちの画像をラベリングしてみた

Posted at

背景

AWS SageMakerについて勉強していたところ、SageMaker Ground Truthは画像にラベリングを行うものとあったので、実際に触ってみました。

試した事(概要)

漫画家の矢吹健太郎先生の作品である「ToLoveる-ダークネス-」のヒロインキャラクター画像に対して、キャラクター名をラベリングしてみました。

例えば、
001.png
これは「ヤミ」のラベルを付けて、
002.png
これは「モモ」のラベルを付けてみる形です。

試した事(詳細)

1. S3にラベリングを行いたい画像をアップロード

キャプチャ1.png
今回は12枚の画像(pngファイル)をアップロードしました。

2. SageMaker Ground Truthにて、ラベリングジョブを作成

どこに保存されている画像に、どのようなラベリングを行うのか、作業者は誰か、等の設定をしたジョブを作成します。

まずは、マネジメントコンソールのSageMaker画面の左ペインから、Ground Truth > ラベリングジョブにアクセスして、画面右上の「ラベリングジョブの作成」をクリックします。

キャプチャ2a.png

続いて、「ジョブの詳細の指定」を設定していきます。
キャプチャ3.png
今回設定した項目と値は下記になります。

■「ジョブ名」の入力
 Picture-Labeling-Test
■「ラベリングジョブ名とは異なるラベル属性名を指定したいです」のチェック
 チェックは外したまま
■「入力データのセットアップ」の選択
 自動化されたデータセットアップ
■「入力データセットの S3 の場所」の入力
 画像を保存したS3バケットのフォルダ
■「出力データセットの S3 の場所」の選択
 入力データセットと同じ場所
■「データタイプ」の選択
 画像
■「IAMロール」の選択
 AmazonSageMakerFullAccessポリシーを持っている既存のロール

「追加設定-オプション」は特に触らず、「データセットアップの完了」をクリックしました。
キャプチャ4.png

少し待つと、「入力データの接続に成功しました」の旨が表示されました。
キャプチャ5.png

続いて、「タスクのタイプ」を設定していきます。
キャプチャ6.png
今回設定した項目と値は下記になります。

■「タスクカテゴリ」の選択
 Image
■「タスクの選択」
 ImageClassification(単一ラベル)

「タグ-オプション」は特に触らず、「次へ」をクリックしました。
(後述しますが、画像データを保存しているS3にCORSが設定されるようです。)
キャプチャ7.png

続いて、「ワーカーの選択とツールの設定」を設定していきます。
キャプチャ8a.png
今回設定した項目と値は下記になります。

■「ワーカータイプ」の選択
 プライベート
■「チーム名」の入力
 Picture-Labeling-Test-Team
■「プライベートな注釈者の招待」の入力
 今回の作業者は私のみのため、私のメールアドレスだけを入力しました
■「タスクのタイムアウト」の入力
 5分
■「タスクの有効期限」の入力
 10日
■「企業・団体名」の入力
 画像ラベル付けテスト
■「連絡先 E メール」の入力
 ラベル付け作業時の質問先と思われますため、今回は私のメールアドレスを入力しました
■「自動データラベリングを有効にする」のチェック
 チェックは外したまま

「追加設定-オプション」は触らずに、続いて、「画像分類(単一ラベル)ラベル付けツール」を設定していきます。
キャプチャ9.png
今回設定した項目と値は下記になります。

■「タスクの簡単な説明を入力します」の入力
 表示されるキャラの名前をラベル付けしてください。
■「オプションを選択」の入力
 下記の8つをラベルとして入力
 ┗ララ
 ┗春奈
 ┗モモ
 ┗ナナ
 ┗美柑
 ┗ヤミ
 ┗唯
 ┗メア

「Good Example」や「Bad Example」の部分や、「追加の手順-オプション」は何も設定せずに、「作成」をクリックしました。
キャプチャ10.png

すると、画面が戻り、無事にラベリングジョブが作成されました。
キャプチャ11.png

※補足

  • ラベリングジョブ作成後、画像を保存しているS3バケットにACLとCORSが自動で追加

キャプチャ12a.png

キャプチャ13.png

ラベル付けを行う作業者は、別途、「ラベル付け作業システム」のようなものにログインして、ラベル付けを行う形になります。そのため、「ラベル付け作業システム」がS3に保存されている画像ファイルにアクセス出来るように、このようなACLとCORSが追加されたと思われます。

  • ラベリングジョブ作成後、Amazon Cognitoユーザプールが自動で作成

キャプチャ14a.png

キャプチャ15.png

AWSでユーザ認証機能を提供しているAmazon Cognitoユーザプールが自動で作成され、そのユーザプールには、ラベル付けを行う作業者のメールアドレスがユーザ名として登録されていました。これは、「ラベル付け作業システム」にログインするためのユーザ認証を、Amazon Cognitoユーザプールで行うためと思われます。

3. ラベル付け作業

ラベル付けを行う作業者のメールアドレス宛てに、このようなメールが届きました。

キャプチャ16.png

リンク先にアクセスして、ユーザ名とパスワードを入力します。
キャプチャ17.png

「ラベル付け作業システム」にログイン出来ました。対象のTaskを選択した状態で、画面右上の「Start working」をクリックします。
キャプチャ18a.png

ラベル付け作業が始まりました。
これは、「春奈」ですね(笑)選択したら、「Submit」をクリックします。

キャプチャ19.png

次は「ララ」ですね。

キャプチャ20.png

次は「モモ」ですね。楽しくなってきました(笑)

キャプチャ21.png

全ての画像のラベル付けが完了すると、「ラベル付け作業システム」のトップ画面に戻りました。先程まであったTaskが無くなっています。
キャプチャ22.png

4. 結果確認

AWSのマネジメントコンソールで、SageMaker > Ground Truth > ラベリングジョブにアクセスすると、対象のラベリングジョブのステータスが「完了」になっています。

キャプチャ23.png

完了した対象のラベリングジョブを開くと、出力タブで、ラベル付け作業の結果を確認出来ます。
キャプチャ24.png

また、ラベリングジョブ作成時に、「出力データセットの S3 の場所」で設定したフォルダを確認してみると、「output.manifest」というファイルがあり、それを開くと、1行毎にJSONの形でラベル付け作業の結果がありました。

キャプチャ25.png

{
	"source-ref": "s3://*****/for_sagemaker_ground_truth/001.png",
	"Picture-Labeling-Test": 5,
	"Picture-Labeling-Test-metadata": {
		"class-name": "ヤミ",
		"job-name": "labeling-job/picture-labeling-test",
		"confidence": 0,
		"type": "groundtruth/image-classification",
		"human-annotated": "yes",
		"creation-date": "2024-05-10T12:06:51.205054"
	}
}
{
	"source-ref": "s3://*****/for_sagemaker_ground_truth/002.png",
	"Picture-Labeling-Test": 2,
	"Picture-Labeling-Test-metadata": {
		"class-name": "モモ",
		"job-name": "labeling-job/picture-labeling-test",
		"confidence": 0,
		"type": "groundtruth/image-classification",
		"human-annotated": "yes",
		"creation-date": "2024-05-10T12:05:44.769536"
	}
}

以上になります。

5. まとめ

最低限の設定ではありますが、実際にSageMaker Ground Truthを触ってみて、雰囲気を把握する事が出来ました。拙い記事ではありますが、「SageMaker Ground Truthって?」の方の一助になりましたら幸甚で御座います。

6. 参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?