Dieser Artikel konzentriert sich auf einige Suchalgorithmen und Beschreibungen bestimmter Bildpunkte. Hier wurde dieses Thema bereits mehr
als einmal angesprochen . Ich werde berĂŒcksichtigen, dass die grundlegenden Definitionen dem Leser bereits bekannt sind. Wir werden die heuristischen Algorithmen FAST, FAST-9, FAST-ER, BRIEF, rBRIEF, ORB im Detail untersuchen und die ihnen zugrunde liegenden funkelnden Ideen diskutieren. Zum Teil wird dies eine freie Ăbersetzung des Wesens mehrerer Artikel sein [1,2,3,4,5], es wird einen Code fĂŒr "try" geben.

SCHNELLER Algorithmus
FAST, erstmals 2005 in [1] vorgeschlagen, war eine der ersten heuristischen Methoden zum Auffinden einzelner Punkte, die aufgrund ihrer Recheneffizienz groĂe PopularitĂ€t erlangte. Um zu entscheiden, ob ein bestimmter Punkt C als speziell betrachtet werden soll oder nicht, berĂŒcksichtigt diese Methode die Helligkeit von Pixeln auf einem Kreis, der auf Punkt C und Radius 3 zentriert ist:

Wenn wir die Helligkeit der Pixel des Kreises mit der Helligkeit des Zentrums C vergleichen, erhalten wir jeweils drei mögliche Ergebnisse (heller, dunkler, wie es scheint):
$ inline $ \ begin {array} {l} {I_p}> {I_C} + t \\ {I_p} <{I_C} -t \\ {I_C} -t <{I_p} <{I_C} + t \ end {array} $ inline $
Hier ist I die Helligkeit der Pixel, t ist eine vorbestimmte Helligkeitsschwelle.
Ein Punkt wird als speziell markiert, wenn in einer Reihe n = 12 Pixel dunkler oder 12 Pixel heller als die Mitte sind.
Wie die Praxis im Durchschnitt gezeigt hat, mussten fĂŒr eine Entscheidung etwa 9 Punkte ĂŒberprĂŒft werden. Um den Prozess zu beschleunigen, schlugen die Autoren vor, zunĂ€chst nur vier Pixel mit Zahlen zu ĂŒberprĂŒfen: 1, 5, 9, 13. Wenn unter ihnen 3 Pixel heller oder dunkler sind, wird eine vollstĂ€ndige ĂberprĂŒfung an 16 Punkten durchgefĂŒhrt, andernfalls wird der Punkt sofort als âmarkiert nicht besonders. " Dies verkĂŒrzt die Arbeitszeit erheblich. FĂŒr eine Entscheidung im Durchschnitt reicht es aus, nur etwa 4 Punkte eines Kreises abzufragen.
Hier liegt ein bisschen naiver Code
Variable Parameter (im Code beschrieben): Kreisradius (nimmt die Werte 1,2,3 an), Parameter n (im Original n = 12), Parameter t. Der Code öffnet die Datei in.bmp, verarbeitet das Bild und speichert es in out.bmp. Bilder sind gewöhnliche 24-Bit.
Erstellen eines Entscheidungsbaums, Tree FAST, FAST-9
Im Jahr 2006 war es in [2] möglich, eine originelle Idee mithilfe von maschinellem Lernen und EntscheidungsbÀumen zu entwickeln.
Das Original FAST hat folgende Nachteile:
- Mehrere benachbarte Pixel können als Sonderpunkte markiert werden. Wir brauchen ein gewisses MaĂ fĂŒr die "StĂ€rke" eines Features. Eine der ersten vorgeschlagenen MaĂnahmen ist der Maximalwert von t, bei dem der Punkt noch als Sonderwert angenommen wird.
- Ein schneller 4-Punkte-Test wird nicht fĂŒr n weniger als 12 verallgemeinert. So werden beispielsweise visuell die besten Ergebnisse der Methode mit n = 9 und nicht mit 12 erzielt.
- Ich möchte auch den Algorithmus beschleunigen!
Anstatt eine Kaskade von zwei Tests mit 4 und 16 Punkten zu verwenden, wird vorgeschlagen, alles in einem Durchgang durch den Entscheidungsbaum zu erledigen. Ăhnlich wie bei der ursprĂŒnglichen Methode werden wir die Helligkeit des Mittelpunkts mit den Punkten auf dem Kreis vergleichen, aber in dieser Reihenfolge, um die Entscheidung so schnell wie möglich zu treffen. Und es stellt sich heraus, dass Sie im Durchschnitt nur fĂŒr ~ 2 (!!!) Vergleiche eine Entscheidung treffen können.
Das Salz ist, wie man die richtige Reihenfolge fĂŒr den Vergleich von Punkten findet. Finden Sie mit maschinellem Lernen. Angenommen, jemand hat fĂŒr uns auf dem Bild viele Besonderheiten festgestellt. Wir werden sie als eine Reihe von Schulungsbeispielen verwenden, und die Idee ist,
eifrig diejenige auszuwĂ€hlen, die in diesem Schritt die gröĂte Menge an Informationen als nĂ€chsten Punkt liefert. Angenommen, anfangs gab es in unserer Stichprobe 5 singulĂ€re Punkte und 5 nicht singulĂ€re Punkte. In Form einer Tablette wie dieser:

