作者 | 南开大学 程明明、依图科技 颜水成

责编 | Carol

封图 | CSDN 下载自视觉中国

显著性目标检测模型通常需要花费大量的计算成本才能对每个像素进行精确的预测,因此这使得其几乎不适用于低功耗的设备。

本文旨在通过提高网络计算效率来缓解计算花费与模型性能之间的矛盾。本文提出了一种灵活的卷积模块,即广义的OctConv(generalized OctConv, gOctConv),以有效的利用级内和跨级的多尺度特征,同时通过一种新颖的动态权重衰减方案来减少特征的冗余。

这种有效的动态权重衰减方案可稳定地提高训练期间参数的稀疏性,支持gOctConv中每个尺度的可学习通道数,从而可在性能下降忽略不计的情况下,减少80%的参数。利用gOctConv,本文构造了一个非常轻量的模型,即CSNet,该模型在公开的显著性检测基准数据集上,仅使用大型模型约0.2%的参数(100k),即可获得相同的性能。源代码会在文末公开。

引言

显著性目标检测(SOD)是一项非常重要的计算机视觉任务,它在图像检索,视觉跟踪和弱监督语义分割中有多种应用。尽管基于卷积神经网络(CNN)的SOD方法已经取得了很大的进步,但这些方法大多数都集中在通过利用精细细节和全局语义,注意力以及边缘信息来提升最新技术(SOTA)的性能。

尽管这些模型的性能十分出色,但它们通常非常耗费资源,因此几乎不适用于存储/计算能力有限的低功耗设备。如何构建具有SOTA性能的超轻量级SOD模型是一个重要但研究较少的领域。

SOD任务需要为每个图像像素生成准确的预测分数,因此既需要大规模的高级特征表示以正确定位显著对象,又需要精细的低级特征表示以进行精确的边界细化。建立超轻量级的SOD模型面临两个主要挑战。

首先,当高级特征的低频特性满足显著性图的高输出分辨率时,可能会出现严重的冗余。其次,SOTA 的SOD模型通常依赖ImageNet预训练的模型来提取特征,而这些特征提取本身就是十分耗费资源的。

最近,Chen等人也注意到了低频特征的空间冗余问题。为了替代普通的卷积,他们设计了一个OctConv运算来处理在低空间分辨率上变化较慢的特征图,从而降低了计算成本。但是,直接使用OctConv去减少SOD任务中的冗余问题仍然面临两个主要的挑战。(1)仅利用OctConv中的低和高分辨率两个维度,不足以完全减少SOD任务中的冗余问题,SOD任务比分类任务需要更强的多尺度表征能力。(2)在OctConv中,每个尺度的通道数是手动选择的,由于SOD任务需要的类别信息较少,因此需要花费大量努力为显着性模型做出重新调整。

在本文中,作者通过在以下几个方面进行扩展,提出了一个广义上的OctConv(gOctConv),用于构建极轻量的SOD模型。(1)可以灵活地从级内和跨级特征中获取任意数量的尺度输入,可以实现更大范围的多尺度表示。(2)本文提出了一种动态权重衰减方案,以支持每种尺度下可学习的通道数,从而使得在性能几乎无下降的情况下,减少80%的参数。

得益于gOctConv的灵活性和效率,本文提出了一个高度轻量级的模型CSNet,该模型充分研究了级内和跨级的多尺度特征。为了参数数量可以非常少,本文的CSNet可以从头开始直接进行训练,而无需ImageNet进行预训练,从而避免了不必要的特征表示。总而言之,作者在本文主要有两个贡献:

  • 本文提出了一种灵活的卷积模块,即gOctConv,它可以有效地利用级内和跨级的多尺度特征来进行SOD任务,同时通过一种新颖的动态权重衰减方案来减少表征冗余。

  • 利用gOctConv,本文建立了一个非常轻量级的SOD模型CSNet,该模型在公开的SOD基准上,相较于SOTA的大型模型,可以在仅使用约0.2%的参数下(100k),取得相似的性能。

方法

1.方法概述

OctConv最初的设计仅是为替代传统卷积单元,它在一个阶段内引入高/低两个尺度进行卷积操作。但是,一个阶段只有两个尺度是不能引入SOD任务所需的足够的多尺度信息。因此,作者提出了一种广义的OctConv(gOctConv),如图2所示。作为原始OctConv的通用版本,gOctConv主要从以下几个方面进行了改进:

  • 任意数量的输入和输出尺度可以支持更大范围的多尺度表示。

  • 除了级内的特征外,gOctConv还可以从特征提取器以任意比例处理跨级的特征。

  • gOctConv通过本文提出的动态权重衰减方案可以学习每个尺度的通道数。

  • 可以关闭跨尺度的特征交互,提升灵活性。在下面的轻量模型设计中,本文将详细介绍gOctConv的不同实例。

2.轻量级模型设计

