[데모/코드] Google의 머신러닝, Maps, Firebase 플랫폼을 활용한 위치기반 서비스 만들기

얼마 전 개최된 ‘개발자들의 축제’ 2017 Google I/O에서는 Google의 향후 1년의 방향성을 보여주는 수많은 발표가 있었습니다. SPH에서는 올해 Google I/O 행사에서 발표된 기술들을 직접 사용해 보고 이 기술들을 Google Maps APIs에 적용하여 서비스를 만든다면 어떤 새로운 가능성이 열릴 지 연구하고 두 가지 데모를 만들어 보았습니다. (특히 웹/모바일 서비스에서 백엔드 개발의 수고를 크게 덜어주는 Google Firebase가 사용했습니다.) 개발에 사용된 코드도 공개드리니 재미있게 봐주셨으면 좋겠습니다 ^^

DEMO 1:

Machine Learning + Maps API를 이용한 Location Intelligence Service

Google의 CEO 선다 피차이는 키노트 발표에서 2016년이 “mobile first”의 해 였다면 2017년은 “AI first,” 곧 “인공지능 우선”의 해라고 말했습니다. Google의 모든 기술 및 사업영역에서 인공지능이 활발히 활용될 것이라는 예고였는데요. 기업과 개발자들로 하여금 이미 트레이닝 된 머신러닝 모델을 API를 통해 손쉽게 서비스와 제품에 사용할 수 있도록 Machine Learning APIs를 본격적으로 공개했습니다.

<Google의 머신러닝 APIs 기능>

SPH R&D팀은 위와 같이 다양한 Google Machine Learning APIs 중 강력한 이미지 분석 기능을 제공하는 Cloud Vision API를 선택했습니다.

<Google Cloud Vision APIs 기능>

Cloud Vision API는 이미지 내 사물, 사람, 문자를 인식하여 그 의미를 분석해 주는 기술입니다. 아래 화면은 Google Cloud Vision API를 간단하게 테스트 해 본 결과인데요. 왼쪽에 있는 사진 속 장소는 어디일까요? 바로 일본의 도쿄타워 입니다. Cloud Vision API를 사용 해 인식 한 결과 도쿄타워가 91%의 일치율로 결과 값으로 나왔습니다. 재미 있는 점은 이보다 더 낮은 일치율로 나온 결과가 프랑스의 에펠타워 였는데요. SPH 멤버들에게 해당 사진을 보여주고 바로 장소를 맞춰보라고 했을 때 에펠타워라고 대답한 사람이 가장 많았다는 점입니다. 어떤 경우 사람 보다 높은 적중률을 보이는  Cloud Vision API! 더욱 신기한 건, 유명 장소를 다양한 각도에서 촬영한 다수의 사진들을 적용해도 같은 장소로 인식 할 수 있다고 합니다.

<Google Cloud Vision API 사용 예시>

자, 그럼 이렇게 놀라운 Cloud Vision API와 Google Maps API를 사용하면 어떤 재미있는 기능 만들 수 있을까요? SPH가 만들어본 데모는 바로 특정 장소의 사진을 올리면 빠르게 그 위치를 찾아주고, 다수의 사진을 업로드한 경우 필요하다면 각 장소를 방문하는데 최적 경로를 찾아주는 기능 입니다. 장소 검색, 여행 일기 같은 서비스에 활용될 수 있으리라 생각되는데요. 아래는 해당 데모의 개발 구조와 데모 상세 이미지입니다. Maps APIs 중에는 세계 곳곳의 장소에 대한 정보를 제공하는 Places API와 길찾기 기능을 제공하는 Directions API가 사용되었습니다.

0. 데모 개발 구조

<Google Cloud Vision API + Maps API 결합 데모 구조>

1. 이미지 업로드

특정 장소를 촬영한 이미지를 드래그앤드롭 방식으로 업로드합니다.

2. Cloud Vision API 이미지 인식 및 분석

Google Cloud Vision API가 빠른 속도로 업로드된 이미지를 인식하고 분석합니다.

3. 분석 결과 디스플레이 

Cloud Vision API가 각 장소의 위치를 분석한 값이 나오면 이를 지도 위에 시각화 합니다. 각 사진 속 지명과 정확한 위치, 각 위치와 관련된 키워드가 해시태그로 태깅되어 확인할 수 있습니다. (Google Maps Places API)

