🚀 ビッグキャット分類器
Vision Transformersを使用して構築された画像分類器で、ビッグキャットの画像を特定のクラスに分類します。
🚀 クイックスタート
このビッグキャット分類器は、Vision Transformersを用いてビッグキャットの画像を分類します。以下に、基本的な情報を示します。
Property |
Details |
Model Type |
Image Classification |
Training Data |
Not specified |

この画像分類器は、Vision Transformersを使用して構築されており、ビッグキャットの画像を以下のクラスに分類します。
クラス |
ビッグキャット |
サンプル画像 |
0 |
チーター |
 |
1 |
ジャガー |
 |
2 |
レオパード |
 |
3 |
ライオン |
 |
4 |
トラ |
 |
⚠️ 重要な注意事項
- ジャガーとレオパードは外見が似ているため、モデルが両者を混同する可能性があります。この[1] [2] 2つの記事は、2種の違いについて説明しています。
- 理論的には、モデルは各種の地理的集団変異を正確に識別できるはずです。しかし、実際のシナリオでは、データセットを収集する際にこの点が考慮されていないため、必ずしもそうではないかもしれません。
- 例えば、ベンガルトラ、シベリアトラ、インドシナトラ、マレーシアトラの画像は、トラとして識別されるはずです。
- 最後に、白トラ、ユキヒョウ、黒パンサーなどのビッグキャットの特定の希少変異を分類するモデルの性能は、専門的には決定されていません。ただし、いくつかのテストでは満足できる結果が得られています。
トレーニングと推論
トレーニング: 
推論: 
💻 使用例
基本的な使用法
from PIL import Image
import matplotlib.pyplot as plt
from transformers import ViTFeatureExtractor, ViTForImageClassification
def identify_big_cat(img_path:str)->str:
"""
Function that reads an image of a big cat (belonging to Panthera family) and returns the corresponding species
"""
img = Image.open(img_path)
model_panthera = ViTForImageClassification.from_pretrained("smaranjitghose/big-cat-classifier")
feature_extractor = ViTFeatureExtractor.from_pretrained('smaranjitghose/big-cat-classifier')
inputs = feature_extractor(images=img, return_tensors="pt")
outputs = model_panthera(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
return model_panthera.config.id2label[predicted_class_idx]
our_big_cat = identify_big_cat("path_of_the_image")
print(f"Predicted species: {our_big_cat}" )
📦 インストール
リポジトリのクローン
git clone https://github.com/smaranjitghose/Big_Cat_Classifier.git
クローンしたリポジトリ内に移動
cd Big_Cat_Classifier
以下の2つの方法のいずれかに従ってください
A) Dockerを使用しない場合:
最新の安定版 Python 3 をインストールし、PATHに追加していることを確認してください
pip install -r requirements.txt
streamlit run app.py
B) Dockerを使用する場合:
Docker をインストールしていることを確認してください
docker build -t smaranjitghose/big-cat-classifier:latest .
docker images
docker run -t -i -p 8080:8080 --name "big-cat-classifier" smaranjitghose/big-cat-classifier
- ブラウザを開き、
localhost:8080
にアクセス

ホスティング
Herokuでのホスティング
- Dockerコンテナ内で特定のポートを公開する行を削除します。
- 起動コマンドが変数ポート番号で公開されていることを確認します。
ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=$PORT"]
- Herokuにログインします。
heroku login -i
- 新しいHerokuアプリを作成します。
heroku create
- コンテナレジストリにログインします。
heroku container:login
- Dockerイメージをビルドし、コンテナレジストリにプッシュします。
heroku container:push web
- アプリをリリースします。
heroku container:release web
- ホストされたバージョンとダッシュボードを確認します。
heroku open
📚 ドキュメント
ホストされたAPI
ホストされたAPIはこちらで確認できます。
参照と謝辞
Hugging Pics