圖神經網路在醫學影像中的應用

極驗發表於2019-12-30

本期分享的嘉賓是來自耶魯大學影像處理分析實驗室(IPAG)的博士生李霄霄,她師從 Dr. James Duncan 教授,目前研究深度學習演算法用於醫學影像的分析。5 篇論文錄入醫學影像學和神經科學領域頂級會議(均為一作),獲得 Best Abstract AWard , Student Travel Award , IPMI Scholarship 等獎項。曾在日本索尼,日本國立資訊學研究所,美國西門子醫療事業部, JPM AI Research 從事深度學習演算法的研發。

就醫學影像來說,GNN 的應用非常的廣泛,有數十種,所以今天我們就透過舉例的方式來為大家介紹。

為什麼要用 GNN 來研究醫學影像?因為很多醫學影像可以用天然的圖結構來建模。用於血管的分割、手術影像的分析、多模態融合、 疾病預測、大腦的分割、大腦連線的一些研究。今天分享的主要內容根據上面提到的應用的文章,和大家做一些討論。

影像分割

首先來看一篇影像分割的工作:

Interactive 3D Segmentation Editing and Refinement via Gated Graph Neural Networks 

這篇文章提出的圖卷積模型並沒有從頭去做影像分割,而是在粗分割結果的基礎上進行改善。這個工作的輸入是粗糙分割好的圖片,邊緣不是那麼光滑,會有一些多邊形的結構。該工作的目的是想透過圖學習知道,當得到這些粗糙的多邊形結構之後,如何做一些點的運動的預測,使得最後的分割影像更加光滑,或者是達到更好的分割效果。該文章表示,透過他們提出的這種方法,在 IOU 的測量上,效果有高達 10% 的提升。

他們對分割影像進行建模的方法是:首先會有一個比較粗糙的分割結果,粗糙分割結果的輪廓是一個多邊形,多邊形的測量是對於每一個 3D 影像的slice計算出來的。粗糙的分割結果是用一些現有的演算法得到的,本文提出的 GNN 的側重點還是在後期的改善。建模過程如下圖所示:

圖神經網路在醫學影像中的應用

綠色框將多邊形的每一個頂點作為圖上的節點。然後有三種連線關係,綠色箭頭代表連線緊密的兩個節點之間的連線;藍色箭頭表示相距較遠的節點的連線;橙色箭頭表示相鄰的兩個 slice 之間的比較近的兩個節點的連線。

另外,在該研究中的圖是有向圖,然後從上圖可以看到鄰接矩陣分為了輸入和輸出兩部分,輸入表示指向該節點,輸出表示從該節點指向其他節點。圖中每個節點的特徵,是用 ResNet-50 得到的。最後,將這樣的圖結構輸入到 使用GRU的gated GNN 中。輸出模型有兩部分,一個是預測點是否到了邊上,另外一個就是該點要移動到下一個點的方向。圖中的movement prediction 部分是一個 M*M 的矩陣,意思是,以該點為中心的移動範圍。

影像檢索

Linking Convolutional Neural Networks with Graph Convolutional Networks: Application in Pulmonary Artery-Vein Separation 

這篇工作的任務是從肺部的血管 CT 影像中分出動脈和靜脈。首先輸入的圖是使用了一些傳統的血管分割以及枝幹提取方式來得到所有的節點,邊是隻考慮了一階鄰居的連線。所以這是一個具有非常多節點又非常稀疏的圖。那他們是如何定義圖中節點的特徵的呢?他們提取了每個頂點包裹著的 3D 小patch,透過提取 patch 的特徵。

圖神經網路在醫學影像中的應用

他們工作的一個特色是想將 CNN 和 GNN 端對端的連線起來,那這就涉及到輸入圖的時候要佔用很大的記憶體。

如下圖所示,右邊的網路就是提取節點特徵的網路。涉及到的 GCN 的運算也是比較傳統的 GCN 的運算。

圖神經網路在醫學影像中的應用

