楊宏偉,陳利峰
(1.長春理工大學 計算機科學技術學院,長春 130022;2.鄂爾多斯市源盛光電有限責任公司,鄂爾多斯 017000)
新型雙目相機運動控制系統設計
楊宏偉1,陳利峰2
(1.長春理工大學計算機科學技術學院,長春130022;2.鄂爾多斯市源盛光電有限責任公司,鄂爾多斯017000)
雙目相機運動控制系統的小型化和快速化對雙目立體視覺技術的發展和應用有著重要的研究意義。本文基于三維重建理論,以高性能的FPGA為控制核心,設計了一種新型雙目相機運動控制系統。該系統利用FPGA實現雙目相機的圖像采集、壓縮及處理功能,并通過WIFI模塊將處理后的數據發送給計算機,在計算機上完成圖像的解壓縮、三維重建和顯示,同時再利用WIFI模塊向FPGA發送相機運動的控制命令,以便相機以最佳視角觀測目標。本系統方案合理易行,結構簡單,是一種新型簡便的雙目相機運動控制方式。
控制;圖像壓縮;三維重建;深度恢復
隨著計算機圖像處理技術和無線數據傳輸技術的迅速發展,利用雙目相機撲捉三維信息得以實現。但是由于雙目相機采集的數據量巨大,傳統的圖像數據采集方式已經滿足不了其要求,而FPGA憑借其強大的組合邏輯能力、快速的處理速度及靈活的可編程等優勢,其在雙目相機運動控制系統中得到了充分的應用[1]。
本系統基于三維重建理論,以FPGA為控制核心,完成了雙目相機的圖像采集、壓縮及傳輸功能,并通過WIFI無線模塊將處理后的圖像數據發送給計算機,在計算機上實現圖像的解壓縮、三維重建及顯示功能,同時再通過WIFI模塊向FPGA發送雙目相機的運動控制命令,以達到控制相機運動的目的。本系統將數字圖像處理技術、雙目視覺三維重建技術及無線WIFI傳輸技術有機結合在一起,實現了一種新型的雙目相機運動控制系統,對數字圖像處理中相機云臺的控制研究具有重要意義。
本系統基于三維重建理論,結合立體視覺原理,分別對雙目相機進行標定、立體匹配和深度恢復。其中相機標定確定了相機的內外參數,內參數由相機本身決定,外參數表示的是世界坐標系和攝像機坐標系的轉換關系[2]。如圖1所示,標明了雙目相機的外參數求解方法。

圖1 外參數求解方法
圖1中,將原點Ow平移至Oc,用旋轉矩陣R將坐標軸旋轉后,世界坐標系和攝像機坐標系就實現一致。點X到點Xc用齊次坐標轉換:

結合圖像坐標系與世界坐標系及攝像機坐標系的處理過程,攝像機從三維投影空間到二維投影空間的線性轉換可以通過公式(2)實現[3]:

確定相機外參數后,結合透視投影矩陣標定法,通過最大似然估計法獲得雙目相機的投影矩陣,然后對其分解,即可實現相機標定。
立體匹配采用光學幾何測量不變性原理,通過圖像中待測匹配點的鄰域窗口中的灰度信息作為匹配單元,從而獲得稠密的深度圖和視差圖。
深度恢復采用視差測距方法算出場景的真實深度信息,為云臺提供輔助測試,使云臺的控制角度更加精準。
本系統根據三維重建理論,以FPGA為控制核心,完成了雙目相機的運動控制。其系統結構圖如圖2所示。雙目相機將采集到的圖像信息送給FPGA控制單元處理,然后通過無線模塊將處理后的壓縮圖像數據傳輸到計算機端,計算機完成圖像的解壓、三維重建及圖像顯示,同時通過WIFI向FPGA發送相機云臺的控制命令,FPGA根據接收到的控制命令進行電機運動參數設置,控制云臺運動,以便雙目相機以最佳角度觀測目標。

