《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于三星S3C2440A的Micro2440視覺處理平臺的構建
基于三星S3C2440A的Micro2440視覺處理平臺的構建
李紅巖,,邱聯(lián)奎
河南科技大學 電子信息工程學院,,河南 洛陽471003
摘要: 采用Micro2440開發(fā)板和OV9650攝像頭,,成功獲取了視頻圖像,,并且能夠對視頻中的每一幀圖像同步進行自定義的圖像處理,其處理的結果同時能夠在LCD上予以顯示。實驗結果證明該視覺處理平臺具有良好的視覺處理特性,,適合作為數(shù)字圖像處理平臺,,為進一步的圖像處理,、功能擴展以及嵌入式應用創(chuàng)造了條件,。
Abstract:
Key words :

摘 要:采用Micro2440開發(fā)板和OV9650攝像頭,成功獲取了視頻圖像,,并且能夠對視頻中的每一幀圖像同步進行自定義的圖像處理,,其處理的結果同時能夠在LCD上予以顯示。實驗結果證明該視覺處理平臺具有良好的視覺處理特性,,適合作為數(shù)字圖像處理平臺,,為進一步的圖像處理、功能擴展以及嵌入式應用創(chuàng)造了條件,。
關鍵詞:Micro2440,;OV9650;LCD,;圖像處理

    嵌入式機器人系統(tǒng)通常需要高速,、功能接口豐富的處理器系統(tǒng),而最新的Micro2440開發(fā)板采用了三星S3C2440A處理器,,該處理器基于ARM920T內核,,工作頻率400 MHz,0.13 μm的工藝制造,具有高性價比,、低功耗,、高性能的特點[1],同時內部集成了LCD、CMOS攝像頭等接口模塊,,能夠高速快捷地完成視頻信號處理,,而且豐富的外圍接口提供了系統(tǒng)良好的擴展特性。另外Micro2440核心板可以與底板分離單獨運行,,為進一步縮小體積預留了空間,。無論是基于圖像的處理還是視頻流的處理,首先都需要完成視覺平臺的構建,,本文在Micro2440開發(fā)板的基礎上實現(xiàn)了視覺處理平臺,完成了圖像,、視頻的處理和顯示功能,,并提出了基于顏色通道的背景差分法,完成目標物體中心的實時檢測,。
1 系統(tǒng)整體流程
    該平臺設計首先完成了基本的硬件初始化,,而CMOS攝像頭驅動以及相應的圖像處理作為一個單獨的模塊進行加載運行。該嵌入式系統(tǒng)的加載啟動任務是由BootLoader(BootLoader是嵌入式系統(tǒng)加電后運行的第一段程序)來完成的,。BootLoader分為兩個階段:第一階段通常由匯編語言實現(xiàn)完成部分硬件的初始化,,創(chuàng)建C語言運行環(huán)境;第二階段繼續(xù)進行初始化完成MMU、LCD顯示等設置,。在系統(tǒng)完成基本硬件的初始化工作后,,便可以啟動攝像頭進行圖像、視頻的采集處理,,系統(tǒng)結構如圖1所示,。
 


    BootLoader的第一階段啟動的流程依次為:ARM啟動或重啟→設置中斷向量→禁止看門狗、中斷→設置時鐘→Sdram初始化→復制RO/RW段到Sdram→ZI段清零→堆棧初始化→跳轉到main函數(shù),。第二階段則完成了以下操作:main函數(shù)→端口初始化→設置中斷請求→設置主頻→串口初始化→設置MMU→打開Cache→LCD初始化,。ARM系統(tǒng)MMU的設計為了便于實現(xiàn),采用了2段式的虛擬地址分配方式,,每個頁(Section)的大小設置為1MB;同時為了減少對S3C2440地址的修改,,采用了虛擬地址與物理地址相同的地址分配方式。
2 LCD設計
    Micro2440開發(fā)板配有240×320/NEC3.5英寸T- FT真彩液晶屏,,正確設置后能夠顯示清晰的圖像,、視頻。S3C2440A的LCD控制器支持的屏幕大小包括480×640,、240×320以及160×160等尺寸,,能夠產生VFRAME、VLINE,、VCLK,、VM等控制信號。這些控制信號的使用需要配置S3C2440A的C端口為LCD控制,。同時LCD的數(shù)據(jù)線VD[0]~ VD[7]也由C端口控制,,VD[8]~VD[23]則由D端口控制,需要設置做為LCD數(shù)據(jù)線,。由于使用的是TFT真彩液晶屏,,需要把LCD控制寄存器設置為TFT模式,這里設置為TFT的16BPP(Bits Per Pixel)模式,;同時還需要對LCDCON5進一步設置為5:6:5或5:5:5:1格式,,這里設置RGB格式為5:6:5格式,此信號在OV9650傳輸如圖2所示[2],。以便和攝像頭的視頻輸出格式相一致,,否則需要進行格式的轉化。在設置完幀緩存地址后,,寫入數(shù)據(jù),,便可以實現(xiàn)圖像的顯示,格式轉換過程如圖3所示,。

