Problem, który pierwotnie tutaj omawiałem , ewoluował i mógł być nieco prostszy, gdy przestudiowałem go trochę i uzyskałem nowe informacje.
Podsumowując, chciałbym być w stanie wykryć pokazany tutaj wzór za pomocą technik komputerowych / przetwarzania obrazu. Jak widać, idealny wzór składa się z czterech „pingów”. Rozpoznawanie obiektów powinno być:
- Shift Invariant
- W poziomie obraz będzie cykliczny. (tzn. Pchnij w prawo, wychodzi po lewej i odwrotnie).
- (Na szczęście) W pionie, to nie jest cykliczne. (tzn. naciśnij przycisk do góry lub do dołu, a zatrzyma się).
- Skala niezmienna (pingi mogą się różnić „grubością”, jak widać).
Mógłbym o tym mówić, ale załączyłem zdjęcia obejmujące to, co mam na myśli, patrz poniżej:
Oczywiście mogą być również w innej „skali”, jak widać z tej rodziny:
I na koniec, oto kilka „realistycznych” scenariuszy tego, co faktycznie mogę otrzymać, gdzie byłby hałas, rzędy mogą „zanikać” w miarę schodzenia w dół i oczywiście obraz będzie miał wiele fałszywych linii, artefaktów itp.
I oczywiście jako wielki finał istnieje wyraźna możliwość tego „ekstremalnego” scenariusza:
Dlatego jeszcze raz chciałbym prosić o wskazówki dotyczące tego, jakie techniki widzenia z komputerem-maszyną powinienem tutaj zastosować, aby jak najlepiej wykryć występowanie mojego wzorca, gdzie muszę być niezmiennym przesunięciem i skalować, jak widać, i być również w stanie uzyskać przyzwoite wyniki dla realistycznych scenariuszy. (Dobra wiadomość jest taka, że NIE potrzebuję, aby była rotacyjna niezmiennie). Jedynym pomysłem, jaki udało mi się do tej pory wymyślić, jest korelacja 2D.
Powinienem dodać, że w rzeczywistości NIE mam kolorowych obrazów - po prostu dostanę martix liczb, więc przypuszczam, że mówimy o „skali szarości”.
Z góry dziękuję!
PS Za jaką wartość będę prawdopodobnie używał otwartego C V.
EDYCJA 1:
W oparciu o komentarze dodałem tutaj szczegóły, o które prosiłeś:
W przypadku cech definiujących dane możemy założyć, co następuje:
Pozioma długość każdego ping może się różnić, ale znam jego górną i dolną granicę. TAK dla czegokolwiek w tym zakresie, NIE dla czegokolwiek na zewnątrz. (Przykład, wiem, że długość pingów może wynosić na przykład od 1 do 3 sekund).
Wszystkie pingi muszą być „widoczne” dla TAK, jednak ostatniego wiersza może brakować i nadal chcę powiedzieć „TAK”. W przeciwnym razie NIE.
Długość w pionie („grubość”) każdego pinga może się różnić, ale znowu, także znać górną i dolną granicę. (Podobne do tego, co widać na tych obrazach). TAK dla czegokolwiek w tym zakresie. NIE dla czegokolwiek na zewnątrz.
Wysokość między każdym pingiem powinna zawsze być taka sama dla TAK. Jeśli nie są, to NIE. (Przykład, możesz zobaczyć, jak wszystkie pingi mają taką samą wysokość względem siebie, ~ 110 na osi pionowej). Tak więc 110 +/- 5 może być TAK, wszystko inne musi być NIE.
Myślę, że o to chodzi - ale daj mi znać, co jeszcze mogę dodać ... (Wszystko pokazane tutaj powinno zostać zarejestrowane jako TAK, tak przy okazji).
detect this pattern shown here
? Czy jesteś zainteresowany izolowaniem czerwonej / żółtej linii, czy rzeczywiście chcesz wyrażenia, które oblicza relacje między takimi liniami. Tylko wyszukiwanie linii może wymagać jedynie pewnego progowania lub segmentacji. Czego naprawdę chcesz?