티스토리 뷰

Google Cloud Platform 의 매력을 뽑자면 빅쿼리, CloudML, 기계학습 등 여러가지가 있겠지만 그 중에서도 사용자가 가장 쉽게 접근할 수 있는 Vision API ( Google Cloud 기계학습 API ) 에 대해서 다뤄보도록 한다. 

사실 Cloud Platform 을 사용하면서 아쉬운 점이 한글화 된 문서가 부족하다는 점이고 그것이 곧 사용장벽을 높게 만든다는 생각이 든다. 또한 어색한 번역 문서도 문제다. 여하튼, 이 글이 누군가에게 정말 쉬운 문서가 되었으면 하는 바람으로 최대한 쉽게 작성해본다. (그리고 대부분의 Vision API  를 설명하는 블로그가 node.js 기준으로 되어 있어서 내게는 쉽지 않았다.)

우선 Vision API 를 사용하기 위해서 화면의 좌측 리스트 중 사용자 인증 정보로 접근하고, "사용자 인증 정보 만들기"를 클릭한다. Vision API앞서 살펴본 것 처럼 이미지 파일을 웹에 업로드 해서 바로 확인할 수 도 있지만 여기서는 로컬에서 Cloud 와의 통신을 통해 결과를 가져올 것이다. 그 통신을 위한 인증 정보를 생성하는 과정이라고 생각하면 된다.

서비스 계정 키 를 클릭한다.

서비스 계정의 종류를 선택하고 키 유형은 JSON 을 사용하도록 하자. JSON 을 사용하는 이유에 대해서 더 깊게 알아보지는 못했지만 대부분의 사용자 글에서 말하기를 다루기가 조금 쉽단다. 여기 예제에서는 키 자체를 파일로 사용할 예정이기 때문에 다루기 쉽거나 어려운 느낌은 없었다.

키 파일이 생성되면 로컬 PC 로 자동 저장된다. 이 키는 Cloud 로 통신할 수 있는 인증 정보를 갖고 있으므로 절대 노출이 되면 안된다. 공용 PC 를 사용하는 경우 특히 유의해서 다뤄야 하겠다.

아래처럼 생성된 서비스 계정 키를 확인할 수 있다.

이제 Cloud 에서의 준비는 끝났다. 로컬 머신에서 Cloud 와 통신하기 위한 google-cloud-vision 을 설치하도록 하자. (여기서는 python 을 통한 예제를 선보일 것이기 때문에 필요한 과정이다.) 딱히 중요한 정보는 아니지만 개인 로컬 PC 는 우분투 16.04 이다.

sudo pip install --upgrade google-cloud-vision

준비가 끝났으면 앞서 Cloud 에서 제공 받은 키 파일을 로컬 PC 의 적당한 위치로 복사해놓자. 테스트할 디렉터리는 다음과 같은 파일들이 미리 준비되어 있다. GCP-ML-8498a87b7f32.json 은 키 파일이고, test.jpg 는 테스트에 사용될 이미지, test.py  는 미리 구현되어 있는 Vision API 를 위한 코드이다.

그리고 test.py 안에서 사용 될 API 를 위해 키 파일의 위치를 환경변수에 설정해줘야 한다. 아래와 같이 진행하거나 코드 상에 FIX 해줘도 된다. (어떤 방식으로든 GOOGLE_APPLICATION_CREDENTIALS 라는 환경변수가 설정만 되면 된다.)

이제 코드를 돌려보면 아래와 같은 결과를 얻을 수 있다. 이미지는 구글에서 재사용 가능한 이미지를 검색해서 나온 송중기씨이며, joy 항목에 VERY_LIKELY 가 확인된다. 그리고 얼굴의 위치 정보를 확인할 수 있기 때문에 향후에 다른 용도의 학습을 위한 크롭도 가능하겠다.

아래에 관련된 모든 코드를 첨부한다. 하지만 이 코드는 Google Cloud Platform 문서에 이미 모두 있는 내용이므로 참고만 하면 되겠다.

Cloud Platform 에서 제공하는 Vision API 의 모든 샘플은 아래 링크에서 확인 가능하다.
https://cloud.google.com/vision/docs/all-samples?hl=ko

듣기만 했을 때는 마냥 어렵게 느껴졌던 부분인데 한번 실습해보니 정확하게 이해가 된다. 역시 이 분야는 백문이 불여일타.


'개발 > Cloud (GCP)' 카테고리의 다른 글

GCP SDK 에서 datalab 접속 IP 변경  (4) 2017.06.22
GCP SDK 사용  (2) 2017.06.21
결제(billing) 시스템  (0) 2017.06.14
저장소(Storage) 사용  (2) 2017.06.14
Cloud Shell 에 대한 뻘글  (0) 2017.06.13
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday