谷歌发布PhotoScan:拍摄无炫光的图片

前言

昨天(4月19日),谷歌发布了一个适用于IOSAndroid应用程序PhotoScan(中文名: 照片扫描仪),它可让您仅使用智能手机将照片打印数字化。

PhotoScan的主要功能之一是能够从打印件中去除眩光,这些打印件通常具有光泽和反光性,它们的塑料相册页面或玻璃覆盖的相框也会造成反光。 为了创解决这个问题,我们开发了独特的计算机视觉和图像处理技术,可以仔细对齐和组合几个稍微不同的打印图片,以将眩光与图像分开。

Google 相册全新推出照片扫描仪应用,只要使用手机摄像头就能扫描并保存最心爱的冲印照片。

1.照片完美、无眩光

只能通过拍照修图已成为过去时。只要进行扫描,就能制作效果更佳的数字照片,无论照片在哪里都不成问题。

  • 通过简单的分步流程进行扫描,轻松获取无眩光的扫描内容
  • 根据边缘检测进行自动剪裁
  • 透视校正功能可矫正扫描照片中歪斜扭曲的视角
  • 无论扫描角度如何,智能旋转功能都摆正照片

2.数秒内完成扫描

轻松快捷地截取您最心爱的照片,节省修改照片的时间,好好回味一下青春年少时的非主流造型。

Google 相册能让照片安全无虞且便于搜索

通过免费的 Google 相册应用备份您的扫描照片,不仅安全可靠、便于搜索,而且井井有条。借助影片、滤镜和高级修片控件,可以让扫描的照片愈发生动有趣。只需发送一个链接,就能与任何人分享照片。

左:物理打印的常规图片。 右:PhotoScan的无眩光输出

正文

当拍摄照片的单张照片时,确定图片的哪些区域是实际照片,哪些区域是眩光,这是程序面临的主要挑战。 此外,眩光可能经常使图像中的区域饱和,使得那些区域无法看到或恢复其下面的照片的部分。 但如果在移动相机的同时拍摄照片的照片,眩光的位置往往会改变,覆盖照片的不同区域。 大多数情况下,照片的每个像素在至少一张照片中可能不会被眩光所覆盖。 我们可以组合多张照片拍摄的不同角度的照片去除眩光。 面临的挑战是,图像需要非常准确地对齐,以便正确地组合它们,并且该处理需要在手机上非常快速地运行以提供即时的体验。

左:捕获的输入图像(共5个) 右:如果我们稳定照片上的图像,我们可以看到只有眩光移动,覆盖照片的不同部分。 注意:没有一个图像是无眩光的。

我们的技术灵感来自于我们早前在SIGGRAPH 2015上发表的作品,我们称之为“obstruction-free photography(无障碍摄影)”。 它使用的原理是从视野中去除障碍物。 然而,我们最初提出的算法是基于生成模型,其中主场景和障碍层的运动和外观被估计。 虽然该型号相当强大,可以清除各种障碍物,但是在智能手机上运行的计算的费用太贵了。 因此,我们建立了一种更简单的模型,将眩光视为异常值,只尝试注册底层的无眩光照片。 虽然这种模式更简单,但是由于注册需要高度准确和稳健,所以这个任务仍然是非常具有挑战性的。

工作原理

从用户移动相机拍摄的一系列照片开始。 第一张图片 - “参考框架” - 定义了所需的输出视点。 然后,用户被指示需要另外四个帧。 在每个附加帧中,我们检测稀疏特征点)(我们计算哈里斯角上的ORB特征),并使用它们来建立将每个帧映射到参考帧的同位处。

左:检测到的特征在参考帧和每个其他帧(左)之间匹配 根据估计的同形异义(右)匹配。

虽然这种技术可能听起来很直接,但是有一种捕捉----同态性只能对齐平面图像。 但是打印的照片通常不是完全平坦的(如上所示的例子)。 因此,我们使用光流 - 运动的基本计算机视觉表示,其在两个图像之间建立像素点映射,以校正非平面。 我们从单体对齐的帧开始,并计算“流场”以扭曲图像并进一步优化注册。 在下面的示例中,请注意左边照片的角落在注册框架之后,只能使用同型字,缓慢地“移动”。 右侧显示如何使用光流优化注册后照片可以更好地对齐。

原图(左)和使用光流的细化之后(右)的比较

注册的差异是很微小的,但对最终结果有很大的影响。 请注意,结果中多少小的错位显示为重复的图像结构,以及如何通过额外的流程细化减轻这些工件。

原图(左)和使用光学流动细化去除眩光结果之间的比较。 在结果中,仅使用同位素(左),注意人的眼睛,鼻子和牙齿周围的物品,以及织物上重复的茎和花瓣。

