이번 포스팅에서 사용해볼 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
1. GCP에서 Cloud Storage 버킷 만들기
GCP 대시보드에서 프로젝트를 하나 만듭니다.
이후 대시보드 좌측의 Storage 메뉴에서 버킷을 하나 생성합니다.
버킷 생성 시 아래와 같은 정보를 입력합니다.
1. 버킷 이름
2. 데이터 저장 위치 : 단일리전 , 사우스캐롤라니아
3. 데이터 기본 스토리지 클래스 : 스탠다드 선택
4. 객체 엑세스를 제어하는 방식 : 세분화왼 엑세스 제어 선택
5. 고급 설정
위의 정보를 모두 입력했다면 버킷이 하나 생성 됩니다.
2. 이미지를 Cloud Storage에 업로드
자 이제 위에 보았던 이미지를 버킷에 넣어 봅시다.
해당 버킷에서 파일을 업로드 합니다.
3. Vision API에 요청 보내기
이제 Live API에서 테스트 해봅시다.
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 |