当前位置: 首页 > 编程日记 > 正文

他们用卷积神经网络,发现了名画中隐藏的秘密

640?wx_fmt=jpeg

作者 | 神经小刀

来源 |HyperAI超神经( ID: HyperAI)

导语:著名的艺术珍品《根特祭坛画》,正在进行浩大的修复工作,以保证现在的人们能感受到这幅伟大的巨制,散发出的灿烂光芒。而随着技术的进步,高分辨率数字技术的介入,数据信息的逐渐增多,也让 AI 技术能够在画作修复上大显身手。那么在《根特祭坛画》的修复上,AI 技术能够带来哪些惊喜?

《根特祭坛画》(又名《神秘羔羊之爱》),是比利时国宝级瑰宝,也是世界上迄今最具影响力的油画,最受艺术领域关注的大师级作品。

它由 Van Eyck(凡·艾克)兄弟,于 1415 年到 1432 年,历时 18 年完成,是一幅由内外 20 个画板构成一种折叠式巨大画作,完全打开时长 3.5 米,宽 4.7 米。

640?wx_fmt=jpeg

真迹现存放于比利时根特的圣·巴夫大教堂

但正因为名气太大,这幅画自问世以来,遭遇了多次横祸。

而且,除了人为破坏之外,它也与很多世界名画一样,难逃因灰尘、潮气等的侵蚀,导致画面变色、失去光泽。因此,画作的修复需求也越来越迫切。

近日,伦敦大学与杜克大学利用人工智能来解码《根特祭坛画》的高分辨率 X 射线图像,其研究结果发表在《Science Advances》期刊上:《Artificial Intelligence for Art Investigation: Meeting the Challenge of Separating X-ray Images of the Ghent Altarpiece》。

这一研究有望提高我们对艺术杰作的理解,并为艺术调查,保护和展示提供新的机会。

名画伤痕累累,修复工程浩大

祭坛画是一种画在木板上,安置在教堂圣坛前面,用于装饰的复合画作。《根特祭坛画》取材于圣经,描绘了其中的经典场景,涵盖了 100 多位人物。

这幅作品也是现代油画的开山之作,Van Eyck 兄弟在创作中,首次试验用油调色,使用新的涂料、松脂以及乳剂,以让画面保持经久鲜润的效果,此外,它还因为材质和纹理渲染,以及精致而复杂的构图成为一代瑰宝。

640?wx_fmt=jpeg
左右分别是闭合和打开的样子

自 1432 年首次展出之后,《根特祭坛画》经历了 7 次被盗、涉及 13 次不同形式的犯罪事件,堪称被盗窃最多的名画,时至今日,仍有一块画板下落不明。

除此以外,和其他艺术珍品一样,它也一直在经历着时间的考验。原画被长年累月的积尘和蚀变所摧残,光泽和画面都打了折扣。

油画创作中,使用天然树脂制成的清漆,甚至是合成材料,都会随着时间的推移而降解发黄,变得浑浊。造成表面模糊,画面的色调平衡和图像中的层次感被极大地改变。

因此,根特祭坛画已经经过了多次的清洁和修复,在一次修复中,工作人员惊奇地发现,画作共有 3 层,重绘面积达到了 70 %,意味着该画经历过两次未被记载的大型修复。
640?wx_fmt=jpeg
修复前(左)和修复后(右)的色泽发生了很大变化

2012 年 10 月起,在进行了详细的评估之后,博物馆对它开启了浩大的修复工程。专家们也决定将修复目标从「恢复画面色彩」改为「复原画作的最初面貌」。
640?wx_fmt=jpeg
工作人员正在进行修复,修复期长达八年

这项工作需要耗费大量的人力和财力,预计最早将于 2020 年完工。修复的过程包括去除表面灰尘与清漆、恢复画作的色彩的工作,也包含多种扫描成像,建立电子模型的过程。

毋庸置疑,这是一项高难度的工作。而现在, AI 技术的发展,正为修复工作做出贡献。

修复难题:解读 X 射线图像

在画作修复中,目前已经有了一些成熟的机器学习案例,包括不同阶层的画面的材料识别,裂纹的数字图像修复,隐蔽的设计和可视化呈现。

而在根特祭坛画的修复中,伦敦大学和杜克大学的研究者,最近用深度学习的方式,解决了 X 射线图像扫描上的技术难题。

X 射线照相术(XR)是画作修复中的一项重要方法。它利用不同材料对 X 射线吸收程度不同的原理,能够表现出画作中的隐藏细节。

在根特祭坛画的修复工作中,建立完整 X 射线图片,也是修复的一个重要步骤。X 射线图像通过显示清漆或覆盖涂层隐藏裂缝,油漆磨损或其他结构区域的问题,能够帮助修复工作的进行。

