HED 笔记

HED 论文:Holistically-Nested Edge Detection

HED(Holistically-Nested Edge Detection)是一个端到端的边缘检测网络,特点是提取不同尺度的特征,和多输出的多监督及融合。 HED 在产业上应用比较广泛。

Holistic:指该方法的预测和训练都是端到端的;Neted:指通过多层级的输出,渐进地优化最终结果。作者的命名逻辑...

HED 的各层输出,和与 Canny 方法的对比

看这篇边缘检测的论文主要是想知道边缘检测的损失函数应该怎么设计。我本来的想法是直接像语义分割一样,用 IoU ,后来想想不对,如果一个边缘检测结果是 GT 平移了几个像素,那它仍可称得上好,但它的 IoU 却会骤降至和随机结果差不了多少。如果对边缘检测问题用 IoU 做优化对象,恐怕在优化时根本找不到可以下降的梯度方向。


出发点

边缘检测的任务是提取图像内每个对象的边界,而排除对象的纹理。HED 被设计以解决两个问题:(1)对图像整体的训练和预测,End-to-end;(2)多尺度的特征提取。


End-to-end

端到端很容易实现,因为边缘检测任务的输入和输出都是一张图片,只是通道数不同,很明显可以应用一个全卷积的网络来实现。HED 的骨干网络采用 VGG,并将 VGG 后面的全连接层结构全部移除,只保留卷积层。

VGG


多尺度特征

一些曾被应用过或正在被应用的多尺度特征提取方法。

(a) 多通路并行网络,通过不同的网络深度得到不同的感受野,输出聚合在一起;

(b) 跳线连接,将来自不同卷积层的输出通过跳线连接在一起,作为特征提取结果(实际上跳线连接也可以在各个卷积层之间连接,而不仅限于到输出层,比如 U-Net 结构);

(c) 同一个网络,采用不同尺寸的输入;

(d) 不同深度的网络完全分立(这个方法感觉最拉跨,各个尺度上的特征没有相关性,也没听说过有人这么搞);

(e) HED 提出的结构,在卷积网络的不同深度引出“侧输出”,将这些侧输出聚合成最终输出(和 (b) 的不同在于每个侧输出都能被监督并进行反向传播,这里应用了中继监督的思想,也是一个很泛用的做法)。

多尺度特征提取方法(原文图片有误,把右边 Input Data 写成了 Output Data,我佛了)


中继监督

这篇文章也用了中继监督,之前看的 Stacked Hourglass 也是。不过 Stacked Hourglass 的侧输出是还要被输入到下个特征提取网络里继续 refine 的,旨在迭代地优化输出结果。

HED 的侧输出和 GoogLnet 等一些常见的侧输出比较像,前面也说了,浅层的特征保留了更多的信息,但是相对而言感受野更小,那么 HED 就取多个不同深度的特征,分别在这些位点设置输出层。具体地,HED 在每个 VGG 内尺寸的特征图上引出一个卷积层作为侧输出层。


损失函数

侧输出

HED 将边缘检测任务归纳为对每个像素点的二分类任务——“边缘”和“非边缘”。对于 HED 的单个输出而言,其损失函数为所有像素点的二分类损失函数的和,另外,由于边缘占的像素总数一般都会少于非边缘,所以实际是边缘的像素提供的二分类损失函数会乘以一个更大的权重,以进行正负样本平衡。HED 整体的损失函数就是它所有输出的损失函数的加权和。

转化成数学语言就是:

\mathcal{L}_{\text {side }}(\mathbf{W}, \mathbf{w})=\sum_{m=1}^{M} \alpha_{m} \ell_{\text {side }}^{(m)}\left(\mathbf{W}, \mathbf{w}^{(m)}\right)\\

\begin{aligned} \ell_{\text {side }}^{(m)}\left(\mathbf{W}, \mathbf{w}^{(m)}\right) &=-\beta \sum_{j \in Y_{+}} \log \operatorname{Pr}\left(y_{j}=1 | X ; \mathbf{W}, \mathbf{w}^{(m)}\right) \\ &-(1-\beta) \sum_{j \in Y_{-}} \log \operatorname{Pr}\left(y_{j}=0 | X ; \mathbf{W}, \mathbf{w}^{(m)}\right) \end{aligned}\\

其中\mathbf{W}指特征提取网络(VGG)的权重,\mathbf{w}^{(m)}指 HED 第m层输出的输出层权重,\alpha _{m}为平衡每层输出为最终损失贡献的系数,\beta = |Y_{-}|/(|Y_{-}|+|Y_{+}|)为平衡正负样本的系数,Y_{+}Y_{-}分别指代边缘像素和非边缘像素,y_{j}为像素j输出的置信度。

融合输出

上面的损失函数是针对每个侧输出进行优化,HED 的最终输出是每个侧输出按照一定的权重加总得到的融合输出,这些权重是通过训练学习到的,而非人为设定的。

融合输出的损失函数如下:

\mathcal{L}_{\text {fuse }}(\mathbf{W}, \mathbf{w}, \mathbf{h})=\operatorname{Dist}\left(Y, \hat{Y}_{\text {fuse }}\right)\\

其中融合输出\hat{Y}_{\text {fuse }} \equiv \sigma\left(\sum_{m=1}^{M} h_{m} \hat{A}_{\text {side }}^{(m)}\right)h_{m}是每个侧输出在融合时的权重,Dist()计算输出和 GT 之间的距离,这里采用交叉熵函数。

整个模型在训练时的优化目标权重为:

(\mathbf{W}, \mathbf{w}, \mathbf{h})^{\star}=\operatorname{argmin}\left(\mathcal{L}_{\text {side }}(\mathbf{W}, \mathbf{w})+\mathcal{L}_{\text {fuse }}(\mathbf{W}, \mathbf{w}, \mathbf{h})\right)\\

可以看到,最终的损失函数中存在一定的冗余,由于融合输出是由侧输出得到的,侧输出似乎被不止一次地惩罚了。不过,先不论这种冗余是不是必要的,据作者言,只对融合输出进行惩罚得到的效果是不够好的,因为模型总会区域学习更大尺度上的特征。

对损失函数的想法

HED 的损失函数是一种很直接的思路,不过任然有这样的问题:当一个被预测为“边缘”的像素点实际上是“非边缘”时,不管它和 GT 离得有多近,体现在损失函数上,都和一个差 GT 十万八千里的像素点没有区别。这种设计——就我个人的理解——会让损失函数的梯度出现大面积的平坦区域,梯度下降难以工作。但目前的工作似乎都是在用交叉熵作为损失函数,虽然今年也提出了 G-IoU、D-IoU 等将 IoU 调整后作为损失函数的方法,但是限于数学表达上的困难,目前只能应用于矩形边界框,而不能应用于像素集分割。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容