안경잡이개발자

728x90
반응형

※ Google Cloud Vision 서비스란?

 

  일단 Google Cloud Vision 서비스에 대해 설명하겠다. 이미지 인식, 객체 검출 등에서 매우 효과적으로 사용할 수 있는 API를 제공한다. 예를 들어 한 장의 이미지를 입력으로 넣었을 때, 그 이미지가 무엇인지 알려주는 기능(API)이 필요할 때 Google Cloud Vision 서비스를 사용할 수 있다. 더불어 자기가 가지고 있는 커스텀 데이터를 활용하여 이미지 분류 모델을 학습시킬 수도 있다.

 

 

Google Cloud Vision API 사용 방법

 

  일단 Google Cloud Platform 콘솔로 들어간다.

 

  ▶ Google Cloud Platform: console.cloud.google.com/

 

  필자의 경우 안 쓰던 구글 계정을 이용해 접속했다. 참고로 서비스를 처음 사용하는 경우 다음과 같이 약관에 동의하라는 화면이 나올 수 있다.

 

 

  이후에 [무료로 사용해 보기] 버튼을 눌러 시작하면 된다.

 

 

  필자처럼 계정으로 처음 GCP를 사용하는 경우 $300의 무료 크레딧을 받을 수 있다. (2021년 2월 기준) 일단 Google Cloud Vision은 유료 서비스이기 때문에 당연히 결제 카드 정보를 등록해야 한다. 필자는 가지고 있던 체크카드 번호를 입력하여 등록했다.

 

 

  바로 Cloud Vision API를 검색한다.

 

 

  이후에 Cloud Vision API를 [사용] 버튼을 눌러 활성화한다.

 

 

  이제 [사용자 인증 정보 만들기] 버튼을 눌러 인증 정보를 생성할 수 있다.

 

 

 

이때 [서비스 계정]을 만들어서 곧바로 서비스를 이용할 수 있는 키(key) 파일을 받도록 한다.

 

 

  [서비스 계정 만들기]를 눌러 계정을 생성하자.

 

 

  자신이 원하는 이름으로 서비스 계정 이름을 설정할 수 있다.

 

 

  이제 해당 서비스를 사용하기 위한 키(key)를 생성한다. 이를 위해 [키 만들기] 버튼을 누른다.

 

 

  키 유형으로는 JSON 형식을 선택한다.

 

 

참고로 이렇게 만들어진 키(key) 파일은 매우 조심히 관리해야 한다. 이 키(key) 파일을 이용해 API 호출을 마음껏 할 수 있기 때문이다. 먼저 service_secret_key.json서버(server)나 개인 PC에 위치시키자. 그리고 환경변수 설정을 한다. python 코드로는 다음과 같이 작성할 수 있다.

 

import os

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'service_secret_key.json'

 

이후에 google-cloud-vision을 다운로드하면 된다.

 

!pip install --upgrade google-cloud-vision

 

  소스코드 예시는 다음과 같다. 간단히 하나의 사진을 Google Cloud Vision을 이용해 분류하겠다. 여기에서 쓰인 사진은 구글 공식 API 문서에서 제공하는 사진이다.

 

 

import io
import os

# Imports the Google Cloud client library
from google.cloud import vision

# Instantiates a client
client = vision.ImageAnnotatorClient()

# The name of the image file to annotate
file_name = os.path.abspath('wakeupcat.jpg')

# Loads the image into memory
with io.open(file_name, 'rb') as image_file:
    content = image_file.read()

image = vision.Image(content=content)

# Performs label detection on the image file
response = client.label_detection(image=image)
labels = response.label_annotations

print('Labels:')
for label in labels:
    print(label.description)

 

[실행 결과]

 

  실행 결과는 다음과 같다.

 

Labels:
Cat
Window
Felidae
Carnivore
Jaw
Ear
Small to medium-sized cats
Window blind
Gesture
Whiskers
728x90
반응형