问题陈述
通过使用 Kaggle 的 MRI 数据集的图像分割来预测和定位脑肿瘤。
这是该系列的第二部分。如果你还没有阅读第一部分,我建议你访问使用深度学习进行脑肿瘤检测和定位:第1部分以更好地理解代码,因为这两个部分是相互关联的。
文章地址:https://mp.weixin.qq.com/s/vBsTsVvHjA0gtQy3X1wdmw
我们在 ResNet50 上训练了一个分类模型,该模型使用回调对脑部 MRI 是否有肿瘤进行分类以提高我们的性能。在这一部分,我们将训练一个模型来使用图像分割来定位肿瘤。
先决条件
深度学习
数据集链接:https://www.kaggle.com/mateuszbuda/lgg-mri-segmentation
现在,让我们开始实施第二部分,即构建分割模型来定位肿瘤。
图像分割的目标是在像素级别理解图像。它将每个像素与某个类相关联。图像分割模型产生的输出称为图像的蒙版。
首先,从我们在上一部分创建的数据帧中选择蒙版值为 1 的记录,因为只有肿瘤存在,我们才能对其进行定位。
# Get the dataframe containing MRIs which have masks associated with them.
brain_df_mask = brain_df[brain_df['mask'] == 1]
brain_df_mask.shape
输出:(1373, 4)
将数据拆分为训练和测试数据集。首先,我们将整个数据拆分为训练和验证数据,然后将一半的验证数据拆分为测试数据。
from sklearn.model_selection import train_test_split
X_train, X_val = train_test_split(brain_df_mask, test_size=0.15)
X_test, X_val = train_test_split(X_val, test_size=0.5)
我们将再次使用DataGenerator 生成虚拟数据,即training_generator 和validation_generator。为此,我们将首先创建要传递到生成器的图像和蒙版路径的列表。
train_ids = list(X_train.image_path)
train_mask = list(X_train.mask_path)
val_ids =