贾海彦,赵山山,张红民(重庆理工大学电子信息与自动化学院,重庆400054)
一种基于机器学习的自动对焦算法
贾海彦,赵山山,张红民
(重庆理工大学电子信息与自动化学院,重庆400054)
摘 要:针对现有面阵CCD相机自动对焦算法精度比较低、易出现局部峰值的问题,提出了一种基于机器学习的自动对焦算法。采用机器学习中的决策树算法求得两个决策树,用决策树来决定镜头移动的方向及下一步的状态,进而确定了一个包含有峰值的范围,然后再用爬山算法进行局部峰值搜索,从而确定焦点峰值位置。实验结果表明,该算法把自动对焦的精确度提高了3%,且出现局部峰值的情况也得到了改善。
关键词:自动对焦;机器学习;决策树;爬山算法
数字成像设备针对场景目标进行快速、准确的对焦是获取清晰图像的重要手段[1]。现有面阵CCD相机的自动对焦算法主要是对焦搜索算法,但传统的对焦搜索算法精度较低且容易出现局部峰值。因此,近年来有不少学者对此进行了研究,2015年,陈浩等人提出了基于相邻像素差与NRSS的自动对焦算法[2],但该算法精度相对较低;2014年,洪裕珍等人提出了一种基于改进的离焦模糊图像清晰度评价函数的自动对焦算法[3],但还是容易出现局部峰值;2013年,郭惠楠等人提出一种基于光流场估计的自动对焦算法[4],但精度还是不够。
本文针对现有算法的局限性,设计了机器学习搜索算法。
本文提出用机器学习中的决策树算法来确定镜头移动的方向及下一步的状态,再利用爬山算法进一步确定峰值。
1.1算法描述
如图1所示,镜头处在一个任意位置,所以算法要决定镜头在寻找峰值时,向近焦的方向移动还是向远焦的方向移动[5]。本文用决策树Tα来决定镜头移动的方向,决策树Tα需要三个焦点值来确定,焦点值是通过镜头以双精步向远焦移动过程中的三个连续的镜头位置测量的。
镜头在决策树Tα确定的方向上开始粗略搜索一个峰值。在每一步中都会用一元组(i,fi)记录下来,其中i表示搜索中的步数,fi表示相应的焦点值。一元组(0,f0)表示镜头初始位置。记录的一元组用来计算第二个带有三个标签叶的决策树Tβ,这三个标签叶分别为“继续”“返回”“成功”,每一个标签代表一种状态。
图1 自动对焦工作过程
1.2算法详细流程
在生成决策树的过程中首先需要采集训练数据,然后用训练数据来创建一系列的特征值,最后生成两个决策树[6]。
(1)数据采集及特征值的提取
在机器学习算法中,成功与否的第一个重要因素是基准图像的数据[7],在数据采集过程中,基准图像来自于32个不同的日常场景,包括风景、特写、室内、静物等。本文采用CCD相机对基准图像进行采集,对每一个场景都在167个不同的镜头位置分别采集图像,图像在该位置的焦点值用平方梯度算法来计算。
第二个重要因素是数据特征值的提取,特征值必须能够区分每一组数据的不同分类[8]。两组特征值是通过手动采集的,第一组特征值用Tα表示,该组特征值用来确定决策树Tα(即判断镜头向近焦移动还是远焦移动),这组特征值是布尔量,主要包括三个焦点值与不同粒度级别之间的比较。第二组特征值用Tβ表示,用来确定决策树Tβ(即判断三个状态之间的转移),这组特征值是十进制数值,包括搜索的步数、最新两个焦点值的斜率和最新焦点值与迄今为止最大焦点值之间的比率。对于机器学习算法,描述特征的特征值比焦点值本身更容易处理。但构造特征值面临的一个问题是不同相机和镜头有不同的镜头位置数Tp,这会影响采集数据的特征值。例如,如果一个相机的镜头位置数很少,则它的每一步之间的焦点值增长得很快。另一个问题是焦点值的测量是任意的,而且会受到场景细节和照明情况的影响,因此,为了确保通用性,每当它们被用作计算特征值和焦点值时,镜头的位置数都被归为[0,1]。例如特征值F代表两个焦点值(x,fx)、(y,fy)之间的斜率,则该特征值为:
(2)生成决策树
数据采集完以后就预示着机器学习的训练数据已经生成[9-10],每一个图像的数据都对应一组特征值和代表该数据的标签,然后分别生成决策树Tα和决策树Tβ。特征值是按照步骤一中的算法生成的,第一个决策树Tα的状态是按照一个简单的规则自动生成的:如果在焦点搜索过程中最大峰值是x,那么x左边的记做“近焦”,x右边的记做“远焦”。第二个决策树Tβ是这样生成的:如果搜索过程中经过两个或更多的峰值,则状态为“成功”;如果在该方向上经过四个粗步搜索仍然没有更多的峰,则状态为“返回”;除了以上两种状态,剩下的状态则是“继续”。
图2 决策树
图2是生成的决策树Tα,图中R表示采集的两个相邻点之间的斜率;图3是生成的决策树Tβ,图中L表示该位置到迄今为止最大焦点值之间的距离,R1表示该位置到迄今为止最大焦点值之间的斜率,R2表示迄今为止最小值与最大值之间的斜率,R3表示当前最大斜率,R4表示下降的第一个半斜率。
(3)爬山算法
当搜索进入“成功”状态时,说明镜头到达的位置是目前为止焦点值最大的地方,也就是说镜头已经处于峰值或最接近峰值的位置。这时,局部搜索即将开始,这里用到简单的爬山算法[11],镜头根据该算法找到一个焦点值不再增加的位置,即峰值。
图3 决策树
表1是在不同场景下各算法的精确度以及出现局部峰值的频率,通过对比得知,本文算法的精度得到了相对的提高且出现局部峰值的概率也相对减小。因为本文只有当粗略搜索输出“成功”时才进行局部搜索,这时镜头已经非常靠近峰值了,所以此搜索不会受到局部极值的影响。
表1 不同算法聚焦参数对比表
本文把机器学习中的决策树算法应用到自动对焦算法中,实验结果表明,该算法有效提高了精度并减少了出现局部峰值的概率,具有一定的实用价值。
参考文献
[1]郭晓东,陈华旺,王晨晟,等.基于红外图像边缘特征的自动对焦技术[J].光学与光电技术,2013,11(2):79-82.
[2]陈浩,陈建,叶轻舟,等.基于相邻像素差与NRSS的自动对焦算法[J].计算机工程,2015,41(9):261-265.
[3]洪裕珍,任国强,孙健.离焦模糊图像清晰度评价函数的分析与改进[J].光学精密工程,2014,22(12):3401-3408.
[4]郭惠楠,曹剑中,周祚峰,等.采用光流估计的数字相机自动对焦算法[J].红外与激光工程,2013,42(12):3417-3422.
[5]马鹏川,杨波,唐舰.一种自动对焦算法的优化[J].光学仪器,2013,35(2):26-31.
[6]HANAY Y S,ARAKAWA S,MURATA M.Network topology selection with multistate neural memories[J].Expert Systems with Applications,2015(42):3219-3226.
[7]Chen Rudi,BEEK P V.Improving the accuracy and low-light performance of contrast-based autofocus using supervised machine learning[J].Pattern Recognition Letters,2015,56(C):30-37.
[8]AMIN M J,RIZA N A.Active depth from defocus system using coherent illum ination and a no moving parts camera[J].Optics Communications,2015,359:135-145.
[9]梁野,郭宁宁,李碧获,等.基于机器学习的网络媒体热点话题预测方法研究与实现[J].微型机与应用,2014,33(15):62-64.
[10]张颖莹,李艳红.基于Web挖掘的新股破发原因探究与预测[J].微型机与应用,2015,34(10):58-60.
[11]张艳超,赵建,韩希珍,等.SUSAN清晰度评价函数在自动对焦中的应用[J].中国光学,2014,7(2):240-244.
贾海彦(1990 -),女,硕士研究生,主要研究方向:图像处理。
赵山山(1990 -),男,硕士研究生,主要研究方向:信号与信息处理。
张红民(1970 -),男,博士,教授,主要研究方向:图像处理。
引用格式:贾海彦,赵山山,张红民.一种基于机器学习的自动对焦算法[J].微型机与应用,2016,35(10):7-8,11.
An auto-focus algorithm based on machine learning
Jia Haiyan,Zhao Shanshan,Zhang Hongmin
(School of Electronic Information and Automation,Chongqing University of Technology,Chongqing 400054,China)
Abstract:For the problem that existing area CCD camera autofocus algorithm has low accuracy and is easy to appear local peak,this paper presents an auto-focus algorithm based on machine learning.It uses decision tree algorithm in the machine learning to obtain two decision trees,which determ ines the direction and the next step of lens and determines the range of peak.Then the local peak search is performed by using the hill-climbing algorithm to determ ine the focus peak position.Experimental results show that the accuracy of the auto-focus is improved by 3%and the situation of the local peak has also been reduced.
Key words:auto-focus;machine learning;decision tree;hill-climbing
作者简介:
收稿日期:(2016-01-24)
中图分类号:TP212.14
文献标识码:A
DOI:10.19358 /j.issn.1674-7720.2016.09.003