HED 論文:Holistically-Nested Edge Detection
HED(Holistically-Nested Edge Detection)是一個(gè)端到端的邊緣檢測(cè)網(wǎng)絡(luò)虚倒,特點(diǎn)是提取不同尺度的特征赌莺,和多輸出的多監(jiān)督及融合。 HED 在產(chǎn)業(yè)上應(yīng)用比較廣泛挽鞠。
Holistic:指該方法的預(yù)測(cè)和訓(xùn)練都是端到端的;Neted:指通過(guò)多層級(jí)的輸出蔚万,漸進(jìn)地優(yōu)化最終結(jié)果催式。作者的命名邏輯...
看這篇邊緣檢測(cè)的論文主要是想知道邊緣檢測(cè)的損失函數(shù)應(yīng)該怎么設(shè)計(jì)呜舒。我本來(lái)的想法是直接像語(yǔ)義分割一樣锭汛,用 IoU ,后來(lái)想想不對(duì)袭蝗,如果一個(gè)邊緣檢測(cè)結(jié)果是 GT 平移了幾個(gè)像素唤殴,那它仍可稱(chēng)得上好,但它的 IoU 卻會(huì)驟降至和隨機(jī)結(jié)果差不了多少到腥。如果對(duì)邊緣檢測(cè)問(wèn)題用 IoU 做優(yōu)化對(duì)象朵逝,恐怕在優(yōu)化時(shí)根本找不到可以下降的梯度方向。
出發(fā)點(diǎn)
邊緣檢測(cè)的任務(wù)是提取圖像內(nèi)每個(gè)對(duì)象的邊界乡范,而排除對(duì)象的紋理配名。HED 被設(shè)計(jì)以解決兩個(gè)問(wèn)題:(1)對(duì)圖像整體的訓(xùn)練和預(yù)測(cè),End-to-end篓足;(2)多尺度的特征提取段誊。
End-to-end
端到端很容易實(shí)現(xiàn),因?yàn)檫吘墮z測(cè)任務(wù)的輸入和輸出都是一張圖片栈拖,只是通道數(shù)不同连舍,很明顯可以應(yīng)用一個(gè)全卷積的網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。HED 的骨干網(wǎng)絡(luò)采用 VGG,并將 VGG 后面的全連接層結(jié)構(gòu)全部移除索赏,只保留卷積層盼玄。
多尺度特征
一些曾被應(yīng)用過(guò)或正在被應(yīng)用的多尺度特征提取方法。
(a) 多通路并行網(wǎng)絡(luò)潜腻,通過(guò)不同的網(wǎng)絡(luò)深度得到不同的感受野埃儿,輸出聚合在一起;
(b) 跳線連接融涣,將來(lái)自不同卷積層的輸出通過(guò)跳線連接在一起童番,作為特征提取結(jié)果(實(shí)際上跳線連接也可以在各個(gè)卷積層之間連接,而不僅限于到輸出層威鹿,比如 U-Net 結(jié)構(gòu))剃斧;
(c) 同一個(gè)網(wǎng)絡(luò),采用不同尺寸的輸入忽你;
(d) 不同深度的網(wǎng)絡(luò)完全分立(這個(gè)方法感覺(jué)最拉跨幼东,各個(gè)尺度上的特征沒(méi)有相關(guān)性,也沒(méi)聽(tīng)說(shuō)過(guò)有人這么搞)科雳;
(e) HED 提出的結(jié)構(gòu)根蟹,在卷積網(wǎng)絡(luò)的不同深度引出“側(cè)輸出”,將這些側(cè)輸出聚合成最終輸出(和 (b) 的不同在于每個(gè)側(cè)輸出都能被監(jiān)督并進(jìn)行反向傳播糟秘,這里應(yīng)用了中繼監(jiān)督的思想简逮,也是一個(gè)很泛用的做法)。
中繼監(jiān)督
這篇文章也用了中繼監(jiān)督沛婴,之前看的 Stacked Hourglass 也是吼畏。不過(guò) Stacked Hourglass 的側(cè)輸出是還要被輸入到下個(gè)特征提取網(wǎng)絡(luò)里繼續(xù) refine 的,旨在迭代地優(yōu)化輸出結(jié)果嘁灯。
HED 的側(cè)輸出和 GoogLnet 等一些常見(jiàn)的側(cè)輸出比較像泻蚊,前面也說(shuō)了,淺層的特征保留了更多的信息丑婿,但是相對(duì)而言感受野更小性雄,那么 HED 就取多個(gè)不同深度的特征,分別在這些位點(diǎn)設(shè)置輸出層羹奉。具體地秒旋,HED 在每個(gè) VGG 內(nèi)尺寸的特征圖上引出一個(gè)卷積層作為側(cè)輸出層。
損失函數(shù)
側(cè)輸出
HED 將邊緣檢測(cè)任務(wù)歸納為對(duì)每個(gè)像素點(diǎn)的二分類(lèi)任務(wù)——“邊緣”和“非邊緣”诀拭。對(duì)于 HED 的單個(gè)輸出而言迁筛,其損失函數(shù)為所有像素點(diǎn)的二分類(lèi)損失函數(shù)的和,另外耕挨,由于邊緣占的像素總數(shù)一般都會(huì)少于非邊緣细卧,所以實(shí)際是邊緣的像素提供的二分類(lèi)損失函數(shù)會(huì)乘以一個(gè)更大的權(quán)重尉桩,以進(jìn)行正負(fù)樣本平衡。HED 整體的損失函數(shù)就是它所有輸出的損失函數(shù)的加權(quán)和贪庙。
轉(zhuǎn)化成數(shù)學(xué)語(yǔ)言就是:
其中指特征提取網(wǎng)絡(luò)(VGG)的權(quán)重蜘犁,
指 HED 第
層輸出的輸出層權(quán)重,
為平衡每層輸出為最終損失貢獻(xiàn)的系數(shù)止邮,
為平衡正負(fù)樣本的系數(shù)这橙,
和
分別指代邊緣像素和非邊緣像素,
為像素
輸出的置信度导披。
融合輸出
上面的損失函數(shù)是針對(duì)每個(gè)側(cè)輸出進(jìn)行優(yōu)化析恋,HED 的最終輸出是每個(gè)側(cè)輸出按照一定的權(quán)重加總得到的融合輸出,這些權(quán)重是通過(guò)訓(xùn)練學(xué)習(xí)到的盛卡,而非人為設(shè)定的助隧。
融合輸出的損失函數(shù)如下:
其中融合輸出,
是每個(gè)側(cè)輸出在融合時(shí)的權(quán)重滑沧,
計(jì)算輸出和 GT 之間的距離并村,這里采用交叉熵函數(shù)。
整個(gè)模型在訓(xùn)練時(shí)的優(yōu)化目標(biāo)權(quán)重為:
可以看到滓技,最終的損失函數(shù)中存在一定的冗余哩牍,由于融合輸出是由側(cè)輸出得到的,側(cè)輸出似乎被不止一次地懲罰了令漂。不過(guò)膝昆,先不論這種冗余是不是必要的,據(jù)作者言叠必,只對(duì)融合輸出進(jìn)行懲罰得到的效果是不夠好的荚孵,因?yàn)槟P涂倳?huì)區(qū)域?qū)W習(xí)更大尺度上的特征。
對(duì)損失函數(shù)的想法
HED 的損失函數(shù)是一種很直接的思路纬朝,不過(guò)任然有這樣的問(wèn)題:當(dāng)一個(gè)被預(yù)測(cè)為“邊緣”的像素點(diǎn)實(shí)際上是“非邊緣”時(shí)收叶,不管它和 GT 離得有多近,體現(xiàn)在損失函數(shù)上共苛,都和一個(gè)差 GT 十萬(wàn)八千里的像素點(diǎn)沒(méi)有區(qū)別判没。這種設(shè)計(jì)——就我個(gè)人的理解——會(huì)讓損失函數(shù)的梯度出現(xiàn)大面積的平坦區(qū)域,梯度下降難以工作隅茎。但目前的工作似乎都是在用交叉熵作為損失函數(shù)澄峰,雖然今年也提出了 G-IoU、D-IoU 等將 IoU 調(diào)整后作為損失函數(shù)的方法辟犀,但是限于數(shù)學(xué)表達(dá)上的困難俏竞,目前只能應(yīng)用于矩形邊界框,而不能應(yīng)用于像素集分割。