Fast Bokeh Effects Using Low-Rank Linear Filters

paper地址:https://www.researchgate.net/publication/271401966_Fast_Bokeh_effects_using_low-rank_linear_filtersh

paper发在:The visual computer

好久没写过文章啦~……~,小生这就送上一篇刚看的paper,还有很多地方没吃透,愿路过的客观在评论区留下好文。

本文使用低秩线性滤波能快速的实现散景模糊(Bokeh:散景)。

1.贡献总结如下:

1.用大量的实验验证了LRLF比高斯模糊更接近镜头模糊。对于一些需要做镜头模糊数据集的同学,可以一观。

2.散景的形状受到叶片数量、叶片是直的还是弯的以及孔径开口的大小的影响(理解成镜片),实验也验证了何种大小和形状的叶片更逼近真实散景成像。

3.提出将低秩滤波器应用于图像模糊、倾斜偏移后处理和景深模拟,展示了其速度和灵活性,并分析了几种孔径形状的近似误差。

2.基础知识介绍

2.1 散景

散景:散景效果是由场景中单点的多束光线通过相机光圈和在图像平面上的不同点引起的。

如Fig.1所示,聚焦的点会在Image Plane上呈现成点,散焦的点会在平面上扩散成混乱圈(Circle of confusion,Coc)。

2.2 现有方法

Monte Carlo techniques:通过随机采样从相机镜头追踪到场景的光线,计算了分布式射线示踪器的景深。

Splatting techniques:溅射技术是一种直接渲染景深的方法。通过为帧缓冲区中的每个像素在屏幕上渲染一个alpha-blended sprit来进行。sprit的大小是根据Coc的直径,纹理图像生成散景图案。

Summed area tables:从图像计算出的求和面积表(SAT)保存了从原点到目标像素位置的矩形中所有像素值的和。一旦计算出来,任意矩形区域的值的和可以从SAT中的4个值计算出来。

Fourier transform:通过计算图像的FFT,执行乘法,然后计算逆FFT。然而,这种方法是有限的,因为卷积,在严格意义上,是一个空间不变的核滤波。

Iterated or hierarchical convolution:通过使用重复卷积或图像金字塔的分层卷积,可以得到与大核卷积的情形。这些技术的结果是有限范围的散景形状。

Solution of the diffusion/heat equation:各向同性均匀扩散(或热)方程的解可以通过高斯卷积得到。

Separable convolution:可分性是一些滤波器核的性质,允许使用一对一维卷积来实现二维滤波。这减少了计算的复杂性,使其在实时应用中计算景深很有吸引力。

2.3 提出方法

提出的方法可以看作是对现有方法的改进和扩展,提供了可分离滤波器的替代方法。低秩滤波方法是将任意的滤波核近似为可分离核的和。值得注意的是,提出的低秩线性滤波方法可以作为以前报道的许多技术的一部分,通过替换可分离卷积或随机采样步骤,从单个图像计算自由度。

3. Low-rank and separable filters

离散滤波器核的秩是其矩阵表示的秩k。k的秩就是k的线性无关列数。如果k=1,空间不变的线性滤波器可以用离散卷积来实现I=(I0*k)=(I0*u)*v,I0表示输入图像,u是用列矩阵表示的垂直滤波核,v是用行矩阵表示的水平滤波核,k = uv。

对于任意秩的滤波器可以表示为:

通过奇异值分解可以确定滤波器核k的秩r以及σ、u和v的值

ui是U的第i行vi表示v的第i行。后面的一些符号解释我就不放出来了,直接瞧英文,超级简单的。

想表达的是对输入图像I0首先经过水平滤波,接着垂直滤波,即2d滤波的分解,流程图如Fig.2所示。summation表示求和生成I。

3.1 Bokeh shape and matrix properties

与可分离滤镜相比,低秩滤镜允许我们创建具有各种形状和可以模拟透镜球差的散焦。透镜系统的球差会导致散焦,散焦的亮度不均匀—边缘的亮度不均匀。散景的形状很好地近似于相机光圈的形状。光圈的形状和大小由叶片控制,叶片可以是弯曲的,也可以是直的,数量从2到15不等。这导致散景的形状是多边形的,或者在有大量弯曲叶片的孔的情况下接近圆形。考虑到这一点,我们研究了这些形状的过滤器内核。因为可以用一个特殊的滤镜来安装一个相机镜头,让摄影师对散景形状有更多的控制。

Fig.3中展示了四个低秩滤波器,第一列为四个低秩滤波器,分别为5边(秩为55,即Rank55),6边(秩为36,即Rank36),8边(秩为38,即Rank38),以及圆(秩为39,即Rank39)。从每一行来看,Rank1到Rank5,秩越来越大,而对应秩的核也越来越接近真实秩的核。最有边的图,也展示了四种滤波器核的相对误差,并且随着秩的增大,相对误差越来越小,并且及时秩为1的时候,相对误差也很小,在0.2左右。相对误差的公式如下所示:

||*||F表示范数。

8边孔径的滤波结果如Fig.4所示。Original表示源图,2d convolution表示用2d卷积核对原图进行滤波得到的,第二行的分别被Rank1,Rank2,Rank3滤波器进行滤波,发现经过Rank3 filter滤波得到的图与2d Convolution的结果类似。

