Як додати машинне навчання до програм для Android

Автор: Peter Berry
Дата Створення: 16 Lang L: none (month-012) 2021
Дата Оновлення: 1 Липня 2024
Anonim
Android Auto - новый метод добавления приложений [ROOT, Auto]
Відеоролик: Android Auto - новый метод добавления приложений [ROOT, Auto]

Зміст


Машинне навчання (ML) може допомогти вам створити інноваційний, переконливий та унікальний досвід для ваших мобільних користувачів.

Після того, як ви освоїли ML, ви можете використовувати його для створення широкого спектру програм, включаючи додатки, які автоматично організовують фотографії на основі їх тематики, визначають і відстежують обличчя людини в прямому ефірі, витягують текст із зображення та багато іншого .

Але ML - це не зовсім новачок! Якщо ви хочете розширити свої додатки для Android завдяки потужним можливостям машинного навчання, то з чого саме ви починаєте?

У цій статті я надам огляд SDK (Kit для розробки програмного забезпечення), який обіцяє поставити потужність ML під рукою, навіть якщо у вас є нуль Досвід ML. Наприкінці цієї статті у вас з’явиться необхідна основа, щоб почати створювати інтелектуальні програми з підтримкою ML, які здатні мітити зображення, сканувати штрих-коди, розпізнавати обличчя та відомі орієнтири та виконувати безліч інших потужних завдань ML.


Познайомтеся з Комплектного навчального набору Google

З випуском таких технологій, як TensorFlow і CloudVision, ML стає все більш широко використовуваним, але ці технології не для слабкого серця! Зазвичай вам потрібно глибоке розуміння нейронних мереж та аналізу даних розпочато за допомогою такої технології, як TensorFlow.

Навіть якщо ти робити Ви маєте певний досвід роботи з ML, створити мобільний додаток, керований машинним навчанням, може бути трудомістким, складним і дорогим процесом, який вимагає від вас джерела достатньої кількості даних для навчання власних моделей ML, а потім оптимізуйте ці моделі ML для ефективної роботи в мобільне середовище. Якщо ви є індивідуальним розробником або маєте обмежені ресурси, можливо, ви не зможете застосувати свої знання в галузі ML.

ML Kit - це спроба Google наблизити машинне навчання до маси.

Під нальотом ML Kit поєднує в собі кілька потужних технологій ML, які, як правило, вимагають широких знань про ML, включаючи Cloud Vision, TensorFlow та API нейронних мереж Android. ML Kit поєднує ці спеціалізовані технології ML з попередньо підготовленими моделями для звичайних випадків мобільного використання, включаючи вилучення тексту з зображення, сканування штрих-коду та визначення вмісту фотографії.


Незалежно від того, чи маєте ви попередні знання про ML, ви можете використовувати ML Kit для додавання потужних можливостей машинного навчання на ваш Android і Додатки для iOS - просто передайте деякі дані в потрібну частину ML Kit, наприклад, API розпізнавання тексту або ідентифікації мови, і цей API використовуватиме машинне навчання для повернення відповіді.

Як я можу використовувати API ML Kit?

ML Kit розділений на кілька API, які розповсюджуються як частина платформи Firebase. Щоб використовувати будь-який з API API Kit, вам потрібно буде встановити зв’язок між проектом Android Studio і відповідним проектом Firebase, а потім зв’язатися з Firebase.

Більшість моделей ML Kit доступні у вигляді моделей на пристрої, які ви можете завантажувати та використовувати локально, але деякі моделі також доступні у хмарі, що дозволяє вашій програмі виконувати завдання з підтримкою ML через Інтернет-з'єднання пристрою.

У кожного підходу є свій унікальний набір сильних і слабких сторін, тож вам потрібно визначитися, чи локальна чи віддалена обробка має найбільш сенс для вашого конкретного додатка. Ви навіть можете додати підтримку обох моделей, а потім дозволити своїм користувачам вирішувати, яку модель використовувати під час виконання. Крім того, ви можете налаштувати додаток для вибору найкращої моделі для поточних умов, наприклад, лише за допомогою хмарної моделі, коли пристрій підключено до Wi-Fi.

