深度學習(u-net)在細胞核分割中的應用

這是2020的春節,實在是閒的無聊,寫個貼子吧。
這篇文章主要是一個類似於綜述性質的文章,裏面會講一下細胞核分割的圖像,算法,當然也會給出引用的文獻。
細胞核分割是個很久遠的課題了。細胞核的分割在應用上有着很廣泛的應用,比如說在溶液中統計單位體積的細胞數量可以統計細胞的密度和總數目,在病理圖片中對細胞進行分割是計算機進行腫瘤精準分析的前提,對以後的計算機輔助病理分析有着很重要的影響。這裏會介紹一些在病理圖像細胞核分割上比較常用的算法和工具。
首先我們來了解一下病理圖片。病理圖片是病理組織(也就是人體的組織)經過染色後,在顯微鏡下拍攝的照片。放大倍率一般是由顯微鏡的放大倍率決定的。一般有200倍和400倍兩種(也有文獻說是20和40,其實都是一樣的)。下圖是一個HE染色的圖片。在這裏插入圖片描述
爲什麼病理圖片要染色呢?因爲在不染色的情況下,組織幾乎是無色透明的,所以啥都看不出來。所以要進行染色。常用的染色方法是HE染色和IHC染色。HE染色主要是依靠染色劑和細胞核細胞質分別結合,將細胞核染成藍紫色細胞質染成紅色,上圖就是一個HE染色的圖像。IHC的染色原理稍有不同,它是利用抗體和體內某種抗原結合,再用DAB染色劑將抗原抗體結合後的物質進行着色,一般然出來的是細胞核是紅棕色。常用的由CD3,CD8等蛋白染色,就是將帶有這些蛋白的細胞染成紅棕色。爲了能夠更加方便的區分帶有目標蛋白細胞和普通細胞,IHC還會在DAB染色上再染一個H(H就是HE染色裏面的H)這樣子在圖像上帶有目標蛋白的細胞就是紅棕色,不帶有目標蛋白的就是和HE一樣的藍紫色。染色完了就將整個組織在顯微鏡下掃描出來,掃描出來的結果我們稱作全病理切片(WSI)。
下面介紹一下傳統的分割方法。
最傳統的圖像分割方法就是一個簡單的二值化,比較常用的是OSTU閾值化。選取一個閾值,將圖像二值化,直接區分出背景和前景。這種方法簡單粗暴,直接的結果就是效果差的一批。重疊的細胞分不開,捱得近的細胞也分不開。所以一般都會在這個不步驟上加一個距離分水嶺(用點到中心的距離做分水嶺,而不是一般的分水嶺),通過形態學上的差異,將重疊的細胞分開。但這兩種算法一般只用在灰度圖上,而病理圖像是RGB圖,所以就需要經RGB轉化成灰度圖,但是這裏也有個問題。看下圖:
第一個圖象是RGB圖,第二個是普通的灰度圖,第三個是染色分離的圖
第一個圖象是RGB圖,第二個是普通的灰度圖,第三個是染色分離的圖。我們可以看到灰度圖直接表示的就是像素點大小的關係,在這個圖像上很難通過一個簡單的形態學操作分隔開細胞核和細胞質。最右邊的是染色分離的圖,這個圖細胞核深色,細胞質明顯淺色。比灰度圖好分割。
那麼什麼是染色分離。染色分離就是將RGB顏色空間映射到染色劑染色的空間。就比如說,HE圖像染色劑是H和E,那麼RGB經過染色分離後可以得到H和E兩個通道的信息,分別代表了H和E各自的染色強度。由於細胞核只有H染色,所以我們取H通道的圖片,那麼圖像中細胞質就會變得很淺。在這種圖像上進行分割,效果更好。染色分離參考文獻Structure-Preserving Color Normalization and Sparse Stain Separation for Histological Images. 原文中有代碼,但是是matlab的。