Fig.5展示了不同形状滤波器的对比结果。许多快速图像模糊的方法使用框和高斯滤波器,因为内核是可分离的(有秩= 1),但在相机散焦的背景下,这些内核有一些不受欢迎的特性。盒形滤镜将导致方形散景图案,这是不常见的摄影图像。高斯滤镜将会使散景模式变得圆整柔软的边缘,这并不总是可取的。我们的方法允许任意的散景形状被用作过滤核,在本篇论文的后续部分也分析了集中常见的滤波形状。相比之下,多边形孔径和圆形孔径的滤波器结果模糊更符合摄影图像。

Fig.6展示了模拟透镜球差的滤波核示例,Fig.7展示了弯曲孔径叶片的滤波核示例。Fig.8显示了不同孔径叶片数量和不同球面像差的滤波结果。球差和叶片曲率对rank = 3重构误差的影响如Fig.9所示。如图3所示:叶片数为偶数的孔径比叶片数为奇数的孔径具有更低的重构误差,其中8面孔径误差最小。相对误差与球面的对比图表明,负球面像差(中心较亮)可以降低重构误差。我们注意到,这一趋势在1至10之间的其他排名中继续存在。相对误差与叶片半径的关系图显示了偶数和奇数弯曲叶片孔径的不同特性。增加叶片半径(使叶片变直)可以增加奇数叶片孔径的低秩(r = 3)误差,但可以降低偶数叶片孔径的低秩(r = 3)误差。圆形孔径(近似为60边孔径)位于两组曲线之间,与叶片半径无关。如所料,当叶片半径与圆孔半径相同时(本例中为1),所有相对误差收敛于圆孔的相对误差。

Fig.11显示了具有水平对称轴的孔径形状具有绕中点对称的奇异向量,如果有垂直对称轴,奇异向量也是对称的。在存储过滤系数时,可以利用这一点来节省内存。

3.2 Comparison to stochastic sampling

在射线追踪中,可以利用光线的随机采样来产生基于物理的自由度。然而,在基于图像的DoF中,可以使用像素的随机采样来减少滤波时所需的图像样本数量。这种方法的一个缺点是,它可能导致噪声,颗粒状的图像。我们比较两种使用相同数量的过滤器抽头的过滤实现。第一个实现是一个随机采样技术使用泊松分布样本在一个六边形滤波器核。样本的位置如图12(a)所示。过滤的结果如图12(b)所示。为了便于比较,rank 3滤波的结果如图12(c)所示。注意,这幅图像没有图像12(b)中明显的噪声。

4. 实验结果

Tilt-shift postprocessing:能够相对于图像传感器平移和旋转的相机镜头被称为“倾斜移位”镜头。这些镜头让摄影师在最终的图像中控制透视和焦点。这些镜头的一个应用是创造一个浅景深,使被摄对象看起来缩小。这种技术有时被称为“倾斜移位摄影”,可以通过设计一个简单的灰度图像来表示Coc直径来在后处理中模拟。这通常是在绘图程序中使用渐变工具完成的,比如Photoshop。然后,照片被模糊与空间变化的内核,其大小等于Coc直径。使用低秩线性滤波器进行倾斜平移后处理的结果如图14所示。使用低秩(r=3)线性滤波器(左)和相应的Coc直径图像(右)通过倾移后处理创建的图像。在Coc图像中,暗的强度代表小的Coc直径,明亮的颜色代表大的Coc直径。黑带对应焦平面。

Coc计算公式:

其中a为镜头孔径直径,f为焦距,zfocus为到焦平面的距离,z为给定像素的场景深度。

图16显示了龙场景的输入彩色图像,LuxRender使用6边光圈的结果,以及我们的结果。图17中的龙场景细节显示,我们的方法与光线跟踪图像的散景非常匹配,而由Zhou等人提出的使用可分离高斯核的技术产生了更柔和的模糊。

学校走廊场景的结果如图18所示。当使用Zhou等人的方法时,在天花板上的灯光上看到的模糊模糊的不正确柔和是所有利用高斯卷积的方法的特征,如Hammon和Lee等人的方法。

图19中的别墅场景展示了我们的技术是如何为光线跟踪场景提供看似合理的散景预览的。由于光线对图像的焦外区域可能通过孔径从许多可能的方向,这些部分的图像是典型的不充分采样和出现噪声。别墅场景显示在focus raytrace到500个样本每像素(spp),一些噪声仍然明显在图像中。用DoF进行光线跟踪的图像需要5000 spp,而且看起来也有噪声,大部分是在背景的未聚焦区域。然而,我们的方法应用于聚焦图像,由于滤波过程的平滑效果,噪声少得多的散景。光线追踪聚焦图像和计算景深所需时间是光线追踪景深场景所需时间的十分之一。这种景深方法允许从单一聚焦图像中有效地预视各种孔径形状。

5.总结

