基于PyTorch的动物图像识别系统 开源

基于PyTorch的动物图像识别系统


「基于PyTorch的动物图像识别系统」

/~5e2a3ZjJrp~:/

链接:https://pan.quark.cn/s/bbf4129b2a6e

基于 PyTorch 的动物图像识别系统

这是一个面向教学与毕业设计演示的桌面端动物图像识别项目。系统使用 PyTorch 和 ResNet18 完成图像分类,采用 ImageNet 预训练权重进行迁移学习,并通过 PyQt6 提供图形界面。项目自带已训练模型,可在不下载训练数据集的情况下直接识别图片。

主要功能

  • 图形化首页:展示项目简介、技术栈和数据集信息。

  • 单图识别:选择本地图片,输出 Top-3 动物类别和置信度。

  • 模型训练:在 GUI 中配置 Epoch、Batch Size 和学习率。

  • 训练可视化:实时显示训练日志、进度以及 Loss/Accuracy 曲线。

  • 命令行训练:支持通过参数快速启动训练任务。

技术方案

模块 技术
深度学习框架 PyTorch 2.8
模型 ResNet18、ImageNet 预训练、迁移学习
图形界面 PyQt6
图像处理 torchvision、Pillow
训练曲线 Matplotlib
运行设备 CPU(代码默认配置)

推理流程:加载图片 → RGB 转换 → 缩放至 224×224 → ImageNet 标准化 → ResNet18 前向计算 → Softmax → 输出 Top-3 结果。

已支持的类别

系统支持 15 类动物:鸟、猫、牛、鸡、狗、海豚、鸭、大象、长颈鹿、猴子、猪、兔子、老鼠、绵羊、老虎。

环境要求

  • Windows 10/11

  • 64 位 Python 3.9(本项目已在 Python 3.9.5 验证)

  • 无需 NVIDIA 显卡,默认使用 CPU

  • 建议预留至少 2 GB 磁盘空间用于 Python、PyTorch 和模型文件

验证环境版本如下:

复制代码
Python      3.9.5
torch       2.8.0+cpu
torchvision 0.23.0+cpu
PyQt6       6.4.2
matplotlib  3.7.2
Pillow      11.3.0

快速启动

在当前项目目录双击 run.bat,或在 PowerShell 中执行:

复制代码
& "C:\Users\PAN\Documents\Codex\venvs\animal-recognition-py39\Scripts\python.exe" main.py

进入"图像识别"页面后,选择图片并点击识别即可。模型文件 models/best_model.pth 和标签文件 models/labels.json 已随项目提供。

重新创建环境

如果把项目复制到另一台电脑,可双击 setup_env.bat。脚本会在 %USERPROFILE%\Documents\Codex\venvs\animal-recognition-py39 创建短路径环境,从 PyTorch 官方 CPU 软件源安装匹配的 PyTorch/torchvision,再安装其余依赖。把环境放在短路径可以避免本项目中文长目录触发 Windows 的 260 字符路径限制。

也可以手动执行:

复制代码
$venv = "$env:USERPROFILE\Documents\Codex\venvs\animal-recognition-py39"
py -3.9 -m venv $venv
& "$venv\Scripts\python.exe" -m pip install --upgrade pip
& "$venv\Scripts\python.exe" -m pip install torch==2.8.0 torchvision==0.23.0 --index-url https://download.pytorch.org/whl/cpu
& "$venv\Scripts\python.exe" -m pip install PyQt6==6.4.2 PyQt6-Qt6==6.4.2 PyQt6-sip==13.4.1 matplotlib==3.7.2 Pillow==11.3.0 numpy==1.26.2

如果电脑配置了失效的系统代理而出现 check_hostname requires server_hostname,可在当前 PowerShell 会话中先执行:

复制代码
$env:NO_PROXY="*"
$env:no_proxy="*"

然后重新运行安装命令。

使用自带测试图片

项目外层的 测试图片 目录中提供了大象、羊和老虎图片。打开系统后可直接选择这些图片测试。当前附带模型在本机实测可以正常载入并完成 Top-3 推理。

