加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
知乎专栏:计算机视觉随便记
来源:https://zhuanlan.zhihu.com/p/71538356
未经作者授权,请勿二次转载
今天要聊的这篇文章是2019年CVPR的一篇显著性检测的文章。《BASNet: Boundary-Aware Salient Object Detection》,看文章标题,顾名思义,就知道文章可以很好的关注到显著性目标的边缘信息。
文章:https://webdocs.cs.ualberta.ca/~xuebin/BASNet.pdf
代码:https://github.com/NathanUA/BASNet
主要贡献
1)将显著性检测网络两个部分,一部分是predict网络,可以得到coarse saliency region,一部分是紧跟在预测网络后后面的fine网络,用来对上一步得到的coarse saliency区域进行进一步的细化,得到更加精确地显著性图。这两个网络的网络结构大致相同,都是经典的Encode-Decode网络,只不过predict网络的结构更加深一些,而fine网络则浅一些。
2)提出了hybrid loss。通过将Binary Cross Entropy (BCE),Structural SIMilarity (SSIM)和Intersection-over-Union (IoU)三种loss进行结合,让模型能够关注到图像的pixel-level,patch-level和map-level三个不同层级的显著性信息。从而获得更加精确的显著性结果。
上面的网络结构即整个BASNet算法的网络结构,同时也是整个算法的pipeline。
整个BASNet的网络结构分为两个部分:
一部分是Predict Module,这部分网络输入一张图像,然后经过encode和decode层,输出初步预测的显著性图。这部分网络就是毕竟经典的Ecode-Decode网络,前面的Encode对图像进行提取特征,使用Pooling方法得到了分辨率逐步变小的高层语义特征,后面的Decode部分则负责将高层语义信息逐步还原放大,从而逐步获得大分辨率的feature map图,最终输出和原图一样大小的显著性图。
在Encode和Decode之间,会有shortcut,将相同分辨率的feature map图相加,从而让最终的输出的feature map能够兼顾low-level和high-level的特征。值得一提的是, 在decode的过程中,共有 6 种不同分辨率的feature map图,再加上encode阶段最后一层的feature map,一共使用了7个feature map进行loss算,这种多层多loss的方法有点类似于中继loss,一方面可以帮助网络更好的收敛,另一方面可以让网络关注到不同尺度的显著性图。
另一部分是Residual Refinement Module,这部分的网络结构其实和前面的Predict Module模块网络结构一样,使用conv、BN、RELU构造encode和decode,只不过与前面的Predict Module相比,这部分的网络结构要简单一些,网络深度低一些。另外,这部分的loss只用最后一层的输出作为loss,中间层的输出则没有。
总的loss等于每层的loss的加权和:
而每层的loss又由三部分loss组成:
三部分loss分别:
pixel-level的Binary Cross Entropy (BCE)loss:
其中 表示在第r行第c列处的真实值, 则表示的是预测值。从公式形式可以看出,loss与每个像素都有关,因此是pixel-level的loss。
2. patch-level的Structural SIMilarity (SSIM) loss:
其中 表示从预测的显著性图和groundtruth上抠出的N*N区域。 分别表示 的均值和方差, 则表示他们的协方差。 则都为了防止出现除以0 的情况。分析loss可以发现,每个像素点的产生的loss都与其附近的局部patch有关(这里是N*N的patch),因此在训练的过程中,会对物体边缘部分的loss值加强,对非边缘部分抑制。正式因为这个loss的存在,使得该算法可以关注到更多的目标显著性的边缘细节信息,
3. map-level的IoU loss:
这里的S、G和BCE loss的含义是一样的。
三种loss中,BCE loss和IOU loss都是比较常见的目标检测、分割的loss。而SSIM loss在分割则不常用。这个loss一般用于衡量两幅图像的结构相似性,其对局部结构变化比较敏感。
下图是实验结果对比,可以发现性能还是比较强悍的,在GPU上,256*256的图像也可以达到25fps。虽然网络结构的改进只是对Encode-Decode结构进行叠加,loss的改进创新也只是对三种loss进行组合,但是最终的结果来看还是比较work的,也说明作者的改进点简单有效。
2大贡献:
1、构造了Coarse-to-Fine的Encode-Decode网络结构
2、借鉴目标检测、目标分割、图像相似度匹配的思想,构造了混合的loss,此loss能够关注图像的pixel-level、patch-level、map-level的显著性,从而获得更加精细的显著性结果。
-完-
*延伸阅读
国内外优秀的计算机视觉团队汇总
CVPR2019 | 快、好、实现简单并且开源的显著性检测方法
点击左下角“阅读原文”,即可申请加入极市目标跟踪、目标检测、工业检测、人脸方向、视觉竞赛等技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~
觉得有用麻烦给个在看啦~