Google Camera 发展梳理

Google Camera,Google相机,是Google自个做的相机应用程序。一开始在2014年的4月,登陆了Play商店,但是随后到了2016年,渐渐淡出安卓通用领域,后续在自己的Nexus与Pixel设备上提供。

Google 相机图标


Ai Google Blog 提供了一个管中窥豹的机会,但不妨以此解读一下Google Camera的发展。
所以这篇文章就掰掰看目前的功能。

目录

  1. 功能
    1.1. HDR+
    1.2. 全景与真全景 Panorama & Photo Sphere
    1.3. 动态图 Motion
    1.4. 模拟虚化 Lens Blur & Portrait Mode
    1.5. 增强现实 AR Stickers
    1.6. 超分辨率变焦 Super Res Zoom
    1.7. 夜视 Night Sight
    1.8. 其他
  2. 意料之外的故事发展
    2.1. 移植修改版
    2.2. 其他厂商
  3. 参考与引用

功能



HDR+

HDR+是在初代就提供的功能。

高动态范围成像 High Dynamic Range Imaging 的相关技术有相当长的探索期,甚至可以追溯到19世纪摄影师 Gustave Le Gray;
而实际一些的,具有突破性的当代技术,应该论及在1997和1998年,于SIGGRAPH上,由 Paul Debevec 提交的论文。

HDR图像制作通常有两部分内容:
  1. 宽域信息采集
  2. 色调重新映射
1的实现,在现代又有两种解决:
    1.1.短间隔内拍摄不同曝光的影像
    1.2.同时间内,在帧内的不同行采用不同曝光
前者需要对齐,有时候不适合动体;而后者损失一半分辨率。

Google应用的还是前序方案,并且比传统的两张更为激进,为一次性拍摄多张,进行合成;这样可以在扩大动态范围的同时,获得较好的色彩表现。
而在对其图像中,需要的算力,Google Camera也应用了高通 Hexagon DSP 来提升HDR+的表现。

在天文摄影中,有一种被称作 幸运成像 Lucky imaging 的解决方案。
在地表的观测状态,以多次的短时曝光,然后选择其中受大气等影响少的图像进行移动与叠加,生成高质量图片(相比单张)的技术。
Google的多张合成,也受到了这种技术的影响。

不同代之间的HDR+,性能也是不同的,这种差异可能超乎想象。
在2017年4月,由工程师 Florian Kainz 的论文中提及的实验性方法,也潜移默化影响了之后的发展。

32帧2秒曝光,加上32帧的黑场平均叠加,最终的成效。由Nexus 6P拍摄的RAW合成

同地点,使用当时的Nexus 6P的HDR+手持拍摄,特别区块为在PS中直接提亮的效果


可以看到这种惊人效果。
也在其后成为了Pixel2,乃至Pixel3上的改进项目。

以上图片来自 Ai GoogleBlog,提供的文件为Webp,转制为jpg。
可访问原始文章找到全分辨率图像。
作者在之后还论述了图像对齐的思路。

在2018年初的公开数据集文档里,Google也将Pixel和Pixel2世代的手机,凭借单摄而在DxO的手机摄像头排名中前列成绩,归功于HDR+的应用。

数据集以CC-BY-SA发布。谷歌还专门建立了一个站点。
http://hdrplusdata.org/
数据集也在其上公布,任何人都可以下载。
以相同协议使用

全景与真全景 Panorama & Photo Sphere

Panorama 与 Photo Sphere 也都是初代具有的功能

Panorama 这个词直译就是全景 ,狭义的概念就是包括 360x180 范畴的图像,但随着更多的滥用,这个词逐渐失去原本狭义所指。

有人尝试以 「宽景」作为这类,比一般照片稍宽,但又不及360x180的图像的名称;
在日文中,以和制汉语的「全天球」专门指称 360x180 图像。差不多对应的概念,就是英文的「Photo Sphere」。
但不得不说,目前中文领域的滥用依旧存在。

