Android 앱에 기계 학습을 추가하는 방법

작가: Peter Berry
창조 날짜: 16 팔월 2021
업데이트 날짜: 1 칠월 2024
Anonim
Android 스튜디오를 사용하여 Android 애플리케이션의 기존 여러 활동에 탐색 드로어 추가
동영상: Android 스튜디오를 사용하여 Android 애플리케이션의 기존 여러 활동에 탐색 드로어 추가

콘텐츠


머신 러닝 (ML)은 모바일 사용자를위한 혁신적이고 매력적이며 독특한 경험을 제공 할 수 있도록 도와줍니다.

ML을 마스터 한 후에는 ML을 사용하여 주제를 기반으로 사진을 자동으로 구성하고, 라이브 스트림에서 사람의 얼굴을 식별 및 추적하고, 이미지에서 텍스트를 추출하는 등의 다양한 응용 프로그램을 만들 수 있습니다. .

그러나 ML은 초보자에게 친숙하지 않습니다! 강력한 머신 러닝 기능으로 Android 앱을 향상 시키려면 정확히 어디서 시작해야합니까?

이 기사에서는 ML을 강력하게 활용할 수있는 SDK (Software Development Kit)에 대한 개요를 제공합니다. 제로 ML 경험. 이 기사를 마치면 이미지 레이블링, 바코드 스캔, 얼굴 및 유명한 랜드 마크 인식 및 기타 강력한 ML 작업을 수행 할 수있는 지능형 ML 기반 앱을 만드는 데 필요한 기초가 마련됩니다.

Google의 머신 러닝 키트를 만나보세요

TensorFlow 및 CloudVision과 같은 기술이 출시됨에 따라 ML이 점점 널리 사용되고 있지만 이러한 기술은 희미하지 않습니다! 일반적으로 신경망과 데이터 분석에 대한 깊은 이해가 필요합니다. 시작 TensorFlow와 같은 기술로

당신이 해야 할 것 ML에 대한 경험이 있으면 머신 러닝 기반 모바일 앱을 만드는 데 시간이 오래 걸리고 복잡하며 비용이 많이 드는 프로세스가 될 수 있으므로 자체 ML 모델을 교육하기에 충분한 데이터를 제공 한 다음 ML 모델을 효율적으로 실행하도록 최적화해야합니다. 모바일 환경. 개별 개발자이거나 제한된 리소스를 보유한 경우 ML 지식을 실제로 적용하지 못할 수 있습니다.

ML Kit는 대중에게 머신 러닝을 제공하려는 Google의 시도입니다.

ML Kit는 일반적으로 Cloud Vision, TensorFlow 및 Android Neural Networks API를 포함하여 광범위한 ML 지식이 필요한 몇 가지 강력한 ML 기술을 번들로 제공합니다. ML Kit는 이러한 전문 ML 기술을 이미지에서 텍스트 추출, 바코드 스캔 및 사진 내용 식별을 포함하여 일반적인 모바일 사용 사례를위한 사전 훈련 된 모델과 결합합니다.


ML에 대한 사전 지식이 있는지 여부에 관계없이 ML Kit를 사용하여 강력한 기계 학습 기능을 Android에 추가 할 수 있습니다. iOS 앱 – 일부 데이터를 텍스트 인식 또는 언어 식별 API와 같은 ML Kit의 올바른 부분으로 전달하면이 API는 기계 학습을 사용하여 응답을 반환합니다.

ML 키트 API는 어떻게 사용합니까?

ML Kit는 Firebase 플랫폼의 일부로 배포되는 여러 API로 나뉩니다. ML 키트 API를 사용하려면 Android Studio 프로젝트와 해당 Firebase 프로젝트간에 연결을 만든 다음 Firebase와 통신해야합니다.

ML 키트 모델의 대부분은 로컬에서 다운로드하여 사용할 수있는 온 디바이스 모델로 제공되지만 일부 모델은 클라우드에서도 사용 가능하므로 앱은 장치의 인터넷 연결을 통해 ML 기반 작업을 수행 할 수 있습니다.

