真能手持拍夜景!手机有这么牛?你的手机行吗?

モンキーDルフィ

相机都不能完成的事,为何手机能? 手持拍夜景,到底是什么技术? 最近如果你留意过手机拍照方面的动作,听得最多的可能就是“手持超级夜景”了,不仅最新的旗舰手机卖力宣传,华为、小米等也把该技术纷纷下放,一些老机型都能通过固件更新获得手持超级夜景功能。 目前支持手持超级夜景功能的手机不完全统计 华为系: P20系列、Mate20系列、Nova3、Mate10、荣耀10、荣耀V10、荣耀Play、荣耀Magic 2等 小米系 小米MIX3、各版本小米8、小米MIX 2S等 其他: OPPO R17 Pro、一加6 / 6T、谷歌Pixel 3等 什么是手持超级夜景? 手持超级夜景这种模式,其实多年前就有了,最著名的当属索尼Xperia旗舰机,它主要通过长曝光和多帧合成算法实现,但受制于当时手机运算能力有限,合成时间较长,很难不手抖,多数还是建议使用三脚架配合,所以推广并不多。 这些年手机软硬件上的技术提升,尤其是多帧合成算法已经有了长足的进步,再加上手机处理器性能早就过剩,因此可以更多分担相机方面的运算需求。 最先搭载手持超级夜景的华为P20系列就是采用先进算法加强处理以及拍摄后重调白平衡等技术,通过拍摄多帧照片来合成最佳效果。 手持超级夜景之所以能“手持”,是因为它并不是简单的长曝光,而是在那几秒时间里快速拍摄了很多张不同曝光值的照片,然后通过软件算法后期快速堆栈,合成一张照片。 很多摄影玩家都玩过PS里的堆栈,拍摄不同曝光补偿和测光的照片,然后再把这些照片通过PS堆叠在一起,合成得出一张暗部没有一片死黑,亮部也没有过曝,有细节的照片。手机只不过是把这些操作都自行处理了,最后看到的就是一张合成好的照片。 难的不是防抖而是对齐 为了实现手持不抖,华为搭载了AIS防抖技术,小米也号称加入了AI防抖自动校准、手持状态智能检测以及AI智能测光等八项黑科技。 虽然叫法不同,但两者防抖算法其实是差不多的,首先当点击快门的瞬间,检测到手持拍摄时,会进行智能测光,根据当前环境匹配帧数和每一帧照片所需的不同曝光。比如所拍摄的环境较亮时,曝光更短,帧数较少;当环境较暗时,曝光更长,帧数也更多。 华为的超级夜景拍摄帧数是不固定,会根据实际拍摄环境判断帧数和曝光,而小米MIX 3是同时拍摄8张采用不同曝光方案的照片。 在进行图像合成之前,还需要对这些帧进行筛选,将模糊不清晰的帧丢弃掉,并选取最为清晰的帧作为标准帧,然后将其他图像与之进行自动图像对齐。 拍摄过程当中因为是抖动的,每一帧都会与轻微差异,可想而知这个对齐的运算量是相当大的,这也是手持超级夜景技术的关键点。因为只有准确的对齐,边界清晰匹配,才能够同时实现降噪和防抖。 通常的做法是在一副图像上进行特征点检测,比如小米MIX3是从每帧照片中智能选取100个关键特征点进行识别比对,8帧就是800个。而这个特征点的选取过程也需要经过一番计算,一副1000万像素的图像,计算量就高达百亿。 尤其是低照度下图像对齐挑战非常大,因为暗光图像本来就没有太多可以用到的信息,很难提取特征用于匹配。这个运算量不靠AI基本上是不可能实现的。 手持超级夜景就无敌了吗? 虽然手持超级夜景的确很厉害,值得肯定,但它目前依然具有一定的局限性,也就是无法很好的应对运动场景,当碰到画面中有运动物体时,由于多帧合成的特性,很难避免重影的伪象问题。 最大的困难是动态物体的判定,以及合成的可靠性、稳定性,包括伪象的判定和抑制。当然处理速度也非常关键,此前Pixel 2和iPhone X合成得都比较慢,很多国产大厂的手机都容易在拍摄动态物体时翻车,或者出现奇怪的合成效果。 所以,目前我们看到的很多手机厂商宣传手持超级城市夜景的样张都是静止画面,其实你架在脚架上拍建筑和风光,整个几十帧,什么光比拿不下来? 手机有手持超级夜景固然是好的,但也不必把这个功能吹上天。当然,手机摄影的技术发展很快,相信伪像会有办法消除的,还是很值得我们期待。