Як витягти дорожні знаки з фотографії?


15

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

Зовнішній знімок столичного узбіччя

Редагувати:

Після анізотропної дифузії: тло, яке я не хочу, трохи очищається

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

Після розширення:

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

Поріг після дифузії: не в змозі визначити найкращий поріг для цієї мети

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

Однак я не в змозі зрозуміти, як видалити фон?

Редагувати: я просто хочу, щоб ці частини мого зображення

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

Зйомка іншого вхідного зображення:

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

Застосування серединної фільтрації та виявлення ребер:

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

Після фільтрації шапки знизу:

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

Як можна ізолювати дорожні знаки, будь ласка, допоможіть?


Для мене "сигнал дорожнього руху" означає освітлений пристрій justsymbol.com/images/traffic-signal-sign-6.png , а не знак. Ви маєте на увазі лише знаки?
ендоліт

Так, лише знаки
vini

Який підхід ви спробували самі?
Маврит

Так, у мене є шаблони
vini

Редагував @mauritis
vini

Відповіді:


17

Ви спробували щось таке, як кореляція?

( EDIT ). Ідея кореляції полягає у використанні шаблону (у вашому випадку зразка підготовленого дорожнього знаку) та порівнянні його з кожною позицією на тестовому зображенні. Операція порівняння, яку я використовував для створення зображень нижче, називається нормалізованою перехресною кореляцією . Грубо кажучи, ви стандартизуєте (середнє = 0, стандартне відхилення = 1) пікселів у шаблоні та частині зображення, яку ви хочете зіставити, примножуєте їх піксель на піксель та обчислюєте середнє значення продуктів. Таким чином ви отримуєте "бальну відповідність", тобто міру подібності між шаблоном і тестовим зображенням у кожному положенні тестового зображення. Позиція з найкращим співвідношенням (найвищим співвідношенням) є найбільш вірогідним кандидатом на посаду дорожнього знаку. (Власне, я використав функцію MathematicaCorrelationDistance для генерування зображення нижче, що становить 1 - (нормалізована кореляція). Отже, найтемніша пляма на зображенні відповідності відповідає найкращому збігу).

Інших шаблонів у мене немає, тож я просто обрізав знак з другої картинки, яку ви розмістили:

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

Незважаючи на те, що шаблон трохи повернутий, перехресна кореляція все ще виглядає корисною

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

і найкраща відповідність знайдеться в потрібній позиції:

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

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


1
@nikie: Чи можете ви пояснити процес, який ви використовували?
smokris

Так, це допоможе трохи більше. Ідея здається гарною
vini

@vini Якщо у вас є шаблони, і ви намагаєтеся знайти їх зображення у своєму зображенні, перехресна кореляція є найприроднішим підходом і повинна бути однією з перших підходів, які ви намагаєтеся. Ось відповідь тут (код Mathematica) та ще одна інформація про SO (код MATLAB), де я використовую такий підхід.
Lorem Ipsum

7

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

Хоча я особисто не працював над дорожніми знаками, я думаю, що найкращі результати були отримані за допомогою алгоритму Віола-Джонса (папір) . Якщо коротко, це алгоритм, який використовує каскад слабких класифікаторів (з точністю трохи вище, ніж у випадкового алгоритму) для побудови сильного класифікатора, який є надійним навіть у складних завданнях.

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

Ще раз я особисто не працював над дорожніми знаками, але, думаю, тут можна знайти багато корисного матеріалу. Також я б запропонував переглядати цитовані посилання в документах, оскільки вони також можуть бути корисними.


6

Що ж, googling road way signs detectionдає безліч хороших робіт на цю тему.

Деякі використовують кольорову сегментацію через своєрідні сині, зелені, червоні кольори тощо.

Деякі застосовують спочатку згладжування Гаусса, потім виявляють рельєфне ребро та пошук контуру, щоб витягнути табличку.

Спробуйте перейти за двома посиланнями: Посилання 1 , Посилання 2


мертві посилання, на жаль
CharlesB

Насправді обидва посилання для мене працюють.
Абід Рахман К

@CharlesB: Посилання оновлюються :)
Anoop KP

5

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

Перший крок (виявлення кандидатів за допомогою перетворення Хогга) - це більш важкий крок. Я можу придумати багато способів спробувати виявити, чи є цей кандидат знаком чи ні. Це весела проблема. Насолоджуйтесь її вирішенням :)

До речі, я впевнений, що ви можете знайти хороші науково-дослідні статті, які дуже пов’язані

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.