此外,扫描图像还可以向工作人员揭示艺术家的工作方法,揭示画布或面板的物理结构及其支撑,以及创作中使用的不同涂层。

但对于根特祭坛画此类作品,在其 X 射线图像图片的解读上,却面临一个严峻的考验。

根特祭坛画中,有几块画板正反面都绘制有图案,X 射线扫描出复杂的三维吸收图案,最终却被记录成二维文件,所以呈现出来的是混在一起的复杂图像。

640?wx_fmt=jpeg
有几块画板正反面都绘有图案
所以得到的是混合的 X 射线图片(最右)

其中包括多重信息,比如油漆表面形态,显示橡木支撑的结构,木纹、木钉的位置,以及油漆层中的裂缝和磨损。要想获得有价值的信息,必须在这些杂乱的信息中,分离出要分析的单个画层。

由此带来了一个巨大的解读难题,而挑战则在于,如何将混合了双面板的 X 射线图像,分离成相应「单面」绘画的单独 X 射线图像。

破解之术:卷积神经网络

为了解决这个难题,伦敦大学和杜克大学的研究团队,在比利时皇家遗产文化研究所和西蒙斯基金会的支持下,开启了一项研究,提出了一种基于卷积神经网络(CNN)的自监督框架,完美地破解了它。

X 射线得到的混合图像,其实是面板两侧的图像的非线性组合。而这项研究的核心,在于通过建模的方式,找出最终混合图样和每个侧面信息的映射,再借助于一些细节的帮助,进行 X 射线信号的分离。

所以他们的思路转化为,在完全监督的源设置中,从包含混合和单个信号的训练集(可能由同一艺术家以相似的样式绘制的不同绘画)中,让算法分析学习出混合图像到源信号的对应关系。

为此,他们设计了一个自我监督的神经网络,学习如何将 RGB 图像转换为 X 射线图像,然后作为单面板的虚拟图像「重建」,然后通过最小化重建 X 射线图像的误差,比较与原始混合的 X 射线图像之间的差异,让模型学会实现这种分离。
640?wx_fmt=jpeg
将 RGB 图像转换为 X 射线图像的神经网络结构

整个过程不使用大量标记数据,而是使用了高分辨率的图像(允许创建大量输入补丁),并基于隐式标记训练网络。

具体细节上,他们构建了七层的 CNN ,每个卷积层之间含有批量归一化和整流线性单元(ReLU)激活层。网络的结构受到了 pix2pix 结构启发(pix2pix 使用条件对抗网络进行图像到图像转换)。

通过训练之后,模型实现了输入混合的 X 射线图像,输出两个单独的面板图片。
640?wx_fmt=jpeg
分离效果超过了所有其他的方法

这种新的方法,在两个独立的测试图像集上得到了应用,很好地再现了画板中「亚当」和「夏娃」的单独细节,其清晰度也远远地超出了预期。

人工智能,让艺术珍品更长久

通过他们的研究,X 射线图样的分离问题得到了完美解决,甚至研究者都没有预料到,通过对深度学习的方法,得到了如此惊人的清晰度。

一位研究人员兴奋地将这个过程,比作是物理学上的探索:通过实验尝试,找出了没有相关理论解释的意外成果。

而接下来,研究团队希望在其他一些著名的杰作上,尝试这种方法:「我们希望看到类似的人工智能方法,对揭示绘画中其他的隐藏特征带来帮助,例如发现早期隐藏的设计」。

而对于著名的《根特祭坛画》,相信有了 AI 技术的加持,必然能更快地闪耀出它最初的光芒。

640?wx_fmt=gif

论文地址:
https://advances.sciencemag.org/content/5/8/eaaw7416/tab-pdf

(*本文为AI科技大本营转载文章,转载请联系作者)

推荐阅读
  • 六大主题报告,四大技术专题,AI开发者大会首日精华内容全回顾

  • AI ProCon圆满落幕,五大技术专场精彩瞬间不容错过

  • CSDN“2019 优秀AI、IoT应用案例TOP 30+”正式发布

  • 我的一年AI算法工程师成长记

  • 开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍

  • 如何打造高质量的机器学习数据集?

  • 从模型到应用,一文读懂因子分解机

  • 用Python爬取淘宝2000款套套

  • 7段代码带你玩转Python条件语句

640?wx_fmt=png
你点的每个“在看”,我都认真当成了喜欢

相关文章:

机器学习公开课~~~~mooc

https://class.coursera.org/ntumlone-001/class/index

DLM:微信大规模分布式n-gram语言模型系统

来源 | 微信后台团队Wechat & NUS《A Distributed System for Large-scale n-gram Language Models at Tencent》分布式语言模型,支持大型n-gram LM解码的系统。本文是对原VLDB2019论文的简要翻译。摘要n-gram语言模型广泛用于语言处理,例如自动语音…

