Bildähnlichkeit
Dieses Verzeichnis bietet Beispiele und Best Practices für den Aufbau von Bildähnlichkeitssystemen. Unser Ziel ist es, den Benutzern zu ermöglichen, ihre eigenen Datensätze einzubringen und schnell und einfach ein hochpräzises Modell zu trainieren. Zu diesem Zweck stellen wir Beispiel-Notebooks mit voreingestellten Standardparametern zur Verfügung, die sich auf einer Vielzahl von Datensätzen gut bewährt haben, sowie umfangreiche Dokumentationen zu häufigen Fallstricken, Best Practices usw.
Beispiel für Bildabruf, das das Abfragebild links und die 6 Bilder, die ihm am ähnlichsten sind, rechts zeigt
State-of-the-Art
Die Mehrheit der State-of-the-Art-Systeme für Bildähnlichkeit verwendet DNNs, um eine Darstellung eines Bildes zu berechnen (z. B. einen Vektor aus 512 Gleitkommawerten). Die Ähnlichkeit zwischen zwei Bildern wird dann als Kosinus- oder L2-Distanz zwischen ihren jeweiligen DNN-Darstellungen definiert.
Der Hauptunterschied zwischen neueren Veröffentlichungen zur Bildähnlichkeit liegt in der Art und Weise, wie das DNN trainiert wird. Ein einfacher, aber überraschend leistungsfähiger Ansatz ist die Verwendung einer Standard-Bildklassifizierung-Lossfunktion. Dies ist der Ansatz, der im Notebook 01_training_and_evaluation_introduction.ipynb verfolgt wird und im Ordner classification erklärt wird. Genauere Modelle werden typischerweise explizit für Bildähnlichkeit mit Triplet Learning trainiert, wie im bekannten FaceNet-Paper. Während triplet-basierte Ansätze gute Genauigkeiten erzielen, sind sie konzeptionell komplex, langsamer und schwieriger zu trainieren/konvergieren, aufgrund von Problemen wie der Auswahl guter Triplets.
Stattdessen implementiert das Notebook 02_state_of_the_art.ipynb das BMVC 2019-Paper „Classification is a Strong Baseline for Deep Metric Learning“, das zeigt, dass dieser zusätzliche Aufwand nicht notwendig ist. Tatsächlich erzielen die Autoren durch geringfügige Änderungen an Standard-Klassifizierungsmodellen Ergebnisse, die auf drei gängigen Forschungsdatensätzen vergleichbar oder besser sind als der bisherige Stand der Technik.
Nachfolgend finden Sie eine Auswahl beliebter Papiere in diesem Bereich mit berichteten Genauigkeiten auf Standard-Benchmark-Datensätzen
| Papier | Jahr | Verwendet Triplet Learning | Recall@1 CARS196 | Recall@1 CUB200-2011 | Recall@1 SOP |
|---|---|---|---|---|---|
| Deep Metric Learning via Lifted Structured Feature Embedding | CVPR 2016 | 49% | 47% | 62% | |
| Deep Metric learning mit Angular Loss | ICCV 2017 | Ja | 71% | 55% | 71% |
| Sampling Matters in Deep Embedding Learning | ICCV 2017 | Ja | 80% | 64% | 73% |
| No Fuss Distance Metric Learning using Proxies | ICCV 2017 | Ja | 73% | 49% | 74% |
| Deep metric learning mit hierarchischer Triplet Loss | ECCV 2018 | Ja | 81% | 57% | 75% |
| Klassifizierung ist eine starke Basis für Deep Metric Learning (Implementiert in diesem Repository) |
BMVC 2019 | Nein | 84% (512-dim) 89% (2048-dim) |
61% (512-dim) 65% (2048-dim) |
78% (512-dim) 80% (2048-dim) |
Re-Ranking
Zusätzlich zu der oben vorgestellten SOTA-Methode bieten wir eine Implementierung eines beliebten Re-Ranking-Ansatzes, der im CVPR 2017-Paper Re-ranking Person Re-identification with k-reciprocal Encoding veröffentlicht wurde. Re-Ranking ist ein Nachbearbeitungsschritt zur Verbesserung der Abrufgenauigkeit. Der vorgeschlagene Ansatz ist schnell, vollautomatisch, unüberwacht und zeigt eine bessere Genauigkeit als andere State-of-the-Art-Methoden.
Häufig gestellte Fragen
Antworten auf häufig gestellte Fragen wie „Wie viele Bilder benötige ich, um ein Modell zu trainieren?“ oder „Wie annotiere ich Bilder?“ finden Sie in der Datei FAQ.md. Für spezifische Fragen zur Bildklassifizierung siehe die FAQ.md im Klassifizierungsordner.
Notebooks
Wir stellen mehrere Notebooks zur Verfügung, um zu zeigen, wie Bildähnlichkeitsalgorithmen entworfen und ausgewertet werden können.
| Notebook-Name | Beschreibung |
|---|---|
| 00_webcam.ipynb | Quick-Start-Notebook, das zeigt, wie ein Bildabrufsystem mit einem einzelnen Bild oder einer Webcam als Eingabe erstellt wird. |
| 01_training_and_evaluation_introduction.ipynb | Notebook, das die Grundkonzepte des Modelltrainings und der -evaluierung erklärt, basierend auf DNNs, die für die Bildklassifizierung trainiert wurden. |
| 02_state_of_the_art.ipynb | Implementierung des State-of-the-Art BMVC 2019-Papers, das in der obigen Tabelle erwähnt wird. |
| 11_exploring_hyperparameters.ipynb | Findet optimale Modellparameter mithilfe der Grid-Suche. |
| 12_fast_retrieval.ipynb | Schneller Bildabruf unter Verwendung von Nearest Neighbor Search. |
Codierungsrichtlinien
Siehe die Codierungsrichtlinien im Stammverzeichnis.