圖2 系統結構圖
本系統整體結構簡單、功能明確。其中,電源模塊主要為各單元提供正常工作電壓,是整個系統運行的基本保障;雙目相機是整個系統的數據輸入端,負責數字圖像的采集工作;FPGA控制單元是整個系統的控制核心,完成圖像的采集、壓縮、存儲及處理功能[4];無線傳輸模塊負責圖像數據及命令數據的傳輸,是整個控制系統與計算機連接的紐帶;相機云臺帶動雙目相機運動,是系統的執行單元。
2.1雙目相機
雙目相機采用美國Digilent公司的VmodCAM。該相機采用雙目平行結構,左右成像平面共面,左右圖像對齊,有利于在圖像處理過程中提供更高的匹配精確度。該雙目相機帶有兩個百萬像素的COMS數字圖像傳感器,傳感器幀速率大于15,最大分辨率為1600*1200。雙目相機在工作前,FPGA首先其進行參數設置,包括分辨率、輸出格式等參數,還要設置雙目相機的啟動及復位順序。FPGA利用串行接口(SDA,SCL)通過I2C與雙目相機通信,從而獲得兩個同步分開的圖像[5]。
2.2FPGA控制處理單元
控制單元以Xilinx Spartan?-6 LX45 FPGA為核心,通過雙目相機完成圖像數據的采集、壓縮、存儲及發送工作,并通過接收計算機的命令,對FP-GA內部參數設置,控制相機云臺運動,實現以最佳角度觀測目標。
FPGA控制系統由嵌入式軟核、存儲器控制模塊、雙目相機驅動模塊、圖像處理模塊、WIFI驅動模塊和步進電機驅動模塊等幾大部分組成,利用MicroBlaze 32位嵌入式軟核構建SOPC平臺,實現對對雙目相機的內參數配置。其中存儲器控制模塊提供外擴DDR2存儲器所需要的時序;圖像處理模塊將待發送的圖像數據壓縮,有利于提高傳輸效率;WIFI驅動模塊完成無線模塊的參數配置;步進電機驅動模塊完成電機的運動控制。FPGA作為硬件控制核心,采用Verilog HDL硬件描述語言,完成各個單元的驅動及圖像的采集、壓縮及傳輸等工作。
2.3無線傳輸模塊
本系統中,無線傳輸單元采用串口WIFI模塊RPS9110-N1122,其包含完整的802.11bgn協議棧,硬件本身集成MAC、射頻收發器、基帶處理器(Baseband processor),功率放大器,參考時鐘頻率和天線等,軟件集成所有WLAN協議棧、網絡協議和配置功能等,通信距離遠達120m。
WIFI模塊與外部處理器采用標準的四線SPI接口方式,該方式下時鐘速率可達25MHz。同時采用用戶開發SPI總線IP核的方式,利用FPGA內部RAM資源,生成兩個FIFO單元和一個RAM區,兩個FIFO單元分別接收和發送數據的緩沖,防止接收到的數據丟失或者前一個待發送的數據被后一個覆蓋掉,造成數據丟失;RAM區則用于存放待發送的圖像數據,一次可以緩沖一幀圖像數據,便于后續幀處理。
2.4系統電源
系統的電源模塊由市電交流220V直接轉換為12V直流供雙目相機及相機云臺使用,然后通過開關穩壓器LM2576-5.0及LM1117電源轉換芯片生成FPGA控制單元及無線模塊所需要的+3.3V。其中LM2576-5.0構成的穩壓電路如圖3所示。

圖3 +5V穩壓電路原理圖
電壓·微秒常數(E·T)的表示方法如公式(3)所示:

Vin是變壓器轉換輸出的+12V電壓,Vout是+ 5V輸出電壓,f是工作震蕩頻率52KHz,D1為肖特基二極管IN5822,L1電感為100μH。
3.1FPGA IP核配置
本系統選用Xilinx的Spartan-6 LX45 FPGA作為核心控制單元。其采用324腳BGA封裝模式,提供6822個slice(每個slice含8個觸發器及4個6輸入LUT)、4個時鐘單元(8 DCMs&4 PLLs)、2.1 Mbits的快速RAM塊、6個鎖相環等。并且單元模塊上包括HDMI視頻、Gbit以太網、128MByte的16位DDR2內存以及USB接口,內嵌Xilinx Microblaze處理器,是應用范圍較廣的典型數字信號處理系統。
(1)MicroBlaze外設配置
根據設計要求,本系統結合FPGA內部RAM資源,利用MicroBlaze創建SOPC平臺。其外圍設備如圖4所示。