本文提出了一种利用低秩线性滤波器绘制散景效果的新技术。与可分离滤光片不同的是,这种技术可以处理各种孔径形状。该技术可以模拟引起散焦强度不均匀的透镜球差。我们还展示了用户如何选择滤波器内核的秩,以权衡速度和精度。与其他使用随机采样的方法不同,这种方法不受噪声的影响。我们还介绍了几个滤波器的分析,演示了如何量化滤波器的精度。

Fast Bokeh Effects Using Low-Rank Linear Filters的更多相关文章

  1. Generalized Low Rank Approximation of Matrices

    Generalized Low Rank Approximations of Matrices JIEPING YE*jieping@cs.umn.edu Department of Computer ...

  2. 个案排秩 Rank (linear algebra) 秩 (线性代数)

    非叫“秩”不可,有秩才有解_王治祥_新浪博客http://blog.sina.com.cn/s/blog_8e7bc4f801012c23.html 我在一个大学当督导的时候,一次我听一位老师给学生讲 ...

  3. 吴恩达机器学习笔记59-向量化:低秩矩阵分解与均值归一化(Vectorization: Low Rank Matrix Factorization & Mean Normalization)

    一.向量化:低秩矩阵分解 之前我们介绍了协同过滤算法,本节介绍该算法的向量化实现,以及说说有关该算法可以做的其他事情. 举例:1.当给出一件产品时,你能否找到与之相关的其它产品.2.一位用户最近看上一 ...

  4. Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)

    目录 前言 文章概述 固定\(\widetilde{\mathrm{v}}\) 固定\(\widetilde{\mathrm{u}}\) Adjusted Variance 前言 这篇文章用的也是交替 ...

  5. 推荐系统(recommender systems):预测电影评分--构造推荐系统的一种方法:低秩矩阵分解(low rank matrix factorization)

    如上图中的predicted ratings矩阵可以分解成X与ΘT的乘积,这个叫做低秩矩阵分解. 我们先学习出product的特征参数向量,在实际应用中这些学习出来的参数向量可能比较难以理解,也很难可 ...

  6. PatentTips - Fast awake from low power mode

    BACKGROUND Electronic devices, such as electronic book readers ("eBook reader devices"), c ...

  7. 矩阵分解(rank decomposition)文章代码汇总

    矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...

  8. {ICIP2014}{收录论文列表}

    This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...

  9. CVPR 2017 Paper list

    CVPR2017 paper list Machine Learning 1 Spotlight 1-1A Exclusivity-Consistency Regularized Multi-View ...

随机推荐

  1. oracle set oracle_sid=xxxxxx

    本地有多个实例,在cmd  输入  set oracle_sid=xxxxx   来指定要连接的实例 sqlplus xxxx/xxxx@1.1.1.1.1/sid   连接数据库

  2. 基于CefSharp开发(三)浏览器头部优化

    一.上文回顾 上编实现了简单的网页加载功能包括URL输入.打开空标签页.网页链接中新页面处理等 本编将对网页的Title绑定.前进.后退.刷新等事件处理 二.Title绑定处理 当打开网页时Title ...

  3. JQuery浮动对象插件

    写了个插件,用来固定表的头部和尾部. /*! * smartFloat v1.0.1 * Copyright 2019- Richard * Licensed under MIT */ $.fn.ex ...

  4. 基础篇:JAVA.Stream函数,优雅的数据流操作

    前言 平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看.java提供了Stream的概念,它可以让我们把集合数据当做一个个元素在处理,并且提供多线程模式 流的创建 流的各种数 ...

  5. PyQt学习随笔:QTableWidgetItem项的setSizeHint()方法的作用

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidgetItem项的方法setSizeHint用于设置项的sizeHint属性,Qt ...

  6. PyQt(Python+Qt)入门:Designer组件属性编辑界面中QWidget类相关属性详解

    本文适用人员:本文比较长,适合不理解Qt Designer部件属性的人员阅读或资料查找. 声明: 1.如果有人认为本文是简单的复制粘贴+翻译而成,敬请读本文最后的后记: 2.本文为老猿Python学习 ...

  7. 基础篇——怎么使用PowerDesigner进行数据库初始化

    1.使用PowerDesigner打开设计好的 .pdm文件 2.点击工具栏中的Database-->Database Generation-->Preview,就可以看到生成的创建数据库 ...

  8. Oracle表操作-创建及增删改查

    数据类型: 1.CHAR:定长字符类型,默认长度是1,最长不超过2000字节. 2.CARCHAR2(length):可变字符类型,默认长度是1,最长不超过4000字符. 3.NUMBER(P,S): ...

  9. 刷题记录:[GWCTF 2019]枯燥的抽奖

    目录 刷题记录:[GWCTF 2019]枯燥的抽奖 知识点 php伪随机性 刷题记录:[GWCTF 2019]枯燥的抽奖 题目复现链接:https://buuoj.cn/challenges 参考链接 ...

  10. Day5 Scrum 冲刺博客

    一.站立式会议# 1. 会议照片 2. 工作进度+燃尽图 团队成员 昨日完成工作 今日工作计划 遇到的困难 周梓波 将方块分类并抽象成类 将方块旋转变形 逻辑漏洞较多 纪昂学 绘制游戏背景,方块,状态 ...