Jetzt wĂ€hlen wir eines der Pixel p des Kreises und vergleichen fĂŒr alle singulĂ€ren Punkte das zentrale Pixel mit dem ausgewĂ€hlten. AbhĂ€ngig von der Helligkeit des ausgewĂ€hlten Pixels in der NĂ€he jedes bestimmten Punkts kann die Tabelle das folgende Ergebnis haben:

Die Idee ist, einen Punkt p so zu wĂ€hlen, dass die Zahlen in den Spalten der Tabelle so unterschiedlich wie möglich sind. Und wenn wir jetzt fĂŒr einen neuen unbekannten Punkt das Vergleichsergebnis âLeichterâ erhalten, können wir bereits sofort sagen, dass der Punkt ânicht speziellâ ist (siehe Tabelle). Der Prozess wird rekursiv fortgesetzt, bis die Punkte nur einer der Klassen in jede Gruppe fallen, nachdem sie in "dunkler wie heller" unterteilt wurden. Es stellt sich ein Baum der folgenden Form heraus:

Der BinĂ€rwert befindet sich in den BlĂ€ttern des Baums (Rot ist speziell, GrĂŒn ist nicht speziell) und an den anderen Eckpunkten des Baums befindet sich die Nummer des Punkts, der analysiert werden muss. Insbesondere schlagen sie im Originalartikel vor, die Punktnummer durch Ăndern der Entropie zu wĂ€hlen. Die Entropie der Punktmenge wird berechnet:
$$ display $$ H = \ left ({c + \ overline c} \ right) {\ log _2} \ left ({c + \ overline c} \ right) - c {\ log _2} c - \ overline c {\ log _2} \ overline c $$ display $$
c ist die Anzahl der singulÀren Punkte,
$ inline $ {\ bar c} $ inline $ Ist die Anzahl der nicht singulÀren Punkte der Menge
EntropieÀnderung nach Verarbeitungspunkt p:
$$ Anzeige $$ \ Delta H = H - {H_ {dunkel}} - {H_ {gleich}} - {H_ {hell}} $$ Anzeige $$
Dementsprechend wird ein Punkt ausgewĂ€hlt, fĂŒr den die Ănderung der Entropie maximal ist. Der Aufteilungsprozess stoppt, wenn die Entropie Null ist, was bedeutet, dass alle Punkte entweder singulĂ€r sind oder umgekehrt - alle sind nicht speziell. Bei einer Software-Implementierung wird der gefundene Entscheidungsbaum nach alledem in eine Reihe von Konstruktionen vom Typ "if-else" konvertiert.
Der letzte Schritt des Algorithmus ist die UnterdrĂŒckung von Nichtmaxima, um einen von mehreren benachbarten Punkten zu erhalten. Die Entwickler schlagen vor, das ursprĂŒngliche MaĂ basierend auf der Summe der absoluten Differenzen zwischen dem Mittelpunkt und den Punkten des Kreises in dieser Form zu verwenden:
$$ display $$ V = \ max \ left ({\ sum \ limit_ {x \ in {S_ {bright}}} {\ left | {{I_x} - {I_p}} \ right | - t, \ sum \ Limits_ {x \ in {S_ {dark}}} {\ left | {{I_p} - {I_x}} \ right | - t}}} \ right) $$ display $$
Hier
$ inline $ {S_ {bright}} $ inline $ und
$ inline $ {S_ {dark}} $ inline $ Gruppen von Pixeln sind heller und dunkler, t ist der Schwellenhelligkeitswert,
$ inline $ {I_p} $ inline $ - Helligkeit des zentralen Pixels,
$ inline $ {{I_x}} $ inline $ - Helligkeit des Pixels auf dem Kreis. Sie können den Algorithmus mit dem
folgenden Code ausprobieren. Der Code wird aus OpenCV ĂŒbernommen und von allen AbhĂ€ngigkeiten befreit. FĂŒhren Sie ihn einfach aus.
Entscheidungsbaum optimieren - FAST-ER
FAST-ER [3] ist ein Algorithmus der gleichen Autoren wie der vorherige, ein schneller Detektor ist Àhnlich aufgebaut, die optimale Folge von Punkten wird ebenfalls zum Vergleich gesucht, ein Entscheidungsbaum wird ebenfalls erstellt, jedoch unter Verwendung einer anderen Methode - der Optimierungsmethode.
Wir verstehen bereits, dass ein Detektor als Entscheidungsbaum dargestellt werden kann. Wenn wir ein Kriterium zum Vergleichen der Leistung verschiedener BÀume hatten, können wir dieses Kriterium maximieren, indem wir verschiedene Baumvarianten sortieren. Als solches Kriterium wird vorgeschlagen, "Wiederholbarkeit" zu verwenden.
Die Wiederholbarkeit zeigt, wie gut die einzelnen Punkte einer Szene aus verschiedenen Winkeln erfasst werden. FĂŒr ein Paar von Bildern wird ein Punkt als "nĂŒtzlich" bezeichnet, wenn er auf einem Rahmen gefunden wird und theoretisch auf einem anderen gefunden werden kann, d. H. Blockieren Sie nicht die Elemente der Szene. Und der Punkt heiĂt "wiederholt" (wiederholt), wenn er auch im zweiten Frame gefunden wird. Da die Kameraoptik nicht ideal ist, befindet sich der Punkt auf dem zweiten Bild möglicherweise nicht im berechneten Pixel, sondern irgendwo in der NĂ€he. Die Entwickler nahmen eine Nachbarschaft von 5 Pixeln. Wir definieren Wiederholbarkeit als das VerhĂ€ltnis der Anzahl der wiederholten Punkte zur Anzahl der nĂŒtzlichen:
$$ Anzeige $$ R = \ frac {{{N_ {wiederholt}}}} {{{N_ {nĂŒtzlich}}} $$ Anzeige $$
Um den besten Detektor zu finden, wird eine Tempersimulationsmethode verwendet. Es gibt bereits einen
ausgezeichneten Artikel ĂŒber HabrĂ© ĂŒber ihn. Kurz gesagt, das Wesentliche der Methode ist wie folgt:
- Es wird eine erste Lösung fĂŒr das Problem ausgewĂ€hlt (in unserem Fall handelt es sich um eine Art Detektorbaum).
- Wiederholbarkeit wird berĂŒcksichtigt.
- Der Baum wird zufÀllig geÀndert.
- Wenn die modifizierte Version nach dem Kriterium der Wiederholbarkeit besser ist, wird die Modifikation akzeptiert, und wenn sie schlechter ist, kann sie mit einer gewissen Wahrscheinlichkeit, die von einer reellen Zahl namens "Temperatur" abhÀngt, entweder akzeptiert werden oder nicht. Mit zunehmender Anzahl von Iterationen fÀllt die Temperatur auf Null.
AuĂerdem umfasst der Aufbau des Detektors jetzt nicht mehr wie zuvor 16 Punkte des Kreises, sondern 47, aber die Bedeutung Ă€ndert sich ĂŒberhaupt nicht:

Nach der simulierten GlĂŒhmethode definieren wir drei Funktionen:
âą Kostenfunktion k. In unserem Fall verwenden wir die Wiederholbarkeit als Wert. Es gibt jedoch ein Problem. Stellen Sie sich vor, dass alle Punkte auf jedem der beiden Bilder als Singular erkannt werden. Dann stellt sich heraus, dass die Wiederholbarkeit 100% ist - AbsurditĂ€t. Auf der anderen Seite, auch wenn wir einen bestimmten Punkt in zwei Bildern gefunden haben und diese Punkte ĂŒbereinstimmen - die Wiederholbarkeit ist ebenfalls 100%, aber das interessiert uns auch nicht. Und deshalb schlugen die Autoren vor, dies als QualitĂ€tskriterium zu verwenden:
$$ display $$ k = \ left ({1 + {{\ left ({\ frac {{{w_r}}} {R}} \ right)} ^ 2}} \ right) \ left ({1 + \ frac {1} {N} \ sum \ limit_ {i = 1} {{{\ left ({\ frac {{{d_i}}} {{{w_n}}} right)} ^ 2}} \ rechts) \ links ({1 + {{\ links ({\ frac {s} {{{w_s}}}} rechts)} ^ 2}} \ rechts) $$ display $$
r ist die Wiederholbarkeit
$ inline $ {{d_i}} $ inline $ Ist die Anzahl der erkannten Winkel auf Bild i, N ist die Anzahl der Bilder und s ist die GröĂe des Baums (Anzahl der Eckpunkte). W sind benutzerdefinierte Methodenparameter.]
âą Funktion der TemperaturĂ€nderung ĂŒber die Zeit:
$$ display $$ T \ left (I \ right) = \ beta \ exp \ left ({- \ frac {{\ alpha I}} {{{I _ {\ max}}} \ right) $$ display $$
wo
$ inline $ \ alpha, \ beta $ inline $ Sind die Koeffizienten, ist Imax die Anzahl der Iterationen.
âą Eine Funktion, die eine neue Lösung generiert. Der Algorithmus nimmt zufĂ€llige Ănderungen am Baum vor. WĂ€hlen Sie zunĂ€chst einen Scheitelpunkt aus. Wenn der ausgewĂ€hlte Scheitelpunkt ein Blatt eines Baumes ist, gehen wir mit gleicher Wahrscheinlichkeit wie folgt vor:
- Ersetzen Sie den Scheitelpunkt durch einen zufÀlligen Teilbaum mit der Tiefe 1
- Ăndern Sie die Klasse dieses Blattes (Singular-Nicht-Singular-Punkte)
Wenn dies KEIN Blatt ist:
- Ersetzen Sie die Nummer des getesteten Punktes durch eine Zufallszahl von 0 bis 47
- Ersetzen Sie den Scheitelpunkt durch ein Blatt mit einer zufÀlligen Klasse
- Tauschen Sie zwei TeilbÀume von diesem Scheitelpunkt aus
Die Wahrscheinlichkeit P, die Ănderung bei Iteration I zu akzeptieren, ist:
$ inline $ P = \ exp \ left ({\ frac {{k \ left ({i - 1} \ right) - k \ left (i \ right)}} {T}} \ right) $ inline $
k ist die Kostenfunktion, T ist die Temperatur, i ist die Iterationszahl.
Diese Ănderungen am Baum ermöglichen sowohl das Wachstum des Baumes als auch dessen Reduzierung. Die Methode ist zufĂ€llig und garantiert nicht, dass der beste Baum erhalten wird. FĂŒhren Sie die Methode viele Male aus und wĂ€hlen Sie die beste Lösung aus. Im Originalartikel werden sie beispielsweise 100 Mal pro 100.000 Iterationen ausgefĂŒhrt, was 200 Stunden Prozessorzeit in Anspruch nimmt. Wie die Ergebnisse zeigen, ist das Ergebnis besser als Tree FAST, insbesondere bei verrauschten Bildern.
KURZER Deskriptor
Nachdem die singulÀren Punkte gefunden wurden, werden ihre Deskriptoren berechnet, d.h. SÀtze von Merkmalen, die die Nachbarschaft jedes einzelnen Punktes charakterisieren. BRIEF [4] ist ein schneller heuristischer Deskriptor, der aus 256 binÀren Vergleichen zwischen der Helligkeit der Pixel in einem
verschwommenen Bild aufgebaut ist. Der binÀre Test zwischen den Punkten x und y ist wie folgt definiert:
$$ display $$ \ tau \ left ({P, x, y} \ right): = \ left \ {{\ begin {array} {* {20} {c}} {1: p \ left (x \ rechts) <p \ left (y \ right)} \\ {0: p \ left (x \ right) \ ge p \ left (y \ right)} \ end {array}} \ right. $$ display $$

Im ursprĂŒnglichen Artikel wurden verschiedene Methoden zur Auswahl von Punkten fĂŒr binĂ€re Vergleiche berĂŒcksichtigt. Wie sich herausstellte, besteht eine der besten Möglichkeiten darin, Punkte mithilfe einer GauĂschen Verteilung um ein zentrales Pixel zufĂ€llig auszuwĂ€hlen. Diese zufĂ€llige Folge von Punkten wird einmal ausgewĂ€hlt und Ă€ndert sich nicht weiter. Die GröĂe der betrachteten Nachbarschaft des Punktes betrĂ€gt 31 x 31 Pixel, und die UnschĂ€rfeöffnung betrĂ€gt 5.
Der resultierende binĂ€re Deskriptor ist resistent gegen Ănderungen der Beleuchtung, perspektivische Verzerrungen, wird schnell berechnet und verglichen, ist jedoch sehr instabil gegenĂŒber Rotationen in der Bildebene.
ORB - schnell und effizient
Die Entwicklung all dieser Ideen war der ORB-Algorithmus (Oriented FAST and Rotated BRIEF) [5], bei dem versucht wurde, die BRIEF-Leistung wĂ€hrend der Bildrotation zu verbessern. Es wird vorgeschlagen, zuerst die Orientierung des Singularpunkts zu berechnen und dann binĂ€re Vergleiche gemÀà dieser Orientierung durchzufĂŒhren. Der Algorithmus funktioniert folgendermaĂen:
1) Feature-Punkte werden mithilfe des schnellen FAST-Baums im Originalbild und in mehreren Bildern aus der Miniaturpyramide erkannt.
2) FĂŒr die erkannten Punkte wird das Harris-MaĂ berechnet, Kandidaten mit einem niedrigen Wert des Harris-MaĂes werden verworfen.
3) Der Orientierungswinkel des Singularpunktes wird berechnet. Dazu werden zunĂ€chst die Helligkeitsmomente fĂŒr die Nachbarschaft des Singularpunktes berechnet:
$ inline $ {m_ {pq}} = \ sum \ limit_ {x, y} {{x ^ p} {y ^ q} I \ left ({x, y} \ right)} $ inline $
x, y - Pixelkoordinaten, I - Helligkeit. Und dann der Orientierungswinkel des singulÀren Punktes:
$ inline $ \ theta = {\ rm {atan2}} \ left ({{m_ {01}}, {m_ {10}}} \ right) $ inline $
All dies nannten die Autoren die "Schwerpunktorientierung". Als Ergebnis erhalten wir eine bestimmte Richtung fĂŒr die Nachbarschaft des singulĂ€ren Punktes.
4) Mit dem Orientierungswinkel des Singularpunkts dreht sich die Folge von Punkten fĂŒr binĂ€re Vergleiche im BRIEF-Deskriptor entsprechend diesem Winkel, zum Beispiel:

Formal werden die neuen Positionen fĂŒr die binĂ€ren Testpunkte wie folgt berechnet:
$$ display $$ \ left ({\ begin {array} {* {20} {c}} {{x_i} '} \\ {{y_i}'} \ end {array}} \ right) = R \ left (\ theta \ right) \ cdot \ left ({\ begin {array} {* {20} {c}} {{x_i}} \\ {{y_i}} \ end {array}} \ right) $$ Anzeige $$
5) Basierend auf den empfangenen Punkten wird der BRIEF-BinÀrdeskriptor berechnet
Und das ist ... nicht alles! Es gibt ein weiteres interessantes Detail in ORB, das einer gesonderten ErlĂ€uterung bedarf. Tatsache ist, dass in dem Moment, in dem wir alle singulĂ€ren Punkte auf einen Nullwinkel âdrehenâ, die zufĂ€llige Auswahl von binĂ€ren Vergleichen im Deskriptor nicht mehr zufĂ€llig ist. Dies fĂŒhrt dazu, dass sich erstens einige binĂ€re Vergleiche als voneinander abhĂ€ngig herausstellen und zweitens ihr Durchschnitt nicht mehr gleich 0,5 ist (1 ist heller, 0 ist dunkler, wenn die Auswahl zufĂ€llig war, es war durchschnittlich 0,5). All dies verringert die FĂ€higkeit des Deskriptors, einzelne Punkte untereinander zu unterscheiden, erheblich.
Lösung - Sie mĂŒssen im Lernprozess die ârichtigenâ BinĂ€rtests auswĂ€hlen. Diese Idee hat den gleichen Geschmack wie das Baumtraining fĂŒr den FAST-9-Algorithmus. Angenommen, wir haben bereits eine Reihe einzelner Punkte gefunden. BerĂŒcksichtigen Sie alle möglichen Optionen fĂŒr binĂ€re Tests. Wenn die Nachbarschaft 31 x 31 ist und der BinĂ€rtest ein Paar von 5 x 5 Teilmengen ist (aufgrund von UnschĂ€rfe), gibt es viele Optionen fĂŒr die Auswahl von N = (31-5) ^ 2. Der Suchalgorithmus fĂŒr "gute" Tests lautet wie folgt:
- Wir berechnen das Ergebnis aller Tests fĂŒr alle singulĂ€ren Punkte
- Ordnen Sie die gesamte Testreihe entsprechend ihrem Abstand vom Durchschnitt von 0,5 an
- Erstellen Sie eine Liste mit den ausgewÀhlten "guten" Tests. Rufen Sie die Liste R auf.
- FĂŒgen Sie den ersten Test aus dem sortierten Satz zu R hinzu
- Wir nehmen den nĂ€chsten Test und vergleichen ihn mit allen Tests in R. Wenn die Korrelation gröĂer als der Schwellenwert ist, verwerfen wir den neuen Test, andernfalls fĂŒgen wir ihn hinzu.
- Wiederholen Sie Schritt 5, bis Sie die erforderliche Anzahl von Tests eingegeben haben.
Es stellt sich heraus, dass die Tests so ausgewÀhlt werden, dass einerseits der Durchschnittswert dieser Tests so nahe wie möglich bei 0,5 liegt, andererseits die Korrelation zwischen verschiedenen Tests minimal ist. Und das brauchen wir. Vergleichen Sie, wie es war und wie es wurde:

