本期分享的嘉賓是來自耶魯大學(xué)圖像處理分析實驗室(IPAG)的博士生李霄霄,她師從 Dr. James Duncan 教授,目前研究深度學(xué)習(xí)算法用于醫(yī)學(xué)影像的分析。5 篇論文錄入醫(yī)學(xué)影像學(xué)和神經(jīng)科學(xué)領(lǐng)域頂級會議(均為一作),獲得 Best Abstract AWard , Student Travel Award , IPMI Scholarship 等獎項。曾在日本索尼,日本國立信息學(xué)研究所,美國西門子醫(yī)療事業(yè)部, JPM AI Research 從事深度學(xué)習(xí)算法的研發(fā)。
就醫(yī)學(xué)影像來說,GNN 的應(yīng)用非常的廣泛,有數(shù)十種,所以今天我們就通過舉例的方式來為大家介紹。
為什么要用 GNN 來研究醫(yī)學(xué)影像?因為很多醫(yī)學(xué)影像可以用天然的圖結(jié)構(gòu)來建模。用于血管的分割、手術(shù)圖像的分析、多模態(tài)融合、 疾病預(yù)測、大腦的分割、大腦連接的一些研究。今天分享的主要內(nèi)容根據(jù)上面提到的應(yīng)用的文章,和大家做一些討論。
圖像分割
首先來看一篇圖像分割的工作:
Interactive 3D Segmentation Editing and Refinement via Gated Graph Neural Networks
這篇文章提出的圖卷積模型并沒有從頭去做圖像分割,而是在粗分割結(jié)果的基礎(chǔ)上進行改善。這個工作的輸入是粗糙分割好的圖片,邊緣不是那么光滑,會有一些多邊形的結(jié)構(gòu)。該工作的目的是想通過圖學(xué)習(xí)知道,當(dāng)?shù)玫竭@些粗糙的多邊形結(jié)構(gòu)之后,如何做一些點的運動的預(yù)測,使得最后的分割圖像更加光滑,或者是達到更好的分割效果。該文章表示,通過他們提出的這種方法,在 IOU 的測量上,效果有高達 10% 的提升。
他們對分割圖像進行建模的方法是:首先會有一個比較粗糙的分割結(jié)果,粗糙分割結(jié)果的輪廓是一個多邊形,多邊形的測量是對于每一個 3D 圖像的slice計算出來的。粗糙的分割結(jié)果是用一些現(xiàn)有的算法得到的,本文提出的 GNN 的側(cè)重點還是在后期的改善。建模過程如下圖所示:
綠色框?qū)⒍噙呅蔚拿恳粋€頂點作為圖上的節(jié)點。然后有三種連接關(guān)系,綠色箭頭代表連接緊密的兩個節(jié)點之間的連接;藍色箭頭表示相距較遠的節(jié)點的連接;橙色箭頭表示相鄰的兩個 slice 之間的比較近的兩個節(jié)點的連接。
另外,在該研究中的圖是有向圖,然后從上圖可以看到鄰接矩陣分為了輸入和輸出兩部分,輸入表示指向該節(jié)點,輸出表示從該節(jié)點指向其他節(jié)點。圖中每個節(jié)點的特征,是用 ResNet-50 得到的。最后,將這樣的圖結(jié)構(gòu)輸入到 使用GRU的gated GNN 中。輸出模型有兩部分,一個是預(yù)測點是否到了邊上,另外一個就是該點要移動到下一個點的方向。圖中的movement prediction 部分是一個 M*M 的矩陣,意思是,以該點為中心的移動范圍。
圖像檢索
Linking Convolutional Neural Networks with Graph Convolutional Networks: Application in Pulmonary Artery-Vein Separation
這篇工作的任務(wù)是從肺部的血管 CT 圖像中分出動脈和靜脈。首先輸入的圖是使用了一些傳統(tǒng)的血管分割以及枝干提取方式來得到所有的節(jié)點,邊是只考慮了一階鄰居的連接。所以這是一個具有非常多節(jié)點又非常稀疏的圖。那他們是如何定義圖中節(jié)點的特征的呢?他們提取了每個頂點包裹著的 3D 小patch,通過提取 patch 的特征。
他們工作的一個特色是想將 CNN 和 GNN 端對端的連接起來,那這就涉及到輸入圖的時候要占用很大的內(nèi)存。
如下圖所示,右邊的網(wǎng)絡(luò)就是提取節(jié)點特征的網(wǎng)絡(luò)。涉及到的 GCN 的運算也是比較傳統(tǒng)的 GCN 的運算。
下圖展示了兩個結(jié)果,左邊是比較好的,右邊是比較差的。我想強調(diào)的一點是這篇文章比較了三個模型的表現(xiàn),一個是 3D 的CNN ,一個是 CNN-GCN 模型,最后還有 CNN-GCNt 模型,這個 t 代表的是這個 CNN 模型是用預(yù)訓(xùn)練的模型 transform learning 過來的,而 CNN-GCNt 的效果最好。
手術(shù)介入
Graph Convolutional Nets for Tool Presence Detection in Surgical Videos
這篇工作是研究各種手術(shù)器材的檢測。他們認為,對于這些外科視頻來說,標(biāo)簽的幀是很少的,并且這樣的視頻也很短,很多傳統(tǒng)的目標(biāo)檢測只考慮了單個幀的信息,所以他們想用 GCN 來把 spatial 和 temporal 的信息同時考慮進來。因為標(biāo)記的幀的長度很短,使用 RNN 很難把時域上的依賴性連接起來,所以就使用了 GCN 。這篇文章是在兩個大型公開數(shù)據(jù)集上進行研究的。
我們來看一下它大致的框架:
如上圖所示,將幾個連續(xù)幀的視頻輸入到 Inflated 3D DenseNet-121 中,文章對 DenseNet 就行了改良,詳細內(nèi)容可以查看原文。
具體的一些計算過程如下:
其中提到的 Temporal Pooling 其實和我們平常使用的 Pooling 核心是沒有兩樣的,只不過是因為輸入的graph 是通過時間上的一些幀構(gòu)成的,所以文章將它叫做 temporal pooling。
圖像配準(zhǔn)
Learning Deformable Point Set Registration with Regularized Dynamic Graph CNNs for Large Lung Motion in COPD Patients
傳統(tǒng)的圖像配準(zhǔn)都是在圖像域中去做的,這篇文章就提出這樣做會有很大的計算消耗和很長的計算時間。圖像表面會有一些特征點,可以看作是兩個點集之間的 registration。所以可以使用 GNN 來做。
registration 一般來說是計算得到一個空間轉(zhuǎn)換,將兩張圖或者兩組特征點 align 起來。像我自己做得比較多的關(guān)于大腦圖像的研究中,registration 通常是第一步。如果得到這些點集,我們可以通過點對點的 registration 來計算轉(zhuǎn)換矩陣。
這篇文章的主要貢獻在于上圖中 DGCNN 的模塊。對應(yīng)該模塊的輸入是兩組點集,藍色框是固定點集,橙色的框是移動點集。
簡單的看一下運算需要的輸入:
其中 PF和PM就是前面提到的 fixed 點和moving的點。(PF)和(PM)是通過DGCNN 模塊得到的。DGCNN 的框架如上圖中的網(wǎng)絡(luò)圖所示。每個點集有 4096 個點和每個點有 3D 的特征,通過包括 EdgeConv、Linear等的層之后,得到每個點的 16 維的向量表示,就是 (PF)和(PM)。下面是結(jié)果:
多模態(tài)融合
多模態(tài)融合研究的是如何將不同模態(tài)的醫(yī)學(xué)影像利用圖卷積結(jié)合在一起分析。
Interpretable Multimodality Embedding of Cerebral Cortex Using Attention Graph Network for Identifying Bipolar Disorder
這是我們的一個工作。是將大腦的結(jié)構(gòu)核磁共振成像(sMRI)和功能核磁共振成像(fMRI)信息結(jié)合起來,做雙相情感障礙(bipolar disorder)和正常人的分類。在我們這個工作中,是根據(jù)功能性MRI在不同腦區(qū)之間的相關(guān)性來構(gòu)圖的。定義每個大腦分區(qū)為圖上的一個頂點,它們之間的相關(guān)性系數(shù)作為邊的權(quán)重。結(jié)合 sMRI 和 fMRI 的方法是把它們堆疊到每個節(jié)點的特征上。
在該工作中另一點比較有意思的是采用了帶權(quán)重的EGAT(weighted graph attention neural network),如上圖中的注意力層,因為我們想要了解哪個腦功能分區(qū)對雙相情感障礙的影響更大。池化方法是采用的是 DIFFPOOL。
上圖左邊是關(guān)于注意力 map 和節(jié)點特征的可視化結(jié)果。右邊是一些參數(shù)和對比實驗設(shè)計的結(jié)果,總的來說將 fMRI 和 sMRI 結(jié)合起來的結(jié)果是最好的。
疾病預(yù)測
Disease prediction using graph convolutional networks: Application to Autism Spectrum Disorder and Alzheimer’s disease
這是早期將 GCN 應(yīng)用到醫(yī)學(xué)圖像領(lǐng)域的工作之一,主要的工作是將人當(dāng)作圖中的節(jié)點,根據(jù)人的一些表型數(shù)據(jù),比如像基因、性別、年齡等,利用它們的相似性來構(gòu)造邊。本文利用大腦圖像提取出來的特征向量作為每個節(jié)點的特征表示。這是個半監(jiān)督學(xué)習(xí)的問題,圖中的一部分節(jié)點是有標(biāo)簽的(有無疾?。?,還有一部分節(jié)點沒有標(biāo)簽,主要任務(wù)就是預(yù)測沒有標(biāo)簽的這部分人有無疾病。
上面這篇工作在這里就不細講了,來看一下另一篇相關(guān)工作:
InceptionGCN: Receptive Field Aware Graph Convolutional Network for Disease Prediction
這篇工作和上一篇一樣,也是將人看作圖中的節(jié)點,用半監(jiān)督學(xué)習(xí)方式預(yù)測沒有標(biāo)簽的那部分人有無疾病。這篇文章值得一提的是它在算法上的創(chuàng)新,提出了 InceptionGCN,通常我們在做圖卷積的時候考慮的 K-hop 鄰域都是固定的,比如 graphsage 只考慮 one-hop 鄰域。而在這篇文章提出把不同感受野卷積核合在一起。比如下圖中的第一個虛線框中,k1到 ks,代表著這些卷積核考慮了不同維度的感受野,然后將它們合在一起。然后通過一個聚合器,該文章的聚合器有兩種嘗試,第一個是 connection 將所有的卷積核得到的特征 Concat 起來,另外一種是最大池化。
比較有趣的是,他們在實驗中發(fā)現(xiàn)了比較矛盾的結(jié)論。他們在 TAPOLE 和 ABIDE 兩個數(shù)據(jù)集上進行了嘗試,發(fā)現(xiàn)在 TAPOLE 數(shù)據(jù)集上 Inception GCN 的結(jié)果是優(yōu)于基準(zhǔn)模型的,但是在 ABIDE 數(shù)據(jù)集上,結(jié)果卻不如基準(zhǔn)模型。
于是他們通過 TSNE 將輸入數(shù)據(jù)的特征可視化出來,發(fā)現(xiàn) TADPOLE 數(shù)據(jù)集的數(shù)據(jù)可視化出來,不同節(jié)點的特征更加可分。但是 ABIDE 則不那么可分。
那么是不是 InceptionGCN 對于這種節(jié)點特征不是那么現(xiàn)行可分的圖不適用呢?所以他們又做了一些仿真工作。如下圖所示:
最左邊這個圖是比較好的情況,不同組之間的節(jié)點特征區(qū)分明顯。中間這個圖則是不太好區(qū)分的。
結(jié)果顯示,InceptionGCN 確實在第二種情況下,效果不太好。所以這是一個很有趣的探究,當(dāng)我們選擇使用模型的時候,要首先對數(shù)據(jù)進行一定的考量,選擇合適的模型。
大型醫(yī)學(xué)圖像分析
大型醫(yī)學(xué)圖像主要還是組織學(xué)醫(yī)學(xué)圖像,通常一張組織學(xué)圖像至少有幾個 G 的大小。傳統(tǒng)的基于 GNN 的算法不能把整張圖作為輸入,所以大家會用 patch-based 的方法來分析,但是這很容易忽略圖像空間中的聯(lián)系。這也是使用 GCN 來分析大型圖像的初衷。
Cgc-net: Cell graph convolutional network for grading of colorectal cancer histology images.
要講的第一份工作是來自 19年 CVPR,使用 GCN 來對組織學(xué)圖像進行分類。
它的構(gòu)圖方式是用 detection 的方式來得到每個節(jié)點。
這是這篇工作整體的框架。大家對細節(jié)感興趣的話,可以看看原文。
另一篇GNN 應(yīng)用于大型醫(yī)學(xué)圖像分析的工作是:
Weakly-and Semi-supervised Graph CNN for Identifying Basal Cell Carcinoma on Pathological Images
任務(wù)是病理檢測,檢測病理影像中的基底細胞癌。我們一起看一下他們做的一些事情
最上面一行是 ground truth,就是想檢測一些病理模式。主要思想是想通過 patch-based 的分析方法加 GNN得到相似的檢測。網(wǎng)絡(luò)框架如下圖:
先將圖像的小 patch 的特征輸入到預(yù)訓(xùn)練好的 CNN 模型中,得到每個 patch 的向量表示。得到patch 的向量表征之后有兩個設(shè)置,一個是弱監(jiān)督設(shè)置,一個是半監(jiān)督設(shè)置。
講的都比較簡單,大家可以看文章的具體內(nèi)容。
腦分割
Graph convolutions on spectral embeddings for cortical surface parcellation.
這篇工作跟我們直接應(yīng)用已有的GNN不一樣,他們提出了譜域的卷積。如下圖所示:
輸入的圖經(jīng)過幾個譜域卷積層 之后,得到了大腦的分割結(jié)果。右邊的小圖是他們的方法和其他的方法結(jié)果的比較??梢钥吹?,他們的分割方法可以保留很多的細節(jié),并且是相對比較光滑的。
這個譜域卷積有什么特別之處呢?文中提到了傳統(tǒng)的譜嵌入只能在左邊這種正交的柵格空間中實現(xiàn),如果想要實現(xiàn)在右邊這種譜嵌入,就要把所有的基向量轉(zhuǎn)換到同樣的參考坐標(biāo)中。最后的譜卷積公式就是 z。
看下圖會更加直觀的理解譜卷積是如何操作的。
腦連接
這是最后一個應(yīng)用,這是我自己的一個工作,研究如何用 GNN 做腦連接的一些分析。這個工作有兩個目標(biāo),一個是如何對不同的腦連接進行分類,一般是病人和非病人。另外還想探究,是怎樣的腦連接子網(wǎng)絡(luò)和疾病有關(guān)系。
整體的框架分為兩部分,第一部分就是構(gòu)造腦網(wǎng)絡(luò),并且對腦網(wǎng)絡(luò)進行分類。構(gòu)圖的方法是將大腦分為一些區(qū)間,每個區(qū)間作為一個節(jié)點,節(jié)點之間的邊是每個大腦區(qū)間之間的 fMRI 時間信號的相關(guān)性構(gòu)造的。通過手工提取的方式提取了一些節(jié)點的特征。在完成第一步圖分類后,第二部,我們想解釋哪些子圖/節(jié)點是具有 predition power的。于是我們講劃分好的子圖在已訓(xùn)練好的GNN中去測試,找到對分類重要的子圖/節(jié)點。
另外一個腦連接的工作是:
Graph Embedding Using Infomax for ASD Classification and Brain Functional Difference Detection
這個工作結(jié)合了最近提出的 deep graph infomax 的方法去加強卷積層之后的embedding部分。
除了利用從數(shù)據(jù)中真實構(gòu)造好的圖進行圖分類以外,我們有另一個分支去獲得更好的節(jié)點特征嵌入效果。在這個分支中,我們構(gòu)造了一些假的圖,然后將真圖和假圖的一些表示同時放入 discriminator 中區(qū)分這些表示來自真圖還是假圖。
這里給出了 148 大腦區(qū)域中的 24個大腦區(qū)域 embedding的可視化結(jié)果,患者是紅色,正常人是綠色,加上 graph infomax 的損失之后,正常人和患者的有些大腦區(qū)域更加線性可分。
在大腦的 148個區(qū)域中,我們發(fā)現(xiàn)了 31個比較線性可分的大腦區(qū)間,在上圖中的標(biāo)記為紅色。
總結(jié)
醫(yī)學(xué)圖像中存在著圖結(jié)構(gòu),所以可以使用 GNN 完成上面提到的這些任務(wù)。通過閱讀這些paper,我的啟發(fā)是根據(jù)醫(yī)學(xué)影像構(gòu)造圖結(jié)構(gòu)是很重要的,不同的構(gòu)造方法對實驗的結(jié)果有很大的影響。另外一點是如何設(shè)計合適的 GNN 來做特定的任務(wù)。
編輯:hfy
評論
查看更多