Skip to content

眼部疾病图像分类

  • 来源:noai-train/联合训练/Day4/T4 眼部疾病图像分类 姜惟彬
  • 类型:CV / medical image classification
  • 原始资料:题目描述.mdbaseline-pretrained.ipynbevaluation.pyDay4 ref/T4.../题解.md
  • 题面完整性:完整
  • 解法资料完整性:完整,有出题人题解和无预训练验题解法

题面大意

任务是眼底图像七分类,类别代号为 A, C, D, G, H, M, N。训练集按类别子文件夹组织,测试集按连续 id 命名,要求输出 result.csv,两列 id,label。评估指标是准确率。限制包括 15 分钟内完成训练和预测、禁止读取 answer.csv、只允许使用 EfficientNet-B0 的指定预训练权重,其他预训练模型禁止。

数据特点

眼底图像受拍摄设备、光照、视野、病灶大小影响。数据量较大但时间有限,需要高效训练。医学图像中病灶可能占局部区域,类别间视觉差异细微;同时图像可能有黑边、亮度不均和分辨率混用。测试文件扩展名可能 .png/.jpg 混用,id 与文件路径要正确匹配。

考点

核心考点是受限预训练下的医学图像分类工程。要充分利用 EfficientNet-B0 或从头训练小模型,同时做眼底图像预处理、增强、验证和推理集成。若不用预训练,可以用 CLAHE、中心裁剪、强增强和较小 CNN 提升。

涉及知识点

  • EfficientNet-B0 微调。
  • 医学图像预处理:去黑边、圆形视野裁剪、CLAHE、颜色归一化。
  • 数据增强:翻转、旋转、亮度/对比度、随机裁剪。
  • 类别不平衡处理:加权 loss、采样器。
  • 测试时增强 TTA 和模型选择。

解法思路

预训练路线:加载题目提供的 EfficientNet-B0 权重,替换分类头为 7 类;先冻结 backbone 训练分类头,再解冻部分层小学习率微调。图像预处理包括裁掉黑边、resize 到合适尺寸、归一化;训练时使用随机翻转、旋转、颜色扰动。验证集按类别分层划分,选择验证准确率最好的 checkpoint。

无预训练路线:参考验题解法可使用 CLAHE 增强眼底血管和病灶对比度,再训练较轻 CNN。虽然上限通常低于预训练,但在预训练限制严格或环境不稳定时更可控。

可选/多种解法

EfficientNet-B0 微调:推荐主线,速度和效果平衡。

CLAHE + 小 CNN:无预训练方案,依赖预处理和增强。

多折/多 seed 集成:若时间允许,可训练多个轻量模型或做 TTA 平均。

特殊技巧

眼底图像常有大面积黑边,直接 resize 会浪费分辨率;先检测视野圆并裁剪通常有效。CLAHE 对血管和局部病灶有帮助,但过强会引入噪声。测试文件扩展名混用时应通过 glob 或文件存在性查找,不能假设全是 .png

调参优化

题解 baseline 的可见参数是 EfficientNet-B0、224x224batch_size=64epochs=10lr=1e-4。建议以此为基线调输入尺寸、黑边裁剪/CLAHE、冻结与解冻策略、分类头 dropout、学习率、weight decay、类别权重和 TTA。医学图像小数据很容易过拟合,强增强要控制幅度,旋转/裁剪不能破坏病灶语义。模型选择应按分层验证准确率和混淆矩阵,若少数类召回低,优先调采样和 loss 权重。

注意事项

不能读取 answer.csv,任何访问都视为作弊。只允许 EfficientNet-B0 预训练权重,其他 torchvision 预训练模型即使可用也不合规。最终标签必须是原始字母,不是数字索引。时间限制 15 分钟要求训练流程简洁。

推广意义

这题是医学影像竞赛基础模板:领域预处理 + 合规预训练 + 稳定验证。它强调在规则限制和时间限制下,工程细节往往比模型规模更重要。