景深合成 --- Helicon Focus

在微距摄影、显微成像、工业零部件检测、文物数字化与材料科学研究等场景中,光学系统的有限景深(Depth of Field, DoF)始终是获取全域清晰图像的物理瓶颈:当拍摄高倍率下的三维物体时,单次曝光仅能让极窄深度范围内的区域清晰成像,前景与背景均会出现不同程度的离焦模糊。

焦点堆叠(Focus Stacking,又称景深合成、多焦点图像融合)是突破这一限制的经典计算成像方案:对同一场景沿光轴逐步改变焦点位置,采集一组不同焦平面的图像序列,再通过算法提取每幅图像中的清晰区域,最终合成为一幅全焦清晰的扩展景深(Extended Depth of Field, EDoF)图像。

Helicon Focus 作为全球应用最广泛的商业焦点堆叠软件,其内核融合了图像配准、清晰度评价、多尺度图像融合等数十年的计算机视觉研究成果,同时针对工业与科研场景做了大量工程优化。


一、问题:光学景深的物理限制与计算成像解法

1.1 景深的物理约束

光学成像系统的景深由光圈大小、焦距、拍摄距离共同决定:倍率越高、光圈越大,景深越浅。对于微距与显微场景,景深往往仅有微米到毫米量级,单次曝光无法覆盖具有高度差的被摄体全貌。

假设工件表面存在三个不同高度的特征点 A(近处)、B(中间)、C(远处):

  • 当焦平面对准 A 时,A 清晰,B 轻度离焦,C 严重离焦;
  • 当焦平面对准 B 时,B 清晰,A、C 均离焦;
  • 当焦平面对准 C 时,C 清晰,B 轻度离焦,A 严重离焦。

单一焦平面无法同时让所有高度的特征清晰成像,这是光学系统的固有属性,无法通过镜头设计完全消除。

1.2 焦点堆叠的思想

焦点堆叠的解决思路可以概括为:

有限物理景深→多焦平面序列采集→计算生成扩展景深图像\text{有限物理景深} \rightarrow \text{多焦平面序列采集} \rightarrow \text{计算生成扩展景深图像}有限物理景深→多焦平面序列采集→计算生成扩展景深图像

具体而言,我们采集 N 幅不同焦点位置的图像 I1,I2,...,INI_1, I_2, \dots, I_NI1,I2,...,IN,对应光轴方向的不同深度 z1,z2,...,zNz_1, z_2, \dots, z_Nz1,z2,...,zN,算法的目标是构造输出图像 Iall-focusI_{\text{all-focus}}Iall-focus,使得每个空间位置 (x,y)(x,y)(x,y) 的像素值均来自该位置最清晰的焦平面。

Helicon 官方对 Focus Stacking 的定义为:逐步移动焦点采集图像序列,分析每张图中的清晰区域并融合为整体清晰的输出图像

Helicon Focus 并未改变镜头的物理景深,而是通过计算重构出一幅"视觉上具有极大景深"的图像,所有信息均来源于真实采集的焦平面序列,而非无中生有的画质增强。


二、基石:清晰度评价算子与焦平面选择机制

Helicon Focus 所有算法的底层前提,是能够准确判断"图像中哪个区域是清晰的"。这一能力依赖于清晰度评价算子(Focus Measure Operator),也是整个焦点堆叠技术的核心基础。

2.1 清晰度的频域本质

从信号处理角度看,离焦等价于对图像进行低通滤波:清晰图像包含丰富的高频细节(锐利边缘、细密纹理),离焦后高频分量被衰减,边缘变得平缓,纹理变得模糊。

理想清晰边缘的灰度变化陡峭,离焦后灰度变化梯度显著降低。因此,所有经典清晰度算子本质上都是在衡量图像局部区域的高频能量强度:梯度越强、二阶导数响应越高、局部对比度越大,则该区域越清晰。

2.2 经典清晰度算子:Sum-Modified Laplacian (SML)

