news 2026/7/24 13:24:42

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

作者头像

张小明

前端开发工程师

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 13:19:37

TensorFlow与OpenCV实现工业级人脸识别与关键点检测

1. 项目背景与核心价值人脸识别与关键点检测是计算机视觉领域的经典应用场景。随着深度学习技术的普及,这两个方向已经从实验室走向了实际生产环境。我在工业级安防项目中多次采用TensorFlowOpenCV的技术组合,这套方案的优势在于:TensorFlow提…

作者头像 李华
网站建设 2026/7/24 13:18:53

指数加权平均原理与深度学习优化实践

1. 指数加权平均概述指数加权平均(Exponential Weighted Average,EWA)是一种在时间序列分析中广泛使用的平滑技术。我第一次接触这个概念是在优化算法课程中,当时教授用它来解释动量(Momentum)优化器的原理…

作者头像 李华
网站建设 2026/7/24 13:18:48

深度学习中的层归一化技术解析与应用实践

1. 层归一化技术解析层归一化(Layer Normalization)是深度学习模型训练中的一项关键技术,它通过对神经网络层输出的标准化处理,显著提升了模型训练的稳定性和收敛速度。这项技术最早由Jimmy Lei Ba等人在2016年提出,现…

作者头像 李华
网站建设 2026/7/24 13:13:11

基于兰姆波与机器学习的结构健康监测技术解析

1. 项目背景与核心价值 航空航天领域对结构安全性的严苛要求催生了这项研究。传统检测方法往往需要停机拆解,而基于兰姆波的结构健康监测(SHM)技术能在不拆卸部件的情况下实现原位评估。这项技术的突破点在于将数据驱动理念与传统无损检测相结合,通过分析…

作者头像 李华
网站建设 2026/7/24 13:10:51

AI落地中的数据瓶颈与混合解决方案

1. 问题背景:AI落地遭遇数据瓶颈最近半年接触了十几个AI落地项目,发现一个有趣现象:超过60%的团队在推进过程中,都遇到了场景数据不足的问题。有个医疗影像识别项目,团队花了三个月标注数据,结果模型在实际…

作者头像 李华
网站建设 2026/7/24 13:10:15

GEO动态监测算法:AI模型快速适配的20倍提速方案

1. 项目概述:GEO动态监测算法的核心价值 在AI大模型快速迭代的当下,企业面临着一个关键挑战:如何确保自身内容能够持续适配不断更新的模型语义理解规则。矩阵跃动研发的小陌GEO动态监测算法,正是为解决这一痛点而生。这套系统最引…

作者头像 李华