2011-01-27 6 views
5

Potrzebuję zrobić dopasowanie do szablonu w 360 stopniach.Dopasowywanie szablonów z obrotem

W większości szablon to 80 * 120, a obraz 640 * 480 odcieni szarości (8 bitów).

Dla braku rotacji używam openvv cvmatchtemplate, który działa całkiem dobrze.

Próbowałem obracać szablon pod różnymi kątami i robi cvmatchtemplate, to działa, ale pochłania zbyt dużo czasu.

Dla normalnego dopasowania szablonu trwa to 12 ms, a dla 360 stopni wymagane jest mniej niż 50 ms.

+0

Co dokładnie próbujesz osiągnąć? Może istnieje alternatywa dla dopasowania szablonu ... Czy szablon często się zmienia? Jeśli nie, możesz je obrócić i zapisać, a następnie użyć obróconych szablonów. To powinno być szybsze ... i jeśli sam (powtarzający się) szablon pasuje do siebie zbyt długo, powinieneś rozważyć użycie innej metody ... Czy masz jakieś przykładowe obrazy? – evident

Odpowiedz

0

Szukaj w Google Scholar dla "syntetycznych funkcji dyskryminacyjnych" lub "kompozytowe filtry korelacyjne". To dobry punkt wyjścia: http://www.opticsinfobase.org/abstract.cfm?URI=ao-31-23-4773. Jeśli znajdziesz książkę "Correlation Pattern Recognition", rozdział 6.2 objaśnia również filtry kompozytowe.

Główna idea polega na tym, że szablony generowane są przez obracanie obrazów i generowanie jednego syntetycznego szablonu. Można to zrobić poprzez sformułowanie układu równań liniowych postaci

Ax = c 

Gdzie A jest macierzą współczynnik generowane z szablonów masz dostępne. x jest szablonem syntetycznym, który zamierzasz określić, a c jest wektorem ograniczeń. Ograniczenia można ustawić na , w tym niektóre szablony i , a inne.

Problem polega na tym, że po połączeniu zbyt wielu szablonów w jeden zaczynasz tracić odpowiednią wydajność. Istnieją oczywiście sposoby na pokonanie tego problemu w zależności od dostępnych dodatkowych informacji o obrazach, w których zamierzasz używać syntetycznych szablonów.

4

Po konwersji szablonu i obrazu na współrzędne biegunowe można wykonać wyszukiwanie tak, jakby było to tłumaczenie. To powinno być znacznie szybsze, ponieważ jest to tylko jedna transformacja - możesz ją efektywnie wdrożyć.

Myślę, że spodziewanie się uzyskania dobrego wyniku na poziomie 360 ​​stopni jest trudne. Szablon musiał się zmienić podczas tej transformacji. Jeśli było to tylko kilka stopni, to jest mniej prawdopodobne, aby się zmienić.

Spójrz na "technikę translacji, obrotu i skali rejestracji niezmienna obrazu opartego na FFT", Reddy i Chatterji, IEEE Transactions on Image Processing, 1996.