写的都是自己的一些理解,有些问题自己也没搞明白,有些可能是错的,希望大家指正,共同进步。

这篇文献主要讲的是对皮肤癌的检测,旨在推理出异常的区域。该方法对黑色素瘤的识别达到了89%的像素级准确率。

在学习文献之前,要先了解关于皮肤的一些医学知识,这个文中也介绍了。

人的皮肤由三部分组成,分别是 表皮、真皮和皮下组织。

  • 皮下组织由白色脂肪组成,在H&E染色后呈白色空泡。
  • 真皮由胶原蛋白组成,在皮肤组织中占大部分。
  • 表皮才是要诊断的区域,但很少。

文献中的数据集:

文中一共用到了200张正常slide和9张有病变的,是他们跟一个实验室合作的,应该没有公开。

在不同阶段用了不同的子数据集,后面会在不同阶段内详细介绍。


文献的整体框架流程(论文中的原图)

文中将整个过程分为了4个步骤,分别是数据预处理、利用渐进式增长GAN网络(Progressively Growing GANs)重建正常图像、计算误差分布(Error distribution calculation ,NERD)、数据后处理。PS 前面是按自己理解写的过程名字,下面用原文中的标题。


Phase 0: Preprocessing

这一步就是数据预处理,目的是去除图片中的真皮和皮下组织。具体过程如下:

  1. 首先将40X的WSI先切成小patch(切的是1024*1024)。
  2. 利用预训练的ResNet50将每个patch编码成一个向量特征。
  3. 将所有的向量特征进行PCA主成分分析,并提取第一主成分的前80%的patch。这样做的目的就是删除了胶原蛋白和空泡,并且文中还说人工检查了,这种筛选真实有效。我一脸黑人问号,为什么这样就删除了???
  4. 最后划分数据集,150+25+25+9(后面还会说)。

Phase 1:Network weight training

这一步主要是训练GAN网络,目的是重建出正常的皮肤组织图像。在这一步共用了150张正常皮肤组织slide的patch,共150, 330415 patches。

GAN的网络结构:

  • 生成器是类似于unet网络的一个加跳接的AE。
  • 判别器是一个标准的渐进式 GAN 判别器。不会的看参考文献1,个人感觉训练的时候会很麻烦。

在训练过程中,需要对输入的patch先做数据增强,随机掩掉20%的区域。这样做的目的是强迫生成器学习正常区域的编码,并解码时根据上下文信息补全mask区域的信息。


Phase 2:Error distribution calculation (NERD)

这一步主要是计算绝对误差分布的,目的是找到原图和生成图之间的绝对误差的高斯分布,在推理时通过马氏距离判断异常值。在这一步共用了25张正常皮肤组织slide的patch,共44693 patches。

这一步是在假设成立的条件上做的。假设原图和生成图之间的绝对误差符合多元高斯分布,那这一步的本质就是对这个绝对误差高斯分布的最大似然估计。确定一个高斯分布只需要两个参数,均值和方差。

文中说NERD是被训练出来的,但没有介绍是怎么训练的,还说把GAN网络的参数固定了,那就更没有可以训练的参数了。推测可能只是用25张正常slide求了个均值和协方差(3×3),每个颜色通道单独求均值。

协方差矩阵计算公式:


Phase 3:Dynamic distance threshold, KDE smoothing, and dilation

这一步主要是计算马氏距离,并根据马氏距离计算阈值和定位异常区域。在这一步共用了25张正常皮肤组织slide的patch,共52517 patches。

在推理时,计算出 生成图 每个像素的马氏距离 就可以确定该像素是否超出预期分布。因此,如果确定一个阈值 就可以将线性回归问题转化为二分类问题,大于阈值的被定为异常、小于阈值的被定位正常。所以这一步又使用25张正常的slide求了所有像素马氏距离的均值和标准差。

马氏距离公式如下:

其中Σ是多维随机变量的协方差矩阵,μ为样本均值。

与phase2的区别:phase2是利用25张slide 计算了 原图和生成图之间的绝对误差的高斯分布,代表了所有正常皮肤组织和重建图之间的绝对误差的高斯分布。phase3是利用phase2计算出来的均值和方差来计算一个新的patch 原图和生成图之间的绝对误差的feature map中每个像素的马氏距离,然后利用这些马氏距离的均值和标准差做为最后的阈值。

将问题转化为二分类问题后,就可以得到一张对应 生成图 的语义分割图mask,里面白的色区域代表了异常的像素值(马氏距离大于阈值)。但是单个像素不能代表这块区域的皮肤异常(文中说40X下的一个像素也远小于一个细胞),而且单个像素异常也可能是噪声。所以做了一个滤波,把没有联通区域的零散点去除。

