안드로이드 스튜디오, 카메라X, Jetpack, ML Kit, 코랩, 텐서플로우, 파이어베이스 등 구글 개발자 도구를 사용하여 몇 분 만에 작물 질병을 식별하는 인공지능 앱을 구축하는...

편집:본지
편집:본지

현지시간 16일부터 18일까지 전세계 수천명의 개발자가 구글 기술에 대한 커뮤니티 행사인 'DevFest 2020'이 온라인으로 개최되고 있다.

올해 DevFest에 앞서 15일 키노트 데모 영상을 통해 구글과 커뮤니티의 친숙한 이들이 함께 모여 다양한 구글 개발자 도구를 사용하여 몇 분 만에 작물 질병을 감지하는 인공지능(AI) 앱을 구축하는 방법을 보여주었다. 이 쉽고 간편하게 구현되는 몇 가지 방법들을 요약해 본다.

먼저, 안드로이드 앱 개발자 쳇 하세(Chet Haase)는 식물에 대한 정보를 인식하는 머신러닝 앱을 만드는 것으로 시작해 본다. 이를 위해서는 카메라 기능과 머신러닝 추론이 필요하다.

이 앱은 JVM에서 동작하는 프로그래밍 언어 코틀린(Kotlin- 다운)으로 작성되며, 이미지 처리를 위한별도 Thread 처리가 필요하지 않는 카메라X(CameraX- 다운)를 이용해 사진을 찍고 기기 내 머신러닝 분석을 위한 ML Kit(다운)을 사용했다. 핵심 기능은 사진을 찍고, 분석하고, 결과를 표시하는 것이다.

ML KIt를 사용하면 개체를 사용하여 이미지의 내용을 쉽게 인식할 수 있으므로 Chet는 카메라X에서 프레임을 가져 와서 사용한다. 이것이 성공하면 이미지 라벨러(ImageLabels) 컬렉션을 수신하여 텍스트 문자열로 변환하고 결과와 함께 토스트(Toast)를 표시한다.

앱이 이미지가 식물임을 감지하는 데모
앱이 이미지가 식물임을 감지하는 데모

또한 구글 텐서플로우 개발자 거스 마틴스(Gus Martins)는 좀 더 깊이 파보기 위해 콩과 식물의 질병을 감지하기 위한 머신러닝 모델을 설정하는 방법을 보여줬다.

그는 클라우드 호스팅 개발 도구인 구글 콜랩(Google Colab- 다운)을 사용하여 텐서플로우(다운)에서 호스팅 되는 기존 머신러닝 모델에서 학습 내용을 전송한다. 그런 다음 모든 것을 한데 모아 텐서플루우 라이트 메이커(Tensorflow Lite Model Maker- 다운)를 사용하여 사용자 정의 데이터 세트를 사용하여 모델을 학습했다.

이를 통해 그는 카메라의 이미지와 함께 모델을 사용하여 콩 잎에 대한 추론을 얻어 병에 걸렸는지 여부를 확인한다. 덕분에 앱을 실행할 때 이제, 잎을 보고 있다고 말하는 대신, 그것은 우리에게 콩이 건강한지, 병에 걸렸는지 여부를 식별한다.

식물의 건강 여부를 감지하는 앱 데모
식물의 건강 여부를 감지하는 앱 데모

모바일 앱 개발 백엔드 서비스를 제공하는 BaaS(Backend as a Service) 플랫폼으로 사용자 관리, 푸쉬 알림, 데이터베이스 등 미리 개발된 백엔드 기능을 API 형태로 제공해 백엔드 개발에 드는 비용 및 시간을 최소화하고 앱 개발자가 프론트엔드 개발에 더 집중할 수 있도록 도와주는 구글 파이어베이스(Firebase- 다운) 개발자인 토드 커펠만(Todd Kerpelman)은 안드로이드 스튜디오에서 파이어베이스 플러그인(다운)을 사용하여 분석력을 추가할 것을 제안하고, 사용자들이 앱과 어떻게 상호작용하고 있는지 정확히 알아낼 수 있다.

파이어베이스 대시보드에서 이 데이터를 확인할 수 있는 방법은 매우 많지만 이 데이터를 볼 수 있는 한 가지 재미있는 방법은 실시간 보고를 통해 사용자의 행동을 이해하고 실시간 사용 데이터를 확인해 주는 스트림뷰(StreamView)를 사용해 어떤 종류의 분석 결과를 실시간으로 보여 주는 것이다.

