专栏首页音视频技术学习笔记人像美颜算法-保边滤波

人像美颜算法-保边滤波

双边滤波

Surface Blur滤波

Y值越大,越稀释边缘像素的差异,各个点的权重就更接近,可以想象:当Y无限大时,每个点的权重几乎等于1,就没有保边的效果

Y:阈值[0, 255]

Guided滤波算法

Guided滤波算法 论文

局部均值滤波算法

局部均值滤波算法是 JONG-SEN LEE于 1980年在论⽂[8]中提出的⼀种基于局部均值⽅差的滤波算法。在普通的均值滤波基础之上,增加了方差的权重,由于效率高被广泛应用。

  1. 假设图像当前像素为xij,周围邻域⼤⼩宽为n、⾼为m
  2. 计算当前像素xij邻域范围内的像素均值mij、⽅差vij:
  1. 根据均值⽅差,计算权重系数k,为了防⽌k过⼤,添加σ 项,该项为⽤户输⼊参数,范围为[0,++]:
  1. 计算滤波输出值X ij:

方差越大,说明该点与周边的像素差值大,即视为边界,尽量保持原像素。方差值小,则视为平坦区域,取平均值。另外σ2越大,对边界的定义阈值越高,则大部分都参与均值滤波,边界就不明显。

调节r

调节σ

Anisotropic滤波

算法原理有点复杂,需要复习多元微积分,熟悉“散度”的定义

Anisotropic滤波也叫各向异性扩散滤波,由Pietro Perona和Jagannatch Malik在1990年发表的论⽂[9]中提出,在图像去噪中效果明显。此算法可以在去噪的同时,保留图像的边缘,因此,笔者认为此算法也可以作为美颜算法的可选算法之⼀

Smart Blur滤波算法

Smart Blur是Photoshop 2018(简称PS2018)中出现的⼀种保边滤波器,具体参考论⽂不详。在PS2018中,该滤波器有半径Radius和阈值Threshold两个参数

该算法⽐较简单,具体算法开发流程如下所述。假设像素I(i, j)周围半径 Radius ⼤⼩的邻域为 S,邻域内的像素为I(k,l),滤波后的像素值为ID,计算如下:

对上述公式的通俗理解就是设定⼀个阈值 Threshold,遍历当前像素 I 周围半径Radius⼤⼩的邻域内的所有像素,计算像素值在区间[I-Threshold, I+Threshold]范围内的所有像素的均值,以此作为滤波结果值。

MeanShift滤波算法(均值飘移)

MeanShift即均值漂移,最早由Fukunaga在1975年提出,论⽂题⽬为“The Estimation of the Gradient of a density function”。MeanShift滤波算法是⽤MeanShift算法来实现的⼀种图像保边滤波算。理解起来有点复杂,算法复杂度较高,感觉不适合实际的应用,且当参考。

参考上图,先理解原理:以当前点为原点,计算一定范围内的向量之和,求平均,按照平均后的结果,将当前像素飘移过去。对所有点进行一次计算为一轮,对二维图像来说就是两个for循环,实际需要进行多轮。可以看出均值飘移是一个渐进式迭代的过程。

公式:

其中,Sh(X)表⽰包含X的⼩区域,k为⼩区域内样本总数,h为半径。

我们来看⼆维图像的MeanShift滤波。 将图 3.24 所⽰的离散样本看作⼀个个图像像素点,这⾥不再使⽤X表⽰像素点,⽽是改⽤P。遍历图像中的每⼀个像素P,对于像素P(x0, y0),计算它周围半径为h的圆形邻域内的MeanShift特征,其特征包含位置特征Mpos和像素RGB值特征Mrgb,计算规则如下所述。 (1)假设阈值Threshold的范围为[0,255],遍历当前像素P(x0, y0)周围邻域S内所有的像素P,计算核函数K,若K⼩于阈值,那么该 像素点P即为有效像素。 (2)统计有效像素数⽬N,计算所有有效像素的位置特征Mpos和 像素RGB特征Mrgb,公式如下:

