2016년 4월 27일 수요일

구글 비전 api 사용하기

비전 api는 구글에서 공개한 이미지 분석 api 이다.
라벨, 텍스트(ocr),랜드마크, 로고, 안면인식등의 기능을 제공한다.
가격은 다음과 같다.
각 조회 조건마다 개별적으로 계산되며 월 1000건까지는 무료다. 초과시에는 매 천건당 표기된 구간별 가격이 청구된다.


Feature1 - 1000 units/month1001- 1,000,000 units/month1,000,001 to 5,000,000 units/month5,000,001 - 20,000,000 units/month
Label DetectionFree$5.00$4.00$2.00
OCRFree$2.50$2.00$0.60
Explicit Content DetectionFree$2.50$2.00$0.60
Facial DetectionFree$2.50$2.00$0.60
Landmark DetectionFree$2.50$2.00$0.60
Logo DetectionFree$2.50$2.00$0.60
Image PropertiesFree$2.50$2.00$0.60
아! 혹시 월 2천만건 이상 조회하는 서비스를 만든다면 구글에 문의하라고 하네요 Cloud Vision API Quota Request.

코딩없이 간단하게 테스트하기
https://cloud.google.com/vision/docs/quickstart 로 접속한다.
해당페이지로 가면 간단한 구글클라우드설정 몇번으로 비전api를 사용해 볼 수 있게 해준다. 구글

프로젝트 설정

  1. 구글 클라우드 플랫폼을 사용하기 위해 프로젝트 설정 페이지로 이동해 새로운 프로젝트를 생성해 줍니다. 
  2. 결제 정보를 입력합니다. 유효한 결제 수단인지 테스트용으로 1$가 결제될수도 있지만 실제로 청구되지는 않습니다. 
  3. 클라우드 비전 api를 활성화 합니다.

클라우드 저장소 생성

  1. 저장소 브라우저로 이동합니다.
  2. 버킷을 생성해 줍니다. 실제로 저장할 위치를 얻습니다.
  3. 이름과 저장소 등급, 위치를 설정합니다. 설명이 잘 나와 있습니다.

클라우드 비전 api 호출하기

  1. 이미지를 준비합니다.
  2. 좀전에 생성한 클라우드스토리지의 버킷으로 이동합니다.  준비한 이미지를 업로드 합니다.
  3. 이지지가 업로드 되면 하단의 파일 목록 우측에 '공개링크' 체크박스가 있습니다. 이것을 체크해줘야 해당 이미지를 api 호출시 사용할 수 있습니다.
  4. 빠른실행 페이지에는 아래와 같이 리퀘스트바디를 생성해 주는 폼이 있는데 type과 파일주소를 입력해 주면 됩니다.  type은 api에서 지원하는 타입을  설정해 주시면 되고 파일주소는 좀전에 업로드한 버킷의 이미지를 입력해 주면 됩니다. 
    gs://bucket/demo-image.jpg 의 형식으로 되어 있는데 gs://{내버킷명}/{파일명}의 형식이므로 내 설정에 맞게 바꾸면 됩니다. OAuth인증을 사용해서 진행할 수도 있습니다.
  5. 저는 경복궁 경회루 사진을 이용해서 'LANDMARK_DETECTION'을 해봤습니다.
  6. 다음과 같은 응답이 왔습니다.
    vision.images.annotate executed moments ago time to execute: 2643 msRequest
  7. POST https://vision.googleapis.com/v1/images:annotate?key={YOUR_API_KEY}
    {
    "requests": [
    {
    "features": [
    {
    "type": "LANDMARK_DETECTION"
    }
    ],
    "image": {
    "source": {
    "gcsImageUri": "gs://seonsoo/1611732.jpg"
    }
    }
    }
    ]
    }

    Response

    200
    - Show headers -
    {
    "responses": [
    {
    "landmarkAnnotations": [
    {
    "mid": "/m/02v3t6",
    "description": "Gyeongbokgung",
    "score": 0.50221771,
    "boundingPoly": {
    "vertices": [
    {
    "x": 788,
    "y": 622
    },
    {
    "x": 2356,
    "y": 622
    },
    {
    "x": 2356,
    "y": 1057
    },
    {
    "x": 788,
    "y": 1057
    }
    ]
    },
    "locations": [
    {
    "latLng": {
    "latitude": 37.578256,
    "longitude": 126.977019
    }
    }
    ]
    },
    {
    "mid": "/m/05zp8",
    "description": "Palace",
    "score": 0.31039235,
    "boundingPoly": {
    "vertices": [
    {
    "x": 1185,
    "y": 586
    },
    {
    "x": 2032,
    "y": 586
    },
    {
    "x": 2032,
    "y": 1103
    },
    {
    "x": 1185,
    "y": 1103
    }
    ]
    },
    "locations": [
    {
    "latLng": {
    "latitude": 37.569344,
    "longitude": 126.977969
    }
    }
    ]
    },
    {
    "mid": "/m/048fz",
    "description": "Korea",
    "score": 0.20593485,
    "boundingPoly": {
    "vertices": [
    {
    "x": 729,
    "y": 832
    },
    {
    "x": 1193,
    "y": 832
    },
    {
    "x": 1193,
    "y": 1143
    },
    {
    "x": 729,
    "y": 1143
    }
    ]
    },
    "locations": [
    {
    "latLng": {
    "latitude": 37.529604,
    "longitude": 126.9828
    }
    }
    ]
    }
    ]
    }
    ]
    }
프로젝트 생성전에 구글 비전API가 어느정도의 인식률을 갖고 있는지 체크하는 용도로 사용해 보면 좋을 것 같습니다.

댓글 없음:

댓글 쓰기