自動聚焦是一體化攝像機研究的關(guān)鍵技術(shù)之一,本文介紹了一體化攝像機光學(xué)鏡頭中變倍電機和聚焦電機的控制原理,實現(xiàn)了步進電機初始位置檢測、變焦曲線的跟蹤,為了適應(yīng)不同物距變倍跟蹤,本文實現(xiàn)了灰度差分自動聚焦算法,根據(jù)當(dāng)前圖像的聚焦函數(shù)值并采用爬山搜索策略實現(xiàn)了圖像的自動聚焦。整個控制系統(tǒng)采用VHDL描述,自制了圖像采集板,在Xilinx XUPV5-LX110T FPGA開發(fā)板上驗證。
1 引言
一體化攝像機指內(nèi)置光學(xué)鏡頭,具有變倍、自動聚焦功能的攝像機,其結(jié)構(gòu)小巧、使用方便、監(jiān)控范圍廣,已廣泛應(yīng)用在教學(xué)視頻展臺、視頻監(jiān)控等領(lǐng)域。變焦控制可實現(xiàn)圖像的變倍、自動聚焦,是一體化攝像機中的關(guān)鍵技術(shù)之一。步進電機可將電脈沖信號轉(zhuǎn)換成角位移,每接收一個脈沖信號就可驅(qū)動步進電機轉(zhuǎn)動一個固定角度,實現(xiàn)物體的準(zhǔn)確定位,通過控制脈沖的頻率可控制電機轉(zhuǎn)動的速度,步進電機已廣泛應(yīng)用于高精度控制系統(tǒng)中。一體化攝像機光學(xué)鏡頭中包含變倍步進電機與聚焦步進電機,變倍電機轉(zhuǎn)動時,為使圖像聚焦清晰,聚焦電機也應(yīng)隨之轉(zhuǎn)動,具體轉(zhuǎn)動步數(shù)與物距有關(guān),具體參數(shù)可由鏡頭生產(chǎn)廠家提供的變焦跟蹤曲線獲得。為了適應(yīng)不同物距的清晰成像,變倍跟蹤結(jié)束后,還應(yīng)進行自動聚焦,以顯示清晰的圖像。
2 步進電機工作原理
本文選用的光學(xué)鏡頭具有變倍和聚焦兩個步進電機,光學(xué)變焦22倍,步距角18°,每步位移量0.02mm,轉(zhuǎn)速600~800pps,采用2-2相驅(qū)動勵磁方式,驅(qū)動脈沖變化如表1所示。
表1 步進電機驅(qū)動脈沖
若驅(qū)動脈沖按1—》2—》3—》4—》1方向循環(huán)發(fā)出,則步進電機帶動的鏡片朝靠近圖像傳感器方向移動,反之朝遠(yuǎn)離圖像傳感器方向移動,從而可通過產(chǎn)生不同的驅(qū)動脈沖控制電機的轉(zhuǎn)動步數(shù)及轉(zhuǎn)動方向。
由于每次系統(tǒng)掉電時,步進電機的停止位置不固定,所以每次系統(tǒng)工作時,首先要進行步進電機位置的判斷并驅(qū)動步進電機轉(zhuǎn)到某一固定位置,如一倍放大位置。步進電機中用電機位置檢測器來判斷電機的位置,位置檢測器電路如圖1所示。其工作原理為,當(dāng)電機驅(qū)動的檢測器運動到發(fā)光二極管與光敏三極管之間時,阻擋二極管發(fā)出的光線,則三極管處于截止?fàn)顟B(tài),輸出信號為高電平;當(dāng)檢測器離開中間位置時,發(fā)光二極管使三極管導(dǎo)通,則輸出信號為低電平。由于二極管和三極管位置固定,所以輸出信號電平跳變位置是固定的。
變倍電機向靠近傳感器方向轉(zhuǎn)動時,則圖像放大,同時聚焦電機也應(yīng)轉(zhuǎn)動一定步數(shù)以得到清晰圖像,變倍電機與聚焦電機對應(yīng)的步數(shù)坐標(biāo)稱為變倍跟蹤曲線,不同物距對應(yīng)不同的變倍跟蹤曲線。由于機械誤差,同一型號的電機的變倍跟蹤曲線稍有差異,為了適應(yīng)不同電機需求,變倍放大后,聚焦電機根據(jù)變倍跟蹤曲線對應(yīng)轉(zhuǎn)動一定步數(shù)后,再進行一次自動聚焦,便可得到清晰圖像,同時也可適應(yīng)不同物距需求。
3 系統(tǒng)設(shè)計
3.1 系統(tǒng)設(shè)計及工作原理
系統(tǒng)結(jié)構(gòu)如圖2所示,圖像傳感器將采集的視頻圖像輸入到FPGA, FPGA輸出變倍電機和聚焦電機驅(qū)動信號,并經(jīng)H橋放大后輸出到光學(xué)鏡頭,同時,光學(xué)鏡頭將變倍電機和聚焦電機的位置檢測信號反饋輸出到FPGA中,用以檢測當(dāng)前電機位置。
系統(tǒng)上電后,F(xiàn)PGA判斷光學(xué)鏡頭返回的變倍電機位置檢測信號和聚焦電機返回的檢測信號,若檢測信號為低電平則驅(qū)動電機向靠近圖像傳感器方向轉(zhuǎn)動,直至檢測信號為高電平,在電平跳變處停止,同理,若檢測信號為高電平,則驅(qū)動電機向遠(yuǎn)離傳感器方向轉(zhuǎn)動,直至檢測信號為低電平,在電平跳變處停止,以上則完成對電機的初始化。初始化結(jié)束后,則驅(qū)動電機轉(zhuǎn)動到一固定放大倍數(shù)位置。電機變倍時,變倍電機轉(zhuǎn)動一定步數(shù),同時驅(qū)動聚焦電機轉(zhuǎn)動對應(yīng)步數(shù),具體步數(shù)可根據(jù)變倍跟蹤曲線獲得,變倍結(jié)束后,F(xiàn)PGA計算當(dāng)前場圖像的高頻分量,判斷當(dāng)前圖像的清晰度,并采用爬山搜索策略驅(qū)動聚焦電機,以實現(xiàn)圖像的自動聚焦,從而可保證每次變倍結(jié)束后得到清晰的圖像。
3.2 FPGA內(nèi)部功能實現(xiàn)
根據(jù)現(xiàn)代EDA設(shè)計采用的“自頂向下”的設(shè)計方法,系統(tǒng)功能分為以下功能模塊:電機初始化、變倍跟蹤、搜索、自動聚焦算法、系統(tǒng)控制、電機驅(qū)動等,如圖3所示,下面將詳細(xì)介紹各模塊的實現(xiàn)方法。
3.2.1電機初始化
該模塊功能是實現(xiàn)電機初始位置的判斷,并驅(qū)動電機轉(zhuǎn)動到某一固定位置。系統(tǒng)上電后,根據(jù)電機位置檢測器返回的狀態(tài)信號判斷當(dāng)前電機的運動位置,若返回低電平則驅(qū)動電機向圖像傳感器方向移動,直至檢測信號為高電平,在檢測信號跳變時,停止電機轉(zhuǎn)動;若檢測信號為高電平,則驅(qū)動電機向遠(yuǎn)離傳感器方向移動,直至檢測信號為低電平,在檢測信號跳變時,停止電機轉(zhuǎn)動,由于檢測信號跳變位置是固定的,所以系統(tǒng)上電后可驅(qū)動電機轉(zhuǎn)動到預(yù)設(shè)置的固定位置。
3.2.2變倍跟蹤
該模塊實現(xiàn)變倍電機的驅(qū)動,并根據(jù)變倍跟蹤曲線確定聚焦電機對應(yīng)的轉(zhuǎn)動步數(shù)。根據(jù)變倍跟蹤曲線,將變倍電機轉(zhuǎn)動范圍平均分成40段,由計數(shù)器1-40表示當(dāng)前電機位置,當(dāng)變倍電機由k轉(zhuǎn)動到(k+1)時,則變倍電機朝傳感器方向轉(zhuǎn)動Z(k+1)-Z(k)步長,若F(k+1)》=F(k),則聚焦電機朝傳感器方向轉(zhuǎn)動F(k+1)-F(k)步長,若F(k+1),則聚焦電機向遠(yuǎn)離傳感器方向轉(zhuǎn)動F(k)-F(k+1)步長,其中Z(k),F(xiàn)(k)、分別表示k點對應(yīng)的變倍電機和聚焦電機在變倍跟蹤曲線上的坐標(biāo);當(dāng)變倍電機由k轉(zhuǎn)動到k-1時,則變倍電機朝遠(yuǎn)離傳感器方向轉(zhuǎn)動Z(k)-Z(k-1)步長,若F(k-1)《=F(k),則聚焦電機朝遠(yuǎn)離傳感器方向轉(zhuǎn)動F(k)-F(k-1)步長,若F(k-1)》F(k),則聚焦電機朝傳感器方向轉(zhuǎn)動F(k-1)-F(k)步長。
3.2.3自動聚焦算法實現(xiàn)
本文采用灰度差分法計算圖像的聚焦評價函數(shù),算法描述為:
其中,f(x,y)表示第x行,第y列像素的亮度值
該算法實現(xiàn)時,利用FPGA內(nèi)的BlockRAM作為行緩存,緩存四行數(shù)據(jù),實現(xiàn)內(nèi)部功能模塊如圖4所示。
讀寫控制模塊控制四個行緩存中數(shù)據(jù)的讀寫,每場圖像第一行數(shù)據(jù)寫入到行緩存1,第二行數(shù)據(jù)寫入到行緩存2,第三行數(shù)據(jù)寫入到行緩存3,第四行數(shù)據(jù)寫入到行緩存4,同時,將行緩存1、2、3中數(shù)據(jù)讀出到算法實現(xiàn)模塊,第五行數(shù)據(jù)寫入到行緩存1,同時,將行緩存2、3、4中數(shù)據(jù)讀出到算法實現(xiàn)模塊,按此讀寫規(guī)律進行直至一場圖像結(jié)束。算法實現(xiàn)模塊接收從行緩存中讀出的數(shù)據(jù),并將每個行緩存讀出的數(shù)據(jù)賦值給內(nèi)部相連的三個寄存器,則第二行中間寄存器對應(yīng)算法中的f(x,y)像素,根據(jù)聚焦評價函數(shù)值公式即可求出當(dāng)前場的聚焦函數(shù)值,并將當(dāng)前場圖像的聚焦函數(shù)值與前一場圖像的聚焦函數(shù)值相比較,如當(dāng)前場圖像的聚焦函數(shù)值大于前一場圖像聚焦函數(shù)值,則輸出比較信號為高電平,表示當(dāng)前場比前一場圖像清晰,反之輸出低電平,表示當(dāng)前場圖像比前一場圖像模糊。
3.2.4搜索實現(xiàn)
該模塊根據(jù)自動聚焦算法模塊輸出的相鄰兩場圖像聚焦函數(shù)值的比較結(jié)果,來控制聚焦電機的轉(zhuǎn)動方向,當(dāng)輸出圖像的聚焦函數(shù)值最大時停止轉(zhuǎn)動,則實現(xiàn)圖像的自動聚焦。
該模塊具體實現(xiàn)過程為,變倍結(jié)束后,在圖像場同步信號的消隱期間,使聚焦電機朝預(yù)定義的固定方向轉(zhuǎn)動一步,在下一場圖像場同步的下降沿采集自動聚焦算法模塊輸出的聚焦函數(shù)值比較結(jié)果信號,若該信號為高電平,則表示當(dāng)前圖像比前一場圖像清晰,則電機轉(zhuǎn)動方向正確,繼續(xù)向該方向轉(zhuǎn)動一步,同理,在下一場圖像的場同步下降沿采集聚焦函數(shù)值比較結(jié)果信號,若為高電平,則繼續(xù)向該方向轉(zhuǎn)動,若為低電平,則向相反方向轉(zhuǎn)動一步后停止電機轉(zhuǎn)動,則自動聚焦結(jié)束;若第一次采集的聚焦函數(shù)值比較結(jié)果信號為低電平,則表明首次設(shè)定的轉(zhuǎn)動方向錯誤,則向相反方向轉(zhuǎn)動兩步后,在下一場圖像的場同步下降沿判斷聚焦函數(shù)值比較結(jié)果信號,若為高電平,則繼續(xù)沿該方向轉(zhuǎn)動,若為低電平,則向相反方向轉(zhuǎn)動一步后停止電機轉(zhuǎn)動,則自動聚焦結(jié)束。
3.2.5系統(tǒng)控制實現(xiàn)
該模塊主要對初始化模塊、變倍跟蹤模塊、搜索模塊輸出的變倍電機和聚焦電機的驅(qū)動信號(包括轉(zhuǎn)動方向、步數(shù))進行選擇輸出,系統(tǒng)上電后,首先是初始化模塊產(chǎn)生的驅(qū)動信號有效,初始化結(jié)束后,其它模塊才可正常工作,圖像變倍時,變倍跟蹤模塊輸出的電機驅(qū)動信號有效,變倍結(jié)束后,搜索模塊產(chǎn)生的電機驅(qū)動信號有效。
3.2.6電機驅(qū)動模塊
該模塊根據(jù)系統(tǒng)控制模塊輸出的電機驅(qū)動信號(轉(zhuǎn)向,步長)來產(chǎn)生對應(yīng)的A+、A-、B+、B-電機驅(qū)動脈沖。該模塊內(nèi)部為模值為4的計數(shù)器,輸入轉(zhuǎn)向控制信號為高電平時,該計數(shù)器加法計數(shù),轉(zhuǎn)向為低電平時,計數(shù)器減法計數(shù),根據(jù)輸入的步長控制輸出驅(qū)動脈沖的持續(xù)時間長度,計數(shù)器值對應(yīng)不同的驅(qū)動脈沖信號,則可產(chǎn)生不同方向、不同步長的電機驅(qū)動脈沖。
4結(jié)論
由于FPGA的并行處理特性,本文設(shè)計的變焦控制系統(tǒng)可同時控制變倍電機和聚焦電機,提高了變倍跟蹤速度,論文采用的灰度差分算法對整場圖像計算高頻分量,能適應(yīng)不同圖像,較好地反映圖像的離焦極性,提高自動聚焦準(zhǔn)的確性。該設(shè)計在Xilinx XUPV5-LX110T FPGA開發(fā)板上實現(xiàn),本文設(shè)計的變焦控制系統(tǒng)可應(yīng)用于一體化攝像機的研發(fā),具有很好的商業(yè)價值。
附圖1:實驗使用的22倍光學(xué)鏡頭
附圖2:實驗使用的開發(fā)平臺
評論