Jakich technik analizy obrazu mogę użyć do wyodrębnienia znaków drogowych z obrazu, takiego jak ten poniżej?
Edytować:
Po dyfuzji anizotropowej: tło, którego nie chcę, jest trochę usuwane
Po dylatacji:
Progowanie po rozproszeniu: Nie można ustalić najlepszego progu dla tego celu
Jednak nie jestem w stanie dowiedzieć się, jak usunąć tło?
Edycja: chcę tylko te części mojego obrazu
Robienie kolejnego obrazu wejściowego:
Stosowanie filtrowania mediany i wykrywania krawędzi:
Po filtrowaniu dolnego kapelusza:
Jak wyodrębnić znaki drogowe, proszę o pomoc?
Odpowiedzi:
Czy próbowałeś czegoś prostego, takiego jak korelacja?
( EDYCJA ). Ideą korelacji jest użycie szablonu (w twoim przypadku wyszkolonej próbki znaku drogowego) i porównanie jej z każdą pozycją na obrazie testowym. Operacja porównania, której użyłem do wygenerowania poniższych obrazów, nazywa się znormalizowaną korelacją krzyżową . Z grubsza mówiąc, standaryzujesz (średnia = 0, odchylenie standardowe = 1) piksele w szablonie i część obrazu, którą chcesz dopasować, mnożymy je piksel po pikselu i obliczasz średnią wartość produktów. W ten sposób otrzymujesz „wynik dopasowania”, tj. Miarę podobieństwa między szablonem a obrazem testowym w każdej pozycji obrazu testowego. Pozycja z najlepszym dopasowaniem (najwyższa korelacja) jest najbardziej prawdopodobnym kandydatem na pozycję znaku drogowego. (Właściwie użyłem funkcji MathematicaKorelacja Odległość do wygenerowania obrazu poniżej, który wynosi 1 - (znormalizowana korelacja). Najciemniejsze miejsce na obrazie dopasowania odpowiada najlepszemu dopasowaniu).
Nie mam żadnych innych szablonów, więc po prostu wyciąłem znak z drugiego opublikowanego zdjęcia:
Mimo że szablon jest lekko obrócony, korelacja krzyżowa nadal wydaje się użyteczna
i najlepsze dopasowanie znajduje się na właściwej pozycji:
(Oczywiście potrzebujesz wielu skalowanych wersji każdego szablonu, aby wykryć znaki w dowolnym rozmiarze)
źródło
Podczas moich studiów projekt, w który zaangażowany był mój przełożony, polegał na wykrywaniu i rozpoznawaniu różnego rodzaju sygnalizacji ruchu w sekwencjach wideo (np. Wykrywanie drogi, wykrywanie linii środkowej drogi, ale także wykrywanie i rozpoznawanie znaków drogowych ). Klatki wideo, nad którymi pracowaliśmy, są pod wieloma względami podobne do twoich przykładowych obrazów.
Chociaż osobiście nie pracowałem na znakach drogowych, myślę, że najlepsze wyniki uzyskano przy użyciu algorytmu Viola-Jonesa (papier) . Krótko mówiąc, jest to algorytm, który wykorzystuje kaskadę słabych klasyfikatorów (z dokładnością nieco wyższą niż w przypadku algorytmu losowego), aby zbudować silny klasyfikator, który jest solidny nawet w trudnych zadaniach.
Projekt nazwano MASTIF (mapowanie i ocena stanu infrastruktury ruchu) i wykonał naprawdę dobrą robotę. Strona publikacji projektu może być bardzo przydatna, ponieważ zawiera linki do wszystkich opublikowanych prac związanych z projektem. Aby dać ci pomysł, pozwól mi wyróżnić niektóre publikacje (w kolejności chronologicznej):
Po raz kolejny osobiście nie pracowałem nad znakami drogowymi, ale myślę, że można tu znaleźć wiele przydatnych materiałów. Proponuję również przejrzeć cytowane odniesienia w artykułach, ponieważ mogą one również pomóc.
źródło
Cóż, Google
road way signs detection
daje mnóstwo dobrych artykułów na ten temat.Niektóre wykorzystują segmentację kolorów ze względu na szczególne kolory niebieski, zielony, czerwony itp.
Niektórzy stosują najpierw wygładzanie Gaussa, a następnie wykrywanie krawędzi kanciastej i wyszukiwanie konturu, aby wyodrębnić tablicę znaków.
Spróbuj użyć dwóch linków: Link 1 , Link 2
źródło
Zdecydowanie nie jestem tutaj ekspertem, ale możesz zacząć od wykrywania krawędzi (np. Sprytnego), a następnie przekształcić Hougha, aby wykryć koła, prostokąty, kwadraty lub trójkąty (na podstawie znaku, który chcesz wykryć), a następnie możesz zrobić szablon dopasowanie lub dopasowanie histogramu, jeśli kolory są wystarczająco wyraźne (nad kandydatami zwróconymi przez transformację Hougha).
Pierwszym krokiem (wykrywanie kandydatów za pomocą transformacji Hougha) jest trudniejszy. Mogę wymyślić wiele sposobów wykrycia, czy ten kandydat jest znakiem, czy nie. To zabawny problem. Miłego rozwiązywania :)
Nawiasem mówiąc, jestem pewien, że można znaleźć dobre artykuły badawcze, które są ze sobą ściśle powiązane
źródło