小伙帮500人复活亲人老照片,Ai修复老照片采用了怎样的技术和方法

2021-03-29 15:33:16 作者: 小伙帮500

  来自安徽的年轻人朱林,是一名老照片“复活”老师,他专门制作动态老照片。他手术后,黄色模糊的老照片不仅变得清晰了,还眨了眨眼睛,笑了笑,摇了摇头。清明前夕,很多人发现了他已故亲人的照片,感动得热泪盈眶。

  这张照片是人工智能技术合成的,不同于传统人工智能修复的老照片。这张照片就像哈利波特魔法世界的魔法照片一样令人感动和微笑。这是一种重塑失去亲人的方式,非常生动,真的比照片好得多。

  那么这张照片用的是什么技术呢?

  其实图像识别技术本身原理并不复杂,信息处理是这项技术的重点。近年来,由于深度学习的发展,图像识别的准确率有了很大的提高。深度学习可以通过对大量图像数据信息特征的积累和分析,自动完成特征提取、图像匹配等任务。

修复照片的小伙.png

  其中常见的修复方法包括:

  1.偏微分方程方法

  贝塔米奥利用偏微分方程(PDE)对图像进行修复,取得了良好的效果。用户需要指定待修复区域,算法将待修复区域边界轮廓外的信息沿轮廓法线方向扩散到中间待修复像素。该算法利用局部颜色的平滑性沿等值线扩散,并考虑各向异性扩散来保证边缘边界的连续性。但是这种方法计算不稳定。

  2.基于曲率的全局变分方法和扩散模型

  total变分方法(TV)采用欧拉-拉格朗日方程和各向异性扩散,基于曲率扩散模型(CDD,曲率驱动扩散)方法是全局变分方法的扩展,它考虑了扩散过程中轮廓的几何信息(曲率),可以处理大面积,但边界往往模糊。

外婆的动态照片.png

  3.利用高斯卷乘积检验进行图像滤波的方法

  采用高斯卷积核对图像进行滤波,可以快速修复受损区域。但是,该算法只考虑了受损区域边缘周围的图像颜色值,使得它只适用于受损区域为2~3像素宽的情况。

  4.纹理合成方法

  纹理合成法可以去除图像中的大块斑块,但由于算法运行时间与掩膜面积不成正比而是与图像大小成正比,修复时间相对较长。

  讲了常见的修复方法之后,再来讲讲如何搭建程序。

  1.图像处理的第一步:

  首先,我们使用常见的OpenCV处理方法来处理图片。第一步是将图片二值化,创建结构元素。

视频截图.png视频截图.png

  2.扩大维修区域:

  根据相邻像素值识别并扩展修复区域,通过补偿像素值达到修复图片的效果。函数cv2.inpaint()主要涉及两个算法。

  一种算法是从区域的边界开始,然后进入区域,逐渐填充边界内的所有内容。它需要在邻近像素周围的小邻域内进行修复。该像素由邻域中所有已知像素的归一化加权和代替。选择重量是一个重要的问题。对于点附近的像素、边界附近的法线和边界轮廓上的像素,给出了更多的权重。

  另一种是基于流体动力学和使用偏微分方程。基本原则是幽默。它首先沿着已知区域的边缘行进到未知区域(因为边缘是连续的)。它继续等待照片(连接相同强度的点的线,就像轮廓连接相同高度的点一样),同时在修复区域的边界匹配梯度向量。为此,使用了流体动力学的一些方法。获得颜色后,填充颜色以减少该区域的最小差异。

  但是用AI修复老照片需要一些程序代码。虽然有人会在网上和你分享,但如果你想要更有优势的话还是可以去研究一下。