FCN語義分割
FCN語義分割算法原理與實(shí)戰(zhàn)
本文若有舛誤,尚祈諸君不吝斧正,感激不盡。
前提概要:所使用的材料來源
對應(yīng)視頻材料:FCN語義分割
雖然可能比較簡單但是奠定了使用卷積神經(jīng)網(wǎng)絡(luò)做語義分割任務(wù)的基礎(chǔ)。
語義分割:輸入圖片,經(jīng)過網(wǎng)絡(luò)模型,輸出原始圖片對應(yīng)像素的類別。
FCN語義分割算法原理
主流常見的計(jì)算機(jī)視覺任務(wù)
- 圖像分類
- 目標(biāo)檢測
- 語義分割
- 實(shí)例分割
- and so on
FCN模型如何進(jìn)行語義分割

語義分割任務(wù):輸出的是矩陣與輸入圖像大小一致,輸出后的每個(gè)像素有對應(yīng)類別的概率,映射原圖中對應(yīng)位置的類別。
FCN模型輸出結(jié)果解析

假設(shè)標(biāo)注20個(gè)類別,則最終輸出結(jié)果是21個(gè)類別,因?yàn)檫€有一個(gè)背景類別。
輸入HxW -->net --> HxWxC 注意:C(通道數(shù))=分類個(gè)數(shù)+背景
轉(zhuǎn)置卷積先導(dǎo)

轉(zhuǎn)置卷積的計(jì)算過程

輸入特征 * 卷積核 = 輸出特征


FCN網(wǎng)絡(luò)版本解析

采取了很多跳轉(zhuǎn)連接方法
全卷積網(wǎng)絡(luò)為什么可以接收任意大小的輸入?

FCN網(wǎng)絡(luò)的損失函數(shù)
損失函數(shù)是像素級的分類交叉熵(Pixel-wise Softmax + Cross-Entropy Loss)

語義分割算法模型的評價(jià)指標(biāo)(import?。?/font>
常用的包含以下四個(gè):
-
Pixel Accuracy 像素準(zhǔn)確率

- 所有被正確分類的像素所占的比例
- 特點(diǎn):直觀簡單,但對于類分布極度不均衡的數(shù)據(jù)(如背景占比很大)會有“準(zhǔn)確率虛高”的問題
-
Mean Accuracy 平均類別準(zhǔn)確率

- 每個(gè)類別的像素準(zhǔn)確率的平均值
- 特點(diǎn):可以平衡類間分布不均的問題,但是對于小類極為敏感
-
Mean IoU 平均交并比

- 每個(gè)類別的交并比(IoU)的平均值 (語義分割中最常用的評價(jià)指標(biāo)之一?。?/li>
- 特點(diǎn):對每一類都很公平,能反映模型在小類上的表現(xiàn)
- Frequency Weighted IoU 頻率加權(quán)交并比
- 考慮類別在數(shù)據(jù)中出現(xiàn)頻率的IoU加權(quán)平均
- 特點(diǎn):類似Mean IU,但考慮了每類像素的數(shù)量,更貼近數(shù)據(jù)真實(shí)分布。避免了某些稀有類對平均結(jié)果的影響
像素準(zhǔn)確率和平均類別準(zhǔn)確率的案例:
平均交并比案例:
FCN語義分割網(wǎng)絡(luò)結(jié)構(gòu)講解
背景:標(biāo)準(zhǔn)的 FCN 論文(Fully Convolutional Networks for Semantic Segmentation, 2015)本身是基于 VGG 構(gòu)建的,并沒有顯式使用 bottleneck 結(jié)構(gòu),但后續(xù)很多工作(比如 DeepLab 系列、FCN-ResNet 等)將 FCN 與 ResNet 等網(wǎng)絡(luò)結(jié)合。所有FCN有一些不同結(jié)構(gòu)的版本。

右側(cè)的圖片為整體的流程圖,最后輸出的大小是480 x 480 x 21,其中的21(通道數(shù))表示21個(gè)類別。
Bottleneck:
結(jié)構(gòu)圖中的Bottleneck構(gòu)建了四個(gè)基本的層,這四個(gè)層就是resnet的主干網(wǎng)絡(luò)。
核心代碼:
![]()
膨脹卷積:
亦稱為空洞卷積,可以增加卷積核的感受野,同時(shí)不增加計(jì)算量。核心思想是通過插入空洞卷積擴(kuò)展卷積核的有效感受野,使其捕獲更大范圍的上下文信息。
注意:代碼中的dilation默認(rèn)為1則表示普通卷積,大于1的情況下表示膨脹卷積。
原版的Resnet中沒有使用膨脹卷積。
FCNHead:
頭部層對應(yīng)代碼






浙公網(wǎng)安備 33010602011771號