大家好,我是 Jack。

上两天,「AI修复五四运动现场」热搜大家看到了吗?

热搜1.8亿+阅读,5.1万+讨论。利用 AI 技术,修复五四运动现场。

这个就是3月初,央视的工作人员找我谈的合作项目之一,当时还发了个吹水文。

差点上央视

后来,这个项目另外一个up主做了。显而易见的是,越来越多的企业,在结合 AI 做一些有意义的创新。

所以,想从事算法工程师的工作,那就放心大胆地去学、去准备,不要被知乎这类问题所困扰:

要知道,这类问题从2017年就开始了。

这两年,又流行了新词「内卷」,好家伙,啥都可以内卷了。

不信,可以用知乎去搜下,程序员内卷、算法内卷、后端内卷,啥都可以卷,一搜一大把。

有能力的人,根本不会因为内卷而找不到工作,提高核心竞争力才是关键。

这些所谓的「内卷」,也是我国快速发展带来的结果,各行各业都是如此。

成为卷王之王,我们都有光明的未来。

AI修复

话题有些跑偏,我们回归正题: AI 修复。

这篇算是科普文了,介绍下「AI修复五四运动现场」用到了哪些 AI 技术。

这些老图片,老视频的资料都是黑白的,有的画面还有磨损,并且老视频帧率略低。

针对这几个特点,主要采用三样算法即可:

  • 着色算法:将黑白图片转为彩色图片;

  • 修复算法:修复磨损画面;

  • 帧插算法:提高视频帧率。

着色算法

着色算法,是整个处理流程的核心。

着色算法有很多种,其中比较出名,我经常用的是 DeOldify。

DeOldify 不仅可以对图片着色,其实本身也具有一定的修复画面的能力

曾经上过热搜的修复百年前老北京的影像,就是用的这个算法。

19世纪80年代的巴黎。

DeOldify 就是一种对抗生成网络的应用。

其原理是使用 NoGAN 技术,结合了 GAN 训练的优点,比如出色的着色效果,同时也消除了一些副作用,比如画面着色不稳定、闪烁的现象。

NoGAN 生成器进行了预先训练,使其利用常规损失函数,变得更强大、更快、更可靠。

项目地址:

https://github.com/jantic/DeOldify

需要配置的上文一样,安装一些库,然后下载模型权重文件。

项目工程页里详细说明了下载哪些文件,需要安装什么。

配置好后,在工程目录编写如下代码:

#NOTE:  This must be the first call in order to work properly!
from deoldify import device
from deoldify.device_id import DeviceId
#choices:  CPU, GPU0...GPU7
device.set(device=DeviceId.GPU0)import torchif not torch.cuda.is_available():print('GPU not available.')import fastai
from deoldify.visualize import *
import warnings
warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?")colorizer = get_image_colorizer(artistic=True)colorizer.plot_transformed_image("test_images/1.png", render_factor=10, compare=True)

test_images/1.png 为要上色的图片,运行程序,就可以实现为黑白照片上色。

模型、代码、素材都已打包,工程下载地址。

网盘下载链接(提取码:jack):

https://pan.baidu.com/s/17sma_a1ICJMY07KLnDpiww

打开 Jupyter 直接运行 run.ipynb 文件即可,生成的结果保存在 result_images 文件夹中。

除了处理图片,视频着色也不在话下。

修复算法

如果着色算法,例如 DeOldify,着色和修复的效果已经不错了,其实就不必加修复算法了。

但是如果效果不佳,那就可以再单独加个修复算法。

比较出名的是,微软 2020 年最新的一篇 CVPR 文章:「Bringing Old Photo Back to Life」。

作者使用变分自动编码机(VAE)将图像变换到隐空间,并在隐空间进行图像恢复操作。

可以看下修复效果:

关于该算法的原理,我出过教程,可以直接看这个:

百年老照片修复算法,那些高颜值的父母!

项目地址:

https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life

项目依赖于「Synchronized-BatchNorm-PyTorch」,按照教程配置即可。

第一步,clone 工程:

git clone https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life

第二步,进入工程目录,clone 依赖项目:

cd Face_Enhancement/models/networks/
git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
cd ../../../cd Global/detection_models
git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
cd ../../

第三步,下载预训练模型。

cd Face_Detection/
wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
bzip2 -d shape_predictor_68_face_landmarks.dat.bz2
cd ../

然后分别下载 Global 和 Face_Enhancement 的训练好的模型,并解压,放在对应目录下。

可以下载我打包好的工程,模型、代码、素材,都打包好了。

网盘链接(提取码:jack):

https://pan.baidu.com/s/1jVjd8dS0j0AnWeFI-7l-eA

使用方法:

没有裂痕的图像修复,就是图片不清晰,可以用如下指令:

python run.py --input_folder [test_image_folder_path] \--output_folder [output_path] \--GPU 0

将你想修复的图片放到 test_image_folder_path 目录下(自己指定),生成的图片会放到 output_path 目录中。

对于裂痕的图片,需要额外增加一个参数,指令如下:

python run.py --input_folder [test_image_folder_path] \--output_folder [output_path] \--GPU 0 \--with_scratch

这里需要注意的是,指定的路径需要使用绝对路径

帧插算法

帧插算法也很多,例如 DAIN、RIFE、Super SloMo 等,这里简单介绍下 DAIN。

DAIN 可以提高视频的帧率,比如现在,连手机都开始用上120帧的显示屏,但是网上大部分的视频还是24帧。

视频的帧率已经远远赶不上人民群众的需求了,所以有不少人都在研究如何把普通视频变成高帧率视频。

这项技术,显然也可以应用在 AI 修复上,用来提高视频的帧率,带啦更加丝滑的视频浏览体验。

DAIN 可以扩展到常见的任何类型视频:电影、定格动画、 动画卡通等等。

项目地址:

https://github.com/baowenbo/DAIN

使用方法和上面两个算法完全一样:配置环境、下载权重、运行代码。

这里就不赘述,大家可以自行尝试。

总结

AI 修复,效果上仍然有所欠缺,比如有些场景颜色修复的不够自然,但发展空间很大,针对一些特定场景 finetune 一番,绝对能有提升。

总之,AI 可以做很多有意义的事情,尽情发挥吧~

开工了,该收心了。

最后再送大家一本帮助我拿到BAT 等一线大厂 offer 的数据结构刷题笔记,是一位 Google 大神写的,对于算法薄弱或者需要提高的同学都十分受用(提起码:m19c):

BAT 大佬分类总结的 Leetcode 刷题模版,助你搞定 90% 的面试

更加详细的算法学习路线,包括算法、数学、编程语言、比赛等的学习方法和资料,可以看这篇内容:

我是如何成为算法工程师的,超详细的学习路线

我是 Jack,我们下期见。

