基於嵌入式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] D.E.Simon,陳向群等譯.嵌入式系統軟體教程.北京:機械工業出版社,2005:23-65

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

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

最近訪問