mybreathtaking

文章 › 身边的物理

背景虚化:为什么相机一拍就虚,手机却要靠「算」?

· Read in English

好看的人像照片,常常是这样的:人清清楚楚,背后的灯化成一个个柔和的圆斑,杂乱的背景退成一片朦胧。用相机,这几乎一拍就有;用手机,常常要打开「人像模式」,让手机来「算」。这背后是什么物理?

先猜一猜

常听到的说法有:「光圈数字越小,背景就越虚」;「手机和相机都是 f/1.8,拍出来应该一样」。

都只对了一半。f 数只是一个比例,不是口子的实际大小。背景虚不虚,真正要看的,是镜头开口的实际直径有多大、画面拍得有多宽,以及背景离得多远。同样是 f/1.8,手机镜头的口子只有几毫米,相机镜头的口子有好几厘米。

背景为什么会虚

镜头的作用,是把从一个点发出、散开的光,重新聚回一个点。可它只能对准一个距离:对准了人,人身上每一点的光都聚在芯片上;更远处一盏灯的光聚得更早,在芯片前面就聚成了一点,接着又散开,落到芯片上成了一个圆斑。对焦,就是前后挪动镜头,选择让哪个距离的光正好聚在芯片上。

对焦,就是前后挪动镜头(示意图,不按比例)。橙色是从人身上一点发出的光,蓝色是从远处一盏灯发出的光。对准了灯,灯在芯片上是一个点,人散成一片;对准了人,人是一个点,灯散成一个圆斑。右边是芯片上看到的样子。

照片里那些圆斑,就是一个个没对准的亮点,叫「光斑」。背景虚到什么程度,就看光斑有多大。摄影里常说的「焦外」(英文 bokeh),意思要更宽一些:它不只是虚的程度,还包括焦外的样子,比如光斑的形状、边缘是软是硬、彼此融合得是否自然。这些后面会讲到。

虚不虚,看「镜头的口子」

光斑有多大,有一个很直观的看法。

远处一盏灯发出的光,能进镜头的只有一束:从灯出发,越走越粗,到镜头时正好和口子一样粗,像一个尖朝着灯的圆锥,叫它「光锥」。镜头对准的是人,人站的那个平面会清清楚楚地印到照片上;光锥穿过这个平面时截出的那一圈,也就原样印了上去,成了光斑。灯在远处时,这一圈差不多和口子一样大。于是:

光斑占画面的比例 ≈ 镜头口子的直径 ÷ 画面在人那里拍下的宽度

光斑有多大:看光锥在人那里有多粗(俯视示意图,不按比例)。从灯到镜头口子的光锥,在人站的地方截出一圈;镜头对准了这里,这一圈就原样印在照片上,成了光斑。它占画面多少,就是这一圈的大小比上画面在人那里拍下的宽度。

「镜头的口子」指光圈开口的实际直径。f/1.8 这样的数字叫 f 数,是焦距除以口子的直径。以 iPhone 17 Pro 的主摄为例,实际焦距约 6.9 毫米(由等效焦距推算),光圈 f/1.78,口子只有约 3.9 毫米;相机 85 毫米的人像镜头开到 f/1.8,口子约 47 毫米,是手机的 12 倍。拍同样 60 厘米宽的半身像,背景在远处,手机的光斑只占画面的 0.6%,几乎看不出虚;相机占 8%,背后的灯就成了一个个大圆斑。

注意,这是在同样的构图(画面拍得一样宽)、背景在远处的条件下比的。换了构图,或者背景离人近了,结果就不一样;口子大小只是其中一个因素。所以比虚化,一定要说清楚画面多宽、人多远、背景多远。

从这张图,还能直接看出让背景更虚的四个办法:

  • ① 光圈开大:口子大,光锥就粗。
  • ② 走近一点:画面拍得窄,同样粗的光锥,占的比例就大。
  • ③ 让背景离人远一点:灯越远,光锥在人那里越接近口子那么粗。
  • ④ 换长焦镜头,退后几步让人一样大:同样的 f 数,焦距越长,口子越大。
