雷鋒網 AI 研習社按:最近一段時間以來,醫學影像作為人工智慧重要的應用領域,受到學界和越來越多 AI 公司的關注。Nature、Science、Cell 上頻頻刊登在醫療影像中應用 AI 的文章,谷歌、IBM、依圖科技等公司也紛紛加入 AI+ 醫療的競爭……
作為全球最大的數據科學競賽平臺,Kaggle 也順理成章搭上了這班順風車,與 Booz Allen Hamilton 諮詢公司一同推出了 2018 年 Data Science Bowl 比賽。
眾所周知,鑑定細胞的細胞核是大多數醫學分析的起點。人體 30 萬億細胞中,大部分都有細胞核,而這些細胞核中存儲了 DNA。識別細胞核可以讓研究人員識別樣本中的每一個細胞,通過測量細胞對各種治療措施的反應,研究人員可以了解潛在的生物過程,進而提高藥物檢測的效率,縮短新藥的開發周期。
本次比賽要求參賽者構建計算機視覺模型,從圖片中識別不同條件下的細胞核,並且以均值平均精度(MaP)和交並比(IoU)作為評價指標。該比賽獎池巨大,達到了 10 萬美金之多,共吸引了 861 支隊伍。
下面是第一名的解決方案,雷鋒網 AI 研習社編譯整理如下。
U.Net vs Mask-RCNN
我們之前有參加過圖像分割挑戰賽(如 Carvana,Urban 3D,Spacenet,Konica Minolta),在這些比賽中,我們積累了豐富的經驗。因此,這一次比賽的選擇非常明確——開了掛的 U-Net!
目標掩膜(target mask)
首先,我們嘗試了最簡單的方法,並將針對二進位掩膜的分水嶺算法加入其中(換言之,修改 GT 掩膜使得細胞核之間總是存在間隙),這讓我們在公開榜單上獲得了大約 500 的分數。顯然,這不足以贏得比賽。
然後,我們加入了代表輪廓的通道,輪廓的寬度取決於細胞核的大小。這些掩膜 + 簡單的分水嶺後置處理算法讓我們在公開榜單上大約獲得了 525 分。儘管這並不是一個大的突破,但是它給了我們對正確方向的啟示。
回過頭來看這些錯誤,很明顯,網絡很容易在不模糊的地方預測輪廓。然而,在我們真正需要通過輪廓去分割出細胞核的地方,這些網絡的表現卻非常糟糕。因此,我們決定只預測細胞之間的邊界。很容易地,我們通過單一的網絡處理結果 + 分水嶺後置處理在公共榜單上獲得了大於 550 的分數。
儘管我們在一個通道中有全掩膜,在另一個通道中有細胞的邊界,但有時結果還是不夠好。一個更好的方法是改變原子核的掩膜並且使邊界上的像素點變成空白。這也讓我們能夠使用 softmax 而不是 sigmoid 函數作為激活函數。這樣可以更好地分離出原子核,但是實際上,由於交並比(IoU)的閾值太高,均值平均精度(MaP)卻被降低了。我們通過額外在全掩膜上訓練的網絡去解決這個問題,並且在後置處理的步驟中將結果進行融合。
最終方案
2 通道 sigmoid 激活函數掩膜網絡(例如,掩膜-邊界、邊界)或3通道 softmax 激活函數掩膜網絡(例如,掩膜-邊界、邊界、1-掩膜-邊界)2 通道全掩膜(例如,掩膜、邊界)
對於圖c43e356beedae15fec60ae3f8b06ea8e9036081951deb7e44f481b15b3acfc37,處理結果看起來是這樣的:
在 post 處理之後的結果為:
圖像增強
由於只有幾百張訓練圖像,我們需要提出具體的數據增強方案來防止模型過擬合,更好地泛化。我們用了大量的數據增強方法(或許太多了)
對比度受限自適應直方圖均衡化算法(Clahe),銳化(Sharpen),凸點(Emboss)高斯噪聲彩圖到灰度轉換(Color to Gray)反相——我們本不該使用它的,這種方法使得第二階段一些圖像沒有被準確地預測將灰度圖重新映射到隨機顏色的圖像中模糊(Blur)、一般模糊(Median Blur)、非常模糊(Motion Blur)對比度和亮度隨機縮放、旋轉、翻轉重度幾何變換:彈性變換(Elastic Transform)、透視變換(Perspective Transform)、分段仿射變換(Piecewise Affine transforms)、枕形畸變(Pincushion Distortion)隨機色相、飽和度、明度(HSV)變換通道重排——由於數據的天然性,這一點非常重要圖像上細胞核的複製。這樣就創造了大量重疊的細胞核,似乎有助於網絡更好地學到重疊細胞核的邊界。
網絡架構
我們使用在 ImageNet 上預訓練好的、類似於編碼器——解碼器結構的 UNet 網絡。
令人驚訝的是,像 VGG16 這樣的簡單編碼器根本不適用於這個比賽,比如在細胞組織上看起來像細胞核(但事實上並不是)的困難情況下就失敗了,尤其是在像 59b35151d4a7a5ffdd7ab7f171b142db8cfe40beeee67277fac6adca4d042c4 這種彩色圖片中:
這些實驗之後,我們決定進行更加深入的研究!結果顯示,本次比賽中性能最好的模型是:DPN-92, Resnet-152,INceptionResnetV2,Resnet101
二級模型/後置處理
在這個部分,我們使用預測出的細胞核作為候選,來訓練 LightGBM 模型。每一個候選都是通過最低的(決策樹)分裂閾值挑選出來的,並且試圖與較高的閾值和損失分開。我們使用幾個基本的形態學特徵來描繪候選,例如:堅固性、循環性、凸性、面積、計數等。預測目標是交互比,之後根據預測出的交互比選擇候選的最佳閾值,將交互比很小的候選直接刪除。
額外數據
我們從 janowczyk、nucleisegmentationbenchmark、isbi2009、BBBC020、TNBC 數據集中額外添加了一些圖像,其中一部分圖像降低了我們在公共榜單上的得分,使得對彩色圖片的預測不那麼準確。很遺憾的是我們沒有時間去找到問題的根源,進而做出進一步的調整。
集成
我們使用了一種簡單的方法:僅僅在後置處理之前對掩膜的結果取了平均。
訓練
隨機裁剪(random crops): 256*256批處理尺寸(batch size):16優化器:Adam學習率:初始值為十的負四次方(我們有不同的 LR 策略,但是大多數情況下選擇不超過十的負四次方的小 LR 值)。
損失函數
對於使用 sigmoid 激活函數和 2 通道掩膜的網絡,我們為每個通道使用「binary_crossdentropy」和「soft_dice」的組合。 對於使用 softmax 激活函數和 3 通道掩膜的網絡,我們為每個通道使用 「categorical_crossentropy」和「soft_dice」(soft dice 僅僅適用於掩膜和邊界通道)
測試時間增強
標準翻轉/旋轉(0度,90度,180度,270度)。
via Kaggle
雷鋒網 AI 研習社編譯整理。