学界 | 全景照片不怕歪!Facebook 用神经网络矫正扭曲的地平线

AI科技评论按:最近微博上的全景照片很火呀,相比各位都已经在自己的iPhone或者iPad上品鉴了多家IT公司的办公室、游玩了多个旅游胜地、享受了被小猫小狗环绕的感觉了。太平洋那头的Facebook也没闲着,从去年上线类似的功能以后,全世界 Facebook 用户们已经上传了七千万张全景照片了。

Facebook 支持多种全景照片和全景视频的拍摄方式,可以让人们把自己的全方位感受分享给好朋友们。如果用户有一个专门的全景摄像机,比如理光Theta S或者Giroptic iO,还可以直接把相机里的照片发布到Facebook上去。如今,多数高端安卓和iOS智能手机的内置相机也都有了全景模式,可以用来拍全景照片。

Facebook 在过去的一年中开发并上线了多种技术给用户提供更好的全景照片创建和分享体验,包括全景拍照、全景视频防抖,以及重新设计如何存储高分辨率媒体。最近,Facebook 还用到了深度神经网络来自动矫正全景照片的方向,可以给手机拍摄的照片直接带来更真实的包围感。AI科技评论对这篇介绍文章做了编译如下。

创建高分辨率全景照片

最近 Facebook 刚刚在 Facebook app中上线了一个新功能,用户可以在一个新的、能够无限滑动的界面里拍摄完整的360度全景照片。

由于全景照片会比一般的照片大很多,Facebook 首先需要解决的难题就是保证信息流里出现了一张全景照片的时候也能让用户流畅地在界面中拖拉滑动;同时,当用户停止滑动,移动手机或者转动手机看这张全景照片的时候,也能立即把全分辨率的照片加载出来。在屏幕立即上呈现全分辨率的照片或占用很多内存,所以当用户继续滑动页面往下看的时候,又会给加载新的内容带来延迟。

面对着这些挑战,Facebook 的工程师们重新设计了 Facebook 的底层照片处理机制,便于存储信息流中“拼贴”的照片以及呈现照片内容。

每张全景照片都会被转换为一张立方映射图,Facebook 之前也有类似的方法用在全景视频中。然后这些立方映射图会以多种不同的分辨率存储下来,而且每一个分辨率的版本都会分割为许多张小的 512x512 分辨率的图像。

当用户在信息流里刷到一张全景照片的时候,程序就会计算当前窗口渲染时需要哪种分辨率、以及用哪些小图像来拼贴成大图。如果当前需要的分辨率不可用,程序就会暂时渲染一个低分辨率的样子,同时等待网络把高分辨率的内容传过来。当用户进入全景照片移动手机和在屏幕上缩放观看的时候,程序会不停地做这样的全套计算。这样,原来的用户体验上不会有什么可感知的变化,却实现了千万甚至上亿像素的高分辨率全景图像显示。

用于全景照片的深度神经网络

用户公开上传到 Facebook 的上千万张全景照片形成了一个强有力的新数据集,Facebook 的研发人员们也就可以利用这个数据集改善自家的产品。这些数据可以和机器学习的方法联合起来,给用户带来更好的使用体验。

让人觉得全景照片不够真实的最常见的原因之一就是拍照的时候相机没有端平,然后最终的照片中也没有修复过来这些倾斜。比如下面就是照片倾斜的例子,拍照的时候相机拿歪了。呈现在照片里的地平线是倾斜的,完全破坏了照片的真实感。

对于传统的照片,用照片编辑软件修正这种倾斜是一件简单直接的事情,但是能够用于全景照片的这类工具并不多,而且修正球面上的倾斜旋转相当不直观。在拍摄全景照片的过程中,相机的旋转可以用 x 轴旋转(tilt)和 z 轴旋转(roll)两个参数来描述,如下方示意图所示。第三个方向的旋转,y 轴旋转(yaw),影响的是全景照片的起始点,但是这个方向上的旋转是不会造成照片内容的倾斜的。Facebook 的研发人员们就想开发出一种能够自动修正这些相机的旋转带来的照片倾斜旋转问题的方法。

