31

SURF ist patentiert, ebenso wie SIFT. ORB und BRIEF sind nicht patentiert, aber ihre Eigenschaften sind nicht skaleninvariant, was ihre Nützlichkeit in komplexen Szenarien stark einschränkt.Gibt es für die skaleninvariante Merkmalsextraktion schnelle Alternativen zu SURF und SIFT?

Gibt es Feature-Extraktoren, die skaleninvariante Funktionen so schnell wie SURF extrahieren können und nicht so streng patentiert sind wie SURF und SIFT?

+0

Gefragt auf [dsp] (http://dsp.stackexchange.com/questions/1288/what-are-some-free-alternatives-to-sift-surf-that-can-be-used-in-commercial -App). – Maurits

Antwort

29

Obwohl Sie bereits BRISK wählen, könnten Sie FREAK interessant finden. Der Autor behauptet, bessere Ergebnisse zu haben als BRISK und ORB. Ich sollte auch hinzufügen, dass ORB skaleninvariant ist, aber einige Probleme in diesem Bereich hat. Also würde ich es immer noch jemandem empfehlen, es auszuprobieren.

Die FREAK source code ist kompatibel mit OpenCV (wie einfach es ist, sie zu verschmelzen, weiß ich nicht) und der Autor arbeitet daran, es an das OpenCV-Projekt zu übermitteln.

EDIT:

FREAK is now part of opencv feature detectors/descriptors.

Sie can read here more über die Unterschiede zwischen mehreren Merkmalsdetektoren/Extraktoren, and also a series of benchmarks die FREAK und andere populäreren enthält.

+0

+1 Brisk-Detektor kombiniert mit Freak-Deskriptor ist das, was für mich die besten Ergebnisse liefert. –

+1

https://github.com/kikohs/freak/blob/master/demo/freak_demo.cpp defekten Link zu Freak Probe –

6

Sie könnten versuchen multi-scale histogram of oriented gradients. Es wird nicht vollständig skaleninvariant sein, aber wenn Ihre Daten mit einer vernünftigen Anzahl von Skalenlimits eingeschränkt sind (in der Praxis oft der Fall), kann dies wahrscheinlich für Sie funktionieren.

Ein anderer Ansatz, der vollständig von Ihrer beabsichtigten Anwendung abhängt, wäre die Verwendung von poselets, auch wenn sie auf einem nicht skalierungsinvarianten Deskriptor wie einem einfachen Histogramm eines orientierten Gradienten oder auf Erscheinungsmodellen basieren. Wenn die Anmerkungen in Ihren Trainingsdaten Beispiele für verschiedene Elemente zur Erkennung in verschiedenen Maßstäben enthalten, sollte die Procrustes-artige Distanz, die in Poselets für das Training verwendet wird, für eine große Skaleninvarianz sorgen. Dies kann jedoch nicht zufriedenstellend sein, wenn Ihre primäre Anwendung keine lokalisierte Erkennung von Teilen ist.

Nebenbei finde ich es eher bedauerlich, dass SIFT und SURF auf diese Weise patentiert werden konnten, da sie (zumindest teilweise) mit Steuergeldern durch Zuschüsse finanziert wurden.

+0

Haben Sie einen nicht-privaten Link zu Info Multi-Scale HoG, für diejenigen von uns ohne IEEE-Abonnements? – fish2000

8

Ich endete mit Brisk, das ist ein Feature-Detektor mit einer Leistung vergleichbar mit SURF aber unter der BSD-Lizenz. Plus, es hat eine sehr nette Open-Source-C++ - Implementierung, die sich leicht in das OpenCV-FeatureDetector-Framework einfügt, also ist es wie 2 Zeilen, Brisk über SURF in Ihrem Code zu verwenden.

+0

Perfekt. Ich habe das Papier gesehen, aber die Implementierung nicht gefunden. Danke für die Antwort. – KobeJohn

3

FREAK ist jetzt in OpenCV 2.4.2 enthalten, können Sie es leicht :-)

11

FREAK soll verwenden können, die schnellste Skalierung und Rotation invariant Descriptor Extraktor sein, es ist Open-Source- und Sie kann es leicht verwenden, wie es in OpenCV implementiert ist. Sie benötigen einen binären Matcher, der die Hamming-Distanz verwendet, wie der BruteForceMatcher.

Hier haben Sie eine example auf, wie man es verwendet, einfach ersetzbar durch SIFT-Deskriptor.

+1

Es sieht aus wie Ihr Link zu dem Beispiel ist gebrochen :( –

3

Sie können versuchen KAZE, es soll schneller und präziser sein (die Videos scheinen schick, aber ich habe es noch nicht selbst ausprobieren).Es gibt auch eine beschleunigte Version davon verfügbar.

Pablo F. Alcantarilla, Adrien Bartoli und Andrew J. Davison, "KAZE Features", in der Europäischen Konferenz über Computer Vision (ECCV). Fiorenze *, Italien. Oktober 2012.

Pablo F. Alcantarilla, Jesús Nuevo und Adrien Bartoli, "Fast Explicit Diffusion for Accelerated Features in Nonlinear Scale Spaces", in der britischen Machine Vision Conference (BMVC). Bristol, Großbritannien. September 2013

Die Quellcodes, Videos und mehr finden Sie unter author's website.

* Firenze

+0

Ich habe AKAZE, SURF und SIFT in verglichen Eine Anwendung und ich kann bestätigen, dass es in meinen Tests mindestens genauso gut ist und die Deskriptoren viel schneller zu vergleichen sind als die beiden (sie sind binär und alle). Es ist auch nicht patentpflichtig, also würde ich es empfehlen AKAZE als erste Wahl – oarfish

0

Erkennung von charakteristischen Punkten und der Suche nach hog Features (es ist nicht patentiert ist) durch Flecken um Wahrzeichen Punkte bilden.

+1

Hallo, willkommen bei SO, und vielen Dank für Ihren Beitrag, aber es macht nicht viel Sinn, einen oneliner ohne Details als Antwort hinzuzufügen, wenn die Frage schon hochaufgeregt, detailliert und akzeptierte Antwort wie hier. –

Verwandte Themen