Kaggle竞赛中,如何进行超声图像乳腺癌有效分割?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1142个文字,预计阅读时间需要5分钟。
今日将分享乳腺癌超声分割实现版本,方便大家学习理解整个过程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧!
一、背景
乳腺癌是女性常见的恶性肿瘤,早期诊断和治疗对提高患者生存率至关重要。超声分割是乳腺癌诊断中的重要环节,通过对乳腺组织进行分割,可以提取感兴趣区域,辅助医生进行诊断。二、乳腺癌超声分割实现
1.数据预处理
- 读取超声图像 - 图像灰度化 - 图像滤波 - 图像缩放2. 超声分割方法 - 采用基于深度学习的分割方法,如U-Net、UNet++等
3. 模型训练 - 数据增强 - 模型训练 - 模型评估
4. 模型部署 - 模型导出 - 模型加载 - 实时分割
5. 结果分析 - 分割结果可视化 - 分割结果评估
三、步骤结果
1.数据预处理
- 图像灰度化 - 图像滤波 - 图像缩放2. 超声分割方法 - 采用U-Net模型进行分割
3. 模型训练 - 数据增强 - 模型训练 - 模型评估
4. 模型部署 - 模型导出 - 模型加载 - 实时分割
5. 结果分析 - 分割结果可视化 - 分割结果评估
感兴趣的朋友,快来动手试一试吧!
今天将分享乳腺癌超声分割实现版本,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
一、背景
乳腺癌是全世界女性最常见的死亡原因之一。早期发现有助于减少早期死亡人数。
乳腺超声数据包括 25 至 75 岁女性的乳房超声图像,共有600 名女性患者。该数据集由 780 张图像组成,平均图像大小为 500*500 像素。图片为PNG格式。提供了标注金标准图像与原始图像。图像分为三类,即正常、良性和恶性。数据下载请点击原文链接。
二、超声图像分析与预处理
(1)、780张乳腺超声数据及标注数据可以下载获取,其中只有647张乳腺超声数据有分割标注。
(2)、首先将数据分割成训练集合测试集,按照常规分割比例标准,80%用来训练,20%用来测试,这样就有520例数据用来训练,127例用来测试。
(3)、由于520例训练数据还是不足,需要做数据增强操作,对训练数据进行2倍数据增强操作(平移,旋转,翻转等操作),一共得到1560例数据。
(4)、图像与mask进行归一化操作,直接除以255,归一化到0-1范围。
三、分割网络
(1)、搭建VNet2d模型,网络输入大小是(512,512)。
具体实现可以参考Tensorflow入门教程(十九)——基于VNet的前列腺分割案例。
(2)、loss采用的是二分类的dice函数。
代码实现如下:
def __get_cost(self, cost_name, Y_gt, Y_pred): H, W, C = Y_gt.get_shape().as_list()[1:] if cost_name == <span data-raw-text="" "="" data-textnode-index-1654842920379="27" data-index-1654842920379="547" style="margin: 0px; padding: 0px;">"dice coefficient<span data-raw-text="" "="" data-textnode-index-1654842920379="27" data-index-1654842920379="564" style="margin: 0px; padding: 0px;">": smooth = 1e-5 pred_flat = tf.reshape(Y_pred, [-1, H * W * C]) true_flat = tf.reshape(Y_gt, [-1, H * W * C]) intersection = 2 * tf.reduce_sum(pred_flat * true_flat, axis=1) + smooth denominator = tf.reduce_sum(pred_flat, axis=1) + tf.reduce_sum(true_flat, axis=1) + smooth loss = -tf.reduce_mean(intersection / denominator) return loss具体实现可以参考Tensorflow入门教程(三十四)——常用两类图像分割损失函数。
(3)、分割损失结果和精度经过如下图所示。
(4)、测试图像结果对比
下图是部分测试图像分割结果与金标准结果对比效果图,中间是金标准,右边是预测结果。在测试数据上可以得到平均IOU分数为0.63左右,平均dice分数为0.74。
为了方便大家更高效地学习,我将代码进行了整理并更新到github上,点击原文链接即可访问。
本文共计1142个文字,预计阅读时间需要5分钟。
今日将分享乳腺癌超声分割实现版本,方便大家学习理解整个过程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧!
一、背景
乳腺癌是女性常见的恶性肿瘤,早期诊断和治疗对提高患者生存率至关重要。超声分割是乳腺癌诊断中的重要环节,通过对乳腺组织进行分割,可以提取感兴趣区域,辅助医生进行诊断。二、乳腺癌超声分割实现
1.数据预处理
- 读取超声图像 - 图像灰度化 - 图像滤波 - 图像缩放2. 超声分割方法 - 采用基于深度学习的分割方法,如U-Net、UNet++等
3. 模型训练 - 数据增强 - 模型训练 - 模型评估
4. 模型部署 - 模型导出 - 模型加载 - 实时分割
5. 结果分析 - 分割结果可视化 - 分割结果评估
三、步骤结果
1.数据预处理
- 图像灰度化 - 图像滤波 - 图像缩放2. 超声分割方法 - 采用U-Net模型进行分割
3. 模型训练 - 数据增强 - 模型训练 - 模型评估
4. 模型部署 - 模型导出 - 模型加载 - 实时分割
5. 结果分析 - 分割结果可视化 - 分割结果评估
感兴趣的朋友,快来动手试一试吧!
今天将分享乳腺癌超声分割实现版本,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
一、背景
乳腺癌是全世界女性最常见的死亡原因之一。早期发现有助于减少早期死亡人数。
乳腺超声数据包括 25 至 75 岁女性的乳房超声图像,共有600 名女性患者。该数据集由 780 张图像组成,平均图像大小为 500*500 像素。图片为PNG格式。提供了标注金标准图像与原始图像。图像分为三类,即正常、良性和恶性。数据下载请点击原文链接。
二、超声图像分析与预处理
(1)、780张乳腺超声数据及标注数据可以下载获取,其中只有647张乳腺超声数据有分割标注。
(2)、首先将数据分割成训练集合测试集,按照常规分割比例标准,80%用来训练,20%用来测试,这样就有520例数据用来训练,127例用来测试。
(3)、由于520例训练数据还是不足,需要做数据增强操作,对训练数据进行2倍数据增强操作(平移,旋转,翻转等操作),一共得到1560例数据。
(4)、图像与mask进行归一化操作,直接除以255,归一化到0-1范围。
三、分割网络
(1)、搭建VNet2d模型,网络输入大小是(512,512)。
具体实现可以参考Tensorflow入门教程(十九)——基于VNet的前列腺分割案例。
(2)、loss采用的是二分类的dice函数。
代码实现如下:
def __get_cost(self, cost_name, Y_gt, Y_pred): H, W, C = Y_gt.get_shape().as_list()[1:] if cost_name == <span data-raw-text="" "="" data-textnode-index-1654842920379="27" data-index-1654842920379="547" style="margin: 0px; padding: 0px;">"dice coefficient<span data-raw-text="" "="" data-textnode-index-1654842920379="27" data-index-1654842920379="564" style="margin: 0px; padding: 0px;">": smooth = 1e-5 pred_flat = tf.reshape(Y_pred, [-1, H * W * C]) true_flat = tf.reshape(Y_gt, [-1, H * W * C]) intersection = 2 * tf.reduce_sum(pred_flat * true_flat, axis=1) + smooth denominator = tf.reduce_sum(pred_flat, axis=1) + tf.reduce_sum(true_flat, axis=1) + smooth loss = -tf.reduce_mean(intersection / denominator) return loss具体实现可以参考Tensorflow入门教程(三十四)——常用两类图像分割损失函数。
(3)、分割损失结果和精度经过如下图所示。
(4)、测试图像结果对比
下图是部分测试图像分割结果与金标准结果对比效果图,中间是金标准,右边是预测结果。在测试数据上可以得到平均IOU分数为0.63左右,平均dice分数为0.74。
为了方便大家更高效地学习,我将代码进行了整理并更新到github上,点击原文链接即可访问。

