在今年早些时候,Google发了两篇关于人工智能医疗图像的科技文章:一篇是非常有名的关于皮肤癌检测的文章 Dermatologist-level classification of skin cancer with deep neural networks ,文章通过采用Inception v3的结构对皮肤癌图像进行了有效分类,更值得注意的是,模型的敏感性意料之内的能够超越了人类的识别能力,并且通过Tensorflow移植到了手机端做成了APP,在商业医疗方面有很广阔的应用前景。

(上图为皮肤癌分类问题的样本分布)

另一篇是Google发的一篇科技博客Assisting Pathologists in Detecting Cancer with Deep Learning,主要内容讲的是针对病理图像中乳腺癌在淋巴结中的转移的检测任务。这篇文章的背景是医学顶级会议ISBI在2016年发布的Camelyon16的竞赛,竞赛的主要内容是对乳腺癌在淋巴结中的转移进行病理切片的分类与定位。很幸运,那段时间正好在DeepCare公司学习工作,并且参加了Camelyon16和Camelyon17两届比赛,所以想分享一下自己关于深度学习中病理图像方面应用的一些经验和收获。

(一张淋巴结的病理图片,左边属于正常细胞组织,右边的细胞已经被癌细胞吞噬占领了)

问题的由来

一般来说,乳腺癌细胞的扩散方式通常会首先转移到附近的淋巴结中,所以在很多乳腺检查中,会提取一些附近淋巴结组织做成切片,经过切片、染色、扫描等过程后,生成如上图的图像。癌细胞和正常细胞在颜色、纹理、大小和组织形式上都会有很多的不同,一般来说就是“核大深染”的突出特征。在大医院中,很多上了年纪的且具有很多“看片”经验的医生炙手可热,这意味着人类同样需要很多经验才能正确的进行分析判断,而年轻的或缺乏经验的医生容易出现误判。Camelyon16希望我们能够通过计算机视觉技术帮助医生进行有效筛选,从而减少工作量和误判的可能性。

Camelyon16的任务是对测试集中的120张淋巴结病理切片进行判断是否发生了癌变(classification),同时需要对发生癌变的位置区域精准定位(segmentation);而Camelyon17的任务变得更加复杂,在16的基础上需要对发生癌变转移的区域进行大小判断,从而将病理切片分为Normal/ITC/Micro/Macro四个类别,最终根据每个病人的五张切片的定性结果确定病人的乳腺癌细胞转移的情况。(听起来挺复杂,也的确挺复杂)

官方一共给了110张含有癌细胞组织的切片(Tumor)和130张正常的组织切片(Normal),并对有癌症的区域进行了标记,最终确定120张切片的性质。看起来数据量很少,按照传统的图像处理方式应该是很简单的,但实际上数据的形式是金字塔数据形式,最大分辨率40X的图像矩阵大小大概是300000×150000,一个样本的所占硬盘空间大小大概是5~6G。这也就意味着我们不太可能将图片全部加载到内存中,即使有足够的内存,也不可能把它加载到显卡内存中进行深度学习运算(可以想象一下如果这么大的矩阵采用3×3的卷积核进行运算的场景),所以对图片进行预处理非常有必要。

(病理切片图像中金字塔型的数据结构)

预处理

在经典问题中很少有图片会这么大,但也会遇到一些,比如遥感图像等;这类图像的处理办法一般会采用分块的方式进行处理,然后再将每一块的处理结果进行汇总从而得出结果。

对于一张病理图像来说,只有20%~30%的区域是有效区域RoI,如果每一块都要进行预处理,会导致处理时间过长,效率不高,所以需要做有效区域的提取。

(左图是一张病理切片的10X左右的效果图,可以发现基本上大多数区域都是不需要的;右图的蓝色区域所围成的区域是癌症区域)

比如这样的一张病理切片:

首先将它进行通过特定的阈值算法,提取出前景部分:

