В этом руководстве используется построение модели с использованием Create ML, которое теперь доступно как часть Xcode в macOS 10.15, Catalina.

В этой статье описывается, что делать теперь, когда у нас есть эта модель. Модели машинного обучения ничего не делают сами по себе. В частности, модели Core ML (тип, созданный Create ML) предназначены для интеграции с приложениями iOS, и это руководство, как следует из названия, покажет вам, как на самом деле использовать эту модель, которую вы создали.

Создание приложения и интеграция вашей модели

Предпосылки

Как мы отмечали в Части 1, в конце процесса построения модели вы получите артефакт CoreML, который выглядит примерно так:

Он предсказывает, является ли животное хомяком, мышью, рыбой, кроликом, ящерицей или змеей. Ура! Что теперь?

Если у вас уже есть учетная запись Скафос и приложение, использующее классификатор изображений, это прекрасно. Перейдите к этому приложению и модели на панели инструментов Skafos, нажмите Управление и перейдите к следующему разделу.

К вам ничего из вышеперечисленного не относится? Без проблем. Прежде чем начать, выполните следующие действия:

  • Зарегистрируйте аккаунт Skafos, если у вас его еще нет.
  • После входа в Skafos нажмите «Попробуйте пример приложения» и выберите «Классификатор изображений».

  • Через несколько секунд вы автоматически будете перенаправлены к руководству по интеграции, показанному ниже. Следуйте инструкциям по созданию приложения. Это руководство не только объяснит, как интегрировать Skafos и предоставит пример проекта XCode, но также позволит вам создать приложение прямо на вашем телефоне.

  • Как только вы это сделаете, перейдите на вкладку «Управление».

Замечание о коде, показанном на скриншоте выше. Если вы создаете свое приложение в Xcode 11, вам нужно будет внести одну модификацию в Podfile. Вместо строки, показанной выше (pod 'Skafos', '~> 4.0.2'), вам нужно будет заменить ее на (pod 'Skafos', '~> 4.1.0-beta'). Для всего остального вы можете действовать, как описано!

Интеграция приложений и моделей

Если вы следовали инструкциям до этого момента, добавили ключи среды и открыли рабочее пространство XCode через open ImageClassification.xcworkspace, вы увидите следующее:

Помимо файла AppDelegate.swift, в который вам нужно будет добавить ключи Skafos, как описано выше, файл MainViewController.swift содержит логику того, где модель CoreML используется в приложении. Хотя вам не нужно вносить какие-либо изменения для запуска примера приложения, может быть полезно немного покопаться в коде, чтобы лучше понять, как оно работает. Особенно:

  • Строки 17–18: , где создается модель. Обратите внимание, что имя соответствует файлу ImageClassifier.mlmodel, который находится в папке Resources/.
  • Строки 27 и 31: вызов (и определение) функции loadModel(), где Skafos проверяет, загружена ли в приложение последняя модель.
  • Строка 70–71: функции VNCoreMLRequest и self.?processClassifications - это то место, где вызывается модель, чтобы получить правильную классификацию для определенного изображения.

Чтобы создать это приложение, подключите устройство iOS с версией 13+ ИЛИ воспользуйтесь одним из симуляторов, перечисленных в верхнем левом углу XCode:

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

Затем вы можете сделать снимок, и он будет классифицирован как собака или кошка.

Почему собака или кошка? Разве мы не построили модель для обнаружения хомяка / кролика / мыши / змеи / ящерицы / рыбы? Да, мы сделали. Но! В настоящее время приложение построено с использованием модели ImageClassifier по умолчанию, включенной в код. Прочтите, как вы можете загрузить модель, которую вы только что построили, с помощью Create ML, чтобы приложение обнаруживало интересующих вас животных.

Доставка новых моделей

Как подробно описано выше, Пример приложения для классификации изображений Skafos поставляется со встроенной моделью классификатора изображений, которая обнаруживает собак и кошек. Если вы хотите создать собственное приложение с нуля вместо этого (круто!), Вы можете перетащить артефакт Core ML из Create ML в XCode, чтобы легко включить модель в свое приложение. Включение первой версии модели необходимо для создания первой версии приложения. Однако со временем все модели машинного обучения необходимо периодически переобучать по мере сбора новых данных и изменения требований. В этом простом примере мы заменим нашу модель собаки / кошки в приложении по умолчанию на модель хомяка / змеи и т. Д., Которую мы создали в Части 1. Skafos значительно упрощает процесс поставки этих новых моделей!

Загрузка через интерфейс Skafos

После того, как вы создали артефакт Core ML в Create ML и соответствующий проект Skafos, проще всего перетащить артефакт Core ML из Create ML на рабочий стол. В противном случае он останется в .mlproj файле, который Create ML создает для каждого проекта. После перетаскивания артефакта модели из Create ML вы можете по своему усмотрению переместить его в другой каталог, хотя в этом нет необходимости.

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

После архивирования вернитесь в Личную панель Skafos. Вы уже должны быть на странице управления моделью для своего приложения и модели. Прокрутите до раздела Загрузка модели и перетащите свой артефакт или выберите zip-файл.

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

После того, как вы нажмете кнопку Загрузить, вы увидите свою модель в списке версий модели на панели инструментов Skafos.

Затем вы можете развернуть его в среде Dev или Prod по своему желанию, нажав кнопку «Развернуть», и пользователи получат эту обновленную модель на свой телефон. В этом примере мы будем выполнять доставку только для разработчиков.

Загрузка через расширение

Create ML предлагает вам несколько полезных способов поделиться своими моделями Core ML 3, нажав кнопку «Поделиться», включая Skafos!

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

Загрузка через Skafos SDK

Те из вас, кто является опытным пользователем Skafos, могут задаться вопросом, можно ли использовать Skafos Python SDK для доставки созданной модели Create ML в Skafos. Да! Поскольку этот метод наиболее полезен при обучении модели в среде Python, я опущу здесь большую часть деталей. Если вы хотите узнать больше, пожалуйста, просмотрите нашу документацию по SDK.

Вот и все. Перейти от Create ML к Скафосу действительно просто. Apple создала этот инструмент, чтобы сделать обучение модели машинного обучения более простым и менее запутанным для всех нас. Скафос делает вам последний шаг!

Переподготовка модели

А как насчет переобучения моделей? Мы отметили это в серии сообщений Часть 1 этого блога и отметили это выше, когда говорили о версиях моделей. Что дает?

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

К счастью, Create ML упрощает это. Когда вы находитесь в приложении Create ML, просто нажмите кнопку + в верхнем левом углу приложения.

Это создаст другую модель в том же проекте Create ML.

Вы можете использовать новые обучающие данные, параметры или дополнения и легко сравнивать разные версии моделей. Хотите поставить эту новую версию модели с помощью Скафоса? Потрясающий. Теперь вы знаете, как это сделать.