彭 澎, 陳 耀, 徐志宇, 余有靈
(同濟大學 電子與信息工程學院,上海 201804)
·計算機技術應用·
可本地編譯的嵌入式計算機視覺實驗系統設計
彭 澎, 陳 耀, 徐志宇, 余有靈
(同濟大學 電子與信息工程學院,上海 201804)

開發了一套具有本地編譯能力的低成本模塊化嵌入式計算機視覺實驗系統“CV-Innovator”。硬件上,該系統的嵌入式處理器采用全志A20雙核ARM Cortex-A7 SoC(System on Chip,片上系統),通過彩色CMOS攝像頭OV7670采集實時圖像,18 cm TFT-LCD顯示屏和USB鍵盤鼠標提供友好的人機交互。軟件上,為“CV-Innovator”構建了嵌入式Linux操作系統,可在嵌入式Linux環境下開發和運行基于OpenCV和Qt的計算機視覺應用程序。進行了樣機試制,并設計了一個人臉檢測示例應用程序,其結果表明“CV-Innovator”能實現預期功能,可應用于我國高校計算機、電子信息及自動化等相關專業的本科實驗教學。
嵌入式系統; 計算機視覺; 實驗系統
嵌入式系統是為特定應用而設計的專用計算機系統,如今被廣泛應用于電信、汽車電子、醫療、多媒體及航空等領域[1]。嵌入式系統作為一門軟硬結合、實踐性強的重要專業課程,被我國大多數高校的電子電信類專業納入本科生培養計劃,但是在嵌入式系統課程的教學中普遍存在以下不足之處[2-4]:
(1) 實驗操作死板,學生參與度低。多為驗證性實驗,即讓學生依照實驗指導書的步驟,機械地將已有的實驗代碼燒寫到芯片中運行并觀察結果。導致缺乏探索性,學生為完成任務而實驗,不利于工程能力和創新思維的培養。
(2) 實驗設備陳舊,與行業主流脫節。傳統的嵌入式系統試驗箱體積龐大、價格昂貴,因此難以及時更新換代,以至于很多高校仍用較落后的ARM7或ARM9進行實驗教學。該現象不利于學生了解行業前沿和主流的技術,實驗中學到的技能難以在創新項目和學科競賽中應用。
(3) 實驗內容分散,未形成體系。CC++程序設計、微機原理、嵌入式系統及數字圖像處理等專業課程的實驗教學相對獨立,缺乏綜合性的實踐環節。不利于學生對課程之間內在關聯的理解和對于嵌入式系統相關技術的全局認知。
計算機視覺(Computer Vision, CV)作為一門綜合性學科,在如今的信息時代已被廣泛用于軍事、工業和生活之中[5]。考慮到嵌入式系統的發展趨勢,并針對上述的問題,將嵌入式系統與計算機視覺主題相結合,設計了一套低成本、模塊化的嵌入式計算機視覺實驗系統“CV-Innovator”。該系統以嵌入式處理器為核心,運行嵌入式Linux OS,用戶在OS環境下借助OpenCV和Qt等開源函數庫開發計算機視覺應用程序,處理CMOS攝像頭采集的圖像并將結果顯示在TFT-LCD顯示屏上。
“CV-Innovator”實驗系統以模塊化為指導思想進行硬件設計。如圖1所示,嵌入式處理器模塊是整個系統的核心部分,并負責系統電源管理及與外圍模塊的數據交換。嵌入式處理器模塊具有多種接口:通過USB接口連接WiFi模塊和鍵盤鼠標;通過I2C總線讀寫攝像頭內部寄存器,同時通過CSI(CMOS Sensor Interface)接口接收圖像像素數據;通過LVDS(Low-Voltage Differential Signaling)接口連接TFT-LCD模塊。

圖1 “CV-Innovator”的硬件結構示意圖
1.1 嵌入式處理器模塊
目前用于處理計算機視覺任務的主流嵌入式硬件平臺有DSP[6]、FPGA[7]和ARM Cortex-A系列SoC[8]等。基于ARM Cortex-A系列SoC的硬件平臺雖然計算速度不如前二者,但其開發門檻較低、通用性較好,且與嵌入式系統理論教學內容聯系密切,因此有利于學生在短時間內掌握。
本文的嵌入式處理器模塊采用市售的核心板和自主設計的擴展板相結合的模式。如圖2所示,核心板由雙核ARM Cortex-A7 SoC全志A20、1 GB DDR3內存、4 GB eMMC存儲器、以太網MAC芯片和電源管理芯片等組成,通過兩組100-pin排針引出了SoC的眾多接口。經測試,該核心板的SoC最高可在1.104 GHz的主頻下穩定運行。

1.2 攝像頭模塊
“CV-Innovator”主要針對計算機視覺應用開發而設計,攝像頭的成像質量對計算機視覺處理的效果具有較大的影響。考慮到主要用于教學目的,攝像頭的選取既要保證成像質量,又需要有成熟的內核驅動的支持及完善的文檔說明。綜合以上考慮,本文在全志A20的攝像頭支持列表里選擇了市面上最為常見的OV7670攝像頭模塊。OV7670是一款彩色CMOS圖像傳感器,擁有640x480有效像素,最高幀率30幀/s,經實測能滿足本文的功能需求。
1.3 人機交互模塊
本文設計的是能夠進行本地開發的嵌入式系統,也就是讓實驗人員直接在嵌入式系統上編寫和調試程序,為了使系統的使用體驗接近PC,采用USB無線鍵盤鼠標作為輸入設備。在系統的設計過程中,考慮了3種顯示方案:① PC顯示器;② VNC遠程桌面;③ TFT-LCD。
其中,方案①通過HDMI接口連接普通PC顯示器具有最好的顯示效果,但該方案違背了低成本和使用便捷的設計初衷。方案②VNC遠程桌面顯示需要依賴另一臺PC,且配置過程較為繁瑣,不適合作為本科生教學實驗系統使用。本文最終采用方案③,即采用18 cm TFT-LCD模塊作為顯示設備,該模塊分辨率為1024x600,通過LVDS接口連接嵌入式處理器模塊。
1.4 WiFi模塊
為了使系統具有聯網功能,加入了市售USB WiFi模塊,該模塊基于瑞昱RTL8188方案,帶寬為150 Mb/s。由于該模塊體積小巧,通過SMT工藝貼裝在嵌入式處理器模塊的擴展板上,由板上的線路連接到核心板的USB-HOST接口。通過該模塊連接WiFi熱點,使系統能夠瀏覽網頁、使用包管理器為Linux安裝軟件或開發TCP/IP網絡應用等。
嵌入式軟件開發通常有交叉編譯和本地編譯兩種方式,交叉編譯步驟繁瑣,但適用于各種硬件資源有限的場合。本地編譯可采用命令行的文本編輯器和編譯工具(如Vim+CMake),也可采用圖形化IDE(如Eclipse, Qt Creator)。為了降低使用難度,避免學生對嵌入式系統產生畏懼心理,本系統的設計力求保留嵌入式系統核心特色的同時接近在PC上的開發體驗,因此采用圖形化IDE進行本地編譯的開發方式。本系統的嵌入式處理器集成了Mali400 MP2 GPU,擁有1 GB內存容量,具備用圖形化IDE進行本地編譯的硬件條件。經測試,本系統在LXDE Ubuntu的環境下能夠流暢地運行Qt Creator。
“CV-Innovator”的Linux用戶空間軟件構架如圖3所示,基于本系統的實驗內容即圖中最頂層的應用程序開發。應用程序通過Qt構建圖形用戶界面程序框架,調用OpenCV提供的類和函數實現圖像處理和計算機視覺算法,其他的功能(如串口通信、TCP/IP網絡通信)需要直接調用相應的Linux API實現。

圖3 “CV-Innovator”的用戶空間軟件構架
樣機外觀如圖4所示,其主要參數見表1。

圖4 “CV-Innovator”實驗系統樣機

