Что касается моего следующего сайд-проекта, я решил погрузиться в библиотеку 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 строки! 💎