Helicon 官方并未公开其内部使用的具体清晰度函数,但业界与学术研究中最经典、应用最广泛的算子之一是 Sum-Modified Laplacian(SML)

修正拉普拉斯(Modified Laplacian)

普通拉普拉斯算子计算图像的二阶微分:

∇2I=∂2I∂x2+∂2I∂y2\nabla^2 I = \frac{\partial^2 I}{\partial x^2} + \frac{\partial^2 I}{\partial y^2}∇2I=∂x2∂2I+∂y2∂2I

修正拉普拉斯对两个方向的二阶差分取绝对值后求和,离散形式为:

ML(x,y)=∣2I(x,y)−I(x−s,y)−I(x+s,y)∣+∣2I(x,y)−I(x,y−s)−I(x,y+s)∣ \begin{aligned} ML(x,y) ={}& \left|2I(x,y) - I(x-s,y) - I(x+s,y)\right| \\ +{}& \left|2I(x,y) - I(x,y-s) - I(x,y+s)\right| \end{aligned} ML(x,y)=+∣2I(x,y)−I(x−s,y)−I(x+s,y)∣∣2I(x,y)−I(x,y−s)−I(x,y+s)∣

其中 sss 为采样步长,通常取 1。

局部窗口求和得到 SML

在以 (x0,y0)(x_0,y_0)(x0,y0) 为中心的局部窗口 Ω\OmegaΩ 内对修正拉普拉斯响应求和,即得到 SML 清晰度值:

SML(x0,y0)=∑(x,y)∈ΩML(x,y) SML(x_0,y_0) = \sum_{(x,y)\in\Omega} ML(x,y) SML(x0,y0)=(x,y)∈Ω∑ML(x,y)

SML 值越高,代表该区域的边缘与纹理越丰富,聚焦程度越好

2.3 焦平面选择的基本逻辑

对于图像中的每个像素位置 (x,y)(x,y)(x,y),我们可以计算其在所有 N 个焦平面上的清晰度值 F1(x,y),F2(x,y),...,FN(x,y)F_1(x,y), F_2(x,y), \dots, F_N(x,y)F1(x,y),F2(x,y),...,FN(x,y),进而通过最大化准则确定最佳焦层:

k∗(x,y)=arg⁡max⁡iFi(x,y)k^*(x,y) = \arg\max_i F_i(x,y)k∗(x,y)=argimaxFi(x,y)

该式的物理含义是:位置 (x,y)(x,y)(x,y) 最清晰的信息出现在第 k∗k^*k∗ 张焦平面图像中。这一思想正是 Shape From Focus(SFF,从聚焦恢复形状) 技术的核心:不仅可以合成全焦图像,还能根据最佳焦点的位置反推场景的深度信息。

至此,我们可以抽象出 Helicon Focus 的核心计算范式:

局部区域采样→清晰度计算→多焦平面对比→融合权重/焦层决策\boxed{\text{局部区域采样} \rightarrow \text{清晰度计算} \rightarrow \text{多焦平面对比} \rightarrow \text{融合权重/焦层决策}}局部区域采样→清晰度计算→多焦平面对比→融合权重/焦层决策


三、完整处理链路:从图像采集到全景深输出

从工程实现角度,Helicon Focus 的完整工作流可划分为采集、预处理、配准、融合、后处理五大阶段,每个阶段的质量都会直接影响最终输出效果。

3.1 采集阶段:决定结果上限的源头

官方手册明确指出,源图像序列的质量是最终合成效果的决定性因素,理想的焦点堆叠序列应满足以下条件:

  1. 场景静止:拍摄期间被摄体与相机均无位移,避免运动模糊与重影;
  2. 步长均匀:相邻图像的焦点移动步长近似相等,清晰区域相互重叠;
  3. 光照稳定:全程曝光参数一致,避免亮度波动导致的融合接缝;
  4. 视点固定:相机视角与放大倍率保持稳定;
  5. 单向移动:焦点沿单一方向(由近及远或由远及近)连续移动,不可往复。