項目型號/參數規格220mm×150mm×205mm凈重0.9kg供電5V3A適配器嵌入式處理器模塊市售開源核心板+自主設計的擴展板攝像頭OV7670模塊(不帶FIFO)顯示屏EJ070NA-01J7寸LVDS液晶屏
本文開發了一個符合圖3所示構架的人臉檢測示例應用程序,并成功在樣機上運行和測試。該程序為C++語言編寫,調用V4L2(Video for Linux 2) API從攝像頭采集圖像,并在GUI界面中顯示;利用Viola-Jones檢測器[9]對實時圖像進行人臉檢測,若檢測到人臉,則打印圖像中人臉區域的坐標。
人臉檢測,即采用一定的策略對圖像進行全局搜索,利用分類器確定其中是否含有人臉,如果有則返回人臉區域的坐標和大小等信息。本示例程序采用的 Viola-Jones檢測器是一種類Haar特征boost篩選式級聯分類器,這種算法不僅快速,而且也適用于大多數具有紋理的近似剛體[9]。Viola-Jones檢測器在OpenCV 3.0中被封裝為CascadeClassifier類,其成員函數load從xml文件中讀取分類器數據,成員函數detectMultiScale對輸入圖像進行人臉檢測。由于人臉檢測要求以灰度圖像作為輸入,預處理階段進行了RGB圖像到灰度圖像的顏色空間轉換和針對灰度圖像的直方圖均衡化等操作。示例應用程序實現了基于Qt的圖形界面,運行在“CV-Innovator”實驗系統中如圖5所示。

圖5 示例應用程序的圖形界面
改變目標的大小、姿態以及光照條件,分別對示例應用程序進行了人臉檢測的魯棒性測試,圖6截取了部分成功檢出人臉的運行結果。 該試驗說明,Viola-Jones檢測器對目標的光照條件變化具有較強的魯棒性,卻在目標旋轉和部分遮擋條件下的檢測性能稍差,一旦目標旋轉和遮擋超過圖6(c)~(f)所示的程度,就幾乎不能成功檢出。Viola-Jones檢測器對目標具有縮放不變性,但為了提高檢測速度,示例應用程序忽略了小于50×50像素人臉區域的搜索。

(a) 標準目標

(b) 目標較小

(c) 輕微旋轉

(d) 輕微旋轉

(e) 部分遮擋

(f) 部分遮擋

(g) 弱光照

(h) 強光照

(i) 光照不均勻
除了“CV-Innovator”實驗系統,本文還將人臉檢測示例應用程序移植到JZ2440開發板和樹莓派3B卡片電腦中運行。表2上半部分簡要列出了“CV-Innovator”、JZ2440開發板和樹莓派3B的硬件配置,下半部分列出了示例應用程序中被調用OpenCV函數的平均運行耗時(圖像分辨率均為352×288像素)。
由表2可得,執行一次完整的人臉檢測過程,“CV-Innovator”需要136.38 ms,幀率可達7.3幀/s;樹莓派3B僅需53.69 ms,幀率可達18.6幀/s;而采用典型ARM9 SoC的JZ2440開發板則超過2 s。因此,就性能而言,“CV-Innovator”的ARM Cortex-A7構架雖與更加先進的64 bit ARM Cortex-A53有一定差距,但相比ARM9具有較大優勢。

