Машинное обучение в iOS: пользовательское видение Azure и CoreML

Это вторая часть моих руководств по машинному обучению в iOS, сначала проверьте Часть 1.

Возможно, вы читали мою предыдущую статью о машинном обучении в iOS: IBM Watson и CoreML. Итак, вы знаете, что машинное обучение может напугать множеством концепций и фреймворков, которые нужно изучить, не говоря уже о том, что нам нужно понимать алгоритмы в Python.

Говоря о маркировке изображений, у вас может быть несколько изображений, и вы хотите научить машину понимать и классифицировать их. Обучение собственным моделям глубокого обучения может оказаться сложной задачей. Самый простой подход — начать с простого шага и использовать некоторые облачные сервисы, чтобы сначала не унывать. Представьте, что код для обучения модели уже написан для вас, все, что вам нужно сделать, это пометить связанные изображения и получить обученный результат.

В этом руководстве мы рассмотрим службу Azure Custom Vision от Microsoft, которая позволяет нам создавать собственный классификатор изображений.

Пользовательское видение Microsoft Azure

Custom Vision — это сервис, который позволяет нам создавать собственный классификатор изображений, впервые анонсированный на MSBuild 2017, вы можете посмотреть лейтмотив здесь. Это одна из многих служб в Cognitive Services в продукте AI + Machine Learning в Azure. Другие услуги включают речь, язык, поиск, бот и т. Д.

Custom Vision Service — это Microsoft Cognitive Service, которая позволяет создавать настраиваемые классификаторы изображений. Это упрощает и ускоряет создание, развертывание и улучшение классификатора изображений. Custom Vision Service предоставляет REST API и веб-интерфейс для загрузки изображений и обучения классификатора.

Чтобы начать работу, перейдите на домашнюю страницу Custom Vision и нажмите Начать работу. У вас должна быть учетная запись Azure, а если нет, просто зарегистрируйтесь здесь бесплатно. Нам достаточно бесплатного уровня, чтобы начать пользоваться сервисом, с 2 проектами и 5000 обучающими изображениями на проект.

Использование очень простое. Вот панель для Custom Vision, я не ожидал, что она будет проще. Следуйте за мной с дальнейшими шагами.

Шаг 1. Создайте новый проект

Создайте новый проект под названием Avengers. Для лени и для удобства сравнения с другими облачными сервисами здесь мы используем тот же набор данных из публикации Машинное обучение в iOS: IBM Watson и CoreML. Напомним: в прошлый раз мы сделали приложение, распознающее супергероев. И с момента последнего поста люди просят увидеть больше супергероев ❤️

Обратите внимание, что в разделе «Домен» нужно выбрать «Общие» (компактные). Поскольку это создает облегченную модель, которую можно использовать на мобильных устройствах, это означает, что обученная модель может быть экспортирована в .mlmodel, формат, поддерживаемый CoreML.

Шаг 2. Добавьте изображения

Нажмите Добавить изображения и выберите изображения для каждого супергероя. Назовите правильный тег.

Что касается набора данных, это Что делает Custom Vision Service? Говорит, что:

Для создания классификатора или детектора требуется несколько изображений. Для создания прототипа достаточно 50 изображений на класс. Методы, которые использует Custom Vision Service, устойчивы к различиям, что позволяет вам начать создание прототипа с таким небольшим объемом данных. Это означает, что Custom Vision Service не очень подходит для сценариев, в которых вы хотите обнаружить тонкие различия. Например, незначительные трещины или вмятины в сценариях обеспечения качества.

Так что наших изображений может хватить для этого урока.

Шаг 3. Тренируйте

Нажмите Обучение, чтобы начать процесс обучения. Это не займет много времени, поскольку Custom Vision использует трансферное обучение.

Azure позволяет нам использовать API прогнозирования для прогнозирования на основе нашей обученной модели. Но в данном случае мы просто хотим, чтобы обученная модель встраивалась в наши приложения для iOS и работала в автономном режиме. Поэтому нажмите Экспорт и выберите CoreML.

Использование модели CoreML в приложении для iOS

Мы используем тот же проект, что и в Машинном обучении в iOS: IBM Watson и CoreML. Проект находится на GitHub, мы используем CoreML и Vision framework для прогнозирования на основе нашей обученной модели.

Мы называем модель AzureCustomVision.mlmodel и добавляем ее в наш проект. Xcode 9 может автоматически сгенерировать для него класс, поэтому мы получаем класс AzureCustomVision. Затем мы можем построить совместимую с Vision модель VNCoreMLModel и запросить VNCoreMLRequest и, наконец, отправить запрос в VNImageRequestHandler. Код довольно прост:

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

А как насчет других облачных сервисов?

Мы рассмотрели IBM Watson и Microsoft Azure Custom Vision. Есть и другие облачные сервисы, на которые стоит обратить внимание. Они могут быть такими же простыми, как загрузка изображений и обучение, или более продвинутыми с пользовательским выполнением кода TensorFlow или сложными правилами.

  • Vize.ai: Пользовательский интерфейс очень интуитивно понятен, и все шаги по обучению не должны занимать много времени.
  • Lobe.ai: это похоже на игру на игровой площадке, где мы можем перетаскивать и соединять компоненты для обучения задачам машинного обучения.
  • Amazon Rekognition: он может выполнять множество задач анализа изображений и видео, таких как распознавание лиц, текст в изображении, обнаружение изображений… Однако я не вижу возможности обучать наш собственный набор данных.
  • Google Cloud Vision: это то же самое, что и сервис Amazon Rekognition, поскольку он предоставляется через вызовы API, и мы не можем указать собственный набор данных. Существует Google Cloud ML Engine, который позволяет нам тренироваться с использованием кода TensorFlow, но для этого требуется некоторое понимание машинного обучения.
  • Google Cloud AutoML: на момент написания этой статьи он все еще находится на стадии альфа-тестирования, но я надеюсь, что для новичков это будет просто. Вы можете посмотреть введение здесь.

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

Куда пойти отсюда

Вот несколько ссылок, по которым можно приступить к использованию облачных служб, особенно Azure Custom Vision:

  • CustomVision.AI: автоматическое машинное обучение без кода для классификации изображений.
  • Как построить классификатор с Custom Vision.
  • Обучение API пользовательского зрения для определения типов крыш: практическое использование Custom Vision для определения типов крыш.
  • Машинное обучение в iOS: IBM Watson и CoreML (Часть 1).
  • Машинное обучение в iOS: Turi Create и CoreML (часть 3).
  • Cloud ML Engine with Keras Tutorial: узнайте, как использовать Cloud ML Engine с Keras, который представляет собой высокоуровневый API поверх TensorFlow, для обучения пользовательской модели.

Источник: ledsshop.ru

Стиль жизни - Здоровье!