4. 시간/이동수단에 따른 최적 경로 검색

원하는 시간과 이동수단을 선택하면 검색한 이미지 속 장소를 방문할 수 있는 최적 경로를 계산하고 시각화 해 줍니다. (Google Maps Directions API)

데모 시연 영상에서 사용 방법과 실제 속도 또한 확인하실 수 있습니다.

이와 같이 이미지에서 도출 할 수 있는 정보를 빠르게 추출해 주는 Cloud Vision API와 다양한 지도 기반 기능을 제공하는  Maps API를 결합하면 또 다른 창의적인 서비스를 만들 수 있으리라 기대합니다.

DEMO 2:

Google Awareness API + Firebase를 이용한 Context Awareness Service

<Google Awareness API 설명>

작년 Google I/O에서 처음 발표된 Awareness API는 말 그대로 사람이나 사물의 위치, 시간, 날씨, 행동 및 기기의 비콘과 헤드폰 등 7가지 정보에 기반한 “상황 인식” 기술을 제공하는 API 입니다.  지난 해 두번의 포스팅을 통해 Awareness API에 대해 자세히 소개드린 바 있습니다.

(1) I/O 2016에서 발표한 Awareness API 기술 A to Z

(2) Awareness API로 사용자 상황에 반응하는 개인맞춤형 앱 개발하기

<Google Awareness API와 Firebase로 개발한 상황인식 서비스 데모>

올해에는 Awareness API와 더불어 Google I/O에서도 정말 많은 업데이트 소식이 발표되었던 Google Firebase를 활용하여 위치기반 서비스 데모를 만들어 보았습니다. 개발자가 직접 SPH 본사가 위치한 여의도 일대를 걸어다니며 실시간 위치 트래킹 및 지오펜싱 enter/exit 알림, 특정 행동 인식 기능을 확인했습니다.

1. 실시간 위치 추적

트래킹 하고자 하는 사물 또는 사람의 위치를 실시간으로 시각화 합니다. (Fused Location Provider API)

2. 지오펜싱 추적 및 알림 기능

추적하고자 하는 사물 또는 사람이 미리 지정한 지오펜스에 진입 또는 이탈 했을 때 실시간으로 알림 메세지를 전송합니다. (Awareness Fence API & Firebase cloud messaging)

3. Activity detection – 행동 인식 

미리 지정한 특정 행동 또는 패턴이 발생하였을 시 이를 시각화 할 수 있습니다. (Awareness Snapshot API)

아래 동영상에서 좀더 상세한 데모 시연 결과를 확인하실 수 있습니다.

아래는 해당 데모의 개발 구조 입니다. 안드로이드 부문의 Fused Location API, Snapshot API, Fence API가 각각 위치 추적, 이동 경로 파악, 지오펜스 관리 기능을 제공하고 이 정보를  Firebase의 database, hosting, cloud messaging 기능을 통해 백엔드에서 처리하는 구조로 이루어져 있습니다.

<Context AwarenessService 구조>

이번 데모는 어떻게 보셨나요? 머신러닝, 지도, 상황인지 기술 등 여러개의 API를 결합하여 비즈니스가 구상하고 있는 서비스를 기술적으로 손쉽게 구현할 수 있다는 점을 몸소 확인할 수 있는 기회였다고 생각합니다.  궁금하신 분들을 위해 코드를 공유 드립니다.  >>Github에서 코드 확인하기

1. Google Awareness API + Firebase를 이용한 Context Awareness Service

1.1. Awareness API에서 측정된 정보를 모니터링 하는 웹 프로젝트

  • Folder Name : GoogleIOSample_Awareness
  • HTML5/CSS3, Javacript, jQuery
  • Google Maps Javascript API

1.2. Awareness API을 이용하여 Location & Context를 측위하는 안드로이드 프로젝트

  • Folder Name : GoogleIOSample_Awareness_Android
  • Android 4.4 Kitkat
  • Google Play Service – Google Awareness Service, Google Location Service

2. Machine Learning + Maps API를 이용한 Location Intelligence Service