让背景更虚的四个办法,手机和相机一起试(模拟)。同一个人站在一串串小灯前,每一步都按成像公式算出光斑大小。左边是 iPhone 17 Pro,主摄的光圈不能调,本来就是最大,最后一步换成它的 4 倍长焦;右边是全画幅相机。四步做完,相机的光斑从画面宽度的 0.5% 长到 10.7%,手机只从 0.5% 长到 1.3%。

手机也能用上这些办法,只是效果小得多。不过有两个场合,手机也能拍出真正由光学产生的虚化:

  • 凑近拍小东西:离一朵花十几厘米,画面只拍下约 20 厘米宽,背景又在远处,光斑就有画面的 1.9%,是拍半身像时的 3 倍。只是离得越近,清楚的那一层越薄,对焦要更小心。
  • 用长焦拍人:iPhone 17 Pro 的 4 倍长焦(等效 100 毫米,f/2.8),实际焦距约 16 毫米,口子约 5.8 毫米,比主摄大一半。拍同样的画面,背景会更虚一点。

相机为什么更容易拍出好照片

相机拍得好,最根本的原因,是芯片和镜头都大得多。全画幅相机的芯片是 36 × 24 毫米,iPhone 17 Pro 主摄的芯片约 10 × 7.5 毫米,宽度差了约 3.5 倍。拍同样的画面、用同样的 f 数,大芯片配的镜头焦距也是 3.5 倍,口子的直径就是 3.5 倍,面积约是 12 倍:同样的快门时间里,整张照片收到的光子约是 12 倍。

要注意,芯片上每一小块面积收到的光,并没有变多。同样的 f 数、同样的快门时间,单位面积上的曝光是一样的,两张照片一样亮;多出来的光子,来自大芯片多出来的面积。

《手机是怎么拍下一张照片的?》里说:「照片清不清楚,很多时候也不看像素有多少,而看每个像素收到了多少个光子。」把两张照片放到同样大小来比,每一块地方收到的光子都约是 12 倍。随机起伏和光子数的平方根成反比,所以颗粒细约 3.5 倍(√12 ≈ 3.5)。这比的是同样大小的照片,不是单个像素:大芯片的像素可以更多,每个像素未必多收 12 倍。再加上口子大,背景也自然地虚。

同一个傍晚,同样的画面:手机和相机(模拟)。左:两种芯片按比例画出来。两张照片按同样大小显示。中:手机,脸上每个像素约 25 个光子,起伏 ±20%,背景的灯还是一个个小点。右:相机配 50 毫米 f/1.8 的镜头,每个像素约 300 个光子,起伏只有 ±6%,背景的灯化成了圆斑。

所以有一种说法:手机主摄的 f/1.8,拍出来的虚化和景深,相当于全画幅相机的 f/6 左右(1.8 × 3.5),这叫「等效光圈」。它说的是虚化程度相当,整张照片的光子数也相当,但不是曝光参数相当:同样的快门时间,手机开 f/1.8 和相机开 f/1.8,照片一样亮;相机若开 f/6,照片就暗得多,得把快门时间拉长,或者把感光度调高。

手机这些年追得很快:

  • 芯片越做越大:十年前,手机主摄的芯片只有约 5 毫米宽;现在的旗舰,已经有 10 毫米左右。
  • 一按快门,其实拍了很多张:手机把它们对齐、叠在一起,凑够光子,暗处的颗粒就少了。
  • 光圈也能变了:2026 年 9 月发布的 iPhone 18 Pro,主摄第一次有了可变光圈,由六片叶片围成,有 f/1.48、f/1.8、f/2.8、f/4 四档。开到 f/1.48,进光比 f/1.78 多约四成。苹果没有公布实际焦距;如果和上一代差不多,口子也只有约 4.6 毫米(估算),光斑只比 iPhone 17 Pro 大两成左右。

