본문 바로가기

Biusiness Insight/Data Science

[구글 클라우드] 영상 분석 예제 (Video Intelligence)

반응형

source : GCP qwiklabs

 

Google Cloud Shell 활성화하기

1. GCP Console의 오른쪽 상단 툴바에서 Cloud Shell 열기 버튼 클릭

 

2. 계속(Continue) 클릭

 

결과 화면 :

 

계정 목록 조회

gcloud auth list

 

출력:

Credentialed accounts: - <myaccount>

@<mydomain>.com (active)

출력 예:

Credentialed accounts: - google1623327_student@qwiklabs.net

 

프로젝트 ID 조회 

gcloud config list project

 

출력:

[core] project = <project_ID>

 

출력 예:

[core] project = qwiklabs-gcp-44776a13dea667a6

 

 

Video Intelligence API 사용 설정

Cloud Video Intelligence API 사용

 

승인 설정하기

이 실습에서는 승인을 위해 Qwiklabs GCP 프로젝트에 연결된 서비스 계정을 만들어서 사용합니다.

 

1. Cloud Shell에서 "quickstart" 새 서비스 계정 생성

gcloud iam service-accounts create quickstart

 

2. 서비스 계정 키 파일을 만들고 <your-project-123>을 Qwiklabs GCP 프로젝트 ID로 교체

gcloud iam service-accounts keys create key.json 
--iam-account quickstart@<your-project-123>.iam.gserviceaccount.com

 

3. 서비스 계정 키 파일의 위치를 전달하여 서비스 계정을 인증

gcloud auth activate-service-account --key-file key.json

 

4. 서비스 계정을 사용하여 승인 토큰을 가져옴

gcloud auth print-access-token

 

5. 토큰이 출력됨 (이후 단계에서 이 토큰 사용)

 

 

주석이 달린 동영상 요청 만들기

1. 원하는 편집기(nano, vi 등 또는 gcloud 편집기)를 사용하여 다음 텍스트가 포함된 JSON 요청 파일을 만들고 request.json으로 저장

vi request.json
{ 
  "inputUri":"gs://spls/gsp154/video/chicago.mp4", 
  "features": [ 
     "LABEL_DETECTION" 
  ] 
}

 

2. curl을 사용하여 videos:annotate 요청 생성

- ACCESS_TOKEN을 위에서 출력한 액세스 토큰으로 바꾸고 항목 요청의 파일 이름 전달

curl -s -H 'Content-Type: application/json' \ 
     -H 'Authorization: Bearer ACCESS_TOKEN' \ 
     
'https://videointelligence.googleapis.com/v1/videos:annotate' \ 
     -d @request.json

 

3. Video Intelligence API는 요청을 처리하는 작업을 만듬

출력 : (이후 단계에서 위의 "name"을 사용)

{ 
  "name": "us-west1.18358601230245040268" 
}

 

4. v1.operations 엔드포인트를 호출함으로써 작업 정보 요청

- 위에서 한 것과 같이 ACCESS_TOKEN을 바꾸고, OPERATION_NAME을 방금 수신한 작업 name 값으로 변경

curl -s -H 'Content-Type: application/json' \ 
     -H 'Authorization: Bearer ACCESS_TOKEN' \ 
     
'https://videointelligence.googleapis.com/v1/operations/OPERATION_NAME'

 

출력 : (작업이 완료되면 done 필드가 포함되고 true로 설정됨)

 

5. 요청 후 잠시(일반적으로 약 1분) 기다렸다가 명령을 다시 실행하면, 동일한 요청에서 주석이 달린 결과를 반환

반응형