Amazon Rekognition Videoを使ってみた(AWS CLI/SDK版もあるよ!)

 こんにちは。データサイエンスチーム tmtk です。
 この記事では、先日のAWS re:Invent 2017で発表された、Amazon Rekognition Videoの使い方をご紹介します。
 この記事は、#DataScience by NHN Techorus DATAHOTEL Tech Blog Advent Calendar 2017 9日目の記事です。

Amazon Rekognition Videoとは

 Amazon Rekognition Videoは、AWSの動画認識サービスです。これまでのAmazon Rekognitionは画像認識サービスとしてリリースされていましたが、新たに動画認識サービスAmazon Rekognition Videoが加わり、これまでのAmazon RekognitionはAmazon Rekognition Imageと呼ばれるようになったようです。

まずはコンソールから試してみる

 まずはコンソールから試してみましょう。
 最初に、AWS マネジメントコンソールにアクセスします。メニューから、Rekognitionを選択します。
AWS management console

 次に、リージョンを米国北部(バージニア東部)に、言語を英語に変えます。現在は一部リージョンでしかAmazon Rekognitionは使うことができず、Amazon Rekogniton Videoのデモ画面は言語を英語に切り替えないとアクセスできません。
Amazon Rekognition

 画面左側に「Video Analysis」というリンクがあるので、クリックして移動します。
Amazon Rekognition English menu

 プルダウンメニューから「Your own video」を選択し、動画をアップロードします。長さが1分以下で容量が30MB以下の動画しかアップロードできないようです。
Amazon Rekognition Video

 アップロードすると、Amazon Rekognition Videoによる解析が実行され、結果が表示されます。

AWS CLIから使ってみる

 AWS CLIとAWS SDK for PythonからそれぞれAmazon Rekognition Videoを呼び出してみますが、その前に準備を行います。
 AWSの最新サービスであるAmazon Rekognition Videoを使うために、botocoreの最新版をインストールします。

sudo pip3 install --upgrade botocore

 また、分析対象の動画をAmazon S3にアップロードしておきます。AWS マネジメントコンソールからAmazon Rekognition Videoを試してみた場合は、自動的にS3に動画が保存されているので、それを使うとよいでしょう。バケット名とファイル名をメモしておきます。
 Amazon S3、Amazon Rekognitionどちらも、使用するリージョンをあわせるようにします。ここでは、バージニア北部(us-east-1)を使用します。
 以上で準備は完了です。

AWS CLIから

 まずはAWS CLIからやってみます。

aws rekognition start-face-detection --cli-input-json '{"Video":{"S3Object":{"Bucket":"rekognition-video-console-demo-iad-hogehoge-fugafuga(動画ファイルが入っているS3 Bucket名)","Name":"hoge.mp4(動画ファイル名)"}}}'

上のようにコマンドを実行すると、JobIdが表示されます。

{
    "JobId": "0123456789abcdefffffffffffffffffffffffffffffffffffffffffffffffff"
}

表示されたJobIdをメモしておき、解析結果を取得しましょう。

aws rekognition get-face-detection --cli-input-json '{"JobId":"0123456789abcdefffffffffffffffffffffffffffffffffffffffffffffffff(メモしたJobId)"}'

すると、結果がJSON形式で表示されます。

{
    "VideoMetadata": {
        "FrameRate": 23.976024627685547,
        "FrameHeight": 720,
        "DurationMillis": 30071,
        "Codec": "h264",
        "FrameWidth": 1280,
        "Format": "QuickTime / MOV"
    },
    "JobStatus": "SUCCEEDED",
...(省略)

AWS SDK for Pythonから

 AWS SDK for Pythonでも同様です。

 Amazon Rekognition Videoにジョブを送信します。

import boto3
client = boto3.client('rekognition')
response = client.start_face_detection(Video={'S3Object': {'Bucket': 'rekognition-video-console-demo-iad-hogehoge-fugafuga(動画ファイルが入っているS3 Bucket名)', 'Name': 'hoge.mp4(動画ファイル名)'}})

解析が終わるまでしばらく待ち、結果を取得します。

result = client.get_face_detection(JobId=response['JobId'])
print(result['Faces'][0])

認識された顔の情報が表示されます。
 このように、Amazon Rekognition Videoを使うことで、動画ファイルの処理について詳しい知識がなくても動画にうつっている顔や物の情報をとることができます。大変便利ですね。
 さらに詳しい使い方については、各種公式ドキュメントをごらんください。

まとめ

  • Amazon Rekognition VideoはAWS re:Invent 2017で最近発表されたサービスです
  • Amazon Rekognition Videoを試してみました

 当社ではマネージドクラウド for AWSとして、AWSの請求代行/導入支援/運用/監視サービスを行っております。EC2インスタンスの割引・ビジネスサポート無料・日本円でのお支払いなど、便利でお得になっております。ご活用ください。

AWS移行支援キャンペーン

あなたにおすすめの記事