이 저장소에는 동물 이미지를 90 종 중 하나로 분류하고 이미지 유사성 검색을 수행하기위한 엔드 투 엔드 파이프 라인이 포함되어 있습니다. 이 프로젝트는 사용자 정의 임베딩 레이어 및 최종 분류 헤드와 결합 된 기능 추출기로 깊은 컨볼 루션 신경망 (RESNET-50)을 활용합니다. 또한 사용자가 이미지를 업로드하고 데이터 세트에서 예측 된 클래스와 시각적으로 유사한 이미지를 모두받을 수있는 프론트 엔드 인터페이스가 포함되어 있습니다.
모델 아키텍처 :
데이터 세트 :
동물 이미지 데이터 세트 - 90 개의 다른 동물
이 데이터 세트는 다양한 동물 종을 포함하여 90 개의 클래스에 걸쳐 광범위한 표현을 보장합니다.
교육 세부 사항 :
성능 지표 :
이 메트릭은 데이터 세트에서 강력한 분류 성능을 나타냅니다.
클래스 별 성능을 시각화하기 위해 Confusion Matrix ( confusion_matrix.png )가 포함되어 있습니다. 
분류 외에도이 솔루션은 이미지 유사성 검색 기능을 제공합니다.
기능 추출 :
각 데이터 세트 이미지는 모델 (RESNET-50 + 임베딩 층)을 통해 전달되어 256 차원 피처 벡터를 생성합니다.
데이터베이스 스토리지 (SQLITE) :
모든 256 차원 기능 벡터는 SQLite 데이터베이스에 저장됩니다.
유사성 쿼리 :
새 이미지가 업로드되면 삽입이 계산되고 데이터베이스는 벡터 유사성을 기반으로 가장 유사한 이미지를 찾도록 쿼리됩니다.
이를 통해 업로드 된 이미지의 클래스를 예측할뿐만 아니라 기존 데이터 세트에서 시각적으로 유사한 이미지를 검색 할 수 있습니다.
상호 작용을 용이하게하기 위해 간단한 프론트 엔드가 포함되어 있습니다.
.
├── 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.txt데이터 세트 다운로드 및 준비 :
모델 교육 : 모델을 재교육하고 기능 벡터 DB를 작성하려면 :
python train.py python main.py이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다.