之后,通过一些古典图像处理的算法,将图片的有效区域提取出来:

于是我们就可以将每一部分根据坐标进行切分,从而生成很多小片(patch):

(上图黑色区域就是一片一片的patch,每一张都是一个256×256大小的图片)

这里可以给大家透露一下,由于要这个过程要商业化,所以我们做了一个非常强大的并行策略去进行图片切割,比原始方法进行切割的速度可以理论提升64倍。

由于比赛数据来自于不同的医院或研究机构,所采用了不同厂家的扫描仪,因此图片在色调上存在着很大的差异,这对模型来说,会造成confused现象,因此在做成数据集之前,对所有的图片进行了染色均一化过程:

其主要的思想是通过将RGB变换到HSV 色域表征,通过调节色调分布使得不同图像进行染色均一化。

之后便生成数据集。未加入Data Augmentation前,已经可以生成正样本数量120w张,负样本就更多了,一方面数据量比较多,可以提升模型泛化能力,另一方面这么多数据集对运算设备和运算框架也提出了很高的要求。

模型设计

Google采用的是Multi-Scales算法,仿照病理医生的情况,针对不同的大小视觉差 针对不同的置信结果,我们采用了二级网络进行训练:

在做这个实验的时候,我们用了两块Pascal Titan X。为了更好地利用计算空间来提升运算性能,我们用了MXNet深度学习框架作为整体的解决方案(包括后来的商业部署Inference)。也非常感谢@lau phunter刘老师以及MXNet其他大神提供的解决办法。

粗选网络采用VGG16同时搭配低阈值,精选网络采用ResNeXt101设定较高的阈值,最后进行模型融合从而提升模型结果。

这里分享一个小的Trick,在实验中我们发现,图片如果尺寸过小,会造成误报现象严重,这也是Google在那篇文章中提到的。

后处理

后处理也是一个比较麻烦的地方,我们直接将上述生成的heatmap再次送到一个新的网络中,进行后续操作,包括分类等。其他高排名的解决方案大多数采用了癌症区域面积的方式。(实际上我们这是比较偷懒的做法)

后记

DeepCare公司的最终比赛排名是:Camelyon16第8名,Camelyon17第13名。

名次不是特别好的原因主要是我拖累的这个比赛进度,在这里我还是对DeepCare公司抱有很深的歉意~~~ 但DeepCare公司是我非常看好的一家人工智能医疗公司,在我因个人原因离开之前,公司进入了微软加速器并且获得了强力的A轮投资。

由于保密协议的原因,我没有办法公开任何有关代码,但是我同样非常欢迎交流和讨论,如果有机会参加Camelyon18的比赛,希望能有更多的人能够一起参赛。文章中如果有任何问题,非常欢迎各位批评指正,谢谢~

这篇文章写于2017年的端午节,刚好我完成了研究生学术论文答辩,同时已经签约到腾讯的AI Lab,继续从事有关计算机视觉技术的研究工作。这篇文章也算是对我这一年来的一个怀想吧!

