基於嵌入式Linux系統的圖像處理研究論文

摘 要:嵌入式圖像處理系統的完成將爲圖像處理開闢新的實現途徑,並且爲嵌入式系統的應用打開一片新的領域。基於嵌入式平臺的圖像處理系統是未來圖像處理系統的發展趨勢,研究如何將嵌入式平臺和圖像處理結合起來,對於進一步拓展圖像處理應用領域具有非常深遠的意義。本文分別介紹本系統軟硬件整體設計及嵌入式圖像處理系統開發環境的建立。

基於嵌入式Linux系統的圖像處理研究論文

關鍵詞:嵌入式;Linux;圖像處理

引言

數字圖像處理系統是執行處理圖像、分析理解圖像信息任務的計算機系統。儘管圖像處理技術應用廣泛,圖像處理系統種類很多,但他們的基本組成是相近的。嵌入式數字圖像處理系統主要包括:圖像輸入設備、執行處理分析與控制的微處理器、輸出設備、存儲系統中的圖像數據庫、圖像處理程序庫。

一、嵌入式系統圖像處理技術研究現狀

目前國內外嵌入式圖像處理系統正在成爲微型計算機開發的熱門研究課題。結合嵌入式系統的高端圖像處理性能,手機、數碼、mp4等產品的嵌入式處理器已在上述市場中佔有比較大的份額,而且嵌入式系統已成功應用於醫療設備、機器人控制中的圖像領域,現代戰爭中利用圖像進行的精確制導、無人飛機的電視導航等。

美國“索傑納”火星車作爲技術高密集的移動機器人,採用的是美國WindRiver公司的Vxworks嵌入式操作系統。火星車上負責採集、處理傳輸圖像的控制器採用16位以上的處理器,各種MCU如ARM、MIPS、68K系列的處理器在控制器中佔據核心地位。

近年來,結合嵌入式系統、DSP和實時圖像處理等領域的最新發展,嵌入式實時圖像處理系統採用基於DSP+FPGA+ARM的硬件系統架構設計,將高速的DSP與在通訊、網絡和實時控制方面具有獨特優勢的strongARM處理器以及接口邏輯豐富、並行運算能力強大的FPGA結合起來,爲嵌入式實時環境下一些複雜算法的實現開闢了新的途徑。但該系統在軟件實現中的一些關鍵問題,特別是DSP代碼的開發與優化等內容還不成熟和完善。

在軟件方面,大多數嵌入式操作系統一般採用微內核結構,內核只提供基本的功能,例如任務調度、任務之間的通信與同步、內存管理、時鐘管理等,其它的應用組件,比如網絡功能、GUI系統等均工作在用戶態,以系統進程或系統調用的方式工作。因而整個系統都是可裁減的,用戶可以根據特定應用要求選用相應的組件。嵌入式操作系統主要有Vxworks、QNX、PalmOS、Windows CE、Linux等。

二、Linux開發環境的'建立

嵌入式Linux開發環境有幾個方案

(1)基於PC機Windows操作系統下的CYGWIN。

(2)在Windows下安裝虛擬機後,再在虛擬機中安裝Linux操作系統。

(3)直接安裝Linux操作系統。

我們實際的開發環境爲第二種方法,即在虛擬機new Red Hat Linux VMware Workstation中安裝Red Hat Linux 9.0,它支持中文,並且包含了絕大部分的開發工具。開發環境建立步驟如下:

操作系統使用Red Hat Linux 9.0,選擇完全安裝,需要磁盤空間大約5G。接着安裝Linux的編譯器和開發庫以及ARM-Linux的所有源代碼,需要空間大約爲800M。然後安裝相應的GCC交叉編譯器arm-linux-gcc。配置開發主機,配置Minicom,該軟件作爲調試嵌入式開發板信息輸出的監視器和鍵盤輸入的工具,一般參數爲波特率115200,數據位8位,停止位1,無奇偶校驗,軟硬件控制流設爲無。

