Как извлечь дорожные знаки из фотографии?

15

Какие методы анализа изображений я могу использовать для извлечения дорожных знаков из изображения, такого как изображение ниже?

Внешний выстрел столичной обочины

Редактировать:

После анизотропной диффузии: фон, который я не хочу, немного очищается

введите описание изображения здесь

После Дилатации:

введите описание изображения здесь

Thresholding после Diffusion: не в состоянии определить лучший порог для этой цели

введите описание изображения здесь

Однако я не могу понять, как удалить фон?

Изменить: я просто хочу эти части моего изображения

введите описание изображения здесь

Получение другого входного изображения:

введите описание изображения здесь

Применение медианной фильтрации и обнаружения краев:

введите описание изображения здесь

После фильтрации нижнего колпака:

введите описание изображения здесь

Как изолировать дорожные знаки, пожалуйста, помогите?

вини
источник
Для меня «сигнал светофора» означает освещенное устройство justsymbol.com/images/traffic-signal-sign-6.png , а не знак. Вы имеете в виду только знаки?
эндолит
Да только знаки
vini
Какой подход ты попробовал сам?
Маврикий
Да, у меня есть шаблоны
vini
Отредактировал @mauritis
vini

Ответы:

17

Вы пробовали что-то простое, например, корреляцию?

( РЕДАКТИРОВАТЬ ). Идея корреляции заключается в том, чтобы использовать шаблон (в вашем случае обученный образец дорожного знака) и сравнить его с каждой позицией на тестовом изображении. Операция сравнения, которую я использовал для генерации изображений ниже, называется нормализованной взаимной корреляцией . Грубо говоря, вы стандартизируете (среднее = 0, стандартное отклонение = 1) пиксели в шаблоне и той части изображения, которую хотите сопоставить, умножаете их попиксельно и вычисляете среднее значение продуктов. Таким образом, вы получаете «оценку соответствия», то есть меру сходства между шаблоном и тестовым изображением в каждой позиции тестового изображения. Позиция с наилучшим соответствием (самая высокая корреляция) является наиболее вероятным кандидатом на позицию дорожного знака. (На самом деле, я использовал функцию MathematicaCorrelationDistance для генерации изображения ниже, которое равно 1 - (нормализованная корреляция). Таким образом, самое темное пятно на изображении соответствует лучшему совпадению).

У меня нет других шаблонов, поэтому я просто обрезал знак со второй фотографии, которую вы разместили:

введите описание изображения здесь

Несмотря на то, что шаблон слегка повернут, кросс-корреляция все еще выглядит полезной

введите описание изображения здесь

и лучшее совпадение находится в правильном положении:

введите описание изображения здесь

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

Ники Эстнер
источник
1
@nikie: Не могли бы вы объяснить процесс, который вы использовали?
Smokris
Да, это помогло бы немного больше. Идея кажется хорошим
вини
@vini Если у вас есть шаблоны и вы пытаетесь найти их экземпляры в своем изображении, взаимная корреляция является наиболее естественным подходом и должна быть в числе первых, которые вы попробуете. Вот ответ здесь (код Mathematica) и другой ответ на SO (код MATLAB), где я использую этот подход.
Lorem Ipsum
7

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

Хотя я лично не работал с дорожными знаками, я думаю, что лучшие результаты были получены с использованием алгоритма Виолы-Джонса (статья) . Короче говоря, это алгоритм, который использует каскад слабых классификаторов (с точностью чуть выше, чем у случайного алгоритма) для построения сильного классификатора, который будет устойчив даже в сложных задачах.

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

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

Пенелопа
источник
6

Что ж, поиск в Google road way signs detectionдает вам много хороших статей на эту тему.

Некоторые используют цветовую сегментацию из-за своеобразного синего, зеленого, красного цветов и т. Д.

Некоторые применяют сначала сглаживание по Гауссу, а затем обнаружение контуров и поиск контуров для извлечения вывески.

Попробуйте следующие две ссылки: Ссылка 1 , Ссылка 2

Абид Рахман К
источник
мертвые ссылки, к сожалению
CharlesB
На самом деле обе ссылки работает для меня.
Абид Рахман К
@CharlesB: ссылки обновлены :)
Anoop KP
5

Я определенно не эксперт здесь, но вы можете начать с определения ребер (например, canny), а затем преобразовать, чтобы обнаружить круги, прямоугольники, квадраты или треугольники (на основе знака, который вы хотите обнаружить), затем вы можете сделать шаблон сопоставление или сопоставление гистограммы, если цвета достаточно различимы (по кандидатам, возвращенным грубым преобразованием).

Первый шаг (определение кандидатов с использованием грубого преобразования) - более сложный шаг. Я могу придумать много способов попытаться определить, является ли этот кандидат знаком или нет. Это забавная проблема. Наслаждайтесь решением этого :)

Кстати, я уверен, что вы можете найти хорошие исследовательские статьи, которые тесно связаны

Ророноа Зоро
источник