Якщо ви виберете місцеву модель, то функції машинного навчання вашого додатка завжди будуть доступні, незалежно від того, чи є у користувача активне підключення до Інтернету. Оскільки вся робота виконується локально, моделі на пристроях є ідеальними, коли вашому додатку потрібно швидко обробляти велику кількість даних, наприклад, якщо ви використовуєте ML Kit для маніпулювання потоковим відео.

Тим часом хмарні моделі, як правило, забезпечують більшу точність, ніж їхні пристрої на пристрої, оскільки хмарні моделі використовують сили технології машинного навчання Google Cloud Platform. Наприклад, модель пристрою API для маркування зображень містить 400 міток, але хмарна модель має більше 10 000 етикеток.

Залежно від API, може також існувати деяка функціональність, доступна лише у хмарі, наприклад, API розпізнавання тексту може ідентифікувати лише не латинські символи, якщо ви використовуєте його хмарну модель.

Хмарні API доступні лише для проектів Firebase на рівні Blaze, тож вам доведеться оновити план до оплати Blaze, перш ніж ви зможете використовувати будь-яку з хмарних моделей ML Kit.

Якщо ви все-таки вирішили вивчити хмарні моделі, то на момент написання програми була доступна безкоштовна квота для всіх API API ML Kit. Якщо ви просто хотіли поекспериментувати з розміщенням зображень на основі хмар, тоді ви можете оновити проект Firebase до плану Blaze, протестувати API менш ніж на 1000 зображень, а потім повернутися до безкоштовного плану Spark, не стягуючи плату. Однак умови мають погану звичку змінюватися з часом, тому перед оновленням до Blaze обов'язково прочитайте дрібний шрифт, щоб переконатися, що вас не потраплять будь-які несподівані рахунки!

Визначте текст у будь-якому зображенні за допомогою API розпізнавання тексту

API розпізнавання тексту може інтелектуально ідентифікувати, аналізувати та обробляти текст.

Ви можете використовувати цей API для створення програм, які витягують текст із зображення, тому вашим користувачам не доведеться витрачати час на стомний введення даних вручну. Наприклад, ви можете скористатися API розпізнавання тексту, щоб допомогти користувачам витягувати та записувати інформацію з квитанцій, рахунків-фактур, візитних карток чи навіть етикетків харчування, просто сфотографувавши предмет, про який йде мова.

Ви навіть можете використовувати API розпізнавання тексту як перший крок у програмі перекладу, де користувач робить фотографії незнайомого тексту, а API витягує весь текст із зображення, готовий для передачі в службу перекладу.

API на розпізнавання тексту ML Kit на пристрої може ідентифікувати текст будь-якою мовою на основі латині, тоді як його хмарний аналог може розпізнавати більшу кількість мов та символів, включаючи китайські, японські та корейські символи. Хмарна модель також оптимізована для отримання розрідженого тексту із зображень та тексту із щільно упакованих документів, що слід враховувати, вирішуючи, яку модель використовувати у вашому додатку.

Хочете отримати практичний досвід роботи з цим API? Потім перегляньте наш покроковий посібник зі створення програми, яка може витягти текст з будь-якого зображення, використовуючи API розпізнавання тексту.

Розуміння вмісту зображення: API маркування зображень

API для маркування зображень може розпізнавати об'єкти в зображенні, включаючи місцеположення, людей, продукти та тварини, не потребуючи додаткових контекстуальних метаданих. API маркування зображень повертає інформацію про виявлені об'єкти у вигляді міток. Наприклад, на наступному скріншоті я надав API фотографію природи, на яку він відповів ярликами, такими як "Ліс" та "Річка".

Ця здатність розпізнавати вміст зображення може допомогти вам створити програми, які розміщують теги на фотографіях відповідно до їх тематики; фільтри, які автоматично ідентифікують невідповідний поданий користувачем вміст і видаляють його з вашого додатка; або як основа для розширеного функціонування пошуку.

