如何用深度学习进行CT影像肺结节探测

 上传我的文档
 下载
 收藏
本店资源来源于互联网,版权为原作者所有,请下载试用者二十四小时后删除. 试用后请购买正版的资源。若侵犯到您的版权, 请提出指正, 我们将立即删除。谢谢!!
 下载此文档
应用于平扫CT图像肺结节检测的深度学习方法综述_胡伟俭
下载积分:380
内容提示:应用于平扫CT图像肺结节检测的深度学习方法综述_胡伟俭
文档格式:PDF|
浏览次数:26|
上传日期: 20:51:31|
文档星级:
全文阅读已结束,如果下载本文需要使用
 380 积分
下载此文档
该用户还上传了这些文档
应用于平扫CT图像肺结节检测的深度学习方法综述_胡伟俭
关注微信公众号如何用深度学习进行CT影像肺结节探测
如何用深度学习进行CT影像肺结节探测
近期宜远智能参加阿里天池医疗AI大赛,用3D Faster RCNN模型在CT影像的肺结节探测上,取得了较好的成绩,特别是在计算资源充足的情况下,模型效果表现优异。这是他们的经验分享(/competition/new_articleDetail.html?raceId=231601&postsId=2898&from=part ),末尾还附有代码开源地址。 1.数据预处理首先用SimpleITK把mhd图片读入,对每个切片使用Gaussian filter然后使用阈值-600把肺部图片二值化,然后再分析该切片的面积,去掉面积小于30mm2的区域和离心率大于0.99的区域,找到3D的连通区域。只保留0.68L到8.2L体积的区域,并且如果大于6000 mm2的区域到切片的中心区域的距离大于62mm也删除该连通区。最后只留下一个最大的连通区域。左边是原始图,右边是切完肺的。在实际中预处理中,我们可视化了每个肺的部分切片,存在一些bad case。主要有以下3种,我们也对这3种情况做了优化:把肺边缘结节切掉。因为阈值导致的,把二值化环境-600改成-150有改善。切出来全部为黑的(未找到任何肺部区域)。有些ct图是从头部开始扫描的,导致影响了连通区域判断,需要手动查看该mhd文件,看里面的从第个切片到第几个切片是肺部,在做完二值化操作后,人为把前面和后面的切片全部设置为0。切出来只有一侧肺部情况。有些患者两个肺的大小差别比较大,需要调整阈值,放宽阈值标注,把大于6000 mm2的区域到切片的中心区域的距离大于62mm也删除该连通区,改为大于1500 mm2的区域到切片的中心区域的距离大于92mm也删除该连通区。并且在最后一步,不只保留最大的连通区,同时保留最大的两个连通区。2.模型网络结构我们的网络如图所示,整体上是采用Unet+Resnet的思想。里面每个Resnet Block都是由多个卷积层和bn层和relu层组成的。我们只展示主体结构(整体深度大概150多层):3.整体优化思路3.1
数据优化 肺部切割优化:这块其实没有完美的方法能把所有的肺一次性都切好。具体的思路我们已经在第1章数据预处理部分写出来了:我们会先切一遍,然后将切肺中切的不好的,再调参数重新切一次。10mm 以下结节的训练数据增强。我们在没做数据增强的情况下跑出来的模型,在验证集上漏掉了不少10mm以下的结节,所以对这部分的结节做了增强。3.2 工业界优化思路:模型架构 & 模型网络我们的优化思路非常的工业界,用更多的计算资源,和更复杂的模型架构,并不把大量的时间用在调模型网络上面。3.3 层次化Hard Mining业界两套网络的做法比较普遍,比如用Unet切割或Faster RCNN检测,用3D CNN分类,如下图所示。我们用的是如下统一的一套模型架构,即3D Faster RCNN的RPN网络,没有后续的全连接做分类,也并没有再在后面接一套3D CNN来做降假阳。能减少需要调节的网络参数。该hard mining的过程,其实就是用上一层的模型作为下一层的输入,每一层的训练数据都选取比上一层更难分的。这套架构,无需2套网络,只需要选择一套较深的网络。根据我们的经验,采取层次化模型训练,第二层模型froc能比第一层效果提升0.05,第三层能比第二层提升0.02。3.4 LOSS 函数的设计在计算loss函数的时候,我们做了2点优化。1.在使用hard mining的时候,每个batchsize里面负例的个数会明显多于正例。为了防止算loss的时候被负例主导。我们将loss函数分成3个部分,负例的loss,正例的loss和边框的loss。2.在上一节提到的层次化hard mining,我们在最后一层训练模型的时候,会修改loss函数的计算,对于分错的负例和正例,做加权。这个思路和focal loss是很像的。比如:红框里面的部分,本来是负例,却以很大的概率被分成正例,这部分在算loss的时候权值就大些。红框外面的部分权值就小些。4.本次比赛的关键点总结:1) 解决了基于Intel extended Caffe的150多层深度网络的 3D Faster RCNN RPN网络收敛问题。可以从2个方向来解决(线下Phi卡平台均已验证过)。a)将 drop out设置为 0.1。缺点是会容易过拟合。b)先训练一个crop size为32的模型用这个模型做pre train model,训练crop size 64的模型依次类推。直到完成crop size为128的模型训练由于时间关系,我们并未比较这2种思路的效果。比赛中使用的是第1个思路,收敛的更快些。2) 提出层次化Hard Mining的训练框架。并没有采用常见的,unet做分割+3D CNN降假阳 或者 2d faster rcnn做检测+3D CNN降假阳的思路。我们只用了一套网络。减少了需要调节的网络参数。3) 重新设计了loss函数,防止负例主导loss的计算, 并且在降低loss的过程中,更聚焦于分错的训练样本。5. 经验总结:我们团队虽然过往深度学习架构经验多,但对医学影像处理的know how属于尚在探索之中。所以,我们的优化思路,是用更多的计算资源,和更复杂的模型架构,来弥补没有专用模型网络积累的短板。在第一轮比赛时通过调用比较充足的计算资源时效果比较显著,但在第二轮限定计算资源的多CPU的框架上,比较受限于计算资源及时间。在计算资源比较充沛的情况下,选取比较深的Resnet效果会明显。在资源受限的实际场合或者现实的生产环境,我们有两点启发:学会认同重复造轮子的基础性工作。第一轮比赛我们是pytorch框架,第二轮按要求在caffe上实现,特别是在Intel Extended Caffe对3D支持有限,重写了不少很基础的模块,这种貌似重复造轮子的工作,对我们提出了更高的要求,但也锻炼了我们深入到框架底层的能力,从而对不同框架的性能特点有更深的认识,这种重写甚至还因此帮我们找到我们第一版pytorch代码里detect部分存在的一个bug。根据资源灵活优化训练策略乃至模型。我们的3D Faster RCNN 初期在Extended Caffe 上过于耗时,但因为在计算资源充足环境下我们的做法比较有效,所以没有去考虑一些更快的检测算法,比如SSD、YOLO等,这点也算是路径依赖的教训了。代码开源说明:我们在GitHub (/YiYuanIntelligent/3DFasterRCNN_LungNoduleDetector ) 开源了核心代码,特别是将我们基于Intel Extended Caffe的3D Faster RCNN RPN训练模块发布到社区,相信这也是业内首个Intel extended Caffe版的150层网络3D Faster RCNN开源,希望对Intel 的深度学习社区用户有帮助。该代码对医学影像的处理也展示了有效性,相信对医学影像领域AI实践的发展,对技术如何造福大众,能起到一些帮助。通过开源,希望有同行提出性能优化、功能扩充等的修改建议,互相促进。宜远智能是一家专注于大健康领域的AI创新企业,团队由多名AI博士、来自腾讯的算法高手、医疗领域专家构成。目前提供医学影像图像分析平台及服务。还提供专业皮肤AI方案以及基于阿里云市场的测肤API平台。对我们的开源代码及相关医学影像处理有任何疑问、建议、合作与求职意向,可联系:tkots_
JohnnyGamblercsshshi@comp.hkbu.edu.hk
施少怀End.
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
百家号 最近更新:
简介: 大数据行业观察者和实践者
作者最新文章摘要:近期宜远智能参加阿里天池医疗AI大赛,用3DFasterRCNN模型在CT影像的肺结节探测上,取得了较好的成绩,特别是在计算资源充足的情况下,模型效果表现优异。这是他们的经验分享(https://ti
近期宜远智能参加阿里天池医疗AI大赛,用3D Faster RCNN模型在CT影像的肺结节探测上,取得了较好的成绩,特别是在计算资源充足的情况下,模型效果表现优异。这是他们的经验分享(/competition/new_articleDetail.html?raceId=231601&postsId=2898&from=part ),末尾还附有代码开源地址。 1.数据预处理首先用SimpleITK把mhd图片读入,对每个切片使用Gaussian filter然后使用阈值-600把肺部图片二值化,然后再分析该切片的面积,去掉面积小于30mm2的区域和离心率大于0.99的区域,找到3D的连通区域。只保留0.68L到8.2L体积的区域,并且如果大于6000 mm2的区域到切片的中心区域的距离大于62mm也删除该连通区。最后只留下一个最大的连通区域。左边是原始图,右边是切完肺的。在实际中预处理中,我们可视化了每个肺的部分切片,存在一些bad case。主要有以下3种,我们也对这3种情况做了优化:把肺边缘结节切掉。因为阈值导致的,把二值化环境-600改成-150有改善。切出来全部为黑的(未找到任何肺部区域)。有些ct图是从头部开始扫描的,导致影响了连通区域判断,需要手动查看该mhd文件,看里面的从第个切片到第几个切片是肺部,在做完二值化操作后,人为把前面和后面的切片全部设置为0。切出来只有一侧肺部情况。有些患者两个肺的大小差别比较大,需要调整阈值,放宽阈值标注,把大于6000 mm2的区域到切片的中心区域的距离大于62mm也删除该连通区,改为大于1500 mm2的区域到切片的中心区域的距离大于92mm也删除该连通区。并且在最后一步,不只保留最大的连通区,同时保留最大的两个连通区。2.模型网络结构我们的网络如图所示,整体上是采用Unet+Resnet的思想。里面每个Resnet Block都是由多个卷积层和bn层和relu层组成的。我们只展示主体结构(整体深度大概150多层):3.整体优化思路3.1
数据优化 肺部切割优化:这块其实没有完美的方法能把所有的肺一次性都切好。具体的思路我们已经在第1章数据预处理部分写出来了:我们会先切一遍,然后将切肺中切的不好的,再调参数重新切一次。10mm 以下结节的训练数据增强。我们在没做数据增强的情况下跑出来的模型,在验证集上漏掉了不少10mm以下的结节,所以对这部分的结节做了增强。3.2 工业界优化思路:模型架构 & 模型网络我们的优化思路非常的工业界,用更多的计算资源,和更复杂的模型架构,并不把大量的时间用在调模型网络上面。3.3 层次化Hard Mining业界两套网络的做法比较普遍,比如用Unet切割或Faster RCNN检测,用3D CNN分类,如下图所示。我们用的是如下统一的一套模型架构,即3D Faster RCNN的RPN网络,没有后续的全连接做分类,也并没有再在后面接一套3D CNN来做降假阳。能减少需要调节的网络参数。该hard mining的过程,其实就是用上一层的模型作为下一层的输入,每一层的训练数据都选取比上一层更难分的。这套架构,无需2套网络,只需要选择一套较深的网络。根据我们的经验,采取层次化模型训练,第二层模型froc能比第一层效果提升0.05,第三层能比第二层提升0.02。3.4 LOSS 函数的设计在计算loss函数的时候,我们做了2点优化。1.在使用hard mining的时候,每个batchsize里面负例的个数会明显多于正例。为了防止算loss的时候被负例主导。我们将loss函数分成3个部分,负例的loss,正例的loss和边框的loss。2.在上一节提到的层次化hard mining,我们在最后一层训练模型的时候,会修改loss函数的计算,对于分错的负例和正例,做加权。这个思路和focal loss是很像的。比如:红框里面的部分,本来是负例,却以很大的概率被分成正例,这部分在算loss的时候权值就大些。红框外面的部分权值就小些。4.本次比赛的关键点总结:1) 解决了基于Intel extended Caffe的150多层深度网络的 3D Faster RCNN RPN网络收敛问题。可以从2个方向来解决(线下Phi卡平台均已验证过)。a)将 drop out设置为 0.1。缺点是会容易过拟合。b)先训练一个crop size为32的模型用这个模型做pre train model,训练crop size 64的模型依次类推。直到完成crop size为128的模型训练由于时间关系,我们并未比较这2种思路的效果。比赛中使用的是第1个思路,收敛的更快些。2) 提出层次化Hard Mining的训练框架。并没有采用常见的,unet做分割+3D CNN降假阳 或者 2d faster rcnn做检测+3D CNN降假阳的思路。我们只用了一套网络。减少了需要调节的网络参数。3) 重新设计了loss函数,防止负例主导loss的计算, 并且在降低loss的过程中,更聚焦于分错的训练样本。5. 经验总结:我们团队虽然过往深度学习架构经验多,但对医学影像处理的know how属于尚在探索之中。所以,我们的优化思路,是用更多的计算资源,和更复杂的模型架构,来弥补没有专用模型网络积累的短板。在第一轮比赛时通过调用比较充足的计算资源时效果比较显著,但在第二轮限定计算资源的多CPU的框架上,比较受限于计算资源及时间。在计算资源比较充沛的情况下,选取比较深的Resnet效果会明显。在资源受限的实际场合或者现实的生产环境,我们有两点启发:学会认同重复造轮子的基础性工作。第一轮比赛我们是pytorch框架,第二轮按要求在caffe上实现,特别是在Intel Extended Caffe对3D支持有限,重写了不少很基础的模块,这种貌似重复造轮子的工作,对我们提出了更高的要求,但也锻炼了我们深入到框架底层的能力,从而对不同框架的性能特点有更深的认识,这种重写甚至还因此帮我们找到我们第一版pytorch代码里detect部分存在的一个bug。根据资源灵活优化训练策略乃至模型。我们的3D Faster RCNN 初期在Extended Caffe 上过于耗时,但因为在计算资源充足环境下我们的做法比较有效,所以没有去考虑一些更快的检测算法,比如SSD、YOLO等,这点也算是路径依赖的教训了。代码开源说明:我们在GitHub (/YiYuanIntelligent/3DFasterRCNN_LungNoduleDetector ) 开源了核心代码,特别是将我们基于Intel Extended Caffe的3D Faster RCNN RPN训练模块发布到社区,相信这也是业内首个Intel extended Caffe版的150层网络3D Faster RCNN开源,希望对Intel 的深度学习社区用户有帮助。该代码对医学影像的处理也展示了有效性,相信对医学影像领域AI实践的发展,对技术如何造福大众,能起到一些帮助。通过开源,希望有同行提出性能优化、功能扩充等的修改建议,互相促进。宜远智能是一家专注于大健康领域的AI创新企业,团队由多名AI博士、来自腾讯的算法高手、医疗领域专家构成。目前提供医学影像图像分析平台及服务。还提供专业皮肤AI方案以及基于阿里云市场的测肤API平台。对我们的开源代码及相关医学影像处理有任何疑问、建议、合作与求职意向,可联系:tkots_
JohnnyGamblercsshshi@comp.hkbu.edu.hk
施少怀End.
本文仅代表作者观点,不代表百度立场。本文系作者授权百度百家发表,未经许可,不得转载。
分享到微信朋友圈
打开微信,点击 “ 发现 ”
使用 “ 扫一扫 ” 即可将网页分享至朋友圈。
扫一扫在手机阅读、分享本文
百家号作者平台APP
扫码下载安卓客户端
便捷管理文章信息
随时查看文章收益近年,从图像中识别出对象物的&图像识别技术&的性能借助&深度学习&得以迅速提高。总部位于美国旧金山的新兴企业Enlitic将深度学习运用到了癌症等恶性肿瘤的检测中。该公司开发的系统的癌症检出率高于放射技师。深度学习是使用模拟人脑结构的&深度神经网络&的一种机器学习方法,也可用于语音识别及自然语音处理等,但取得显着成果的要数图像识别领域。
测试图像识别技术性能的竞赛中,采用图像数据库&ImageNet&的&ILSVRC&(ImageNet大规模视觉识别挑战赛)最为有名。在谷歌、英特尔、高通、腾讯等知名IT企业参加的2015年的ILSVRC中,微软研究院获胜。此次竞赛的测试内容是能否对1000种图片进行准确分类,微软的分类错误率只有3.6%。
过去几届竞赛的分类错误率最小值方面,2014年为7.4%,2013年为11.1%,2012年为15.3%。在这项赛事中,采用深度学习的队伍获胜是在2012年。当时,15.3%的分类错误率已低得&让人震惊&。仅仅3年之后,获胜的微软研究院就提出,基于深度学习的图像识别技术的识别精度能够超过人类。
不过,Enlitic公司的数据分析师Rewon&Child(图1)表示,&ImageNet的竞赛只是辨认纵224像素&横224像素的图片上的物体是猫还是狗,这个任务并不难&。他还指出,&我们正在挑战更难的图像识别&。
图1:Enlitic公司数据分析师Rewon&Child
Enlitic要挑战的更难的图像识别是:从X光、CT扫描、超声波检查、MRI等的图像中找出癌症等恶性肿瘤。Child解释说:&X光照片的分辨率为纵3000像素&横2000像素。其中的恶性肿瘤的尺寸为纵3像素&横3像素左右。从非常大的图像上判断一个很小的阴影状物体是不是恶性肿瘤,是非常难的任务&。
从X光照片及CT扫描图像中找出恶性肿瘤的图像识别软件是利用深度学习的方法之一&Convolutional&Neural&Network(ConvNet,卷积神经网络)&开发的。ConvNet对放射技师检查过有无恶性肿瘤及肿瘤位置等的大量医疗图像数据进行机器学习,自动总结出代表恶性肿瘤形状等的&特征&以及重视哪些特征能够判断有无恶性肿瘤等&模式&。ConvNet将找出的模式应用于新的医疗图像,便可知道图像中是否存在恶性肿瘤。
据Enlitic介绍,该公司开发的恶性肿瘤检测系统的精度超过放射技师。Enlitic使用肺癌相关图像数据库&LIDC(Lung&Image&Database&Consortium)&和&NLST(National&Lung&Screening&Trial)&进行了验证,结果发现,该公司开发的系统的肺癌检出精度比一名放射技师检查肺癌的精度高5成以上。
Enlitic将向放射技师提供恶性肿瘤检出系统(图2)。在美国,放射技师受雇于医疗图像诊断服务公司和医疗机构,这些企业和机构将成为Enlitic公司的客户。2015年10月,澳大利亚的医疗图像诊断服务公司Capitol&Health宣布采用Enlitic的系统。这是Enlitic公司的系统第一次被采用。同时,Capitol&Health对Enlitic出资1000万美元。
图2:使用Enlitic的系统检测恶性肿瘤的示意图&出处:美国Enlitic公司
Child介绍说,&放射技师诊断1名患者的CT扫描图像需要10~20分钟,写诊断报告需要10分钟左右。而如果采用本公司的系统,可以使CT扫描图像的诊断时间减半&。他还预测道,&虽说采用图像识别技术就可以判断有无恶性肿瘤,但鉴于政府规定等,医疗机构不可能不用放射技师。但是,如果放射技师的工作效率增加到原来的2倍,发展中国家的患者就能更方便地使用CT扫描了&。
医疗外行人开发的出色的应用
关于Enlitic公司,笔者非常感兴趣的是该公司的成员。据Child介绍,该公司的数据分析师都是没有医疗工作经历的人。Child本人是在美国耶鲁大学专修的政治学,学习了使用统计学等计量方法分析社会的&计量社会科学&。
该公司的数据分析师全是从&Kaggle&网站招聘的。Kaggle是给全球的数据分析师提出数据分析相关课题,并比较研究成果的&数据预测竞赛&网站。课题均设有奖金,数据分析师解决课题便可获得奖金。
在Kaggle上提出课题的是希望将数据分析委托给外部的企业以及想寻找优秀数据分析师的企业。Enlitic在Kaggle上提出课题,并聘用了完美解决了该课题的分析师。跟医疗知识没有关系。
Enlitic公司为何选择Kaggle其实,Enlitic的创始人兼CEO(首席执行官)Jeremy&Howard也曾是Kaggle的总裁兼首席分析师。也就是说,Enlitic公司也是知道通过Kaggle可以找到优秀数据分析师的Howard,为了充分利用数据分析师开展新业务而成立的公司。
数据分析师已开始改变产业
Child说,&Howard想创建一家能让优秀数据分析师持续工作25年的企业,因此创办了Enlitic公司。听说他设想的业务除了医疗图像诊断外,还考虑过寻找石油和天燃气等&。数据分析师站在最前沿,然后才有应用领域。
Child说,&Kaggle给每个人都提供机会,只要能写出色的代码,能力就会得到认可,这是一个非常公平、民主的地方&。聚集在这里的数据分析师在完全没有&业务知识&的领域开发应用软件,已开始取得超越现有内行人的成果。通过Enlitic公司,不仅能预测医疗行业,还能预测整个产业界的未来,从这个意义上说,该公司也是非常重要的存在。
为您推荐的相关阅读
科讯医疗网版权声明:
凡注明来源为“科讯医疗网”的文章,版权均属科讯医疗网所有。未经授权,任何人不得复制、摘编等用于商业用途。如需转载,请注明“信息来源:科讯医疗网”,并保留本站的原文链接地址,否则,科讯医疗网保留追究版权责任的权利;
本网凡注明“来源:XXX(非科讯医疗网)”的文章,均转载自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,且不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任;
如涉及作品内容、版权等问题,请在作品发表之日起两周内与本网联系,否则视为放弃相关权利。
频道日排行
频道月排行
频道年排行
世界医疗器械
世界康复工程与器械
Copyright (C)
Tech-ex Dot Com Ltd., All Rights Reserved.
隐私保护 版权所有 科讯网世界有限公司
京公网安备59号生物医学工程专业,医学肿瘤(肺部)图像处理/机器深度学习方向的数学要求? - 知乎40被浏览5174分享邀请回答0添加评论分享收藏感谢收起

我要回帖

 

随机推荐