각 접근 방식마다 고유 한 장단점이 있으므로 로컬 또는 원격 처리가 특정 앱에 가장 적합한 지 결정해야합니다. 두 모델 모두에 대한 지원을 추가 한 다음 사용자가 런타임에 사용할 모델을 결정할 수 있습니다. 또는 장치가 Wi-Fi에 연결된 경우 클라우드 기반 모델 만 사용하는 등 현재 조건에 가장 적합한 모델을 선택하도록 앱을 구성 할 수 있습니다.

로컬 모델을 선택하면 사용자가 인터넷에 연결되어 있는지 여부에 관계없이 앱의 기계 학습 기능을 항상 사용할 수 있습니다. 모든 작업이 로컬에서 수행되므로 ML 키트를 사용하여 라이브 비디오 스트림을 조작하는 경우와 같이 앱에서 대량의 데이터를 빠르게 처리해야하는 경우 장치 모델이 이상적입니다.

한편 클라우드 모델은 Google Cloud Platform의 머신 러닝 기술을 활용하므로 일반적으로 클라우드 기반 모델은 기기에 비해 정확도가 높습니다. 예를 들어 이미지 라벨링 API의 기기 모델에는 400 개의 라벨이 있지만 클라우드 모델에는 라벨 10,000 개.


API에 따라 클라우드에서만 사용할 수있는 일부 기능이있을 수도 있습니다. 예를 들어, 텍스트 인식 API는 클라우드 기반 모델을 사용하는 경우 비 라틴 문자 만 식별 할 수 있습니다.

클라우드 기반 API는 Blaze 수준 Firebase 프로젝트에서만 사용할 수 있으므로 ML Kit의 클라우드 모델을 사용하기 전에 종량제 Blaze 요금제로 업그레이드해야합니다.

클라우드 모델을 탐색하기로 결정한 경우, 글을 쓰는 시점에 모든 ML Kit API에 대해 사용 가능한 무료 할당량이있었습니다. 클라우드 기반 이미지 라벨링을 실험하고 싶다면 Firebase 프로젝트를 Blaze 요금제로 업그레이드하고 1,000 개 미만의 이미지에서 API를 테스트 한 다음 무료 스파크 요금제로 다시 전환 할 수 있습니다. 그러나 이용 약관은 시간이 지남에 따라 불쾌한 습관이 있으므로, 예상치 못한 청구서에 부딪치지 않도록 Blaze로 업그레이드하기 전에 작은 글씨를 읽으십시오!

Text Recognition API를 사용하여 이미지에서 텍스트를 식별하십시오.

Text Recognition API는 텍스트를 지능적으로 식별, 분석 및 처리 할 수 ​​있습니다.

이 API를 사용하면 이미지에서 텍스트를 추출하는 응용 프로그램을 만들 수 있으므로 사용자는 지루한 수동 데이터 입력에 시간을 낭비하지 않아도됩니다. 예를 들어, 텍스트 인식 API를 사용하여 사용자가 문제의 품목 사진을 찍기 만하면 영수증, 송장, 명함 또는 영양 레이블에서 정보를 추출하고 기록 할 수 있습니다.

텍스트 인식 API를 번역 앱의 첫 번째 단계로 사용할 수도 있습니다. 여기서 사용자는 익숙하지 않은 텍스트의 사진을 찍고 API는 이미지에서 모든 텍스트를 추출하여 번역 서비스에 전달할 수 있습니다.

ML Kit의 기기 내 텍스트 인식 API는 모든 라틴어 기반 언어로 텍스트를 식별 할 수있는 반면, 클라우드 기반 상대방은 중국어, 일본어 및 한국어 문자를 포함하여 더 다양한 언어와 문자를 인식 할 수 있습니다. 클라우드 기반 모델은 이미지에서 희소 텍스트를 추출하고 밀도가 높은 문서에서 텍스트를 추출하도록 최적화되어 있으므로 앱에서 사용할 모델을 결정할 때 고려해야합니다.

이 API에 대한 실제 경험을 원하십니까? 그런 다음 Text Recognition API를 사용하여 이미지에서 텍스트를 추출 할 수있는 응용 프로그램을 만드는 단계별 가이드를 확인하십시오.

이미지의 내용 이해 : 이미지 라벨링 API

