🚀 大型猫科动物分类器
这是一个基于视觉变换器(Vision Transformers)构建的图像分类器,可将大型猫科动物的图像分类为以下类别,为相关研究和识别工作提供了高效准确的解决方案。
🚀 快速开始
训练与推理
- 训练:点击
可在Colab中进行训练。
- 推理:点击
可在Colab中进行推理。
使用示例
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}" )
托管API
点击 此处 查看。
库应用使用方法
克隆仓库
git clone https://github.com/smaranjitghose/Big_Cat_Classifier.git
进入克隆的仓库
cd Big_Cat_Classifier
选择以下两种方式之一运行:
A) 不使用Docker
确保你已安装最新稳定版本的 Python 3 并将其添加到系统路径
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

部署
Heroku部署
- 移除Docker容器中暴露特定端口的行
- 确保启动命令使用变量端口号
ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=$PORT"]
heroku login -i
heroku create
heroku container:login
heroku container:push web
heroku container:release web
heroku open
✨ 主要特性
- 精准分类:能够将大型猫科动物图像准确分类为猎豹、美洲豹、花豹、狮子和老虎等类别。
- 多途径使用:支持训练、推理、API调用以及本地应用部署等多种使用方式。
📦 安装指南
克隆仓库
git clone https://github.com/smaranjitghose/Big_Cat_Classifier.git
进入仓库
cd Big_Cat_Classifier
安装依赖
不使用Docker
pip install -r requirements.txt
使用Docker
docker build -t smaranjitghose/big-cat-classifier:latest .
📚 详细文档
分类类别
类别编号 |
大型猫科动物 |
示例图片 |
0 |
猎豹 |
 |
1 |
美洲豹 |
 |
2 |
花豹 |
 |
3 |
狮子 |
 |
4 |
老虎 |
 |
注意事项
⚠️ 重要提示
- 由于美洲豹和花豹外观相似,模型可能会将两者混淆。可参考 [1] [2] 这两篇文章了解两者区别。
- 理论上,模型应能准确识别每个物种的地理种群变体。但在实际场景中可能并非如此,因为在训练阶段收集数据集时未考虑此因素。例如,孟加拉虎、西伯利亚虎、印支虎和马来亚虎的图像应被识别为老虎。
- 模型对某些大型猫科动物稀有变种(如白虎、雪豹或黑豹)的分类性能尚未专门确定,尽管一些测试结果令人满意。
📄 许可证
文档未提及相关内容,故跳过该章节。
🔧 技术细节
文档未提及相关内容,故跳过该章节。
参考与致谢
本项目参考了 Hugging Pics ,在此表示感谢。