Strona GłównaBlogi / marand's blog / Rozpoznawanie z interpolacją

Rozpoznawanie z interpolacją


portret użytkownika marand

By marand - Posted on 20 March 2008

Dopasowana siatka współrzędnych na podstawie 8-9 gwiazd to kpina. Gwiazdy tak rozjeżdżają sie na brzegach że rozpoznawanie staje się nie możliwe. w środku też nie jest rewelacyjnie. Co z tym zrobić? Nie musi przecież tak być. pozycje gwiazd znalezionych trójkątami znamy przecież dokładniej niż to wychodzi z dopasowania globalnej siatki współrzędnych...

Jest na to sposób: liczenie lokalnej siatki współrzędnych na podstawie jedynie najbliższych gwiazd. Dla potrzeb rozpoznawania gwiazd wystarczająca jest siatka współrzędnych 1-go rzędu czyli jakaś płaszczyzna. Najmniejszy obszar obliczeń wyznaczający płaszczyznę opierać się więc powinien na 3 punktach. Obrazek należy wiec podzielić na trójkąty i dla każdego z nich wyznaczyć indywidualną siatkę współrzędnych 1-go rzędu.

Zadanie wydawało by sie proste, widząc punkty odruchowo potrafimy podzielić przestrzeń na trójkąty. zapisanie tego jako automatyczny program nie jest już takie banalne i zajeło mi niemal cały dzień i 600 linii kodu wypełnionego głównie warunkami.

Na podstawie lokalnych siatek rozpoznaje gwiazdy mieszczące sie wewnątrz trójkątów. Metodę tą można nazwać interpolacją. Współrzędne, choć nie idealnie trafiały w pozycje z katalogu i tak znacznie ułatwiły identyfikację. metoda ma jedną wadę - mozna znaleźć coś tylko pomiędzy już znalezionymi punktami. Można próbować ekstrapolować siatki skrajne na zewnątrz ale powyżej kilkunastu pikseli jest to ryzykowne i może spowodować rozpoznanie niewłaściwych obiektów.

Stosując interpolację siatki pomiędzy wstępnie znalezionymi punktami udaje sie znaleźć kolejne kilka punktów. Nie wystarcza to jednak dla dopasowania dobrej globalnej siatki współrzędnych i szukania gwiazd dalej oddalonych. Prawdopodobnie wogóle przy pierwszym stopniu nie jest to możliwe bo dystorsja jest zbyt duża.

Poniżej na czerwono pokazane są pozycje gwiazd jakie wynikają z dopasowania wszystkich rozpoznanych gwiazd.

Zmieniłem kryteria porównania trójkątów na ponad 2 razy luźniejsze aby miał szansę znaleźć te bardziej odległe punkty. Ilość gwiazd do wstępnego wyszukania zwiększyłem z 10 do 20. Teraz Program znajduje prawie wszystko co jasne na obrazku. Na niektórych obrazkach identyfikuje prawie 40 obiektów.

Dodałem dwa stopnie szukania trójkątami. W pierwszym szukam 10 gwiazd a w drugim 20. dopiero potem uzywam interpolacji by znaleźć resztę drobnicy. Efekt jest zadowalający. na niektórych obrazkach znajduje ponad 40 gwiazd. Jak na automat to więcej niż można by od niego oczekiwać.

40 kolejnych obrazków:

"No to sukces!"