当前位置: 首页 > 科技观察

几行代码,还原老照片色彩!

时间:2023-03-13 13:37:40 科技观察

身临其境的画面还原在看《你好李焕英》之前,有一个表情技巧让我印象非常深刻。画面一开始是黑白的,后来逐渐变成了彩色。从黑白到彩色的过程,给我一种“进入新现实”的感觉。最近修复了五四的画面,有种身临其境的感觉。虽然画面的分辨率不高,色彩也没有那么完美,但是却能给人一种身临其境的感觉,回到一百年前。救国救国,与少年人共存。那时的年轻人,能够站起来忧国忧民。相信今天的年轻人也能努力奋斗,为这个国家肩负起历史重任,用时代的光辉塑造民族精神。看完大家对技术原理比较感兴趣,那我就简单的说一下吧。技术原理AI填色的原理是什么?那么我们需要介绍一个深度学习网络架构,就是GAN(这里不粗口)。GAN不是厨师的工作,而是生成对抗网络(简称GAN)。当然,过于复杂的技术解释可能会让读者感到困惑,所以我找到了一个非常简单的原理图。GAN网络分为两部分,一部分是生成器(Generator),另一部分是鉴别器(Discriminator)。生成器通过对图像着色然后将其传递给鉴别器来工作。鉴别器判断这张图片看起来是否真实。如果它认为是假的,判别器就会返回一个“修改意见”,让生成器重试,直到判别器认为足够真为止。如果觉得不好理解,我打个比方。就像美术老师指导学生画画的过程。一开始,学生的画不够好。老师指出学生试改,老师再检查并给予建议,直到老师满意为止。这是图片的着色过程。视频是由帧组成的,给视频上色可以理解为通过这个网络架构给视频中的每一帧上色。但这不是那么简单。毕竟视频是每秒几十帧,每帧上色有点慢,每帧之前上色效果可能不一致。因此,一些架构会针对细节进行调整。例如,DeOldify使用NoGAN(一种新型GAN训练模型)来解决之前DeOldify模型中的一些关键问题。比如视频中闪烁的物体:在使用NoGAN之前,画面的闪烁很严重。使用NoGAN后,闪烁减少了。当然,实际还原出来的颜色其实和原来的颜色是有区别的,只是为了看起来自然而已。我做了一个实验(后面会介绍AI上色工具),可以看到上色效果和原来的效果不太一样。我下载了这样一张向日葵的照片,我手动把它转成黑白,然后让AI给它上色。嘿,向日葵变成了雏菊。但它看起来像别的东西。一般来说,给人物上色会更接近实际情况。因为人的肤色比较有限,判别器已经知道人脸可能的颜色是什么,以及转换后的灰度图对应什么颜色值,所以AI不太可能画出绿色人脸的黑白人像.如果你是技术小白,可以直接打开这个网站,只需要上传一张图片就可以自动上色。ImageColorizationdeepai.org例如,效果如下:看起来很棒。如果你懂一些技术但不懂机器学习,可以使用DeepAI提供的API。例如python调用方法如下:importrequestsr=requests.post("https://api.deepai.org/api/colorizer",data={'image':'YOUR_IMAGE_URL',},headers={'api-key':'quickstart-QUdJIGlzIGNvbWluZy4uLi4K'})print(r.json())#Examplepostingalocalimagefile:importrequestsr=requests.post("https://api.deepai.org/api/colorizer",files={'image':open('/path/to/your/file.jpg','rb'),},headers={'api-key':'quickstart-QUdJIGlzIGNvbWluZy4uLi4K'})print(r.json())如果你想继续深入研究,可以ForkDeOldify的repo。附开源地址:https://github.com/jantic/DeOldifygithub.com