手机的厚度只有 1 厘米左右,装不下几厘米的口子。所以光线好的时候,手机和相机已经差得不多;可背景虚化,手机多半还是要靠「算」。

焦外好不好看:光斑的形状

虚的程度之外,焦外好不好看,还要看光斑的样子。光斑并不都是圆的。一个没对准的亮点,在芯片上散开的样子,正是光圈开口的形状。

光斑的形状,就是光圈的形状(模拟)。上排:圆形光圈出圆斑;光圈由六片叶片围成,收小一点,就出六边形;在镜头前挡一张挖了心形小孔的黑纸,光斑就成了一颗颗小心。下排:画面中间的光斑是圆的,靠近边缘的成了「猫眼」。原因是从画面边上斜着看镜头,镜筒前后两个圆口错开了,只有重叠的那一块能透光。

好镜头为了让光斑圆润,光圈叶片会做成弧形,片数也多。光斑边缘是软是硬,也和镜头的设计有关:边缘柔和、彼此融在一起,就是常说的「奶油般」的虚化;边缘发亮、一圈一圈的,背景看起来就乱。

想拍出好看的虚化,背景也要挑:点点灯光、树叶缝里漏下的阳光,最容易化成漂亮的光斑;背景离人远一些,颜色干净一些,人就更突出。

手机怎样「算」出虚化

手机的口子太小,光学上虚不了多少,只好先算出画面里每一处有多远,再把远处一层层模糊掉,这就是「人像模式」。

算远近有好几种办法:两个并排的摄像头;把一个像素一分为二的「双像素」;能认出人和头发在哪里的 AI;Pro 系列 iPhone 上用激光测距的激光雷达。实际的手机,常常几种一起用。最容易看懂的是两个摄像头:两个镜头隔开一点点,看到的画面略有不同:近处的东西错开得多,远处的错开得少。就像伸出一根手指,轮流闭上左右眼,手指在背景前面跳来跳去,离得越近,跳得越厉害。

手机的人像模式,以两个摄像头为例(模拟)。① 两个镜头相隔 1 厘米,各拍一张:近处的人错开得多,远处的背景错开得少,差了约 8 倍。② 由错开多少,算出每处有多远(越亮越近)。③ 按远近把背景一层层抹虚,背后的灯变成圆斑。④ 放大头发边:有的发丝被当成背景抹掉了,头边还留着一圈没虚的背景。

算远近,在细小的地方最难:头发丝、眼镜边、透明的玻璃杯,常常算错,于是发丝被抹掉,或者头边留下一圈没虚的背景。仔细看人像模式的照片,常能在这些地方找到破绽。

激光雷达自己发光测距,暗处也能测准;AI 则帮忙描出头发这样的细边。从 iPhone 15 起,只要画面里有人或猫狗,手机就会顺手记下远近,拍完以后还能打开虚化,甚至改对焦在谁身上。

一句话:没对准的亮点散成光斑,光斑就是光锥在人那里截出的一圈;它占画面多大,看镜头口子的直径和画面拍得多宽。相机的芯片和镜头大,口子大,光子多,背景自然地虚、颗粒也细;手机的口子只有几毫米,靠叠加多张照片补光子,靠先算远近、再把背景「抹」虚来补虚化。

我们怎么知道

  • 用手机拍出真正的虚化:关掉人像模式,凑到离一朵花十几厘米,让背景离得远远的,点一下花对焦。再退到一米外拍同一朵花,比一比背景。
  • 主摄和长焦比一比:用手机的 1 倍和长焦,各拍一张人像,让人在画面里一样大,比一比背景。
  • 拍出心形的光斑:这个要用能换镜头的相机。在黑卡纸上挖一个一厘米左右的心形小孔,挡在镜头前面,光圈开到最大,把焦点对在近处,让远处的彩灯虚掉:光斑就成了一颗颗小心。手机镜头的口子太小,做不出来。
  • 找找人像模式的破绽:用人像模式拍一个头发蓬松的人,或者一个拿着玻璃杯的人,放大看边缘。

