Компьютерное зрение, искусственный интеллект, машинное обучение и глубокое обучение — современные технологии, доказывающие, что человек — удивительное существо во вселенной. Эти технологии постепенно внедряются во всех секторах, таких как банки, больницы, промышленность, воздушный транспорт, игры и т. д., чтобы уменьшить человеческие усилия и дать точный и быстрый результат.

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

В этой статье мы узнаем о том, как:

  • Как аннотировать данные с помощью supervisor.ly
  • Расширение набора данных с помощью Supervise.ly
  • Импорт модели и обучение на дополненных данных
  • Развертывание и тестирование созданной модели
  • Доступ к развернутому API с использованием клиентского кода Python

Классы в проекте

Вот 3 класса в проекте Coco-Cola, Fanta и Sprite:

Сбор данных и аннотация

Для сбора данных я использовал общедоступные изображения и собрал 33 изображения, на некоторых из которых есть водяные знаки.

Для аннотации я использовал Supervise.ly для аннотации данных. С помощью инструмента аннотирования Supervisely AI вручную были аннотированы 33 изображения.

Расширение набора данных с помощью Supervise.ly

Контролируемый язык преобразования данных (DTL) позволяет автоматизировать сложные конвейеры преобразования данных. Различные действия, определяемые слоями DTL, могут применяться к изображениям и аннотациям.

Используемая мной конфигурация DTL:

Конфигурация DTL

Этот DTL преобразует 33 изображения в 4356 изображений, которые состоят из 95% обучающего набора и 5% проверочного набора с использованием этого потока.

Импорт модели и обучение на дополненных данных

Для базовой модели я использовал современную маску R-CNN (Keras + TF).

  • Клонирование модели для контролируемого рабочего пространства

  • Точная настройка модели Mask R-CNN в нашем индивидуальном наборе данных.

Потеря обучения

Развертывание и тестирование созданной модели

Для развертывания предварительно созданной модели перейдите на страницу нейронных сетей и нажмите «Развернуть», чтобы развернуть ее на настроенном агенте.

После этого начинается развертывание.

И должен видеть API-ключ и конечную точку.

Доступ к развернутому API с использованием клиентского кода Python

Этот код Python обращается к REST API и рисует растровое изображение на изображении, полученном в ответ через API.

Результаты

Вот несколько скриншотов полученных результатов:

  • Банки для безалкогольных напитков

  • Стекло для безалкогольных напитков

  • Стеклянные бутылки на разных языках

На изображении выше мы также получили некоторую ошибку, потому что она классифицирует бутылку, отличную от Coco-Cola, которую можно улучшить, добавив другой класс в набор данных.

Если вы зашли так далеко в блоге, похлопайте себя по спине, потому что знаете что? Ты восхитителен. Весь рабочий репозиторий доступен на GitHub.

Мы бросаем вызов друг другу и расстаемся друзьями. Пишите мне в LinkedIn, чтобы узнать о сотрудничестве по теме или правках этой статьи.