3 攝像頭驅動設計
    Micro2440開發(fā)板的配套攝像頭型號為OV9650,,該攝像頭具有130萬像素,,輸出視頻格式為YCbCr格式,同時S3C2440A的CAMIF(Camera Interface) 提供了ITU-R BT.601/656 8位標準輸入的支持[3],,最大可采樣4 096×4 096像素的圖像[4],在Preview模式下支持輸出RGB 16/24 bit格式,,這對于數(shù)字圖像的處理帶來了便利條件。S3C2440A的CAMIF與OV9650的連接如圖4所示,。


    OV9650驅動流程如下:設置Camera全局控制寄存器,,并復位→配置S3C2440A的J端口→使能OV9650的Normal模式→設置接口時鐘→通過I2CSCL,I2C-SDA與SID_C, SID_D信號建立S3C2440A與OV9650的通信→設置OV9650的寄存器組→初始化3C2440A攝像頭接口,,包括捕獲圖像的寬,、高、偏移,、輸入格式,、輸出格式、緩沖區(qū)地址等→將OV9650將LCD緩沖區(qū)地址更改到Camera的緩沖區(qū)地址,,以顯示Camera圖像→清除中斷→設置中斷處理函數(shù)→開始捕獲圖像,。
    其中,OV9650與S3C2440A的通信采用了兩線制的SCCB (Serial Camera Control Bus) [5],,通過該接口可實現(xiàn)各種圖像增強和控制功能,,如自動曝光、自動增益,、自動白平衡控制等,,以及控制圖像色彩、飽和度,、銳化,、鏡頭校準等[6]。S3C2440A控制端口產生SCCB的啟動,、停止等控制信號,,SCCB 協(xié)議中開始條件定義為:在SID_C 為高電平時, SID_D出現(xiàn)一個下降沿,則SCCB開始傳輸;停止條件定義為:在SID_C為高電平時, SID_D出現(xiàn)一個上升沿,則SCCB停止傳輸;在數(shù)據(jù)傳輸時,SID_C為高電平時,需要SID_D上的數(shù)據(jù)的穩(wěn)定,以便傳輸,,如圖5所示,。


    以寫一位數(shù)據(jù)傳輸為例,基本流程為:將數(shù)據(jù)放在SID_D上→啟動SID_C進行傳輸→延時傳輸后停止SID_C,;同理,,傳輸8位數(shù)據(jù)則需循環(huán)8次。類似地,,讀取時基本流程為:啟動SID_C→讀取SID_D→停止SID_C。一個完整的數(shù)據(jù)傳輸?shù)膶懼芷陧樞驗椋簩憦脑O備的ID→寫設備寄存器的地址→將此寄存器中寫入數(shù)據(jù),。
4 圖像處理設計
    在獲得攝像頭采集的圖像后,,常常需要對捕獲的圖像進行處理,并把處理的結果實時地顯示出來。本文通過設計在幀中斷處理函數(shù)中進行圖像處理,,可以很好地進行處理后圖像的動態(tài)顯示,。此時需要將OV9650獲得的圖像的buffer地址設置到一臨時空間中,完成處理后再送入LCD的buffer地址中進行顯示,;否則,,Camera和圖像處理函數(shù)同時寫LCD的buffer地址,將出現(xiàn)LCD顯示不正確的情況,。圖像處理流程如圖6所示,。


5 圖像獲取結果
    圖7分別是在室內環(huán)境下,桌面上一個普通乒乓球在攝像頭視頻顯示的結果(左)和在動態(tài)處理后攝像頭視頻顯示(右)的截圖,,其中視頻的下方同時顯示了一橫條圖片,。圖像處理函數(shù)完成了視頻在綠色通道中的同步顯示。經驗證,,圖像處理的結果良好,,色彩正常,并且無明顯滯后等異?,F(xiàn)象,。

