参考代码:HOP-Matting

1. 概述

导读:现有的一些深度学习的matting方法是基于propagation的,这篇文章对此提出了多层次不透明度propagation(hierarchical opacity propagation,HOP)的方法,用于像素之间的不透明度传导。文章的HOP结构具有一个global和多个local的propagationmo模块,从而使得高分辨特征图下的每对像素点可以根据输入图像的外表特征连接起来。此外文章还提出了一种尺度不敏感的编码方式用于解决非固定尺度的图片输入,并且引入随机插值的方式进行数据增广。

这篇文章的核心是提出了一个HOP网络结构,使得需要预测的alpha在不同的特征层级上使用这个结构进行优化。HOP结构在文章中按照感受野的不同可以将其划分为global HOP和local HOP,HOP模块中借用了attention与aggregation机制完成信息的迁移,因而这里处理的是matting目标的外表特征与对应的不透明度。

文章中global HOP与local HOP在网络中扮演着不同的角色,global HOP用于在低分辨率但具有较强语义信息特征下通过上下文信息预测不同明度,之后local HOP去优化网络中细节的模糊部分。另外通过尺度不敏感的编码器与随机插值缩放算法从而适应不同尺寸的图像输入,并且数据数据增广。文章的结果与之前的一些工作进行对比,见下图所示:

2. 方法设计

2.1 网络结构

文章提出的网络结构见下图所示:

在a图中展示的是这篇文章的网络结构,其主要由两个编码器(不透明度信息编码器和图像外观编码器)加一个解码器组成。b图展示的是在文章的不同模块上进行不透明度传递的示意图。

non-local和transformer可以在全局上完成信息的传导,但是文章需要的信息传递与之有些不同:

  • 1)non-local首先会消耗较多的内存与计算资源,并且它并不适合在大分辨率的特征图上进行信息传递,但这确是对matting比较重要的;
  • 2)non-local是单独作用在输入数据上的,而在matting任务中更为重要的是不透明度信息,而不是像分类/分割/inpainting中,这些任务中更加侧重网络的语义表达,这与matting任务并不相兼容;

2.2 HOP模块

global HOP:
这里定义从不透明度编码器和图像外观编码器输出的特征图是:FO∈RHW∗C,FA∈RHW∗CF^O\in R^{HW*C},F^A\in R^{HW*C}FO∈RHW∗C,FA∈RHW∗C,其中特征在每个特征点在位置(i,j)(i,j)(i,j)处其点特征描述为:f(i,j)O∈RC,f(i,j)A∈RCf_{(i,j)}^O\in R^C,f_{(i,j)}^A\in R^Cf(i,j)O​∈RC,f(i,j)A​∈RC,因而在global HOP模块中其运算过程描述为:

q(i,j)=WQKf(i,j)Aq_{(i,j)}=W_{QK}f_{(i,j)}^Aq(i,j)​=WQK​f(i,j)A​
k(x,y)=WQKf(x,y)Ak_{(x,y)}=W_{QK}f_{(x,y)}^Ak(x,y)​=WQK​f(x,y)A​
a(i,j),(x,y)=softmax(x,y)(q(i,j)Tk(x,y)∣∣q(i,j)∣∣∣∣k(x,y)∣∣)a_{(i,j),(x,y)}=softmax_{(x,y)}(\frac{q_{(i,j)}^Tk_{(x,y)}}{||q_{(i,j)}||\ ||k_{(x,y)}||})a(i,j),(x,y)​=softmax(x,y)​(∣∣q(i,j)​∣∣ ∣∣k(x,y)​∣∣q(i,j)T​k(x,y)​​)
gi,j=Wout(∑(x,y)a(i,j),(x,y)f(x,y)O)+f(i,j)Og_{i,j}=W_{out}(\sum_{(x,y)}a_{(i,j),(x,y)}f_{(x,y)}^O)+f_{(i,j)}^Ogi,j​=Wout​((x,y)∑​a(i,j),(x,y)​f(x,y)O​)+f(i,j)O​

其中,WQKW_{QK}WQK​是生成key和query的线性矩阵,WoutW_{out}Wout​输出线性映射。这里的结构与传统的attention不同是其key和query共享一个输入,而不是直接源自于一个输入。