其中,焦点单向移动的要求对 Method B 尤为重要------该算法依赖焦平面的顺序关系构建深度图,乱序会导致深度逻辑失效。

3.2 预处理与图像配准(Alignment)

实际拍摄中,无论是旋转对焦环还是使用微距导轨移动相机,都会导致相邻图像之间出现几何差异:

  • 旋转对焦环会产生倍率变化(对焦呼吸效应);
  • 移动相机会产生视角偏移与倍率变化;
  • 手动操作可能引入微小的旋转与平移。

若直接融合未配准的图像,会出现边缘重影与细节错位。因此 Helicon Focus 内置了自动配准模块,支持以下几何变换补偿:

  • 水平/垂直平移(Horizontal/Vertical shift)
  • 旋转(Rotation)
  • 缩放(Scale)
  • 亮度补偿(Brightness adjustment)

这一过程可形式化为:

Ii′(x,y)=Ti(Ii(x,y))I_i'(x,y) = T_i\left(I_i(x,y)\right)Ii′(x,y)=Ti(Ii(x,y))

其中 Ti={Δx,Δy,θ,s}T_i = \{\Delta x, \Delta y, \theta, s\}Ti={Δx,Δy,θ,s} 为第 iii 张图像到参考坐标系的二维几何变换,包含平移、旋转、缩放四个自由度。

类比视角:图像配准之于焦点堆叠,类似于点云配准之于三维重建------前者将二维像素对齐到统一坐标系,后者将三维点云对齐到统一空间,核心都是解决多视角数据的空间一致性问题。

3.3 融合与后处理

配准完成后,软件根据所选渲染方法(A/B/C)执行清晰度计算与图像融合,再通过平滑处理消除不同焦层之间的接缝与伪影,最终输出全焦图像。用户还可通过修图工具进行局部修正,添加标尺与文本注释。


四、三大渲染算法:A/B/C 的技术内核

Helicon Focus 提供了三种核心渲染算法,分别代表了多焦点图像融合领域的三条主流技术路线:加权融合、深度图选择、多尺度金字塔融合。三者在适用场景、计算逻辑与输出特性上有显著差异。

算法 官方核心思想 技术路线
Method A 基于对比度计算像素权重,执行加权平均 软选择·加权融合
Method B 寻找最清晰像素,生成深度图并据此融合 硬选择·深度图驱动
Method C 金字塔分解,分高低频分别处理融合 多尺度·频域分离融合

4.1 Method A:加权平均法(Weighted Average)

算法原理

Method A 属于软选择策略:它不为每个像素分配唯一的源图像,而是根据局部对比度为每个焦平面计算一个权重值,最终通过加权求和得到输出像素。

数学抽象形式为:

Iout(x,y)=∑i=1Nwi(x,y)⋅Ii(x,y)∑i=1Nwi(x,y)I_{\text{out}}(x,y) = \frac{\sum_{i=1}^N w_i(x,y) \cdot I_i(x,y)}{\sum_{i=1}^N w_i(x,y)}Iout(x,y)=∑i=1Nwi(x,y)∑i=1Nwi(x,y)⋅Ii(x,y)

其中 wi(x,y)w_i(x,y)wi(x,y) 为第 iii 张图像在 (x,y)(x,y)(x,y) 处的权重,由局部对比度计算得到,清晰度越高权重越大。

特点与适用场景
  • 优势:色彩与对比度还原自然,过渡平滑,对图像顺序不敏感,短序列堆叠效果稳定;
  • 局限:对极深堆叠与复杂交叉结构的处理能力弱于另外两种方法;
  • 推荐场景:普通短堆栈、对色彩保真度要求高的场景。

4.2 Method B:深度图法(Depth Map)

算法原理

