このページでは、Video Intelligence API を使用して動画内の有名人を認識する方法について説明します。
Video Intelligence API は、動画コンテンツを検査して、入力された動画または動画セグメントに表示される人の顔を検出して追跡できます。顔を認識すると、Video Intelligence API はその顔の画像とGoogle が照合した有名人のコレクションと顔を比較できます。
一致が見つかった場合、Video Intelligence API はナレッジグラフ マシン ID(MID)、有名人の名前、そしてその顔が動画のどこに表示されるか(境界ボックス)を示します。
機能へのアクセス権をリクエストする
この機能は、専門家が制作したメディア コンテンツを扱うメディア・エンターテイメント企業やその認定パートナーを対象としています。API アクセスをリクエストするには、このフォームに御社の情報とこの機能の用途を記入して送信してください。
動画内の有名人を認識する
次のコードサンプルは、動画内の有名人の顔を認識する方法を示しています。このサンプルでは、リクエストでオプションの outputUri フィールドを使用して、アノテーションの結果の場所を指定しています。
REST
リクエストを送信する
POST リクエストを annotate メソッドに送信する方法を以下に示します。この例では、Google Cloud CLI を使用するプロジェクト用に設定されたサービス アカウントのアクセス トークンを使用します。Google Cloud CLI のインストール、サービス アカウントでのプロジェクトの設定、アクセス トークンの取得を行う手順については、Video Intelligence のクイックスタートをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- INPUT_URI:アノテーションを付ける動画ファイルの Cloud Storage の場所。
- OUTPUT_URI:結果を保存する Cloud Storage の場所。
- PROJECT_NUMBER: Google Cloud プロジェクトの数値識別子
HTTP メソッドと URL:
POST https://videointelligence.googleapis.com/v1p3beta1/videos:annotate
リクエストの本文(JSON):
{
"inputUri": "gs://INPUT_URI",
"outputUri": "gs://OUTPUT_URI",
"features": ["CELEBRITY_RECOGNITION"]
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID"
}
リクエストが成功すると、Video Intelligence はオペレーションの名前を返します。
結果を取得する
リクエストの結果を取得するには、GET リクエストを プロジェクト オペレーション リソースに送信します。このようなリクエストを送信する方法は次のとおりです。
リクエストのデータを使用する前に、次のように置き換えます。
- OPERATION_NAME:Video Intelligence API の呼び出しから返される
nameフィールド。これは、projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
という形式の値です。- PROJECT_NUMBER は Google Cloud プロジェクトの番号です。
- LOCATION_ID は、アノテーションが発生したクラウド リージョンです(例:
us-east1、us-west1、europe-west1、asia-east1)。 - OPERATION_ID は、長時間実行オペレーションの ID です。
HTTP メソッドと URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.videointelligence.v1p3beta1.AnnotateVideoProgress",
"annotationProgress": [
{
"inputUri": "INPUT_URI",
"progressPercent": 100,
"startTime": "2020-05-12T19:36:09.110351Z",
"updateTime": "2020-05-12T19:36:17.519069Z"
}
]
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.videointelligence.v1p3beta1.AnnotateVideoResponse",
"annotationResults": [
{
...
}
]
}
}
動画へのアノテーションの出力は次の例のようになります。
{
"annotationResults": [ {
"inputUri": "INPUT_URI,
"segment": {
"startTimeOffset": {
},
"endTimeOffset": {
"seconds": 19,
"nanos": 519500000
}
},
"celebrityRecognitionAnnotations": {
"celebrityTracks": [ {
"celebrities": [...],
"faceTrack": {...}
}, {
"celebrities": [ {
"celebrity": {
"name": "video-intelligence/CELEBRITY_MID",
"displayName": "CELEBRITY_NAME/var>"
},
"confidence": 0.81873637
} ],
"faceTrack": {
"segment": {
"startTimeOffset": {
"seconds": 1,
"nanos": 459791000
},
"endTimeOffset": {
"seconds": 3,
"nanos": 712041000
}
},
"timestampedObjects": [ {
"normalizedBoundingBox": {...},
"timeOffset": {...}
}, {
"normalizedBoundingBox": {
"left": 0.38046876,
"top": 0.26249999,
"right": 0.60312498,
"bottom": 0.72361112
},
"timeOffset": {
"seconds": 1,
"nanos": 459791000
}
}, {
"normalizedBoundingBox": {...},
"timeOffset": {...}
}]
}
}, {
"celebrities": [...],
"faceTrack": {...}
} ]
}
...
}
オプトアウトのリクエスト
有名人としての自分の画像が Cloud Vision または Video Intelligence API で識別されないようにするには、このフォームをお送りください。
不正行為の報告
Video Intelligence API の有名人認識機能が悪用されている可能性がある場合は、このフォームを使用してお知らせください。