Przetwarzanie obrazu przed wykryciem funkcji

9

Zaimplementowałem detektor funkcji oparty na rogach Harrisa . Działa dobrze większość razy, ale są przypadki, w których działa słabo. Muszę sprawić, aby działał na wielu różnych obrazach bez konfigurowania go indywidualnie.

Problem dotyczy wartości progowej detektora. Przy zbyt niskim ustawieniu detektor strzela zbyt wiele razy, co powoduje ogromną liczbę funkcji. Jeśli zostanie ustawiony zbyt wysoko, będzie za mało funkcji.

Częściowo rozwiązałem to przez ANMS (Adaptive Non-Maximal Suppression) w celu zmniejszenia liczby funkcji przed przypisaniem im wektorów deskryptorów.

Jednak obrazy takie jak ten stanowią problem:

wprowadź opis zdjęcia tutaj

Mają niski kontrast i nie mogę sobie pozwolić na zbyt niski próg ustawienia dla wszystkich zdjęć. Spowodowałoby to, że detektor działałby na tych obrazach, ale inne obrazy zawierałyby setki tysięcy funkcji, które będą wolno filtrować za pomocą ANMS, a to pogorszy ogólną wydajność.

Myślałem o dostosowaniu obrazu przed wykryciem funkcji. Może wyrównanie histogramu wystarczy. Może to być poprawna operacja, ponieważ globalna zmiana kontrastu nie ma wpływu na deskryptory funkcji (są one niezmienne dla zmiany jasności i kontrastu).

Może praca z adaptacyjnym progiem lub jakąś heurystyką działałaby lepiej.

Jakieś inne sugestie?

Libor
źródło
@Seyhmus Güngören: Oh. Zaakceptowałem dotychczasowe odpowiedzi, ponieważ znalazłem wystarczająco zadowalające rozwiązania, ale wciąż czekam na lepsze lub bardziej szczegółowe odpowiedzi.
Libor
@Libor Jest dobry dla twoich nowych pytań, ponieważ rozwiązywanie twoich pytań w obecnej sprawie może być bardziej atrakcyjne.
Seyhmus Güngören
@Libor, czy zastanawiałeś się nad dopasowaniem histogramu, wybierając histogram podobny do gaussa, który ma średnią około 128?
Seyhmus Güngören
@ SeyhmusGüngören Tak, myślałem o tym. Prawdopodobnie spróbuję tego z kilkoma innymi pomysłami.
Libor
@Libro Czy możesz powiedzieć, w jaki sposób planujesz korzystać z wykrytych funkcji? Moje jedyne pomysły to pobieranie lub dopasowywanie obrazów w oparciu o treść (np. W celu oceny homografii), ale ponieważ to jedyna rzecz, jaką z nimi zrobiłem, mogę się mylić :) Z drugiej strony, to jest to, czego planujesz użyć ich, być może będę w stanie przyczynić się.
penelopa

Odpowiedzi:

1

Możliwe byłoby wykonanie prostego wykrywania krawędzi (takiego jak Laplace) i wykorzystanie średniej intensywności wyniku jako podstawy progu dla narożników Harrisa. Gdy masz niski kontrast, uzyskasz mniej krawędzi i przy mniejszej intensywności, przy wysokim kontraście uzyskasz więcej krawędzi i przy wyższych intensywnościach.

Nie tylko ty zmagasz się z tym problemem. Jeśli masz dostęp do papierowych baz danych, może to być interesujące:

Może warto szukać więcej (auto) adaptacyjnego wykrywania rogu harrisa.

Geerten
źródło
To nie jest sprzeczność. Detektor ma dwa etapy: 1) wykrywanie funkcji, 2) opisywanie funkcji. Wyrównanie histogramu powinno mieć wpływ na etap 1 (wykryto więcej funkcji), a nie na etap 2. Potrzebuję umiarkowanej ilości funkcji do wykrycia, więc nie trzeba ich dużo filtrować.
Libor
Ok, myślałem o tym, ale nie było całkowicie jasne z twojego pytania. Nie mam zamiaru używać obrazu krawędziowego jako wejścia dla detektora cech, ale jako własnej miary, jaka powinna być wartość progu.
Geerten,
Dzięki, to ciekawa myśl. Detektor narożny Harris wykorzystuje obrazy pochodne (dx, dy, dxy) do konstruowania miary narożnika w każdym punkcie. Ponieważ jest to już oparte na pomiarach krawędzi, myślę teraz o przyjęciu histogramu funkcji odpowiedzi narożnej i obliczeniu progu tego histogramu. Zainspirowałeś mnie, dziękuję :)
Libor
Cieszę się, że mogłem cię zainspirować;) Dodałem artykuł, który może być pomocny.
Geerten,
2

Czy naprawdę musisz używać narożników Harrisa? Po narożnikach Harrisa opracowano wiele funkcji o lepszych właściwościach. Dobry przegląd można znaleźć w tym artykule:

Opierając się na tym artykule oraz na moich osobistych doświadczeniach, sugerowałbym przejście na MSER (Maksymalnie stabilne regiony zewnętrzne) , a nawet połączyć je z DoG (Różnica Gaussów) - funkcje przedstawione po raz pierwszy jako część potoku SIFT.

Jeśli problem naprawdę jest w niskim kontraście , funkcje MSER powinny naprawdę cię uszczęśliwić: są (dość) niezmienne dla zmian w oświetleniu. Krótko mówiąc, są one połączonymi regionami obrazu stabilnymi poprzez szereg różnych progresywnych binaryzacji.