圖4 SOPC外圍設備
在圖4中,CMT模塊作為倍頻器,將輸入的100MHz時鐘倍頻為600MHz差分時鐘,供DDR2控制器使用,DDR2控制器作為MicroBlaze和DDR2存儲器之間數據傳輸的紐帶。利用AXI總線將各個總線接口部件的IP核掛載在FPGA內部軟核中。
(2)雙目相機圖像采集IP配置
根據雙目相機輸出的行、場就緒信號和數據同步時鐘信號,讀取正確的圖像信息,為了解決數據讀寫沖突問題,本系統在FPGA內部開辟兩塊獨立的RAM單元,當其中一片RAM寫滿(即達到4K字節)后,再將數據存入第2片RAM中,同時通知MicroBlaze處理器啟動DMA,將第1片RAM中的數據存入DDR2中;當第2片RAM單元寫滿后,第1片的RAM單元中的數據已經傳輸完畢,所以此時又可以將數據存入第1片RAM中,同時通知MicroBlaze處理器啟動DMA,將第2片RAM中的數據存入DDR2中。很顯然,2片RAM總有一片始終在接收雙目相機的圖像數據,另一片通過DMA方式將數據傳輸至DDR2中,它們相輔相成、互不影響、同時工作,有利于提高圖像的采集及傳輸效率。
(3)圖像壓縮IP配置
鑒于雙目相機所采集的圖像信息龐大,若直接發送源數據,耗費時間較長。因此在數據發送前首先對圖像進行壓縮處理,有利于提高圖像傳輸效率。
本系統采用圖像壓縮IP技術,將通過AXI總線采集的圖像信息劃分為若干個8×8單元,然后對這些單元通過JPEG編碼,最后復合為整幅JPEG圖像。顯然,圖像壓縮IP中,關鍵部分是JPEG編碼,其主要由8×8單元模塊、離散正余弦變換、量化與排序和熵編碼模塊4部分組成。其中,一維8位離散正余弦計算可簡化為公式(4)和(5)所示:

由以上公式可知,進行一次正余弦計算需要22次乘法操作,而FPGA中包含一個18×18的乘法器,故可以滿足計算要求。
在量化與排序單元中,將轉換后的色度倒數量化表和亮度倒數量化表存儲在FPGA內部映射的ROM中。
在熵編碼模塊中,對直流分量進行差分編碼,然后進行Huffman編碼,對交流分量先進行0游程長度編碼,再采用Huffman編碼。
另外,在圖像壓縮后,還需要對該圖像數據進行封包處理,也就是需要配上圖像的報頭、報尾等,這樣才可以構成一幅完整的JPEG圖像。此舉可以降低FPGA設計難度,減少WIFI傳輸流量,提高傳輸效率[6]。
(4)步進電機驅動IP配置
步進電機驅動IP根據MicroBlaze發送的命令,控制步進電機運動。本系統采用兩相四線的步進電機,需要四路PWM控制,其組成框圖如圖5所示。

圖5 步進電機驅動IP信號組成框圖
AXI總線接口處理單元分別配置PWM參數和運動控制參數,邏輯控制單元產生控制PWM的相位參數,PWM產生單元控制PWM輸出信號頻率,根據運動控制參數輸出不同相位和頻率的PWM,控制步進電機運動。
3.2MicroBlaze軟件設計
MicroBlaze嵌入式軟核作為系統的控制核心,主要負責協調整個系統的工作時序。用戶通過編寫FPGA標準IP核和用戶IP核,實現對外圍接口單元的控制,同時編寫應用程序,完成雙目相機的圖像采集、存儲、壓縮、傳輸等處理工作,并接收由計算機發送的參數配置命令和步進電機控制命令,通過配置電機驅動IP,實現步進電機按計算機發布的指令運動。
(1)雙目相機驅動及圖像采集部分設計
雙目相機驅動主要包含兩個部分內容,一部分是對相機進行配置,另一部分是讀取相機數據,其配置流程圖如圖6所示。

