To bardzo dobre pytania. Omówmy każdy punkt jeden po drugim:
Moje pytanie brzmi: czym właściwie są te kluczowe punkty?
Punkty kluczowe to to samo, co punkty zainteresowania. Są to lokalizacje przestrzenne lub punkty na obrazie, które określają, co jest interesujące lub co wyróżnia się na obrazie. Wykrywanie punktów zainteresowania jest w rzeczywistości podzbiorem wykrywania plamek , który ma na celu znalezienie interesujących regionów lub obszarów przestrzennych na obrazie. Powodem, dla którego punkty kluczowe są wyjątkowe, jest to, że bez względu na to, jak zmienia się obraz ... czy obraz się obraca, kurczy / rozszerza, jest tłumaczony (tak przy okazji, wszystko to byłoby transformacją afiniczną ...) lub podlega zniekształceniom ( tj. transformacja projekcyjna lub homografia ), powinieneś być w stanie znaleźć to samopunkty kluczowe w tym zmodyfikowanym obrazie w porównaniu z oryginalnym obrazem. Oto przykład z postu, który napisałem jakiś czas temu:
Źródło: moduł 'obiekt' nie ma atrybutu 'drawMatches' opencv python
Obraz po prawej stronie to obrócona wersja obrazu po lewej stronie. Pokazałem również tylko 10 najlepszych dopasowań między dwoma obrazami. Jeśli spojrzysz na 10 najlepszych meczów, są to punkty, na których prawdopodobnie chcielibyśmy się skupić, abyśmy mogli przypomnieć sobie, o czym był obraz. Chcielibyśmy skupić się na twarzy operatora, a także aparacie, statywie i niektórych ciekawych teksturach budynków w tle. Widzisz, że te same punkty zostały znalezione między dwoma obrazami i zostały one pomyślnie dopasowane.
Dlatego należy od tego odjąć, że są to punkty na obrazie, które są interesujące i że należy je znaleźć niezależnie od tego, jak obraz jest zniekształcony.
Rozumiem, że są to pewnego rodzaju „interesujące miejsca” obrazu. Wiem też, że są niezmienne w skali i wiem, że są okrągłe.
Masz rację. Niezmienność skali oznacza, że niezależnie od tego, jak skalujesz obraz, nadal powinieneś być w stanie znaleźć te punkty.
Teraz przejdziemy do części deskryptorowej . Co sprawia, że keypoints różni między ramami jest sposób opisać te keypoints. Są to tak zwane deskryptory . Z każdym wykrytym punktem kluczowym jest powiązany deskryptor, który mu towarzyszy. Niektóre frameworki wykrywają tylko punkty kluczowe, podczas gdy inne są po prostu ramami opisu i nie wykrywają punktów. Są też takie, które robią jedno i drugie - wykrywają i opisują kluczowe punkty. SIFT i SURF to przykłady frameworków, które zarówno wykrywają, jak i opisują punkty kluczowe.
Deskryptory dotyczą głównie zarówno skali, jak i orientacji punktu kluczowego. Kluczowe punkty, które obaliliśmy, ale potrzebujemy części deskryptora, jeśli naszym celem jest próba dopasowania między punktami kluczowymi na różnych obrazach. Otóż, co masz na myśli przez „kołowy”… to koreluje ze skalą, w której punkt został wykryty. Weźmy na przykład ten obraz, który pochodzi z samouczka VLFeat Toolbox :
Widzisz, że wszystkie żółte punkty są punktami zainteresowania, ale niektóre z nich mają inny promień okręgu. Te dotyczą skali . Punkty zainteresowania działają w sensie ogólnym, to rozkładanie obrazu na wiele skal. Sprawdzamy punkty zainteresowania w każdej skali i łączymy je wszystkie razem, aby uzyskać ostateczny wynik. Im większy „okrąg”, tym większa była skala, na której wykryto punkt. Istnieje również linia, która promieniuje od środka koła do krawędzi. To jest orientacja punktu kluczowego, którą omówimy dalej.
Dowiedziałem się też, że mają orientację, ale nie mogłem zrozumieć, co to właściwie jest. To jest kąt, ale między promieniem a czymś?
Zasadniczo, jeśli chcesz wykryć punkty kluczowe niezależnie od skali i orientacji, kiedy mówią o orientacji punktów kluczowych, tak naprawdę mają na myśli to, że przeszukują otoczenie pikseli otaczające punkt kluczowy i zastanawiają się, w jaki sposób jest zorientowane to sąsiedztwo pikseli lub w jakim kierunku ta łatka jest zorientowany. Zależy to od tego, na jaką ramkę deskryptora patrzysz, ale ogólną zasadą jest wykrycie najbardziej dominującej orientacji kątów gradientu w łatce . Jest to ważne przy dopasowywaniuabyś mógł dopasować razem kluczowe punkty. Spójrz na pierwszą figurę, którą mam z dwoma kamerzystami - jeden obrócony, a drugi nie. Jeśli przyjrzysz się niektórym z tych punktów, jak możemy dowiedzieć się, jak jeden punkt pasuje do drugiego? Możemy łatwo zidentyfikować, że górna część kamerzysty jako punkt zainteresowania pasuje do wersji obróconej, ponieważ przyglądamy się punktom otaczającym punkt kluczowy i widzimy, w jakiej orientacji znajdują się wszystkie te punkty ... a stamtąd tak orientacja jest obliczana.
Zwykle, gdy chcemy wykryć punkty kluczowe, po prostu patrzymy na lokalizacje. Jeśli jednak chcesz dopasować punkty kluczowe między obrazami, zdecydowanie potrzebujesz skali i orientacji, aby to ułatwić.
Mam nadzieję że to pomoże!