1. 项目概述:基于CNN的杏仁损伤检测系统
在农产品质量检测领域,自动化视觉识别技术正逐步取代传统人工检测方式。去年我在参与某坚果加工企业的智能化改造项目时,发现杏仁表面损伤检测的准确率直接影响产品分级和售价。传统人工分拣不仅效率低下(每小时仅能检测约300颗),且不同质检员间的判定标准差异可达15%。这促使我开发了这套基于卷积神经网络(CNN)的杏仁损伤检测系统。
该系统采用Flask+SpringBoot+Vue的全栈架构,核心是通过深度学习实现杏仁图像的自动分类。训练数据集中包含2,400张高清杏仁图像(1,200张正常样本,1,200张损伤样本),经数据增强后扩充至9,600张。实测表明,系统在测试集上的分类准确率达到96.8%,单图处理耗时仅0.15秒,相当于人工效率的120倍。特别适合中小型坚果加工企业部署在产线进行实时质量检测。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体架构方案
系统采用B/S架构设计,分为三个主要层次:
-
前端交互层:Vue3+Element Plus构建的管理界面,包含图像上传、结果展示和用户管理模块。采用Axios进行异步通信,通过WebSocket实现实时检测进度推送。
-
业务逻辑层:
- Spring Boot 2.7提供RESTful API
- Flask 2.0单独封装CNN模型服务
- 使用Redis缓存高频访问的检测结果
-
数据持久层:
- MySQL 8.0存储用户数据和检测记录
- MinIO对象存储管理图像文件
- MyBatis-Plus 3.5实现ORM映射
mermaid复制graph TD
A[用户浏览器] -->|HTTP/WS| B[Nginx]
B -->|API请求| C[SpringBoot]
B -->|静态资源| D[Vue前端]
C -->|模型调用| E[Flask服务]
E --> F[CNN模型]
C -->|数据操作| G[MySQL]
C -->|文件存储| H[MinIO]
2.2 关键技术选型依据
2.2.1 CNN模型架构
经过对比实验,最终采用改进的ResNet18作为基础网络,相比原生版本主要做了三点优化:
- 输入层调整:将原RGB三通道输入改为单通道灰度输入,更突出表面纹理特征
- 卷积核优化:第一层卷积核从7x7改为3x3,保留更多细节信息
- 注意力机制:在最后一个残差块后添加CBAM注意力模块
python复制class CBAM(nn.Module):
def __init__(self, channels, reduction=16):
super().__init__()
self.max_pool = nn.AdaptiveMaxPool2d
