В настоящее время становится все более популярным использование M Achine Learning [1] для различных приложений [2].
В этой статье мы стремимся объяснить, как реализовать распознаватель объектов с методами обнаружения объектов очень простым способом, благодаря исследованию, основанному на проекте Apple Developer Academy. Основная цель проекта - разработка iOS-приложения на основе машинного обучения.

Начало

В 2017 году Apple представила Core ML [3], революционный фреймворк для разработки приложений на основе машинного обучения. Фактически, мы увидим, как реализовать машинное обучение в нашем приложении для iOS с помощью всего нескольких строк кода возможным способом «Swift-est».

От классификации изображений до обнаружения объектов

Первым шагом в этом процессе было создание модели классификатора изображений [4] для распознавания различных видов фруктов, чтобы гарантировать, что если наше приложение получит входное изображение, оно распознает, является ли изображение на входе фруктом и какой это фрукт. Чтобы сделать реализацию гладкой и интересной, классификатор изображений был заменен на модель обнаружения объектов [5] для распознавания объекта (в нашем случае фрукта) в режим прямой трансляции, а не ожидание ввода данных пользователем [6]. Для этого мы использовали два основных фреймворка: CoreML и Vision [7], последний использует алгоритмы компьютерного зрения для выполнения задачи над входным изображением s и видео.

Набор данных изображений

Первоначально мы создали набор данных изображений, разделенных на разные папки, каждая из которых представляет отдельный объект (фрукт), и набор изображений для каждой папки (чтобы обеспечить точность распознавания объектов ; для каждой папки мы предоставили не менее 20–30 изображений в разных ракурсах и с разрешением не более 1024x768 в формате JPEG). Затем 80% изображений были посвящены обучению компьютера, а остальные 20% - тестированию. Очень важно отделить обучающие изображения от тестовых изображений в двух разных папках. Эта схема используется для создания классификатора изображений, но, поскольку мы решили создать обнаружение объекта, возникла необходимость создать файл JSON с описанием каждого объекта, представляющего изображение, поэтому это не было дольше необходимо разделить объект на подпапки.

Структура файла JSON

Итак, у нас есть массив JSON, содержащий два свойства для каждого элемента: имя изображения и изображение аннотации, которое, в свою очередь, соответствует другому JSON. массив, содержащий все идентифицируемые объекты внутри изображения, и для каждого объекта указываются тип (метка), координаты внутри изображения, width и height.

Продолжение следует…

Вы можете найти вторую часть этой статьи здесь.

Большое приветствие от Андреа Капоне и Джанлуки Де Люсии, двух выпускников информатики.

Спасибо всем за чтение.

Для получения дополнительной информации вы можете связаться с нами по электронной почте:

Андреа: [email protected]
Джанлука: [email protected]

Профиль Github:
Андреа: https://github.com/One195/
Джанлука:
https://github.com/gigernau

Ссылка на приложение Fruitable:
https://github.com/One195/Fruitable

Ресурсы

[1] Машинное обучение - определение и примеры применения, https://www.spotlightmetal.com/machine-learning--definition-and-application-examples-a-746226/?cmp=go-aw-art -trf-SLM_DSA-20180820 & gclid = Cj0KCQjw1Iv0BRDaARIsAGTWD1swNAKBOUREuv86sCaU1osO-hJXIyPDkLbzGAUnCfHErd3vnbeh5nwa_emwcuEALw

















[2] Машинное обучение - Приложения https://www.geeksforgeeks.org/machine-learning-introduction/

[3] Документация CoreML https://developer.apple.com/documentation/coreml

[4] Создание модели классификатора изображений
https://developer.apple.com/documentation/createml/creating_an_image_classifier_model

[5] Модели обнаружения обучающих объектов в создании машинного обучения
https://developer.apple.com/videos/play/wwdc2019/424/

[6] Классификация изображений с помощью Vision и Core ML
https://developer.apple.com/documentation/vision/classifying_images_with_vision_and_core_ml

[7] Техническая документация https://developer.apple.com/documentation/vision

[8] Распознавание объектов в режиме Live Capture
https://developer.apple.com/documentation/vision/recognizing_objects_in_live_capture