Когда я работал над проектом по обнаружению какой-то обуви, используя для этого отличный набор данных под названием UT Zappos50K (http://vision.cs.utexas.edu/projects/finegrained/utzap50k/), я понял, что он пропустил некоторые данные для обучения нейронной сети, такой как YoloV2 (Yolo9000). Итак, я провел небольшое исследование и обнаружил, что многие люди пытаются создавать ограничивающие рамки и маркировать объекты для некоторых открытых наборов данных. Некоторые из них используют такую ​​платформу, как Amazon Mechanical Turk (https://www.mturk.com/), где многие люди помогают создавать рамки и метки вокруг объектов в группе существующих изображений; другие пытаются автоматизировать процесс, используя кластеризацию K-средних или аналогичные методы. В любом случае создание ограничивающих рамок несколько раздражает и не является стандартизированным процессом.

В следующих абзацах я покажу вам другую стратегию автоматического создания блоков в наборе данных Zappos с использованием OpenCV и простого скрипта Python. Этот метод работает, потому что объекты на изображениях легко обнаруживаются автоматически, каждое изображение обуви имеет четкий фон и высокую контрастность, без других объектов на сцене.

Ожидаемый результат

Мы собираемся использовать некоторые изображения из Zappos, затем каждое из них будут обрабатывать два скрипта, и мы получим две папки с обработанными изображениями и два файла CSV:

Файл shoescategories.csv будет содержать обнаруженные категории (они берутся из исходной папки):

Файл shoesdataset.csv будет содержать сгенерированные ограничивающие рамки:

Хорошо, это все. Эти результаты можно использовать для создания необходимых обучающих и тестовых файлов для обучения нейронной сети YoloV2.

Обнаружение коробок

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

Здесь мы используем OpenCV для применения разных фильтров к каждому изображению и обнаружения разных контуров на каждом изображении. Алгоритм выбирает наибольший обнаруженный контур для каждого изображения.

Наконец, мы выполняем предыдущий код для всех изображений в наборе данных, чтобы сгенерировать файлы CSV:

Это все

Ну, это очень упрощенный и не стандартизированный подход. Тем не менее, это еще одна альтернатива, которая поможет вам подумать о различных способах улучшения или расширения набора данных.

Читать дальше

  1. Создание ящиков привязки для Yolo-подобной сети для обнаружения транспортных средств с использованием набора данных KITTI. [Вивек Ядак]
  2. Учебное пособие. Аннотирование изображений ограничивающими прямоугольниками с помощью Amazon Mechanical Turk.
  3. Учебное пособие. Создание изображений с ограничивающими рамками на лету с помощью AWS Lambda
  4. Обнаружение объектов в реальном времени с Yolo
  5. Простой инструмент для маркировки ограничивающих прямоугольников объектов на изображениях
  6. Версия Darknet Yolo v2 и v3 Neural Networks для Windows и Linux для обнаружения объектов
  7. UT Zappos 50K Dataset