ML с iOS
В этой статье мы увидим, как обучить модель и интегрировать ее в приложение для iOS. Если у вас уже есть модель машинного обучения и вы хотите узнать, как интегрировать ее в свое приложение, прокрутите вниз до раздела Реализация на iOS.
Цель этой статьи - продемонстрировать, как обучить модель машинного обучения и использовать ее в iOS, и вам не потребуются какие-либо знания о машинном обучении, чтобы прочитать эту статью.
Модель машинного обучения - это псевдоним обученной (или еще не обученной) модели, которая, как ожидается, будет выполнять некоторые интеллектуальные функции. В нашем случае мы обучаем ее определять некоторые конкретные объекты
Обучение модели
Мы используем обучаемую машину Google для обучения модели. Это фантастический инструмент, который позволяет нам обучать модель, не требуя каких-либо знаний в области машинного обучения. В настоящее время он позволяет нам обучать моделей распознавать объекты на изображениях, определенный звук или позу. В нашем проекте мы используем изображения для распознавания объектов.
- Перейдите на сайт обучаемой машины здесь
Теперь, чтобы наша модель могла распознавать определенные объекты, мы предоставляем несколько изображений этого объекта. Мы можем использовать веб-камеру или загрузить набор изображений. Чем больше изображений мы загружаем, тем точнее получаем результат. Обязательно выбирайте изображения с разных положений, ракурсов и окружения.
- Предоставьте изображения и отредактируйте имя класса с именем объекта
Я добавил два класса для распознавания двух разных автомобилей как Автомобиль 1 и Автомобиль 2.
- После этого нажмите модель поезда.
Как только модель обучена, мы можем посмотреть предварительный просмотр в реальном времени. Наша модель теперь может различать два объекта, когда помещается перед веб-камерой. Единственный недостаток заключается в том, что он всегда возвращает нам одно из значений класса, поэтому, если ни один из объектов класса (в данном случае автомобили) не находится перед веб-камерой, он покажет нам значение первого класса нашей модели (в данном случае Автомобиль 1)
- Нажмите модель экспорта (рядом с Предварительный просмотр)
- В диалоговом окне выберите Tensorflow Lite → Плавающая точка и нажмите Загрузить мою модель.
- Извлечение загруженной модели дает нам
.tflite
файл и один.txt
файл, которые мы будем использовать в iOS.
Реализация на iOS
Есть два способа интегрировать нашу модель в наше приложение:
- Использование библиотеки Tensorflow Lite
- Использование 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-вариантом этой статьи можно здесь.