嵌入式機器視覺系統(tǒng)優(yōu)化研究
摘要:介紹了基于ARM+DSP架構的嵌入式機器視覺系統(tǒng)的特性,分析了制約嵌入式機器視覺系統(tǒng)性能的因素。從操作系統(tǒng)和應用程序方面,討論了嵌入式機器視覺系統(tǒng)的優(yōu)化方案。通過對嵌入式Linux內(nèi)核和文件系統(tǒng)進行裁剪,對應用程序代碼進行大量的優(yōu)化,并充分利用Cotex —A處理器獨有的NEON加速技術,使系統(tǒng)開機啟動時問縮短25 s,應用程序運行速度提高2.5倍。
關鍵詞:嵌入式;機器視覺;優(yōu)化;ARM;NEON
嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。嵌入式機器視覺系統(tǒng)是指用嵌入式計算機處理由光學傳感器接收到的圖像信息,以實現(xiàn)對物體的檢測和識別的裝置,如數(shù)碼相機、手持二維碼識別設備,體感交互游戲機等。由于機器視覺系統(tǒng)需要進行大量復雜的數(shù)據(jù)運算,因此目前大多數(shù)的機器視覺系統(tǒng)還是基于PC系統(tǒng)構建,但隨著近年來嵌入式系統(tǒng)的高速發(fā)展,嵌入式機器視覺系統(tǒng)越來越多地應用于工業(yè)檢測與控制、智能交通、安防、醫(yī)療器械、機器人導航及消費電子等領域。
嵌入式機器視覺系統(tǒng)的性能主要取決于硬件和軟件兩方面。目前應用于嵌入式機器視覺系統(tǒng)的硬件平臺主要有Intel基于x86架構的Atom平臺、TI基于ARM—DSP的OMAP系列平臺、NVIDIA基于ARM—GeForce的Tegra系列平臺、IBM等基于PowerPC的處理平臺等,其中ARM—DSP是一種高性價比的、應用廣泛的體系結構。除了硬件平臺之外,嵌入式操作系統(tǒng)的選擇對機器視覺系統(tǒng)的性能也很重要,如開機時間,系統(tǒng)穩(wěn)定性等。嵌入式操作系統(tǒng)的種類比較多,其中較為流行的主要有μC/OS、Windows CE、VxWorks、Android、iOS、Meego、QNX和Linux等。在諸多嵌入式操作系統(tǒng)中,Linux以其內(nèi)核穩(wěn)定、支持多種硬件平臺、完全免費、源代碼完全開放、可裁剪定制、易于移植的特性,成為大多數(shù)廠家的絕佳選擇。此外,由于嵌入式機器視覺系統(tǒng)具有處理數(shù)據(jù)量大,算法復雜的特點,對嵌入式機器視覺應用程序的優(yōu)化也至關重要。
文中以采用ARM—DSP結構的Beagleboard—xM開發(fā)板為例,構建了用于目標檢測跟蹤的嵌入式機器視覺系統(tǒng),從操作系統(tǒng)和機器視覺應用程序方面對系統(tǒng)進行優(yōu)化,并充分利用Cotex—A處理器的NEON加速技術,顯著提高了嵌入式機器視覺系統(tǒng)的性能。
1 系統(tǒng)軟硬件組成
文中所采用的嵌入式機器視覺系統(tǒng)的硬件組成如圖1所示。其中DM3730處理器是由TI生產(chǎn)的單片系統(tǒng)(SoC)處理器,采用了POP(Package on Package)封裝技術,內(nèi)含1G主頻的ARM Cortex—A8,主頻800 M的TMS320C64+內(nèi)核和512 M的LPDDR內(nèi)存。該處理器有較強的多媒體圖像、視頻處理能力,特別適合于構建嵌入式機器視覺系統(tǒng)。Beagleboard—xM沒有Flash,系統(tǒng)是從MicroSD卡啟動的。PMIC為電源與音頻管理模塊,它通過McBSP總線與處理器連接。攝像頭和以太網(wǎng)數(shù)據(jù)通過USB接口傳給處理器,處理器運行目標檢測與跟蹤程序,并將處理結果送到LCD顯示。Minicom用于和上位機進行通訊,便于調(diào)試。
圖2為系統(tǒng)的軟件結構圖。在嵌入式Linux內(nèi)核中包含了對CPU、USB攝像頭、電源管理設備及USB以太網(wǎng)等的驅動支持。其中V4L是Linux內(nèi)核中關于視頻設備的API接口,UVC(USB Video Class)是為USB攝像頭提供即插即用功能的驅動模塊,在此基礎上將開源的跨平臺機器視覺庫OpenCV2.2移植到了嵌入式平臺上,并在應用程序中實現(xiàn)對視頻信號的采集和處理。
評論