通过镜头移动来达到“扫描式全景拍摄”的方案,最早可能见于索尼的BIONZ装配机型,初代的 WX/HX/TX 消费级数码相机。
而下一个里程碑,就是 iOS 6 ,开放了全景扫描模式。



另外一边,2013年,理光公司推出了消费级的双目全景相机 THETA ,本博客也多次提及,相当有标杆属性的系列。

RICOH THETA V。之乎拍摄


所以在2014年的更新,很有意义。
利用手机本身的加速度传感器,完成了对图像间的校正;
从使用角度来说,中心球的提示也非常利于一般用户……
虽然一般用户往往是试一次就再也不玩了

全景老司机kmnet也有写过专门的教程
此处为全景演示

相对不好2点:
  1. 全景照片往往整体跨越多光比区段,如果在拍摄前进行一个预测光,效果往往会好很多,也更利于展现算法优势 这也是大疆 DJI 的无人机的全景模式没做到的一点
  2. 画面中出现意料之外的动体,Google未提供补拍机会

使用多张图像拼合的全天球图片,一个常见的问题就是图像撕裂。
这在传统拍摄中,归结于光心位置不准造成的,通常需要更好的前期对齐工作进行补正;
在手机拍摄条件下,要求用户有全景摄影师的设备调校素养,并不现实。


Google Street View 街景团队也提出了一种新的,基于光流 Optical flow 的算法,来在后期对齐以消除/减少撕裂情况。

值得一提的是,2014年的球形照片在这年8月也登陆了iOS平台,于iTunes商店,以ID904418768提供,名称为 Photo Spheres ;之后颇为波折,成为了今天的 Google Street View 应用,以中文版访问,则是「Google街景」或「Google街景服務」,除了支持消费级全景相机,仍然保留了该功能。

iTunes香港商店截图,这款在中国大陆商店没有

值得一提的是, Google AI 这边,开始用全景图来作为素材,训练机器,从中截取并加强,试图混入专业级图片队伍。
2017年7月的文章

动态图 Motion

2015年,苹果随着iPhone6s,推出了 Live Photo 实况照片,这个功能在2016年,由iOS端的Google Photos支持(支持进行备份)。

简单说一下 Live Photo ,这是一种混合了图像和视频的拍摄包;内里有一个全分辨率的照片,以及在该照片前后一段时间(1.5秒)的全高清视频片段,带有声音信息。

虽然在之前,如黑莓、HTC还有诺基亚都有推出类似的产品,但是显然这个时代的麦克风是在苹果手里。
例如Google也不得不向苹果看齐,推出了对应的 Motion Photos

该功能也作为独立应用提供:

  1. Google上的页面
  2. Motion Stills - Play商店版本
  3. Motion Stills - iTunes应用商店

iOS版本可以对 Live Photos 进行编辑。
但是超出想象的一件事,这玩意在2016年10月先提供的iOS版,在2017年约7月才加入了Android版本

Motion也加入了AR支持,例如文字跟随;还有更好的细节展现。

因为是视频应用,也和之前在Youtube上的后制防抖有联系,比较好的展现,就是在Pixel 2上 —— Pixel 2 在DxO的摄像评分也值得关注。
以及,Google在2017年发了一款甜点级的硬件,Google Clips,相信也有交互内容。


模拟虚化 Lens Blur & Portrait Mode

Lens Blur功能在初代提供,Portrait Mode则是Pixel 2世代加入。

在2014年,也就是 Google相机 程序推出的时候,第一波带来的就是虚化功能,非常谦虚地称之为 Lens Blur 镜头模糊。

但是所谓模糊,也不是瞎糊的。
在较大幅面,如135规格相机和大光圈镜头的表现中,背景的模糊也是遵循由近及远的渐进变化。
粗糙的 抠图-统一模糊 是不自然的。

Google演示中的例子,中间灰度图像,就是深度图,可以以此与左边的原图进行混合计算,得到右侧的效果
如何获得深度信息呢?
从仿生的角度来说,就需要利用立体视觉,最常见的例子,就是同一方向的双眼成像,错开一定距离的两个眼球/相机,获得的图像有细微的差异,这种差异,也就是视差,提供了生物关于远近距离的额外信息。

