0

ich arbeite an einem content-based Image Retrieval-Projekt, wo große Feature-Vektoren aus massiven Bilddatensätzen extrahiert werden, ich die Feature-Vektoren in einer Datenbank für spätere Wiedergewinnung und Vergleich mit Abfragebildern mit Abstandsmaße wie Euklidische Entfernung speichern möchte Was ist die beste Datenbank zum Speichern dieser Feature-Vektoren?Was ist die beste Datenbank zum Speichern von großen Feature-Vektoren für spätere Abfrage und Berechnung von Distanzmessungen für Ähnlichkeitsvergleiche?

Antwort

1

Zwei weit verbreitete Bibliotheken in der Gemeinde sind die FALCONN und die NMSLIB. Beide implementieren eine ungefähre Suche nach dem nächsten Nachbarn in Echtzeit über Millionen (sogar Milliarden) von reellwertigen Vektoren, z. image SIFT-Funktionen. Während ersterer lokalisierungssensitives Hashing verwendet, unterstützt letzteres zusammen mit lokalisierungssensitivem Hashing eine neuere Technik namens Produktquantisierung. NMSLIB ermöglicht Ihnen auch, Ihre eigene Metrik zu definieren, z. Kosinusähnlichkeit oder Lp-Abstände anstatt nur mit dem L2 (euklidischen) Distanzmaß zu arbeiten.

+0

Wie werden diese Feature-Vektoren ordnungsgemäß gespeichert, bevor Ähnlichkeitsabgleich und -abruf ausgeführt werden? – markeb

+0

Was meinst du mit 'richtig'? Die Bibliothek macht alles für Sie und Sie müssen nicht einmal über die internen Daten und Dateistrukturen Bescheid wissen ... Wählen Sie eine davon, lesen Sie die Dokumentation und probieren Sie mit einigen Beispielfällen den grundlegenden Workflow aus ... – Debasis

0

Weitere 2 weit verbreitete Bibliotheken sind Faiss(2015) und FLANN(2009).

Faiss hat eine sehr effiziente GPU-Implementierung.

Alle diese Bibliotheken sind für den In-Memory-Betrieb ausgelegt, nicht für die Speicherung. Mir ist keine Implementierung bekannt, die Features unterstützt, die Vektoren hinzufügen/abfragen/auf persisten Speicher operieren.

Verwandte Themen