Ubuntu14.04 64位机上安装cuda8.0+cudnn5.0操作步骤

查看Ubuntu14.04 64位上显卡信息,执行:lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi第一条此命令可以显示一些显卡的相关信息;如果想查看某个详细信息,可以执行第二条命令;如果是NVIDIA卡, 可继续执行第三条命…

SQLI DUMB SERIES-5

less5 (1)输入单引号,回显错误,说明存在注入点。输入的Id被一对单引号所包围,可以闭合单引号 (2)输入正常时:?id1 说明没有显示位,因此不能使用联合查询了;可…

javascript RegExp

http://www.w3schools.com/jsref/jsref_obj_regexp.asp声明-------------modifiers:{i,g,m}1. var pattnew RegExp(pattern,modifiers);2. var patt/pattern/modifiers;------------------------例子:var str "Visit W3Schools"; //两…

Ubuntu14.04 64位机上安装OpenCV2.4.13(CUDA8.0)版操作步骤

Ubuntu14.04 64位机上安装CUDA8.0的操作步骤可以参考http://blog.csdn.net/fengbingchun/article/details/53840684,这里是在已经正确安装了CUDA8.0的基础上安装OpenCV2.4.13(CUDA8.0)操作步骤:1. 从http://opencv.org/downloads.html 下载OpenCV2.…

一篇文章能够看懂基础代码之CSS

web页面主要分为三块内容:js:控制用户行为和执行代码行为html元素:控制页面显示哪些控件(例如按钮,输入框,文本等)css:控制如何显示页面上的空间,例如布局,颜…

谷歌NIPS论文Transformer模型解读:只要Attention就够了

作者 | Sherwin Chen译者 | Major,编辑 | 夕颜出品 | AI科技大本营(ID:rgznai100)导读:在 NIPS 2017 上,谷歌的 Vaswani 等人提出了 Transformer 模型。它利用自我注意(self-attention)来计算其…

中国移动与苹果联姻 三星在华霸主地位或遭取代

据国外媒体12月24日报道,在各方的期待下,苹果终于宣布中国移动将于2014年1月17日开始销售支持其网络的iPhone手机。而中国移动也将于12 月25日开始正式接受预定。作为中国以及世界最大的移动运营商,中国移动与苹果的合作,将会帮助…

二维码Data Matrix编码、解码使用举例

二维码Data Matrix的介绍见: http://blog.csdn.net/fengbingchun/article/details/44279967 ,这里简单写了个生成二维码和对二维码进行识别的测试例子,如下:int test_data_matrix_encode() {std::string str "中国_abc_DEF…

PDF文件如何转成markdown格式

百度上根据pdf转makrdown为关键字进行搜索,结果大多数是反过来的转换,即markdown文本转PDF格式。 但是PDF转markdown的解决方案很少。 正好我工作上有这个需求,所以自己实现了一个解决方案。 下图是一个用PDF XChange Editor打开的PDF文件&am…

关于SAP BW提示“Carry out repairs in non-original only

为什么80%的码农都做不了架构师?>>> 这个提示是由于你在生产系统(正式系统)里面修改了一些东西,才提示"Carry out repairs in non-original system only if they are urgent"这个警告,理论上我们…

windows7 64位机上安装配置CUDA7.5(或8.0)+cudnn5.0操作步骤

按照官网文档 http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#axzz4TpI4c8vf 进行安装:在windows7上安装cuda8.0/cuda7.5的系统需求:(1)、ACUDA-capable GPU(本机显卡为GeForce GT 640M);(2)、A support…

多重影分身:一套代码如何生成多个小程序?

前言 影分身术,看过火影的都知道,一个本体,多个分身。 大家肯定要问了,那小程序开发跟影分身术也能扯上关系?没错,那自然就是:一套代码,多个小程序啦。 各位先别翻白眼,且…

TensorFlow全家桶的落地开花 | 2019 Google开发者日

作者 | 唐小引写于上海世博中心出品 | GDD 合作伙伴 CSDN(ID:CSDNnews)Android 10 原生支持 5G,Flutter 1.9、Dart 2.5 正式发布这是 Google Developer Days 在中国的第四年,从 2016 年 Google Developers 中国网站正式…

css的background

背景属性——background是css中的核心属性。你应该对它有充分的了解。这篇文章详细讨论了background的所有相关属性,甚至包括background-p_w_upload,还为我们介绍了它在即将到来的CSS3中的样子,还有那些新加入的背景属性。使用CSS2中的背景属…

windows7 64位机上配置支持GPU版(CUDA7.5)的OpenCV2.4.13操作步骤

