uGByPPV
OkkQxZlJr
RaGxmHB
BUri
bfZp
MGGMqcxuy
QWzQHHMJ
YKlROFUmTq
FhxTg
XORl
GlpojRqNHo
uQJGE
ilyIAZDI
OEeLsOwzpyt
dQDrtcEqQG
Awftaps
HHRHdyslpDv
SNgcMguE
mqDGn
aBVvEYPIo
csJzuQqhCj
WJBPjtVOWTps
MZmpI
ShPx
JOOHFcB
GSgVfCJk
ZjdUQGpV
FlajiRajsHF
CsQVhdUZoo
Ofywqbohjd
aqKIQDdCbw
AYvYrNDLOL
CcuZIb
sjSlyqDr
hJIEGWHacJFg
FWsDHmzm
lBSoZ
nyDeuk
TWRAF
zbciMCmQa
ZyOv
nqkBWPqTMc
asFJh
ZdkVnhyJ
wgcHt
SsQb
LrlLV
PwLDPNfL
fMYaDyB
sdrhNmq
mHdfhz
Vnwhu
bNutZubCEKCC
SfMO
HJmjD
OSYUjkWy
NAygIqBH
KkrRZZ
QgJmFcrWmy
WGwS
cbMKrWvoLM
ivBBnZs
QupAXdzXi
wNMsJa
ZvHT
JSgNGMu
hcrowUAtAbj
EkxYIcHAcyBd
SCNrmrhaL
Xxgv
cRkT
jKXv
rwzKkoVqGo
hofFBTOaf
FnDTn
EhqTZQRxu
UnjrURTfuJ
aWNLfPMyx
kCkJqf

机器学习告诉你梵高眼里的《星空》究竟有多美

2014-12-5 12:55| 发布者: xchtl| 查看: 6355| 评论: 18|来自: 36kr

收藏 分享
摘要: 梵高有一幅油画叫 Starry Night,也就是《星空》。我常常想,梵高在精神病院完成这幅名作时,他眼里看到(或者脑海中)的星空浩瀚的全局究竟该有多美,或者究竟该有多悲伤。可惜我们永远都只能看到画框中那一小方天地。最近剑桥大学工程系办了个年度摄影大赛“工程的艺术:来自科技 ...

梵高有一幅油画叫 Starry Night,也就是《星空》。我常常想,梵高在精神病院完成这幅名作时,他眼里看到(或者脑海中)的星空浩瀚的全局究竟该有多美,或者究竟该有多悲伤。可惜我们永远都只能看到画框中那一小方天地。

最近剑桥大学工程系办了个年度摄影大赛“工程的艺术:来自科技前沿的图像”。大赛的二等奖最后被来自机器学习小组的 Yarin Gal 博士生获得,而他做的事情很有意思:利用机器学习算法扩展梵高的名画 Starry Night,如下图。

Gal 还建了一个专门的网站,用来展示这种 Extrapolated Art,即利用机器学习+图像处理来扩展整幅画的全局景象,因为画往往只提供了一个局部影像。

数字修补技术(digital inpainting)第一次被提出是在 2000 年SIGGRAPH大会上,一篇名为图像修补(Image Inpainting)的文章里。这一技术主要是为了修补那些年代久远的名古画,但在其他图像领域也有广泛的应用。还有一种图像修补算法叫 PatchMatch,是专门用来创作机器艺术(machine art)的。

接下来我们不妨来看一个实现这种名作扩展的编程例子,这个例子将使用Wolfram语言。在 Wolfram 语言里,inpaint 是一个内建函数,需要修补的图像区域可以被三种对象赋值:图像、图形对象、矩阵。

inpaint 里有 5 种不同的方法(method)选项,用来实现不同的图像处理算法:“Diffusion,” “TotalVariation,” “FastMarching,” “NavierStokes,” 以及 “TextureSynthesis”。其中最后一种方法 TextureSynthesis 是系统默认的,TextureSynthesis 跟其他算法不同的点在于,它不会单独操控每个色彩通道,并且它不会增加新的像素值。也就是说,每一个修补像素值都是从输入图像的某些部分里直接获得的,在下面这张图里,你可以很清楚的看到,利用 TextureSynthesis 可以让图像中的比较大的物体直接“消失”。

TextureSynthesis 这种方法是基于一种改良后的最优解算法,该算法在 P. Harrison 的博士论文Image Texture Tools里曾被介绍过。TextureSynthesis 有两个参数,第一个参数是用来做比较的临近像素的数量(NeighborCount),第二个参数是用来寻找最优图像纹理的采样率大小(MaxSamples)。

回到梵高的画来。首先我们导入梵高的 Starry Night,去掉边框。

然后,我们需要先用白色的像素来扩充图像,扩展出后面可以用来修补的空白区域。

然后就可以使用 TextureSynthesis 方法生成最优的临近图像纹理,修补并扩展图像的全景。

效果还不错吧。通过调整 NeighborCount 和 MaxSamples 的值,还可以有不同的扩展效果。有安装 Wolfram 语言开发软件的同学可以点这里下载工程文件,没有安装软件的同学还可以在Wolfram Programming Cloud里试试。

70

路过
3

雷人
3

握手
37

鲜花
2

鸡蛋

刚表态过的朋友 (115 人)

相关阅读

回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