全卷機神經網路影象分割(U-net)-keras實現
阿新 • • 發佈:2019-01-24
全卷積神經網路
醫學影象分割框架
醫學影象分割主要有兩種框架,一個是基於CNN的,另一個就是基於FCN的。
基於CNN 的框架
這個想法也很簡單,就是對影象的每一個畫素點進行分類,在每一個畫素點上取一個patch,當做一幅影象,輸入神經網路進行訓練,舉個例子:
這是一個二分類問題,把影象中所有label為0的點作為負樣本,所有label為1的點作為正樣本。
這種網路顯然有兩個缺點:
1. 冗餘太大,由於每個畫素點都需要取一個patch,那麼相鄰的兩個畫素點的patch相似度是非常高的,這就導致了非常多的冗餘,導致網路訓練很慢。
2. 感受野和定位精度不可兼得,當感受野選取比較大的時候,後面對應的pooling層的降維倍數就會增大,這樣就會導致定位精度降低,但是如果感受野比較小,那麼分類精度就會降低。
基於FCN框架
在醫學影象處理領域,有一個應用很廣泛的網路結構—-U-net ,網路結構如下:
可以看出來,就是一個全卷積神經網路,輸入和輸出都是影象,沒有全連線層。較淺的高解析度層用來解決畫素定位的問題,較深的層用來解決畫素分類的問題。
問題分析
資料集需要註冊下載,我的GitHub上也有下載好的資料集。
這個挑戰就是提取出細胞邊緣,屬於一個二分類問題,問題不算難,可以當做一個練手。
這裡最大的挑戰就是資料集很小,只有30張512*512的訓練影象,所以進行影象增強是非常有必要的。
實現的效果如下:
這是扭曲之前:
這是扭曲之後:
keras 實現
效果
最後在測試集上的精度可以達到95.7。
效果如下所示: