↑↑↑关注后"星标"Datawhale

每日干货 & 每月组队学习,不错过

Datawhale干货

作者:桔了个仔,南洋理工大学,Datawhale成员

身临其境的图像复原

之前看《你好李焕英》里,有一个表现手法非常让我印象深刻。就是一开始场景是黑白的,然后慢慢变成彩色的,从黑白到彩色的这个过程,让我有种「进入新的现实」的感觉。

近期有五四运动的图像复原,看到仿佛置身五四运动现场,尽管画面分辨率不高,色彩也不那么完美,但就是能给人一种身临其境的感觉,回到一百年前,与青年们一起救亡图存。

当时的青年尚能挺身而出,忧国忧民,我相信,现代的青年也能奋发图强,肩负起对于这个国家的历史责任,塑造起具有时代光芒的民族精神。

看了下,大家都对技术原理感兴趣啊,那我来用简单的语言讲讲吧。

技术原理

AI上色的原理是什么? 那我们就需要介绍一种深度学习网络架构了,它就是GAN(这里不是粗话)。GAN不是干饭人的干,而是生成对抗网络(英语:Generative Adversarial Network,简称GAN)。当然,太复杂的技术讲解可能会让读者迷惑,于是我找到一张很直白的原理图。

GAN网络分两部分,一个是生成器(Generator),一个是鉴别器(Discriminator)。生成器通过对图像上色,然后交给鉴别器。鉴别器判断这一个图片看起来真不真,如果觉得假,鉴别器会返回「修改意见」,让生成器重新试试,直到鉴别器觉得足够真了。如果你觉得还不好懂,我再打个比方,这就好像美术老师指导学生画画的过程,一开始学生画出来的不够好,老师指出,学生尝试改改,老师再检查,再给意见,直到老师满意。

这就是一张图的上色过程。而视频是一帧帧画面组成的,给视频上色可以理解为通过这个网络架构给视频里的每一帧上色。不过没有这么简单,毕竟视频一秒钟几十帧,一帧帧上色有点慢,而且每一帧之前可能会出现上色效果不一致。所以有的架构会针对细节调整。例如DeOldify采用了NoGAN(一种新型GAN训练模型),用来解决之前DeOldify模型中出现的一些关键问题。例如视频中闪烁的物体:

‍‍

使用NoGAN前,画面闪烁严重

使用NoGAN后闪烁减少‍‍

当然,实际还原的色彩其实和原本的色彩是不一样的,仅仅是能让其看起来自然。我做了个实验(AI上色工具稍后介绍到),能看到上色效果和原来的效果并不一样。我下载了这么一张向日葵的照片

我手动转成黑白的

这时候再让AI上色,咦,向日葵变成雏菊了。不过看起来竟然也有另一番美感。

一般来说,给人上色会更接近实际情况些。因为人的肤色比较有限,判别器里已经学习过人脸的颜色可能是哪些,转换成灰度图像后对应什么颜色值,所以AI不太可能会给黑白的人像涂成绿色脸。

动手实现

如果你是技术小白,你可以直接打开这个网址,你只需要上传一张图片就能自动上色。Image Colorizationdeepai.org 例如效果如下:

看起来效果很棒吧。如果你懂点技术但不懂机器学习,可以用DeepAI提供的API。例如python调用方法如下:

import requests
r = requests.post(
"https://api.deepai.org/api/colorizer",
data={
'image': 'YOUR_IMAGE_URL',
},
headers={'api-key': 'quickstart-QUdJIGlzIGNvbWluZy4uLi4K'}
)
print(r.json())# Example posting a local image file:import requests
r = 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())

如果想继续深入研究,可以fork DeOldify的repo。附开源地址:

https://github.com/jantic/DeOldifygithub.com

整理不易,三连