Багато API ML Kit повертають кілька можливих результатів разом із супутніми оцінками достовірності - включаючи API маркування зображень. Якщо ви передаєте зображення з маркуванням фотографії пуделя, вони можуть повертати мітки, такі як "пудель", "собака", "домашня тварина" та "маленька тварина", все з різними оцінками, що свідчать про впевненість API у кожній етикетці. Сподіваємось, у цьому сценарії «пудель» матиме найвищий показник довіри!

Ви можете використовувати цей показник довіри, щоб створити поріг, який повинен бути дотриманий, перш ніж ваша програма діятиме на конкретну мітку, наприклад, демонструючи її користувачеві або позначивши фотографією за допомогою цієї мітки.

Позначення зображення доступне як на пристрої, так і в хмарі, хоча якщо ви виберете хмарну модель, то ви отримаєте доступ до понад 10 000 міток порівняно з 400 мітками, які входять до моделі пристрою.

Для більш глибокого перегляду API маркування зображень ознайомтесь з визначенням вмісту зображення за допомогою машинного навчання. У цій статті ми створюємо додаток, який обробляє зображення, а потім повертає мітки та оцінки довіри для кожної сутності, виявленої в межах цього зображення. У цій програмі ми також реалізовуємо моделі на пристрої та хмари, тож ви можете точно бачити, як відрізняються результати, залежно від того, для якої моделі ви вибрали.

Розуміння виразів і відстеження облич: API виявлення обличчя

API розпізнавання облич може знаходити обличчя людини у фотографіях, відео та потокових трансляціях, а потім витягує інформацію про кожне виявлене обличчя, включаючи його положення, розмір та орієнтацію.

Ви можете використовувати цей API, щоб допомогти користувачам редагувати свої фотографії, наприклад, автоматично обрізаючи все порожнє місце навколо останнього головної частини.

API розпізнавання облич не обмежується зображеннями - ви можете також застосувати цей API до відео, наприклад, ви можете створити додаток, який ідентифікує всі обличчя у відеоканалі, а потім розмиває все крім ці обличчя, подібно до функції розмиття фону Skype.

Виявлення обличчя є завжди виконується на пристрої, де це досить швидко, щоб його можна було використовувати в режимі реального часу, тому на відміну від більшості API ML Kit, Виявлення обличчя робить ні включіть хмарну модель.

Окрім виявлення облич, цей API має ще кілька додаткових функцій, які варто вивчити. По-перше, API виявлення обличчя може визначити орієнтири обличчя, такі як очі, губи та вуха, а потім отримує точні координати для кожного з цих орієнтирів. Це визначне орієнтир надає точну карту кожного виявленого обличчя - ідеально підходить для створення додатків розширеної реальності (AR), які додають маски та фільтри у стилі Snapchat до каналу користувача користувача.

API розпізнавання обличчя також пропонує обличчя класифікація. Наразі ML Kit підтримує дві класифікації обличчя: відкриті очі та усміхнені.

Ви можете використовувати цю класифікацію як основу для служб доступності, наприклад, керування вільними від руки, або для створення ігор, які відповідають на вираз обличчя гравця. Можливість виявити, хтось посміхається чи відкриті очі, також може стати в нагоді, якщо ви створюєте додаток для камери - зрештою, немає нічого гіршого, ніж зробити купу фотографій, лише згодом виявити, що хтось закрив очі в кожен постріл.

Нарешті, API розпізнавання обличчя включає компонент відстеження обличчя, який присвоює ідентифікатор обличчю, а потім відстежує його на декількох послідовних зображеннях або відеокадрах. Зауважте, що це обличчя відстеження а не справжнє обличчя визнання. За лаштунками API розпізнавання обличчя відстежує положення та рух обличчя, а потім робить висновок, що це обличчя, ймовірно, належить одній людині, але в кінцевому рахунку невідомо про особу людини.

