구글이 Google Research Blog를 통해 사진 속 물체 인식을 위한 새로운 TensorFlow API를 공개했다. 새롭게 공개된 API는 위 사진과 같이 사진속의 다양한 물체의 위치를 특정하고 종류를 분류해주는 기능을 오픈소스 형태로 제공한다. 연구자들에게는 이 모델을 기초로 더 빠른 연구를 진행하게 하고 애플리케이션 개발자들에게는 딥러닝 모델을 직접 만들고 학습시키지 않아도 관련기술을 사용할 수 있게 하는데에 목적이 있다.
이 API는 작년 10월 COCO detection challenge 에서 구글이 내부적으로 개발해 state-of-the-art를 기록했던 딥러닝 모델에 기반하고 있으며 그 후 이 시스템을 기반으로 출간된 여러 논문들의 내용을 추가적으로 포함하고 있다. Google Research Blog에 따르면 현재 NestCam, 스타일 기반 이미지 검색, 구글 스트리트 뷰에서의 글자인식과 같은 구글 서비스에서 사용되고 있는 API와 같은 API라고 한다.
처음 배포된 이번 버전에서는 다음과 같은 기능을 포함한다.
- 학습가능한 여러가지 인식 모델
- Single Shot Multibox Detector (SSD) with MobileNets
- SSD with InceptionV2
- Region-based Fully Convolutional Networks (R-FCN) with Resnet 101
- Faster RCNN with Resnet 101
- Faster RCNN with Inception Resnet v2
- 위의 모델들에 대해 구글이 COCO dataset에서 학습시킨 신경망 weight 정보. 즉, 학습을 직접 시키지 않아도 구글이 대용량 DB에 대해 학습해놓은 결과를 사용할 수 있고 새로운 용도에 맞게 재학습시킬수 있다.
- Jupyter notebook을 이용한 간편한 인터페이스.
- 로컬환경에서 쉽게 학습을 할 수 있는 스크립트와 Google Cloud를 통해 분산 학습을 할 수 있는 기능.
특히 MobileNet을 사용한 SSD 모델은 스마트폰 등의 모바일 기기에서 실시간으로 작동될 수 있을 만큼 가볍다고 한다. (물론 더 연산량이 많은 Faster RCNN등에 비해서는 인식률이 분명히 떨어진다.)
앞으로 구글, 마이크로소프트, 애플, 아마존, 페이스북 등 대형 IT기업들 간의 머신러닝 플랫폼 전쟁이 예상된다. 애플은 얼마 전 WWDC 2017에서 Core ML을 발표했고 마이크로소프트의 CNTK, 아마존의 Amazon AI 등 다양한 머신러닝 라이브러리 및 API가 개발되고 있다. 전략은 회사들마다 다르지만 공통된 목적은 머신러닝 소프트웨어와 그 소프트웨어가 돌아가는 하드웨어(구글의 경우는 Google Cloud, 아마존은 AWS, 엔비디아의 GPU)를 포함하는 머신러닝 플랫폼 생태계를 장악하는 것이라고 생각된다.
구글의 전략은 TensorFlow와 자신들의 연구 결과를 오픈해서 많은 개발자들이 TensorFlow생태계에 들어오도록 하고 결과적으로 현재 머신러닝 하드웨어 시장을 독점하고 있는 엔비디아의 GPU대신, TPU(Tensor Processing Unit)를 이용한 Google Cloud 머신러닝 플랫폼을 사용하도록 함으로서 수익을 만들려는 것으로 보인다.
어쨋건 관련 연구를 수행하려 했던 연구자나 이미지 인식 기술을 서비스에 적용하려고 했던 개발자들에게는 참고해볼만한 소식이다.