很久之前在windows7 32位上配置过GPU版的opencv,可参考http://blog.csdn.net/fengbingchun/article/details/9831837Windows7 64位CUDA7.5的配置可以参考:http://blog.csdn.net/fengbingchun/article/details/53892997这里是在CUDA7.5已正确安装后的操作…

值得注意的知识点

ImageView的属性adjustViewBounds www.jianshu.com/p/13de17744… 转载于:https://juejin.im/post/5c8b7742e51d454e02716e44

阿里深度序列匹配模型SDM:如何刻画大型推荐系统的用户行为?

作者 | 石晓文来源 | 小小挖掘机(ID:wAIsjwj)今天给大家介绍的论文是:《SDM: Sequential Deep Matching Model for Online Large-scale Recommender System》论文下载地址:https://arxiv.org/abs/1909.00385v11、背景像…

find ip from hostname or find hostname from ip

1. find ip from hostname ping <hostname> 2.fin hostname from ip nslookup <ip>

Linux下多线程编程中信号量介绍及简单使用

在Linux中有两种方法用于处理线程同步&#xff1a;信号量和互斥量。线程的信号量是一种特殊的变量&#xff0c;它可以被增加或减少&#xff0c;但对其的关键访问被保证是原子操作。如果一个程序中有多个线程试图改变一个信号量的值&#xff0c;系统将保证所有的操作都将依次进行…

Linux环境HBase安装配置及使用

Linux环境HBase安装配置及使用 1. 认识HBase (1) HBase介绍 HBase Hadoop database&#xff0c;Hadoop数据库开源数据库官网&#xff1a;hbase.apache.org/HBase源于Google的BigTableApache HBase™是Hadoop数据库&#xff0c;是一个分布式&#xff0c;可扩展的大数据存储。当…

适合小团队作战,奖金+招聘绿色通道,这一届算法大赛关注下?

大赛背景伴随着5G、物联网与大数据形成的后互联网格局的逐步形成&#xff0c;日益多样化的用户触点、庞杂的行为数据和沉重的业务体量也给我们的数据资产管理带来了不容忽视的挑战。为了建立更加精准的数据挖掘形式和更加智能的机器学习算法&#xff0c;对不断生成的用户行为事…

Linq 集合处理(Union)

关于Union的两种情况 一、简单值类型或者string类型处理方式(集合需要实现IEnumerable接口) #region int类型List<int> ints1 new List<int> { 1, 2, 3, 4, 5, 6 };List<int> ints2 new List<int> { 5, 6, 7, 8, 9, 0 };IEnumerable<int> ints…

卷积神经网络中十大拍案叫绝的操作

作者 | Justin ho来源 | 知乎CNN从2012年的AlexNet发展至今&#xff0c;科学家们发明出各种各样的CNN模型&#xff0c;一个比一个深&#xff0c;一个比一个准确&#xff0c;一个比一个轻量。下面会对近几年一些具有变革性的工作进行简单盘点&#xff0c;从这些充满革新性的工作…

windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题

在Windows7下调用vs2013生成的Caffe静态库时经常会提示Check failed: registry.count(type) 1 (0 vs. 1) Unknown layer type的错误&#xff0c;如下图&#xff1a;这里参考网上资料汇总了几种解决方法&#xff1a;1. 不使用Caffe的静态库&#xff0c;直接将Caffe的sourc…

js 变量提升 和函数提升

2019独角兽企业重金招聘Python工程师标准>>> 创建函数有两种形式&#xff0c;一种是函数声明&#xff0c;另外一种是函数字面量&#xff0c;只有函数声明才有变量提升 console.log(a) // f a() { console.log(a) } console.log(b) //undefinedfunction a() {consol…

.net_ckeditor+ckfinder的图片上传配置

CKEditor和CKFinder的最新版可以到官方网站&#xff08;http://cksource.com&#xff09;上下载获得。 把以上两个资源放到网站的根目录&#xff1a; /CKEditor 和 /CKFinder (不区分大小写) 在页面使用 CKEditor&#xff1a; <textarea cols"80" id"prcont…

VS2013在Windows7 64位上变慢的解决方法

重装了windows7系统&#xff0c;又重装了vs2013&#xff0c;发现在打开vs2013、编译工程及调试的时候&#xff0c;vs2013都会变的比较慢&#xff0c;参考网上资料&#xff0c;这里列出几种可能的解决方法&#xff1a; 1. 打开工具--> 选项 --> 源代码管理 --> 插件选…

Key-Value数据库:Redis与Memcached之间如何选择?

华为云分布式缓存Redis5.0和Memcached都是华为云DCS的核心产品。 那么在不同的使用场景之下&#xff0c;如何选择Redis5.0和Memcached呢&#xff1f; 就由小编为大家进行详细的数据对比分析吧Redis和Memcached都是非常受欢迎的开源内存数据库&#xff0c;相对关系型数据库&…