面对手机厂家计算摄影的“算法黑箱”,用户们难免会有各种各样的疑问。像是“手机厂商会否真的OTA弱化老旗舰的相机?联发科平台真的更难调?手机的树脂镜头真能喂饱1亿像素CMOS吗?AI是否经常要脑补细节?”等等等等,都是典型问题了。
而我们这次将以问答的形式,欢迎收看《机佬有约》 ,请来真正的计算摄影工程师Hawk Wang,为我们解答这些攒出电子包浆的陈年疑问。
Hawk Wang在TOP3的摄影算法供应商任职,他日常会在硬核公众号“计算摄影学”分享计算摄影算法相关的文章,欢迎关注。
PS:著名的影像算法供应商有虹软(100亿市值,21年营收5.7亿,2.7亿研发,444人研发)、商汤(300亿市值,2000人)、旷视科技(市值200亿,总数1400人)、Morpho(日本,研发人员未知,7.6亿市值)和Core Photonics(以色列,市值2.5亿,50人研发)
爱搞机靓仔:高通、联发科、三星几家产品的适配难度如何?联发科平台真的更加难调吗?发哥旗舰的 ISP 远强于高通,但普遍反应依然是发哥拍照不行(是平台配送的基础算法太弱?接口问题?还是算法供应商和联发科的磨合还不够?)
Hawk Wang:其实各个平台的产品适配难度没有太大的区别,适配难度大、难调是因为相关平台的使用经验缺乏、相关人才较少导致。另外不排除算力的影响,在 pipeline (处理管线)中如果有画质类的软件算法,那么高算力的平台自然可以用更强的算法来得到更好的效果(比如更多帧的融合,更准确的帧间对齐,等等)。
爱搞机靓仔:同一个平台,一般有延续型的成像风格(如各家手机厂的天玑 9000 机型,都出现 HDR 暗部用力过猛、白平衡稳不住等问题),大概成因是什么?是因为基础算法来自同一家供应商?还是发哥平台的基础算法或参数影响?
Hawk Wang:一般来说不同算法厂商提供的算法都有其特有的成像风格或者问题,如果是强依赖于平台的基础算法,也会和平台基础算法或参数有关系。
爱搞机靓仔:供应商提供的算法,手机厂能自行微调参数吗?会有魔改版吗?
Hawk Wang:能自行微调,但是不一定愿意。针对特定的需求和项目,存在定制版本的可能性,谈不上魔改。
爱搞机靓仔:开卖后仍会不停有相机 OTA,是算法厂商依然在维持项目,还是说厂商用的是自研算法,所以能不停更新?
Hawk Wang:持续 OTA,主要是市场反馈有需求导致,对算法厂商和厂商自研都一样,满足用户需求才是关键。
爱搞机靓仔:平时 OTA 里说的改善拍照效果,其实是做了什么提升/改善?
Hawk Wang:提升点不一定,有的是市场有反馈需要调整,也有可能就是老问题没解决完成。
爱搞机靓仔:新旗舰发布后,老旗舰被 OTA 弱化,是真有其事?还是后期调参出 bug 了?
Hawk Wang:一般情况下,不太可能在新旗舰发布后用 OTA 弱化老旗舰,有相当一部分是消费者的心理作用。大部分情况下新旗舰发布,厂家开发人员根本没精力去管老项目了。
爱搞机靓仔:安卓录像一直追不上苹果的主要原因是什么?苹果的 ISP/NPU 强太多?还是苹果有天顶星算法?
Hawk Wang:原因是多方面的,一方面是,是苹果整个影像系统全链路的整合能力和软硬一体的把控,而安卓阵营,有些纸面数据其实不差,但是整合能力要弱一些。
另外一方面是安卓阵营前几年发力点更多的是在拍照上,视频的投入比苹果要晚一点,拍照上有不少表现阶段性领先了苹果。
爱搞机靓仔:有时弱光拍木纹、布纹等不规则纹理,会发现每一张纹理都不太一样,是因为动用AI贴图填充/反推缺失细节?还是只是噪点太多,导致常见的算法处理出不同的纹理?
Hawk Wang:存在多种情况:
1、噪声较多,对纹理涂抹导致结果不完全一致
2、算法结果很多时候和输入信息高度相关,输入的轻微变换也会导致结果不同
3、确实也存在 AI 反推细节的能力,但是在 AI 反推生成纹理上各个厂家都还比较克制,毕竟太多的失真容易引发消费者反感
爱搞机靓仔:各家发布会说的画面语意识别会对不同部分抠图针对优化,一般支持多少个目标物识别和处理?
Hawk Wang:场景识别类别比较多,一般都 10-30 个类别,但是基于语义进行抠图优化,一般就比较少了,虽然算法能做的类别会比较多,但是真实有用的其实没必要太多,一般会针对人像、人脸、皮肤、天空、绿植这些进行特殊处理,更特殊的还有太阳,月亮,但是使用率会比较少。
爱搞机靓仔:三星/LG 都和算法供应商有多年合作,2015 年的 Galaxy S6 和 LG G4 用的都是虹软的算法吧?同代硬件、同代算法,甚至是同一供应商的算法,为何拍照水平依然有明显优劣之分?
Hawk Wang:算法的效果取决于很多方面,比如硬件水平决定了能上什么样的算法配置、算法参数、算法输入都会有影响,是一个系统工程。 即便是同一个供应商的算法,当给它不同质量的输入时(爱搞机靓仔:乐金手机的棺材板要压不住了),也会得到不同质量的输出。
爱搞机靓仔:18 年华为 P20 Pro、Google Night Sight 这些超级夜景算法,和之前的 HDR+ 多帧短快门合成有什么本质分别吗?相关算法不是早就有吗?为何以前只能 1/4 秒且无法保证成片率,但现在又可以了?
Hawk Wang:超级夜景相比过去多帧合成,区别主要有 2 点:
1. 把过去降噪以及 HDR 两类算法能力做了整合,
2. 算法从过去的 yuv 域和 RGB 域往 RAW 域进行了转移,当时常规 ISP 完全不具备这些通路,需要厂家比较强的系统能力,而 Google 和华为当时确实更早在这方面下功夫了
爱搞机靓仔:华为在 2020 年 Mate 40 Pro、小米在 21 年的 11 Ultra 之后、vivo 在 21 年的 X70 Pro+之后、OPPO 在今年的 Find X5 Pro之后,高光压制都有明显的进步,且特征相似。是同一家供应商的算法?还是某个算法被业界攻克了?以前做不到是因为算力不够吗?
Hawk Wang:不完全是同一个供应商的算法,有三方供应商也有厂家自研的,是大家一起的努力。谈不上某个算法突然被业界攻克了,都是积少成多的改进,这些改进和算力的持续提升还是有不少的关系,毕竟速度和功耗也是非常重要的指标,当算力提升后,可以用更加复杂的算法来解决问题。
爱搞机靓仔:现在的手机镜头的光学分辨率,能喂饱 1 亿甚至 2 亿像素 CMOS 吗?以前 Lumia1020 和早期的 IMX586 手机,高像素模式都是雾蒙蒙的,那是光学分辨率不够用?还是纯粹因为没算力做常规的处理?
Hawk Wang:目前部分旗舰手机的光学镜头的理论光学分辨率基本可以喂饱 1 亿像素的CMOS,但是由于制造工艺等原因,实际上是很难喂饱的;因此光学分辨率不够用也是导致高像素模式雾蒙蒙的原因之一。
爱搞机靓仔:现在 Quad-Bayer 传感器的高像素模式,能稳赢低像素模式下的“摇摇乐”效果吗?现在手机的高像素模式大都是低像素模式插值,是为了控制成片速度?还是说镜头光学素质本身就不够用,Quad-Bayer 的高像素模式提升太小?
Hawk Wang:Quad-Bayer 的高像素模式不一定能稳赢低像素模式下的“摇摇乐”效果,高像素模式大都是低像素模式插值是由传感器像素排列的本身设计决定的。
爱搞机靓仔:18 年三星 Galaxy S9 就有 12 合 1 堆栈,直到现在依然是 10 几合 1,是已经没有必要再往上堆?还是出现了瓶颈?(CMOS 速度?内存大小?芯片算力?算法模型?)
Hawk Wang:在 IMX345/S5K2L3 (2018年的三星Galaxy S9)之后, 传感器的迭代方向就不同了,没有再继续推加 DRAM 的高速堆栈传感器。这种高帧率价格昂贵,用于移动设备性价比太低。
爱搞机靓仔:很多旗舰一开相机,就会先吃掉 1-2GB 内存,对于常见的 12MP 主摄,夜景算法(最吃内存的是它吗?)过程中,为生成一张照片,一般会占用多少内存?
Hawk Wang:夜景算法是内存占用较高的算法,但不绝对。厂家对算法的内存都有很严格的红线要求,不能明显影响用户使用,而且此处计算方法也不太多,拍完照内存都会释放掉,不会长期占用。很难为这个问题给出一个确定的答案。
爱搞机靓仔:拍照处理太吃内存导致杀后台的情况,已经从 iPhone 延伸到安卓平台。近几年有改善的可能性或方向吗?
Hawk Wang:手机内存目前已经非常大,同时算法一般也会有比较严格的内存限制,算法本身一般占用的内存空间并不大。
爱搞机靓仔:现在手机拍照的瓶颈在哪里?几年前芯片算力还很弱,从搭载的 ISP 就能预测上限。那现在移动芯片 ISP 和 NPU 算力,还是跑拍照算法的瓶颈吗(所以要外挂自研 ISP?)。瓶颈是 ISP/NPU 性能和功耗?还是算法价格、研发周期问题?
Hawk Wang:拍照类算法,算力瓶颈要弱一些 ,更多的是在产品定位上,性能功耗和效果的平衡。而在视频类算法,算力依旧是绝对的瓶颈。
对手机拍照后续的而言,瓶颈反而在应用方向本身,其是否会有新的高价值的应用场景。
爱搞机靓仔:从 Google 跳槽到 Adobe 的 Marc Levoy 表示“堆叠照片的计算摄影方法已经臻于成熟,是时候寻找新的挑战了”。多帧合成或计算摄影,现在算是下半场吗?业界有公认的新突破点和方向吗?
Hawk Wang:
我觉得还有太多潜力和可能性吧,谈不上下半场,甚至不是下半场的开始。现在顶多算是上半场开始的结束。
业界公认的新突破点和方向,这个不好说。 但我比较看好结合了三维信息的各种成像技术。 以前咱们只是把多种图像帧融合起来,再加上去噪/HDR 等等,得到好的画质。 这都算是计算机视觉中的 low-level image processing 这个赛道。
后来加入了语义信息,比如人像、天空的分割信息,可以针对图像上的不同区域做不同的处理。但还很少有把三维信息,比如目标的远近融合到成像和图像处理过程中的。但实际上在游戏领域,我们知道为了渲染出一幅漂亮的图,通常需要知道每个像素点的颜色、亮度、深度、法向量、材质等等信息。
如果我们能把这些计算机图形学中强调的深度、法向量、材质等信息融合到图像画质增强的过程中,想必能够得到更好的图像吧。
我对此拭目以待,也相信之后会参与其中。