Proces wyodrębniania funkcji jest niezależny od obliczania deskryptorów, dlatego integracja nowych sposobów ekstrakcji funkcji z procesem nie powinna być trudna.

Poza tym słyszałem (ale nigdy tak naprawdę nie pracowałem) na rogach Harris Multiscale jako rozszerzenie do rogów Harrisa. Niewiele o nich wiem i osobiście nie mogę polecić żadnych materiałów do czytania na ten temat, dlatego zostawiam wyszukiwanie artykułów i wybieranie najciekawszych materiałów.


Ponadto, czy mogę zasugerować, że opublikowany obraz może mieć inne problemy niż niski kontrast . Z mojego osobistego doświadczenia, roślinność podobna do krzaków lub ewentualnie pola, które masz, a także piękne bąbelkowe chmury zwykle wytwarzają „cechy ogólne” - cechy, które zwykle mają równie podobne (lub odmienne) deskryptory, jak wiele innych cech.

W praktyce oznacza to, że podczas dopasowywania elementów na dwóch obrazach z innej perspektywy elementy wyodrębnione z tego rodzaju powierzchni zwykle były fałszywie dopasowane. Zrobiłem pracę magisterską, która w dużej części dotyczy ekstrakcji cech do wykorzystania w dopasowywaniu cech, a następnie wykorzystywana do obliczania transformacji homografii między dwoma obrazami, kiedy natknąłem się na ten problem. W tym czasie nie znalazłem żadnych innych artykułów opisujących ten problem, ale moja teza może być pomocna w ogólnym podejściu.

Wreszcie, po ustawieniu, progi i techniki, które działają dobrze na większości obrazów, wyodrębniają małe cechy tego rodzaju obrazów, ze względu na ich w większości jednorodne obszary. Tego rodzaju obrazy stwarzają problemy z dopasowywaniem funkcji (które można rozszerzyć o łączenie obrazów), pobieranie obrazów w oparciu o treść, i zakładam śledzenie, a także podobne aplikacje. Żadna metoda obecnie nie działa na nich całkiem dobrze.

Metody, które działają dobrze na tego rodzaju obrazach, a także typowe przypadki są obecnie badane i badane, takie jak podejście, nad którym zacząłem krótko pracować w tej odpowiedzi .

Penelopa
źródło
Dzięki za szczegółową odpowiedź, przejrzę dokumenty, gdy będę miał trochę wolnego czasu. Wdrażałem detektor cech, który boryka się z dwoma problemami: złożonością wdrożenia i kwestiami patentowymi. Moja aplikacja jest komercyjną biblioteką do wyrównywania obrazów i zszywania, więc mam ograniczone zasoby i czas na wdrożenie i nie stać mnie na opłacenie SIFT lub SURF. Prawdopodobnie przejdę na MSER lub inny zaawansowany detektor / deskryptor, ale jak dotąd narożniki Harrisa działają dobrze, z wyjątkiem obrazów ze złym oświetleniem.
Libor,
@Libor Na tym polega piękno: nie musisz się zmieniać. Możesz po prostu dodać nowe funkcje do istniejącego potoku wykrywania-> opisu. Bez względu na sposób wyodrębnienia funkcji zawsze możesz obliczyć ich deskryptory za pomocą tej samej taktyki. Ze wszystkich rzeczy, które napisałem, być może pierwszy wspomniany artykuł porównujący różne opcje wykrywania / opisu może okazać się najbardziej przydatny.
penelopa
Użyłem zebrać duże deskryptory, a następnie użyłem PCA, aby poprawić szybkość i moc dyskryminacyjną deskryptorów. PCA jest jednak dość kosztowne w przypadku dużych zestawów danych. Ta praca przyciągnęła mnie ze względu na ogólne ulepszenie deskryptorów. Do tej pory wszystko, czego używam, to „Odrzucanie wartości odstających od cech”, która po prostu proguje dla dopasowań cech opartych na odległości 1-nn / 2-nn. Opisuje to D. Lowe w swoich pracach i ma bardzo dobrą moc dyskryminacyjną, ponieważ wykorzystuje właściwość pocisku odległości w przestrzeniach o dużym zaciemnieniu.
Libor,
Jeśli chodzi o detektory, duże zmiany punktu widzenia i niezmienność skali nie stanowią problemu, ponieważ przy mozaikowaniu obrazu (panoramy, mikroskopy) powiększenie zwykle pozostaje niezmienne, a afiniczne lub projekcyjne deformacje są dość małe między dopasowanymi obrazami. Głównym problemem jest naprawdę zbyt mało lub zbyt wiele wykrytych funkcji i słabe deskryptory.
Libor,
Osobiście niewiele wiem na temat wyboru deskryptora, pracowałem tylko z SIFT. Ale podany przez ciebie link wspomniał, że są one podobne do deskryptorów DAISY, które pamiętam również jako bardzo dobre. Mamy nadzieję, że połączenie większej liczby ekstraktorów funkcji zapewni więcej funkcji, a niezmienność skali może być tylko plusem, nawet jeśli jej nie potrzebujesz. Przeczytałem kilka prac wspominających, że praca z wieloma ekstraktorami funkcji zwiększa moc dyskryminacyjną (mogę wyszukać linki, jeśli chcesz).
penelopa,