張 博,張 剛,程永強
(太原理工大學 信息工程學院,山西 太原 030024)
一體化攝像機內置光學鏡頭,具有變倍、自動聚焦功能,其結構小巧、使用方便、監控范圍廣,已廣泛應用于教學視頻展臺、視頻監控等領域。變焦控制可實現圖像的變倍跟蹤、自動聚焦,是一體化攝像機設計中的關鍵技術之一。步進電機可將電脈沖信號轉換成角位移[1-2],每接收一個脈沖信號就可驅動步進電機轉動一個固定角度,實現物體的準確定位,通過控制脈沖的頻率可控制電機轉動的速度,步進電機已廣泛應用于高精度控制系統中。一體化攝像機光學鏡頭中包含變倍步進電機與聚焦步進電機,變倍電機轉動時,為使圖像聚焦清晰,聚焦電機也應隨之轉動,具體轉動步數與物距有關,具體參數可由鏡頭生產廠家提供的變焦跟蹤曲線獲得。為了適應不同物距的清晰成像,變倍跟蹤結束后,還應進行自動聚焦,以顯示清晰的圖像。
圖像聚焦程度與其高頻分量有關,圖像聚焦時,其包含的高頻分量最大,圖像最清晰,通常采用聚焦評價函數來描述圖像的清晰程度。常用的聚焦評價函數主要有高頻分量法、平滑法、閾值積分法、灰度差分法、拉普拉斯像能函數等[3-5]。為了提高聚焦速度,本文采用改進的灰度差分法實時計算每場圖像的聚焦函數值,判斷當前圖像清晰與否,采用爬山搜索策略,實現圖像的快速自動聚焦。快速自動聚焦的實現與變倍跟蹤曲線的精度、自動聚焦算法的優劣、搜索策略、電機驅動速度等因素有關。
由于FPGA器件的可并行處理能力及其在系統編程中的靈活性,其應用越來越廣泛,同時隨著微處理器、專用邏輯器件以及DSP算法以IP Core的形式嵌入到FPGA中[6],FPGA實現的功能越來越強。筆者設計的變焦控制系統采用VHDL語言描述,在Xilinx Virtex-5 FPGA開發板上驗證。
本文選用的光學鏡頭具有變倍和聚焦兩個步進電機,光學變焦22倍,步距角18°,每步位移量0.02 mm,脈沖輸入速度(即轉速)為 600~800 pulse/s(脈沖/秒),采用2-2相驅動勵磁方式,驅動脈沖變化如表1所示。

表1 步進電機驅動脈沖
由于每次系統掉電時,步進電機的停止位置不固定,所以每次系統工作時,首先要進行步進電機位置的判斷并驅動步進電機轉到某一固定位置,如一倍放大位置。步進電機中用電機位置檢測器來判斷電機的位置,位置檢測器電路如圖1所示。其工作原理為:當電機驅動的檢測器運動到發光二極管與光敏三極管之間時,阻擋二極管發出的光線,則三極管處于截止狀態,輸出信號為高電平;當檢測器離開中間位置時,發光二極管使三極管導通,則輸出信號為低電平。由于二極管和三極管位置固定,所以輸出信號電平跳變位置是固定的。
變倍電機向靠近傳感器方向轉動時,圖像放大,同時聚焦電機也應轉動一定步數以得到清晰圖像,變倍電機與聚焦電機對應的步數坐標稱為變倍跟蹤曲線,不同物距對應不同的變倍跟蹤曲線。由于機械誤差,同一型號的電機的變倍跟蹤曲線稍有差異,為了適應不同電機需求,變倍放大后,聚焦電機根據變倍跟蹤曲線對應轉動一定步數后,再進行一次自動聚焦,便可得到清晰圖像,同時也可適應不同物距需求。

