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