经过处理的图片或视频不但可以使用户皮肤变得清透白皙,还可以实现大眼瘦脸等功能,其中也涉及到了关于人脸检测及特征点提取等美颜算法。本文就简单分享下人人都爱的美颜算法到底是怎么回事。
先来简单说下美颜(可简单分为美白和磨皮)
1.用具有保边效果的滤波算法对图像进行模糊处理。
2.用肤色检测算法保护非皮肤区域。
3.将模糊后的图像和原图进行图像融合。
4.对融合后的图像进行锐化处理。
补充说明:滤波算法可以选择双边滤波,导向滤波,表面模糊等,只要能保边缘就行。如果单单使用高斯模糊来磨皮,得到的效果是不尽人意的。不同的是,这个权重不仅与像素间距离有关,还与像素值本身的差异有关,具体讲是,像素值差异越小,权重越大,也是这个特性让它具有了保持边缘的特性,因此它是一个很好的磨皮工具。
图像局部扭曲算法有三个:局部缩放(Local Scaling)算法、局部平移(Local Transition)算法和局部旋转(Local Rotation)算法。其中应用局部缩放算法可实现眼睛放大,局部平移算法则可用于实现瘦脸效果。当然,图像局部缩放算法只是眼睛放大算法流程中的最关键的一步,要实现自动眼睛放大算法还需要额外的步骤。简单来说,给一张美女头像,你首先需要应用自动人脸检测技术定位出图像中的眼睛位置;然后基于此位置坐标应用图像局部缩放算法。自动瘦脸算法流程类似,不同之处在于应用人脸检测技术得到人脸轮廓点,由这些轮廓坐标点应用局部平移算法得到瘦脸效果。
大眼瘦脸技术实现的前提是需要能够检测到人脸,然后从中提取特征点。这里会涉及到图像变形,比较基础的是,由变形前坐标根据变形映射关系,得到变形后的坐标。其中变形映射关系是最关键的部分,不同的映射关系最终会得到不同的变形效果。如缩放、旋转、平移所对应的都是不同的映射关系,也是不同的变换公式。但是在实际的计算中,使用的是逆变换(由变形后坐标根据逆变换公式反算变形前坐标,随后差值得到该坐标rgb像素值,将该rgb像素值作为变形后坐标对应的像素值。)这样最后才能保证变形后的图像是完整连续的。