050、AF自动对焦技术:CDAF、PDAF、激光与ToF的融合与AI赋能

📅 2026/7/17 14:59:17
050、AF自动对焦技术:CDAF、PDAF、激光与ToF的融合与AI赋能
050、AF自动对焦技术CDAF、PDAF、激光与ToF的融合与AI赋能一、一个让我失眠三天的对焦问题2019年夏天某旗舰机项目进入试产阶段。产线反馈暗光下对焦成功率只有67%用户拍完照片放大一看焦点落在背景墙上人脸是糊的。更诡异的是同样的场景实验室复现率不到30%。产线经理拍桌子说“你们算法有问题”算法团队说“硬件良率不行”模组厂说“我们出货都测过”。我带着示波器蹲了三天产线发现一个规律当环境照度低于5lux时PDAF的相位检测像素输出信噪比急剧下降算法误判为“已合焦”的比例飙升。更致命的是激光辅助对焦模块的发射功率在产线老化测试后衰减了15%但产线测试用例只覆盖了常温场景。这个案例让我意识到自动对焦从来不是单一技术的比拼而是一场传感器、算法、光学、机械、产线校准的协同战役。今天这篇笔记我把这些年踩过的坑和沉淀下来的融合架构思路掰开了讲。二、CDAF最朴素的“爬山”算法但别小看它对比度检测自动对焦CDAF的原理很简单在焦平面上移动镜头计算每一帧图像的对比度通常用拉普拉斯算子或Sobel算子找到对比度最大的位置。这就像盲人爬山——摸到坡度最陡的地方就是山顶。但实际工程里这个“爬山”过程全是坑。第一个坑对比度曲线的“伪峰”。在纹理稀疏的区域比如白墙、天空对比度曲线可能平坦得像死海算法会在噪声中随机跳动。我见过一个项目算法工程师把搜索步长设成0.5μm结果在平坦区域来回震荡了200ms才放弃——用户按快门时已经错过了表情。这里踩过坑CDAF的搜索策略必须做“粗搜精搜”两级。粗搜用大步长比如10μm快速定位峰值区域精搜用小步长1-2μm精确锁定。但粗搜的步长不能太大否则会跳过真正的峰值。一个经验值步长不超过景深的1/3。对于1/2.3英寸传感器、F1.8光圈景深大约30μm粗搜步长取8-10μm比较安全。第二个坑运动物体的干扰。如果画面里有行人走过对比度会突然跳变算法可能误以为找到了新峰值。别这样写直接对全图计算对比度。正确做法是分区域计算给中心区域更高权重或者用运动检测模块光流法或帧差法屏蔽运动区域。第三个坑低照度下的信噪比问题。当ISO飙到3200以上图像噪声会淹没对比度信号。我见过一个方案在暗光下自动切换到“高增益模式”把对比度计算的阈值降低50%同时增加帧平均3帧滑动平均。代价是对焦速度从100ms降到180ms但总比对不上焦强。三、PDAF相位检测的“快”与“痛”PDAF的原理是在传感器上集成一对相位检测像素左像素和右像素通过比较两个像素的相位差来估算离焦方向和距离。这就像人的双眼——左眼和右眼看到的物体位置差异就是深度信息。PDAF的“快”是真实的一次曝光就能算出离焦量不需要像CDAF那样来回扫描。在光线充足时PDAF可以在30ms内完成对焦而CDAF通常需要100-200ms。但PDAF的“痛”也是真实的。第一个痛相位检测像素的“串扰”问题。在传感器上相位检测像素是“半遮光”的——左像素只接收光线的一半右像素只接收另一半。这导致相位检测像素的灵敏度比普通像素低30%-50%。在暗光下相位检测像素的信噪比急剧下降计算出的相位差可能完全错误。这里踩过坑某项目在暗光下发现PDAF对焦成功率从95%掉到40%。排查发现相位检测像素的增益是普通像素的2倍但噪声也被放大了2倍。最终方案是在暗光下照度10lux强制切换到CDAF或者用“PDAFCDAF混合模式”——先用PDAF粗定位再用CDAF精调。第二个痛相位检测像素的“校准”问题。每个相位检测像素都有制造偏差导致即使合焦时左右像素的输出也不完全相等。这需要产线做“相位校准”——在标准光源下记录每个相位检测像素的偏移量写入OTP一次性可编程存储器。别这样写认为校准一次就一劳永逸。实际上温度变化、镜头老化、甚至手机跌落都会改变校准参数。我见过一个方案每次开机时用无穷远场景比如远处的山做一次“在线校准”更新偏移量。代价是开机时间增加200ms但对焦精度提升了一个数量级。第三个痛PDAF的“场景依赖”问题。相位检测需要纹理——如果场景是纯色比如白墙、蓝天相位检测像素的输出几乎相同无法计算相位差。这时PDAF会“失明”必须回退到CDAF。四、激光与ToF主动测距的“救场”角色当环境光不足或场景纹理稀疏时主动测距技术就派上用场了。激光辅助对焦通常使用VCSEL垂直腔面发射激光器发射850nm或940nm的红外激光通过飞行时间ToF或三角测距法计算距离。激光的优点是精度高毫米级缺点是只能测单点距离且对黑色物体吸光或镜面反射效果差。这里踩过坑某项目在黑色皮革表面测试激光对焦发现测距误差达到30%。原因是黑色皮革吸收了90%以上的激光能量回波信号太弱。解决方案增加激光发射功率但要注意人眼安全或者用“多脉冲累加”技术——发射10次激光累加回波信号提高信噪比。ToF传感器分为iToF间接飞行时间和dToF直接飞行时间。iToF通过测量发射光和接收光的相位差来计算距离dToF直接测量光脉冲的飞行时间。ToF的优点是能生成深度图不是单点而是整个画面的深度信息缺点是分辨率低通常QVGA级别且受环境光干扰严重。别这样写认为ToF可以完全替代PDAF。实际上ToF在强光下比如户外阳光会饱和测距误差可能超过50%。一个合理的融合策略是在暗光下50lux启用ToF辅助在强光下关闭ToF依赖PDAF。五、融合架构让四种技术“打配合”单一技术都有短板融合才是王道。我主导设计的融合架构如下第一层场景分类器。在每一帧开始对焦前先做场景分类。输入环境照度、图像纹理复杂度、运动检测结果、激光/ToF的测距置信度。输出当前场景类型明亮纹理、暗光纹理、暗光无纹理、运动场景等。第二层技术选择器。根据场景类型选择主对焦技术和辅助对焦技术明亮纹理场景主用PDAFCDAF做精调激光/ToF关闭省电。暗光纹理场景PDAFCDAF混合激光辅助测距做“距离约束”比如限制搜索范围。暗光无纹理场景主用ToF深度图PDAF和CDAF作为备用如果ToF置信度低。运动场景主用PDAF速度快CDAF关闭避免震荡激光/ToF辅助预测运动轨迹。第三层置信度仲裁。每种技术都输出一个“置信度分数”0-1最终对焦位置由加权平均决定。权重根据历史表现动态调整——比如PDAF连续3帧置信度低于0.5则自动降低其权重增加CDAF的权重。这里踩过坑权重调整不能太激进。某项目把PDAF的权重设为0.9CDAF为0.1结果PDAF在暗光下连续误判CDAF的权重被压制到几乎为零导致对焦失败。最终方案每个技术的权重下限设为0.2确保即使表现最差的技术也有发言权。六、AI赋能从“规则驱动”到“数据驱动”传统融合架构依赖人工设计的规则比如“照度10lux时切换到CDAF”但规则总有边界。AI的引入让对焦系统学会了“自己找规律”。第一个AI应用端到端对焦预测。输入当前帧图像、上一帧对焦位置、激光/ToF测距值。输出下一帧的镜头目标位置。训练数据用高精度激光测距仪标注的“真实合焦位置”。模型轻量级CNNMobileNetV2变体参数量控制在1M以内推理时间5ms。别这样写认为AI可以完全替代传统算法。实际上AI模型在训练集覆盖的场景上表现很好但在未见过的场景比如水下、雾天可能完全失效。我的经验AI作为“辅助决策”最终输出由AI和传统算法加权融合。第二个AI应用对焦失败检测。用一个小型分类器比如3层全连接网络输入对焦过程中的对比度曲线、相位差序列、激光测距值。输出当前对焦是否成功二分类。如果检测到失败立即触发“重新对焦”流程而不是等用户发现照片模糊。这里踩过坑AI模型的过拟合问题。某项目用实验室数据训练的对焦失败检测模型在产线测试中误报率高达30%。原因是实验室的“失败样本”都是人为制造的比如故意遮挡镜头而产线的“失败样本”是真实的硬件偏差。解决方案用产线数据做“领域自适应”微调或者用“对抗训练”增强模型的泛化能力。第三个AI应用场景自适应参数调优。传统对焦参数搜索步长、增益、阈值等是固定的但不同场景需要不同参数。AI模型可以实时预测最优参数组合。比如在“夜景人像”场景下自动降低PDAF的置信度阈值增加激光辅助的权重同时把CDAF的搜索步长从10μm降到5μm。七、产线校准对焦系统的“最后一公里”再好的算法如果产线校准不到位都是纸上谈兵。第一个校准项PDAF相位校准。在标准光源D65500lux下用均匀白板作为目标记录每个相位检测像素的偏移量。注意校准环境必须稳定温度波动1℃否则校准数据会漂移。这里踩过坑某工厂在产线校准PDAF时用了普通的LED灯管结果发现校准数据在下午和上午差了5%。原因是LED灯管的色温随时间变化从4000K漂到4500K影响了相位检测像素的响应。最终方案用色温稳定的卤素灯作为校准光源。第二个校准项激光/ToF距离校准。在产线上放置多个距离标靶10cm、30cm、50cm、1m、2m记录激光/ToF的测距值拟合出“测距值-真实距离”的映射曲线。注意标靶的表面材质要统一建议用18%灰卡否则不同材质的反射率差异会导致校准偏差。第三个校准项无限远对焦校准。用平行光管模拟无限远场景调整镜头位置使PDAF输出为零即合焦。这个校准决定了手机拍远景时的清晰度。别这样写认为一次校准就够了。实际上镜头在运输和组装过程中可能发生微小的位移建议在产线做“二次校准”——第一次在模组组装后第二次在整机组装后。八、个人经验性建议不要迷信单一技术。PDAF快但暗光不行CDAF稳但慢激光/ToF准但受环境干扰。融合才是王道但融合的“度”需要根据产品定位来定——旗舰机可以堆四个传感器中端机可能只有PDAFCDAF。产线校准比算法更重要。我见过太多项目算法团队花了三个月优化算法结果产线校准误差导致对焦精度下降50%。建议在项目初期就引入产线校准团队制定校准规范和验收标准。AI是辅助不是替代。AI模型在训练集上表现再好也抵不过真实世界的长尾场景。我的做法AI模型作为“建议者”传统算法作为“决策者”最终输出由两者加权融合。权重根据AI模型的置信度动态调整。对焦速度不是越快越好。用户感知到的“对焦体验”包括速度、精度、稳定性。如果对焦太快但精度不够比如PDAF在暗光下误判用户会觉得“手机对焦不准”。如果对焦太慢但精度高比如CDAF在暗光下用户会觉得“手机反应慢”。平衡点在哪里我的经验从按下快门到合焦的时间控制在150-200ms用户感知最好。留好调试接口。在量产阶段产线可能会遇到各种奇怪的问题比如某批次模组PDAF校准数据异常。建议在固件中预留“调试模式”可以通过串口或无线网络实时查看对焦过程中的所有中间数据对比度曲线、相位差序列、激光测距值、AI置信度等。这能帮你快速定位问题而不是靠猜。关注温度漂移。镜头材料的折射率随温度变化导致合焦位置漂移。在-20℃到60℃的温度范围内漂移量可能达到20-30μm。建议在固件中集成“温度补偿表”——根据温度传感器的读数自动调整对焦目标位置。最后说一句自动对焦这个领域没有银弹。每一个“完美”的方案背后都是无数个失眠的夜晚和产线蹲点的汗水。希望这篇笔记能帮你少走一些弯路。