表2 “CV-Innovator”同JZ2440及樹莓派3B的對比
本文開發了一套可本地編譯的嵌入式計算機視覺實驗系統“CV-Innovator”。硬件以全志A20雙核SoC和OV7670彩色CMOS攝像頭為核心,以18 cm TFT-LCD、USB鍵盤鼠標等為人機交互。軟件基于嵌入式Linux OS,借助Qt和OpenCV構建計算機視覺相關的應用程序。樣機制作及人臉檢測示例應用程序的測試證實了實驗系統的有效性。
“CV-Innovator”解決了傳統高校嵌入式系統教學模式中的一些不足:體積小巧、成本低廉、易于使用,兼顧課堂教學亦可用作快速方案驗證與原型開發,與驗證性實驗相比具有趣味性和探索性;相較于ARM7、ARM9、ARM11,實驗系統使用的雙核ARM Cortex-A7構架更先進、性能更強大,且嵌入式平臺實現的視覺反饋控制在機器人、無人機、智能安防監控等前沿領域有應用前景,具有新穎性和實用性;綜合運用了嵌入式系統、數字圖像處理、程序設計、自動控制、計算機網絡等專業知識與技能,具有綜合性和連貫性。
[1] 施樂平, 楊征宇,馬憲民,等. ARM嵌入式系統綜述[J]. 中國測試, 2012,38(z):14-16.
[2] 馮 源,劉曉虎,夏 立. 基于ARM平臺的嵌入式技術綜合設計實驗教學[J]. 實驗室研究與探索, 2014,33(9):205-235.
[3] 羅 勇,李高杰. 基于NFS的嵌入式系統ARM實驗教學平臺設計[J]. 實驗室研究與探索, 2015,34(10):89-107.
[4] 鄢秋榮, 王玉皞, 王艷慶, 等. 面向軟硬件協同設計的嵌入式系統教學改革與實踐[J]. 實驗室研究與探索, 2016,35(6):190-193.
[5] 陸志偉,王明革,趙瑞海. 計算機視覺技術的研究與應用[J]. 數字技術與應用, 2016(3):109.
[6] XU Fen, ZENG Jian-jun, ZHANG Yun-long. Design of a DSP-based CMOS imaging system for embedded computer vision[C]//2008 IEEE Conference of Cybernetics and Intelligent System, 2008:430-433.
[7] Luca Maggiani, Claudio Salvadori, Matteo Petracca,etal. Reconfigurable FPGA architecture for computer vision application in smart camera networks[C]//Seventh ACM/IEEE International Conference of Distributed Smart Cameras, 2013:1-6.
[8] 張 濤,王建魁,張國山,等. 基于Cortex-A8的嵌入式車牌識別系統設計[J]. 電子設計工程, 2015,23(9):167-170.
[9] Paul Viola, Michael Jones. Rapid object detection using a boosted cascade of simple features[C]//Computer Vision and Pattern Recognition, 2001:511-518.
[10] 郭 磊,王秋光. Adaboost人臉檢測算法研究及OpenCV實現[J]. 哈爾濱理工大學學報, 2009, 14(5):123-126.
[11] 陳國榮,向 毅. “嵌入式軟件和系統”專業教學改革思路探索[J]. 重慶科技學院學報(社會科學版),2009(12):203-204.
[12] 王寶珠,劉 偉. 基于ARM11的視頻圖像中運動物體檢測跟蹤系統[J]. 電子設計工程, 2012, 20(24):168-174.
[13] 方 華,郭 靜,田敬北. 基于OpenCV的嵌入式圖像處理平臺的構建[J]. 無線互聯科技, 2015(3):53-54.
[14] 汪 洋,李 垚,黃 魯. 基于Qt和OpenCV的無線視頻監控系統[J]. 微型機與應用,2015(10):67-69.
[15] 姚宇樂,陳 強,張九衛,等. 基于ARM920T的嵌入式圖像處理平臺搭建及應用[J].計算機系統應用, 2016(7):208-212.
Development of a Native Buildable Embedded Computer Vision Experimental System
PENG Peng, CHEN Yao, XU Zhiyu, YU Youling
(College of Electronics & Information Engineering, Tongji University, Shanghai 201804, China)
This paper develops a native buildable low-cost modular embedded computer vision experimental system named “CV-Innovator”. In the hardware aspect, this experimental system was composed as follows: an ARM Cortex-A7 dual-core SoC Allwinner A20 used as embedded processor; an OV7670 CMOS digital camera module collects real-time image; a 7-inch TFT-LCD monitor as well as a set of keyboard and mouse with USB port provide friendly human-machine interaction. In the software aspect, we build an embedded Linux OS for “CV-Innovator”, so the OpenCV and Qt based computer vision application program can be developed and run under the embedded Linux. When a prototype was made, we designed a face detection example application program. The example results validated the effectiveness of “CV-Innovator”, and system can be used in practice teaching of the computer science, electronic information, automation, etc.
embedded systems; computer vision; experimental system
2016-11-19
國家自然科學基金(71401125);上海市重點課程建設項目,同濟大學第11期實驗教改項目、第8期精品實驗項目。
彭 澎(1994-),男,云南昆明人,碩士生,從事嵌入式系統開發、電子系統設計研究。
Tel.: 021-69589241;E-mail: 1631552pp@tongji.edu.cn
徐志宇(1982-),男,山西太原人,博士,高級工程師,碩導,從事智能自動化應用研究。
Tel.: 021-69584663;E-mail: xuzhiyu@tongji.edu.cn
TP 37
A
1006-7167(2017)08-0133-04