在这个项目中,我们的目标是实现在 检测癌症转移一文中提出的多尺度转移分类模型。
数据集
我们使用千兆像素幻灯片数据。从主数据集中采集了一组 22 张具有显着肿瘤的载玻片。每张幻灯片都有一个相应的掩码,用于注释肿瘤区域。我们可以访问大约 9 个放大级别。
每个多尺度图像都存储在另一个顶部,具有一致的坐标系,以允许用户访问任何放大率的任何图像片段。
数据
作为生成标记训练数据的第一步,我们使用滑动窗口方法在更高的缩放级别上滑动并创建滑动段的标记图像,我们稍后将使用这些图像进行训练和测试。
我们使用论文中遵循的方法,我们定义了一个中心窗口,如果中心包含至少 1 个标记为肿瘤的像素,我们将图像标记为包含肿瘤细胞。
窗口大小和中心大小分别选择为 80 和 50。 最后,为了使我们的训练数据具有多尺度,我们创建了原始图像片段的类似大小的缩小版本。 缩小版本用于为分类模型提供宏观级别的上下文。 我们使用多尺度方法生成了数据,并使用了两种不同的放大倍数来准备数据集。
代码
数据增强
我们使用了各种数据增强技术来补充我们的训练数据并使我们的模型更加健壮。
正交旋转和翻转
我们引入了正交增强来引入旋转不变性,因为可以在任何这些方向检查幻灯片
随机正交旋转
随机水平和垂直翻转
颜色扰动
为了使我们的模型对光照和染色强度具有鲁棒性,我们对颜色进行了如下扰动。
最大增量为 64/255 的亮度
最大增量为 0.25 的饱和度
色相最大增量为 0.04
对比最大增量为 0.75
方法
我们利用多塔 Inception V3 模型来利用多尺度图像进行分类。 我们只对顶层进行了微调,因为这些层可以学习更高级别的特征,并且可以通过基于我们的数据集对这些层进行微调来大大改善结果。 阅读 Google AI 的这篇博文了解更多详情。
使用的架构:Inceptionv3(多尺度)针对层数 > 150 进行了微调
初始权重:图像网络
使用的损失:二元交叉熵损失
放大倍数:2 级和 3 级
结果
我们最终基于新的肿瘤载玻片测试了我们的模型。在预处理肿瘤切片并进行预测后,我们使用模型输出创建了一个热图。
我们看到所有的肿瘤区域都被正确识别。
完整代码
详情参阅 - 亚图跨际