【Pytorch】复现FCN for Left Ventricle(LV) segmentation记录
【持續更新中…】
算法概括
FCN將傳統卷積網絡后面的全連接層換成了卷積層,這樣網絡輸出不再是類別而是 heatmap;同時為了解決因為卷積和池化對圖像尺寸的影響,提出使用上采樣(upsampling)的方式恢復。
上采樣-反卷積(deconvolution)
經過多次卷積和pooling以后,將得到尺寸越來越小、分辨率越來越低的圖像,最終得到高維特征圖(heatmap);接著我們需要對其進行upsampling,將圖像一步步放大至原圖像尺寸。最后的輸出是n(類別數)個通道heatmap經過upsampling變為原圖大小的圖片,為了對每個像素進行分類預測label成最后已經進行語義分割的圖像,通過逐個像素地求其在n個通道上該像素位置的最大數值描述(概率)作為該像素的分類依據,由此得到一張完成分類的圖片。
FCN優點
- 不含全連接層(fc)的全卷積(fully conv)網絡。可適應任意尺寸輸入。
- 增大數據尺寸的反卷積(deconv)層。能夠輸出精細的結果。
- 結合不同深度層結果的跳級(skip)結構。同時確保魯棒性和精確性。
FCNs的結構如下圖所示:
Sunnybrook數據集
The dataset consists of 16-bit MRI images in DICOM format and expert-drawn contours in text format (coordinates of contour polylines). A sample image/label pair may look like:
數據集包含16位的核磁共振圖像(DICOM格式),下面是一對圖像和標簽的例子:
使用Visdom實現DL訓練可視化
簡介
Visdom是Facebook在2017年發布的一款針對PyTorch的可視化工具。visdom由于其功能簡單,一般被定義為“網頁版的matplot”,我們可以直接利用python的控制臺模式進行開發并在服務器上執行,并通過向Visdom服務端傳輸可視化數據進行可視化。
示例
下圖便是神經網絡訓練過程中,Visdom客戶端的界面,展示的內容包括訓練loss曲線、測試loss曲線、訓練結果、測試結果等等,直觀明了。
實驗結果
實驗相關信息
- 數據集大小:原圖像、標簽圖像各800余幅
- 運行輪次(epochs):25輪
- batch size:4
- 耗時:2h
- 運行設備:CPU【11th Gen Intel? Core? i5-11320H @ 3.20GHz 3.19 GHz】
Visdom結果可視化
下圖中左側三幅圖從上往下分別表示原圖像(MRI圖像),模型的預測結果,測試集標簽;
右側的圖表為測試過程中的Dice Loss曲線,其原理將在【補充知識】模塊中作簡要講解。
補充知識
醫學圖像分割的Dice Loss
Dice系數, 是一種集合相似度度量函數,通常用于計算兩個樣本的相似度(值范圍為 [0, 1]):
s=2∣X∩Y∣∣X∣+∣Y∣s = \frac{2|X \cap Y|}{|X|+|Y|}s=∣X∣+∣Y∣2∣X∩Y∣?
其中∣X∩Y∣|X \cap Y|∣X∩Y∣表示X與Y的交集;∣X∣|X|∣X∣和∣Y∣|Y|∣Y∣分別表示X與Y 的元素個數;分子乘上2是考慮到分母重復計算X、Y共同元素。
s=1?2∣X∩Y∣∣X∣+∣Y∣s=1-\frac{2|X \cap Y|}{|X|+|Y|}s=1?∣X∣+∣Y∣2∣X∩Y∣?
圖像里的“Ground Truth”
在有監督學習中,數據是有標注的,以(x, t)的形式出現,其中x是輸入數據,t是標注.正確的t標注是ground truth, 錯誤的標記則不是。(也有人將所有標注數據都叫做ground truth)由模型函數的數據則是由(x, y)的形式出現的。
其中x為之前的輸入數據,y為模型預測的值。標注會和模型預測的結果作比較。在損耗函數(loss function / error function)中會將y 和 t 作比較,從而計算損耗(loss / error)。
總結成一句話:
Ground Truth: 就是指正確打標簽的訓練數據 或 簡單來說就是有效的正確的數據。
訓練網絡時CPU或GPU的使用
- 明確使用CPU:device=torch.device(“cpu”)
- 明確使用GPU:device=torch.device(“cuda”)
- 優先使用GPU(如果有):device = torch.device(‘cuda’ if torch.cuda.is_available() else ‘cpu’)
VGG網絡簡介
(FCNs將VGG作為預訓練網絡,即在其基礎上搭建網絡結構)
- 意義:證明增加小卷積核個數及增加網絡深度以提升圖像分類能力的有效性
- 預處理:各通道減去RGB在訓練集上的均值
- 特點:網絡深度大;使用小尺寸卷積核(3*3)替代大尺寸卷積核
- 優點:網絡結構簡潔,網絡表達能力更強
- 缺點:網絡參數數量多,存儲所需容量大,且需要的訓練時間較長
總結
以上是生活随笔為你收集整理的【Pytorch】复现FCN for Left Ventricle(LV) segmentation记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯企业 html邮件模板,python
- 下一篇: 传统IDC为什么要转型?这里解释的很清楚