Рубрики
Без рубрики

Эксперименты по синтетическим данным: обнаружение пакета

Украсить упаковку разочаровывает. Как продемонстрировал Марк Робер, он может привести людей к Эд … Помечено машинным обучением, наукой данных, Python, глубоким обучением.

Украсить упаковку разочаровывает. Как Марк Робер продемонстрировал , это может привести людей к краю безумия. Но что, если бы вы могли создать свою собственную модель обнаружения пакетов, используя исключительно синтетические данные? Мы рассказали о нескольких коротких шагах, которые мы предприняли, чтобы перейти от генерации синтетических данных к рабочему детектору.

Генерировать синтетические данные

Синтетические данные генерируются из симуляции или «SIM» – типично сцены, которая была создана из пользовательских или стоковых 3D -моделей. SIMS может работать в облаке параллельно, чтобы создать практически бесконечные данные обучения. Я создал SIM-карту для обнаружения пакетов, используя программное обеспечение с открытым исходным кодом 3D-программное обеспечение и zpy [1]. В этом SIM -карте различные 3D -пакеты порождаются, в то время как угол камеры и условия освещения рандомизированы. Полученный синтетический набор данных визуально разнообразен и прекрасно помечен.

Рисунок 1: Синтетические изображения пакетов, сгенерированных из SIM -карты.

Соберите тестовые данные

Чтобы проверить нашу модель, обученную синтетическим данным, нам нужно будет собрать некоторые реальные изображения. Мы нашли некоторые в Интернете и вручную пометили их, используя платформу для маркировки DIY под названием Roboflow [2]. Попробуйте. Потратив час, рисуя ограничивающие коробки на изображениях, уделите время, чтобы оценить, что почти все учебные данные должны быть кропотливо помечены вручную так. Это та утомительная работа, за которую люди в развивающихся странах заставляют платить копейки. Поговорим о будущем антиутопии …

Тренировать модель

Вооружившись нашим набором данных о синтетическом обучении и нашим реальным набором тестирования, мы готовы пройти некоторую модельную обучение. Мы использовали вариант Resnet, реализованный в Pytorch, из Detectron2 GitHub Repo [3]. Эта сеть была предварительно обучена на ImageNet, поэтому нам нужно только точно настроить ее немного дольше в нашем синтетическом наборе данных, прежде чем он способен делать достойные прогнозы. Неплохо для такого небольшого набора данных (1000 синтетических изображений) и такого короткого времени обучения (30 минут).

Рисунок 2: Прогнозы нашей нейронной сети, обученной синтетическим данным. Ложные позитивы, показанные для контекста.

Заключительные мысли

Это отличные результаты для первой итерации. Чтобы повысить производительность модели, мы могли бы увеличить размер набора данных, добавить больше разнообразия в SIM -карту или выбрать лучшие гиперпараметры для нашей модели. Оценка производительности модели на реальных данных тестирования и итерации является основной для рабочего процесса синтетических данных. В конце концов, самая крутая вещь о синтетических учебных данных – это то, что в конечном итоге это динамические данные.

Для вашего следующего проекта Computer Vision, будь то хобби или ваша работа, избавьте эти плохие ручные этикетки и рассмотрите возможность попробовать синтетический подход. Мы сделали это легко для вас: мы выпустили наш инструментарий для разработки данных ZPY [1] по лицензии с открытым исходным кодом. Теперь все, что вам нужно для генерации и итерации синтетических данных для компьютерного зрения, доступно бесплатно. Ваши отзывы, коммиты и запросы функций будут бесценными, поскольку мы продолжим создавать более надежный набор инструментов для генерации синтетических данных. Между тем, если бы вы могли использовать поддержку с особенно сложной проблемой, пожалуйста, обратитесь!

использованная литература

[1] zpy (github.com/zumolabs/zpy) [2] Roboflow (roboflow.com) [3] detectron2 (github.com/facebookresearch/detectron2)

Оригинал: “https://dev.to/zumolabs/synthetic-data-experiments-package-detection-2mnf”