객체 추적은 입력 동영상에서 감지된 객체를 추적합니다. 객체 추적 요청을 수행하려면 annotate
메서드를 호출하고 features
필드에 OBJECT_TRACKING
을 지정합니다.
동영상 또는 동영상 세그먼트에서 감지된 항목 및 공간 위치의 경우 객체 추적 요청은 이러한 항목 및 공간 위치의 적절한 라벨로 동영상에 주석을 추가합니다. 예를 들어 신호등을 지나는 차량의 동영상은 '자동차', '트럭', '자전거', '타이어', '조명', '창' 등과 같은 라벨을 생성할 수 있습니다. 각 라벨에는 일련의 경계 상자가 포함되며, 각 경계 상자에는 동영상의 시작 부분을 기준으로 재생 시간 오프셋을 나타내는 시간 오프셋이 포함된 시간 세그먼트가 연결되어 있습니다. 또한 주석에는 Google Knowledge Graph Search API에서 항목에 대한 추가 정보를 검색하는 데 사용할 수 있는 항목 ID와 같은 추가 항목 정보가 포함되어 있습니다.
객체 추적과 라벨 인식
객체 추적과 라벨 인식은 다릅니다. 라벨 인식은 경계 상자 없이 라벨을 제공하는 반면, 객체 추적은 매 시간 단계마다 각 객체 인스턴스의 경계 상자와 함께 특정 동영상에 있는 개별 객체의 라벨을 제공합니다.
동일한 객체 유형의 여러 인스턴스가 ObjectTrackingAnnotation
메시지의 여러 인스턴스에 할당되며, 여기서 지정된 객체 트랙의 모든 어커런스는 자체 ObjectTrackingAnnotation
인스턴스에 유지됩니다. 예를 들어 동영상에 5초 동안 나타나는 빨간색 자동차와 파란색 자동차가 있다면 추적 요청은 ObjectTrackingAnnotation
의 두 인스턴스를 반환해야 합니다. 첫 번째 인스턴스에는 두 자동차 중 하나의 위치(예: 빨간색 자동차)가 포함되고 두 번째 인스턴스에는 다른 차량의 위치가 포함됩니다.
Cloud Storage에서 동영상 객체 추적 요청
다음 샘플은 Cloud Storage에 있는 파일에서 객체 추적을 보여줍니다.
REST
프로세스 요청 전송
다음은 annotate
메서드에 POST
요청을 보내는 방법을 보여줍니다.
이 예시에서는 Google Cloud CLI를 사용하는 프로젝트의 서비스 계정을 설정하기 위해 액세스 토큰을 사용합니다. Google Cloud CLI 설치, 서비스 계정으로 프로젝트 설정, 액세스 토큰 획득 방법은 Video Intelligence 빠른 시작을 참조하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- INPUT_URI: STORAGE_URI
예를 들면 다음과 같습니다.
"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4",
- PROJECT_NUMBER: Google Cloud 프로젝트의 숫자 식별자
HTTP 메서드 및 URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 요청 본문:
{ "inputUri": "STORAGE_URI", "features": ["OBJECT_TRACKING"] }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
요청이 성공하면 Video Intelligence API가 작업의 name
을 반환합니다. 위 항목은 이러한 응답의 예시를 보여줍니다. 여기서 PROJECT_NUMBER
는 프로젝트의 번호이고 OPERATION_ID
는 요청에 대해 생성된 장기 실행 작업의 ID입니다.
결과 가져오기
요청 결과를 가져오려면 다음 예시에 표시된 것처럼 videos:annotate
호출로부터 반환된 작업 이름을 사용하여 GET
을 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- OPERATION_NAME: Video Intelligence API로 반환되는 작업의 이름입니다. 작업 이름은
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
형식입니다. - PROJECT_NUMBER: Google Cloud 프로젝트의 숫자 식별자
HTTP 메서드 및 URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
주석 결과 다운로드
소스에서 대상 버킷으로 주석을 복사합니다(파일 및 객체 복사 참조).
gcloud storage cp gcs_uri gs://my-bucket
참고: 사용자가 출력 gcs uri를 제공하면 주석이 해당 gcs uri에 저장됩니다.
Go
Java
Node.js
Video Intelligence에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 Video Intelligence 참고 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 Video Intelligence 참고 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 Video Intelligence 참고 문서를 참조하세요.
로컬 파일에서 동영상 객체 추적 요청
다음 샘플은 로컬에 저장된 파일에 대한 객체 추적을 보여줍니다.
REST
프로세스 요청 전송
로컬 동영상 파일에서 주석을 수행하려면 동영상 파일의 콘텐츠를 base64로 인코딩합니다.
요청의 inputContent
필드에 base64로 인코딩된 콘텐츠를 포함합니다.
동영상 파일의 콘텐츠를 base64로 인코딩하는 방법에 대한 자세한 내용은 Base64 인코딩을 참조하세요.
다음은 videos:annotate
메서드에 POST
요청을 보내는 방법을 보여줍니다. 이 예시에서는 Google Cloud CLI를 사용하는 프로젝트의 서비스 계정을 설정하기 위해 액세스 토큰을 사용합니다. Google Cloud CLI 설치, 서비스 계정으로 프로젝트 설정, 액세스 토큰 획득 방법은 Video Intelligence 빠른 시작을 참조하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- inputContent: BASE64_ENCODED_CONTENT
예:"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- PROJECT_NUMBER: Google Cloud 프로젝트의 숫자 식별자
HTTP 메서드 및 URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 요청 본문:
{ "inputContent": "BASE64_ENCODED_CONTENT", "features": ["OBJECT_TRACKING"] }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
요청이 성공하면 Video Intelligence가 작업의 name
을 반환합니다. 다음은 이러한 응답의 예시를 보여줍니다. 여기서 PROJECT_NUMBER
는 프로젝트 수이고, OPERATION_ID
는 요청에 대해 생성된 장기 실행 작업의 ID입니다.
결과 가져오기
요청 결과를 가져오려면 다음 예시에 표시된 것처럼 videos:annotate
호출로부터 반환된 작업 이름을 사용하여 GET
을 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- OPERATION_NAME: Video Intelligence API로 반환되는 작업의 이름입니다. 작업 이름은
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
형식입니다. - PROJECT_NUMBER: Google Cloud 프로젝트의 숫자 식별자
HTTP 메서드 및 URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
Go
Java
Node.js
Video Intelligence에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 Video Intelligence 참고 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 Video Intelligence 참고 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 Video Intelligence 참고 문서를 참조하세요.