Что касается моего следующего сайд-проекта, я решил погрузиться в библиотеку CoreML, доступную для iOS. Меня особенно интересовало обнаружение объектов в реальном времени с использованием алгоритмов Vision. Подробнее о CoreML можно прочитать здесь. Без лишних слов давайте начнем создавать наше собственное простое приложение для обнаружения объектов в реальном времени, используя готовую модель Resnet50. Apple предоставляет нам несколько готовых моделей, подобных той, о которой я упоминал ранее. Больше их примеров вы можете найти здесь.

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

Следуйте стандартной процедуре, убедитесь, что установлен флажок Swift, и создайте проект.

Шаг 2 — Настройте Info.plist

Наше приложение будет использовать камеру iPhone, поэтому для этого нам нужно специальное разрешение. Перейдите к Info.plist, щелкните правой кнопкой мыши пустое место ниже и выберите Добавить строку. Добавьте следующую строку:

Шаг 3 — Загрузите модель ML.

Заходите сюда и выбирайте понравившуюся модель. Я бы порекомендовал вам скачать Resnet50.mlmodel (первая в списке), потому что она самая точная и я ее тестировал. После загрузки перетащите его в свой проект. Убедитесь, что установлен флажок копировать при необходимости. Если вы сейчас щелкните по модели, вы увидите основную информацию о ней.

Шаг 4 — Заставляем камеру iPhone работать

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

Если вы запустите приложение сейчас, вы должны сначала увидеть всплывающее окно с разрешением на использование камеры, нажмите «ОК», и вы сможете увидеть, как работает задняя камера! 🎉

Шаг 5 — Реализуйте логику алгоритма

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

Вот и все! У вас есть полнофункциональное приложение для машинного обучения, которое использует алгоритмы Live Vision для обнаружения объектов поблизости. Всего 83 строки! 💎