【技术解析】基于散焦模糊核校准的高精度深度估计方法

📅 发布时间:2026/7/15 15:18:58 👁️ 浏览次数:
【技术解析】基于散焦模糊核校准的高精度深度估计方法
1. 从“拍糊了”到“看得清”为什么我们需要校准模糊核大家好我是老陈一个在计算机视觉和智能硬件领域摸爬滚打了十多年的工程师。今天想和大家聊聊一个听起来有点“玄学”但实际上非常接地气的话题如何通过校准“拍糊了”的模糊效果来精确地测量出物体的距离。没错就是“离焦深度估计”Depth from Defocus, DFD。想象一下这个场景你用手机给桌上的咖啡杯拍照焦点对准了杯子的把手结果背景的笔记本就变得一片模糊。这种“模糊”在我们摄影时可能是个麻烦但在计算机视觉的工程师眼里它却是一把测量距离的尺子。因为模糊的程度或者说“模糊核”Point Spread Function, PSF是和物体离相机的距离直接相关的。距离越远或越近于对焦平面图像就越模糊这个模糊的“光斑”形状和大小就蕴含了深度信息。听起来很美好对吧但现实很骨感。传统的DFD方法为了计算方便常常会把模糊核简单假设成一个对称的高斯模糊或者一个均匀的圆盘。这就好比用一把刻度不准的尺子去量东西——对于近距离、模糊程度不大的情况凑合能用一旦场景复杂、距离变化大或者相机光圈形状不那么“标准”比如很多手机为了提升夜景能力用的非对称、多叶片光圈这把“尺子”就彻底失灵了测出来的深度图要么误差巨大要么充满噪声。这就像什么呢就像你试图通过观察一个重影来判断物体的远近但如果连重影本身的形状都搞错了那判断结果自然南辕北辙。Fahim Mannan等人在2016年提出的这篇工作核心就是解决这个“尺子不准”的问题。他们提出了一套完整的“校准”流程目的就是为了得到那个最真实、最准确的“模糊重影”模型——即精确的PSF。这套方法尤其擅长处理非对称光圈下产生的复杂模糊让深度估计的精度上了一个大台阶。所以这篇文章要聊的不是空中楼阁的理论而是一套非常务实、可操作的技术方案。无论你是正在研究3D视觉的学生还是想在产品中集成高精度测距功能的工程师理解这套“校准”思想都能帮你避开很多坑。接下来我就带你一步步拆解看看他们是怎么把“模糊”这把尺子给校准准的。2. 模糊是怎么形成的薄透镜模型与它的局限要校准模糊我们首先得弄明白模糊是怎么来的。这里就不得不提经典的薄透镜成像模型。我们可以把相机镜头理想化成一个无限薄的透镜。### 2.1 理想世界的公式假设一个点光源距离镜头为u物距根据薄透镜公式1/u 1/v 1/f它会在镜头另一侧距离v像距处汇聚成一个清晰的点。如果我们的相机传感器恰好放在v的位置那这个点就被完美对焦在照片上就是一个锐利的像素点。但如果我们把传感器放在另一个位置s比如s不等于v那么这个点光源在传感器上就不会汇聚成点而会散开成一个模糊圆斑这个斑的半径r可以通过相似三角形推导出来。公式里包含了光圈大小A、焦距f、物距u和像距v等参数。这个模糊圆斑的形状在理想圆对称光圈下就是一个完美的圆盘其半径σ以像素为单位就直接反映了物体的离焦程度进而可以反推出深度u。这就是DFD最基本的原理通过测量图像中每个区域的模糊半径σ来推算该处场景的深度。如果我能用两个不同参数比如不同光圈或不同对焦距离拍摄同一场景得到两幅模糊程度不同的图像我就能建立方程组更稳健地解出深度。### 2.2 现实世界的“骨感”然而上面这个优美的模型一到现实中就漏洞百出。我刚开始做相关项目时就曾天真地以为套用公式就能出结果结果被现实狠狠教育了一番。首先真实镜头不是薄透镜。它有厚度有多个镜片组所谓的“投影中心”很难确定。我们通常调节的“对焦距离”指的是传感器平面到对焦平面的距离而不是到某个虚拟透镜中心的距离。这个差异如果不校准会引入系统性误差。其次光圈形状 rarely 是完美的圆。尤其是为了获得更好的焦外成像所谓“奶油般化开”的虚化很多镜头的光圈叶片设计会导致光圈在多边形和圆之间变化甚至在收缩几档后变成明显的多边形。这种非对称的光圈形状会导致模糊核PSF不再是均匀的圆盘而可能是带有棱角的复杂形状。用简单的高斯核去拟合它无异于指鹿为马。再者衍射和像差。当光圈缩得很小时衍射效应会变得显著使得即使对焦的点也不再是一个理想的点。镜头本身的色差、球差等也会扭曲PSF的形状。这些效应都是薄透镜模型完全没有考虑的。最后辐射响应不一致。相机传感器和显示器的响应并不是完全线性的场景中亮度均匀的区域拍出来可能并不均匀。如果不做校正后续的模糊估计就会受到干扰。所以直接套用理论公式去估计深度就像用一张漏洞百出的地图去导航迷路是必然的。Mannan等人的工作其高明之处就在于他们不跟这些复杂的物理效应硬碰硬地建模而是转向一种“数据驱动”的校准思路我不需要完全知道镜头具体有多不理想我只需要在实际的拍摄条件下测量出它产生的真实模糊核是什么样子然后把这个“测量结果”当作我的尺子就行了。这是一种非常工程师思维的、实用的解决方案。3. 核心武器如何校准出真实的模糊核那么具体怎么“测量”这个模糊核呢总不能去拍一个真正的、体积无限小的点光源吧这在实践中几乎不可能。这篇论文提出了一套巧妙而稳健的校准流程我结合自己的实践经验来给大家解读一下。### 3.1 校准靶标为什么不用棋盘格而用圆点阵列校准的第一步需要一个已知的、高对比度的图案。很多人第一反应是用经典的棋盘格。但论文作者选择了圆点阵列Disk Array如图2b所示。这里有个很实在的考量。棋盘格的角点corner在图像模糊时其位置会发生变化不容易精确提取。而圆点的质心centroid即使在图像散焦模糊的情况下也相对稳定更容易被准确检测到。这就好比在雾天里找路灯一个光斑的亮点比找房子的拐角要容易得多。此外棋盘格的图案主要由水平和垂直边缘主导信息不够丰富而圆点阵列在各个方向上的信息是均匀的对于校准非对称的模糊核更有利。在实际搭建系统时他们使用了一块高分辨率的LED显示屏来显示这些圆点图案用一台单反相机尼康D90搭配50mm定焦镜头在不同距离、不同光圈和焦距设置下进行拍摄。这个设置保证了图案本身是数字生成的非常精确且亮度可控。### 3.2 预处理三件套辐射、几何与强度归一化拍回来的原始图像不能直接用必须经过严格的预处理这也是很多初学者容易忽略、导致后续算法失效的关键步骤。辐射校正Radiometric Calibration即使显示屏显示的是纯色相机拍出来的图像也可能因为镜头暗角、传感器响应不均等因素而出现亮度渐变。他们通过拍摄均匀色块拟合一个二次曲面模型来建模这种综合的辐射畸变然后对后续所有图像进行校正。这一步确保了图像亮度只反映场景反射率不受硬件不均匀性的影响。放大校正与对齐Magnification Correction Alignment当改变相机焦距变焦或对焦距离时图像的放大倍率会发生变化。而DFD算法要求两幅用于比较的图像必须严格对齐对应像素代表场景中的同一点。他们通过检测圆点阵列的圆心计算出一个仿射变换矩阵将一幅图像变换到另一幅图像的坐标系下实现了亚像素级的对齐。平均强度归一化确保两幅图像的整体亮度水平一致避免亮度差异被误判为模糊差异。这些步骤看似繁琐但却是保证后续核心算法鲁棒性的基石。我自己的项目里就曾因为偷懒没做好辐射校正结果在图像边缘区域深度估计完全乱套排查了好久才找到这个原因。### 3.3 从模糊圆点中“解”出PSF一个优化问题预处理后我们从校正后的图像中心区域提取出一个个模糊的圆点图像块i_B即观测到的模糊图像。同时我们知道圆点的真实半径由显示屏像素和圆点间距推算因此可以生成一个对应的、理想的清晰圆点图像i_S。现在问题来了已知清晰的圆点图像i_S和拍到的模糊圆点图像i_B求那个“施加”在i_S上使其变模糊的卷积核h即我们想要的PSF。这本质上是一个去卷积Deconvolution问题但直接求解非常不稳定。论文将其构建为一个带约束的二次规划Quadratic Programming, QP问题来稳健求解。他们的目标函数设计得很巧妙最小化 || i_B - i_S * h ||^2 λ1 || Gx * (i_S * h) ||^2 λ2 || Gy * (i_S * h) ||^2 λ3 || R ⊙ h ||^2 约束条件 h 的所有元素 ≥ 0 非负性且所有元素之和 1 能量守恒。我来解释一下第一项|| i_B - i_S * h ||^2是最基本的重建误差要求卷积结果尽可能接近观测。第二、三项|| Gx * (i_S * h) ||^2和|| Gy * (i_S * h) ||^2引入了图像在x和y方向的梯度约束。这非常重要因为它利用了模糊会平滑图像、降低梯度的先验知识帮助稳定解避免过度拟合噪声。第四项|| R ⊙ h ||^2是空间正则化项。R是一个抛物线形的权重矩阵中心权重小边缘权重大。这强制要求PSF核在边界处趋于零符合物理事实模糊核通常是紧支的即只在局部有值。两个约束条件保证了PSF的物理合理性非负性光强不能为负和能量守恒卷积不改变总亮度。通过求解这个QP问题就能得到对应于当前拍摄距离和相机参数的那个绝对模糊核PSF。图3和图4的结果对比非常震撼用单像素点光源直接拍摄由于光源本身有尺寸、存在衍射得到的“PSF图像”很粗糙图4a, 4c而用他们的圆盘校准法估计出的PSF图4b, 4d则清晰、干净地捕捉到了光圈的形状包括非对称性和衍射效应这才是真正可靠的“模糊尺子”。4. 更强大的工具相对模糊核估计拿到了各个深度下的绝对PSF是不是就大功告成了对于某些DFD模型来说是的。但还有一种更常见、更鲁棒的DFD思路叫做相对模糊估计。它不直接估计绝对的模糊量而是估计两幅不同拍摄参数如光圈大小不同、或对焦距离不同的图像之间的模糊差异。这个差异核就是相对模糊核。### 4.1 为什么要用相对模糊核这好比测量长度有时直接读刻度绝对测量误差大不如用游标卡尺看两个刻度之间的差值相对测量来得精确。在DFD中相对模糊估计对光照变化、纹理不足等问题的鲁棒性更强。它的核心关系是较模糊的图像 i_B ≈ 较清晰的图像 i_S * 相对模糊核 h_r如果我们已知或估计出较清晰图像对应的绝对PSFh_s以及较模糊图像对应的绝对PSFh_b那么理论上相对模糊核h_r应该满足h_b ≈ h_s * h_r。### 4.2 如何校准相对模糊核论文的方法非常直接和有效。既然我们已经通过上一节的方法校准得到了在不同相机设置下例如光圈f/2.8和f/8的一系列绝对PSFh_s和h_b那么我们就可以把这些成对的(h_s, h_b)代入到一个类似的优化框架中去求解那个“连接”它们的相对模糊核h_r。具体操作时他们把h_s当作“清晰图像”h_b当作“模糊图像”套用公式5的优化框架但放松了紧支约束直接求解出h_r。图5的结果令人印象深刻对于复杂的编码光圈非对称、有孔洞的形状他们估计出的相对模糊核h_r能够精确地复现出光圈的结构特征。用这个估计出的h_r去卷积h_s得到的结果与真实的h_b几乎肉眼难辨。这意味着即使面对最复杂的非对称光圈我们也能通过校准获得高保真度的相对模糊核模型。这为后续使用基于相对模糊的DFD算法这类算法往往更高效、更稳定打下了坚实的基础。传统方法用高斯或圆盘核去近似在这里会完全丢失掉光圈的形状信息导致深度估计在边缘区域出现严重错误。5. 实战检验校准后的模糊核如何提升深度估计理论和方法说得再好最终还是要看疗效。论文通过合成数据和真实数据两个维度全面评估了这套校准流程带来的提升。### 5.1 合成数据实验可控环境下的精度验证在合成实验中他们完全掌控了“地面真相”。他们使用已知的非对称编码光圈模板根据物理公式生成了一系列不同大小、不同方向的绝对PSF和相对模糊核。然后用一张清晰的噪声纹理图分别用这些PSF进行卷积模拟出散焦模糊图像并添加了少量高斯噪声来模拟真实拍摄。深度估计的过程是一个“搜索匹配”的过程对于图像中的每个像素或小块用一系列假设深度对应的PSF或相对模糊核去尝试解释两幅输入图像之间的关系哪个假设深度下的匹配误差最小就认为该像素属于那个深度。图6a展示了使用他们校准估计出的相对模糊核进行深度估计的误差与使用真实PSF进行深度估计的误差对比。结果是令人振奋的两者性能非常接近这说明他们的校准方法几乎完美地还原了真实的模糊核使得基于校准核的深度估计精度达到了接近“开挂”知道真实核的水平。这远远超越了使用简单高斯核或对称核的传统方法。### 5.2 真实数据实验复杂场景的挑战真实实验的挑战更大。他们在实验室环境下将一个纹理平板图2c放置在不同的已知距离上从0.61米到1.5米通过改变镜头对焦距离可变焦距配置来拍摄一对对散焦图像。每一对图像都对应着事先校准好的绝对PSF对或相对模糊核。图6b展示了一个真实场景的深度估计结果剖面图。横轴是真实距离纵轴是估计距离。图中的点表示估计值的均值误差棒表示±2个标准差的范围。可以看到无论是使用校准的绝对模糊核BET还是相对模糊核估计出的深度均值都非常接近真实值对角线且不确定性范围误差棒很小。这强有力地证明了经过精密校准的模糊核能够将DFD技术的深度估计精度提升到实用级别。我在复现类似工作时也深有体会。使用未校准的简单核深度图在物体边缘、弱纹理区域就像一幅抽象画噪声大且边界扭曲。而换用校准后的核整个深度图立刻变得“扎实”起来物体轮廓清晰平面区域平滑与真实场景的几何结构高度吻合。这种提升是质的飞跃。6. 给你的项目一些实用的建议与避坑指南看完了整套流程你可能摩拳擦掌想在自己的项目里试试。别急结合我多年的实战经验这里有一些至关重要的建议和容易踩的坑希望能帮你少走弯路。### 6.1 校准环境搭建是关键校准的精度直接决定了你最终深度图的上限。论文里用的是高精度LED屏和单反如果你的应用场景是手机那最好就用目标手机和一块高质量的显示器或打印的标定板来做。稳定性相机和标定靶标必须绝对固定任何微小的震动都会在后续对齐步骤中引入灾难性误差。建议使用坚固的三脚架和云台。光照控制环境光要稳定避免闪烁如日光灯和反光。最好在暗室中进行只用显示屏本身作为光源这样辐射校正模型更准确。距离采样深度物距的采样点要在你关心的测量范围内均匀分布并且最好在反深度空间1/距离里均匀采样因为模糊半径大致与反深度呈线性关系。这样校准出的PSF序列在深度维度上才均匀。### 6.2 预处理步骤一个都不能少千万不要跳过或简化辐射、几何校正和强度归一化。我见过太多案例算法在核心部分折腾几个月没进展最后发现是预处理没做好。辐射校正即使你觉得图像看起来均匀也一定要做。用一张纯白或纯灰图片拍摄时覆盖整个视野仔细拟合校正模型。这个模型对于后续所有图像都适用。对齐这是最容易出问题的一步。对于变焦或变焦深的DFD图像之间的缩放和微小旋转必须精确校正。使用圆点阵列的质心配合稳健的仿射变换估计如RANSAC可以有效剔除误匹配点。对齐后的图像建议用肉眼检查一下关键特征是否完全重合。### 6.3 PSF估计的优化技巧求解那个QP问题时正则化权重λ1,λ2,λ3的选择很重要。没有固定公式需要根据你的图像噪声水平和模糊程度进行调优。噪声大时可以增大梯度项的权重λ1,λ2以抑制噪声放大。如果估计出的PSF边界出现震荡或拖尾可以增大空间正则化项的权重λ3。初始时可以设置λ3稍大得到一个比较平滑、紧支的初始核然后再略微减小λ3来恢复更多细节。求解后像论文中提到的用一个简单的中值滤波或小尺寸的高斯滤波对估计出的PSF进行后处理可以去除少量残余的椒盐噪声让核更干净。### 6.4 从实验室到真实世界实验室校准得再好应用到真实杂乱场景中还会遇到新问题。最大的挑战是如何为场景中每个点分配合适的PSF。你不可能为每个深度都存储一个巨大的PSF核。通常的实践是在校准阶段我们得到一组离散深度{d_i}对应的PSF核{h_i}。在实际运行时对于每个待估计的像素我们会在这些离散的h_i之间进行插值生成一个连续深度变化的PSF模型。双线性或样条插值都是常用的方法。这就需要你的校准深度点足够密以保证插值精度。最后记住DFD是被动式深度测量它依赖于场景本身的纹理。对于纯色墙面、天空等弱纹理区域它的效果会大打折扣。在实际系统中往往需要与其他深度传感技术如双目、结构光融合或者引入主动投影图案来补充纹理。校准好你的模糊核是让DFD发挥出最大威力的第一步也是最关键的一步。这套方法虽然来自2016年的论文但其核心思想——通过数据驱动的校准来绕过复杂的物理建模——至今仍然是解决许多实际视觉问题的黄金准则。希望这篇拆解能帮你真正理解并掌握这把“模糊的尺子”。