Method B 是最具机器视觉属性的算法,属于硬选择 策略:它为每个像素找到清晰度最高的焦平面,生成一张"最佳焦层索引图",即官方所称的 Depth Map(深度图)

核心计算分为两步:

  1. 逐像素计算所有焦平面的清晰度,得到最佳焦层索引:
    D(x,y)=arg⁡max⁡iFi(x,y)D(x,y) = \arg\max_i F_i(x,y)D(x,y)=argimaxFi(x,y)
  2. 依据深度图取值,从对应焦平面中提取像素值作为输出:
    Iout(x,y)≈ID(x,y)(x,y)I_{\text{out}}(x,y) \approx I_{D(x,y)}(x,y)Iout(x,y)≈ID(x,y)(x,y)

为避免深度图出现椒盐噪声与边界锯齿,算法会对深度图进行空间平滑处理------这正是 Smoothing 参数 在 Method B 中的物理含义:控制深度图的平滑程度。

为什么必须要求图像顺序?

深度图中的数值本质是焦平面序号,其物理意义依赖于"序号递增对应深度单调变化"的前提。如果图像顺序混乱,序号将不再对应真实深度关系,深度图的空间连续性与物理含义都会失效。因此官方明确要求 Method B 必须使用严格连续、单向拍摄的图像序列。

特点与适用场景
  • 优势:纹理还原锐利,能输出可用于分析的深度图,长堆栈表现优于 Method A;
  • 局限:对乱序、曝光波动敏感,交叉结构处易产生伪影;
  • 推荐场景:平滑表面纹理还原、需要深度信息的科研/检测场景、长堆栈序列。

4.3 Method C:金字塔法(Pyramid)

算法原理

Method C 基于多尺度图像金字塔技术,属于频域分离融合路线。其核心思想是:将图像分解为不同频率层级,在每个尺度上独立执行清晰度判断与融合,最后重建得到全焦图像。

经典的拉普拉斯金字塔(Laplacian Pyramid)分解流程为:

  1. 对源图像进行高斯模糊与下采样,构建高斯金字塔 G0,G1,...,GLG_0, G_1, \dots, G_LG0,G1,...,GL;
  2. 相邻层级相减得到拉普拉斯金字塔 Ll=Gl−Expand(Gl+1)L_l = G_l - \text{Expand}(G_{l+1})Ll=Gl−Expand(Gl+1),每一层对应一个尺度的细节信息;
  3. 在每个尺度的拉普拉斯金字塔上执行融合规则;
  4. 自顶向下重建得到最终融合图像。

学术研究中的 RMLP(Region Mosaicking on Laplacian Pyramids)算法进一步将区域级清晰度掩码与金字塔融合结合,在减少色彩失真、提升抗噪性方面表现优异,可作为理解 Method C 技术思路的学术参考。

特点与适用场景
  • 优势:对复杂交叉结构、毛发、深堆栈处理能力最强,鲁棒性高;
  • 局限:可能轻微提升对比度与眩光,色彩保真度略逊于 A/B;
  • 推荐场景:昆虫、毛发等复杂细节、相交物体、超百张图像的深堆栈。

4.4 算法选型参考表

结合官方指南,不同场景下的算法选型建议如下:

场景类型 优先推荐算法
普通短堆栈、追求色彩自然 Method A
平滑表面纹理还原 Method B
强反光/眩光场景 Method B / Method A
需要输出深度图 Method B
毛发、昆虫、交叉复杂结构 Method C
超长堆栈(>100张) Method C / Method B
优先保证颜色与对比度自然 Method A / Method B

工程实践建议:不要单一依赖某一种算法。Helicon Focus 9 支持将不同算法的输出结果再次堆叠融合,实际工作中可对同一组序列分别使用三种算法渲染,再根据边缘、纹理、伪影表现择优或组合使用。


五、参数语义:Radius 与 Smoothing 的工程权衡

Radius 与 Smoothing 是 Helicon Focus 中最核心的两个调参项,二者控制的物理维度完全不同,理解其含义是精准调参的关键。