这也是一个难点,就是使光流成为一种自然而然的算法,在手机上工作非常快。 代替在传统上计算每个像素处的光流(计算的流向量的数量等于输入像素的数量),我们通过较少数量的控制点表示流场,并且在 作为控制点运动的函数的图像。 具体来说,我们将每个图像划分成平铺的,不重叠的单元格,以形成网格,并将单元格中的像素的流程表示为包含单元格的四个角的流的双线性组合

网格光流网格设置。 p表示为封装它的单元格的四个角点的双线性插值

左:在其中一个框架上计算的流场的图示。 右:流色彩编码:分别由色相和饱和度表示的取向和幅度。

这使要解决的问题少了很多,因为现在计算的流向量的数量等于网格点的数量,其通常远小于像素数。 这个过程在本质上类似于Szeliski和Coughlan(1997)中描述的基于花键的图像配准。 通过这种算法,我们可以在Pixel手机上将光流计算时间减少约40倍!

叠加在(清洁)参考系上的单色注册的帧和流动精化的扭曲帧(使用上述流场)之间的翻转示出了所计算的流场如何将图像部分“捕捉”到参考帧中的相应部分优化注册。

最后,为了组合无眩光输出,对于注册帧中的任何给定位置,我们检查像素值,并使用求最小值算法来获得最暗的观察值。 更具体地说,我们计算最小亮度超过注册帧的期望值,将较少的权重分配给靠近(翘曲)图像边界的像素。 我们使用这种方法,而不是直接在两帧之间计算最小值,因为每帧的相应像素可能具有略微不同的亮度。 因此,由于突出图像之间的边界处的突然强度变化,每像素最小值可能产生可见的接缝。

常规最小值(左)与软最小值(右)相比。

该算法可以支持各种扫描条件 - 无光泽和光泽打印,照片内部或外部相册,杂志封面。

          输入                       注册                     输出(无眩光)

为了获得最终的结果,谷歌照片团队开发了一种自动检测和裁剪照片区域的方法,并将其整理为正面。 由于透视失真,扫描的矩形照片通常在图像上看起来是四边形。 该方法分析图像信号,如颜色和边缘,以计算出扫描图像上原始照片的准确边界,然后应用几何变换将四边形区域修正为原始的矩形,产生高质量,无眩光数码版的照片。

总的来说,所有这些操作都在你的手机上几乎瞬间完成! 要给PhotoScan一个尝试,请在IOSAndroid上下载该应用程序。

原文链接:

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

5秒钟内将手绘网站线框图转换为可用的 HTML网站

你可以在 GitHub 上找到这个项目的代码:https://github.com/ashnkumar/sketch-code

1200
来自专栏机器之心

资源 | 深度学习自动前端开发:从草图到HTML只需5秒(附代码)

选自InsightDataScience 作者:Ashwin Kumar 机器之心编译 参与:乾树、李泽南 在人们的不断探索下,「使用人工智能自动生成网页」的方...

5299
来自专栏ATYUN订阅号

face-api.js中加入MTCNN:进一步支持使用JS实时进行人脸跟踪和识别

如果你现在正在阅读这篇文章,那么你可能已经阅读了我的介绍文章(JS使用者福音:在浏览器中运行人脸识别)或者之前使用过face-api.js。如果你还没有听说过f...

2813
来自专栏量子位

机器学习玩转Flappy Bird全书:六大“流派”从原理到代码

被Flappy Bird虐过么?反击的号角吹响了 作为一个曾经风靡一时的游戏,《Flappy Bird》曾经虐过很多的人类玩家。 而过去一段时间以来,好多人类借...

4869
来自专栏CreateAMind

Keras和DDPG玩赛车游戏(自动驾驶)

这里,s是状态,a是行为/动作,θ是策略网络的模型参数,π是常见的表示策略的符号。我们可以设想策略是我们行为的代理人,即一个从状态到动作的映射函数。

4662
来自专栏大数据文摘

手把手 | 初学者如何用Chainer为漫画上色 深度学习帮你逆袭漫画家(附代码)

2253
来自专栏大数据挖掘DT机器学习

详细步骤:用R语言做文本挖掘

目录 Part1 安装依赖包 Part2 分词处理 Part3文本聚类 Part4 文本分类 Part5情感分析 Part1 安装依赖包 R语言中中文分析的...

82712
来自专栏人工智能头条

用机器学习识别随机生成的C&C域名

4203
来自专栏一心无二用,本人只专注于基础图像算法的实现与优化。

简单探讨可牛影像软件中具有肤质保留功能的磨皮算法及其实现细节。

     在几年前写的一篇关于BEEP的文章时,我曾经说过Beep的去噪作用可以用于磨皮,并且给出了结论BEEP比可牛和美图等的效果要更为好,现在看来,那个结论...

2796
来自专栏量子位

OpenAI发布新强化学习算法:近端策略优化

允中 编译自 blog.openai.com 量子位 出品 | 公众号 QbitAI OpenAI今天发布一类新的强化学习算法:近端策略优化(Proximal ...

3395

扫码关注云+社区

领取腾讯云代金券