賈海彥,趙山山,張紅民
?。ㄖ貞c理工大學 電子信息與自動化學院,重慶 400054)
摘要:針對現(xiàn)有面陣CCD相機自動對焦算法精度比較低、易出現(xiàn)局部峰值的問題,提出了一種基于機器學習的自動對焦算法。采用機器學習中的決策樹算法求得兩個決策樹,用決策樹來決定鏡頭移動的方向及下一步的狀態(tài),進而確定了一個包含有峰值的范圍,然后再用爬山算法進行局部峰值搜索,從而確定焦點峰值位置。實驗結(jié)果表明,該算法把自動對焦的精確度提高了3%,且出現(xiàn)局部峰值的情況也得到了改善。
關(guān)鍵詞:自動對焦;機器學習;決策樹;爬山算法
0引言
數(shù)字成像設(shè)備針對場景目標進行快速、準確的對焦是獲取清晰圖像的重要手段[1]?,F(xiàn)有面陣CCD相機的自動對焦算法主要是對焦搜索算法,但傳統(tǒng)的對焦搜索算法精度較低且容易出現(xiàn)局部峰值。因此,近年來有不少學者對此進行了研究,2015年,陳浩等人提出了基于相鄰像素差與NRSS的自動對焦算法[2],但該算法精度相對較低;2014年,洪裕珍等人提出了一種基于改進的離焦模糊圖像清晰度評價函數(shù)的自動對焦算法[3],但還是容易出現(xiàn)局部峰值;2013年,郭惠楠等人提出一種基于光流場估計的自動對焦算法[4],但精度還是不夠。
本文針對現(xiàn)有算法的局限性,設(shè)計了機器學習搜索算法。
1算法流程
本文提出用機器學習中的決策樹算法來確定鏡頭移動的方向及下一步的狀態(tài),再利用爬山算法進一步確定峰值。
1.1算法描述
如圖1所示,鏡頭處在一個任意位置,所以算法要決定鏡頭在尋找峰值時,向近焦的方向移動還是向遠焦的方向移動[5]。本文用決策樹Tα來決定鏡頭移動的方向,決策樹Tα需要三個焦點值來確定,焦點值是通過鏡頭以雙精步向遠焦移動過程中的三個連續(xù)的鏡頭位置測量的。
鏡頭在決策樹Tα確定的方向上開始粗略搜索一個峰值。在每一步中都會用一元組(i,fi)記錄下來,其中i表示搜索中的步數(shù),fi表示相應的焦點值。一元組(0,f0)表示鏡頭初始位置。記錄的一元組用來計算第二個帶有三個標簽葉的決策樹Tβ,這三個標簽葉分別為“繼續(xù)”“返回”“成功”,每一個標簽代表一種狀態(tài)。
1.2算法詳細流程
在生成決策樹的過程中首先需要采集訓練數(shù)據(jù),然后用訓練數(shù)據(jù)來創(chuàng)建一系列的特征值,最后生成兩個決策樹[6]。
(1)數(shù)據(jù)采集及特征值的提取
在機器學習算法中,成功與否的第一個重要因素是基準圖像的數(shù)據(jù)[7],在數(shù)據(jù)采集過程中,基準圖像來自于32個不同的日常場景,包括風景、特寫、室內(nèi)、靜物等。本文采用CCD相機對基準圖像進行采集,對每一個場景都在167個不同的鏡頭位置分別采集圖像,圖像在該位置的焦點值用平方梯度算法來計算。
第二個重要因素是數(shù)據(jù)特征值的提取,特征值必須能夠區(qū)分每一組數(shù)據(jù)的不同分類[8]。兩組特征值是通過手動采集的,第一組特征值用Tα表示,該組特征值用來確定決策樹Tα(即判斷鏡頭向近焦移動還是遠焦移動) ,這組特征值是布爾量,主要包括三個焦點值與不同粒度級別之間的比較。第二組特征值用Tβ表示,用來確定決策樹Tβ(即判斷三個狀態(tài)之間的轉(zhuǎn)移),這組特征值是十進制數(shù)值,包括搜索的步數(shù)、最新兩個焦點值的斜率和最新焦點值與迄今為止最大焦點值之間的比率。對于機器學習算法,描述特征的特征值比焦點值本身更容易處理。但構(gòu)造特征值面臨的一個問題是不同相機和鏡頭有不同的鏡頭位置數(shù)Tp,這會影響采集數(shù)據(jù)的特征值。例如,如果一個相機的鏡頭位置數(shù)很少,則它的每一步之間的焦點值增長得很快。另一個問題是焦點值的測量是任意的,而且會受到場景細節(jié)和照明情況的影響,因此,為了確保通用性,每當它們被用作計算特征值和焦點值時,鏡頭的位置數(shù)都被歸為[0,1]。例如特征值F代表兩個焦點值(x,fx)、(y,fy)之間的斜率,則該特征值為:
?。?)生成決策樹
數(shù)據(jù)采集完以后就預示著機器學習的訓練數(shù)據(jù)已經(jīng)生成[910],每一個圖像的數(shù)據(jù)都對應一組特征值和代表該數(shù)據(jù)的標簽,然后分別生成決策樹Tα和決策樹Tβ。特征值是按照步驟一中的算法生成的,第一個決策樹Tα的狀態(tài)是按照一個簡單的規(guī)則自動生成的:如果在焦點搜索過程中最大峰值是x,那么x左邊的記做“近焦”,x右邊的記做“遠焦”。第二個決策樹Tβ是這樣生成的:如果搜索過程中經(jīng)過兩個或更多的峰值,則狀態(tài)為“成功”;如果在該方向上經(jīng)過四個粗步搜索仍然沒有更多的峰,則狀態(tài)為“返回”;除了以上兩種狀態(tài),剩下的狀態(tài)則是“繼續(xù)”。
圖2決策樹圖2是生成的決策樹Tα,圖中R表示采集的兩個相鄰點之間的斜率;圖3是生成的決策樹Tβ,圖中L表示該位置到迄今為止最大焦點值之間的距離,R1表示該位置到迄今為止最大焦點值之間的斜率,R2表示迄今為止最小值與最大值之間的斜率,R3表示當前最大斜率,R4表示下降的第一個半斜率。
?。?)爬山算法
當搜索進入“成功”狀態(tài)時,說明鏡頭到達的位置是目前為止焦點值最大的地方,也就是說鏡頭已經(jīng)處于峰值或最接近峰值的位置。這時,局部搜索即將開始,這里用到簡單的爬山算法[11],鏡頭根據(jù)該算法找到一個焦點值不再增加的位置,即峰值。
2實驗結(jié)果
表1是在不同場景下各算法的精確度以及出現(xiàn)局部峰值的頻率,通過對比得知,本文算法的精度得到了相對的提高且出現(xiàn)局部峰值的概率也相對減小。因為本文只有當粗略搜索輸出“成功”時才進行局部搜索,這時鏡頭已經(jīng)非??拷逯盗?,所以此搜索不會受到局部極值的影響。
3結(jié)論
本文把機器學習中的決策樹算法應用到自動對焦算法中,實驗結(jié)果表明,該算法有效提高了精度并減少了出現(xiàn)局部峰值的概率,具有一定的實用價值。
參考文獻
[1] 郭曉東,陳華旺,王晨晟,等.基于紅外圖像邊緣特征的自動對焦技術(shù)[J].光學與光電技術(shù),2013,11(2):7982.
?。?] 陳浩,陳建,葉輕舟,等.基于相鄰像素差與NRSS的自動對焦算法[J].計算機工程,2015,41(9):261265.
?。?] 洪裕珍,任國強,孫健.離焦模糊圖像清晰度評價函數(shù)的分析與改進[J].光學精密工程,2014,22(12):34013408.
[4] 郭惠楠,曹劍中,周祚峰,等.采用光流估計的數(shù)字相機自動對焦算法[J].紅外與激光工程,2013,42(12):34173422.
?。?] 馬鵬川,楊波,唐艦.一種自動對焦算法的優(yōu)化[J].光學儀器,2013,35(2):2631.