- 相關推薦
基于嵌入式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] D.E.Simon,陳向群等譯.嵌入式系統軟件教程.北京:機械工業出版社,2005:23-65
[4] 張懷柱,尹傳歷,宋建中等.基于DSP的嵌入式顯微圖像處理系統的設計.電子技術應用,2008(1):30-34
[5] 李志能.基于ARM和DSP的嵌入式實時圖像處理系統設計與研究.[浙江大學碩士畢業論文],2005:2-10
【基于嵌入式Linux系統的圖像處理研究論文】相關文章:
圖像處理技術論文07-29
嵌入式linux系統工程師畢業實習報告07-12
Linux系統研究求職信范文06-27
嵌入式系統內存的管理方案研究06-02
慣有嵌入式系統內存管理方案研究06-02
Linux系統研究求職信范文300字06-27
基于系統設計的科研管理論文09-22
基于課堂的教師行動研究的論文06-07
基于霧霾治理環境中的綠化廢棄物處理研究論文(精選7篇)09-20
圖像處理崗位職責02-01