Введение В современном мире задачу сегментации, как оказалось, можно решить за одну-две минуты, хотя мне казалось это чем-то сложным и удивительным.
Все, что вам нужно, это прочитать пару статей, установить определенные библиотеки и разметить данные; все занимает пару часов времени, кроме создания тестового образца.
Разметка данных
Этот этап реализации сегментации кадров видеопотока является одним из самых трудоемких с точки зрения человеческого труда.Для этого необходимо использовать специальные программы для разметки кадров видеопотока.
Мы просто открываем этой программой нужный видеофайл и размечаем кадры, предварительно создав классы, на которые будем сегментировать изображения.
В моем демонстрационном примере кадры разделены на следующие классы (Автомобиль, Дорога, Пешеходный переход, Газон, Здания, Люди, Тротуар, Дорожная разметка).
Фактически такие позиции, как дороги, здания, газоны, тротуары и т.п.
могут быть не распознаны, так как камера в этом случае жестко закреплена и поэтому эти участки всегда будут находиться на одном и том же месте.
Рис.
1 Программа для разметки кадров видеопотока
Обучение нейронной сети сегментации изображений
Этот этап реализации сегментации кадров видеопотока является одним из наименее трудоемких с точки зрения человеческого труда (если не принимать во внимание проектирование архитектуры нейросети, но существуют заранее сформированные архитектуры, обеспечивающие хорошие результаты).Результаты).
Все, что необходимо – запустить процесс обучения на заранее подготовленной обучающей выборке.
Использование обученной сети для сегментации изображений
Последний шаг — использовать обученную сеть.Рассмотрим результат обучения на 4 кадрах видеопотока (да-да-да.
выборка очень маленькая, но задача необязательная, посмотреть как это работает, а не создавать массовый продукт) и 60 эпохи обучения с использованием сетевой архитектуры DeepLab v3+ (на базе ResNet-18).
Результат показан на рис.
2. Таким образом, как видно на этом примере, сегментация изображений теперь стала максимально простой и быстрой; вся проблема упирается лишь в очень трудоемкую часть создания обучающей выборки.
Давайте рассмотрим возможность максимально использовать результат сегментации изображения с камеры, установленной во дворе дома.
Рис.
2. Использование быстрообучаемой нейронной сети для сегментации изображений
Использование результатов сегментации
Эту камеру можно использовать как анализатор пробок; для этого можно создать маску (рис.3 и 4), в рамках которой анализируется количество присутствующих автомобилей.
Рис.
3 Создание маски интересующего участка дороги
Рис.
4 Создана маска интересующего участка дороги.
Таким образом, нам необходимо сегментировать изображение только по интересующей области (рис.
5 и 6).
Рис.
6 Сегментация интересующего участка дороги Чтобы упростить задачу подсчета количества автомобилей, можно просто посчитать количество пикселей дороги и машин, а точечное значение индекса загруженности установить в процентах (рис.
7 и 9).
Дополнительно рассмотрим случай, когда дорога сильно перегружена (рис.
8).
В случае, когда дорога свободна, процент заторов составил 3%, а когда дорога занята, процент заторов составил 54%.
Это связано с тем, что автомобили рядом с камерой имеют большее количество пикселей, чем автомобили далеко от камеры.
Чтобы решить эту проблему, необходимо ввести веса пикселей; пиксели вблизи должны иметь меньший вес, чем пиксели на расстоянии.
Таким образом вы получите достаточно простой и достаточно качественный детектор пробок на дорогах.
Рис.
7 Процентное соотношение площади автомобилей к площади дороги и ее элементов составляет ~3%
Рис.
8 Анализ пробок на дорогах в часы пик
Рис.
9 Процент площади автомобилей к площади дороги и ее элементов составляет ~54%
Дополнительное использование результатов сегментации
Дополнительно по результатам сегментации данных можно определить количество свободных парковочных мест, зафиксировать время въезда и выезда автомобилей на территорию жилого комплекса и многое другое.В общем, идей может быть очень много (дайте несколько вариантов в комментариях), и за один вечер можно сделать действительно интересные вещи, но все сводится к созданию больших обучающих выборок для первоклассного качества сегментации.
Заключение
В настоящее время создание любых систем анализа и наблюдения не так сложно, как может показаться; в этой схеме самая сложная и трудоемкая часть работы — создание обучающей выборки.Скорее всего, в ближайшее время появятся сервисы (возможно, они уже существуют, если они есть, напишите в комментариях), где будут нанимать сотрудников для создания обучающих образцов типа Яндекс.
Еда и Яндекс.
Такси, где люди будут зарабатывать, пока сидят дома в свободное время.
Но небольшие компании смогут поставить задачу и за относительно небольшие деньги создать огромные тестовые выборки и получить нейронные сети высочайшего качества для сегментации и классификации данных.
Ну а учитывая, что с помощью нейросети можно изучить что угодно, боюсь представить, какие интересные вещи появятся, когда обучающие выборки будут создаваться очень быстро.
Просто когда обучающая выборка создается одним человеком, время ее создания может длиться неделю, а то и месяцы, а когда есть возможность распараллелить ее для ста или тысяч человек, то будут созданы обучающие выборки.
в день, а то и меньше.
P.S. Если кто знает, каким софтом можно максимально просто записать видеопоток из ютуб потока?) Камеры просто записывают данные в циклический буфер (последние 12 часов) в виде ютуб потока, создавая таким образом видеонаблюдение где каждый житель дома может просмотреть последние 12 часов.
Теги: #Машинное обучение #Алгоритмы #Обработка изображений #распознавание образов #сегментация #сегментация
-
Как Выбрать Веб-Хостинг
19 Oct, 24 -
Gettidy - Услуга Уборки Квартир
19 Oct, 24 -
Выпуск Spree 0.10.0
19 Oct, 24 -
Пользователи Устали От Социальных Сетей
19 Oct, 24