1小时1篇文学会用python进行AI修复!相关推荐

  1. 1小时1篇文学会python再做个飞机大战游戏

    注: 想慢慢学习的同学可以看我的 <python 入门到游戏实战专栏>(更新中) 想学 C 的同学可以看<大话系列之C语言>(基本更新完) 想学 C++ 的同学可以看<大 ...

  2. matplotlib 折线图_漂亮图表也可信手拈来,一文学会用Python绘制堆积折线图

    今天咱们还是接着上次的话题,继续和大家聊聊关于Python绘图相关的东东哦,上次已经和大家讨论完了如何给自己所绘制的图表中添加装饰线以及修改装饰线密度的方法,今天呢,咱们再聊点的新的东东哦,还是和大家 ...

  3. 中绘制折线_漂亮图表也可信手拈来,一文学会用Python绘制堆积折线图

    今天咱们还是接着上次的话题,继续和大家聊聊关于Python绘图相关的东东哦,上次已经和大家讨论完了如何给自己所绘制的图表中添加装饰线以及修改装饰线密度的方法,今天呢,咱们再聊点的新的东东哦,还是和大家 ...

  4. 一文学会用Python操作Excel+Word+CSV

    作者:奈何缘浅wyj https://juejin.im/post/6868073137263607821 Python 操作 Excel 常用工具 数据处理是 Python 的一大应用场景,而 Ex ...

  5. python条形堆积图_漂亮图表也可信手拈来,一文学会用Python绘制堆积折线图

    今天咱们还是接着上次的话题,继续和大家聊聊关于Python绘图相关的东东哦,上次已经和大家讨论完了如何给自己所绘制的图表中添加装饰线以及修改装饰线密度的方法,今天呢,咱们再聊点的新的东东哦,还是和大家 ...

  6. python好看的折线图_漂亮图表也可信手拈来,一文学会用Python绘制堆积折线图

    今天咱们还是接着上次的话题,继续和大家聊聊关于Python绘图相关的东东哦,上次已经和大家讨论完了如何给自己所绘制的图表中添加装饰线以及修改装饰线密度的方法,今天呢,咱们再聊点的新的东东哦,还是和大家 ...

  7. python 归一化_一文学会用python进行数据预处理

    怎样用Python进行数据转换和归一化 1.概述 ​ 实际的数据库极易受到噪声.缺失值和不一致数据的侵扰,因为数据库太大,并且多半来自多个异种数据源,低质量的数据将会导致低质量的数据分析结果,大量的数 ...

  8. python统计各分数段人数并可根据选择绘制不同的图形_统计图形自己就可搞定,一文学会用Python绘制经典饼图...

    饼图,应该是大家比较熟悉的图形了吧,作为用来展示定性数据比例分布特征的经典统计图形,通过饼图,你可以很直观的看到各组数据的占比情况哦,上次已经和大家探讨了如何用Python来绘制经典的阶梯图,今天呢, ...

  9. python方差分析误差棒_一文讲透,带你学会用Python绘制带误差棒的柱状图和条形图...

    Python数据可视化,作为数据常用的必备技能,是目前大数据和数据分析的一个热门,而matplotlib库作为Python中最为常用和经典的二维绘图库,受到了很多人的青睐,最近已经和大家共同探讨了多种 ...

最新文章

  1. java——网络知识积累
  2. 栈----迷宫(Maze)
  3. mysql自动备份脚本,及系统定时备份设置!
  4. java计算器程序加编辑帮助_这里有个JAVA计算器的小程序,希望帮忙加下注释,少许修改...
  5. HTML+CSS实现旋转太极图动态效果
  6. JSP自定义标签学习笔记
  7. HTML5新特性-自定义属性(data-set)
  8. linux之在当前目录下删除不包含aa的文件
  9. 可编程的智能小车,100种玩法,让孩子玩出理科编程思维
  10. C. Vanya and Scales
  11. 生产者/消费者模式(一)
  12. 服务器性能优化和Mysql性能优化
  13. 【Elasticsearch】Elasticsearch通过reroute api 重新分配分片
  14. Oracle数据库时间修改
  15. Dokcer使用总结(Dockerfile、Compose、Swarm)
  16. oracle首先创建三个表,oracle一个创建用户、创建表空间、授权、建表的完整过程...
  17. java加密 js解密_【Java】JavaScript 加密 Java 解密
  18. Java网络五子棋程序设计论文
  19. [CTF]Dino安全小组第三次内部赛“remix_欧皇的游戏2.0”Writeup
  20. IDEA 修改全文搜索快捷键

热门文章

  1. android开发实例之minitwitter登录界面+代码,登录界面_记住密码
  2. Yesterday Once More(昨日重现)
  3. linux流控系统,Linux流量控制(TC)之表面
  4. 服务器迁移域名和证书要改什么用,服务器数据迁移方案介绍 怎样更换网站域名?...
  5. win快捷键_win10系统超实用快捷键,提高你的效率!
  6. nopi 缩小字体填充_我在超市里改字体
  7. 爬虫-豆瓣书籍排行榜及用户信息-2021.7.23-使用Scrapy框架-用MongoDB存储数据
  8. 【最新版】宝塔面板7.9.3企业版 开心破解版一键脚本
  9. 读研攻略--如何选择你的研究方向并展开学习
  10. Exchange2016将用户头像发布到全局地址列表(GAL)