ML с iOS

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

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

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

Обучение модели

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

  • Перейдите на сайт обучаемой машины здесь

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

  • Предоставьте изображения и отредактируйте имя класса с именем объекта

Я добавил два класса для распознавания двух разных автомобилей как Автомобиль 1 и Автомобиль 2.

  • После этого нажмите модель поезда.

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

  • Нажмите модель экспорта (рядом с Предварительный просмотр)
  • В диалоговом окне выберите Tensorflow LiteПлавающая точка и нажмите Загрузить мою модель.

  • Извлечение загруженной модели дает нам .tflite файл и один .txt файл, которые мы будем использовать в iOS.

Реализация на iOS

Есть два способа интегрировать нашу модель в наше приложение:

  1. Использование библиотеки Tensorflow Lite
  2. Использование Firebase ML Kit

Для нашего проекта мы будем использовать Firebase ML Kit как

  • Легко настроить
  • Модели могут быть размещены на Firebase, а также в комплекте с приложением.
  • Мы можем обновить нашу модель, не обновляя приложение

Приступим!

  • Создать новый проект в Xcode

Интегрировать Firebase

Если у вас есть существующий проект Firebase, интегрированный в ваше приложение, вы можете пропустить эту часть и перейти к следующему шагу.

  • Зайдите в консоль Firebase здесь и создайте новый проект.
  • На странице обзора проекта Firebase нажмите iOS, чтобы начать настройку.
  • Укажите идентификатор пакета для регистрации приложения.
  • Добавьте файл GoogleService-Info.plist в свой проект

Теперь, когда в наше приложение интегрирован Firebase, давайте

Добавить Firebase ML Kit

  • Создайте pod-файл, если у вас его еще нет, набрав pod init в терминале в корневой папке проекта.
pod init
  • Добавьте эту строку в свой файл пода
pod 'Firebase/MLModelInterpreter', '6.25.0'
  • В терминале введите pod install для установки зависимости
pod install 
  • После установки инициализируйте Firebase в вашем AppDelegate классе, как показано в инструкциях по установке.

И с этим мы успешно настроили Firebase для нашего приложения.

Теперь, чтобы использовать его, добавьте нашу модель (файл .tflite) и файл метки, который мы создали ранее, в наш проект.

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

  • Добавьте изображение для одного из объектов (в нашем случае Car 1) в каталог ресурсов приложения.
  • Добавьте этот код в ViewController класс

Здесь мы используем статические изображения из ресурсов, чтобы код был минимальным и не отвлекал. Рекомендуемый метод - позволить пользователю предоставить изображение с помощью камеры или средства выбора изображения.

  • Запускаем приложение :)

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

Наконец, давайте не забудем поблагодарить разработчиков Teachable Machine и Firebase за их потрясающие продукты, они написали тысячи строк кода, которые позволили нам обучать и использовать наши модели всего несколькими строками кода.

Спасибо за прочтение! Не стесняйтесь поздороваться или поделиться своими мыслями в Twitter @that_kushal_guy или в ответах ниже!

Ознакомиться с Android-вариантом этой статьи можно здесь.



Ресурсы