이미지 레이블링 API는 추가 컨텍스트 메타 데이터없이 위치, 사람, 제품 및 동물을 포함하여 이미지의 엔티티를 인식 할 수 있습니다. 이미지 레이블링 API는 감지 된 엔티티에 대한 정보를 레이블 형식으로 리턴합니다. 예를 들어 다음 스크린 샷에서 API에 자연 사진을 제공했으며 "숲"및 "강"과 같은 레이블로 응답했습니다.

이미지의 내용을 인식하는이 기능을 사용하면 주제에 따라 사진에 태그를 지정하는 앱을 만들 수 있습니다. 부적절한 사용자 제출 콘텐츠를 자동으로 식별하여 앱에서 제거하는 필터 또는 고급 검색 기능의 기초로 사용됩니다.

많은 ML 키트 API는 이미지 레이블링 API를 포함하여 여러 신뢰도 점수와 함께 여러 가능한 결과를 반환합니다. 이미지 라벨링에 푸들 사진을 전달하면 '푸들', '개', '애완 동물'및 '작은 동물'과 같은 라벨이 각 점수에 대한 API의 신뢰도를 나타내는 다양한 점수로 반환 될 수 있습니다. 이 시나리오에서 "푸들"이 가장 높은 신뢰 점수를 갖기를 바랍니다.

이 신뢰도 점수를 사용하여 응용 프로그램이 특정 레이블에 대해 작동하기 전에 충족해야하는 임계 값을 만들 수 있습니다 (예 : 사용자에게 표시하거나이 레이블로 사진에 태그 지정).

이미지 라벨링은 기기와 클라우드에서 모두 사용할 수 있지만 클라우드 모델을 선택하면 기기 모델에 포함 된 400 개의 라벨에 비해 10,000 개가 넘는 라벨에 액세스 할 수 있습니다.

이미지 라벨링 API에 대한 자세한 내용은 머신 러닝으로 이미지의 콘텐츠 결정을 참조하십시오. 이 기사에서는 이미지를 처리하는 애플리케이션을 빌드 한 다음 해당 이미지에서 감지 된 각 엔티티의 레이블 및 신뢰도 점수를 리턴합니다. 또한이 앱에서 온 디바이스 및 클라우드 모델을 구현하므로 선택한 모델에 따라 결과가 어떻게 다른지 정확히 확인할 수 있습니다.

표현 및 얼굴 추적 이해 : 얼굴 인식 API

얼굴 인식 API는 사진, 비디오 및 라이브 스트림에서 사람의 얼굴을 찾은 다음 위치, 크기 및 방향을 포함하여 감지 된 각 얼굴에 대한 정보를 추출 할 수 있습니다.

이 API를 사용하면 사용자가 최신 헤드 샷 주변의 빈 공간을 자동으로 자르는 등의 방법으로 사진을 편집 할 수 있습니다.

얼굴 인식 API는 이미지에만 국한되지 않습니다.이 API를 비디오에 적용 할 수도 있습니다. 예를 들어 비디오 피드의 모든 얼굴을 식별 한 다음 모든 것을 흐리게하는 앱을 만들 수 있습니다 Skype의 배경 흐림 기능과 유사한 얼굴입니다.

얼굴 인식은 항상 ML Kit의 API와 달리 얼굴 인식은 실시간으로 사용할 수있을 정도로 빠른 기기에서 수행됩니다. 아니 클라우드 모델을 포함하십시오.

얼굴을 감지하는 것 외에도이 API에는 탐색 할 가치가있는 몇 가지 추가 기능이 있습니다. 먼저, 얼굴 감지 API는 눈, 입술 및 귀와 같은 얼굴 랜드 마크를 식별 한 다음 각 랜드 마크에 대한 정확한 좌표를 검색 할 수 있습니다. 이 획기적인 인식 탐지 된 각 얼굴의 정확한지도를 제공합니다. 사용자의 카메라 피드에 Snapchat 스타일 마스크와 필터를 추가하는 증강 현실 (AR) 앱을 만드는 데 적합합니다.

얼굴 인식 API는 얼굴을 제공합니다 분류. 현재 ML Kit는 눈을 뜨고 웃으며 두 가지 얼굴 분류를 지원합니다.

