Используйте предварительно обученные модели машинного обучения Fritz AI, чтобы сделать ваше мобильное приложение более привлекательным.

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

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

Fritz AI позволяет легко научить ваши мобильные приложения видеть, слышать, чувствовать и думать. Начни сборку с бесплатной учетной записи Sandbox.

Начиная

Первый шаг - перейти в ваш любимый редактор и создать проект. Как только вы это сделаете, скопируйте идентификатор приложения. Его можно найти в файле build.gradle вашего приложения. Это будет выглядеть примерно так:

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

После входа в систему нажмите, следуйте 4 подсказкам, чтобы зарегистрировать новое приложение. Сначала выберите целевую платформу (здесь Android).

Дайте своему приложению имя и введите свой идентификатор приложения. Убедитесь, что вы ввели идентификатор приложения в build.gradle файл приложения. В противном случае Fritz SDK не сможет взаимодействовать с вашим приложением.

Следующим шагом будет установка Fritz SDK. Перейдите к файлу Gradle корневого уровня (build.gradle) и включите репозиторий Maven для Fritz AI:

Затем добавьте зависимость для SDK в файл Gradle уровня приложения (app/build.gradle):

Теперь давайте зарегистрируем FritzCustomModelService в нашем AndroidManifest:

Теперь осталось только инициализировать SDK, вызвав Fritz.configure() с нашим ключом API:

После этого нажмите «Далее», чтобы убедиться, что ваше приложение может взаимодействовать с Fritz AI.

Используйте предварительно обученные модели Fritz

В предварительно обученной модели, которую мы будем использовать, есть метки для более чем 680 общих объектов. Модель даст нам прогнозируемую метку, сопровождаемую доверительным интервалом.

Согласно документации Fritz AI, нам также необходимо указать aaptOptions, чтобы предотвратить сжатие модели tflite. После его добавления ваш app/build.gradle файл будет выглядеть так:

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

Убедитесь, что вы синхронизируете свой проект с файлами Gradle, чтобы модель могла быть загружена.

Элементы приложения

Это приложение содержит всего три ключевых элемента:

  • TextView, который отобразит метку изображения
  • Button, который при нажатии предлагает вам выбрать изображение
  • ImageView для отображения выбранного изображения

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

Получение изображения

Первое, что нам нужно сделать, это получить разрешение пользователя, чтобы приложение могло получить доступ к их изображениям. Получив разрешение, мы вызываем метод pickImage, который выбирает изображение с телефона пользователя. Мы делаем это, создавая прослушиватель на кнопке и переопределяя его onClick метод:

Затем переопределите метод, используемый для запроса разрешения:

pickImage получит изображение, используя Intent:

Получить изображение

Теперь мы можем получить выбранное изображение, переопределив метод onActivityResult. Первое, что мы делаем после получения изображения, - это устанавливаем его на imageView.

Создать растровое изображение

Затем давайте создадим растровое изображение, которое мы передадим в Fritz AI, чтобы получить прогноз.

Создайте FritzVisionImage из изображения

Теперь у нас есть растровое изображение. Мы можем использовать его для создания FritzVisionImage:

Получите FritzVisionLabelPredictor

Поскольку мы используем модель на устройстве, мы можем сразу получить предсказатель:

Обозначьте изображение

Теперь мы готовы использовать этот предсказатель для прогнозирования изображения. Это делается с помощью функции predict и передачи ее в visionImage.

Показать этикетку

Вы можете решить, как вы хотите отображать результат. Здесь я использую как Toast, так и TextView. Метод getResultString из labelResult дает нам оценку и оценку достоверности. Получив результат, мы добавляем его в TextView и также показываем как Toast.

Вывод

Надеюсь, эта статья показала вам, насколько легко включить возможности машинного обучения в ваши приложения для Android с помощью Fritz AI. Ознакомьтесь с полным исходным кодом в репозитории ниже.



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

Независимая редакция, Heartbeat спонсируется и публикуется Fritz AI, платформой машинного обучения, которая помогает разработчикам учить устройства видеть, слышать, ощущать и думать. Мы платим участникам и не продаем рекламу.

Если вы хотите внести свой вклад, переходите к нашему призыву участников. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Fritz AI Newsletter), присоединяйтесь к нам на » «Slack и подписывайтесь на Fritz AI в Twitter , чтобы узнавать обо всех последних новостях в области мобильного машинного обучения.