關閉防火牆,配置NFS網絡文件系統。建立引導裝載程序Bootloader,本文使用北京博創公司提供的vivi。然後下載ARM-Linux,添加自己的特定硬件的驅動程序,使用模塊方式調試驅動。建立根文件系統,使用Busybox軟件進行功能裁減,產生一個最基本的根文件系統,再根據自己的應用需要添加其他的程序。修改根文件系統中的啓動腳本,它的存放位置位於/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile等,自動掛裝文件系統的配置文件/etc/fstab。根文件系統在嵌入式系統中一般設爲只讀,需要使用mkcramfs、genromfs等工具產生燒寫映象文件。建立應用程序的flash磁盤分區,本系統使用線性Nor-Flash,使用YAFFS文件系統,在內核中提供文件系統驅動。最後將開發的應用程序下載到根文件系統中。

三、圖像採集和顯示設備分析

在圖像採集模塊,遵循V4L(Video for Linux)的標準,使用網眼PC350攝像頭採集圖像。整體的USB圖像採集部分可由CMOS圖像傳感器、USB Camera控制器OV511和256K RAM構成。OV511內置了USB收發控制器,能夠將數字圖像數據通過USB傳給ARM處理器,保證了數據的快速實時。ARM處理器通過USB配置OV511,OV511則對CMOS圖像傳感器的控制字進行配置。圖1爲圖像採集子系統框圖。

圖像顯示模塊採用8""TFT彩色液晶觸摸屏,256色,分辨率爲640×480,點距爲0.2535×0.253,通過32針並口與開發板通訊。

四、軟件的多線程整體設計

線程是一組指令的集合,或者是程序的特殊段,它可以在程序裏獨立執行,所以線程基本上是輕量級的進程,它負責在單個程序裏執行多任務。多線程程序作爲一種多任務、併發的工作方式,最突出的優點就是提高應用程序的響應速度。使用多線程技術,可以避免主程序等待的情況,從而提高程序運行效率。

通常嵌入式系統中圖像採集速度較快,而圖像處理速度較慢,爲解決二者速度不匹配和資源共享問題,以提高系統工作效率,本文采用圖像採集和處理多線程設計,通過互斥鎖和條件變量來同步線程。設計建立帶互斥鎖的4幀圖像緩存區作爲圖像採集線程和圖像處理線程進行數據交換的共享緩衝區。圖像採集線程順序地從V4L接口程序獲取圖像存入共享緩存區,然後由圖像處理線程不斷地從共享緩衝區讀取數據幀進行處理。主流程如圖2所示。

圖2 系統主流程圖

程序首先進行視頻設備初始化,獲取攝像頭基本信息和採集圖像的各種屬性,並分配4幀圖像緩存區struct image_buf{int buffer[BUFFER_SIZE];pthread_mutex_t lock;int readpos,writepos;pthread_cond_t notempty;pthread_cond_t notfull;};再啓動圖像採集線程pthread_create(&th_cap,NULL,capture,0)進行圖像採集,建立圖像處理線程pthread_create(&th_pro,NULL,process,0)進行圖像處理;其中,互斥鎖lock用來實現兩線程間圖像數據的共享和通信,但只有鎖定和非鎖定兩種狀態,因此通過設置條件變量notempty、notfull來監聽圖像緩存區狀態,通過允許線程阻塞和等待另一個線程發送信號的方法彌補互斥鎖的不足。Readpos和writepos用來確定緩衝區中圖像的讀寫位置。

五、結束語

基於嵌入式系統的圖像處理與界面開發技術將嵌入式技術的多功能、可配置、多種通信模式、方便的網絡接口、人機用戶界面、實時性帶入了圖像處理領域。伴隨着圖像處理技術應用的深入,再結合嵌入式操作系統的強大功能,圖像處理技術的發展方向將越來越寬廣。

參考文獻:

[1] 張瑩,李鵬,陳立峯等.嵌入式系統發展綜述.電子技術,2008,24(6):74-78

[2] 郭劍鋒.基於ARM微處理器的以太網工業智能控制器.製造業自動化,2004,26(3):76-78

[3] n,陳向羣等譯.嵌入式系統軟件教程.北京:機械工業出版社,2005:23-65

[4] 張懷柱,尹傳歷,宋建中等.基於DSP的嵌入式顯微圖像處理系統的設計.電子技術應用,2008(1):30-34

[5] 李志能.基於ARM和DSP的嵌入式實時圖像處理系統設計與研究.[浙江大學碩士畢業論文],2005:2-10