圖6 雙目相機參數配置流程圖
雙目相機參數配置程序還包含對相機數據采集IP核的驅動,主要實現雙目相機圖像數據啟動、停止,清空等功能。根據協議,只需要利用FPGA提供的自定義函數,向數據采集IP核寫入相應的參數即可。
雙目相機參數正確配置后,進入圖像數據采集環節,首先判斷DDR2中數據緩存區是否為空,如果不為空則繼續等待;如果為空,則開始采集圖像數據,等到IP核內第1片RAM區的圖像數據寫滿后,啟動DMA將該數據傳輸到DDR2中存儲起來,然后繼續等待數據就緒標志,直到一幅完整圖像傳輸完畢。另一個相機也采用同樣操作方法,其圖像數據的采集過程如圖7所示。

圖7 圖像數據采集流程圖
(2)WIFI驅動軟件設計
由于圖像數據的數據量一般都比較大,尤其是雙目相機同時輸出兩路圖像數據,數據量更是龐大,不可能利用一次網絡數據傳輸就把這么多的數據傳輸完成,因此在硬件平臺上,利用FPGA將數據分成多個數據包通過WIFI發送到上位機,上位機在分批次接收到一幅完整的圖像數據后,需要再將這些圖像數據重新組合成為一組完整的圖像數據。由于硬件平臺并沒有對經過JPEG壓縮的圖像數據增加JPEG的頭、尾數據,這一部分任務要在上位機程序中實現,最終輸出完整的JPEG數據流。而且,為了降低數據傳輸過程中出現誤碼,影響圖像輸出質量,圖像傳輸程序中還采用了“錯誤重發機制”,最大限度的降低誤碼率。
WIFI無線模塊的驅動主要通過“AT”指令配置其TCP/IP的IP地址、分配其應用程序端口號、與計算機建立網絡連接并且與計算機進行數據通訊。WIFI模塊建立網絡連接流程如圖8所示。

圖8 WIFI模塊連接網絡流程圖
經實際測試,WIFI的傳輸速率完全可以滿足當前分辨率(系統中采用的雙目相機最大分辨率1600*1200)下雙目相機實時傳輸的需求。但由于實驗條件有限,對更高分辨率要求的圖像,其傳輸速度較慢。
(3)步進電機驅動程序設計
步進電機驅動程序根據計算機發送的控制命令,配置電機參數,包括周期、方向、同步信息等,同時通過對FPGA編程,配置電機驅動IP的內部寄存器,實現控制步進電機運動,從而實現計算機控制相機云臺運動,使操作者以合適的方位對目標進行觀察。
步進電機的驅動程序可以直接根據計算機的命令,計算出所需要運動的方向和步數,寫入到電機驅動IP核即可。
本系統通過WIFI模塊向FPGA發送三維平臺控制命令,控制三維平臺帶動雙目相機運動,可以從最佳角度觀察目標點。云臺中步進電機正轉平均誤差為0.84度,反轉平均誤差為0.86度。云臺控制受傳統慣性影響,當電機轉動接近定位角度時將其速度降下來即可提高云臺的定位精度。在不同細分下,隨著最大轉速波動率的增加,云臺中步進電機的響應時間逐漸減小,具體數值如表1所示。

