IT/Cloud / / 2020. 3. 7. 20:26

[GCP] Google Cloud Vision API 사용해보기

반응형

GCP

 

 

이번 포스팅에서 사용해볼 GCP에서 제공하는 API는 Cloud Vision API입니다.

 

Cloud Vision API는 무엇일까요?

이 API는 구글에서 공개한 이미지 분석 API입니다. 이미지 분석을 통해 이미지 내의 라벨, 텍스트(OCR), 랜드마크, 로고, 안면인식 등 다양한 기능을 제공하고 있죠.

월 1000건 까지는 무료이니 간단하게 구현해보고 테스트할 목적이라면 금액적인 부담이 없습니다!

 

예를 들어, 아래와 같은 사진이 있다면 

 

출처 : 본인

Cloud Vision API가 이 사진을 분석해 보이는 건물이 어떤 건물인지 알수가 있죠!

 

그럼 실제로 한번 테스트 해보도록 하겠습니다.

 

전체 프로세스는 다음과 같습니다.

1. GCP에서 Cloud Storage 버킷 만들기

2. 이미지를 Cloud Storage에 업로드

3. Vision API에 요청 보내기

 

당연히 GCP에서 동작하니 먼저 GCP를 가입해야겠죠?

 

GCP 가입

Google Cloud Platform Homepage

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

 

1. GCP에서 Cloud Storage 버킷 만들기

GCP 대시보드에서 프로젝트를 하나 만듭니다.

프로젝트 만들기

 

이후 대시보드 좌측의 Storage 메뉴에서 버킷을 하나 생성합니다.

 

버킷 생성

 

버킷 생성 시 아래와 같은 정보를 입력합니다.

1. 버킷 이름

2. 데이터 저장 위치 : 단일리전 , 사우스캐롤라니아

3. 데이터 기본 스토리지 클래스 : 스탠다드 선택

4. 객체 엑세스를 제어하는 방식 : 세분화왼 엑세스 제어 선택

5. 고급 설정

 

위의 정보를 모두 입력했다면 버킷이 하나 생성 됩니다.

 

생성한 버킷
버킷 세부 정보

 

2. 이미지를 Cloud Storage에 업로드

자 이제 위에 보았던 이미지를 버킷에 넣어 봅시다.

 

해당 버킷에서 파일을 업로드 합니다.

 

파일 업로드
업로드 완료

 

3. Vision API에 요청 보내기

이제 Live API에서 테스트 해봅시다.

 

LIVE API Homapage

 

API 탐색기 사용  |  Cloud Vision API  |  Google Cloud

이 빠른 시작에서는 다음과 같은 작업 과정을 안내합니다. Cloud Storage 버킷 만들기 이미지를 Cloud Storage에 업로드하고 공개 상태로 설정 해당 이미지로 Vision API에 요청 보내기 이 단계를 완료하는 데 5분 정도 걸립니다. Cloud Storage에 무료로 최대 5GB의 데이터를 저장하고, Vision API에 매달 최대 1,000건의 기능 요청을 보낼 수 있습니다. 시작하기 전에 아직 프로젝트를 설정하고 Google Clou

cloud.google.com

Live API 하단의 Request Body에 아래와 같이 적습니다.

 

{
  "requests": [
    {
      "features": [
        {
          "type": "LANDMARK_DETECTION"
        }
      ],
      "image": {
        "source": {
          "gcsImageUri": "gs://vision_api_burket/demo-img.jpg"
        }
      }
    }
  ]
}

 여기서 type은 총 13가지 종류가 있습니다.

 

  • “TYPE_UNSPECIFIED"
  • "FACE_DETECTION"
  • "LANDMARK_DETECTION"
  • "LOGO_DETECTION"
  • "LABEL_DETECTION"
  • "TEXT_DETECTION"
  • "DOCUMENT_TEXT_DETECTION"
  • "SAFE_SEARCH_DETECTION"
  • "IMAGE_PROPERTIES"
  • "CROP_HINTS"
  • "WEB_DETECTION"
  • "PRODUCT_SEARCH"
  • "OBJECT_LOCALIZATION"

오늘 테스트해볼 타입은 랜드마크입니다.

 

GCS Image URL은 버킷 세부정보에서 확인하실 수 있습니다.

 

위의 바디를 정확히 입력 후 Execute를 눌러준 뒤 나오는 Json 타입의 결과를 확인합니다.

 

{
  "responses": [
    {
      "landmarkAnnotations": [
        {
          "mid": "/g/1tfcn4bn",
          "description": "Sapporo Beer Garden",
          "score": 0.87597823,
          "boundingPoly": {
            "vertices": [
              {
                "x": 1517,
                "y": 1539
              },
              {
                "x": 3278,
                "y": 1539
              },
              {
                "x": 3278,
                "y": 2580
              },
              {
                "x": 1517,
                "y": 2580
              }
            ]
          },
          "locations": [
            {
              "latLng": {
                "latitude": 43.071334199999995,
                "longitude": 141.3690782
              }
            }
          ]
        },
        {
          "mid": "/m/03cd7tk",
          "description": "Sapporo Beer Museum",
          "score": 0.8211875,
          "boundingPoly": {
            "vertices": [
              {
                "x": 1660,
                "y": 1411
              },
              {
                "x": 3346,
                "y": 1411
              },
              {
                "x": 3346,
                "y": 2565
              },
              {
                "x": 1660,
                "y": 2565
              }
            ]
          },
          "locations": [
            {
              "latLng": {
                "latitude": 43.0714671,
                "longitude": 141.3689124
              }
            }
          ]
        }
      ]
    }
  ]
}

 

결과를 확인하시면 

"description": "Sapporo Beer Garden",

"description": "Sapporo Beer Museum",

를 확인하실 수 있습니다.

 

네 맞습니다. 이 사진은 제가 삿뽀로에 맥주 박물관에 갔을 때 찍은 사진입니다.

 

사진만으로도 어디서 찍었는지 알 수 있으니 신기하지 않나요?

 

이 Cloud Vision API는 총 13가지 타입이 있으니 여러 방면으로 응용할 수 있습니다.

 

또한, Spring프레임워크와 연동된 라이브러리도 있다고 하니 웹 개발자분들은 해당 문서를 확인하시면 좋을 듯 합니다.

반응형

'IT > Cloud' 카테고리의 다른 글

EC2 Instance에 ZABBIX 구축하기 (2) [AWS]  (0) 2019.03.06
EC2 Instance에 ZABBIX 구축하기 (1) [AWS]  (0) 2019.03.06
EC2 Linux Instance 생성하기 [AWS]  (0) 2019.03.06
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유