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