前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TN-SCUI2020挑战赛详细讲解

TN-SCUI2020挑战赛详细讲解

作者头像
医学处理分析专家
发布2020-07-23 18:28:25
7190
发布2020-07-23 18:28:25
举报

今天将分享甲状腺超声结节二值分割和二值分类的完整实现过程并提供训练好的模型和在测试数据上的提交结果成绩,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。

一、超声图像分析与预处理

(1)、3644张超声结节原始数据和标注数据及训练标签文件可以在官网上下载获取到,下载下来后如下所示。测试数据一共有910张数据,目前也可以在官网上下载了。

(2)、由于原始数据大小不一样,这里对图像做统一大小设置,都设置成512x512的大小。

(3)、使用全部的3644例数据来训练,为了增加模型鲁棒性,可以对原始数据做数据增强处理,但是在这里就不做数据增强操作了,直接在原始数据量上进行分割和分类。

(4)、原始图像和金标准Mask图像的预处理还需要做归一化操作,统一都归一化到(0,1)。

二、分割网络

(1)、搭建VNet2d模型,网络输入大小是(512,512)。

具体实现可以参考Tensorflow入门教程(十九)——基于VNet的前列腺分割案例

(2)、loss采用的是二分类的dice函数。

代码实现如下:

代码语言:javascript
复制
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="27" data-index="547" class="character">"dice coefficient<span data-raw-text="" "="" data-textnode-index="27" data-index="564" class="character">":
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)、分割损失结果和精度经过如下图所示。

三、分类网络

(1)、搭建ResNet2d模型,网络输入大小是(512,512),网络比较基础就不多说了。

(2)、loss采用的是常见的二分类交叉熵损失函数。

(3)、分类损失结果和精度经过如下图所示。

四、测试数据结果

在910例数据上进行测试,测试数据结果排名在113名。

为了方便大家更高效地学习,我将代码进行了整理并更新到github上,点击原文链接即可访问。此外训练好的模型文件已经上传至百度云盘:链接:https://pan.baidu.com/s/15E-RvaqSLdDMBCUZoGTrDA

提取码:hszn。

如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果有任何问题,随时给我留言我会及时回复的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 最新医学影像技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档