ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases 1

1 Contributions

  • 构建了一种新的包含108948主视图的X光图像数据集(ChestX-ray8 2),用NLP处理放射报告标定labels(8种疾病类型),一张图片可能有多种疾病,也可能没有。(24636 images contain one or more pathologies. remaining 84312 images are normal cases.)
  • 展示了这些常见的胸部疾病可以通过一种unified weakly-supervised multi-label image classification and pathology localization framework被检测出来,甚至在空间上被定位。

2 Methods

2.1 Unified Deep Convolutional Neural Network (DCNN) Framework

  • For wealy-supervised object localization.
    Weakly-Supervised Localization of Thorax Diseases with ChestX-ray8 dataset
    选择AlexNet, GoogleLeNet, VGGNet-16, ResNet-50中的一种网络结构在ImageNet上作为pre-trained models,然后删掉最后的全连接层和分类层,在最后的卷积层之后加上一个transition层,global pooling层,预测层和loss层。
  • Multi-label Setup:
    每个图像的label是一个1×81\times8的向量
    y=[y1,,yc,,yC],yc{0,1},C=8\mathbf{y}=[y_1,\ldots,y_c,\ldots,y_C],y_c\in\{0,1\},C=8 for each image. 1代表有对应的疾病,0代表正常。
  • Transition Layer 把用不同模型预训练时,最后一个卷积层输出的feature map大小统一到S×S×D,S{8,16,32}S\times S\times D,S\in\{8,16,32\}. D是features的维度。为了之后生成病理位置的heatmap做准备。
  • Multi-label Classification Loss Layer
    因为多标签分类样本分布不均衡,很难学到positive instances (有病变的图像),所以引入了positive/negative balancing factor βP,βN\beta_P,\beta_N来加强对正样本的学习。
    Weighted Cross Entropy Loss
    LWCEL(f(x),y)=βPyc=1ln(f(xc))+βNyc=0ln(1f(xc))L_{W-CEL}(f(\mathbf{x}),\mathbf{y})=\beta_P\sum\limits_{y_c=1}-\ln(f(x_c))+\beta_N\sum\limits_{y_c=0}-\ln(1-f(x_c))
    βP=P+NP,βN=P+NN,\beta_P=\frac{|P|+|N|}{|P|},\beta_N=\frac{|P|+|N|}{|N|},P|P| and N|N| 是一个batch的图像的labels里1和0的数量。

2.2 Weakly-Supervised Pathology Localization

  • Global Pooling Layer .
    Log-Sum-Exp (LSE) pooling
    the pooled value xpx_p is defined as
    xp=1rlog[1S(i,j)Se(rxij)]x_p=\frac{1}{r}\cdot\log[\frac{1}{S}\cdot\sum\limits_{(i,j)\in S}e^{(r\cdot x_{ij})}]
    其中,xi,jx_{i,j}是待pooling区域SS中某位置(i,j)(i,j)处的**值
    可以观察到,pooled value的值域是SS中的最大值(rr\rightarrow\infty)到平均值(r0r\rightarrow0)。
    为了解决overflow和underflow问题,采用如下的LSE pooling公式
    xp=x+1rlog[1S(i,j)Se(r(xijx))]x_p=x^*+\frac{1}{r}\cdot\log\Big[\frac{1}{S}\cdot\sum\limits_{(i,j)\in S}e^{(r\cdot (x_{ij}-x^*))}\Big]
    where x=max{xij,(i,j)S}x^*=\max\{|x_{ij}|,(i,j)\in\mathbf{S}\}
  • Prediction Layer
    如上图所示,把预测层的权重(D×CD\times C)提取出来,其中第ii个向量D×1D\times 1表示D个feature map对判断有无疾病ii的权重。所以当train好预测层之后,在测试时,对一张输入图像,经过DCNN会预测其有某些病,定位这些病理的位置就要用预测层的权重乘上transition layer输出的统一大小的feature maps,就可以得到该输入病理的likelihood map(heatmap)。
  • Bounding Box Generation
    Normalized heatmaps to [0,255]
    Threshold heatmap by {60, 180} individually (ad-hoc)
    B-Boxes are generated to cover the isolated regions in the resulting binary maps
    使用阈值来对Heatmap的每个点进行二值化处理后选取孤立区域绘制B-Box

3 Experiments

Weakly-Supervised Localization of Thorax Diseases with ChestX-ray8 dataset

  • LSE pooling中r=10时效果最好。
    Weakly-Supervised Localization of Thorax Diseases with ChestX-ray8 dataset
  • ROC(Receiver Operating Characteristic)评价二值分类器的优势。AUC(Area Under Curve)是ROC曲线下的面积AUC[0.5,1]AUC\in[0.5,1]。上表分类的metric是AUC。
  • 用ResNet-50在ImageNet上做预训练分类效果最好。
  • 用Weighted Cross Entropy Loss比Cross Entropy Loss效果好。

4 Improvement

  • 创建了一个更大的胸部数据集。
  • 在没有对各种病理的金标准bounding box,只有基于图像类别病理判断的标签的图像的情况下,可以完成对病理的识别和定位。

5 Drawback

虽然对病理的定位不需要bounding box的ground truth,但是做病理的classification时,training data是fully annotated做全监督训练。


  1. X, Peng Y, Lu L, et al. Chestx-ray8: Hospital-scale chest x-ray database and benchmarks on weakly-supervised classification and localization of common thorax diseases[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 2097-2106. https://arxiv.org/abs/1705.02315Wang ↩︎

  2. Download ChestX-ray8 dataset: https://nihcc.app.box.com/v/ChestXray-NIHCC ↩︎

相关文章: