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