GlĂŒcklicherweise ist der ORB-Algorithmus in der OpenCV-Bibliothek in der Klasse cv :: ORB implementiert. Ich benutze Version 2.4.13. Der Klassenkonstruktor akzeptiert die folgenden Parameter:
nfeatures - maximale Anzahl von Einzelpunkten
scaleFactor - Multiplikator fĂŒr die Bildpyramide, mehr als eine. Wert 2 implementiert die klassische Pyramide.
Ebenen - die Anzahl der Ebenen in der Bildpyramide.
edgeThreshold - Die Anzahl der Pixel am Bildrand, an denen einzelne Punkte nicht erkannt werden.
firstLevel - lass Null.
WTA_K - Die Anzahl der Punkte, die fĂŒr ein Element des Deskriptors erforderlich sind. Wenn gleich 2, wird die Helligkeit von zwei zufĂ€llig ausgewĂ€hlten Pixeln verglichen. Dies ist, was benötigt wird.
scoreType - wenn 0, dann wird harris als MerkmalsmaĂ verwendet, andernfalls - das FAST-MaĂ (basierend auf der Summe der Module der Helligkeitsunterschiede an den Punkten des Kreises). Das FAST-MaĂ ist etwas weniger stabil, aber schneller.
patchSize - Die GröĂe der Nachbarschaft, aus der zufĂ€llige Pixel zum Vergleich ausgewĂ€hlt werden. Der Code sucht und vergleicht die einzelnen Punkte in zwei Bildern, "templ.bmp" und "img.bmp".
Codecv::Mat img_object=cv::imread("templ.bmp", 0); std::vector<cv::KeyPoint> keypoints_object, keypoints_scene; cv::Mat descriptors_object, descriptors_scene; cv::ORB orb(500, 1.2, 4, 31, 0, 2, 0, 31);
Wenn jemand geholfen hat, die Essenz der Algorithmen zu verstehen, ist dies nicht umsonst. An alle Habr.
Referenzen:
1. ZusammenfĂŒhren von
Punkten und Linien fĂŒr die Hochleistungsverfolgung2.
Maschinelles Lernen zur schnellen Kurvenerkennung3.
Schneller und besser: Ein Ansatz des maschinellen Lernens zur Eckenerkennung4.
KURZDARSTELLUNG: BinÀr robuste, unabhÀngige Elementarfunktionen5.
ORB: eine effiziente Alternative zu SIFT oder SURF