Повышая качество компьютерного зрения с помощью синтетических данных

Что позволяет Neural Pocket снизить затраты и ускорить обучение систем компьютерного зрения на 95%?

Neural Pocket: пример использования Unity Computer Vision

Качественное обучение систем компьютерного зрения — это сложная и долгая задача для больших коллективов, собирающих и кропотливо описывающих данные из реального мира. Neural Pocket использует наборы синтетических данных, получаемых с помощью Unity Computer Vision, для решения задач компьютерного зрения.

  • Задача

    Ускорьте получение массивов идеально аннотированных данных для обучения систем компьютерного зрения

  • Продукты

    Unity Pro, пакет Unity Computer Vision Perception

  • Количество сотрудников

    11 (1 специалист по симуляции, 10 специалистов по ИИ)

  • Местоположение

    Токио, Япония

Обучение систем компьютерного зрения: быстрее, лучше, дешевле

Компания Neural Pocket из Токио занимается разработкой ИИ-систем умных городов для крупных компаний и правительственных организаций, как в Японии, так и за рубежом. Платформа разработки RT3D-контента и пакет Computer Vision Perception от Unity позволяет коллективу снизить затраты, а также ускорить и повысить эффективность разработки систем компьютерного зрения.

Результаты

  • Ускорение циклов обучения моделей компьютерного зрения на 95% (в среднем с 6 месяцев до 1 недели)
  • Сокращение затрат на сбор и аннотирование массивов с последующим обучением на 95%
  • Повышенная производительность модели компьютерного зрения
  • Дополнительные возможности разработки нескольких проектов, повышение прибыльности
Инфографика

Ускорение и удешевление работы в несколько раз

В сочетании с итеративной природой обучения систем компьютерного зрения, сбор и аннотирование данных из реального мира — это дорогая и долгая работа. В Neural Pocket обучение систем на данных реального мира требует много итераций, зачастую около 30. 

В каждом из этих циклов данные реального мира нужно собрать (фотографии, видео, съемки с дронов), аннотировать (промаркировать вручную силами специальных сотрудников), провести обучение модели и оценить результаты, что обычно требует около одной недели. Для проектов 30 циклами обучения затраты разрастаются до 150 000 $, а сроки производства готового решения доходят до 6 месяцев.

Благодаря Unity и пакету Unity Computer Vision Perception, Neural Pocket значительно сократила число итераций и связанные с ними затраты на обучение системы компьютерного зрения, вместе с тем добившись лучшего качества системы. Коллектив использует инструменты Unity для получения синтетических изображений с автоматической маркировкой и аннотацией для итеративного обучения систем компьютерного зрения на комбинированных массивах синтетических и реальных данных.

Проводя большую часть циклов обучения на массивах, полученным с помощью Unity Computer Vision Perception Package, и всего один цикл обучения на реальных данных, компания получила качественную модель всего за неделю, по сути сэкономив в среднем около 95% времени и денег.

Познакомимся с опытом использования пакета Unity Computer Vision Perception в проектах из области обеспечения безопасности.

Проект 1: Обнаружение оружия

Партнеры по этому проекту Neural Pocket хотели обеспечить дополнительную безопасность для своего офиса. Они обратились к разработчику с просьбой создать модель компьютерного зрения для системы смарт-камер, что позволило бы лучше отслеживать опасные объекты. 

Чтобы собрать реальные данные для обучения, Neural Pocket организовали видеосъемку, где люди несли в руках, ножи, биты и огнестрельное оружие в различных условиях обнаружения. На основе отснятого материала Neural Pocket создали приблизительно тысячу статичных изображений из видео и описали оружие с помощью внутренних специалистов по аннотации, вручную промаркировавших каждое изображение.

По результатам первого цикла обучения модель обнаруживала ножи в 27% случаев, а биты и огнестрельное оружие в 80 случаях.

Выгодное сочетание: реальные и синтетические данные

Для повышения производительности Neural Pocket воспользовалась пакетом Unity Computer Vision Perception, чтобы создать большие массивы данных для обучения и проверки системы компьютерного зрения.

«Пакет Unity Computer Vision Perception наводит порядок в работе и позволяет использовать одни и те же материалы в разных проектах», — Ромейн Анженью, глава отдела симуляции в Neural Pocket. «Гибкие компоненты, включая сценарии, рандомизаторы, теги, метки и смарт-камеры, позволяют нам в широких пределах настраивать вариативность в интерфейсе инструмента».

