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