Спробуйте API розпізнавання обличчя для себе! Дізнайтеся, як створити додаток для виявлення обличчя за допомогою машинного навчання та Fire Kit ML Kit.

Сканування штрих-коду за допомогою Firebase та ML

Сканування штрих-коду може здатися не таким захоплюючим, як деякі інші API машинного навчання, але це одна з найдоступніших частин ML Kit.

Для сканування штрих-коду не потрібно спеціального обладнання або програмного забезпечення, тому ви можете використовувати API сканування штрих-коду, забезпечуючи, щоб ваш додаток залишався доступним для якомога більшої кількості людей, включаючи користувачів на старих або бюджетних пристроях. Поки пристрій має функціонуючу камеру, він не повинен мати проблем зі скануванням штрих-коду.

API сканування штрих-коду ML Kit може витягувати широкий спектр інформації з друкованих та цифрових штрих-кодів, завдяки чому швидкий, простий і доступний спосіб передавати інформацію з реального світу до вашої програми, без того, щоб користувачі не потребували будь-якого виснажливого введення даних вручну. .

Існує дев'ять різних типів даних, які API сканування штрих-коду може розпізнавати та аналізувати штрих-код:

  • 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. Він містить SSID та пароль мережі Wi-Fi, а також тип шифрування, наприклад OPEN, WEP або WPA. Штрих-код Wi-Fi - це один із найпростіших способів спільного використання облікових даних Wi-Fi, а також повністю знімає ризик неправильного введення цієї інформації вашими користувачами.

API сканування штрих-коду може аналізувати дані з ряду різних штрих-кодів, включаючи лінійні формати, такі як Codabar, Code 39, EAN-8, ITF та UPC-A, та 2D-формати, такі як Aztec, Data Matrix та QR-коди.

Щоб полегшити ситуацію для своїх кінцевих користувачів, цей API одночасно сканує всі підтримувані штрих-коди, а також може витягувати дані незалежно від орієнтації штрих-коду - тому не має значення, чи штрих-код повністю перевернутий, коли користувач сканує його!

Машинне навчання у хмарі: API визнання орієнтирів

Ви можете використовувати API для розпізнавання орієнтирів ML Kit для визначення відомих природних та побудованих орієнтирів у межах зображення.

Якщо ви передасте цьому API зображення, яке містить відомий орієнтир, воно поверне ім'я цього орієнтира, значення широти та довготи орієнтира та поле для обмеження, яке вказує, де орієнтир виявлений у зображенні.

Ви можете використовувати API розпізнавання орієнтирів для створення програм, які автоматично тегують фотографії користувача, або для надання більш налаштованого досвіду, наприклад, якщо ваш додаток визнає, що користувач фотографує Ейфелеву вежу, то він може запропонувати деякі цікаві факти про ця визначна пам'ятка або запропонувати подібні туристичні пам'ятки поблизу, які користувач може захотіти відвідати наступним.

Незвичайно для ML Kit API для виявлення орієнтирів доступний лише як хмарний API, тому ваше додаток зможе виконувати виявлення орієнтирів лише тоді, коли у пристрою активне підключення до Інтернету.

API ідентифікації мови: розробка для міжнародної аудиторії

Сьогодні програми Android використовуються у будь-якій частині світу користувачами, які розмовляють на багатьох різних мовах.

API для визначення мови ML Kit може допомогти вашій програмі Android звернутися до міжнародної аудиторії, взявши рядок тексту та визначивши мову, на якій він написаний. API для визначення мови може визначити понад сотню різних мов, включаючи романізований текст для арабської, болгарської, Китайська, грецька, хінді, японська та російська мови.

Цей API може бути цінним доповненням до будь-якої програми, яка обробляє наданий користувачем текст, оскільки цей текст рідко містить будь-яку мовну інформацію. Ви також можете використовувати API ідентифікації мови в додатках для перекладу як перший крок до перекладу що завгодно, знає, якою мовою ти працюєш! Наприклад, якщо користувач вказує камеру свого пристрою на меню, то ваш додаток може використовувати API ідентифікації мови, щоб визначити, що меню написано французькою мовою, а потім запропонують перекласти це меню за допомогою такої послуги, як API Cloud Translation ( можливо після вилучення тексту з використанням API розпізнавання тексту?)

