本期分享的嘉賓是來自耶魯大學圖像處理分析實驗室(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 的模塊。對應該模塊的輸入是兩組點集,藍色框是固定點集,橙色的框是移動點集。
簡單的看一下運算需要的輸入:
其中 PF和PM就是前面提到的 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 來做特定的任務。
編輯:hfy
評論
查看更多