이 페이지에서는 Video Intelligence API를 사용하여 동영상에서 유명인을 인식하는 방법을 설명합니다.
Video Intelligence API는 동영상 콘텐츠를 검사하여 입력 동영상 또는 동영상 세그먼트에 표시되는 사람 얼굴을 감지하고 추적합니다. 얼굴이 인식되면 Video Intelligence API가 Google에서 수집한 유명인 컬렉션과 얼굴을 비교합니다.
일치하는 항목이 발견되면 Video Intelligence API가 지식 정보 머신 ID(MID) 및 유명인 이름과 동영상에서 얼굴이 표시된 위치를 나타내는 경계 상자를 제공합니다.
기능에 대한 액세스 요청
이 기능은 전문적으로 제작된 미디어 콘텐츠에서 미디어 및 엔터테인먼트 회사나 승인을 받은 파트너가 사용하기 위한 것입니다. API 액세스를 요청하려면 이 양식에 회사 및 사용 사례에 대한 정보를 작성하여 제출하세요.
동영상에서 유명인 인식
다음 코드 샘플은 동영상에서 유명인의 얼굴을 인식하는 방법을 보여줍니다. 이 샘플은 요청에 선택적인 outputUri
필드를 사용하여 주석 결과의 위치를 지정합니다.
REST
요청 전송
다음은 annotate
메서드에 POST
요청을 보내는 방법을 보여줍니다. 이 예시에서는 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
요청을 projects.operations 리소스로 전송해야 합니다. 다음은 이러한 요청을 전송하는 방법을 보여줍니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- 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 유명인 인식 기능이 오용된 것으로 의심되는 경우에는 이 양식을 사용하여 알려주시기 바랍니다.