Модели оружия Neural Pocket взяла из Unity Asset Store и других магазинов, и легко интегрировала их в инструменты компьютерного зрения Unity для обнаружения заданных объектов. Массив содержал много вариаций изображений, например, оружие в руках и отдельно лежащее оружие.

Unity Computer Vision предлагает гибкое решение для получения тысяч или даже миллионов синтетических изображений. Neural Pocket получила 5100 синтетических кадров, в пять раз больше количества реальных кадров. Проведя обучение модели на комбинированном массиве реальных и синтетических данных, разработчики получили следующие показатели: вероятность обнаружения ножей увеличилась с 27% до 87%, а для обнаружения бит и огнестрельного оружия достигнуты идеальные 100%. 

«Мы были приятно удивлены получить отличные результаты с первой попытки», — говорит Алекс Дэниэлс, старший эксперт и руководитель группы Technology Incubation. «Возможность легко и быстро менять параметры для улучшения массивов данных и отсутствие зависимости от собранных реальных данных значительно ускорили нам процесс разработки».

Проект 2: Обнаружение смартфонов

Партнер Neural Pocket по другому проекту хотел обучить ИИ для обнаружения людей, ведущих съемку на смартфон, для улучшения защиты конфиденциальных данных, например, номеров кредитных карт.

Компания уже использовала стандартные функции пакета Unity Computer Vision Perception для обнаружения опасных объектов, но гибкость и открытый исходный код открыли дополнительные возможности для более сложного проекта. 

«Стандартная конфигурация пакета достаточна для повышения эффективности компьютерного зрения, но возможности инструмента можно расширить множеством дополнительных функций для других областей применения», — говорит Анженью.

Разработчики создали собственную серию вариаций для адаптации под следующие технические особенности обнаружения смартфонов:

  • Множество моделей — разработан логический метод сочетания различных базовых компонентов (логотипы, камеры) для генерации реалистичных 3D-моделей доступных на рынке телефонов.
  • Бесконечное разнообразие дизайна корпусов — реализовано наложение любых изображений из Google Image API на модели корпусов телефонов.
  • Разнообразие положений в руках и частичного перекрытия пальцами — разработаны модульные модели кистей различного цвета кожи в разных положениях.
  • За смартфон может быть принято много различных объектов – созданы неаннотированные объекты-ловушки, имеющие похожую форму, которые не должны вызывать срабатывания; тем самым реализовано условие «не каждый прямоугольный объект является смартфоном» для снижения вероятности ошибок.

Симуляции снова повышают производительность

Neural Pocket собрала массив из 20 540 реальных изображений и получила 27 478 синтетических изображений. На основе реальных данных модель обнаруживала смартфоны в 89,8% случаев; после обучения на комбинированном массиве вероятность выросла до 92,9%.

«Улучшение кажется небольшим, но обнаружение телефона проводится по серии кадров видеоряда, поэтому прирост в 3% на статических изображениях значительно увеличит вероятность обнаружения телефонов в целом», — говорит Дэниэлс.

Что дальше?

Unity помогла Neural Pocket значительно увеличить производительность, что позволило команде принимать больше заказов и увеличить доход. Neural Pocket продолжает использовать инструменты компьютерного зрения Unity в различных проектах; с другими примерами можно ознакомиться в блоге

В будущем Neural Pocket планирует уменьшить зависимость от реальных данных и увеличить долю синтетических данных в массивах для обучения до 90%. Главный фактор, способствующий этому изменению, — уверенность разработчиков в возможностях инструментов компьютерного зрения Unity.

«Учитывая внимание, уделяемое потребностям пользователей разработчиками, мы считаем, что пакет Unity Computer Vision Perception со временем будет становиться лучше, становясь эталонным инструментом для своих задач и отправной точкой для наших проектов компьютерного зрения», — говорит Анженью.

Romain Angénieux, Head of Simulation, Neural Pocket

«Инструменты компьютерного зрения Unity помогли нам работать эффективнее и экономнее. Это позволило нам обучать и развертывать модели компьютерного зрения в несколько раз быстрее и с минимальными затратами».

Romain Angénieux, Head of Simulation, Neural Pocket
Alex Daniels, Senior Expert and Head of the Technology Incubation Team, Neural Pocket

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

Alex Daniels, Senior Expert and Head of the Technology Incubation Team, Neural Pocket

Начните работу с Unity Computer Vision

Ознакомьтесь с предложениями наших экспертов по генерации синтетических данных специально для ваших систем компьютерного зрения.

Мы используем cookie-файлы, чтобы вам было удобнее работать с нашим веб-сайтом. Подробнее об этом можно узнать на странице, посвященной политике использования cookie-файлов.

Согласен