本项目针对生物、医学及食品安全领域的菌落计数痛点,开发了一套基于深度学习的目标检测系统。本项目对比了基于 CNN 的 YOLOv11 与基于 Transformer 的 RT-DETR 模型,实现了高精度、客观标准化的自动计数。
- 痛点:传统人工目视计数耗时耗力、主观误差大且不可重复。
- 目标:利用计算机视觉技术实现高通量、高精度的自动化计数。
- 数据集:基于 AGAR Dataset,选取了 1900 张有菌样本和 200 张无菌样本进行训练与验证。
-
自动化脚本:编写
data_prepare.py,实现 AGAR JSON 标签向 YOLO 格式(归一化坐标)的无损转换。 -
坐标转换公式:
$$x_{center} = \frac{x_{tl} + w/2}{Img_Width}, \quad y_{center} = \frac{y_{tl} + h/2}{Img_Height}$$ - 数据增强:采用 Mosaic 增强(提高小目标敏感度)和 HSV 颜色空间调整。
- YOLOv11n:代表经典的 CNN 架构,兼顾精度与推理速度。
- RT-DETR:引入 Transformer 的全局建模能力,优化密集场景下的重叠菌落识别。
- OpenCV:传统图像处理,体现深度学习的优势。
- 5-Fold 交叉验证:将 2100 张样本分为 5 组,确保模型评估的严谨性和泛化能力。
- 硬件支持:利用 NVIDIA GeForce RTX 4060 GPU 进行训练优化。
| 模型 | mAP@0.5 | MAE (平均计数误差) | 训练速度 |
|---|---|---|---|
| RT-DETR | 0.9634 | 3.22 | 慢 (15s/epoch) |
| YOLOv11n | 0.9024 | 7.57 | 快 (5s/epoch) |
| 菌种 | 实际总数 | AI 计数 | 表现分析 |
|---|---|---|---|
| 大肠杆菌 (E.coli) | 2085 | 2207 | 背景噪声干扰较多 |
| 枯草芽孢杆菌 (B.subtilis) | 666 | 714 | 表现稳定,漏报极低 |
| 白色念珠菌 (C.albicans) | 1897 | 1034 | 漏报率约 50%,颜色淡导致不敏感 |
- 优势:RT-DETR 在密集小目标场景下表现出极强的稳定性,MAE 远低于 YOLO。
- 局限性:对特征不明显的菌种(如白色念珠菌)及培养皿边缘的误报仍有改进空间。
- 未来方向:计划引入更精细的图像预处理算法(如直方图均衡化)以增强浅色菌落特征。
core/data_prepare.py: 坐标转换与数据预处理脚本。core/train.py: 模型训练逻辑。results/: 存放混淆矩阵、F1 曲线及检测对比图。representation/: 包含本项目详细的 汇报 PDF。
本项目为《模式识别与机器学习》课程大作业成果。