이 분류를 핸즈프리 컨트롤과 같은 접근성 서비스의 기초로 사용하거나 플레이어의 표정에 반응하는 게임을 만들 수 있습니다. 카메라 앱을 만들 때 누군가가 웃고 있는지 또는 눈을 뜨고 있는지 감지하는 기능도 유용 할 수 있습니다. 결국 많은 사진을 찍는 것보다 나쁘지 않으며 나중에 누군가 눈을 감았 음을 알게됩니다. ...에서 모든 샷.

마지막으로 얼굴 인식 API에는 얼굴 추적 구성 요소가 포함되어 있습니다. 얼굴 추적 구성 요소는 얼굴에 ID를 할당 한 다음 여러 연속 이미지 또는 비디오 프레임에서 해당 얼굴을 추적합니다. 이것은 얼굴입니다 추적 진실한 얼굴이 아닌 인식. 얼굴 뒤에서 얼굴 감지 API는 얼굴의 위치와 움직임을 추적 한 다음이 얼굴이 같은 사람의 것일 가능성이 있지만 궁극적으로 사람의 신원을 알지 못하는 것으로 추론합니다.

얼굴 인식 API를 직접 사용해보십시오! 머신 러닝 및 Firebase ML 키트를 사용하여 얼굴 인식 앱을 구축하는 방법을 알아보십시오.

Firebase 및 ML을 사용한 바코드 스캔

바코드 스캐닝은 다른 머신 러닝 API만큼 흥미 진진하지는 않지만 ML Kit에서 가장 접근하기 쉬운 부분 중 하나입니다.

바코드를 스캔 할 때는 전문적인 하드웨어 나 소프트웨어가 필요하지 않으므로 바코드 스캔 API를 사용하는 동시에 구형 또는 저예산 기기 사용자를 포함하여 최대한 많은 사람이 앱에 액세스 할 수 있습니다. 장치에 카메라 기능이 있으면 바코드를 스캔하는 데 아무런 문제가 없습니다.

ML Kit의 Barcode Scanning API는 인쇄 및 디지털 바코드에서 광범위한 정보를 추출 할 수 있으므로 사용자가 지루한 수동 데이터 입력을 수행하지 않고도 실제 세계에서 애플리케이션으로 정보를 빠르고 쉽고 쉽게 전달할 수 있습니다. .

바코드 스캔 API가 바코드에서 인식하고 구문 분석 할 수있는 9 가지 데이터 유형이 있습니다.

  • TYPE_CALENDAR_EVENT. 여기에는 이벤트 위치, 주최자 및 시작 및 종료 시간과 같은 정보가 포함됩니다.이벤트를 홍보하는 경우 포스터 나 전단지에 인쇄 된 바코드를 포함 시키거나 웹 사이트에 디지털 바코드를 표시 할 수 있습니다. 잠재적 참석자는 바코드를 스캔하여 이벤트에 대한 모든 정보를 추출 할 수 있습니다.
  • TYPE_CONTACT_INFO. 이 데이터 유형에는 연락처의 이메일 주소, 이름, 전화 번호 및 제목과 같은 정보가 포함됩니다.
  • TYPE_DRIVER_LICENSE. 여기에는 운전 면허증과 관련된 거리, 도시, 주, 이름 및 생년월일과 같은 정보가 포함됩니다.
  • TYPE_EMAIL. 이 데이터 유형에는 이메일 주소와 이메일 제목 및 본문이 포함됩니다.
  • TYPE_GEO. 여기에는 특정 지리적 지점에 대한 위도 및 경도가 포함되어있어 사용자와 위치를 쉽게 공유하거나 다른 사용자와 위치를 공유 할 수 있습니다. 위치 바코드를 사용하여 사용자의 현재 위치에 대한 유용한 정보를 표시하거나 위치 기반 모바일 게임의 기초로 위치 기반 이벤트를 트리거 할 수도 있습니다.
  • TYPE_PHONE. 여기에는 전화 번호와 전화 번호 유형 (예 : 직장 전화 번호 또는 집 전화 번호)이 포함됩니다.
  • TYPE_SMS. 여기에는 일부 SMS 본문 및 SMS와 관련된 전화 번호가 포함됩니다.
  • TYPE_URL. 이 데이터 유형에는 URL과 URL 제목이 포함됩니다. TYPE_URL 바코드를 스캔하는 것은 오타 나 철자를 잘못 입력하지 않고 사용자가 길고 복잡한 URL을 수동으로 입력하는 것보다 훨씬 쉽습니다.
  • TYPE_WIFI. 여기에는 Wi-Fi 네트워크의 SSID 및 비밀번호와 OPEN, WEP 또는 WPA와 같은 암호화 유형이 포함됩니다. Wi-Fi 바코드는 Wi-Fi 자격 증명을 공유하는 가장 쉬운 방법 중 하나이며 사용자가이 정보를 잘못 입력 할 위험을 완전히 제거합니다.

