Dieses Repository enthält eine End-to-End-Pipeline, um Tierbilder in eine von 90 Arten zu klassifizieren und Bildähnlichkeitssuche durchzuführen. Das Projekt nutzt ein tiefes Faltungsnetz (Resnet-50) als Feature-Extraktor, kombiniert mit einer benutzerdefinierten Einbettungsschicht und einem endgültigen Klassifizierungskopf. Darüber hinaus enthält es eine Frontend -Schnittstelle, mit der Benutzer ein Bild hochladen und sowohl eine vorhergesagte Klasse als auch visuell ähnliche Bilder aus dem Datensatz empfangen können.
Modellarchitektur:
Datensatz:
Tierbilddatensatz - 90 verschiedene Tiere
Dieser Datensatz deckt eine Vielzahl von Tierarten ab und gewährleistet eine breite Darstellung in 90 Klassen.
Trainingsdetails:
Leistungsmetriken:
Diese Metriken zeigen eine starke Klassifizierungsleistung im Datensatz.
Eine Verwirrungsmatrix ( confusion_matrix.png ) ist zur Visualisierung der Klasse für Klasse zu der Klasse enthalten. 
Neben der Klassifizierung bietet diese Lösung eine Suchfunktion der Bildähnlichkeit:
Feature -Extraktion:
Jedes Datensatzbild wird durch das Modell (ResNet-50 + Einbettungsschicht) übergeben, um einen 256-dimensionalen Merkmalsvektor zu erzeugen.
Datenbankspeicher (SQLite):
Alle 256-dimensionalen Feature-Vektoren werden in einer SQLite-Datenbank gespeichert.
Ähnlichkeitsanfrage:
Wenn ein neues Bild hochgeladen wird, wird seine Einbettung berechnet und die Datenbank wird abfragt, um die ähnlichsten Bilder basierend auf der Vektorähnlichkeit zu finden.
Auf diese Weise können Sie nicht nur die Klasse eines hochgeladenen Bildes vorhersagen, sondern auch visuell ähnliche Bilder aus dem vorhandenen Datensatz abrufen.
Eine einfache Frontend ist enthalten, um die Interaktion zu erleichtern:
.
├── requirements.txt # Python dependencies
├── README.md # This README file
├── .gitignore # Git ignore file
├── LICENSE # License file for the project
├── main.py # Entry point for the Flask application
├── model.py # Model definition, loading, and inference utilities
├── similarity.py # Functions for similarity search and confusion matrix creation
└── train.py # Training script for the model
├── templates/
│ ├── index.html # Frontend template
└── confusion_matrix.png # Confusion matrix visualization git clone https://github.com/git-khandelwal/image-similarity
cd image-similarity pip install -r requirements.txtDatensatz herunterladen und vorbereiten:
Modelltraining: Um das Modell abzunehmen und Feature -Vektor DB zu erstellen:
python train.py python main.pyDieses Projekt ist unter der MIT -Lizenz lizenziert.