Как добавить машинное обучение в приложения для Android

Автор: Peter Berry
Дата создания: 16 Lang L: none (month-012) 2021
Дата обновления: 1 Июль 2024
Anonim
Создание андроид-приложения с картами Google Maps с использованием Google Services в Android Studio
Видео: Создание андроид-приложения с картами Google Maps с использованием Google Services в Android Studio

Содержание


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

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

Но ML не совсем подходит для начинающих! Если вы хотите улучшить свои приложения для Android мощными возможностями машинного обучения, то с чего именно вы начнете?

В этой статье я расскажу о SDK (Software Development Kit), который обещает дать вам возможность использовать ML, даже если у вас есть нуль ML опыт. К концу этой статьи у вас будет фундамент, необходимый для начала создания интеллектуальных приложений на базе ML, которые могут маркировать изображения, сканировать штрих-коды, распознавать лица и известные ориентиры, а также выполнять многие другие мощные задачи ML.


Познакомьтесь с комплектом машинного обучения Google

С выпуском таких технологий, как TensorFlow и CloudVision, ML становится все более широко используемым, но эти технологии не для слабонервных! Обычно вам нужно глубокое понимание нейронных сетей и анализа данных, чтобы получить началось с такой технологией, как TensorFlow.

Даже если ты делать Имея некоторый опыт работы с 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 ML Kit, вам нужно создать соединение между вашим проектом Android Studio и соответствующим проектом Firebase, а затем установить связь с Firebase.

Большинство моделей ML Kit доступны в виде моделей на устройстве, которые можно загружать и использовать локально, но некоторые модели также доступны в облаке, что позволяет вашему приложению выполнять задачи на базе ML через интернет-соединение устройства.

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

Если вы выберете локальную модель, то функции машинного обучения вашего приложения будут всегда доступны, независимо от того, имеет ли пользователь активное подключение к Интернету. Поскольку вся работа выполняется локально, модели на устройстве идеальны, когда вашему приложению требуется быстро обрабатывать большие объемы данных, например, если вы используете ML Kit для управления потоковым видео.

Между тем облачные модели обычно обеспечивают более высокую точность, чем их аналоги на устройстве, поскольку облачные модели используют мощь технологии машинного обучения Google Cloud Platform. Например, модель встроенного API-интерфейса Image Labeling включает в себя 400 меток, но облачная модель 10000 этикеток.

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

Облачные API-интерфейсы доступны только для проектов Firebase уровня Blaze, поэтому вам необходимо перейти на план Blaze с оплатой по мере использования, прежде чем вы сможете использовать любую из облачных моделей ML Kit.

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

Идентифицируйте текст на любом изображении с помощью API распознавания текста

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

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

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

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

Хотите получить практический опыт работы с этим API? Затем ознакомьтесь с нашим пошаговым руководством по созданию приложения, которое может извлекать текст из любого изображения с помощью API распознавания текста.

Понимание содержания изображения: API маркировки изображения

API маркировки изображений может распознавать объекты на изображении, включая местоположения, людей, продукты и животных, без необходимости каких-либо дополнительных контекстных метаданных. API-интерфейс Image Labeling возвращает информацию об обнаруженных объектах в виде меток. Например, на следующем снимке экрана я предоставил API фотографию природы, а в ответ на него были добавлены метки «Лес» и «Река».

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

Многие из API ML Kit возвращают несколько возможных результатов, сопровождаемых сопровождающими показателями достоверности, в том числе API для маркировки изображений. Если вы передадите в Image Labeling фотографию пуделя, он может вернуть такие ярлыки, как «пудель», «собака», «домашнее животное» и «маленькое животное», и все с различными оценками, указывающими на доверие API к каждой этикетке. Надеемся, что в этом случае «пудель» будет иметь самый высокий показатель доверия!

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

Маркировка изображений доступна как на устройстве, так и в облаке, хотя, если вы выберете модель облака, вы получите доступ к более чем 10 000 меток по сравнению с 400 метками, которые включены в модель на устройстве.

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

Понимание выражений и отслеживания лиц: API обнаружения лиц

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

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