Camelyon Challenge: 癌症细胞区域检测竞赛相关推荐

  1. 最全技术剖析:百度视觉团队获世界最大规模目标检测竞赛冠军

    眼睛是人类接触外部世界的第一感官,对于机器而言,计算机视觉技术就是它们的"眼睛".近日,百度视觉团队在全球最大规模目标检测竞赛Google AI Open Images-Objec ...

  2. keras faster物体检测_URPC 2019水下目标检测竞赛冠军方案:多图像融合增强

    下面要介绍的论文发于2019年12月,题为「ROIMIX: PROPOSAL-FUSION AMONG MULTIPLE IMAGESFOR UNDERWATER OBJECT DETECTION」, ...

  3. 多选框位置调整_URPC 2019 水下目标检测竞赛冠军方案:多图像融合增强

    作者 | Bbuf 编辑 | 杨晓凡 下面要介绍的论文发于2019年12月,题为「ROIMIX: PROPOSAL-FUSION AMONG MULTIPLE IMAGESFOR UNDERWATER ...

  4. 奖金600万美元的XPRIZE新冠病毒快速检测竞赛决出大奖获得者,以研制快速、大规模、低成本且简单易用的解决方案

    大赛呼吁全球创新者在疫情之下开发出有效而经济的新冠病毒检测工具 洛杉矶--(美国商业资讯)--通过设计和运营激励性竞赛来解决人类所面临重大挑战的全球领导者XPRIZE今天欣然公布了奖金高达600万美元 ...

  5. 基于大尺寸图像的小目标检测竞赛经验总结

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 作者丨清风明月@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/34 ...

  6. 区分癌症细胞和非癌症细胞的方法

    文章目录 前言 一.聚类或特定基因marker 二.inferCNV 1.原理 2.所需文件 3.局限性 三.HoneyBadger 四.CopyKAT 五.整合正常细胞参考集 前言 单细胞测序取样时 ...

  7. 英伟达最新发布NVRadarNet:基于纯Radar的障碍物和可行驶区域检测

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文章转载自动驾驶之心 NVRadarNet:基于纯Radar的障碍物和可行驶区域检测 论文地址:htt ...

  8. 常用的表格检测识别方法-表格区域检测方法(上)

    常用的表格检测识别方法 表格检测识别一般分为三个子任务:表格区域检测.表格结构识别和表格内容识别.本章将围绕这三个表格识别子任务,从传统方法.深度学习方法等方面,综述该领域国内国外的发展历史和最新进展 ...

  9. 常用的表格检测识别方法 - 表格区域检测方法(下)

    --书接上文 Training 半监督网络的训练分两步进行:a)对标记数据独立训练学生模块,由教师模块生成伪标签:b)结合两个模块的训练,得到最终的预测结果. 伪标签框架 实验 数据集: TableB ...

最新文章

  1. 网站推广必备手册:SEO教程:搜索引擎优化入门与进阶(第2版)
  2. 这样的奇技淫巧不可取,切记切记
  3. 读锁调度导致高延迟的 case 一例
  4. Mint-Ui的mt-search点击选中
  5. 华为eudemon 200E的hrp双心跳热备配置
  6. python中print不显示结果_Python中的print()函数
  7. .idata数据的解析
  8. IOS安全、逆向、反编译
  9. axios上传图片到php报500,vue项目中使用axios上传图片等文件
  10. vue-i18n使用ES6语法以及空格换行问题
  11. server2008r2经常蓝屏或者自动重启
  12. 在Eclipse中使用JDBC访问MySQL数据库的配置方法
  13. java package 打包_java打包的两种方式整理
  14. U盘格式化内存变小恢复设置
  15. 语言在工作中扮演的角色
  16. java 微信接收消息_Java后台与微信公众号交互----接收并处理微信客户端发送的请求...
  17. Xposed快速入门例子(二)----- 调方法的合适时机
  18. 不同范数下的余弦定理_什么是绝对矩阵范数?
  19. 记一次apple实体店耳机更换
  20. uniapp开发仿哔哩哔哩/短视频系统

热门文章

  1. matlab 二值化_MATLAB实验,图像二值化处理
  2. 计算机一级判断题2016,2016年12月计算机一级考试WPS判断题及答案
  3. python画图的模块_用python和pygame游戏编程入门-画图模块
  4. java 读取url https_如何获取URL链接是http还是https
  5. 湖北生态工程职业技术学院计算机分数线,湖北生态工程职业技术学院录取分数线2021是多少分(附历年录取分数线)...
  6. html表格显示选择的颜色,jquery实现效果比较好的table选中行颜色
  7. 果粉们注意了 外媒爆料以下机型不再支持iOS 13
  8. 磁珠 磁环 双向二极管 TVS二极管
  9. WebService相关
  10. Struts2——学习(5):页面跳转