Подход для извлечения/обрезки изображений признаков с использованием глубокого обучения без аннотаций.

Вопрос или проблема

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

Я пытаюсь понять возможность получения изображений из видео для разных предметов. Например, дать ей изображения 1000 шляп, и тогда она будет вырезать изображения шляп из множества видеозаписей.

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

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

Спасибо

Итак, у вас есть набор изображений, содержащих только обрезанные шляпы? Одна идея – использовать синтетические данные для обучения детектора объектов. Будет лучше, если у вас будут обрезки натурных изображений с шляпами, а не только шляпы сами по себе (так как это уменьшит сдвиг между доменами).

В основном, следующее: (1) взять ваши изображения шляп и сгенерировать «эталонные» изображения, случайным образом вставляя случайное количество шляп (в случайных позах) в случайное фоновое изображение (откуда угодно, желательно похожее на фоны изображений, которые вы планируете использовать на этапе тестирования). (2) Обучить модель детектора объектов (например, Mask-RCNN, Faster R-CNN, или YOLO9000) с использованием вашего синтетического набора данных (поскольку вы знаете «реальные» позиции шляп на изображениях, так как вы их сделали). (3) Разложить видео на последовательность кадров изображений и запустить ваш обученный детектор по каждому кадру. (4) Использовать вывод детектора для получения позиций шляп и их обрезки.

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

Основной проблемой является адаптация домена между синтетическими и реальными изображениями. Любые из множества современных методов для обработки сдвига домена вероятно помогут. Например, использование GANs (также здесь).

Вам может быть интересно узнать, что эта простая синтетическая методика оказалась полезной на практике. Например, Тремблей и др. в NVIDIA недавно использовали ее для обучения детектора объектов посредством рандомизации домена. Другие применения включают робототехнику.


Гораздо более тривиальное, но более легкое в реализации решение – это обучить классификатор шляп $C$, который принимает изображение или патч изображения и выдает, содержит ли патч шляпу или нет. Используя ваш набор данных обрезанных шляп как истинные положительные примеры и получая истинные отрицательные примеры путем случайного обрезания патчей из любого случайного набора изображений, вы можете обучить $C$. Для данного видео вы просто используете подход скользящего окна, где для каждого патча изображения в каждом кадре вы запускаете $C$ на нем. Затем вы можете пороговое значение вывода $C$ и/или обрезать области с высокими значениями от классификатора.

Ответ или решение

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

Проблема

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

Подход

Один из эффективных подходов — это создание синтетического набора данных. Давайте рассмотрим основные шаги для реализации этой стратегии:

  1. Создание синтетического набора данных: Используя изображения шляп, создайте "истинные" изображение путем наложения этих шляп на случайные фоновые изображения. Эти фоновые изображения должны быть подобраны таким образом, чтобы они напоминали те, с которыми вы будете работать на этапе тестирования.

  2. Обучение модели: Обучите детектор объектов, такой как Mask-RCNN, Faster R-CNN или YOLO9000, на этом синтетическом наборе данных, где позиции шляп вам известны. Таким образом, вы сможете сымитировать процесс разметки.

  3. Извлечение кадров из видео: Проведите разбор видео на отдельные кадры и примените обученную модель к каждому кадру, чтобы определить позиции шляп и обрезать их.

  4. Адаптация к реальным изображениям: Используйте современные техники для уменьшения разрыва между синтетическими изображениями и реальными данными. Это может включать использование Generative Adversarial Networks (GANs) для повышения реалистичности синтетических данных.

Преимущества и вызовы

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

Альтернативный подход

Если вам нужна более простая реализация, можно создать и обучить классификатор шляп, который определяет, содержится ли изображение шляпы в кадре или нет. Для этого используется метод скользящего окна, чтобы оценивать каждый участок изображения и определить наличие искомого объекта.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...