Здравствуйте! В этой короткой статье я покажу вам, как внедрить платформу Apple Core ML «MobileNetV2» в ваше приложение для iOS, чтобы создать приложение для быстрой классификации изображений.

Итак, вы уже некоторое время работаете над приложениями для iOS и думаете, что у вас все хорошо. Думаете, вы все это сделали? на самом деле фреймворк ios намного мощнее и сложнее этого. всегда есть что-то новое, что можно узнать. И в сегодняшнем уроке мы рассмотрим удивительную базовую структуру ML для создания простого приложения для классификации.

Приложение довольно простое: сначала вы загружаете изображение из галереи телефона, а затем, используя модель MoileNet V2, приложение будет предсказывать имя объекта на изображении.

Пользовательский интерфейс приложения должен выглядеть так: Я положу полный исходный код ниже, да, кстати, я не люблю раскадровки 😅

С чего начать?

как всегда Во-первых, нам нужна базовая модель ML, которая распознает изображения. Мы будем использовать одну из предварительно обученных моделей Appel. Вы можете найти полный официальный список моделей здесь, как я упоминал ранее, в этом проекте мы будем использовать MobileNet. Модель версии 2 (32 бита). Это мощная модель распознавания изображений небольшого размера, способная распознавать до 1000 категорий, таких как деревья, животные, еда, люди, транспортные средства и многое другое… великолепно

начнем с загрузки этой основной модели мл «MobileNet 2», затем просто модель мл можно перетащить прямо в Xcode:

поэтому, возвращаясь к исходному коду (нашему контроллеру представления), мы можем начать использовать модель MobileNet напрямую следующим образом:

let mobilenet = MobileNetV2()

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

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

пожалуйста, проверьте описание ввода в метаданных модели (CvPixelBuffer 224*244)

мы используем некоторые низкоуровневые API, о которых вам не нужно знать, поэтому я просто предоставлю функцию для этого

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

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

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

пожалуйста, найдите полный исходный код здесь



Большое спасибо📷