下圖展示了兩個結果,左邊是比較好的,右邊是比較差的。我想強調的一點是這篇文章比較了三個模型的表現,一個是 3D 的CNN ,一個是 CNN-GCN 模型,最後還有 CNN-GCNt 模型,這個 t 代表的是這個 CNN 模型是用預訓練的模型 transform learning 過來的,而 CNN-GCNt 的效果最好。

圖神經網路在醫學影像中的應用

手術介入

Graph Convolutional Nets for Tool Presence Detection in Surgical Videos 

這篇工作是研究各種手術器材的檢測。他們認為,對於這些外科影片來說,標籤的幀是很少的,並且這樣的影片也很短,很多傳統的目標檢測只考慮了單個幀的資訊,所以他們想用 GCN 來把 spatial 和 temporal 的資訊同時考慮進來。因為標記的幀的長度很短,使用 RNN 很難把時域上的依賴性連線起來,所以就使用了 GCN 。這篇文章是在兩個大型公開資料集上進行研究的。

我們來看一下它大致的框架:

圖神經網路在醫學影像中的應用

如上圖所示,將幾個連續幀的影片輸入到 Inflated 3D DenseNet-121 中,文章對 DenseNet 就行了改良,詳細內容可以檢視原文。

具體的一些計算過程如下:

圖神經網路在醫學影像中的應用

其中提到的 Temporal Pooling 其實和我們平常使用的 Pooling 核心是沒有兩樣的,只不過是因為輸入的graph 是透過時間上的一些幀構成的,所以文章將它叫做 temporal pooling。

影像配準

Learning Deformable Point Set Registration with Regularized Dynamic Graph CNNs for Large Lung Motion in COPD Patients

傳統的影像配準都是在影像域中去做的,這篇文章就提出這樣做會有很大的計算消耗和很長的計算時間。影像表面會有一些特徵點,可以看作是兩個點集之間的 registration。所以可以使用 GNN 來做。

registration 一般來說是計算得到一個空間轉換,將兩張圖或者兩組特徵點 align 起來。像我自己做得比較多的關於大腦影像的研究中,registration 通常是第一步。如果得到這些點集,我們可以透過點對點的 registration 來計算轉換矩陣。

圖神經網路在醫學影像中的應用

這篇文章的主要貢獻在於上圖中 DGCNN 的模組。對應該模組的輸入是兩組點集,藍色框是固定點集,橙色的框是移動點集。

簡單的看一下運算需要的輸入:

圖神經網路在醫學影像中的應用
其中 PFPM就是前面提到的 fixed 點和moving的點。(PF)和(PM)是透過DGCNN 模組得到的。DGCNN 的框架如上圖中的網路圖所示。每個點集有 4096 個點和每個點有 3D 的特徵,透過包括 EdgeConv、Linear等的層之後,得到每個點的 16 維的向量表示,就是 (PF)和(PM)。下面是結果:
圖神經網路在醫學影像中的應用
多模態融合

多模態融合研究的是如何將不同模態的醫學影像利用圖卷積結合在一起分析。

Interpretable Multimodality Embedding of Cerebral Cortex Using Attention Graph Network for Identifying Bipolar Disorder 

這是我們的一個工作。是將大腦的結構核磁共振成像(sMRI)和功能核磁共振成像(fMRI)資訊結合起來,做雙相情感障礙(bipolar disorder)和正常人的分類。在我們這個工作中,是根據功能性MRI在不同腦區之間的相關性來構圖的。定義每個大腦分割槽為圖上的一個頂點,它們之間的相關性係數作為邊的權重。結合 sMRI 和 fMRI 的方法是把它們堆疊到每個節點的特徵上。

圖神經網路在醫學影像中的應用

在該工作中另一點比較有意思的是採用了帶權重的EGAT(weighted graph attention neural network),如上圖中的注意力層,因為我們想要了解哪個腦功能分割槽對雙相情感障礙的影響更大。池化方法是採用的是 DIFFPOOL。