Firebase Streamview를 사용하면 실시간 분석을 볼 수 있다
Firebase Streamview를 사용하면 실시간 분석을 볼 수 있다

예를 들어, 파이어베이스를 사용하면 앱에 A / B 테스트를 추가하여 사용자에게 가장 적합한 모델을 선택할 수 있다. 앱을 최신 상태로 유지하기 위한 원격 구성이 있으며 사용자가 로그인하기를 원하면 앱에 쉽게 로그인할 수 있다.

UX 디자이너인 디당(Di Dang)은 앱을 제품화하려면 AI 디자인 결정이 사용자에게 어떤 영향을 미치는지 염두에 두는 것이 중요하다고 한다.

예를 들어, 신뢰 구간을 표시하는 것이 합당한 지 여부 또는 방법을 고려해야 한다. 앱 채택 및 참여에 필수적인 머신러닝 기반 앱의 기능 및 한계에 대한 사용자 기대치를 설정하기 위해 온보딩 환경을 설계하는 방법을 고려한다. AI 디자인 결정에 대한 자세한 지침은 People + AI 가이드 북(다운)을 참고하면 된다.

People & AI Guidebook에서 AI 디자인 결정에 대해 자세히 알아볼 수 있다
People & AI Guidebook에서 AI 디자인 결정에 대해 자세히 알아볼 수 있다

이 사용 사례는 식물 질병에 초점을 맞추고 있지만 머신러닝 기반 예측이 사람이나 커뮤니티와 교차하는 사례와 다른 사례의 경우 개인 정보 보호 및 공정성과 같은 책임있는 AI 이슈에 대해 절대적으로 생각해야 한다. 이 방법은 텐서플로우를 사용하여 책임있는 AI(Responsible AI) 관행을 머신러닝 워크플로에 통합하는 방법은 해당 링크(보기)를 통해 자세히 알 수 있다. 

웹 개발자인 폴 킨란(Paul Kinlan)은 사용자가 모든 플랫폼에 앱을 설치할 수 있는 PWA(다운) 를 빌드하는 방법을 보여준다. 카메라를 AI 교육 및 추론을 사용할 수 있도록 자바스크립트 전용 ML 라이브러리 텐서플로제이에스(TensorFlow.js)와 결합하여 머신러닝을 통합하여 브라우저에서 실행되는 놀라운 경험을 구축할 수 있다. 추가 다운로드는 필요하지 않는다.

표준 레이아웃 (HTML 파일, 매니페스트 및 서비스 워커를 사용하여 PWA로 만들기)과 텐서플로우 구성이 포함 된 데이터 폴더로 프로젝트를 설정한 후 모든 JS 및 CSS가 로드될 때까지 기다리고 앱을 초기화 한다. 그런 다음 도우미 개체로 카메라를 설정하고 텐서플로우 모델을 로드한다. 활성화 된 후 UI를 설정할 수 있다.

PWA는 식물이 건강한지 여부를 알려준다. 앱을 다운로드할 필요가 없다
PWA는 식물이 건강한지 여부를 알려준다. 앱을 다운로드할 필요가 없다

마지막으로 영상에서는 텐서플로우 및 우먼 테크메이커(Women Techmakers) 개발자인 푸자 라잔(Puuja Rajan)은 개발자가 문제를 제출하거나 파일을 전송하여 개선, 최적화 및 추가 기능을 제안할 수 있도록 이 프로젝트도 오픈 소스를 원할 수 있음을 상기시킨다. 풀 요청. 더 많은 사람들 앞에서 열심히 일할 수 있는 좋은 방법으로 오픈 소스 프로젝트 시작(Starting an Open Source Project- 보기)에서 자세히 알아볼 수 있다 .

이제, 안드로이드 스튜디오(Android Studio), 카메라X, Jetpack, ML Kit, 코랩(Colab), 텐서플로우, 파이어베이스(Firebase), 크롬 및 구글 클라우드의 도구를 사용하여 실제 앱을 구축할 수 있는 플랫폼으로 어떤 의미에서는 완성된 프로젝트는 아니며, 완료 로드맵이 있는 최소 실행 가능한 제품을 구글의 개발자 도구(다운)를 사용하여 결합할 수 있는 방법에 대한 개념 증명이다.(아래는 위 내용의 키노트 데모 영상)

 

관련기사

저작권자 © 인공지능신문 무단전재 및 재배포 금지