其中, Prgb表⽰像素RGB, 表⽰像素位置(x, y)。 (3)将当前像素 RGB 信息和位置信息更新为规则(2)中的计算 结果,到此,完成⼀次MeanShift迭代计算。 (4)设置最⼤迭代次数maxiter,重复当前规则步骤(1)~(3),MeanShift 滤波结果即为最后⼀次迭代后的结果。注意,在MeanShift滤波算法中,实际上设置了邻域半径h、像素阈值Threshold和最⼤迭代次数maxiter三个参数,这三个参数的选择将会影响滤波的实际效果。

BEEPS滤波算法

,BEEPS 滤波算法⽤来处理⼈像⽪肤,具有较强的平滑保边能⼒,在效果上要优于MeanShift滤波算法,是美颜算法研究中常⽤的算法[12]。 算法有一定复杂度,暂时不做研究

其他滤波算法

我们介绍了⼏种笔者认为⽐较适合做磨⽪算法开发的保边滤波算法,这些算法具有以下⼏个共同点。 (1)平滑图像且保留部分边缘信息。 (2)速度快,或者经过算法优化后可以进⾏⼯程考量。 以上两点是磨⽪算法的基本要求。针对这两点,这些滤波器都可

以⽤来做磨⽪算法,结合⽪肤检测以及⼈脸识别等技术,便可以达到 不错的效果。⽽实际上,除了这些滤波器之外,还有⼀些保边滤波 器,效果也⾮常不错,这⾥总结如下: ①⾮局部均值滤波[13] ②加权最⼩⼆乘WLS滤波[14] ③加权中值滤波[15] ④L0范数平滑滤波[16] ⑤全变分(TⅤ)降噪滤波[17] ⑥DCT降噪滤波 上述滤波器也都具有较强的平滑保边能⼒。其中⾮局部均值滤波和 DCT 降噪效果更优,甚⾄超过了前⽂介绍的双边滤波等⼤部分滤波器。个⼈认为,如果不考虑时间消耗,它们⾮常适合⽤来做美颜磨⽪处理,这⾥简单列举部分效果测试结果。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 39.opengl-游戏实战

    sumsmile
  • 人像美颜算法-皮肤检测

    美颜的核心处理是磨皮,仅进行模糊平滑处理,对整张图像的处理会显得比较假,如果能针对性的只处理皮肤,效果会更真实。

    sumsmile
  • 音视频技术(1)- 参考资料

    1. 音视频开发进阶指南(笔者主要从事移动端开发,以这本书入门,通篇了解音视频处理比较合适):

    sumsmile
  • 详解图像滤波原理及实现!

    图像的实质是一种二维信号,滤波是信号处理中的一个重要概念。在图像处理中,滤波是一常见的技术,它们的原理非常简单,但是其思想却十分值得借鉴,滤波是很多图像算法的前...

    Datawhale
  • OpenCV线性滤波(均值滤波,方框滤波,高斯滤波)

    OpenCV中提供了三种常用的线性滤波函数,它们分别是方框滤波,均值滤波和高斯滤波。

    zy010101
  • opencv中滤波函数的介绍和应用

    滤波作用 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪 声(包括高斯噪声、椒盐、噪声、随机噪声等)进行抑制,是图像预 处理中不可缺少的操作,其处理效...

    zls365
  • Side Window Filtering 论文解读和C++实现

    刚开始看到这篇论文的时候,我就很感兴趣想去复现一把看看效果。这篇论文是今年 CVPR oral 且不是深度学习方向的,其核心贡献点就是:不管原来的滤波器保不保边...

    Ldpe2G
  • 自助性BI工具:Clearify QQube

    插播:关注“互联网数据官”回复“独立站PPT”下载宋星老师跨境独立站营销的流量策略最新演讲PPT。 译者:严小鳙、审校:李晓艳 本文长度为1683字,预估阅读时...

    iCDO互联网数据官
  • 计算机视觉 OpenCV Android | 图像操作之 统计排序滤波、边缘保留滤波

    上述代码将会生成一个3×3大小的矩形结构元素。 使用该结构元素实现最大值或者最小值滤波的代码如下:

    凌川江雪
  • 什么是SAP CRM里的用户状态(user status)

    (1) define a new user status profile in customizing below:

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券