圖1 電機位置檢測電路
系統結構如圖2所示,圖像傳感器將采集到的視頻圖像輸入到FPGA,FPGA輸出變倍電機和聚焦電機驅動信號,并經H橋放大后輸出到光學鏡頭,同時,光學鏡頭將變倍電機和聚焦電機的位置檢測信號反饋輸出到FPGA中,用以檢測當前電機位置。
系統上電后,FPGA判斷光學鏡頭返回的變倍電機位置檢測信號和聚焦電機返回的檢測信號,若檢測信號為低電平則驅動電機向靠近圖像傳感器方向轉動,直至檢測信號為高電平,在電平跳變處停止。同理,若檢測信號為高電平,則驅動電機向遠離傳感器方向轉動,直至檢測信號為低電平在電平跳變處停止,以上則完成對電機的初始化。初始化結束后,驅動電機轉動到一個固定放大倍數位置。電機變倍時,變倍電機轉動一定步數,同時驅動聚焦電機轉動對應步數,具體步數可根據變倍跟蹤曲線獲得。變倍結束后,FPGA計算當前場圖像的高頻分量,判斷當前圖像的清晰度,并采用爬山搜索策略驅動聚焦電機,以實現圖像的自動聚焦,從而可保證每次變倍結束后得到清晰的圖像。

圖2 系統結構圖
根據現代EDA設計采用的“自頂向下”的設計方法,系統功能分為以下功能模塊:電機初始化,變倍跟蹤,搜索,自動聚焦算法,系統控制,電機驅動等。FPGA內部功能模塊如圖3所示。下面將詳細介紹各模塊的實現方法。

圖3 FPGA內部功能模塊
3.2.1 電機初始化
該模塊功能是實現電機初始位置的判斷,并驅動電機轉動到某一固定位置。系統上電后,根據電機位置檢測器返回的狀態信號判斷當前電機的運動位置,若返回低電平,則驅動電機向圖像傳感器方向移動,直至檢測信號為高電平,在檢測信號跳變時,停止電機轉動。若檢測信號為高電平,則驅動電機向遠離傳感器方向移動,直至檢測信號為低電平,在檢測信號跳變時,停止電機轉動。由于檢測信號跳變位置是固定的,所以系統上電后可驅動電機轉動到預設置的固定位置。
3.2.2 變倍跟蹤
該模塊實現變倍電機的驅動,并根據變倍跟蹤曲線確定聚焦電機對應的轉動步數。根據變倍跟蹤曲線,將變倍電機轉動范圍平均分成40段,由計數器1~40表示當前電機位置,當變倍電機由i轉動到(i+1)時,則變倍電機朝傳感器方向轉動 zi+1-zi步長,若 fi+1≥fi,則聚焦電機朝傳感器方向轉動 fi+1-fi步長,若 fi+1<fi,則聚焦電機向遠離傳感器方向轉動fi-fi-1步長,其中,zi,fi分別表示i點對應的變倍電機和聚焦電機在變倍跟蹤曲線上的坐標;當變倍電機由i轉動到 i-1時,則變倍電機朝遠離傳感器方向轉動zi-zi-1步長,若fi-1<fi,則聚焦電機朝遠離傳感器方向轉動fi-fi-1步長,若 fi-1≥fi,則聚焦電機朝傳感器方向轉動fi-1-fi步長。
通過以上分析,建構主義文化給我們展現了人類社會發展過程中的文化影響下的社會狀態,使我們了解到了現代世界的穩定性,同時也向人類指明了光明的前景,雖然存在一定的主體性,但我依然相信在未來世界體系的發展過程中會誕生出新的更為合理的國際關系理論。
3.2.3 自動聚集算法實現
本文采用一種改進的灰度差分法計算圖像的聚焦評價函數,公式為

式中:f(x,y)表示第x行、第y列像素的亮度值。 像素間位置關系如圖4所示。

圖4 像素對應位置
該算法實現時,利用FPGA內的BlockRAM作為行緩存[7],緩存4行數據,實現內部功能模塊,如圖5所示。
讀寫控制模塊控制4個行緩存中數據的讀寫,每場圖像第1行數據寫入到行緩存1,第2行數據寫入到行緩存2,第3行數據寫入到行緩存3,第4行數據寫入到行緩存4,同時,將行緩存1,2,3中數據讀出到算法實現模塊,第5行數據寫入到行緩存1,同時,將行緩存2,3,4中數據讀出到算法實現模塊,按此讀寫規律進行直至一場圖像結束。算法實現模塊接收從行緩存中讀出的數據,并將每個行緩存讀出的數據賦值給內部相連的3個寄存器,則第2行中間寄存器對應算法中的f(x,y)像素,根據聚焦評價函數值公式即可求出當前場的聚焦函數值,并將當前場圖像的聚焦函數值與前一場圖像的聚焦函數值相比較,如當前場圖像的聚焦函數值大于前一場圖像聚焦函數值,則輸出比較信號為高電平,表示當前場比前一場圖像清晰,反之輸出低電平,表示當前場圖像比前一場圖像模糊。
3.2.4 搜索實現
該模塊根據自動聚焦算法模塊輸出的相鄰兩場圖像聚焦函數值的比較結果,來控制聚焦電機的轉動方向,當輸出圖像的聚焦函數值最大時停止轉動,實現圖像的自動聚焦。

圖5 自動聚焦算法實現內部模塊
該模塊具體實現過程為:變倍結束后,在圖像場同步信號的消隱期間,使聚焦電機朝預定義的固定方向轉動一步,在下一場圖像場同步的下降沿采集自動聚焦算法模塊輸出的聚焦函數值比較結果信號,若該信號為高電平,則表示當前圖像比前一場圖像清晰,電機轉動方向正確,繼續向該方向轉動一步。同理,在下一場圖像的場同步下降沿采集聚焦函數值比較結果信號,若為高電平,則繼續向該方向轉動,若為低電平,則向相反方向轉動一步后停止電機轉動,自動聚焦結束。若第一次采集的聚焦函數值比較結果信號為低電平,則表明首次設定的轉動方向錯誤,則向相反方向轉動兩步后,在下一場圖像的場同步下降沿判斷聚焦函數值比較結果信號,若為高電平,則繼續沿該方向轉動,若為低電平,則向相反方向轉動一步后停止電機轉動,則自動聚焦結束。
3.2.5 系統控制模塊
該模塊主要對初始化模塊、變倍跟蹤模塊、搜索模塊輸出的變倍電機和聚焦電機的驅動信號(包括轉動方向、步數)進行選擇輸出。系統上電后,首先是初始化模塊產生的驅動信號有效,初始化結束后,其他模塊才可正常工作。圖像變倍時,變倍跟蹤模塊輸出的電機驅動信號有效。變倍結束后,搜索模塊產生的電機驅動信號有效。
3.2.6 電機驅動模塊
該模塊根據系統控制模塊輸出的電機驅動信號(轉向,步長)來產生對應的 A+,A-,B+,B-電機驅動脈沖。該模塊內部為模值為4的計數器,輸入轉向控制信號為高電平時,該計數器加法計數,轉向為低電平時,計數器減法計數,根據輸入的步長控制輸出驅動脈沖的持續時間長度,計數器值對應不同的驅動脈沖信號,則可產生不同方向、不同步長的電機驅動脈沖。
由于FPGA的并行處理特性,筆者設計的變焦控制系統可同時控制變倍電機和聚焦電機,提高了變倍跟蹤速度。提出并實現一種改進灰度差分算法,對每場圖像計算高頻分量,可適應不同環境,能較好的反映圖像的離焦極性,提高自動聚焦準的確性。本文使用的圖像傳感器套片采用Sony公司的ICX229AK CCD傳感器和CXD4103R圖像處理芯片,該套片可同時輸出復合視頻信號與數字YUV視頻信號。該設計在Xilinx Virtex-5開發板上實現。本文設計的變焦控制系統可應用于一體化攝像機的研發,具有很高的商業價值。
[1]劉星辰,劉東斌,杜鵬.步進電機控制系統的設計與實現[J].微計算機信息,2009,25(8):25-27.
[2]潘濤,程耕國.步進電機控制器的FPGA實現[J].現代電子技術,2009,(1):148-150.
[3]白立芬,徐毓嫻,于水,等.基于圖像處理的顯微鏡自動調焦方法研究[J].儀器儀表學報,1999,12(6):612-614.
[4]SUBBARAOM,NIKZADA.Focusingtechniques[J].OpticalEngineering,1993,32(11):2824-2836.
[5]任四剛,李見為,謝利利.基于灰度差分法的自動調焦技術[J].光電工程,2003,30(2):53-55.
[6]徐欣,于紅旗,易凡,等.基于FPGA的嵌入式系統設計[M].北京:機械工業出版社,2005.
[7]王宇新,賀圓圓,郭禾,等.基于FPGA的快速中值濾波算法[J].計算機應用研究,2009,26(1):224-226.