Залежно від рядка, про який йде мова, API ідентифікації мови може повертати декілька потенційних мов, супроводжуючись оцінками довіри, щоб ви могли визначити, яка виявлена ​​мова є найбільш вірною. Зауважте, що під час написання ML Kit не міг ідентифікувати декілька різних мов в одному рядку.

Щоб цей API забезпечував ідентифікацію мови в режимі реального часу, API ідентифікації мови доступний лише як модель на пристрої.

Незабаром: розумна відповідь

Google планує в майбутньому додати більше API в ML Kit, але ми вже знаємо про один актуальний API.

За даними веб-сайту ML Kit, майбутні Інтелектуальний API відповіді дозволить вам пропонувати контекстні відповіді на повідомлення у ваших програмах, пропонуючи фрагменти тексту, що відповідають поточному контексту. Виходячи з того, що ми вже знаємо про цей API, здається, що Smart Reply буде подібний до запропонованої функції відповіді, яка вже доступна в додатках для Android, Wear OS та Gmail.

На наступному скріншоті показано, як запропонована функція відповіді наразі виглядає в Gmail.

Що далі? Використання TensorFlow Lite з ML Kit

ML Kit надає попередньо вбудовані моделі для звичайних випадків мобільного використання, але в якийсь момент ви можете вийти за рамки цих готових моделей.

Можна створити власні ML-моделі за допомогою TensorFlow Lite, а потім поширити їх за допомогою ML Kit. Однак, майте на увазі, що на відміну від готових API ML Kit, робота з власними моделями ML вимагає: вагомий кількість експертизи з МЛ.

Після створення моделей TensorFlow Lite ви можете завантажити їх у Firebase, а Google потім керуватиме хостингом та обслуговуватиме ці моделі своїм кінцевим користувачам. У цьому сценарії ML Kit виступає в ролі шару API над вашою користувальницькою моделлю, що спрощує деякі важкі підйоми, що беруть участь у використанні користувацьких моделей. Найголовніше, що ML Kit автоматично надсилає користувачам останню версію вашої моделі, тому вам не доведеться оновлювати додаток щоразу, коли ви хочете налаштувати свою модель.

Щоб забезпечити найкращий можливий досвід користувача, ви можете вказати умови, які повинні бути виконані, перш ніж ваша програма завантажить нові версії вашої моделі TensorFlow Lite, наприклад лише оновлення моделі, коли пристрій працює в режимі очікування, заряджається або підключено до Wi- Fi. Ви навіть можете використовувати ML Kit та TensorFlow Lite поряд з іншими службами Firebase, наприклад, використовуючи Firebase Remote Config та Firebase A / B Testing для обслуговування різних моделей для різних наборів користувачів.

Якщо ви хочете вийти за рамки попередньо побудованих моделей або існуючі моделі ML Kit не зовсім відповідають вашим потребам, то ви можете дізнатися більше про створення власних моделей машинного навчання, переглянувши офіційні документи Firebase.

Підведенню

У цій статті ми розглянули кожен компонент комплекту машинного навчання Google та висвітлили деякі загальні сценарії, за яких, можливо, ви хочете використовувати кожен з API API ML Kit.

Google планує в майбутньому додати більше API, тож які API-машини для машинного навчання ви хотіли б побачити доданими до ML Kit далі? Повідомте нас у коментарях нижче!

Хороший аргумент можна зробити тим, що найпотужніші флагманські телефони, які зараз можна придбати, - це amung Galaxy 10, 10 Plu і Huawei Mate 20 Pro. Всі три телефони мають дисплеї, що перевищують 6 ...

Android може бути власником Google, але для мільйонів у всьому світі бренд є синонімом телефонів amung Galaxy.Google має своє унікальне бачення Android із серії Pixel, яка наразі є в третьому поколінн...

Рекомендується Вам