Appearance
眼部疾病图像分类
- 来源:
noai-train/联合训练/Day4/T4 眼部疾病图像分类 姜惟彬 - 类型:CV / medical image classification
- 原始资料:
题目描述.md、baseline-pretrained.ipynb、evaluation.py、Day4 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、224x224、batch_size=64、epochs=10、lr=1e-4。建议以此为基线调输入尺寸、黑边裁剪/CLAHE、冻结与解冻策略、分类头 dropout、学习率、weight decay、类别权重和 TTA。医学图像小数据很容易过拟合,强增强要控制幅度,旋转/裁剪不能破坏病灶语义。模型选择应按分层验证准确率和混淆矩阵,若少数类召回低,优先调采样和 loss 权重。
注意事项
不能读取 answer.csv,任何访问都视为作弊。只允许 EfficientNet-B0 预训练权重,其他 torchvision 预训练模型即使可用也不合规。最终标签必须是原始字母,不是数字索引。时间限制 15 分钟要求训练流程简洁。
推广意义
这题是医学影像竞赛基础模板:领域预处理 + 合规预训练 + 稳定验证。它强调在规则限制和时间限制下,工程细节往往比模型规模更重要。