表1 步進電機轉速波動和響應時間關系
實測中,步進電機在64細分下效果更好,同時通過采用升頻曲線的優化算法,對步進電機的轉速參數和啟動響應時間等指數有著很大改善。
本系統利用相機平臺的三維運動優勢和雙目視覺技術的先進性,選用VmodCAN相機作為圖像采集單元,利用WIFI模塊作為無線數據傳輸載體,設計了系統整體硬件結構。同時采用計算機完成與該系統的無線網絡連接、圖像接收與恢復及相機云臺的控制等功能。
計算機首先建立網絡服務器,等待該系統發起網絡鏈接,當網絡連接建立后,接收FPGA發送的經過壓縮處理后的圖像數據,對這些數據進行JPEG格式轉換后,顯示圖片信息。計算機同時根據接收到的兩幅圖像,利用三角測量的原理,恢復深度信息,并且顯示出來。為了得到最佳視角,計算機軟件利用WIFI模塊,向該系統發送云臺控制命令,帶動相機運動。系統采用Visual C++6.0,制作計算機人機交互界面,并采用多線程的方式處理系統任務,提高軟件工作效率[7]。
本系統命令采用固定的幀格式發送,如表2所示,單字節存放。
命令幀中,“數據頭標志”用于幀標識,固定值為”0xff”,“有效數據長度”便于FPGA平臺檢測處理,固定值為”0x05”;“運動控制碼”代表電機運動方式,高4位為電機代碼,其數值為1~3,分別代表1至3號步進電機,低4位標明電機運動狀態其數值為1~7,分別代表上、下、前、后、左轉、右轉及停止狀態;“電機運動步數”表示步進電機需要運動的步數;最后,“累加和校驗和”為運動控制碼與電機運動步數之和。如果傳輸過程中產生誤碼,直接丟掉數據幀。通過對各個功能模塊的完善。

表2 云臺控制命令的幀格式
通過實際測試結果分析,本系統利用計算機對圖像進行解碼和顯示,實現了對目標圖像的坐標計算,通過計算得出的三維坐標,為相機運動提供參考,最后通過按鈕控件輸出相機云臺的控制命令,完成整體系統設計要求。系統方案合理易行,結構簡單,性能穩定,完成了雙目相機的運動控制。
[1] 董心雨,黃俊.基于FPGA的紅外圖像采集與傳輸系統設計[J].半導體光電,2012,33(4):579-581.
[2] 孫鵬飛.單目多角度空間點坐標測量方法[J].儀器儀表學報.2014,35(12):2801-2807.
[3](美)桑卡,(美)赫拉瓦卡,(美)博伊爾著.圖像處理、分析與機器視覺(第三版)[M].艾海舟,蘇延超等譯.北京:清華大學出版社,2011:400-408.
[4] 余成波.嵌入式物體自動跟蹤系統的研究[J].半導體光電,2014,35(5):932-936.
[5] 孫榮春,孫俊喜,宋雪.基于DSP的CMOS圖像采集與處理系統[J].半導體光電,2011,32(6):890-893.
[6] 陳利峰.基于無線傳輸的相機運動控制系統研制[D].長春:長春理工大學,2015.
[7] 彭誠,任濤,段儕杰.基于體視顯微鏡的立體視覺測量系統[J].清華大學學報,2015,55(2):223-230.
The New Type Motion Controlling System of Binocular Camera
YANG Hongwei1,CHEN Lifeng2
(1.School of Computer Science and Technology,Changchun University of Science and Technology,Changchun 130022;2.Ordos Yuansheng Optoelectronics CO.,LTD,Ordos 017000)
It is very important for the development and application of binocular stereo vision technology to the development and application of binocular camera motion control system.The system based on three-dimension reconstruction theory and high performance FPGA as the core controlling processor,designs a new type of binocular camera motion control system.The system fulfills image acquisition,compression and procession functions of binocular camera with FPGA and sends the processed data to a computer with WIFI module.Then the image is decompressed,reconstructed three-dimensionally and displayed on the computer.Meanwhile camera motion control order is sent to FPGA with WIFI module to make the camera observe the target from the best angle.This system is reasonable,practicable and of simple structure and it realizes the motion controlling of binocular camera.
control;image compression;three-dimension reconstruction;deep recovery
TP368.2
A
1672-9870(2015)06-0108-06
2015-08-21
吉林省科技廳項目(KYC-JC-XM-2015-046)
楊宏偉(1981-),男,碩士,講師,E-mail:yanghongwei@cust.edu.cn