Ce référentiel contient un pipeline de bout en bout pour classer les images animales en l'une des 90 espèces et effectuer des recherches de similitude d'image. Le projet exploite un réseau neuronal convolutionnel profond (RESNET-50) comme un extracteur de fonctionnalités, combiné à une couche d'intégration personnalisée et à une tête de classification finale. De plus, il comprend une interface frontale pour les utilisateurs pour télécharger une image et recevoir à la fois une classe prévue et des images visuellement similaires de l'ensemble de données.
Architecture du modèle:
Ensemble de données:
Ensemble de données d'image animale - 90 animaux différents
Cet ensemble de données couvre une grande variété d'espèces animales, garantissant une large représentation dans 90 classes.
Détails de la formation:
Métriques de performance:
Ces mesures indiquent de fortes performances de classification sur l'ensemble de données.
Une matrice de confusion ( confusion_matrix.png ) est incluse pour visualiser les performances de classe par classe. 
En plus de la classification, cette solution fournit une fonction de recherche de similitude d'image:
Extraction de caractéristiques:
Chaque image d'ensemble de données est passé par le modèle (couche d'intégration RESNET-50 +) pour produire un vecteur de fonctionnalité 256 dimension.
Stockage de la base de données (SQLite):
Tous les vecteurs de fonctionnalités 256 dimensions sont stockés dans une base de données SQLite.
Requête de similitude:
Lorsqu'une nouvelle image est téléchargée, son intégration est calculée et la base de données est interrogée pour trouver les images les plus similaires basées sur la similitude vectorielle.
Cela vous permet non seulement de prédire la classe d'une image téléchargée, mais aussi de récupérer des images visuellement similaires à partir de l'ensemble de données existant.
Un frontend simple est inclus pour faciliter l'interaction:
.
├── 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.txtTélécharger et préparer un ensemble de données:
Formation du modèle: pour recycler le modèle et créer un vecteur de fonction DB:
python train.py python main.pyCe projet est autorisé sous la licence du MIT.