3DFPN-HSS : 3D Feature Pyramid Network Based High Sensitivity and Specificity Pulmonary Nodule…

Source: Deep Learning on Medium

3DFPN-HSS : 3D Feature Pyramid Network Based High Sensitivity and Specificity Pulmonary Nodule Detection

這邊為2019年6月google AI發表在MICCAI上, 提出了利用3DFPN + FPR 來處理在Lung CT影像中, false positive居高不下的問題.

Abstract

在Lung CT影像自動偵測cancer nodule, high sensitive & specificity 是必要的, 很多其他的Deep learning方法在Nodule Detection也進步許多, 但high false positive rate始終還是一個大問題, 使得無法在現實生活中應用.

本篇論文主要提出的方法為3D FPN, 利用多scale的特徵來幫助Nodule的resolution, 也利用top-down的方式將high-level 和 low-level的資訊整合起來, 另外還有設計一個HSS network利用觀察找出來的候選Nodule在CT影像中變化的形式以消除那些找錯的候選點, 因為大部分分錯的Nodule都是一些跟normal tissue很像的Nodule.

本篇使用的Dataset為LUNA16, 且在於1/8 false positive rate時的sensitivity高達90.4%, 比過去高出了15.6%, 而CPM值則高達95.2%.

Introduction

作者認為目前的model主要遇到的兩個問題為 :

  1. 一些Normal Tissues 跟Nodule Tissues有相似的形狀, 使得False positive rate居高不下.
  2. Nodule的大小與整張的CT影像差距太大容易錯失Nodule, 像是一個10mm Nodule只佔了整張CT的0.059%, 而且pulmonary nodule的大小範圍差距也非常大, 小至3mm, 大至30mm, 故設計一個model能從整張CT影像中偵測到小的Nodule是非常重要的.

作者基於目前object detection流行的方法FPN, 設計一個3D FPN藉由整合high-level與low-level的資訊來幫助偵測非常小的Nodule.

作者分析了那些被判斷錯誤的Normal Tissues與真正的Nodule後發現, 他們在單張的CT影像看起來非常相似, 但是在連續的CT影像中, 他們比次之間的變化卻是不一樣的, 故他們使用refinement network, 基於連續的CT影像location history image來判斷, 並達到90.4%在false positive rate 1/8時, 比起過去好了15.6%.

Method

上面這張圖為這篇論文的架構, Input為整張CT影像喂進3DFPN, 然後判斷出Nodule的位置, 再把這些Candidate的區域Crop出來丟進HSS Network中進一步判斷是否為real Nodule 還是 False detected tissues, 效果明顯提升.

3D Feature Pyramid ConvNet

目前object detection所流行的方法為FPN, 利用不同scale的feature map上來做預測, 但主要都是在2D影像上面, 而本篇使用3DFPN來對Lung CT偵測, 不同於過去的方法, 之前的方法只concatenate upper-level feature, 本篇使用dense pyramid network, 整合了low-level high-resolution 與 high-level high-semantic 的feature, 這樣的做法可以增加location的資訊, 同時也能增加Nodule的資訊來判斷真偽.

以上為過去的方法與本篇的方法比較圖

3DFPN主要負責預測[c, x, y, z, d], x,y,z代表第z個slices中的x row y col為Candidate的中心點位置而d代表著diameters, c代表confidence score.

HSS Network

圖(a) 代表容易分辨錯誤的正常Tissues和Nodule 圖(b) 代表Nodule, Tissue在Location History Image下所表現的樣子, 可以發現Nodule的x,y座標基本上不會變, 但是Tissue通常會呈現像血管的感覺x, y做標示會隨著slices而改變的, 而這就可以當成分辨Nodules, Tissues的一個特徵點.

而作者也對判斷錯的那些例子分析

作者發現, 300個判斷錯誤的例子, 有80.3%都是因為將Tissue判斷成Nodule, 而11%則是大小判斷錯誤, 8.7%則是位置判斷錯誤.

故若能準確的判斷Tissue可以將False positive的個數大幅降低.

Inspired by Motion History Image (MHI), 作者定義Location History Image(LHI) as f, 給予一個(x, y)的pixel值在CT s slices上, f(x, y, s)代表著LHI intensity value within (1, τ) slice, LHI被餵進HSS Network, HSS由2個convolution和3個fully connect layer所組成, HSS的輸出為confidence值.

update function ψ(x, y, s) 的輸入為兩張連續的slice CT影像的(x, y)的pixel value, 以下為計算步驟:

第一步驟是說若上一張與當前這張差距大於threshold的話, 則設為τ.

第二步驟為若差距小於threshold的話, 則當前這張的值就減1, 若減完小於0就取0.

重複以上步驟直到每張slice都做完為止.

作者表示依照他們的演算法執行後, CT image在slice上的變化被很有效率地表示出來.

Experimental Results and Discussions

本文使用的Dataset為LUNA16, 並且Data Augmentation使用了Flipping and Resizing.

Experimental Settings :

  1. Take whole CT image as input.
  2. 喂進3DFPN時是以96 x 96 x 96 sliding widow的方式. (96是為了確保最大的Nodule 30mm 也能完全被包含在Volume裡)
  3. 候選點的預測根據feature map的大小來預測, feature map的大小分別有[3, 5, 10, 15, 20, 25, 30]

在訓練的時候, 找出的候選點會與GT做IOU, 若小於0.02就當作negitive, 若大於0.4則當作positive, 介於中間的則忽略, 避免可能是positive或是negitive的可能性.

Loss 則是用smooth l1 loss + BCELoss

以上這張圖為結果, 左邊可以看出來HSS有效的提升效果, 而右邊的圖則是代表原本預測錯誤的629個樣本中, 大幅減少到97了.

效果如圖, 比過去的方法好非常多.

你的掌聲是我持續的動力><.