6 運動目標檢測
    獲取OV9650圖像后,在此系統(tǒng)平臺上完成了對運動物體的目標檢測,,取得了良好效果,。常用的運動目標檢測方法有:光流法、幀差分法以及背景差分法[7],。光流法大多計算復雜,,占用CPU時間較多;幀差分法常常檢測目標不夠完整,;因而針對嵌入式平臺采用了運算速度較快的背景差分法,。實驗首先采用了基于灰度圖像的背景差分法,但效果不夠理想:設f(i,j)為一幀視頻圖像序列,;Rf,、Gf、Bf為其中的任一像素的紅綠藍分量,,i,,j為像素的橫坐標和縱坐標。B(i,j)為背景圖像序列,,同樣地,,RB、GB,、BB為其中的紅綠藍分量,,依據(jù)以下公式計算灰度值(類似黑白攝像頭獲得的灰度值):
   
背景差為: fB(i,j)=f(i,j)-B(i,j),。此系統(tǒng)中RGB格式為5:6:5格式,紅綠藍分量均取5位,,綠色分量舍棄了最低位,。獲得的差分圖像分別以紅色顯示和二值化獲得的結果如圖8所示。


    如圖8(右)所示,,由于灰度圖像的背景差分法獲得的像素值普遍較低,,因而屏幕亮度較暗,在室內光線中LCD屏幕顯示很不清晰,;圖8(左)為進行二值化后背景差分法的圖像,,也僅能夠得到小球的部分區(qū)域,效果不夠理想,。于是本文針對于彩色圖像提出了基于顏色通道的背景差分法,,可以獲得理想的效果。設P為顏色通道(這里紅色通道取值為0xF800),,則基于顏色通道的背景差分法用如下公式計算:


   
   

背景差為: fB(i,j)=f(i,j)-B(i,j),。若取閥值T則:fB(i,j)=fB(i,j)-T。獲得的差分圖像分別在紅色通道中顯示和二值化所得的結果如圖9所示,??梢妶D9左圖二值化后可獲得乒乓球的圓形輪廓,十分清晰,;而且在紅色通道中的圖像顯示輪廓明亮,,說明數(shù)值強度大抗干擾能力強。在獲得圖像后并自動計算出形心位置,,在橫軸和縱軸以白色直線顯示中心位置,,在以240×320分辨率輸出時,平均速率達30幀/s,實現(xiàn)了對運動目標中心的實時檢測,,如圖9右圖所示,。實驗結果表明, 此基于Micro2440的視覺處理平臺上能夠很好地進行圖像及視頻的顯示及處理。

    本文基于Micro2440的視覺處理平臺具有以下特點: (1)Micro2440平臺提供了豐富的外圍接口,,方便功能擴展,S3C2440A自帶有CAMIF(Camera Inter-face) 模塊,,無需接口轉化電路,核心板與底板分離可以進一步縮小體積;(2)CPU工作頻率 400 MHz,,處理速度較快,,OV9650高達130萬像素,分辨率高,。
    在每完成一幀的視頻采集后,,能夠及時地進行圖像處理,并且圖像處理的結果能夠在LCD上同步顯示,;同時輕松轉換便可以方便地得到標準24位BMP圖像,,為進一步數(shù)字圖像處理提供了良好的平臺,。

參考文獻
[1] 黃勇亮.基于嵌入式S3C2440的船舶導航系統(tǒng)設計[J]. 微計算機信息, 2008,24(11):135-154.
[2] OV9650 Color CMOS SXGA (1.3 MegaPixel) VarioPixel CAME-RACHIP. OmniVision Technologies , Version 1. 0 [M] .2004 ,5:10.
[3] S3C2440A 32-BIT RISC MICROPROCESSOR USER'S MANUAL PRELIMINARY Revision 0.14[M]. Samsung Electronics Company. 2004,7:10.
[4] 武云,王永皎,羅威.基于嵌入式Linux的攝像頭驅動程序設計與實現(xiàn)[J].計算機工程與科學, 2009,,31(5):129-136.
[5] OmniVision Serial Camera Control Bus ( SCCB) Functional Specification. OmniVision Technologies , Version : 2. 1[M] .2003 .
[6] 阮越廣,趙偉勝.基于WLAN的家用安全監(jiān)控系統(tǒng)的硬件設計[J].計算機工程,2008,,34(10):250-252.
[7] 李寧,黃山,張先震,等.基于背景差分的人體運動檢測[J].微計算機信息,2009, 25(7-3):257-282.

此內容為AET網(wǎng)站原創(chuàng),,未經授權禁止轉載。