2.1. Google Cloud Machine Learning의 Vision API를 이용하여 위치정보를 출력하는 웹 프로젝트

  • Folder Name : GoogleIOSample_MachineLearning
  • HTML5/CSS3, Javacript, jQuery
  • Google Maps Javascript API – Directions Service, Place Service

2.2. Google Cloud Machine Learning의 Vision API를 호출하는 Node.js 서버

  • Folder Name : JSServer
  • Node.js, express
  • Google Cloud Machine Learning Service – Cloud Vision API

긴 글 읽어주셔서 감사합니다 ^^!

SPH는 CARTO, Google Maps, SuperMap 등 다양한 케이스에 적용될 수 있는 다채로운 제품군을 보유하고 있으며 고객의 사례에 꼭 맞는 무료 세미나 및 개별 컨설팅을 제공하고 있습니다. 각 케이스에 맞춰 더욱 자세한 이야기를 나누고 싶으시다면 여기에서 문의 주시길 바라며, SPH에서 발행하는 GIS/로케이션 인텔리전스 관련 최신 소식을 받아보고 싶으신 분들은 페이스북 페이지 또는 뉴스레터를 구독해 주시길 바랍니다. 감사합니다.

 

 

[언론기사/발표자료] 진화하는 구글맵, 뭐가 좋을까?

지난 6월 30일, 2017 Google I/O Extended Seoul for Maps 세미나가 Google Campus Seoul에서 개최되었습니다! Google I/O Extended는 SPH에서 매 해 기획하고 주최하는 인기 행사로, 초여름에 열리는 Google I/O 컨퍼런스에서 발표되는 최신 기술 소식을 지도, 로케이션 인텔리전스, GIS 의 관점에서 큐레이션하고 SPH의 전문지식을 더하여 발표하는 세미나입니다.

<2017 Google I/O Extended Seoul for Maps>

<I/O 참관기와 키노트 발표 요점정리를 전달하는 SPH 한용희 과장>

이번 세미나는 Google이 한국의 스타트업을 위해 마련한 트렌디한 공간, Google Campus Seoul에서 열렸으며 2017 Google I/O Extended 공식 홈페이지에 등록된 만큼 관심이 뜨거웠는데요. 무려 170명에 가까운 분들이 자리 해 주셔서 넓은 세미나 공간을 꽉 채워주셨습니다. 이번 행사의 자세한 내용은 지디넷코리아 기사를 통해서도 소개가 되었습니다. 아래는 기사 내용입니다.

 

진화하는 구글맵, 뭐가 좋을까

2017.06.29 ZDNet Korea

세계적으로 디지털 영토 전쟁이 한창인 가운데, 가장 널리 사용되는 ‘구글맵’의 API 활용 사례와 머신러닝 기술이 적용된 기능이 소개돼 뜨거운 관심이 모였다.

구글맵 한국 총판 파트너인 SPH는 29일 삼성동 구글캠퍼스에서 ‘2017 구글 I/O 익스텐디드 서울 포 맵스’(2017 Google I/O Extended Seoul for Maps)란 주제로 세미나를 개최했다.

SPH는 이번 세미나를 통해 위치기반 사업을 위한 구글 맵 API 사용 사례를 소개한 뒤, 지난 달 미국에서 진행된 구글의 개발자 행사 I/O 2017에서 소개된 다양한 서비스와 기술을 간략히 설명했다. 또 로케이션 인텔리전스 트렌드 리뷰와 함께, 구글 머신 러닝 API 기술을 활용한 서비스를 공유해 관심을 받았다. 아울러 SPH의 구글맵 상품 구성과 가격 등을 공개했다.

이 날 행사에 참석한 청중들의 주의를 집중시킨 구글의 기술은 지난 I/O 행사 때에도 눈길을 끈 비주얼 포지셔닝 시스템(Visual Positioning system, VPS)이다.

VPS는 카메라를 통해 주변 환경을 읽고, 이를 바탕으로 내가 현재 어디에 있는지 판단하는 기술이다.

VR(가상현실) 기기와 AR(증강현실) 기술, 그리고 구글맵과 실내지도 서비스 등을 결합한 VPS 기술을 마트에서 활용하면 사용자는 원하는 물건이 있는 위치까지 쉽게 찾아갈 수 있다. 시각 장애인에게 특히 유용한 서비스가 될 수 있다.

