Google Camera,Google相机,是Google自个做的相机应用程序。一开始在2014年的4月,登陆了Play商店,但是随后到了2016年,渐渐淡出安卓通用领域,后续在自己的Nexus与Pixel设备上提供。
Google 相机图标Ai Google Blog 提供了一个管中窥豹的机会,但不妨以此解读一下Google Camera的发展。
所以这篇文章就掰掰看目前的功能。
目录
- 功能
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.1. 移植修改版
2.2. 其他厂商 - 参考与引用
功能
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 的论文中提及的实验性方法,也潜移默化影响了之后的发展。
可以看到这种惊人效果。
也在其后成为了Pixel2,乃至Pixel3上的改进项目。
也许 Night Sight 功能,与 Florian Kainz 方法有关
以上图片来自 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 ,本博客也多次提及,相当有标杆属性的系列。
所以在2014年的更新,很有意义。
利用手机本身的加速度传感器,完成了对图像间的校正;
从使用角度来说,中心球的提示也非常利于一般用户……
虽然一般用户往往是试一次就再也不玩了
相对不好2点:
- 全景照片往往整体跨越多光比区段,如果在拍摄前进行一个预测光,效果往往会好很多,也更利于展现算法优势 大疆无人机的全景模式没做到的一点
- 画面中出现意料之外的动体,Google未提供补拍机会
使用多张图像拼合的全天球图片,一个常见的问题就是图像撕裂。
这在传统拍摄中,归结于光心位置不准造成的,通常需要更好的前期对齐工作进行补正;
在手机拍摄条件下,要求用户有全景摄影师的设备调校素养,并不现实。
Google Street View 街景团队也提出了一种新的,基于光流 Optical flow 的算法,来在后期对齐以消除/减少撕裂情况。
值得一提的是,2014年的球形照片在这年8月也登陆了iOS平台,于iTunes商店,以ID904418768提供,名称为 Photo Spheres ;之后颇为波折,成为了今天的 Google Street View 应用,以中文版访问,则是「Google街景」或「Google街景服務」,除了支持消费级全景相机,仍然保留了该功能。
iTunes香港商店截图,这款在中国大陆商店没有值得一提的是, Google AI 这边,开始用全景图来作为素材,训练机器,从中截取并加强,试图混入专业级图片队伍。
2017年7月的文章
https://ai.googleblog.com/2017/07/using-deep-learning-to-create.html
动态图 Motion
2015年,苹果随着iPhone6s,推出了 Live Photo 实况照片,这个功能在2016年,由iOS端的Google Photos支持(支持进行备份)。
简单说一下 Live Photo ,这是一种混合了图像和视频的拍摄包;内里有一个全分辨率的照片,以及在该照片前后一段时间(1.5秒)的全高清视频片段,带有声音信息。
虽然在之前,如黑莓、HTC还有诺基亚都有推出类似的产品,但是显然这个时代的麦克风是在苹果手里。
例如Google也不得不向苹果看齐,推出了对应的 Motion Photos
该功能也作为独立应用提供:
- Google上的页面
- Motion Stills - Play商店版本
- 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规格相机和大光圈镜头的表现中,背景的模糊也是遵循由近及远的渐进变化。
粗糙的 抠图-统一模糊 是不自然的。
一个好的方案,是利用深度图 Depth Map 来指导远近的不同模糊程度。
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,似乎也在尝试推进软件方案的可行性;
这样,以方案弥补变焦的需求,就变得稍微急迫了起来。
夜视 Night Sight
夜视 Night Sight 是在 Pixel 3 发布时公告的功能,但实装是约2018年11月14~15日(时差关系)。
本质上还是多帧叠加,并且类似于HDR+的欠曝帧获得正常亮度。但实际上Google还解决了很多夜拍的问题,比如夜晚各类野鸡光线的色准问题,以及在抖动与曝光时间中的取舍。
序列欠曝帧合成目前Google方面也指出,白天当然也可以用,并且会有所提升,所以不晓得该功能,是否会代入到新的HDR+本体。
其他
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自有手机是这么个情况:
机型 | 推出年份 | 中央处理器 |
---|---|---|
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,整个画风就不太一样。
事件 | 时间 |
---|---|
xda开发者论坛放出Pixel 2的Google Camera移植修改版 | 2018-01 |
Google正式开放HDR+数据集 | 2018-02 |
Vivo 推出 Super HDR | 2018-03 |
Oppo 推出 3-HDR | 2018-04 |
- OPPO为3月宣传,4月实装。以实机时间为准
当然,我并不是说这其中有什么联系。
也许真的只是很巧呢?
很有意思。
而苹果在2018年9月份发布了新的iPhone:
- iPhone XS
- iPhone XS Max
- iPhone XR
很有意思的是,本次相机的展示行销,很像Google方案的复现。
比如类似HDR+的序列拍摄,推进到了12张。
苹果声称,每张照片完成了 a trillion operations 一万亿次操作。Apple官网展示
XR上的单镜头虚化,也是『高度相像』Google Pixel 2 的机器学习实现。
也许确实是有存在合作。
谁知道呢?
参考与引用
-
Google 相机 - Play商店页面
-
HDR
HDR+: Low Light and High Dynamic Range photography in the Google Camera App
https://ai.googleblog.com/2014/10/hdr-low-light-and-high-dynamic-range.html
Introducing the HDR+ Burst Photography Dataset
http://ai.googleblog.com/2018/02/introducing-hdr-burst-photography.html
Burst photography for high dynamic range and low-light imaging
on mobile cameras
https://static.googleusercontent.com/media/hdrplusdata.org/en//hdrplus.pdf
HDR+ Burst Photography Dataset
http://hdrplusdata.org/
-
全景 Panorama
-
Motion
Motion Stills – Create beautiful GIFs from Live Photos
https://ai.googleblog.com/2016/06/motion-stills-create-beautiful-gifs.html
Motion Stills — Now on Android
https://ai.googleblog.com/2017/07/motion-stills-now-on-android.html
Get moving with the new Motion Stills
https://ai.googleblog.com/2016/12/get-moving-with-new-motion-stills.html
Behind the Motion Photos Technology in Pixel 2
https://ai.googleblog.com/2018/03/behind-motion-photos-technology-in.html -
模拟虚化
Lens Blur in the new Google Camera app
https://ai.googleblog.com/2014/04/lens-blur-in-new-google-camera-app.html
Portrait mode on the Pixel 2 and Pixel 2 XL smartphones
https://ai.googleblog.com/2017/10/portrait-mode-on-pixel-2-and-pixel-2-xl.html -
AR
Neural Network-Generated Illustrations in Allo
https://ai.googleblog.com/2017/05/neural-network-generated-illustrations.html
The Instant Motion Tracking Behind Motion Stills AR
https://ai.googleblog.com/2018/02/the-instant-motion-tracking-behind.html -
Super Res Zoom
See Better and Further with Super Res Zoom on the Pixel 3
https://ai.googleblog.com/2018/10/see-better-and-further-with-super-res.html
A Practical Guide to Creating Superresolution Photos with Photoshop
https://petapixel.com/2015/02/21/a-practical-guide-to-creating-superresolution-photos-with-photoshop/ -
Google Camera 移植
Google Camera with HDR+ Ported to Snapdragon 820/821 and 835 Devices [2017-08-11]
https://www.xda-developers.com/google-camera-hdr-ported/
Google Camera HDR+ Port Updated with RAW Support, HDR Customization, and Major Bug Fixes [2017-09-28]
https://www.xda-developers.com/google-camera-hdr-customization-raw-support/
Pixel 2’s Portrait Mode Ported to some Non-Google Devices running Android Oreo [2018-01-02]
https://www.xda-developers.com/pixel-2-portrait-mode-port-non-google-android-oreo/
Google Camera Mod Updated with Portrait Mode/Lens Blur Toggle and 4K Video Support for Some Devices [2018-01-07]
https://www.xda-developers.com/google-camera-mod-portrait-mode-lens-blur-4k-video/
之乎 于2018-10-30
网友评论