Wie funktioniert der hessische Merkmalsdetektor?


8

Ich kenne den Harris-Eckendetektor und verstehe die Grundidee seiner zweiten , , Kanten und andere instabile Punkte können über entfernt werden .

M=[Ix2IxIyIxIyIy2]
M

Beim hessischen Detektor wird jedoch die hessische Matrix verwendet, um Schlüsselpunkte zu erkennen und Kanten zu entfernen. , und ich verstehe nicht, wie Kanten entfernen und stabile Punkte erkennen kann? Was ist die intuitive Grundidee dahinter?

H=[IxxIxyIxyIyy]
H

Antworten:


11

Ich werde versuchen, Mathe zu vermeiden, da Mathe und Tutorials "wie es geht" leicht zu finden sind.

Zunächst möchte ich auf eine SEHR wichtige Sache hinweisen: Man berechnet Harris nicht für ein einzelnes Pixel, sondern für eine Umgebung (einen Bildfleck) um dieses Pixel herum! Lassen Sie Ihre Ableitungen für einen Punkt , dannI(i)xx,I(i)xy...i0

H=[iVI(i)xxw(ii0)iVI(i)xyw(ii0)iVI(i)xyw(ii0)iVI(i)yyw(ii0)]

Das ist ein Gaußscher Kernel. Die vorherige Gleichung sagt Ihnen, dass Sie die Ableitungswerte über die Umgebung um das aktuelle Pixel integrieren sollen. Jeder Wert der Nachbarn wird mit einem Wert multipliziert, der mit zunehmender Entfernung kleiner wird. Das Gesetz der Abnahme folgt einem Gaußschen, weil bei zentriert ist . Und das war's mit Mathe.w(t)Vw(t)i0

Nun zurück zu den empirischen Beobachtungen. Wenn Sie nur die Ableitungen verwenden und dieses Pixel Teil einer linearen Struktur (Kante) ist, erhalten Sie eine starke Antwort für die Ableitungen. Befindet sich das Pixel dagegen an einer Ecke (einem Schnittpunkt zweier Kanten), heben sich die abgeleiteten Antworten von selbst auf.

Wenn der Hessische sagt, kann er die lokale Struktur in dieser Umgebung erfassen, ohne den Effekt "aufzuheben". ABER sehr wichtig, man muss sich integrieren, um einen richtigen Hessischen zu bekommen.

Wenn Sie einen Hessischen haben, der mit der Harris-Methode oder auf andere Weise erhalten wurde, möchten Sie möglicherweise Informationen über die Umgebung extrahieren. Es gibt Methoden, um numerische Werte für die Wahrscheinlichkeit einer Kante am aktuellen Pixel, einer Ecke usw. zu erhalten. Überprüfen Sie die Theorie der Eckenerkennung.

Nun zu "stabilen Punkten" oder hervorstechenden Punkten. Stellen Sie sich vor, Sie befinden sich in einer fremden Stadt ohne GPS und nur mit einer guten Karte. Wenn Sie in der Mitte einer Straße "teleportiert" werden, können Sie die Straße auf der Karte lokalisieren, aber Sie können nicht sagen, wo genau Sie sich auf dieser Straße befinden oder in welche Richtung Sie gehen sollten, um sich nach links oder rechts zu bewegen (in Richtung Karte) ). Stellen Sie sich jetzt vor, Sie befinden sich an einer Kreuzung. Dann können Sie Ihre Position genau auf der Karte anzeigen!. (Nehmen Sie natürlich an, dass sich zwei Straßen nicht mehr als einmal kreuzen).

Stellen Sie sich jetzt vor, Sie müssen zwei Bilder abgleichen. Einer fungiert als Karte und der andere als Stadt. Sie müssen Pixel finden, die eindeutig beschrieben werden können, damit Sie den Abgleich durchführen können. Überprüfen Sie die Bilder in diesem Beitrag zum Beispiel auf Übereinstimmung. Diese Punkte werden als hervorstechende Punkte bezeichnet. Darüber hinaus neigen die Eckpunkte dazu, ihre "Körnigkeit" -Eigenschaften nicht zu ändern, wenn das Bild skaliert, übersetzt, gedreht, verzerrt usw. wird (affine Transformationen). Deshalb werden sie als "stabil" bezeichnet.

Mit einigen Punkten im Bild können Sie sie eindeutig identifizieren. Diese Pixel befinden sich an Ecken oder am Schnittpunkt von Linien. Stellen Sie sich vor, Ihre Umgebung befindet sich auf einer Linie. Außer der Ausrichtung der Linie können Sie nichts anderes aus dieser Umgebung finden. Wenn sich an einer Ecke befindet, können Sie die Richtungen der sich kreuzenden Linien, möglicherweise den Winkel usw. herausfinden.VV

Nicht alle Eckpunkte sind hervorstechend, aber nur Eckpunkte haben große Chancen, hervorstechend zu sein.

Ich hoffe es hilft!

ps Um herauszufinden, ob ein Punkt eine Ecke ist oder nicht, schauen Sie sich Harris Papier an.

pps Mehr zum Matching, suchen Sie nach SIFT oder SURF.

ppps Es gibt eine "Verallgemeinerung" der Harris-Methode namens Structure Tensor. Überprüfen Sie Knutsson wegweisende Arbeit!


Kleine Korrektur: Die Integration in die Nähe jedes Pixels ist wichtig für Harris- und Strukturtensor-Ansätze. Für den Hessischen macht es nicht viel Sinn: Es entspricht der Verwendung einer größeren Filtergröße für die Ableitungsfilter 2. Ordnung.
Niki Estner

@nikie Sie sind richtig, wenn Sie ein analytisches Signal haben. Für digitale Bilder (bei denen Sie diskrete Werte in einem Raster haben) gilt die Begründung nicht. Sie müssen das Hessische integrieren, sonst erhalten Sie eine entartete Matrix. Es gibt eine Form von Strukturtensor, die keine Integration benötigt und mit Ableitungen arbeiten kann, die nur für das aktuelle Pixel berechnet wurden. Siehe Knutsson-Link in meinem Beitrag.
Visoft

1
@visoft: Ich bin nicht sicher, was du meinst. Genau genommen ist das Hessische nur für differenzierbare Funktionen definiert, nicht für Bilder. Normalerweise approximieren Sie dies durch Faltung mit einem abgeleiteten Filterkern (z. B. Gaußsche Ableitung). Wenn Sie dies tun, erhalten Sie eine hessische Matrix für jedes Pixel, das nicht entartet ist. Die Integration über diese Filterergebnisse hat den gleichen Effekt wie die Verwendung eines größeren Kernels. Es dauert nur mehr CPU-Zyklen.
Niki Estner

Ok, ich werde die Literatur überprüfen und mich bei Ihnen melden.
Visoft

@nikie Ich habe den Beitrag bearbeitet und hessische Referenzen entfernt.
Visoft
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.