圖神經網路在醫學影像中的應用

上圖左邊是關於注意力 map 和節點特徵的視覺化結果。右邊是一些引數和對比實驗設計的結果,總的來說將 fMRI 和 sMRI 結合起來的結果是最好的。

疾病預測

Disease prediction using graph convolutional networks: Application to Autism Spectrum Disorder and Alzheimer’s disease 

這是早期將 GCN 應用到醫學影像領域的工作之一,主要的工作是將人當作圖中的節點,根據人的一些表型資料,比如像基因、性別、年齡等,利用它們的相似性來構造邊。本文利用大腦影像提取出來的特徵向量作為每個節點的特徵表示。這是個半監督學習的問題,圖中的一部分節點是有標籤的(有無疾病),還有一部分節點沒有標籤,主要任務就是預測沒有標籤的這部分人有無疾病。

圖神經網路在醫學影像中的應用

上面這篇工作在這裡就不細講了,來看一下另一篇相關工作:

InceptionGCN: Receptive Field Aware Graph Convolutional Network for Disease Prediction

這篇工作和上一篇一樣,也是將人看作圖中的節點,用半監督學習方式預測沒有標籤的那部分人有無疾病。這篇文章值得一提的是它在演算法上的創新,提出了 InceptionGCN,通常我們在做圖卷積的時候考慮的 K-hop 鄰域都是固定的,比如 graphsage 只考慮 one-hop 鄰域。而在這篇文章提出把不同感受野卷積核合在一起。比如下圖中的第一個虛線框中,k1到 ks,代表著這些卷積核考慮了不同維度的感受野,然後將它們合在一起。然後透過一個聚合器,該文章的聚合器有兩種嘗試,第一個是 connection 將所有的卷積核得到的特徵 Concat 起來,另外一種是最大池化

圖神經網路在醫學影像中的應用

比較有趣的是,他們在實驗中發現了比較矛盾的結論。他們在 TAPOLE 和 ABIDE 兩個資料集上進行了嘗試,發現在 TAPOLE 資料集上 Inception GCN 的結果是優於基準模型的,但是在 ABIDE 資料集上,結果卻不如基準模型。

圖神經網路在醫學影像中的應用

於是他們透過 TSNE 將輸入資料的特徵視覺化出來,發現 TADPOLE 資料集的資料視覺化出來,不同節點的特徵更加可分。但是 ABIDE 則不那麼可分。

圖神經網路在醫學影像中的應用

那麼是不是 InceptionGCN 對於這種節點特徵不是那麼現行可分的圖不適用呢?所以他們又做了一些模擬工作。如下圖所示:

圖神經網路在醫學影像中的應用

最左邊這個圖是比較好的情況,不同組之間的節點特徵區分明顯。中間這個圖則是不太好區分的。

圖神經網路在醫學影像中的應用

結果顯示,InceptionGCN 確實在第二種情況下,效果不太好。所以這是一個很有趣的探究,當我們選擇使用模型的時候,要首先對資料進行一定的考量,選擇合適的模型。

大型醫學影像分析

大型醫學影像主要還是組織學醫學影像,通常一張組織學影像至少有幾個 G 的大小。傳統的基於 GNN 的演算法不能把整張圖作為輸入,所以大家會用 patch-based 的方法來分析,但是這很容易忽略影像空間中的聯絡。這也是使用 GCN 來分析大型影像的初衷。

Cgc-net: Cell graph convolutional network for grading of colorectal cancer histology images. 

要講的第一份工作是來自 19年 CVPR,使用 GCN 來對組織學影像進行分類。

圖神經網路在醫學影像中的應用

它的構圖方式是用 detection 的方式來得到每個節點。

圖神經網路在醫學影像中的應用

這是這篇工作整體的框架。大家對細節感興趣的話,可以看看原文。

另一篇GNN 應用於大型醫學影像分析的工作是:

Weakly-and Semi-supervised Graph CNN for Identifying Basal Cell Carcinoma on Pathological Images 