Google的做法是,在开始拍摄后,让用户提手将手机缓慢向上移动一段距离,期间摄像头工作,获得不同的视觉信息,计算出深度图。

这种计算整体自然
图片来自Google+上的公开信息,由官方提供。

还记得当时试用有一个发现,如果背景里有识别到人脸,会自动不予虚化,但是结果就是在整体的虚化中露出一脸,颇为喜感。
也没有选项关闭这个识别功能

在2017年,随着同期的 iPhone ,以及 Android 阵营的许多旗舰机配置了双镜头,带来了更为简单的模拟虚化效果;Google同期的 Pixel 2 却仍然采用单镜头设计,这时也通过Camera应用提供了虚化支援。

由于 Pixel 2 使用的是 Dual Pixel 类的设计,所以在单逻辑像素下有两个子像素,它们在空间位置上仍然有细微差别;
这种差别在原理上接近视差,或者可以认为它们就是在镜头同光孔径范畴内的视差,约1mm,对于传统方式无法应用。

Google给出一个,只有这个时代才有,而且特别Google的一个方案……让机器来学习这种细微的差异,然后给出一个通用集。
Google使用了 TensorFlow Mobile 作为工具

略带好的一个消息是,这个功能是基于HDR+的;
对于Pixel 2 来说,HDR+功能会自动拍摄10张,所以有一个序列的、略带差异的照片可以进行分析使用;相比单张的情况,更为亲切。

效果展示


实际的识别过程更为复杂,包括了对于背景物体信息的识别等。
而且论文作者也提出,这种训练对于后景的虚化很好,但是前景虚化无法实现。
不过总体而言,以手机拍摄的照片来说,Google 的 单镜头 Portrait Mode 给出了一个前人几乎难以完成的方案。

在Camera应用之外,Google在2018年3月1日,还放出了一段关于视频中实时背景分离效果的展示

双摄的方案里,在苹果iOS平台,值得一提的是 focos 工具。
可以参见之前的文章

增强现实 AR Stickers

事实上,Google的AR尝试可能更多在其他程序上展现,例如 Google Goggles (2009)Google Lens (2017)

除了融入诸如Motion Stills等应用,也独立成组。

超分辨率变焦 Super Res Zoom

该功能在2018年的 Pixel 3 世代装配。

超分辨率 Superresolution  简写作SR 同样有久远的历史。我小学时读的启蒙《数字化生存》,就提及了相关内容。
基本原理在于,不同图像采集彼此 像素之间 的空间中的信息,从而提升信息表现。

相关的应用在21世纪的第二个十年,频繁出现在照相机上,成为一种提升分辨率的有效手段,也是计算摄影的一大展现。

具有超分辨率功能的消费级相机
机型 推出年份 应用像素提升
 Hasselblad H4D 200MS   2011   50MP -> 200MP 
 Olympus E-M5 MarkII   2014   16MP -> 64MP 
 Pentax K3 II   2014   24MP 
 SONY α7R III   2017   42MP -> 169MP 

  • 仅收录同厂牌第一台实现之机型
  • 宾得方案为输出等大,但色彩表现更好之图像

这样的功能,各厂商名称并不一致。在中国大陆之爱好者群体,有以「摇摇乐」称呼。

除了厂商提供的官方方案之外,也有爱好者摸索出用于通用机型的解决。 Ian Norman 在2015年撰文,叙述了使用手持拍摄,与 Adobe Photoshop 的后制技巧。

这种方案的一大消耗,便是图像对齐;相比起传统数码相机应用的弱鸡处理器,手机日新月异的旗舰显然更值得发挥。
同样是2015年,iOS平台出现了一款 Hydra 应用,可以提供原生4倍像素的合成。

所以在Google来说,这个方案出现似乎显得稍微晚了那么一些。
但是好像又很合适。