API распознавания лиц не ограничивается изображениями - вы также можете применить этот API к видео, например, вы можете создать приложение, которое идентифицирует все лица в видеопотоке, а затем размывает все Кроме эти лица, похожие на функцию размытия фона Skype.

Обнаружение лица всегда выполняется на устройстве, где это достаточно быстро для использования в режиме реального времени, поэтому, в отличие от большинства API-интерфейсов ML Kit, Face Detection делает не включить облачную модель.

В дополнение к обнаружению лиц, этот API имеет несколько дополнительных функций, которые стоит изучить. Во-первых, API Обнаружения Лица может идентифицировать лицевые ориентиры, такие как глаза, губы и уши, а затем извлекает точные координаты для каждого из этих ориентиров. это признание вехой предоставляет вам точную карту каждого обнаруженного лица - идеально подходит для создания приложений дополненной реальности (AR), которые добавляют маски и фильтры в стиле Snapchat в канал пользователя.

API обнаружения лица также предлагает лица классификация, В настоящее время ML Kit поддерживает две классификации лица: открытые глаза и улыбающиеся.

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

Наконец, API Обнаружения Лица включает в себя компонент отслеживания лица, который назначает лицо лицу, а затем отслеживает его по нескольким последовательным изображениям или видеокадрам. Обратите внимание, что это лицо отслеживание а не настоящий лицевой признание, За кулисами API распознавания лиц отслеживает положение и движение лица, а затем делает вывод, что это лицо, скорее всего, принадлежит одному и тому же человеку, но в конечном итоге он не знает о его личности.

Попробуйте API распознавания лиц сами! Узнайте, как создать приложение для распознавания лиц с помощью машинного обучения и комплекта Firebase 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 Landmark Recognition для создания приложений, которые автоматически помечают фотографии пользователя, или для обеспечения более индивидуального подхода, например, если ваше приложение распознает, что пользователь делает фотографии Эйфелевой башни, то оно может предложить некоторые интересные факты о этот ориентир или предложить аналогичные близлежащие туристические достопримечательности, которые пользователь может захотеть посетить в следующий раз.

Необычно для ML Kit, API Обнаружения Ориентира доступен только как облачный API, поэтому ваше приложение сможет выполнять определение ориентира только тогда, когда устройство имеет активное подключение к Интернету.

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

Сегодня приложения Android используются во всех уголках мира пользователями, которые говорят на разных языках.

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

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

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

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

Скоро: умный ответ

Google планирует добавить больше API в ML Kit в будущем, но мы уже знаем об одном готовящемся к выпуску API.

По данным сайта ML Kit, предстоящий Smart Reply API позволит вам предлагать ответы на контекстные сообщения в ваших приложениях, предлагая фрагменты текста, которые соответствуют текущему контексту. Исходя из того, что мы уже знаем об этом API, кажется, что Smart Reply будет похож на функцию предложенного ответа, уже доступную в приложениях Android, Wear OS и Gmail.

На следующем снимке экрана показано, как предлагаемая функция ответа в настоящее время выглядит в Gmail.

Что дальше? Использование TensorFlow Lite с ML Kit

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

Можно создавать свои собственные модели ML с помощью TensorFlow Lite, а затем распространять их с помощью ML Kit. Однако имейте в виду, что в отличие от готовых API ML Kit, работа с вашими собственными моделями ML требует значительное количество экспертизы ML.

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

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

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

Завершение

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

Google планирует добавить больше API в будущем. Какие API-интерфейсы машинного обучения вы бы хотели добавить в ML Kit дальше? Дайте нам знать в комментариях ниже!

Согласно комментариям пользователей, OnePlu 7 Pro может содержать дисплей Quad HD + с частотой обновления 90 Гц. Android Central и советник Ишан Агарвал. Предположение пришло сегодня раньше, и если он...

Обновление: 24 мая 2019 года в 4:25 вечера. ET: Сегодня мы обсуждали эту тему камеры с OnePlu, и кажется, что серая область мешает понять, что на самом деле происходит....

Интересное на сайте