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