还不知道什么

算法虚化越来越像真的,可在头发、玻璃、烟雾这些地方,还常常骗不过细看的眼睛。手机能不能只靠计算,就拍出和大镜头一模一样的照片?工程师们一边改进算法,一边尝试新的镜头,比如用纳米结构代替玻璃的「超透镜」。这个问题,现在还没有答案。

进阶:光斑大小的公式、模拟和数据

光锥怎么算。镜头对准距离 ss 处的人,距离 dd 处有一盏灯,口子直径为 AA。从灯到口子的光锥,在人那里截出的圈,直径是 A(d−s)/dA (d - s)/d。画面在人那里拍下的宽度为 WW,于是

光斑画面宽度=AW(1−sd)\frac{\text{光斑}}{\text{画面宽度}} = \frac{A}{W}\left(1 - \frac{s}{d}\right)

背景很远时,括号里接近 1,就是正文里的式子。用薄透镜成像公式 1/f=1/u+1/v1/f = 1/u + 1/v 直接算芯片上的光斑,也得到同样的结果。式子里没有芯片大小,也没有焦距:相机更虚,是因为在同样的画面下,它的口子 AA 更大。A=f/NA = f/N,ff 是焦距,NN 是 f 数。

手机的参数。iPhone 17 Pro 主摄:等效 24 毫米,f/1.78,1/1.28 英寸芯片(约 10 × 7.5 毫米),实际焦距约 6.9 毫米,口子约 3.9 毫米。4 倍长焦:等效 100 毫米,f/2.8,1/2.55 英寸芯片(约 6 毫米宽),实际焦距约 16 毫米,口子约 5.8 毫米。实际焦距由等效焦距和芯片大小推算。iPhone 18 Pro 主摄的光圈有 f/1.48、f/1.8、f/2.8、f/4 四档,焦距按和上一代相同估算。

「四个办法」动画的参数。相机为全画幅(36 毫米宽)。各步(手机 | 相机):起点,画面 60 厘米宽,背景在人后 1 米,手机 f/1.78,0.46% | 50 毫米 f/8,0.55%;① 相机开到 f/1.8,0.46% | 2.5%;② 画面 40 厘米宽,0.76% | 4.3%;③ 背景退到人后 10 米,0.94% | 6.6%;④ 手机 4 倍长焦、相机 85 毫米 f/1.8,1.3% | 10.7%。

手机和相机对比图的参数。两种机器的画面都是 60 厘米宽、背景在人后 3 米。同样的画面,从人身上收到的光,正比于(口子直径 ÷ 拍摄距离)²,也就是正比于(芯片宽度 ÷ f 数)²:同为 f/1.8,全画幅收到的光是手机的 (36/10.3)2≈12(36/10.3)^2 \approx 12 倍。光子数按泊松分布随机生成。「每个像素」指两张照片缩放到同样大小以后的像素。手机脸上的光子数(约 25 个)是为了对比而取的典型的暗光数值。

模拟方法。背景是一个平面上的一串串小灯,每盏灯按光圈形状画成一个光斑,亮度按能量守恒摊开;人在前面保持清楚。没有算衍射和像差。「猫眼」用两个圆的交集近似。人像模式:两个镜头相隔 1 厘米,人在 0.41 米、背景在 3.41 米,错开的距离和远近成反比,所以差了 3.41 ÷ 0.41 ≈ 8 倍;「算出的远近」在粗网格上计算,所以细发丝分辨不出来。

其他。HTC One M8(2014 年)已经用两个摄像头算远近;让人像模式流行起来的是苹果 iPhone 7 Plus(2016 年);谷歌 Pixel 2(2017 年)用双像素加机器学习;iPhone 12 Pro(2020 年)起有激光雷达;iPhone 15(2023 年)起可以拍完再加人像虚化。