【语义分割】ICCV21_Self-Regulation for Semantic Segmentation
文章目錄
- 一、背景
- 二、動(dòng)機(jī)
- 三、方法
- SR-F Loss:Shallow to Deep
- SR-L Loss:Deep to Shallow
- 四、效果
論文地址:https://arxiv.org/pdf/2108.09702.pdf
代碼地址:https://github.com/dongzhang89/SR-SS
一、背景
語(yǔ)義分割的目的是對(duì)圖中的每個(gè)像素進(jìn)行分類,現(xiàn)有的效果較好的網(wǎng)絡(luò)基本可以解決 85% 的問(wèn)題,然而其他15%的問(wèn)題作者發(fā)現(xiàn)基本上是由于以下兩個(gè)原因:
- Failure-1:缺失了小目標(biāo)或目標(biāo)的某一部分(該問(wèn)題的原因在于未充分利用細(xì)節(jié)部分,如圖1d的“馬腿”)
- Failure-2:錯(cuò)誤預(yù)測(cè)大目標(biāo)的某一部分的類別(該問(wèn)題的原因在于未充分利用視覺(jué)上下文信息,如圖1h)
二、動(dòng)機(jī)
緩解 Failure-1:
作者在圖 1 中表示了自己的觀點(diǎn),作者發(fā)現(xiàn)如圖 1b 所示,在淺層的時(shí)候小目標(biāo)的各個(gè)部分都可以很清楚的看到,所以,如果能較好的利用這些信息,則可以緩解 Failure-1,如圖1e所示。
現(xiàn)有的方法如 Hourglass、SegNet、U-Net、HRNet,基本上都通過(guò)reshape+combining feature 的方法來(lái)解決。共性實(shí)現(xiàn)方式大多是這樣的:pixel-wise addition, map-wise concatenation, pixel-wise transformation,但是這都會(huì)引入很多的參數(shù)量。
緩解 Failure-2:
作者發(fā)現(xiàn)如圖 1 中的“牛”這個(gè)目標(biāo),如果使用 image-level 的 classification loss 來(lái)訓(xùn)練模型,則可以很好的緩解 Failure-2:即在 pixel-level 來(lái)混合 foreground objects (‘cow’) 和 local pixel cues (‘horse’)。直觀的原因在于 loss 會(huì)懲罰預(yù)測(cè)成沒(méi)有看到的 class-level 的上下文(如:牛不會(huì)有一個(gè)馬嘴)。
所以,本文中作者使用這樣的直觀想法并且提出了一個(gè) loss function 來(lái)每個(gè)圖像提升上下文的編碼。
三、方法
作者提出了 Self-Regulation,其有三個(gè)不同種類的 loss 組成:
- Multi-Exit Architecture loss(MEA):對(duì)每個(gè)block 應(yīng)用 image-level multi-label classification loss+ pixel-level segmentation loss
- Self-Regulation loss using Feature maps(SR-F):Teacher 和 Student block 輸出特征之間的蒸餾 loss
- Self-Regulation loss using classification Logits(SR-L):Teacher 和 Student block 的分類得分之間的蒸餾 loss
MEA Loss: Multiple-Exit Architecture(MEA),首次提出是在 [23] 中,為了提升模型的推理速度,本文中,使用 MEA 是為了在一個(gè)模型中同時(shí)訓(xùn)練分類和分割任務(wù)。
SR-F && SR-L Loss:圖3展示了 conv 結(jié)構(gòu)和 U-shape 結(jié)構(gòu)的 pipline
- 在標(biāo)準(zhǔn)的 U-shape 結(jié)構(gòu)中,Encoder 是由一系列卷積模塊組成,Decoder 是由相同數(shù)量的解卷積模塊組成。
- 在 Encoder 中,最淺層 block 輸出的特征圖被作為深層 block 的真值(在計(jì)算 SR-F loss時(shí))
- 在 Decoder 中(或 conv 結(jié)構(gòu)的Encoder),最深層輸出的 classification 概率被當(dāng)做真值來(lái)指導(dǎo)淺層 block 的學(xué)習(xí)(在計(jì)算 SR-L loss時(shí))
- 在反向傳播 loss 時(shí),模型在每個(gè) layer 同時(shí)被指導(dǎo)學(xué)習(xí) pixel-level(被最淺層指導(dǎo))和 semantic-level(被最深層指導(dǎo))的信息,所以能夠生成較好的特征表達(dá)。
SR-F Loss:Shallow to Deep
如圖3所示:
- 每個(gè)卷積 block 或解卷積 block 可以被看做獨(dú)立的特征抽取器,ending block(最淺或最深block)可以在不同情況下被當(dāng)做 teacher 或 student ,因?yàn)楸疚牡膕elf-regulation(自調(diào)節(jié))是雙向的。
- middle blocks 永遠(yuǎn)都是 student
- Teacher 和 Student 的轉(zhuǎn)換函數(shù)分別為:Tθ(x)T_{\theta}(x)Tθ?(x) 和 S?(x)S_{\phi}(x)S??(x),其中 θ、?\theta、\phiθ、? 分別為對(duì)應(yīng)的網(wǎng)絡(luò)參數(shù)
SR-F Loss 的目標(biāo):讓網(wǎng)絡(luò)更多的保留淺層blocks保留下來(lái)的細(xì)節(jié)信息
實(shí)現(xiàn)方法: 使用最淺 block (即第一個(gè))作為 Teacher(Shallow Teacher)來(lái)控制深層 blocks (Deep Students)
Loss 第一步: 交叉熵?fù)p失
使用 cross-entropy 來(lái)衡量 Shallow Teacher 的特征圖 Tθ[1]T_{\theta}^{[1]}Tθ[1]? 和第 i 個(gè) Deep Student 特征圖 S?[i]S_{\phi}^{[i]}S?[i]? 之間的距離,得到如下 SR-F Loss:
- i∈[2,N]i\in[2,N]i∈[2,N],NNN 為 conv block 的個(gè)數(shù)
- tjt_jtj?:Tθ[1]T_{\theta}^{[1]}Tθ[1]? 的第 j 個(gè)位置的向量
- sjs_jsj?:S?[i]S_{\phi}^{[i]}S?[i]? 的第 j 個(gè)位置的向量
- MMM:特征圖大小
Loss 第二步: 使用知識(shí)蒸餾(KD)
為了提高效率,作者使用了知識(shí)蒸餾的溫度控制方法[17],Loss 如下:
- 每個(gè)特征圖的 tj1/τt_j^{1/ \tau}tj1/τ? 和 sj1/τs_j^{1/ \tau}sj1/τ? 都被歸一化了
- τ\tauτ 是溫度參數(shù),能起到平滑空間的效果,值越大,對(duì)特征圖中的最大值和最小值的差距抑制越大
Loss 第三步: 對(duì)所有 Deep Students 求和
SR-L Loss:Deep to Shallow
SR-L 的目標(biāo):讓網(wǎng)絡(luò)的淺層 block 能夠捕捉更多的全局上下文信息,來(lái)更好的應(yīng)對(duì)背景的噪聲
實(shí)現(xiàn)方法:
-
將最深層作為 Teacher(Deep Teacher),來(lái)指導(dǎo)所有的淺層(Shallow Students)
-
作者認(rèn)為,最深層輸出的 classification 概率得分包含了高層的語(yǔ)義信息,所以將 Deep Teacher 的類別得分作為指導(dǎo)
-
給定 Deep Teacher 的類別得分 Tθ[N]T_{\theta}^{[N]}Tθ[N]?,和 Shallow Students 的得分概率 {S?[k]}k=1N?1\{S_{\phi}^{[k]}\}_{k=1}^{N-1}{S?[k]?}k=1N?1?,作者同樣使用公式1-3的方法,不同的是計(jì)算兩者的概率 cross-entropy 損失,所以 SR-L loss公式如下:
Overall Loss Function:
下面用 layer-wise 的形式展示了 SR Loss,該 loss 能同時(shí)進(jìn)行分類和分割,如圖2所示,由多個(gè)分類器和分割器組成:
- LSR?segL_{SR-seg}LSR?seg? 和 LSR?clsL_{SR-cls}LSR?cls? 都是使用 one-hot 編碼為真值的 cross-entropy loss,這一對(duì)組成的 loss 叫做 MEA loss
- LSR?FL_{SR-F}LSR?F? 和 LSR?LL_{SR-L}LSR?L? 通過(guò)學(xué)習(xí)由其他層產(chǎn)生的 “soft knowledge” 來(lái)進(jìn)一步提升網(wǎng)絡(luò)的效果
- λ1=0.2\lambda_1=0.2λ1?=0.2,λ2=0.8\lambda_2=0.8λ2?=0.8,λ3=1\lambda_3=1λ3?=1
四、效果
1、消融實(shí)驗(yàn):
2、weakly-supervised 方法的對(duì)比
3、fully-supervised 方法對(duì)比
4、可視化
- 上半部分為在 pascal voc 上的效果,可以看出在baseline中預(yù)測(cè)有誤的像素,在使用了 MEA loss 后都有所改善,這得益于模型中每層都學(xué)習(xí)了更多的語(yǔ)義和細(xì)節(jié)信息。
- 在使用 SR loss后可以看出,模型對(duì)一些小的目標(biāo)部分的效果更好了(如 horse legs 和 horse tail)
- Pascal 中失敗的部分:所有方法都對(duì)顯示器的 neck 部分分割失敗了(綠色虛線框),也可能是因?yàn)榉诸惼髟谟?xùn)練顯示器這個(gè)類的時(shí)候,很少關(guān)注 neck 部分
- Cityscapes 中失敗的部分:小的目標(biāo)如遠(yuǎn)處的交通信號(hào)沒(méi)有被分割出來(lái)
總結(jié)
以上是生活随笔為你收集整理的【语义分割】ICCV21_Self-Regulation for Semantic Segmentation的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 三星电子第四季度净利润23.50万亿韩元
- 下一篇: 【python 8】python 装饰器