local HOP:
文章的HOP local版本是在当前点的领域里面进行attention运算,其运算过程可以描述为:
a(i,j),(x,y)=softmax(x,y)∈N((i,j),s)(q(i,j)Tk(x,y)∣∣q(i,j)∣∣∣∣k(x,y)∣∣)a_{(i,j),(x,y)}=softmax_{(x,y)\in N((i,j),s)}(\frac{q_{(i,j)}^Tk_{(x,y)}}{||q_{(i,j)}||\ ||k_{(x,y)}||})a(i,j),(x,y)​=softmax(x,y)∈N((i,j),s)​(∣∣q(i,j)​∣∣ ∣∣k(x,y)​∣∣q(i,j)T​k(x,y)​​)
gi,j=Wout(∑(x,y)∈N((i,j),s)a(i,j),(x,y)f(x,y)O)+f(i,j)Og_{i,j}=W_{out}(\sum_{(x,y)\in N((i,j),s)}a_{(i,j),(x,y)}f_{(x,y)}^O)+f_{(i,j)}^Ogi,j​=Wout​((x,y)∈N((i,j),s)∑​a(i,j),(x,y)​f(x,y)O​)+f(i,j)O​

文章中是按照一个global HOP多个Local HOP的形式构成的,global用于传导高层次的不透明度信息,之后local将更多的低层次纹理信息融入,在更高的分辨率下获取不透明度传导结果。

下图是文章的HOP块和self-attention的区别:

这部分对于性能的影响:

Positional encoding:
在前面的一些文章中证实了positional encoding对于self-attention机制的作用,对此文章针对global/local HOP分别提出了scale-insensitive/local relative position encoding。文章对此采用的方法见下图所示:

为了应对输入尺寸的变化文章按照输入图像的尺寸对半径s=7s=7s=7范围内的像素使用rdr_drd​编码,使其与尺度相关,因而网络就可以适应不同的尺度,因而这里的self-attention过程可以描述为:

此外,还可以利用三色图中的不同区域设置不同的权值,只需要将(e∣i−x∣+e∣j−y∣)(e_{|i-x|}+e_{|j-y|})(e∣i−x∣​+e∣j−y∣​)变换为(e∣i−x∣+e∣j−y∣WTt(x,y))(e_{|i-x|}+e_{|j-y|}W_Tt_{(x,y)})(e∣i−x∣​+e∣j−y∣​WT​t(x,y)​)。而在local的情况下就没有了scale-insensitive相关的工作,只需要将对应的值设置为固定的就好了。

2.3 损失函数

文章的损失函数也是针对于未知区域进行损失计算的,表述为:
L=1∣Tu∣∑i∈Tu∣αi−αigt∣L=\frac{1}{|T_u|}\sum_{i\in T_u}|\alpha_i-\alpha_i^{gt}|L=∣Tu​∣1​i∈Tu​∑​∣αi​−αigt​∣

3. 实验结果

Composition-1k:

alphamatting.com:

《HOP-Matting:Hierarchical Opacity Propagation for Image Matting》论文笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. ResNets王者回归!谷歌、伯克利联合发文:它当初输给EfficientNets不是架构问题...
  2. pytorch 加载模型 模型大小测试速度
  3. Redis搭建(二):主从复制
  4. AI人工智能工程师 学习大纲
  5. Python ImportError: No module named 'requests'解决方法
  6. 笔记-信息系统开发基础-信息系统开发方法
  7. 洛谷-P3203 弹飞绵羊 分块
  8. Linux电驴客户端,ubuntu装电驴
  9. ipython tesseract_python使用Tesseract库识别验证
  10. 数字电子技术基础 目录
  11. 重磅!《中华人民共和国个人信息保护法》今日起施行!
  12. 程序员如何提高影响力
  13. PL3369C-ASEMI原边电源IC芯片PL3369C
  14. 《青年在选择职业时的考虑》——马克思
  15. 2019年1月编程语言排行榜
  16. 在线工具大全,在线办公
  17. 硬件测试的思考和改进:有道词典笔的高效测试探索
  18. C语言如何计算程序运行时间
  19. 2018南京大学计算机系夏令营上机考试(一)
  20. Node.js 网站内容抓取及Mysql存取Demo

热门文章

  1. 阅读-《诗经·秦风·无衣》
  2. 单片机开发---ESP32S3移植NES模拟器(二)
  3. 根据出生日期计算当前年龄
  4. Oracle Cloud(甲骨文)开启root登录
  5. 说说你对事件委托的理解?
  6. 屡教不改!这四大运营商仍在出卖用户位置数据...
  7. Android是什么?
  8. 赵小楼《天道》《遥远的救世主》深度解析(34)芮小丹是怎样对丁元英动心的?
  9. 计算机应用程序池在哪,win10系统iis修改站点的应用程序池权限的详细方案
  10. 关于日本川崎重工中标高速铁路的事