👏

Amazon Rekognitionを使って画像の節度を検出してみた

に公開

やったこと

Amazon Rekognitionのコンテンツの節度検出機能を使って、S3内にアップロードされた画像が不適切な内容であるかどうかを検出してみた。

Amazon Rekognition とは

  • Amazonが提供するフルマネージド型の画像・動画分析サービス
  • 画像・動画分析系のトレーニングが事前に行われているため、利用者はすぐに使い始めることができる
  • 以下のタスクに対応している
    • ラベル検出
    • カスタムラベルの作成
    • 画像のプロパティ抽出
    • 画像の節度
    • 顔の分析
    • 有名人の認識
    • 顔の比較
    • イメージ内のテキスト抽出
    • PPE(個人用保護具)の検出
    • ビデオセグメントの検出

コンテンツの節度とは

  • 不適切/不快なコンテンツ(アダルト、暴力、武器、不快感を誘う、ドラッグ、アルコール類、煙草、ヘイトシンボル、ギャンブル、無礼なポーズ)を検出することができる

  • 検出するだけでなく、コンテンツに対してコンテンツカテゴリーをラベル付けすることができ、またラベル付けに対してどの程度の信頼度があるかを信頼スコアとして取得できる

ソースコード

以下のソースコードでは、S3に保存した複数の画像を取得して、それぞれの画像に対して節度の検出を行う。

実行結果

水着姿のグラビア画像の場合

検出結果として以下のラベルが付けられた

  • Suggestive (暗示的)
    • Female Swimwear Or Underwear (女性の水着または下着である)
    • Revealing Clothes (露出の多い衣服)
{
	"ModerationLabels": [
		{
			"Confidence": 99.97392272949219,
			"Name": "Female Swimwear Or Underwear",
			"ParentName": "Suggestive"
		},
		{
			"Confidence": 99.97392272949219,
			"Name": "Suggestive",
			"ParentName": ""
		},
		{
			"Confidence": 88.02641296386719,
			"Name": "Revealing Clothes",
			"ParentName": "Suggestive"
		}
	],
	"ModerationModelVersion": "6.1",
	"ResponseMetadata": {
		"RequestId": "56c7e546-de75-4013-994c-1124027f2369",
		"HTTPStatusCode": 200,
		"HTTPHeaders": {
			"x-amzn-requestid": "56c7e546-de75-4013-994c-1124027f2369",
			"content-type": "application/x-amz-json-1.1",
			"content-length": "305",
			"date": "Mon, 17 Jul 2023 15:03:05 GMT"
		},
		"RetryAttempts": 0
	}
}

おじさんがテニスをしている画像の場合

検出結果として、不適切なコンテンツとは認識されずラベル付けはされなかった

{
	"ModerationLabels": [],
	"ModerationModelVersion": "6.1",
	"ResponseMetadata": {
		"RequestId": "9d989d67-6767-42c0-85ba-24e656102572",
		"HTTPStatusCode": 200,
		"HTTPHeaders": {
			"x-amzn-requestid": "9d989d67-6767-42c0-85ba-24e656102572",
			"content-type": "application/x-amz-json-1.1",
			"content-length": "54",
			"date": "Mon, 17 Jul 2023 15:03:06 GMT"
		},
		"RetryAttempts": 0
	}
}

参考ULR

Discussion