任務是病理檢測,檢測病理影像中的基底細胞癌。我們一起看一下他們做的一些事情

圖神經網路在醫學影像中的應用

最上面一行是 ground truth,就是想檢測一些病理模式。主要思想是想透過 patch-based 的分析方法加 GNN得到相似的檢測。網路框架如下圖:

圖神經網路在醫學影像中的應用

先將影像的小 patch 的特徵輸入到預訓練好的 CNN 模型中,得到每個 patch 的向量表示。得到patch 的向量表徵之後有兩個設定,一個是弱監督設定,一個是半監督設定。

講的都比較簡單,大家可以看文章的具體內容。

腦分割

Graph convolutions on spectral embeddings for cortical surface parcellation. 

這篇工作跟我們直接應用已有的GNN不一樣,他們提出了譜域的卷積。如下圖所示:

圖神經網路在醫學影像中的應用

輸入的圖經過幾個譜域卷積層 之後,得到了大腦的分割結果。右邊的小圖是他們的方法和其他的方法結果的比較。可以看到,他們的分割方法可以保留很多的細節,並且是相對比較光滑的。

這個譜域卷積有什麼特別之處呢?文中提到了傳統的譜嵌入只能在左邊這種正交的柵格空間中實現,如果想要實現在右邊這種譜嵌入,就要把所有的基向量轉換到同樣的參考座標中。最後的譜卷積公式就是 z。

圖神經網路在醫學影像中的應用

看下圖會更加直觀的理解譜卷積是如何操作的。

圖神經網路在醫學影像中的應用
腦連線

這是最後一個應用,這是我自己的一個工作,研究如何用 GNN 做腦連線的一些分析。這個工作有兩個目標,一個是如何對不同的腦連線進行分類,一般是病人和非病人。另外還想探究,是怎樣的腦連線子網路和疾病有關係。

圖神經網路在醫學影像中的應用

整體的框架分為兩部分,第一部分就是構造腦網路,並且對腦網路進行分類。構圖的方法是將大腦分為一些區間,每個區間作為一個節點,節點之間的邊是每個大腦區間之間的 fMRI 時間訊號的相關性構造的。透過手工提取的方式提取了一些節點的特徵。在完成第一步圖分類後,第二部,我們想解釋哪些子圖/節點是具有 predition power的。於是我們講劃分好的子圖在已訓練好的GNN中去測試,找到對分類重要的子圖/節點。

圖神經網路在醫學影像中的應用
圖神經網路在醫學影像中的應用

另外一個腦連線的工作是:

Graph Embedding Using Infomax for ASD Classification and Brain Functional Difference Detection 

這個工作結合了最近提出的 deep graph infomax 的方法去加強卷積層之後的embedding部分。

圖神經網路在醫學影像中的應用

除了利用從資料中真實構造好的圖進行圖分類以外,我們有另一個分支去獲得更好的節點特徵嵌入效果。在這個分支中,我們構造了一些假的圖,然後將真圖和假圖的一些表示同時放入 discriminator 中區分這些表示來自真圖還是假圖。

圖神經網路在醫學影像中的應用
圖神經網路在醫學影像中的應用

這裡給出了 148 大腦區域中的 24個大腦區域 embedding的視覺化結果,患者是紅色,正常人是綠色,加上 graph infomax 的損失之後,正常人和患者的有些大腦區域更加線性可分。

圖神經網路在醫學影像中的應用

在大腦的 148個區域中,我們發現了 31個比較線性可分的大腦區間,在上圖中的標記為紅色。

總結

醫學影像中存在著圖結構,所以可以使用 GNN 完成上面提到的這些任務。透過閱讀這些paper,我的啟發是根據醫學影像構造圖結構是很重要的,不同的構造方法對實驗的結果有很大的影響。另外一點是如何設計合適的 GNN 來做特定的任務。

回放連結:

https://m.qlchat.com/topic/details?topicId=2000007157083237&sourceNo=&fromOld=

相關文章