このリポジトリには、動物画像を90種の1つに分類し、画像の類似性検索を実行するためのエンドツーエンドのパイプラインが含まれています。このプロジェクトは、カスタム埋め込み層と最終的な分類ヘッドと組み合わせて、深い畳み込みニューラルネットワーク(RESNET-50)を特徴抽出器として活用しています。さらに、ユーザーが画像をアップロードし、データセットから予測クラスと視覚的に類似した画像の両方を受信できるフロントエンドインターフェイスが含まれています。
モデルアーキテクチャ:
データセット:
動物画像データセット-90種類の動物
このデータセットは、さまざまな動物種をカバーし、90のクラスで広範な表現を保証します。
トレーニングの詳細:
パフォーマンスメトリック:
これらのメトリックは、データセットの強力な分類パフォーマンスを示しています。
クラスごとのパフォーマンスを視覚化するために、混乱マトリックス( 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ライセンスの下でライセンスされています。