基于 Django 与 PyTorch 的血细胞分类系统设计与实现
1. 项目简介本项目是一个面向外周血细胞显微图像的深度学习分类系统。系统提供 Web 首页,用户可以上传血细胞图像并选择模型进行分类识别,后台通过 PyTorch 模型完成推理,最终在页面中展示预测类别和置信度。
项目当前数据集目录为 data_set/hemocyte,包含 TRAIN 和 TEST 两部分,类别包括 EOSINOPHIL、LYMPHOCYTE、MONOCYTE、NEUTROPHIL,对应嗜酸性粒细胞、淋巴细胞、单核细胞和中性粒细胞。
由于当前运行环境未安装 Django,下面的首页图基于项目 medicine/templates/index.html 模板和本地数据集样例渲染,页面布局与系统首页设计保持一致。
配图:系统首页截图
## 2. 技术栈
- 后端框架:Django
- 深度学习框架:PyTorch
- 图像处理:Pillow、torchvision transforms
- 模型结构:AlexNet、LeNet、VGG、ResNet、GoogLeNet、EfficientNet、Swin Transformer、Vision Transformer 等
- 数据存储:本地图片数据集、SQLite 数据库、模型权重文件
- 前端页面:HTML + CSS 模板页面
3. 数据集说明
血细胞数据集按照 ImageFolder 常见格式组织,每个类别一个文件夹。训练脚本会读取 TRAIN 作为训练集,读取 TEST 作为测试/验证集,并自动生成类别索引 class_indices.json。
四类数据说明:
- EOSINOPHIL:嗜酸性粒细胞
- LYMPHOCYTE:淋巴细胞
- MONOCYTE:单核细胞
- NEUTROPHIL:中性粒细胞
配图:数据集四类血细胞样例图
4. 系统功能
- 首页展示:提供血细胞分类系统入口、模型选择、上传区域和分类结果区域。
- 图片上传:支持上传常见图像格式的血细胞显微图片。
- 模型选择:根据现有权重和模型目录,选择不同网络结构进行预测。
- 分类展示:返回预测类别、识别概率和上传图像预览。
- 训练扩展:各模型训练脚本统一读取 hemocyte 数据集,便于重新训练或替换模型。
5. 模型训练与预测流程
训练阶段首先读取 hemocyte/TRAIN 与 hemocyte/TEST 数据,经过 Resize、Crop、ToTensor、Normalize 等预处理后输入模型训练。训练过程中记录 train_loss、val_accuracy、precision、recall、f1_score 等指标,并保存到各模型目录下的 *_results.xlsx 文件。
预测阶段由前端上传图片,后端根据用户选择加载对应模型的 predict.py,对图片进行同样的预处理,再输出类别索引和预测概率。
6. 效果展示与训练曲线分析
下面的图表从项目现有 *_results.xlsx 文件中随机抽取部分 epoch 与模型进行可视化,选取模型包括:ResNet、VggNet、GoogLeNet、swin_transformer。图表用于展示训练趋势,不代表所有模型的完整训练过程。
配图:部分模型最佳验证准确率对比
配图:随机模型验证准确率趋势
> 配图:随机模型训练损失趋势
从准确率曲线可以观察模型在不同 epoch 下的验证表现变化;从 loss 曲线可以观察训练损失的下降趋势。实际写论文或博客时,可以根据需要替换为指定模型、指定 epoch 或完整训练日志。
7. 项目运行流程
- 进入 djangoProject 目录。
- 安装 Django、PyTorch、torchvision、Pillow、pandas、openpyxl 等依赖。
- 使用 python manage.py runserver 启动系统。
- 在浏览器打开首页,上传血细胞图片并选择模型。
- 查看预测类别、识别概率和图片预览。
8. 项目总结
本项目将 Django Web 系统与 PyTorch 图像分类模型结合,实现了一个完整的血细胞分类应用。项目包含真实数据集、多个可训练模型、预测脚本、结果表格和前端展示页面,适合用于课程设计、毕业设计或深度学习图像分类实战展示。
后续可以继续优化模型融合、增加混淆矩阵展示、补充批量预测功能、完善前端交互,并将系统部署到服务器以支持在线访问。
更多推荐
## 2. 技术栈

> 配图:随机模型训练损失趋势




所有评论(0)