几行代码实现老照片上色复原!相关推荐

  1. 几行代码,让黑白老照片重获新生!

    文 | 闲欢 来源:Python 技术「ID: pythonall」 大家好,我是闲欢,今天我们继续肝! 这几年抖音真的是火得深入到大街小巷,给无数人带来了可观的收入. 这其中有一个细分品类是修复老照 ...

  2. 百行代码构建神经网络黑白图片自动上色系统

    使用神经网络对图片进行风格化渲染是计算机视觉领域的热门应用之一.本文将向你介绍一种简单而有效的黑白图片上色方法,仅需 100 行代码,你也可以搭建自己的神经网络,几秒钟内让计算机自动完成手动工作需要几 ...

  3. DeOldify实现老照片上色(附直接使用的工具代码) | 机器学习

    目录 前言 安装 代码改造使用 总结 前言 老照片上色其实很早之前就想写了,也有不少人问了我这个项目. 最近把DeOldify项目好好弄了弄. 项目地址:DeOldify项目地址 先看看项目给出的图片 ...

  4. 本周AI热点回顾:30行代码,让27吨发电机原地爆炸;Photoshop把AI论文demo打包实现了;2块钱就能买上千张人脸照片

    点击左上方蓝字关注我们 01 Photoshop把AI论文demo打包实现了:照片上色.改年龄.换表情只需要点点鼠标 这两年,我们从很多论文中看到过一些令人惊艳的 demo,比如老照片自动上色.低画质 ...

  5. 网传梅姨照片竟然是电脑合成的!仅需 100 行代码,你也能做到!

    近日,有关人贩子"梅姨"的图片在朋友圈以及网络平台热传,所有人都以为这是一张官方发布的照片,于是纷纷在朋友圈转发. 但是当天下午,公安部儿童失踪信息紧急发布平台曾发布消息称,&qu ...

  6. Python编程学习第一篇——Python零基础快速入门(三)——10行代码画朵花

    上一节讲了一些Python编程的一些基础知识,从这节开始,我们将跟随一些实际的小程序示例,进入正式的编程学习.       下面我们就来介绍一下今天这个只有10行代码的小程序,先来看一下它的运行效果, ...

  7. 太厉害了!30行代码抓取上万个小姐姐跳舞视频,有点飘了~

    点上方"菜鸟学Python",选择"星标" 第481篇原创干货,第一时间送达 大家好,我是菜鸟哥!这个我第481篇原创! 今天又给大家带来一个有趣的Python ...

  8. 菜鸟最爱,60行代码打造一款音乐播放器!

    点上方"菜鸟学Python",选择"星标" 第467篇原创干货,第一时间送达 大家好,我是菜鸟哥! 对于小伙伴们来说,在日常的学习和工作中,很多人都喜欢边听音乐 ...

  9. 5分钟,10行代码!带你用Python做个电脑文件清道夫!

    "菜鸟学Python",第"508"篇原创 大家好,我是菜鸟哥!新的一周来啦,Python学起来! 大家在日常的工作和学习中,会面临到许多文件的处理,包括各种o ...

最新文章

  1. 【 MATLAB 】信号处理工具箱之 dct 简介及案例分析
  2. UITextFiled使用 + 不常见的需求
  3. 2017计算机等级考试题,2017年计算机二级考试题库及答案
  4. Leaflet中使用Leaflet-echarts3插件实现航班航线动态模拟
  5. ubuntu更新python的指令_ubuntu下python模块的库更新(转载)
  6. 分享制作精良的知识管理系统 配置SQL Server文档数据库 完美实现博客文章的的下载,存储和浏览...
  7. C++新特性探究(七):初始化列表(Initialization List)
  8. Oracle的执行计划详解
  9. MyBatis→SqlSession、sqlMapConfig.xml、映射XML文件、OGNL、拼接SQL标签、取值查值、批量SQL、一对多多对一多对多
  10. gtest的Linux使用(Google test)
  11. 手把手教你写ORM(七)
  12. 【边缘检测】基于matlab蚁群算法图像边缘检测【含Matlab源码 1189期】
  13. U盘重新安装Mac OS系统教程
  14. 芯唐语音识别_大联大品佳集团推出基于新唐科技的智能语音识别解决方案
  15. Flex布局(弹性布局)-图文介绍
  16. 2015级计算机科学与技术2班班级博客大全
  17. Qt 使用WPS或HTML生成word文档
  18. cookies的清空和保存
  19. tensorflow导出冻结图模型
  20. 什么?你项目还在用Date表示时间?

热门文章

  1. css学习任务二:切图写代码
  2. atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty  HttpListener...
  3. Java对多线程的支持
  4. AS 400 常用命令
  5. 避免资源死锁:识别已打开的事务
  6. 线性代数 2021-2022-1 考试要点
  7. 对矩阵分解的粗浅理解之LU分解
  8. 图像非极大值抑制 Sobel 边缘实现
  9. 【MATLAB】数组运算
  10. 二维已经 OUT 了?3DPose 实现三维人体姿态识别真香 | 代码干货