Este repositório contém um pipeline de ponta a ponta para classificar imagens de animais em uma das 90 espécies e executar pesquisas de similaridade de imagem. O projeto aproveita uma profunda rede neural convolucional (Resnet-50) como um extrator de recurso, combinado com uma camada de incorporação personalizada e um chefe de classificação final. Além disso, inclui uma interface de front -end para os usuários carregarem uma imagem e receber uma classe prevista e imagens visualmente semelhantes do conjunto de dados.
Arquitetura de modelo:
Conjunto de dados:
Conjunto de dados de imagem animal - 90 animais diferentes
Esse conjunto de dados cobre uma ampla variedade de espécies animais, garantindo uma ampla representação em 90 classes.
Detalhes de treinamento:
Métricas de desempenho:
Essas métricas indicam um forte desempenho de classificação no conjunto de dados.
Uma matriz de confusão ( confusion_matrix.png ) está incluída para visualizar o desempenho da classe por classe. 
Além da classificação, esta solução fornece um recurso de pesquisa de similaridade de imagem:
Extração de recursos:
Cada imagem do conjunto de dados é passada através do modelo (camada de incorporação Resnet-50 +) para produzir um vetor de recurso 256-dimensional.
Armazenamento de banco de dados (SQLite):
Todos os vetores de recursos 256-dimensionais são armazenados em um banco de dados SQLite.
Consulta de similaridade:
Quando uma nova imagem é enviada, sua incorporação é calculada e o banco de dados é consultado para encontrar as imagens mais semelhantes com base na similaridade vetorial.
Isso permite que você não apenas preveja a classe de uma imagem carregada, mas também recupere imagens visualmente semelhantes do conjunto de dados existente.
Um front -end simples está incluído para facilitar a interação:
.
├── 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.txtBaixe e prepare o conjunto de dados:
Treinamento do modelo: para treinar o modelo e criar db de vetor de recursos:
python train.py python main.pyEste projeto está licenciado sob a licença do MIT.