Skip to content

基于 PyTorch 和 Tkinter 的多模型(ResNet, EfficientNet, DenseNet)集成蜘蛛图像识别系统(也可用于其它物体识别/训练),此处用蜘蛛识别举例。

Notifications You must be signed in to change notification settings

rhj-flash/Spider-Classification-GUI

Repository files navigation

GitHub 邮箱 访问量 GitHub Stars GitHub Followers


🕷️ 多模型蜘蛛识别系统 (Multi-Model Spider Recognition System)

一个基于 PyTorchTkinter 的桌面应用程序,用于蜘蛛图像分类识别与模型管理。
提供直观的图形化界面,支持多种深度学习模型的训练、验证与推理。


🌟 功能概述

🔧 多模型支持

  • 内置 ResNet-50, EfficientNet-B0, DenseNet-121 等主流 CNN 模型;
  • 支持快速切换与比较不同模型的性能。

🖥️ 图形界面操作

  • 全程使用 Tkinter GUI 操作,无需命令行;
  • 模型训练、验证、测试、加载、删除均可一键完成。

🧩 数据集管理

  • 自动将原始数据集按 8:2 比例 划分为 train/val/
  • 支持指定数据目录、一键预处理。

📈 实时训练可视化

  • 实时绘制以下训练曲线:
    • 训练损失(Training Loss)
    • 验证损失(Validation Loss)
    • 训练准确率(Training Accuracy)
    • 验证准确率(Validation Accuracy)
  • 可从历史记录下拉框查看不同模型的曲线。

🧠 模型管理系统

  • 加载、卸载、删除已训练模型;
  • 自动保存模型文件与参数;
  • 可从下拉菜单选择查看过往模型的结果。

🚫 训练中断机制

  • 提供“中断训练”按钮,安全终止训练过程;
  • 支持在中断后恢复训练。

⚙️ 设备自动检测

  • 自动检测 GPU 是否可用;
  • 若有 CUDA 支持,则自动启用 GPU 加速。

🖼️ 图像识别功能

  • 一键选择图片,支持多模型同时识别;
  • 显示各模型预测结果及置信度;
  • 内置图片缩放、平移功能进行细节预览。

🧾 日志系统

  • 底部集成日志输出框;
  • 记录所有操作、模型训练状态与错误信息;
  • 便于调试与追踪模型行为。

📂 数据准备

-您的数据集需要遵循以下标准的文件结构,其中顶层目录直接包含以类别命名的子文件夹:

/data_root
├── /黑寡妇 (Black_Widow)
│   ├── image_1.jpg
│   ├── image_2.png
│   └── ...
├── /跳蛛 (Jumping_Spider)
│   ├── image_a.jpg
│   └── ...
└── /狼蛛 (Wolf_Spider)
    └── ...

🧰 环境要求与安装步骤

🔹 环境要求

  • Python 版本:3.7+
  • 操作系统:Windows / macOS / Linux
  • 推荐显卡:支持 CUDA 的 NVIDIA GPU(可自动切换 CPU 模式)

🔹 依赖安装

请确保已正确安装 PyTorch(根据您的 CUDA 版本选择合适命令,参见 PyTorch 官网)。

安装其他依赖:

pip install torchvision matplotlib pillow tqdm tk

🚀 使用指南

准备数据: 完成 数据准备 步骤。

选择模型: 在 2. 模型训练 区域,勾选您想要训练的模型。

设置参数: 调整训练轮数(Epochs)和批次大小(Batch Size)。

开始训练: 点击 开始训练选中模型,训练过程将在图表区域实时显示,并通过进度条和日志进行跟踪。若需停止,点击 中断训练 按钮。

模型识别: 在 3. 模型管理 区域,双击列表中的模型或使用 加载/卸载模型 按钮加载已训练的模型。

在 4. 图片识别 区域,点击 选择图片,然后点击 开始识别,结果将显示在右下方的识别结果区。

About

基于 PyTorch 和 Tkinter 的多模型(ResNet, EfficientNet, DenseNet)集成蜘蛛图像识别系统(也可用于其它物体识别/训练),此处用蜘蛛识别举例。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages