人像模式与AI虚化效果原理与实现(OpenGL、shader GLSL)
我的主页:https://www.csblog.site/about/
1. 引言
手机的人像模式就是模仿传统摄影大光圈浅景深的效果,突出拍摄对象。
虚化散景通常在人像或光圈模式下展现。人像摄影通常将拍摄人物对象置于一个模糊的焦外背景的前面,以凸显人物。
在物理定律的基础上,使用大光圈镜头与大画幅图像传感器的相机可以轻松实现背景虚化。
景深的深度与光圈大小呈反比关系,光圈大的镜头一般都贵;此外,由于其较小的图像传感器,难以有效模糊背景,导致拍摄对象和背景的清晰度相近。
智能手机制造商采用了多种方法和技术来实现计算散景效果,包括焦点堆叠、双摄像头(立体视觉)、双像素技术,以及专用的景深传感器。
本文将对比几款主流手机产品的人像模式效果,并尝试使用OpenGL/GLSL来实现虚化渲染。
1.1 目的
- 对比几款主流产品,了解它们在人像模式或AI虚化功能上的表现和差异。
- 从技术角度对比几款主流产品,了解它们在这个功能上的优势和劣势。
- 从用户体验角度对比几款主流产品。
- 分析虚化效果的原理。
- 并尝试使用OpenGL/GLSL来实现虚化渲染。
2. 技术与效果分析
通常,实现虚化效果可分为: 深度估计、语义分割、经典渲染。
手机深度传感器:
- iPhone 12 Pro起开始搭载激光雷达(LiDAR/ToF)
- DP(Dual Pixel)、QP(Quad Pixel, 或称Quad Bayer、4Cell) (与传感器类型有关)
- 双目视觉(分辨率更高)
- 单目深度估计(AI,人像模式还需人像抠图模型)
虚化处理类型:
- 图像处理:对处理时间要求比较宽松,可以采用更加高精度的算法。
- 视频处理:需要在33ms内完成,
2.1 虚化方式
虚化场景:图像虚化、视频虚化。
虚化方式:基于AI人像抠图的两距离平面虚化;AI深度估计景深虚化(物体与风景虚化);AI人像抠图+深度估计;端到端的深度学习解决方案,直接生成虚化图片。
AI人像抠图:
![]() |
![]() |
---|---|
AI人像抠图mask(红色部分) | 后期虚化效果 |
深度估计:
![]() |
![]() |
---|---|
AI深度图 在线体验 | 后期虚化效果 |
2.2 技术特点
- 实时处理:是否支持实时处理,或者实时预览。
- 在大部分手机中支持实时预览,但精度、效果、帧间连续性差。一般拍摄完成后会进行更加精细化的处理。
- 主体/背景分割:精确分离拍摄对象和背景是实现数码单反相机效果的关键。
- 但当前设备受到景深图解析度不足的影响,可能导致边缘不清晰和景深估计错误,尤其在拍摄移动场景时更为明显。
- 模糊渐变平滑度:模糊强度随景深大小而变化。
- 基本人像可能只包含两个距离平面,但大多数的场景都具有更复杂的三维构图,例如多平面图像(MPI, Multi-Plane Image)、深度图等。
- 由于我们拍摄的时候场景并不是只有主体和一个远处的背景,而是在主体前后有不同的前景和背景,所有单纯的人像分割是不能满足的。
- 把不同物体的地方按照与焦点距离进行恰到好处地“模糊”,才能得到近似于相机光学虚化的效果。因此,平滑的模糊渐变对于生成近乎数码单反相机的散景效果至关重要。
- 散景光点形状:单反中一般是非圆形,与单反采用的镜头的机械结构形状有关。
- 一般大光圈时接近为圆形。
- 大部分手机中默认模拟的光圈形状为圆形,一些后期处理软件中也可以选择为其他形状。
- 取景fov/范围:一般手机人像模式是使用相机的长焦镜头,它会获得更近的取景。使用长焦镜头的原因:
- 这是因为要用两个镜头的画面进行比较来获取位置差异得到距离关系,而长焦的画面范围约是主摄的一半,如果在主摄拍的时候用长焦来计算位置差异的话,只有中间一块有数据没法处理四周的部分。
- 镜头焦距越长景深越短,就算光圈不大也可以获得不错的浅景深,便宜大碗,所以大家都选择用长镜头拍人像。
3. 效果对比
- 标准:相机恢复默认,打开人像模式,拍摄直出。
iPhone 16 Pro Max、三星 Galaxy S24 Ultra、华为 Pura 70 Ultra
![]() |
![]() |
![]() |
---|---|---|
iPhone 16 Pro Max | 三星 Galaxy S24 Ultra | 华为 Pura 70 Ultra |
iPhone 16 Pro Max耳环周围有深度伪像(左), 三星 Galaxy S24 Ultra 耳环周围有深度伪像(中), 华为 Pura 70 Ultra出色的主体分割、大光点模拟(右)
Oppo Find X7 Ultra、iPhone 15 Pro Max、华为 Mate 60 Pro+
![]() |
![]() |
![]() |
---|---|---|
![]() |
![]() |
![]() |
Oppo Find X7 Ultra | iPhone 15 Pro Max | 华为 Mate 60 Pro+ |
Oppo Find X7 Ultra被摄体隔离准确,细节保留良好(左), iPhone 15 Pro Max被摄体的细微发丝保留不佳,散景形状较好(中), 华为 Mate 60 Pro+细节略有不准确,散景形状失真(右)
小米 14 Ultra、华为 Pura 70 Ultra
![]() |
![]() |
---|---|
![]() |
![]() |
小米 14 Ultra | 华为 Pura 70 Ultra |
小米 14 Ultra尖峰背景上的深度估计误差(左), 华为 Pura 70 Ultra 较好的深度估计(右)
Vivo X100 Pro、Vivo X90 Pro、iPhone 15 Pro Max
![]() |
![]() |
![]() |
---|---|---|
Vivo X100 Pro | Vivo X90 Pro |