过滤后用了一个带宽为100的two dimensional gaussian kernel density estimator (KDE) 做平滑,然后将结果归一化,做成灰度KDE图像。最后把灰度KDE图像与默认阈值0.2进行比较得到二值mask,使用Shapely做最后处理(这步只感觉是处理patch之间的缝的,是否有其他作用没看出来)。

最后就得到了想要的异常区域,大概样子就是这样。

吐槽,官方给的代码GitHub - Steven-N-Hart/P-CEAD,用tensorflow写的,可读性有点差,让人头秃~

参考文献

  1. Karras,T.,Aila,T.,Laine,S.Lehtinen,J.Progressive Growing of GANs for Improved Quality,Stability,and Variation.ArXiv171010196 Cs Stat (2018)

论文笔记——Using Progressive Context Encoders for Anomaly Detection in Digital Pathology Images相关推荐

  1. 【论文笔记】Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized

    论文 论文题目:Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personaliz ...

  2. 三维目标检测论文阅读:PointPillars: Fast Encoders for Object Detection from Point Clouds

    PointPillars: Fast Encoders for Object Detection from Point Clouds code ID: https://github.com/nuton ...

  3. 【论文笔记】A Survey on Masked Facial Detection Methods and Datasets for Fighting Against COVID-19

    声明 不定期更新自己精度论文,通俗易懂,初级小白也可以理解 涉及范围:深度学习方向,包括 CV.NLP.Data Fusion.Digital Twin 论文标题:A Survey on Masked ...

  4. 【论文笔记】Progressive Neural Networks 渐进式神经网络

    Progressive NN Progressive NN是第一篇我看到的deepmind做这个问题的.思路就是说我不能忘记第一个任务的网络,同时又能使用第一个任务的网络来做第二个任务. 为了不忘记之 ...

  5. [论文阅读] Exploring Dense Context for Salient Object Detection

    论文地址:https://dx.doi.org/10.1109/TCSVT.2021.3069848 代码:https://github.com/Mhaiyang/TCSVT2021_DCENet 发 ...

  6. 论文笔记——Rich feature hierarchies for accurate object detection and semantic segmentation

    最近在看一些目标检测的论文,本文是经典的R-CNN(Regions with CNN features),随之产生的一系列目标检测算法:RCNN,Fast RCNN, Faster RCNN代表当下目 ...

  7. 论文笔记:A Biometric-Based Authentication and Anonymity Scheme for Digital Rights Management System

    一.基本信息 论文题目:<A Biometric-Based Authentication  and Anonymity Scheme for Digital  Rights Managemen ...

  8. 【论文笔记】Feature Pyramid Networks for Object Detection

    文章目录 Abstract 1. Introduction 3. Feature Pyramid Networks 4. Applications 4.1. Feature Pyramid Netwo ...

  9. 【论文笔记】Efficient and Realtime Distracted Driver Detection With MobileVGG Network

    Towards Computationally Efficient and Realtime Distracted Driver Detection With MobileVGG Network 第一 ...

最新文章

  1. Springboot [日志管理LogBack]
  2. php当前页面的链接地址,PHP 技巧:如何获取当前页面的链接地址
  3. 新建仓库后第一次提交的问题
  4. ibmm,让思维导图回归本质
  5. 论文浅尝 | 基于知识库的类型实体和关系的联合抽取
  6. 超级好用的坐标转换软件
  7. java 单链表是否有环,判断链表中是否有环
  8. 《Oracle从入门到精通》读书笔记第四章 SQL语言基础之二
  9. BZOJ1127 POI2008KUP(悬线法)
  10. 终于把tomcat给搞定了
  11. Unicode字符编码
  12. LVGL使用华为鸿蒙字体
  13. Jenkins自动化构建Gitee项目
  14. unionid openid微信php,微信的openID、unionID等总结
  15. HTML5分级标题,最佳HTML5结构,其中标题/标题是文章标签外
  16. python爬取小猪短租信息
  17. C语言 - 计算n的阶乘(n!)
  18. linux权限管理详解
  19. FX5U数据包功能码
  20. pkpm弹性时程分析计算书怎么出_【原创总结】结构菜鸟浅谈为何进行弹性时程分析(附操作详图)...

热门文章

  1. matlab读取xml文档并储存为.mat文件详解
  2. catBoost 神器的学习笔记
  3. 《深入分析JavaWeb技术内幕》之读书笔记(篇一)
  4. python自学(转义字符篇)
  5. 《鬼武者3》最快全攻略
  6. 本人C++代码危险度划分
  7. vsflexgrid点击哪一行_情侣之间有三个阶段,熬过了,就能走一辈子。你知道是哪三个吗?...
  8. C51编程7-数码管(工作原理1)
  9. gateway网关限流配置
  10. git如何撤销未提交的更改