바코드 스캔 API는 Codabar, Code 39, EAN-8, ITF 및 UPC-A와 같은 선형 형식과 Aztec, Data Matrix 및 QR Code와 같은 2D 형식을 포함한 다양한 바코드의 데이터를 구문 분석 할 수 있습니다.

최종 사용자가 작업을보다 쉽게 ​​수행 할 수 있도록이 API는 지원되는 모든 바코드를 동시에 스캔하고 바코드 방향과 상관없이 데이터를 추출 할 수 있으므로 사용자가 스캔 할 때 바코드가 완전히 뒤집혀도 상관 없습니다!

클라우드에서의 기계 학습 : 랜드 마크 인식 API

ML Kit의 Landmark Recognition API를 사용하여 이미지 내에서 잘 알려진 자연 및 구성된 랜드 마크를 식별 할 수 있습니다.

이 API에 유명한 랜드 마크가 포함 된 이미지를 전달하면 해당 랜드 마크의 이름, 랜드 마크의 위도 및 경도 값 및 이미지 내에서 랜드 마크가 발견 된 위치를 나타내는 경계 상자가 반환됩니다.

Landmark Recognition API를 사용하여 사용자의 사진에 자동으로 태그를 지정하거나보다 맞춤화 된 경험을 제공하는 응용 프로그램을 만들 수 있습니다 (예 : 사용자가 에펠 탑 사진을 찍는 것을 앱에서 인식하는 경우 흥미로운 사실을 제공 할 수 있음) 이 랜드 마크는 사용자가 다음에 방문 할 수있는 근처의 유사한 관광 명소를 제안합니다.

일반적으로 ML Kit의 경우 Landmark Detection API는 클라우드 기반 API로만 사용할 수 있으므로 장치가 인터넷에 연결되어있는 경우에만 응용 프로그램에서 랜드 마크 감지를 수행 할 수 있습니다.

언어 식별 API : 해외 사용자를위한 개발

오늘날 Android 앱은 다양한 언어를 사용하는 사용자가 전 세계 어디에서나 사용됩니다.

ML Kit의 언어 식별 API를 사용하면 텍스트를 가져 와서 작성된 언어를 결정하여 Android 앱이 해외 사용자에게 어필 할 수 있습니다. 언어 식별 API는 아랍어, 불가리아어, 중국어, 그리스어, 힌디어, 일본어 및 러시아어

이 텍스트는 언어 정보를 거의 포함하지 않으므로 사용자가 제공 한 텍스트를 처리하는 모든 응용 프로그램에이 API를 추가 할 수 있습니다. 번역 앱의 첫 번째 단계로 언어 식별 API를 번역 앱에서 사용할 수도 있습니다. 아무것도님이 사용중인 언어를 알고 있습니다. 예를 들어 사용자가 기기의 카메라를 메뉴로 가리키면 앱에서 언어 식별 API를 사용하여 메뉴가 프랑스어로 작성된 것으로 확인한 다음 Cloud Translation API ( 아마도 Text Recognition API를 사용하여 텍스트를 추출한 후?)

문제가되는 문자열에 따라 Language Identification API는 여러 잠재적 언어를 신뢰 점수와 함께 반환하여 감지 된 언어 중 가장 정확한 언어를 결정할 수 있습니다. ML Kit 작성 당시에는 동일한 문자열 내에서 여러 다른 언어를 식별 할 수 없었습니다.