5.1 Radius:清晰度判断的空间尺度

Radius 决定了判断像素清晰度时,需要分析其周围多大范围的区域,该参数作用于 Method A 与 Method B

从算法角度,Radius 对应清晰度计算时的支撑窗口(Support Window)大小:

  • 小 Radius:窗口小,局部性强,能精准捕捉细线、毛发等微小细节,但对噪声敏感,易产生误判与边缘光晕(Halo);
  • 大 Radius:窗口大,统计稳定性强,抗噪性好,可减少光晕伪影,但会模糊深度边界,损失微小细节。

官方经验值:对于富含精细结构的场景,可优先尝试 Radius=3~5;增大 Radius 通常能缓解光晕问题,但需权衡细节损失。

二者的权衡关系可概括为:

Radius 小:细节保留 ↑,噪声/伪影风险 ↑\boxed{\text{Radius 小:细节保留 ↑,噪声/伪影风险 ↑}}Radius 小:细节保留 ↑,噪声/伪影风险 ↑

Radius 大:稳定性 ↑,微小细节 ↓\boxed{\text{Radius 大:稳定性 ↑,微小细节 ↓}}Radius 大:稳定性 ↑,微小细节 ↓

这一权衡与 Shape-from-Focus 领域中"支撑窗口大小---深度边缘精度"的经典权衡完全一致:窗口越小深度边界越锐利,但噪声越多;窗口越大结果越平滑,但边界越模糊。

5.2 Smoothing:焦层过渡的平滑程度

如果说 Radius 决定了"怎样判断谁更清晰",那么 Smoothing 决定了"不同清晰区域之间如何过渡"。

  • 在 Method A / Method C 中,Smoothing 控制融合权重的空间平滑度,值越小边界越锐利,值越大过渡越自然;
  • 在 Method B 中,Smoothing 直接控制深度图的空间平滑程度,值越小深度边界越锐利,值越大深度过渡越平缓。

参数影响规律:

  • 低 Smoothing:边界响应快,细节锐利,但易出现接缝、阶梯状伪影;
  • 高 Smoothing:过渡带宽,融合自然,伪影少,但边缘锐度会略有下降。

5.3 参数区分总结

参数 控制对象 作用阶段
Radius 清晰度判断的空间尺度 清晰度计算阶段
Smoothing 焦层边界的过渡宽度 融合后处理阶段

调参口诀:先定算法,再调 Radius 保细节,最后调 Smoothing 消伪影。


六、常见伪影成因与规避策略

焦点堆叠的伪影大多源于采集缺陷或算法边界效应,理解其成因是规避与修复的前提。

6.1 边缘光晕(Halo)

成因

光晕是焦点堆叠最典型的伪影,常出现在前景与背景的深度边界处。当对焦背景时,前景物体离焦形成弥散斑(Blur Circle),该弥散斑会覆盖背景区域,导致算法在边界处误将前景模糊区域判断为背景信息,最终形成亮色或暗色的晕状边缘。

当 Radius 窗口跨越深度不连续边界时,窗口内混合了两个深度的信息,会进一步加剧光晕。这也是 Shape-from-Focus 领域中经典的 depth discontinuity 问题。

规避方法
  • 适当增大 Radius 与 Smoothing;
  • 优先尝试 Method B 或 Method C;
  • 使用 Retouching 工具从源图中复制正确区域进行修复。

6.2 运动重影

成因

拍摄过程中被摄体发生位移(如昆虫触角摆动、样品漂移),不同焦平面中物体位置不一致,算法会将多个位置的清晰信息全部保留,形成多重虚影。Helicon 官方修图示例中就明确展示了昆虫触角移动导致的重影问题。

规避方法
  • 保证拍摄平台稳定,使用遥控快门减少振动;
  • 活体拍摄尽量缩短拍摄时长;
  • 后期使用"Copy from source"笔刷,从单一源图中复制正确区域覆盖重影。

