研讨职员们用 [-4

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

原题目:全景照片不怕歪!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 也对研究的远景充斥等待,他们信任类似这样的技术可以让用户用新的方式感想不同的地址和事情。