如下图所示,本文提出的轻量级网络是由特征提取器和跨阶段的融合部分组成,可同时处理多个尺度的特征。特征提取器与本文提出的层内多尺度块(即ILBlocks)堆叠在一起,并根据特征图的分辨率分为4个阶段,每个阶段分别具有3、4、6和4个ILBlock。由gOctConvs组成的跨阶段融合部分会处理来自特征提取器各阶段的特征以获得高分辨率的输出。 

其中gOctConv用于在ILBlock中引入多尺度。gOctConv通过消除跨尺度的运算,使每个输入通道对应于具有相同分辨率的输出通道。每个尺度内的depthwise操作可进一步节省计算成本。ILBlock由一个原始OctConv和两个3×3 gOctConv组成,如上图所示。原始OctConv会与两个尺度进行交互,而每个尺度由gOctConvs提取特征。块中的多尺度特征将分别进行处理和交互。每个卷积后面紧跟着BatchNorm和PRelu。

为了保持高的输出分辨率,常规方法会在特征提取器的高层语义上进行操作,这不可避免地增加了计算冗余。相反,本文仅使用gOctConvs融合来自特征提取器各阶段的多尺度特征,并生成高分辨率输出。作为效率和性能之间的折衷,仅使用了后三个stage的特征。gOctConv 1×1将每个阶段最后一次转换的特征作为输入,并进行跨阶段卷积以输出具有不同比例的特征。为了在粒度级别上提取多尺度特征,特征的每个尺度都由一组具有不同扩展率的并行卷积处理。

3.动态权重衰减

作者建议在训练过程中利用本文提出的动态权重衰减方法,为gOctConv中的每个尺度获取可学习的通道数。动态权重衰减可在引入稀疏性的同时保持通道之间的权重分布稳定,从而有助于修剪算法消除冗余通道。具体的算法过程如下

实验

1.基本设置

本文方法是基于PyTorch框架。对于轻量级模型,本文使用Adam优化器,批处理大小为24,从头开始训练300个epoch。在没有ImageNet预训练的情况下,CSNet仍可以达到与基于预训练主干的大模型相当的性能。最初将学习率设置为1e-4,然后在200个epoch和250个epoch时衰减10倍。本文仅使用了随机翻转和裁剪的数据增强。gOctConvs之后的BatchNorms权重衰减,作者建议使用动态的权重衰减替代,默认权重为3,而其他权重的权重衰减默认设置为5e-3。

训练数据集是DUST-TR,并在几个常见的测试集上进行评价,包括ECSSD,PASCAL-S,DUT-O,HKU-IS,SOD和DUTS-TE。

2.实验结果

图5显示了使用本文提出的轻量级CSNet进行显著性检测的可视化结果。

3.固定通道数 VS 可学习的通道数

特征提取器仅由ILBlocks组成。使用固定的参数,并仅调整ILBlocks的gOctConvs中高分辨率/低分辨率特征的通道数分配比例。如表格1所示,就F-measure而言,CSNet-5 / 5的F值比特征提取器3/1高出1.4%。即使在极端情况下,仅具有低分辨率功能的CSNet-0 / 1的性能也比具有所有高分辨率功能的提取器1/0多44%的FLOPs。但是,手动调整具有不同分辨率的特征通道数的分割比例可能在性能和计算成本之间仅能达到次优。

如表格2所示。ResNet + CSF仅使用53%的参数和21%的FLOP达到与ResNet + PoolNet相似的性能。gOctConvs可以在主干的不同阶段获得高分辨率和低分辨率的特征,从而获得高分辨率输出,同时节省了大量计算资源。

4.运行时间

CSNet的设计初衷是轻量级且可以高效地执行SOD任务。因此本文在i7-8700K CPU的单核上使用224×224的图像测试了运行时间。与大模型相比,本文提出的CSNet具有超过x10的加速。

与为其他任务设计的模型相比,CSNet以相似的速度实现了F-measure最高6%的增长。但是,由于当前的深度学习框架尚未针对原始的OctConvs和本文的gOctConvs进行优化,因此FLOPs与运行时间之间仍然不具有很强的关系。

总结

在本文中,作者提出了一种具有更大灵活性的广义OctConv,可以有效利用级内和跨级的多尺度特征,同时通过一种新颖的动态权重衰减方案来减少冗余。动态权重衰减方案可在通道之间保持稳定的权重分布,并在训练过程中稳定提高参数的稀疏性。

动态权重衰减支持学习gOctConvs中每个尺度的通道数,从而减少了近80%的参数,而性能下降却忽略不计。本文建立了一个非常轻量级的模型CSNet,该模型在公开的显著性物体检测基准上,相较于大模型,可在仅使用约0.2%参数(100K)的情况下,保持相似的性能。

论文:https://arxiv.org/abs/2003.05643

代码:https://github.com/MCG-NKU/Sal100K

推荐阅读
  • 想提前目睹人到中年的发型?试试这款自制秃头生成器

  • 阿里巴巴副总裁司罗:达摩院如何搭建NLP技术体系?

  • 重磅!CSDN 发布「AI开源贡献奖Top5」「AI新锐公司奖Top10」「AI优秀案例奖Top30」三大榜单

  • 用机器学习还原《隐秘的角落》那些被修改的台词

  • Python轻松搞定Excel中的20个常用操作

  • 厉害!国内大学生计算机编程第一人,一人挑战一个队,百度最年轻 T10,现创业自动驾驶

  • Balancer因通缩代币STA遭遇闪电贷攻击,价值50万美元资产被黑

