AI 前线导读:图像修复是一个被广泛研究的计算机视觉问题,涉及修复图像中缺失的部分,近日,斯坦福大学 CS230 课程中一篇获得了第一名的论文让这一难题取得了十分喜人的进步,在这篇名为《Painting Outside the Box: Image Outpainting》的论文中,作者提出了“Image outpainting”,这项技术比图像修复更进一步,能从一个图像片段“推断”出外延的部分,补全成整个画面。
更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)
CS230 课程是斯坦福开设的深度学习课程,吴恩达正是这门课的讲师之一:
根据斯坦福的官网介绍,该课程将从深度学习的基础开始,教会学生了解如何构建神经网络,以及学习如何领导成功的机器学习项目。不仅教授理论,还会让学生了解它如何应用于工业。
本文即将介绍的这篇与图像修补相关的论文,既然能够在这门课程里得到第一名的成绩,想必也是受到了吴恩达的赞赏。
先来看看这令人惊艳的最终效果:
左边是图片的残损画面,右边是经过“推理”之后生成的完整图片,虽然仍有一些明显的痕迹,但是这样的成果已经非常惊人了。
据了解,目前最先进的图像修复技术包括 GANs 和 CNNs,而本篇论文的作者 Mark Sabini 及其团队的目标是拓展方法,即对图像外延进行推断的 image outpainting,这项技术能够让图像可以被递归 outpainting 任意拓展。
AI 前线对 Mark Sabini 团队的论文和进行了简要翻译,感兴趣的读者可以回复“outpainting”获取该论文下载链接。
如原图图片:为 m×n,产生一个 m×(n+2k) 的图像,
位于中心
看起来真实自然
假设 m=128,n=64,k=32
基准图像:大小为 128×128RGB 的 City 图像
数据集:Places 图像 365- 标准(3)
图像标准化至 [0,1]
定义 mask
定义补充 mask
通过和计算平均像素密度
设
输出
DCGAN 架构(G,D)与(1)类似
对于,预处理得到
运行得到 outpaint image
在和上运行 D
分三阶段进行 G,D
阶段 i:使用优化迭代损失(i)
18:2:80 选择
控制 MSE 损失值
将重新调整到 [0,255]
通过无缝克隆将与结合起来
(图 3: 架构 除最后一层外,其它层的 G 与 D 使用了 ReLU,G 与 D 的输出结果由 sigmoid 激活函数得出。在这里,n 为尺度因子。)
(用递归算法画的图像)
(图 4:outpainting 验证集留存图像的 outpainting 示例,以及原图。模型经过 100 epochs(相当于 227500 次迭代),批量为 16)
(图 5: Places365 MSE 损失 通过背景的颜色展示不同训练阶段。在阶段 3,当连接损失(3)优化时 MSE 损失略上升)
(图 6:本地鉴别器 训练本地鉴别器(LD)降低了垂直分带,提高了颜色保真度,但增加了人工和训练时间)
(图 7: 扩张的效果 训练网络拟合城市图像。如果扩张不足,网络由于接受域有限而 outpaint 失败)
(图 8: 递归 outpainting 当输入经过扩张和填充之后得到 outpaint image
。重复此递归,将图像宽度增加值 3.5。与预期一致,噪音被持续的迭代消解 )
编者注:在论文发表之后,有人通过该篇论文的方法实现了图像修补,并将实现的简单步骤发布在了 GitHub 上,我们也一并将这些内容翻译了出来,相关地址在文末,仅供各位读者参考。
这是斯坦福大学论文《Painting Outside the Box: Image Outpainting》的实现,我们做出了一些修改以适应 256*256 的图像。
添加了识别损失,即从生成的图像到原始图像
从训练数据中删除了补丁。(训练管道)
用裁剪取代 masking。(训练管道)
添加了卷积层。
python 3.5
keras==2.1.5
keras-contrib==2.0.8
tensorflow==1.5.0
opencv-python==3.4.0.12
Pillow==5.0.0
CUDA Version 9.0.176
准备数据
#下载 beach 数据并转换为 numpy 批量数据
#将 Numpy 批处理数据保存到'data / prepared_data /'sh prepare_data.sh
2. 建立模型
编者注:如果您在看过这篇文章之后,自己动手实现了相关的功能,或者您有更好的方法实现图像修补功能,请联系我们,AI 前线十分乐意为您提供一个交流的平台!
参考链接
https://github.com/bendangnuksung/Image-OutPainting
https://cs230.stanford.edu/projects_spring_2018/posters/8265861.pdf
人工智能时代,如何快速且有效地入门?需要哪些数学基础?怎样掌握机器学习主要方法?工学博士、副教授王天一在他的《人工智能基础课》里,会带你巩固人工智能基础,梳理人工智能知识框架,了解人工智能的最佳应用场景。
现在订阅,有以下福利:
原价 ¥68,新用户立减 ¥30
每邀请一位好友购买,你可获得 ¥12 现金返现,好友也将获得 ¥6 返现。多邀多得,上不封顶,立即提现。
点「阅读原文」,订阅专栏
如果你喜欢这篇文章,或希望看到更多类似优质报道,记得给我留言和点赞哦!