<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DM6446處理器的視頻運(yùn)動(dòng)車輛檢測(cè)系統(tǒng)的實(shí)現(xiàn)

          基于DM6446處理器的視頻運(yùn)動(dòng)車輛檢測(cè)系統(tǒng)的實(shí)現(xiàn)

          作者: 時(shí)間:2012-11-05 來(lái)源:網(wǎng)絡(luò) 收藏

          隨著現(xiàn)代交通運(yùn)輸業(yè)的快速發(fā)展,道路上的車輛日益增多,而伴隨而來(lái)的交通擁堵、道路使用效率不高等問(wèn)題卻給日常帶來(lái)了重重困難。融合了計(jì)算機(jī)、電子等現(xiàn)代高新科技的智能交通系統(tǒng)(ITS:Intelligent Transport System)提供了解決方法。

          是ITS 的重要組成部分,本文探討了以TI 的TMS320DM6446(簡(jiǎn)稱DM6446)為嵌入式開(kāi)發(fā)平臺(tái)的交通視頻信息采集和處理系統(tǒng)的設(shè)計(jì),通過(guò)分析實(shí)時(shí)交通視頻序列,采用差異積累背景建模、Otsu 自動(dòng)閾值選取、及區(qū)域生長(zhǎng)定位等技術(shù),最終實(shí)現(xiàn)交通場(chǎng)景視頻運(yùn)動(dòng)車輛的檢測(cè)。

          1 系統(tǒng)硬件構(gòu)成


          本系統(tǒng)選用的TMS320DM6446 是基于ARM926 和TMS320C64x+兩個(gè)核心的、高度集成的數(shù)字媒體處理器。ARM926EJ-S 采用管道化流水線可以執(zhí)行32bit/16bit 指令集,并提供了獨(dú)立的16KB的指令Cache 和8KB 的數(shù)據(jù)Cache,可有效控制和管理外部中斷、各種接口及外設(shè)。TMS320C64x+屬TMS320C6000 系列高性能的定點(diǎn)DSP 處理器,集成了64 個(gè)32 位通用寄存器和8 個(gè)功能單元,硬件支持塊循環(huán)操作,采用二級(jí)Cache 結(jié)構(gòu):L1 程序/數(shù)據(jù)Cache 和L2 存儲(chǔ)/Cache.ARM 和DSP 共享外部256MB DDR SDRAM 存儲(chǔ)器,64MB NAND Flash用于存放ARM 和DSP 代碼。

          系統(tǒng)硬件平臺(tái)還包含視頻處理子系統(tǒng)(VPSS)和眾多外設(shè)資源。VPSS 是DM6446 中專門負(fù)責(zé)視頻輸入輸出的硬件模塊,由視頻處理前端(VPFE)和視頻處理后端(VPBE)組成,系統(tǒng)模擬視頻信號(hào)經(jīng)由TVP5150解碼器解碼成YUV422 格式的視頻數(shù)據(jù)后傳送給VPFE 的CCD 控制器,然后通過(guò)EMIF 接口將暫存在VPSS 內(nèi)部Buffer 中的數(shù)據(jù)傳送到外部DDR SDRAM中。VPBE 的屏幕顯示(OSD)模塊將視頻數(shù)據(jù)以YCbCr形式提交給視頻編碼器(VENC),通過(guò)視頻編碼器輸出到VGA 或CVBS 接口。本文處理系統(tǒng)的硬件拓?fù)浣Y(jié)構(gòu)如圖1 所示。


          圖1 DM6446 系統(tǒng)平臺(tái)硬件結(jié)構(gòu)示意圖

            2 系統(tǒng)軟件設(shè)計(jì)

          圖2 示意了系統(tǒng)硬件平臺(tái)軟件處理模塊的組成結(jié)構(gòu)。如圖2 所示,軟件部分主要完成3 個(gè)任務(wù):圖像的采集與存放、ARM 與DSP 通信和視頻圖像處理。


          圖2 DM6446 系統(tǒng)平臺(tái)軟件模塊構(gòu)成框圖。

          ARM 端負(fù)責(zé)初始化系統(tǒng)并控制數(shù)據(jù)的采集和存放。系統(tǒng)初始化時(shí)VPSS 被配置為場(chǎng)模式,VPFE 負(fù)責(zé)將采集到的視頻數(shù)據(jù)連續(xù)傳送到內(nèi)存緩沖區(qū)。由于ARM 端在向內(nèi)存中存放圖像時(shí)DSP 端不能同時(shí)讀取,為了保證數(shù)據(jù)處理的正確性,本文采用雙緩沖機(jī)制,即:設(shè)定兩個(gè)各自連續(xù)的幀緩沖區(qū)VIDEO BUF0 和video BUF1,視頻數(shù)據(jù)交替的向這兩個(gè)區(qū)域緩沖刷新。

          ARM 與DSP 兩核之間的通訊通過(guò)內(nèi)存共享和中斷的方式實(shí)現(xiàn)。ARM 通過(guò)寄存器ARM2DSP0 向DSP發(fā)出中斷信號(hào),DSP 使用寄存器DSP2ARM0 給ARM發(fā)送中斷信號(hào)。發(fā)中斷的一方在中斷信號(hào)發(fā)出前向共享內(nèi)存填寫命令,接收中斷的一方在中斷函數(shù)中讀取命令,其他模塊按照當(dāng)前的命令執(zhí)行相應(yīng)任務(wù)。

          視頻圖像的處理在DSP 核上進(jìn)行,采集到的視頻圖像數(shù)據(jù)為YUV422 格式,算法處理時(shí)僅讀取視頻數(shù)據(jù)的Y 分量,緊接將視頻數(shù)據(jù)進(jìn)行差異積累背景建模、運(yùn)動(dòng)區(qū)域檢測(cè)等操作以實(shí)現(xiàn)對(duì)視頻序列運(yùn)動(dòng)目標(biāo)的檢測(cè)。最后DSP 負(fù)責(zé)將檢測(cè)完的視頻數(shù)據(jù)存放至固定顯示緩存區(qū),由VPBE 讀取后顯示。

          3 視頻運(yùn)動(dòng)目標(biāo)檢測(cè)算法設(shè)計(jì)

          在獲得視頻數(shù)據(jù)后,需進(jìn)一步對(duì)視頻運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)(運(yùn)動(dòng)車輛)。對(duì)固定相機(jī)的應(yīng)用場(chǎng)合,一般采用背景差技術(shù)檢測(cè)視頻運(yùn)動(dòng)目標(biāo),而背景差法又受背景建模效果的約束。目前存在如基于光流場(chǎng)、目標(biāo)模型以及差分圖像等多種視頻運(yùn)動(dòng)目標(biāo)檢測(cè)方法?;诠饬鲌?chǎng)的目標(biāo)檢測(cè)法對(duì)噪聲敏感、計(jì)算量大,導(dǎo)致算法實(shí)時(shí)性較差?;谀繕?biāo)模型的檢測(cè)方法一般須建立目標(biāo)的三維模型,再將模型投影至二維平面,再在圖像中進(jìn)行匹配?;诓罘謭D像的檢測(cè)方法較為常用,可分為鄰幀差和背景差兩種方法,背景差法是視頻運(yùn)動(dòng)目標(biāo)檢測(cè)中的流行方法。本文即采用背景差法對(duì)目標(biāo)運(yùn)動(dòng)區(qū)域進(jìn)行檢測(cè),本文針對(duì)嵌入式應(yīng)用,從檢測(cè)算法的處理效率出發(fā),場(chǎng)景背景模型的獲取采用文獻(xiàn)[4]所述的基于差異積累的背景建模法。對(duì)視頻運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)主要經(jīng)過(guò)四個(gè)步驟:差異積累背景建模、運(yùn)動(dòng)區(qū)域檢測(cè)、和區(qū)域生長(zhǎng)法視頻運(yùn)動(dòng)目標(biāo)定位。


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();