李國亮+古明輝+盧健瀚



摘 要
本文設計了一種基于Hi3516A及ODROID-C2的單目測距系統。該系統以Hi3516A作為主控芯片進行圖像數據采集,通過交換機將所采集數據傳輸到ODROID-C2,再由ODROID-C2對圖像數據進行處理,經過識別算法及測距相關算法進行物體識別及測距,最后給出結果值。實際測試的結果表明,測距的精度可達到20cm以內,基本能滿足項目需求。
【關鍵詞】單目攝像頭測距 圖像數據采集
1 背景及單目測距原理介紹
目標測距是機器人視覺系統的重要應用。目前,主要的目標測距方法主要有超聲波測距,紅外測距,激光測距以及視覺測距。近年來,視覺測距吸引了許多學者的研究。隨著制造技術的發展,攝像頭設備價格走低的同時性能越來越好。因此攝像頭應用于視覺測距領域成為一種受歡迎的方式。
1.1 單目測距原理介紹
視覺測距首先要解決的問題是將圖像的座標轉換為機器人實際座標。座標映射器的任務就是將攝像頭幀圖片的像素點座標映射到機器人座標。
從圖1三角等比例相似關系可以計算出實際距離d=d0[(h-a)/a]=d0*h/a-d0=A+B/PVC
計算出縱座標后,橫座標的距離也可以相應地計算出來,如圖2所示。
根據三角形相似關系,實際橫座標X=(C*PR)/PV。其中C為常數,PR為X像素點座標像素值,PV為Y像素點座標像素值。在得知常數A、B、C后,再計算目標在圖片中的像素值,即可計算出機器人座標的實際值。A,B,C常數與攝像頭與地面的形成的角度有關。攝像頭的位置確定不變后,這些值就可以確定了。A,B,C常數的值可以通過左確定距離拍攝棋盤格的圖片,通過角檢測算法確定與棋盤4個角同像素的對應關系得出。本文不對此算法展開討論。
2 系統介紹
單目測距系統分為硬件系統及軟件系統。
2.1 硬件系統
硬件系統框圖如圖3所示,攝像頭模塊包括圖像傳感器及鏡頭系統。鏡頭采用5MP像素,為了有較大的視覺范圍,采用3.6MM的焦距,圖像傳感器采用SONY的IMAX178。此CMOS圖像傳感器面積為1/1.8'',最大3072*2048 約 6.29M有效像素。5M像素輸出時,可在12bit下達到60幀/秒,14 bit下達到30 幀每秒。為了達到更高的幀率,選定了 5M像素,12bit,60幀/秒。
HI3516A集成智能分析加速引擎,支持智能運動偵測、周界防范、視頻診斷等多種智能分析應用。內置A7@ 600MHz, 32KB I-Cache, 32KB D-Cache /128KB L2 cache,支持 Neon 加速,集成 FPU 處理單元,H.264 BP/MP/HP, H.265 Main Profile, MJPEG/JPEG Baseline 編碼,H.264/H.265 編碼可支持最大分辨率為 5M Pixel,H.264/H.265 多碼流實時編碼能力:? 5M@30fps+VGA@30fps。輸入支持8/10/12/14 bit RGB Bayer DC時序視頻輸入,時鐘頻率最高150MHz,支持MIPI、 LVDS/Sub-LVDS、 HiSPi接口,兼容多種sensor并行/差分接口電氣特性,提供可編程sensor時鐘輸出,支持輸入最大分辨率為5M Pixel。
列舉以上參數可知,IMAX178 同Hi3516A連接及配合工作是合適的,可充分發揮2者的性能。為了讓Hi3516A專注于ISP處理,Hi3516A出來的圖像通過交換機傳輸到ODROID-C2進行算法計算并處理結果。ODROID-C2系個功能強大的四核單板計算機,CPU為四核Amlogic ARM? Cortex?-A53(ARMv8),時鐘頻率為 1.5Ghz,集成了包含2個像素處理器+2個Vertex陰影處理器的Mali?-450 GPU,2Gbyte的DDR3 SDRAM,網絡接口為千兆以太網,同時帶有H.265 4K/60FPS 以及 H.264 4K/30FPS 的 VPU。可運行最新的Ubuntu及Android系統。
2.2 軟件系統
如圖4所示,IMX178 經過光電轉換,出來的是Bayer 格式的原始圖像, Bayer 格式的原始圖像傳送給 ISP后經過邏輯單元進行算法處理及Firmware控制鏡頭及IMAX178完成光圈調節、曝光調節、白平衡調節、減嘈、除霧、Gamma調節、銳化調節等功能,輸出 RGB 空間域的圖像給后端的視頻采集單元VIU。設計過程可以參考HiISP的開發參考文檔,開發文檔中詳細的列出了相關的接口調用。
如圖5所示,Hi3516A運行于Ubuntu系統,主要由2個功能模塊組成。分別為圖片采集模塊及HTTP服務模塊。圖片采集模塊包括圖4的ISP子系統以及圖片及視頻輸出接口。HTTP服務模塊監聽8080端口,以響應ODROID-C2及其他外界訪問,接收攝像頭相關參數設置及圖片、視頻采集或其他控制命令。
如圖6所示,ODROID-C2運行于Ubuntu系統,主要由4個功能模塊組成。圖片視頻服務器儲存所采集的圖片及視頻文件,然后通過目標識別模塊計算出所要識別的目標在圖片中的像素位置信息,得出像素位置信息后,將結果發送到目標距離計算模塊,最后輸出目標到HTTP服務器。
3 測試結果
實際距離指攝像頭與地面垂直交點為起點,在地平面的直線距離。已經考慮到攝像頭與地面的傾角。從120cm到500cm,系統測量均可以識別出目標并準確計算直線距離值。測量實際誤差均少于20cm。
4 結論
本文給出了一種單目測距系統的方案,介紹了軟硬件的設計,并且給出了實際測量的結果值。從測量結果看,從系統畸變允許的視域范圍內,誤差在20cm以內,基本能滿足項目需求。
參考文獻
[1]Coordinate Mapping,Andreas, Konstantin,Reiko & Taavi,http://robotex.ing.ee/2012/01/coordinate-mapping/2012,01.
[2]IMAX178LQJ-C Technical Datasheet V3.0.0,Sony corporation 2012.11
[3]Hi3516A/Hi3516D專業型HD IP Camera 用戶指南,深圳市海思半導體有限公司,2015(06).
[4]ODROID-C2 Specifications,Hardkernel co.,Ltd.2013.