你点的每个“在看”,我都认真当成了AI

干货!仅有 100k 参数的高效显著性检测方法相关推荐

  1. 仅有 100k 参数的高效显著性目标检测方法

    作者 | 南开大学 程明明.依图科技 颜水成 译者 | 刘畅  责编 | Carol 本文介绍ECCV 2020 录用论文:Highly Efficient Salient Object Detect ...

  2. 显著性检测方法:LC

    该方法是基于全局对比度的.计算像素p在整个图像上的全局对比度.公式1如下:详细算法见点击打开链接 该方法使用以下技巧加速全局对比度的计算: (1)利用直方图对像素按照特征值归类.很多特征的特征值都被规 ...

  3. ECCV2020 | SOD100K:超低参数量的高效显著性目标检测算法,广义OctConv和动态权重衰减...

    点击上方"AI算法修炼营",选择"星标"公众号 精选作品,第一时间送达 这篇文章收录于ECCV2020,是一篇超高效的显著性目标检测的算法,仅有100K的参数量 ...

  4. matlab 图像显著性检测ft_全局对比度的图像显著性检测算法

    点击上方蓝字关注我们 星标或者置顶[OpenCV学堂] 干货与教程第一时间送达! 显著性检测概念 显著性就是可以快速引起你注意的对象或者物体,在图像或者视频中显著性检测的结果往往是图像或者视频中对象, ...

  5. CVPR2019文章解读 Pyramid Feature Attention Network for Saliency detection 用于显著性检测的金字塔特征注意网络

    Pyramid Feature Attention Network for Saliency detection 摘要 显著性检测是计算机视觉领域的基本挑战之一,怎么有效去提取特征非常关键,目前的一些 ...

  6. 视觉显著性python_OpenCV—python 图像显著性检测算法—HC/RC/LC/FT

    文章目录 一.显著性检测研究现状 二.基于谱残差法的显著性检测 三.基于全局对比度图像显著性检测(LC) 2.1 基于直方图对比度的显著性检测(HC) 2.2 基于区域的对比度方法(region-ba ...

  7. 全局对比度的图像显著性检测算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 显著性检测概念 显著性就是可以快速引起 ...

  8. python视觉识别_视觉显著性python_OpenCV—python 图像显著性检测算法—HC/RC/LC/FT

    文章目录 一.显著性检测研究现状 二.基于谱残差法的显著性检测 三.基于全局对比度图像显著性检测(LC) 2.1 基于直方图对比度的显著性检测(HC) 2.2 基于区域的对比度方法(region-ba ...

  9. 显著性检测——GR模型

    显著性检测--GR模型 1. Introduction 2. Saliency Model 2.1 Initial Saliency Map 2.2 Saliency Map Refining Wit ...

最新文章

  1. iScience | 大规模表征学习寻找分子间相互作用
  2. Python学习手册(套装上下册)(原书第5版)
  3. 连载《一个程序猿的生命周期》- 32、两个企业急着上项目,紧急赶赴现场了解情况...
  4. 现代密码学4.1--消息完整性
  5. iPhone开发各种图标大小
  6. ubuntu16.04安装MATLAB R2017b步骤详解(附完整破解文件包)
  7. mysql什么实务_MysQL是什么类型的据库?
  8. 去哪儿-21-debuggiing-testing
  9. 情怀奏不响民宿的狂想曲
  10. python的flask微服务-flask微服务框架的初步接触
  11. Mybatis-config.xml配置文件详解
  12. w ndows无法完成格式化,windows 无法完成格式化2种解决方案
  13. 利用Python爬取小说(附源码)
  14. 中国量化金融行业 全解 金融工程 计算机 统计学 金融 专业领域 就业指南
  15. 同花顺服务器维护,同花顺云端服务器
  16. rtx2060为什么叫智商卡_八款RTX2060简单点评,谁是丐中丐,谁又是丐帮帮主
  17. 数据质量问题剖析与解决锦囊
  18. 使用Data URL将图片嵌入到网页中
  19. 毕设笔记01-解决树莓派烧写系统显示屏不显示问题
  20. 小飞鱼通达商务平台课程 OA开发程序基础课 3月4日 PHP第一部分课程签到及作业

热门文章

  1. 使用DPM2007备份还原Exchange2007邮箱数据库
  2. C#:将另一个应用程序的主窗口移至屏幕最前
  3. HDU 1431 素数回文
  4. Topcoder SRM 663 DIV 1
  5. 导航菜单:jQuery粘性滚动导航栏效果
  6. 支付宝接口使用文档说明 支付宝异步通知
  7. 2020-09-05
  8. ROS image_transport使用笔记
  9. 李宏毅机器学习笔记(三)——Regression: output a scalar amp;amp; Gradient Descent
  10. centos7 中搭建gitlab