歡迎您光臨本站 登入註冊首頁

概述

   由監控中心網路伺服器和多台視頻主機組成的監控終端與攝像頭視頻伺服器進行網路互聯所組成的基於Internet技術的Client/Server體系結構的傳統數字監控系統……

    由監控中心網路伺服器和多台視頻主機組成的監控終端與攝像頭視頻伺服器進行網路互聯所組成的基於Internet技術的Client/Server體系結構的傳統數字監控系統軟、硬體要求較高,且使用專業化,局限了視頻監控在孤立、分散以及對成本要求較苛刻的場合的應用。隨著現場可編程邏輯門陣列(FPGA)的應用越來越廣泛,基於FPGA的各種控制器也越來越豐富,特別是SOPC、Nios II技術越來越成熟,合理有效地將各種模塊無縫地連接到一起進行應用已成為一種趨勢。本文就是在這樣的背景下集成智能運動目標識別系統為一個片上系統,使得運動檢測靈活應用成為可能。

1 系統設計原理
    SOPC(System On Programmable Chip,可編程的片上系統)是Altem公司提出來的一種靈活、高效的SOC解決方案。本運動檢測系統的硬體框圖如圖1所示。
 
圖1 運動檢測系統的硬體框圖
    系統選用的FPGA晶元是美國Altera公司最新推出的Cyclone II系列的EP2C35。該晶元具有35000個邏輯單元、672個引腳、475個用戶自定義I/O介面、35個嵌入式乘法器和4個鎖相環,是一個集成度極高和功能強大的FPGA晶元。在FPGA中設計有Nios II軟核CPU和掛接在該Nios II系統的Avalon匯流排上的圖像預處理模塊、運動檢測模塊、Avalon三態橋、UART、LCD和通用并行介面等模塊。SDRAM則採用了MICRON公司的MT46V16M16TG晶元,FLASH 則採用了AMD公司的AM29LV128M晶元,並使用了NEC 公司的NL2432DR22-22B液晶顯示屏,圖像感測器是HV7131R圖像感測器,系統工作過程:當開發板開始/複位鍵按下,系統上電后,由Nios II通過Avalon匯流排對I2C配置的HV7131R圖像感測器進行初始化,將HV7131R捕捉到的實時視頻流傳遞給圖像預處理模塊;圖像預處理模塊將視頻數據分兩路進行處理:一路通過Avalon Tri-State Bridge傳遞給SDRAM用於暫存供LCD實時顯示;另一路通過RGB/YUV格式變換提取Y分量,送入運動檢測模塊進行運動檢測。運動檢測模塊根據運動檢測演算法判斷所截取圖像中是否有運動物體出現,若有則觸發蜂鳴器報警,同時Nios II通過控制匯流排將SDRAM中的信息寫入片外FLASH,以保存現場圖像;或通過UART將數據傳輸給GPRS終端,便於網路接收和自動報警。

2 系統的硬體設計
    Nios II軟核、圖像預處理、運動檢測模塊是系統的核心模塊。
    為了滿足系統實時性的要求,對於圖像預處理模塊中RGB/YUV轉換和運動檢測演算法採用Verilog硬體描述語言設計,由硬體完成相應的功能,在Quartus II平台上完成了系統的模擬、綜合、映射、布局布線。在模擬結果正確后,通過器件編程(即通過編程器將設計下載到實際晶元中)進行系統調試,極大提高了系統的運行速度,充分利用了Cyclone II EP2C35的邏輯資源。
2.1 圖像預處理模塊
    本設計的圖像預處理模塊主要完成Nios II對HV7131R圖像感測器的配置、圖像高速採集、視頻流中圖像幀的截取、RGB/YUV色彩空間轉換的功能。
    HV7131R是韓國現代公司採用0.3 um工藝生產的CMOS感測器,其有效像素大於30萬個,功率損耗低於90mW。HV7131R配置方便,可通過標準的I2C介面設置晶元內部的控制寄存器,控制圖像的曝光時間、解析度、幀率、RGB增益、水平/垂直鏡像等。HV7131R輸出的是10位的RGB原始數據,我們只使用其高8位。
    為了完成實時圖像的高速採集,在採集端加入一個自行設計的輸入FIFO控制介面IP核,並且在Nios II系統中加入Avalon DMA控制器,形成以DMA方式直接控制的FIFO和SDRAM之間的高速數據傳輸模式。該介面實現的功能是:當開始鍵按下時,根據I2C控制FIFO開始、並連續保存TD_DASTA埠的8點陣圖像數據。當FIFO存儲的數據達到設定的容量閾值(本設計採用每秒鐘所採集的視頻容量作為閾值)時,FIFO控制介面的dataavaible有效信號經由Avalon匯流排向DMA控制器提出傳送請求。DMA控制器接受請求后,就直接控制數據從FIFO控制介面的Readdata埠寫入SDRAM。FIFO控制介面設計完成後通過Quartus II連接在Nios II系統Avalon匯流排上。
    本設計採用每秒1幀的頻率截取視頻圖像,每間隔一秒鐘,DMA控制器在將數據從FIFO控制介面的Readdata埠寫入SDRAM的同時將FIFO中的第一幀圖像送入RGB/YUV色彩空間變換模塊,並保存入片內SRAM以完成後續工作。
    在運動檢測演算法中,由於視頻數據中Y分量是運動檢測時最為敏感的分量,而做比較的兩場抽樣數據必須取自相同的場次,因此最多只需要存儲一場有效行中的Y分量數據,這樣需要的實際存儲容量為:720×288=207360 Byte,需要的SRAM容量為256 kByte。所以圖像幀在進入運動檢測模塊之前還需要進行RGB/YUV色彩空間變換,提取其中的Y分量。根據如下RGB/YUV色彩空間變換公式:Y=0.299R+0.587G+0.114B,利用Verilog硬體描述語言設計變換模塊,採用硬體實現提升系統速度。