为了解决这个问题,Facebook 的研究人员们使用了著名的深度神经网络架构 AlexNet,并对它做了一些相应的修改。用于网络训练的数据就是像前文中那样的照片,它包含了360x180度的完整球面环境,然后用等距离长方圆柱(equirectangular)投影转换为了一张矩形的照片。Facebook 的研究人员们首先假设这个问题的几何本质不需要颜色信息的参与,这样训练数据就可以简化为256x128分辨率的黑白照片。AlexNet 本来的设计是为了解决超过1000个类别的图像分类问题的,所以它最终的全连接层就有4096个输入和1000个输出。在 Facebook 的这个问题中,他们要解决的是一个回归问题,所以他们修改后的网络中,全连接层变成了4096个输入和 x 轴旋转、z 轴旋转两个值的连续值输出。

Facebook 的研究人员们用带有 x 轴和 z 轴旋转标签的图像训练了这个网络模型。训练数据集中包含了五十万张投影转换过的矩形照片,这些照片是研究人员们挑出来,总体没有旋转、倾斜的;换句话说,这些照片的 x 轴和 z 轴旋转全部都是0。在训练过程中,研究人员们人工地用随机生成的 x 轴和 z 轴旋转值对训练样本做旋转。如下的这个损失函数就会测量出这些随机生成的标签和网络模型预测结果之间的差值,并把减小这个差值作为网络的训练目标。

为了测试训练效果,研究人员们用一组给定的 x 轴和 z 轴旋转值对测试集中的图像做合成旋转。然后他们用训练过的网络模型分析这些旋转过的图像并记录模型给出的结果。这些已知的旋转值和模型给出的结果之间的差别可以归结为两个原因,1,模型没能完全解决这个旋转问题;2,所用的数据集还有一些问题,影响了模型的表现。这第二个原因也是真实存在的,Facebook 的研究人员们假定了选用的数据集总体是平直的,但是单独看其中的某个样本都还是有一些固有的旋转的。

所以,研究人员们用 [-4,-2,0,2,4] 度几种 x 轴和 z 轴旋转值中的所有组合在每一张照片都做了一遍,这就是用模型对每一张照片都过25遍。对于每一次所用的 x 轴和 z 轴旋转值,他们都会计算对应的旋转量。表示这种旋转量的最好的方法就是用3D图像中的一个常用工具:四元数(quaternion)。然后,模型会根据图像计算出另一个四元数旋转量。如果模型和数据中都不存在刚才提到的两个问题,那么这两个四元数就应当是相等的。实际中其实并不相等,所以在每一次计算中,他们都会把两个四元数相除,计算两者间的差值。最后,用以下公式算出每张图像在所有组合的下的差值的平均值。

以上公式中的计算都使用了四元数,因为它们用于计算差值和3D旋转的均值时非常好用。但是,这样就需要给每张图片计算新的 x 轴和 z 轴旋转值,因为数据集中的图像一开始的时候并不是完全平直的。这种平均差值就是对每张训练图像的真实方向的很好的预测。那么,研究人员们接下来简单地把四元数格式的平均差值转换为 x、y、z 轴旋转就可以更新图像的标签了。

在图像标签更新以后,就可以对模型做新一轮训练。模型一共经历了四轮训练和微调。在微调过程的最后,模型对全景照片算出的旋转值误差达到了0.1度的水平。每个阶段的训练都是从一个未经初始化的模型开始的,可以从下图明显地看到每个阶段中模型都收敛到了更小的训练损失。在另一项对抗测试中,模型也表现出了类似的收敛和误差值水平。模型的收敛表现足以让研究人员们得出结论:这样的“训练 - 微调”循环确实让模型学到了理想的旋转方程。

