当前位置: 首页 > news >正文

基于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 桌面应用的学习与演示。模型预测结果仅供学习参考。

http://www.cnnetsun.cn/news/3620098.html

相关文章:

  • TensorFlow与OpenCV实现工业级人脸识别与关键点检测
  • 指数加权平均原理与深度学习优化实践
  • 深度学习中的层归一化技术解析与应用实践
  • 基于兰姆波与机器学习的结构健康监测技术解析
  • AI落地中的数据瓶颈与混合解决方案
  • GEO动态监测算法:AI模型快速适配的20倍提速方案
  • C++单元测试实战:Boost.Test框架从入门到工程化应用
  • OpenClaw开源AI助手:本地部署与全渠道集成指南
  • 教室分组布线不合理,无线动能开关让绿建校园轻松通过验收
  • 基于大语言模型的引文功能分类工具:从原理到实践部署指南
  • 2026年AI视频行业的竞争转折点,支持Skill的AI视频生成工具全面解读
  • API Key 认证:从基础到生产级密钥生命周期管理
  • C/C++性能优化:从原理到实践的系统性方法论
  • 基于深度学习的上肢康复训练评估系统设计与实现
  • 巴斯吸尘器深度评测:16000Pa超强吸力,车载家用全能清洁利器
  • .NET现代化构建方案:容器化与增量编译实战
  • 有哪些BI平台品牌
  • AI 编程伦理与安全:使用 AI 写代码前必须知道的五个原则
  • 【计算机Python毕业设计案例】基于Python的校园班级考勤监督与数据汇总系统 企业人事考勤运维管理平台设计(程序+文档+讲解+定制)
  • 无人机电力巡检智慧课程:虚拟仿真与AI技术的教学实践
  • LangChain与Dify:大模型应用开发工具对比
  • 2026年实测报告:上海B端抖音运营公司选型困局,我们找到了方法
  • Ego (lite) 浏览器:与 AI 助手并行工作,复杂任务处理速度最多提升 2.5 倍!
  • AI Agent开发核心概念与RAG技术实战解析
  • 中国产品级二氧化碳排放数据集
  • [特殊字符] AI 越狱第一案:当大模型为了拿高分,自主攻破了另一家 AI 公司
  • CC3220MODx核心外设实战:UART、SD卡与定时器开发指南
  • Unity移动端Shader性能优化实战:基于Mali Offline Compiler的深度分析与调优
  • AI智能体开发指南:从原理到实战部署
  • 口碑深绑,5年+客户超3成!申通吉林梅河口的“五星样本”