2.2 運動檢測模塊
    近年來出現了許多新的運動檢測演算法,但可以歸結為以下四大類:光流場分析演算法、主動輪廓演算法、統計模型演算法以及幀差法。前三種方法與第四種方法相比,具有精度高定位準的優點。但演算法的複雜性較高,目前難以在硬體平台上實現實時處理,因此,本系統採用了幀差法。幀差法是基於視頻幀圖像的變化分析,在連續的視頻流中,圖像若沒有運動,連續幀之間變化很小,反之則會引起幀差。
    本系統實現運動檢測演算法的具體流程如圖2所示。系統一方面接收新的一幀FIFO控制器中的圖像送入RGB/YUV變換模塊進行Y分量的提取,另一方面讀取SRAM中上一幀Y分量數據,並將兩者作絕對差值運算,當絕對差值大於某個閾值時,表明此時視頻流幀間發生了變化,系統觸發報警使能信號,打開蜂鳴器發出警報;同時Nios II通過Avalon匯流排控制SDRAM將SDRAM中的現場視頻流數據保存入片外FLASH中,記錄現場。
 
圖2 演算法的具體實現流程
    本模塊採用Verilog硬體描述語言編寫Nios II的定製指令,可以將一個複雜的標準指令序列簡化為一個用硬體實現的單一指令,從而簡化系統軟體設計並加快系統運行速度。在運動目標檢測跟蹤演算法中,對運動圖像的處理數據運算量大,循環數目多,使用定製指令完成許多循環內的數據處理,從而加速數據處理的速度。定製指令邏輯和Nios II的連接在SOPC Builder中完成。Nios II CPU配置嚮導提供了一個可添加256條定製指令的圖形用戶界面,在該界面中導入設計文件,設置定製指令名,並分配定製指令所需的CPU時鐘周期數目。系統生成時,Nios II IDE為每條用戶指令產生一個在系統頭文件中定義的宏,在c應用程序代碼中直接調用這個宏。
2.3 Nios II軟核
    Nios II處理器系列是一個用戶可配置的通用32位RISC嵌入式軟核處理器系列,根據系統實時性的要求選擇快速型(Nios II/f)Nios II處理器。這是一種高性能軟核,它的處理能力超過200 MIPS,需要佔用1800個邏輯單元,完全與二進位代碼兼容。在SOPC Builder中對Nios II進行定製同時在系統中集成FLASH、SDRAM、自定義指令等,並生成本設計定製的Nios II系統。

3 系統軟體設計
    本設計的大部分模塊都是由Verilog硬體描述語言來設計,由硬體來完成實際功能的。整個系統軟體所要作的工作就是協調各個模塊統一工作,並且處理系統各模塊所產生的中斷,使系統統一高效的工作。系統的軟體設計是以c語言形式利用Altera公司的軟體集成開發工具Nios II IDE所提供的硬體抽象層(HAL)的函數的支持來完成編寫的。系統啟動后,進行初始化工作,初始化程序主要完成HV7131R圖像感測器的寄存器配置、初始化DMA通道、清FIFO控制介面的FIFO緩衝器、檢查系統外圍組建等。隨後系統進入實時圖像採集和顯示狀態,DMA控制器檢測FIFO狀態,當檢測到FIFO可用時啟動一次DMA傳輸,通過LCD控制模塊進行LCD實時顯示。當開發板上檢測鍵按下,系統啟動運動檢測模塊的自定義指令進行運動檢測。根據檢測結果作出相應響應,啟動蜂鳴器報警並保存現場視頻圖像,或者進行新一輪的運動檢測直到取消檢測。

4 結束語
    本文的運動目標檢測跟蹤系統利用32位Nios II軟核處理器在CycloneII系列的EP2C35晶元為核心的實驗板上進行了軟、硬體調試,大大減小了系統的體積,而且在PC機上開發的程序可移植到Nios II處理器上來實現片上系統。從而方便地把用戶需要的介面和自定義邏輯加入到系統中去。而且利用Altera公司提供的HardCopy技術實現了FPGA到ASIC的無縫轉化,有效縮短了開發周期,同時能夠延長產品的生命周期,還可以不斷地在原有產品的基礎上進行升級設計。實驗結果表明,該運動檢測系統具有較強的穩健性和實時性,能夠快速有效地檢測出運動目標。此外本系統可以通過GPRS介面連接個人手機/PDA作為智能家居安保系統,或者作為一個大型網路監控系統的終端使用,對於不同的需求只需在SOPC Builder中進行定製即可。


[admin via 研發互助社區 ] 基於Nios II軟核的運動目標檢測系統設計已經有2236次圍觀

http://cocdig.com/docs/show-post-43020.html