训练模型

训练需要额外下载动物数据集,并按以下目录组织:

复制代码
data/
└── animal_image/
    ├── train/
    │   ├── bird/
    │   ├── cat/
    │   └── ...
    └── test/
        ├── bird/
        ├── cat/
        └── ...

每个类别对应一个英文文件夹,文件夹名称必须与 config.py 中的 CLASS_LABELS 一致。

GUI 训练:

复制代码
& "$env:USERPROFILE\Documents\Codex\venvs\animal-recognition-py39\Scripts\python.exe" main.py

进入"模型训练"页面,设置参数并点击"开始训练"。

命令行训练:

复制代码
& "$env:USERPROFILE\Documents\Codex\venvs\animal-recognition-py39\Scripts\python.exe" train.py --epochs 5 --batch-size 16 --lr 0.001

首次重新训练时需要联网下载约 45 MB 的 ResNet18 ImageNet 预训练权重。训练完成后,最佳权重会保存为 models/best_model.pth,标签映射会保存为 models/labels.json

项目结构

复制代码
AnimalRecognition/
├── main.py                    # PyQt6 程序入口
├── train.py                   # 命令行训练入口
├── config.py                  # 路径、标签和默认超参数
├── requirements.txt           # 固定版本依赖
├── run.bat                    # 使用已配置环境启动系统
├── setup_env.bat              # 在新电脑创建 CPU 环境
├── assets/                    # 界面图片与图标
├── data/                      # 训练/验证数据目录
├── models/
│   ├── best_model.pth         # 已训练模型权重
│   └── labels.json            # 类别索引和中英文标签
└── src/
    ├── dataset.py             # 数据集与图像预处理
    ├── model.py               # ResNet18 构建和权重加载
    ├── predict.py             # 单图 Top-K 推理
    ├── trainer.py             # 训练与验证循环
    ├── matplotlib_config.py   # 中文字体配置
    └── ui/                    # 首页、识别页、训练页与样式

常见问题

  1. 提示"模型未训练" :确认 models/best_model.pthmodels/labels.json 都存在。

  2. 训练时提示找不到数据目录 :确认数据位于 data/animal_image/traindata/animal_image/test

  3. 首次训练下载失败:检查网络或代理设置;只做图片识别不需要下载预训练权重。

  4. 识别结果不理想:置信度只反映当前模型输出。可以增加训练数据、检查类别均衡、延长训练轮数并使用更丰富的数据增强。

  5. 出现 torchvision 导入错误:必须让 Torch 2.8 与 torchvision 0.23 配套使用,不要混用旧版 torchvision。

说明

本项目适合用于深度学习、迁移学习、图像分类和 PyQt6 桌面应用的学习与演示。模型预测结果仅供学习参考。

相关推荐
qetfw1 小时前
MWU:Vue 3 + FastAPI 的 MaaFramework 跨平台 WebUI 源码
前端·vue.js·python·fastapi·开源项目·效率工具
Xzaveir_7771 小时前
企业号码负面标记治理:认证、申诉与合规事件的三轨模型
大数据·网络·人工智能·科技·产品经理
武子康1 小时前
1.2GB 离线语音 Agent 真正值得复用的不是 908ms:四阶段职责 + 状态感知 Tool Schema + 可观测时间锚点
人工智能·后端·agent
测试老哥1 小时前
接口自动化测试分层设计与实践总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
水如烟1 小时前
孤能子视角:中西医合璧系列·05 收束篇——同一关系场的四次显影:术法道伦理的完整循环
人工智能
Summer-Bright1 小时前
消费者 AI 变现竞争:从“一家独大“到“iOS vs Android“,谁在为 AI 买单?
android·人工智能·ios·ai·自然语言处理·agi
前端Baymax1 小时前
一篇文章讲透Infra:AI数据云计算基础架构分类详解
人工智能
hnsoyon1 小时前
智慧管廊综合管理平台赋能排水管网监测精细化管理
大数据·人工智能·智慧管廊综合管理平台·排水管网监测
juejin_cn1 小时前
【翻译】图工程指南(2026)
人工智能