狼兔图像识别系统项目报告

狼兔图像识别系统项目报告
1. 项目简介本项目是一个基于 Django 与 PyTorch 的狼兔图像识别系统聚焦 Wolf 与 Rabbit 两类动物图像的自动分类。系统提供网页端入口用户在首页选择模型并上传图片后后端调用对应的深度学习模型进行推理将类别与置信度返回前端页面。项目的数据集和模型结构均围绕 Wolf 与 Rabbit 两个类别组织models目录中包含了多种卷积神经网络与 Transformer 模型实现可借此进行训练结果对比、模型替换与系统扩展。界面简洁直观适合用于课程设计或小规模的图像分类演示。2. 系统首页首页采用左右分栏布局左侧固定展示系统名称、数据集划分比例和任务说明右侧集中放置模型选择、图片上传与识别结果展示区域。整体设计突出识别任务本身操作入口清晰适合课程设计展示和项目演示。3. 技术栈后端框架Django深度学习框架PyTorch图像处理PIL、torchvision.transforms数据集读取ImageFolder 目录式分类数据加载前端页面HTML、CSS、Django Template可视化分析Matplotlib系统整体流程为前端上传图片Django 接收请求并保存文件后端根据用户选择加载对应模型进行预测最后把识别结果渲染回页面。训练端则通过train/test目录读取狼兔图片并自动生成类别索引文件。4. 数据集介绍项目数据集位于data_set/Wolf and Rabbit目录下按照train与test两个阶段划分每个阶段下包含Rabbit与Wolf两个类别文件夹。这样的组织方式可以直接配合torchvision.datasets.ImageFolder使用训练脚本会根据文件夹名称自动建立类别标签映射。数据集图片覆盖兔子与狼两类目标训练阶段用于模型学习图像特征测试阶段用于观察模型在未参与训练图片上的识别表现。5. 模型与训练流程模型目录中提供了 AlexNet、LeNet、VGGNet、ResNet、GoogLeNet、MobileNet、DenseNet、EfficientNet、RegNet、ShuffleNet、Swin Transformer、Vision Transformer 等多种模型。训练脚本读取 Wolf and Rabbit 数据集完成数据增强、批量加载、前向传播、损失计算、反向传播和验证指标统计。训练采用交叉熵损失函数与 Adam 优化器配合学习率衰减策略。训练过程中会保存class_indices.json用于将模型输出的类别编号映射回真实类别名称部分训练脚本还会输出 Excel 结果文件里面记录了每一轮的训练损失、验证准确率、Precision、Recall 和 F1-Score供后续分析使用。6. 随机轮次可视化分析为了避免只展示固定最优结果本报告从已有的训练结果文件中随机抽取若干模型与训练轮次进行交叉分析。每张图中使用的模型与 epoch 组合互不重复便于观察不同模型在不同训练阶段的表现差异。折线图展示随机模型在若干训练轮次上的准确率变化趋势。柱状图对比不同模型在随机训练轮次上的验证准确率。本次柱状图抽取的模型与轮次包括AlexNet 第 3 轮ResNet 第 9 轮RegNet 第 5 轮MobileNet 第 5 轮ShuffleNet 第 8 轮。本次折线图抽取的模型包括ViT、LeNet、VGG。从随机抽取的结果来看不同网络结构在狼兔二分类任务上的收敛速度和阶段性准确率有明显差异。轻量模型如 MobileNet、ShuffleNet参数量小适合部署到资源有限的场景深层卷积网络和 Transformer 结构在特征提取上更具优势但需要更大的训练与推理资源开销。7. 系统功能说明模型选择页面根据 models 目录中的权重文件动态展示可用模型。图片上传支持用户上传常见图像文件。识别处理后端按用户选择调用对应 predict 模块。结果展示页面展示模型名称、识别类别、识别概率和上传图片。训练扩展可通过 main_train.py 统一入口选择不同模型进行训练。8. 项目总结本系统打通了从数据集组织、模型训练、网页上传到识别结果展示的完整闭环。项目结构清晰模型目录独立可以方便地添加新的网络结构或替换已有权重。后续改进方向增加批量识别功能、补充更完整的错误提示、添加训练日志管理页面、统一各模型的权重命名规则并将可视化结果集成到系统后台中。