Android一些厂商甚至开始尝试三镜头,其中一枚划拨为中焦应用;
而iPhone的态度,就是以28+56mm的阵容来进行双镜头配置。

不知道为什么一直坚持单镜头设计的Google,似乎也在尝试推进软件方案的可行性;
这样,以方案弥补变焦的需求,就变得稍微急迫了起来。

其他

Google在拍摄之外的后制段,也有一些发展,这些内容没有在Camera程序中体现。

  • Storyboard 一个拼贴叙述故事发展的程序,很有漫画风格,仅Android
  • Selfissimo! 帮你更好的自拍……自拍是用数量堆出来的
  • Scrubbies 当视频的DJ,仅iOS
    以及部分 Motion Stills 程序内容。

有兴趣的话,可以看看 2017年末的
Introducing Appsperiments: Exploring the Potentials of Mobile Photography

小众软件也有介绍

意料之外的故事发展



移植修改版

Google Camera在2014年4月推出,赶上推出半年的Nexus 5平台。
之后的Google自有手机是这么个情况:

Google自有手机
机型 推出年份 中央处理器
 Nexus 5   2013-10   Snapdragon 800 
 Nexus 6   2014-10   Snapdragon 805 
 Nexus 5X   2015-09   Snapdragon 808 
 Nexus 6P   2015-09   Snapdragon 810 
 Pixel & Pixel XL   2016-10   Snapdragon 821 
 Pixel 2 & Pixel 2 XL   2017-10   Snapdragon 835 
 Pixel 3 & Pixel 3 XL   2018-10   Snapdragon 845 

高通骁龙系列的CPU,特别是8系,也是目前市售手机芯片的标杆。
黄老板的太热了,车载平台还行;联发科就好像差点意思;同样是ARM旗舰代表的苹果A系,并不拿出来卖。
Google基于8系适配的Camera APP,也被非官方修改之后,移植使用(同样骁龙8系的Android手机),并且可以实现绝大多数功能。

初代的Pixel独占的Google Camera,被 开发者BSG 修改,一直到 820/821/835 机型上。该修改版本在 xda-developers 上发布,后经 the verge报道

Google在Pixel 2上配置了 Portrait Mode ,作为对苹果,以及其他双摄机型虚化的一种回应。这种机器学习的做法很新颖,但是用户更关心自己的单摄能否用到。
2018年1月,相关移植也在 xda 上发布,过了几天,扩大了支持机型范围
也就是说,市售的机型,只要应用的是骁龙较新的8系列CPU(主要是相关ISP),就都可以用上 Google Camera ,其中收益最大的,主要是HDR+方面带来的画面表现提升。

其中比较关键的,是在骁龙820开始,装配的 Qualcomm Hexagon 680 DSP 。2015年登场的介绍文可能并不惊艳,实际在HDR+应用中才显现威力。
英文维基百科介绍


其他厂商

在手机营销上,中国大陆的一些厂牌,营销噱头做的比技术积淀多,往往是花头吹上天,拿出来的东西却不是那么回事。
对比起自研Android的Google,整个画风就不太一样。

事件时间
 Pixel 2的Google Camera移植修改版
于xda开发者论坛放出 
 2018-01 
 Google正式开放HDR+数据集   2018-02 
 Vivo 推出 Super HDR   2018-03 
 Oppo 推出 3-HDR   2018-04 


当然,我并不是说这其中有什么联系。
也许真的只是很巧呢?
很有意思。

而苹果在2018年9月份发布了新的iPhone:
  • iPhone XS
  • iPhone XS Max
  • iPhone XR

很有意思的是,本次相机的展示行销,很像Google方案的复现。

比如类似HDR+的序列拍摄,推进到了12张。

苹果声称,每张照片完成了 a trillion operations 一万亿次操作。Apple官网展示

XR上的单镜头虚化,也是『高度相像』Google Pixel 2 的机器学习实现。
也许确实是有存在合作。
谁知道呢?

参考与引用



之乎 于2018-10-30 
简书版本

评论

热门博文