6.3 清晰度断层

成因

焦点步长过大,相邻焦平面的清晰区域没有重叠,导致中间深度区域没有任何一张图能清晰成像。算法无法创造不存在的清晰信息,最终出现模糊断层带。

规避方法
  • 缩小对焦步长,保证相邻图像的清晰区域有充分重叠;
  • 官方拍摄指南明确建议:使用小而均匀的步长,确保清晰区域相互覆盖。

6.4 亮度接缝

成因

拍摄过程中曝光参数变化,或环境光波动,导致不同焦平面亮度不一致,融合后出现明暗相间的条带。

规避方法
  • 使用全手动曝光模式,锁定光圈、快门与 ISO;
  • 开启软件内的亮度自动补偿功能。

七、深度图的物理边界:相对深度与计量深度的区别

Method B 输出的深度图是焦点堆叠的重要衍生产物,但必须明确其物理边界,不可直接用于精密几何测量。

7.1 Helicon 深度图的本质

Helicon Focus 输出的灰度深度图,本质上是最佳焦平面索引的灰度映射

  • 灰度值 0 对应第 1 张图像的焦平面;
  • 灰度值 255 对应最后一张图像的焦平面;
  • 中间灰度值对应不同的焦层序号。

它反映的是相对深度顺序,而非真实物理尺寸的深度值。没有经过标定的深度图,只能用于定性观察与相对位置判断,不能直接读取毫米、微米等绝对尺寸。

7.2 向计量深度转化的条件

若要获得真实物理深度,必须完成两步标定:

  1. 步长标定:确定相邻焦平面对应的真实物理位移量(如微距导轨的步长、镜头对焦环的深度增量);
  2. 光学模型校正:结合镜头焦距、物距、放大倍率等参数,将焦平面位置映射为物方真实深度。

经典 Shape-from-Focus 系统正是通过精确的焦点位置标定与光学建模,实现从焦层索引到三维深度的定量恢复。

因此二者的关系为:

Helicon 深度图≈相对深度 / 焦层索引\boxed{\text{Helicon 深度图} \approx \text{相对深度 / 焦层索引}}Helicon 深度图≈相对深度 / 焦层索引

焦层索引→光学标定真实度量深度\text{焦层索引} \xrightarrow{\text{光学标定}} \text{真实度量深度}焦层索引光学标定 真实度量深度

相关推荐
格林威11 天前
多相机并行采图最佳实践:Task.WhenAll + 异常处理 + 资源释放
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·机器视觉
微小冷12 天前
海康威视相机C#二次开发指图像采集
数码相机·c#·二次开发·机器视觉·海康威视·mvs·相机开发
Clipp_Huang16 天前
光学跟踪系统标定
人工智能·计算机视觉·重构·机器视觉
Microvision维视智造19 天前
近十年视觉市场变化趋势分析——客户需求的三次跃迁
人工智能·计算机视觉·视觉检测·机器视觉
格林威21 天前
多相机微秒级对齐:硬件触发 vs PTP(IEEE 1588)方案实战对比
开发语言·人工智能·数码相机·机器学习·计算机视觉·视觉检测·机器视觉
工业胶囊22 天前
“AI+制造”2.1核心技术篇:AI机器视觉—制造业永不疲劳的质检之眼
人工智能·制造·机器视觉·工业ai·ai质检
长沙红胖子Qt22 天前
康标达工业镜头开发笔记(一):康标达(Computar)工业镜头介绍、搭建SDK基础环境
机器视觉·工业镜头·康标达·computar·sdk二次开发
Microvision维视智造22 天前
行业洞察系列 06 | 汽车制造的视觉革命
人工智能·计算机视觉·汽车·视觉检测·制造·机器视觉
Microvision维视智造1 个月前
智能工厂等级自检表:梯度培育,你的工厂在第几级?
人工智能·计算机视觉·视觉检测·机器视觉