본문 바로가기
Projects/GCP Vision API

스케치인식 기반의 검색엔진

by 꾸준하곰 2022. 6. 8.

1) 개발환경

  • Android OS
  • Java - GCP Vision API, Google Translation API

2) 구현할 기능

  • 그림판
  • 스케치인식 
  • 검색 결과 전시 - 한국어 번역, 네이버쇼핑 URL 중 Query 활용

 


 🌀 GCP Vision API 사용

Google 의 스케치인식 기술 (1)Quick Draw 스케치 게임, (2)Teachable Machine 을 통해 AWS가 아닌 GCP의 Vision API 를 활용하였다.

 

그리고 Teachable Machine 을 활용한다면 직접 사물을 스케치 한 이미지로 데이터 셋을 만들 수 있었기에, Teachable Machine 활용을 고민하였지만, 기술적 어려움과 제한적인 시간이라는 조건 때문에 시도하던 중 포기하게 되었고, 결국 GCP Vision API 를 사용하게 됐다.

(그러나 API 를 사용하면서 단순히 API 를 사용하는 것 이상으로 인공지능 동작원리에 대해 학습하기 위해 많은 자료를 분석하였고, 조금이라도 인식률의 성능을 향상시키기 위해 다양한 이미지 인식 API 를 조사하며 비교 분석하여 직접 시도해보는 과정을 거치게 되었다)

(1) Lable Detection  - GCP Vision API 의 여러 기능 중 하나
서버로 이미지인식을 Request 하면 Response 를 JSON 데이터로 받는데, JSON 데이터는 하나 이상의 Lable 로 구성되어져 있다. 이미지 인식의 결과가 여러개가 있는 것이다. 

- JSON 형식으로 Request 하기 위해 캡처 이미지를 Byte Stream 으로 바꾸고, Base64 문자열로 변형한다.
- 가장 신뢰도가 높은 결과를 Parsing 한다.
(2) 네이버 쇼핑몰 연결 네이버 쇼핑물 URL 의 Query 에 스케치인식 결과를 담아 웹을 띄워준다.

- 처음에는 GCP Vision API 의 인식결과를 크롤링하여 전시하고자 하였다.
- 하지만 신뢰도가 낮은 분류결과까지 불필요하기 전시되었고, 애플리케이션 사용자가 그리는 다양한 사물의 쇼핑사이트를 일일히 가져오기에는 한계가 있어서 네이버 쇼핑몰 URL을 활용하였다.
(3) Google Translation API - GCP 의 Lable Detection 기능은 영어로 분류결과를 보여주기 때문에 Google Translation API 를 활용하여 한국어로 번역한다.
- 한국어로 번역된 분류결과를 네이버 쇼핑몰 URL의 Query 에 탑재한다.

 

 🌀 Teachable Machine 비지도학습 모델 (대안)

GCP Vision API 의 이미지인식을 활용했기 때문에, 처음에 목표한 "스케치인식 구현" 을 달성하지 못하였다. 

그래서, Teachable Machine 으로 직접 분류기를 만들고자 하였다.

 

- Teachable Machine 이 반환한 "케라스 모델(.h)" 을 "텐서플로우 모델(.pb)"로 변환하는 것은 성공했지만, 텐서플로우 모델(.pb)를 텐서플로우 라이트 모델(.tflite)로 변환하는 시도에 있어서 계속된 오류가 발생하였다.

- 파이썬 언어로 변환하는 과정에서 변환된 텐서플로우 모델(.pb) 을 인식하지 못하는 오류였다.

- 따라서, 프로젝트에서 사용하고자 한 케라스 모델(.h5)을 텐서플로우 모델(.pb)로 변환하는 과정에서부터 "변환코드와 케라스 모델(.h5)의 호환성" 관견 문제가 있었을 것이라고 결론을 내렸다.

'Projects > GCP Vision API' 카테고리의 다른 글

Get/Post 방식으로 네이버쇼핑몰 전시  (0) 2022.06.08

댓글