1. 散景与虚化基础:光学原理、弥散圆、景深公式、人像模式需求分析
各位同学,咱们今天聊点实在的。散景和虚化,说白了就是让照片背景糊成一片,突出主体。你打开手机的人像模式,咔嚓一拍,背景虚了,这就是算法在模拟光学虚化。但你真的理解背后的物理原理吗?我当年刚入行时,以为虚化就是简单模糊一下背景,结果做出来的效果被测试吐槽“像纸片人”。嗯,从那以后,我老老实实把光学基础啃了一遍。
1.1 光学虚化的物理本质
先问一个问题:为什么镜头能拍出虚化?
答案在光路上。一个点光源发出的光线,经过镜头后,在焦平面上汇聚成一个点。但如果传感器不在焦平面上,这个点就会扩散成一个圆盘。这个圆盘,我们叫它弥散圆(Circle of Confusion, CoC)。
核心概念:弥散圆的大小直接决定了虚化程度。弥散圆越大,背景越模糊,散景越明显。
我个人习惯把弥散圆理解成“光斑的脚印”。焦点上的物体,脚印小;离焦点越远,脚印越大。人像模式要做的,就是让背景中每个像素都踩上一个大脚印。
1.2 景深公式与关键参数
景深公式是光学虚化的数学骨架。你不需要背公式,但必须理解三个核心变量:
| 参数 | 符号 | 对虚化的影响 | 实际场景 |
|---|---|---|---|
| 光圈大小 | F | 光圈越大(F值越小),虚化越强 | F/1.4 比 F/2.8 虚化明显 |
| 焦距 | f | 焦距越长,虚化越强 | 85mm 人像头比 35mm 虚化好 |
| 拍摄距离 | u | 距离越近,虚化越强 | 半身照比全身照背景更虚 |
你想想看,这三个参数组合起来,就是光学虚化的“调音台”。我在项目中遇到过最头疼的问题,就是手机镜头物理限制——焦距短、光圈小,天然虚化弱。算法必须“无中生有”,模拟出大光圈的效果。
实战技巧:调参时,优先控制“主体到背景的距离差”。距离差越大,算法越容易做出自然虚化。如果主体紧贴背景,神仙算法也救不了。
1.3 散景的视觉特征
散景不只是“模糊”,它有独特的视觉语言。好的散景应该是柔和的、奶油般的,而不是生硬的、有重影的。
我总结了三个关键特征:
- 光斑形状:理想散景是圆形光斑。但镜头叶片形状会导致多边形光斑。算法要模拟圆形,避免出现“六边形战士”。
- 边缘过渡:焦点到虚化的过渡要平滑。生硬的“一刀切”边缘,一看就是算法做的。
- 亮度分布:真实散景的光斑中心亮、边缘暗(高斯分布)。算法如果做成均匀亮度,就假了。
避坑指南:我曾经在早期版本中直接用高斯模糊处理背景,结果光斑全是均匀的灰圆,被用户吐槽“像马赛克”。后来改用基于弥散圆半径的渐变模糊,效果才自然。
1.4 人像模式的需求拆解
人像模式不是简单的“背景虚化”。它要解决三个核心问题:
- 精准分割:把人物从背景中抠出来。头发丝、透明物体是难点。
- 深度估计:知道每个像素离相机多远。这样才能按距离施加不同程度的虚化。
- 虚化渲染:根据深度图,生成物理正确的散景效果。
这三个环节环环相扣。分割错了,虚化再漂亮也没用;深度不准,虚化会“飘”;渲染不好,一眼假。
下面这张图,是我自己梳理的知识体系,帮你快速建立全局认知:
1.5 算法调优的切入点
了解了基础,咱们聊聊实际调优从哪里下手。我个人习惯按这个优先级来:
- 第一优先级:分割精度。分割错了,后面全白费。重点关注头发丝、眼镜边缘、透明物体。
- 第二优先级:深度连续性。深度图不能有跳变,否则虚化会出现“断层”。
- 第三优先级:散景质量。光斑形状、边缘过渡、亮度分布,这三个指标决定了“像不像光学虚化”。
我的经验:调优时,先拿一张标准测试图跑通全流程。标准图包含:前景人物、中景背景、远景灯光。这样能同时验证分割、深度、散景三个模块。