如下是一些经过旋转的全景照片结果,而且都是训练集之外的照片。从几组图片中可以看到,模型对于不同的内容类别都有出色的表现,不论有建筑这样的人造景观还是完全的自然风光。

结论

Facebook 的照片、视频、直播产品中都已经可以使用全景媒体。在这个过程中,具有沉浸感的内容也会带来一些特有的问题。这篇文章仅仅介绍了 Facebook 的研究人员们解决的问题里的几个。随着用户往 Facebook 上传这样的具有沉浸感的内容的速度越来越快,Facebook 也对研究的前景充满期待,他们相信类似这样的技术可以让用户用新的方式感受不同的地点和事件。

via Facebook Blog,AI科技评论编译

地址:https://code.facebook.com/posts/129055711052260/optimizing-360-photos-at-scale/

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-09-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

深度学习的核心:掌握训练数据的方法

Hello World! 今天我们将讨论深度学习中最核心的问题之一:训练数据。深度学习已经在现实世界得到了广泛运用,例如:无人驾驶汽车,收据识别,道路缺陷自动检...

1908
来自专栏木可大大

大数据是什么(续)

从亚马逊到Facebook,再到谷歌和微软,全球最顶尖、最有影响力的技术公司都将目光转向了人工智能(AI)。本文将介绍AI、机器学习以及深度学习,其中着重介绍深...

1022
来自专栏AI科技评论

洞见 | 香港科技大学杨强教授专注研究的这项新兴技术,说不定能造就真正的“智能”

迁移学习,简单的说,就是能让现有的模型算法稍加调整即可应用于一个新的领域和功能的一项技术。这个概念目前在机器学习中其实比较少见,但其实它的潜力可以相当巨大。杨强...

2615
来自专栏机器之心

深度 | 万物向量化:用协作学习的方法生成更广泛的实体向量

选自blog.insightdatascience 作者:Javed Qadrud-Din 机器之心编译 参与:Edison Ke、刘晓坤 来自 Insight...

2737
来自专栏刘建银的专栏

推荐算法之协同过滤

推荐算法在个性化领域有着广泛的应用,粗略统计,所涉及到的学科包括人工智能、机器学习、认知科学、信息抽取、数据挖掘、预测理论、近似理论,甚至是管理科学、市场营销和...

1.2K2
来自专栏腾讯云人工智能

深度学习在语音识别上的应用

我今天演讲主要分四个部分,第一个是分享语音识别概述,然后是深度神经网络的基础;接下来就是深度学习在语音识别声学模型上面的应用,最后要分享的是语音识别难点以及未来...

3.4K4
来自专栏AI科技评论

干货 | DeepMind 提出 GQN,神经网络也有空间想象力

AI 科技评论按:人类理解一个视觉场景的过程远比看上去复杂,我们的大脑能够根据已有的先验知识进行推理,推理的结果所能涵盖的内容也要远超出视网膜接收到的光线模式的...

953
来自专栏AI科技评论

干货 | 极限元算法专家:深度学习在语音生成问题上的典型应用 | 分享总结

AI 科技评论按:深度学习在2006年崭露头角后,近几年取得了快速发展,在学术界和工业界均呈现出指数级增长的趋势;伴随着这项技术的不断成熟,深度学习在智能语音领...

3759
来自专栏新智元

【干货】吴恩达博士论文:用增强学习做无人机

【新智元导读】吴恩达2003年申请加州大学伯克利分校计算机科学博士的毕业论文。该论文在肯定了增强学习取得的进展的基础上,就“回报函数塑造”(shaping re...

4328
来自专栏新智元

剑桥构建视觉“语义大脑”:兼顾视觉信息和语义表示

【新智元导读】一般认为,大脑对可视目标的识别过程分为两部分:视觉属性和语义属性,即目标“像什么“和”是什么“。过去人们对这两部分一般是分开研究的,现在,剑桥大学...

572

扫码关注云+社区