이 API가 실시간으로 언어 식별을 제공 할 수 있도록 언어 식별 API는 온 디바이스 모델로만 사용할 수 있습니다.

출시 예정 : 스마트 회신

Google은 향후 ML Kit에 더 많은 API를 추가 할 계획이지만 하나의 예정된 API에 대해 이미 알고 있습니다.

ML Kit 웹 사이트에 따르면, 다가오는 스마트 응답 API 현재 컨텍스트에 맞는 텍스트 스 니펫을 제안하여 애플리케이션에서 컨텍스트 메시징 응답을 제공 할 수 있습니다. 이 API에 대해 이미 알고있는 내용에 따르면 Smart Reply는 Android 앱, Wear OS 및 Gmail에서 이미 사용할 수있는 제안 된 응답 기능과 유사합니다.

다음 스크린 샷은 제안 된 응답 기능이 현재 Gmail에서 어떻게 보이는지 보여줍니다.

무엇 향후 계획? ML 키트와 함께 TensorFlow Lite 사용

ML Kit는 일반적인 모바일 사용 사례를 위해 사전 구축 된 모델을 제공하지만 어느 시점에서 이러한 기성 모델을 넘어서고 싶을 수도 있습니다.

TensorFlow Lite를 사용하여 고유 한 ML 모델을 생성 한 다음 ML Kit를 사용하여 배포 할 수 있습니다. 그러나 ML Kit의 기성품 API와 달리 자체 ML 모델을 사용하려면 중요한 ML 전문 지식의 양.

TensorFlow Lite 모델을 생성하면 Firebase에 업로드하면 Google에서 해당 모델의 호스팅 및 게재를 최종 사용자에게 제공합니다. 이 시나리오에서 ML Kit는 사용자 지정 모델에 대한 API 계층 역할을하므로 사용자 지정 모델 사용과 관련된 일부 작업을 단순화합니다. 특히 ML Kit는 모델의 최신 버전을 사용자에게 자동으로 푸시하므로 모델을 조정할 때마다 앱을 업데이트 할 필요가 없습니다.

최상의 사용자 환경을 제공하기 위해 응용 프로그램이 새로운 버전의 TensorFlow Lite 모델을 다운로드하기 전에 충족해야하는 조건을 지정할 수 있습니다 (예 : 장치가 유휴 상태이거나 충전 중이거나 Wi-에 연결된 경우에만 모델 업데이트). Fi. 다른 Firebase 서비스와 함께 ML Kit 및 TensorFlow Lite를 사용할 수도 있습니다 (예 : Firebase Remote Config 및 Firebase A / B Testing 사용).

사전 구축 된 모델을 넘어서거나 ML Kit의 기존 모델이 귀하의 요구를 충족시키지 못하는 경우 공식 Firebase 문서를 통해 자체 머신 러닝 모델 생성에 대해 자세히 알아볼 수 있습니다.

마무리

이 기사에서는 Google 기계 학습 키트의 각 구성 요소를 살펴보고 각 ML 키트 API를 사용하려는 일반적인 시나리오에 대해 설명했습니다.

Google은 앞으로 더 많은 API를 추가 할 계획이므로 다음에 ML Kit에 추가 할 머신 러닝 API는 무엇입니까? 아래 의견에 알려주십시오!

재무 정보를 쓰레기통에 버릴 수는 없습니다. 쉽게 검색디지털 파일과 동일한 이유는 무엇입니까?중요한 파일을 사랑하는 휴지통으로 보내면 데스크탑에서만 제거됩니다. 휴지통을 비우면 내용물이 영원히 사라 졌다고 생각할 수 있습니다. 그렇지 않습니다....

정보에 입각 한 결정을 내릴 수있는 능력은 사업의 초석. 거시 경제 원리 게임 이론을 잘 이해하면 도움이 될 수 있습니다. 이 번들은 단 20 달러에 6 시간의 게임 이론 교육을 제공합니다.당신은 하품을했고 그것이 당신이 잤던 Econ 101의 한 부분 일 뿐이라고 생각할 수도 있습니다. 아마 그럴 수도 있지만, 또한 관리 능력. 이 충돌 코스는 오전 8시...

인기 오늘