또 구글 어웨어니스(Awareness) API를 사용할 경우 사용자의 현재 상황에 지능적으로 반응하는 서비스를 만들 수 있다. 시간, 위치, 장소, 비콘, 헤드폰 등의 변화를 감지해 이에 맞는 설정을 할 수 있는데, 이를 펜스(Fence) API와 결합할 경우 설정된 지오펜스(실제의 지형 위에 구획된 가상의 반경)에 사용자가 머물거나 나왔을 때 특별한 이벤트를 발생시킬 수 있다. 가령 사용자가 집 근처로 오면 자동으로 실내 등을 켤 수 있는 서비스가 가능하다.

아울러 스냅샷 API를 구글맵과 함께 활용할 경우 차량의 트래킹 정보를 수집할 수 있는데, 차량이 특정 공간에 얼마나 멈췄는지, 어떤 이슈가 있었는지 점검이 가능하다. 택배 차량을 추적한다고 가정했을 때, 배송 과정에 어떤 문제가 발생했는지 바로 확인할 수 있다.​

뿐만 아니라 구글은 머신러닝 기술을 통해 구글 주차 예측 시스템도 제공 중이다. 사용자가 목적지를 검색했을 때 주차 어려움을 미리 확인할 수 있는 기능으로, 현재 미국 25개 도시 주차 난이도를 예측해 사용자에게 알려주고 있다. 이를 통해 ‘주차 전쟁’에 대한 스트레스를 덜 수 있다.

이 밖에 20만개의 선박데이터와 구글 클라우드 컴퓨팅과 머신러닝 기술이 결합된 글로벌 피싱 워치 맵은 불법 어업 활동을 하는 선박을 골라내는 데 활용된다. 수집된 정보를 머신러닝을 통해 선박의 행동 패턴을 익히고, 해당 선박의 성격을 파악하는 것이다.

이처럼 구글맵과 구글이 제공하는 다양한 API를 접목시켜 다양한 영역에서 새로운 서비스와 사업의 편리성을 꾀할 수 있다는 것이 SPH 측 설명하는 구글맵의 강점이다.

한편 SPH는 구글맵스 프리미엄 상품을 소개했다. 이 회사는 국내에서 구글맵 사용을 원하는 기업들에게 연 단위 계약을 진행하고 있다.

라이선스 제품은 총 세 개로 구성돼 있는데 상업적인 목적으로 사용되는 익스터널 상품은 연간 100만 크레딧을 약 1천700만원(계약 조건에 따라 상이)에 판매한다. 같은 상품을 기업 내부 용도로만 쓰는 경우는 50만 크레딧이 주어진다. 차량이나 선박 등 움직이는 이동체 트래킹에 사용하는 어셋 상품은 최소 1천667대 계약부터 시작된다.

라이선스 계약을 통해 구글맵을 사용하는 기업들에게는 보다 안정적인 서비스와, 24시간 지원이 제공된다.

SPH 관계자는 “200만개 웹 사이트와 앱에서 구글맵 API가 사용되고 있으며, 200개국에 지도 서비스가 제공되고 있다”며 “모든 플랫폼에 API가 제공되고 다양한 활용이 가능한 점이 구글맵의 강점”이라고 설명했다.

실제로 2017 Google I/O에 참석하여 세미나에서 생생한 후기를 들려준 SPH 한용희 과장의 못 다한 이야기와 사진들은 블로그 포스팅으로도 꾸려졌습니다. 아울러 발표자료가 궁금하신 분들 께서는 세미나 페이지에서 발표자료 신청 form에 정보를 기입해 주시면 즉시 다운로드 링크가 담긴 메일이 발송됩니다.

SPH는 CARTO, Google Maps, SuperMap 등 다양한 케이스에 적용될 수 있는 다채로운 제품군을 보유하고 있으며 고객의 사례에 꼭 맞는 무료 세미나 및 개별 컨설팅을 제공하고 있습니다. 각 케이스에 맞춰 더욱 자세한 이야기를 나누고 싶으시다면 여기에서 문의 주시길 바라며, SPH에서 발행하는 GIS/로케이션 인텔리전스 관련 최신 소식을 받아보고 싶으신 분들은 페이스북 페이지 또는 뉴스레터를 구독해 주시길 바랍니다. 감사합니다.