【阅读笔记】基于规则的清晰度评价值峰值搜索Development and real-time implementation of a rule-based au

一、背景结论

本论文《Development and real-time implementation of a rule-based auto-focus algorithm》开发的基于规则的方法与常用的全局搜索和二进制搜索算法进行了比较。研究表明,引入的基于规则的搜索算法实现了更少的聚焦迭代次数或更快的聚焦速度,以及更少的步数或更低的功耗。

自动聚焦同样是分为两个部分,清晰度评价、峰值搜索。

1. 清晰度评价函数

论文采用 平方梯度(Squared-Gradient) 函数作为清晰度度量:
F = ∑ i = 1 M ∑ j = 1 N ( y ( i , j + 1 ) − y ( i , j ) ) 2 F=\sum_{i=1}^{M}\sum_{j=1}^{N}(y(i,j+1)-y(i,j))^2 F=i=1∑Mj=1∑N(y(i,j+1)−y(i,j))2

2. 基于规则的峰值搜索算法(核心)

启发式规则动态调整步进电机步长,实现快速峰值搜索:

算法 平均迭代次数 平均步数 特点
全局搜索(Global Search) 基准 基准 遍历所有位置,最慢但最可靠
二分搜索(Binary Search) 中等 中等 假设单峰性,可能错过峰值
基于规则搜索(Rule-based) 显著降低 显著降低 最快,功耗最低

关键结论

  • 基于规则算法在对焦速度功耗消耗两方面均优于传统方法
  • 成功在DM310处理器上实现实时处理(满足1秒时限要求)
  • 算法能可靠找到全局峰值,避免局部最大值陷阱

二、基于规则的峰值搜索方案前置分析

本文提出了一种基于规则的峰值搜索算法,并将其与两种标准峰值搜索算法进行了比较

基于全局和二分法峰值搜索

2.1 影响自动聚焦效果的因素

1)在任何搜索流程中,步进电机都是关键考量因素。论文中列举的镜头电机存在机械间隙问题。即镜头电机的往返运动会带来一定的误差,运动精度没那么精准。

2)每次聚焦迭代的完成至少需要延迟空指令。当峰值搜索算法使用的聚焦迭代次数较少时,可实现更快的聚焦速度。减少延迟空指令次数

3)作为聚焦迭代的一部分,访问SDRAM内存是该迭代中最耗时的部分。处理部分图像数据减少计算量。

4)清晰度评价值表上,选择squared-gradient(平方梯度)
F = ∑ i = 1 M ∑ j = 1 N ( y ( i , j + 1 ) − y ( i , j ) ) 2 F=\sum_{i=1}^{M}\sum_{j=1}^{N}(y(i,j+1)-y(i,j))^2 F=i=1∑Mj=1∑N(y(i,j+1)−y(i,j))2

2.2 减少图像数据计算

清晰度评价函数使用色彩滤波器图像的亮度部分来计算的。然而,使用RGB三原色中的所有数据来计算亮度,处理速度不够快。在大多数情况下,使用绿色分量即可提供足够的对比度信息用于对焦。

2.3 聚焦区域选择

通常采用图像中心区域而非全幅图像。图6展示了本方案中覆盖图像中心区域的缩小图像尺寸。初始阶段使用图像数据的A窗口区域,若未检测到峰值,则会考虑B窗口区域的补充数据。

注:论文中相机sensor尺寸为2064×258。

三、基于规则的峰值搜索方案分析

论文将聚焦范围划分为四种搜索区域:Initial(初始区)Fine(精细区), Mid(中区), Coarse(粗区)

1)精细搜索区域对应包含全局峰值可能性较高的区域,该区域会逐个检查每个聚焦步进(即与镜头头步进电机相关的步骤)。

2)中区对应包含全局峰值可能性较低的区域,该区域每三到四个步进进行检查。

3)粗区对应包含全局峰值可能性极低的区域,该区域每七到十个步进进行检查。

所有方法均需先通过初始设置区域将步进电机移至起始位置,随后启动搜索程序,搜索示意图如下

3.2搜索过程伪代码

FCurrent:当前图像数据的锐度值

FPrevious:前一图像数据的锐度值

FMax:最大锐度值

CIteration:迭代计数器

AControl:控制区域(初始、精细、中等和粗略)

CDown:下坡计数器

相较于标准搜索方法,规则能更有效地捕捉特定镜头模块的特性

3.3 假峰

由于场景亮度波动等各类噪声的存在,清晰度评价函数在实际应用中会产生大量局部假峰值。这些假峰值可能导致搜索算法误入错误焦点区域。

论文通过a five-tap moving window卷积操作进行规避,文中没有说明具体操作。

常见的five-tap moving window是十字形 / 菱形(避免方形窗口的边缘伪影),包含中心像素 + 上下左右 4 个相邻像素(共 5 个),公式为:
I ′ ( x , y ) = w 0 ⋅ I ( x , y ) + w 1 ⋅ I ( x − 1 , y ) + I ( x + 1 , y ) + I ( x , y − 1 ) + I ( x , y + 1 ) I′(x,y)=w0⋅I(x,y)+w1⋅I(x−1,y)+I(x+1,y)+I(x,y−1)+I(x,y+1) I′(x,y)=w0⋅I(x,y)+w1⋅I(x−1,y)+I(x+1,y)+I(x,y−1)+I(x,y+1)

其中 w 0 + 4 w 1 = 1 w0+4w1=1 w0+4w1=1(保证亮度守恒)

3.4 论文结果

标准全局搜索(GS)算法能确保找到全局峰值,且不会误判局部峰值。该算法始终生成相同数量的聚焦迭代次数。

而二分法(BS)算法会根据峰值位置生成不同次数的聚焦迭代,通常比全局搜索算法更快。但由于需要反复移动来获取锐度函数的峰值位置,其所需的回弹量会导致步骤过多或功耗增加。此外,该算法存在较高的误判风险,可能检测到局部峰值而非全局峰值。

如表1所示,与标准全局搜索和二分搜索算法相比,基于规则的算法(RS)在聚焦迭代次数和步骤数方面均表现最优。


我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

我的知乎主页,欢迎访问

相关推荐
神奇小汤圆4 小时前
用 Solon AI ReActAgent 落地智能客服工单处理
人工智能
Days20504 小时前
好酷AI制作漫剧软件
人工智能
AI-好学者4 小时前
RDF对比与Neo4j性能优化
人工智能·知识图谱·neo4j·knowledge graph
美狐美颜SDK开放平台4 小时前
从RTC到AI美颜:直播APP开发中的直播美颜SDK技术架构解析
人工智能·音视频·实时音视频·美颜sdk·视频美颜sdk·美颜api
SNKXD_14 小时前
2026年AI数字人直播平台推荐,哪款更适配中小企业常态化开播?
人工智能
泉城老铁4 小时前
openclaw开发skill详细教程
人工智能
交友如交4 小时前
对于Prompt的思考:从“手写”到提示词采样、A/B Test 与自动化评测
人工智能·自动化·prompt
kisshyshy4 小时前
从0到1彻底理解流式输出:先读懂Vue的“乐高积木”,再拧开LLM的“数据水龙头”
javascript·vue.js·人工智能
饼干哥哥4 小时前
Vibe Coding 出海首月收割 100+用户爆赚美金,怎么做?
后端·架构·代码规范
ting94520005 小时前
纯技术硬核解析:Timbal AI 全栈底层架构、引擎原理与生产级 AI 应用落地实现
人工智能·架构