好了,傳統的算法介紹到這裏。本文也主要是想說說深度學習。
傳統的方法是經驗型的,就是處理人員根據所得的圖片,看一下圖片的規律,然後通過一些形態學操作,分割出細胞核。這種方法第一個是效率不高,結果不怎麼好,而且很死板。當我們拿到新的圖片的時候往往原來的方法效果非常差。深度學習在這方面就好很多。
現在的深度學習已經發展的很成熟,有很多很多的模型可以用。但是像mask R-CNN之類在模式識別裏面用的很好的模型在細胞核分割裏面往往不好。
爲啥呢。一個是這種網絡是爲了適應千變萬化的自然圖像而設計的,本身就需要大量的圖像進行訓練。病理圖像雖然可以切割成很多的小patch但是病理圖像的ground truth非常難以製作。不像自然圖像,病理圖像需要專業的病理醫生才能準確的勾畫製作成本很高。所以能用來訓練的樣本就很少,這種網絡自然訓練不好。
第二個,自然圖像的分割往往是平均值的體現。只要每個圖像都分割的差不多,那麼總體效果就不會差。也因爲自然圖像太多變,所以這種網絡最後生成mask的時候都是4倍或者8倍上採樣得到。這樣子得到的mask必然是邊緣不準確的。
但模式識別的網絡也有好處,可以直接在模型上做分類,還可以部分解決細胞重疊的問題。
在細胞分割領域用的最多的還是U-net結構。這個結構有很多特點幾乎是專門爲細胞核分割設計的。
第一個,unet結構簡單,用來處理細胞核這種形態簡單的分割任務最適合不過。
二,unet的skip connect方式非常容易恢復細胞核的輪廓。
三,unet結構簡單,容易訓練,適合小樣本的分割任務。剛好滿足細胞核分割的實際情況。
四,uent採用2倍上採樣的方式,可以在每次上採樣很好的保證細胞核輪廓的清晰,可以分個出很清晰的邊界。
很多深度學習分割細胞核的文章都是unet的變體,這種結構很適合細胞核的分割,效果也非常的好。下面我主要是介紹unet變體和一些細胞核分割不同的思路。
由於病理圖像的顏色比較多變。由於染色時長,成像的機型等等不同,病理圖像的顏色風格也比較多變。所以很多文章在分割前都會做顏色的標準化,就是把所有的顏色風格統一到一種顏色風格。但這樣子會造成一定的信息損失,可做可不做,根據具體需求。顏色標準化有很多文章,用的比較多的:Structure-Preserving Color Normalization and Sparse Stain Separation for Histological Images

首先介紹一個水文,他的主要特點是利用細胞核輪廓輔助細胞核分割,這種利用細胞核輪廓輔助分割的論文有不少,我主要介紹兩個。
RIC-Unet: An Improved Neural Network Based on Unet for Nuclei Segmentation in Histology Images
直接給網絡結構圖,太簡單了,我我就不詳細講了。
在這裏插入圖片描述
上圖左邊的ground truth(GT)是細胞核的輪廓,輪廓就是細胞核的邊界,可以通過cv2.Canny(img,30,100)函數從原始的GT種直接得到。主要思路就是通過左邊輪廓的反向傳播訓練中間的下采樣分支,爲右邊的細胞核分割提供幫助。論文最後是將分割出來的輪廓和核進行相減,然後再做膨脹操作。這個做法聽起來很合理,但是效果並不好,比原來的unet提升了只是一點點,而且這個結構參數更多,提升一點點並沒有什麼說服力。所以只是提供個思路。

A Dataset and a Technique for Generalized Nuclear Segmentation for Computational Pathology
這個文章是MICCAI2018挑戰賽的文章,提出了一個細胞核分割的數據庫,論文裏面的方法也是利用了細胞核輪廓,但是效果不好。在對比試驗裏面,連普通的unet都沒有進行比較,只比較了老式的FCN。從後面的論文裏面也可以知道,它的性能比不上unet,所以這個方法不怎麼樣。主要是這個數據庫很好用,可以用來練手。

Segmentation of Nuclei in Histopathology Images by Deep Regression of the Distance Map
在這裏插入圖片描述
這個文章出發點有點意思。它不是用普通的GT進行訓練,而是先得到GT的distance map,也就是距離圖。說白了就是算出GT中每個細胞核裏面,每個像素點距離所在細胞核中心像素點的距離,當成新的GT,放進網絡進行訓練。如上圖。這個可以網上找一下算距離圖的函數,很容易得到。這種方法可以用於所有的網絡,要做的就是將原來的GT替換成disance map,最後得出的結果再通過分水林算法得到最終結果,從論文裏面看,各種模型都有所提升。原文有代碼。

Hover-Net: Simultaneous segmentation and classification of nuclei in multi-tissue histology images
在這裏插入圖片描述
這個論文也是用了距離圖,但是不是點到中心的距離圖,而是水平距離圖核垂直距離圖。網絡結構如上。每個分支執行不同的分割任務,最上面的是一般的分割,中間的是水平距離圖核垂直距離圖的分割,最下面的是分類。想法不難可以看出效果也不錯。這個也是unet的變體,只是沒有了skip connect。原文有代碼。

CIA-Net: Robust Nuclei Instance Segmentation with Contour-Aware Information Aggregation
這篇文章是miccai 2018挑戰賽的冠軍,達到了平均0.62的AJI。結果圖如下:
在這裏插入圖片描述
可以看到,這個就是一個unet的變體,作者主要在上採樣的時候做了功夫。首先通過分成兩個分支,一個預測核,一個預測邊界,同時學習核與邊界兩種語義信息。然後再上採樣的時候,兩個分支有3次交會的地方,使得核與邊界兩種信息在上採樣的時候可以不斷融合。而且作者還用了深監督的方式,在倒數第二個核第三個上採樣層都進行監督。最後,文章還提出了一種損失函數。:
在這裏插入圖片描述
在這裏插入圖片描述 最常用的是交叉熵損失,這個損失不管是錯誤還是正確的點,都一樣的算損失。CIAnet這個損失函數的出發點是:儘量減少分割錯誤的點對模型的影響。這個函數從論文中看,對模型性能的提升也很大,可以試着用用。但這個論文中沒有代碼。 好了,就講到這裏了。大家新春快樂。健健康康。