1 引言 計(jì)算機(jī)智能視頻監(jiān)控是計(jì)算機(jī)視覺領(lǐng)域一個新興的應(yīng)用方向和備受關(guān)注的前沿課題。伴隨網(wǎng)絡(luò)技術(shù)和數(shù)字視頻技術(shù)的飛速發(fā)展,監(jiān)控技術(shù)正向著智能化、網(wǎng)絡(luò)化方向不斷前進(jìn)。監(jiān)控系統(tǒng)功能日益強(qiáng)大,但是依然需要工作人員不間斷地分析監(jiān)視場景內(nèi)的活動,日夜值守,工作量繁重。因此計(jì)算機(jī)視覺和應(yīng)用研究學(xué)者適時提出新一代監(jiān)控視頻監(jiān)控的概念。視頻監(jiān)控在不需要人為干預(yù)情況下,利用計(jì)算機(jī)視覺和視頻分析的方法對攝像機(jī)拍錄的圖像序列進(jìn)行自動分析,實(shí)現(xiàn)對動態(tài)場景中目標(biāo)的定位、識別和跟蹤,并在此基礎(chǔ)上分析和判斷目標(biāo)的行為,從而既能完成日常管理又能在異常情況發(fā)生時及時做出反應(yīng)。計(jì)算機(jī)視頻監(jiān)控系統(tǒng)不僅符合信息產(chǎn)業(yè)的未來發(fā)展趨勢,而且代表了監(jiān)控行業(yè)的未來發(fā)展方向。 嵌入式系統(tǒng)是指以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟硬件可裁剪、適應(yīng)于特定應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng),由于嵌入式系統(tǒng)的實(shí)時性等特點(diǎn),監(jiān)控計(jì)算機(jī)逐漸向嵌入式方向發(fā)展。但是目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,隨著Internet的發(fā)展以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與Internet的結(jié)合將代表著嵌入式技術(shù)的真正未來。本文所研究的基于Windows CE的視頻系統(tǒng)結(jié)合了嵌入式、網(wǎng)絡(luò)、智能監(jiān)控等特點(diǎn),用于遠(yuǎn)程自動監(jiān)控場所。 2 系統(tǒng)總體結(jié)構(gòu) 在嵌入式處理器上移植嵌入式操作系統(tǒng),不僅提高了開發(fā)效率,還可以大大提升視頻監(jiān)控的靈活度和擴(kuò)展性,使得視頻監(jiān)控系統(tǒng)的后續(xù)應(yīng)用程序開發(fā)便于實(shí)現(xiàn)。本視頻監(jiān)控系統(tǒng)總體結(jié)構(gòu)如圖1 所示。 前端 USB 攝像頭負(fù)責(zé)視頻采集;帶有嵌入式操作系統(tǒng)的ARM9 控制模塊控制USB 攝像頭的視頻采集和傳輸(通過以太網(wǎng)和中國移動無線網(wǎng)絡(luò)兩個途徑);Ethernet 接口和GPRS 模塊作為網(wǎng)絡(luò)傳輸模塊。 3 系統(tǒng)硬件設(shè)計(jì) 數(shù)字視頻監(jiān)控系統(tǒng)的硬件核心ARM微處理器S3C2410X是韓國的三星公司生產(chǎn)的32位RISC微處理器。含ARM920T內(nèi)核[1]、CPU主頻203MHz、板載64MB SDRAM、64MB FLASH。系統(tǒng)的核心硬件設(shè)計(jì)組成如圖2所示。主要包括USB攝像頭,采用CMOS 35萬象素感光芯片,處理器通過USB接口讀取USB攝像頭的視頻圖像數(shù)據(jù);以太網(wǎng)卡采用了10M以太網(wǎng)卡芯片DM9000;GPRS模塊采用華為GTM900無線模塊,插入SIM手機(jī)卡后通過AT命令發(fā)送短信到用戶手機(jī)上。 4 系統(tǒng)的軟件模塊設(shè)計(jì) 軟件部分包括Windows CE.NET OS鏡像文件NK.BIN和應(yīng)用程序模塊。Windows CE.NET提供了嵌入式平臺的集成開發(fā)環(huán)境Platform. Builder 4.0,其自帶設(shè)計(jì)、創(chuàng)建、生成、測試和調(diào)試等開發(fā)工具,和對標(biāo)準(zhǔn)開發(fā)板具備良好支持的板級支持包,可快速定制一個基于標(biāo)準(zhǔn)PC硬件結(jié)構(gòu)的嵌入式平臺,實(shí)現(xiàn)基于Windows平臺軟件的重用和移植,能較好地滿足嵌入式PC視頻監(jiān)控系統(tǒng)的開發(fā)和應(yīng)用需求。 4.1 嵌入式系統(tǒng)平臺設(shè)計(jì) NK.BIN是系統(tǒng)配置文件和定制的OS核心模塊合并后經(jīng)編譯形成的一個二進(jìn)制文件,NK.BIN的構(gòu)建就是對構(gòu)成OS的模塊進(jìn)行配置、鏈接、定址以生成可啟動OS鏡像的過程,在嵌入式平臺創(chuàng)建過程中完成。根據(jù)視頻監(jiān)控功能需求,主要是選擇BSP以及對OS各模塊特性進(jìn)行定制。 (1)選擇BSP。針對本系統(tǒng)的ARM920T硬件平臺,我們選擇了硬件廠商附帶的BSP作為嵌入式平臺的底板支持。此BSP提供了對相關(guān)設(shè)備驅(qū)動(ARM920T芯片驅(qū)動、網(wǎng)卡、USB像頭等)的軟件實(shí)現(xiàn)和支持,以及Windows CE.NET OS的核心特性的支持。 (2)應(yīng)用程序和服務(wù)特性。選擇COM組件特性,以提供對DirectX基于COM對象的函數(shù)和方法的接口支持。 (3)通信和網(wǎng)絡(luò)特性。網(wǎng)絡(luò)設(shè)備/驅(qū)動器接口規(guī)范,TCP/IP協(xié)議棧及其它網(wǎng)絡(luò)API,包括Windows Networking API、RTC Client API等網(wǎng)絡(luò)模塊,以實(shí)現(xiàn)向網(wǎng)絡(luò)服務(wù)器發(fā)送視頻數(shù)據(jù)的能力。 (4)文件系統(tǒng)和數(shù)據(jù)存儲特性。對內(nèi)置文件系統(tǒng)選取ROM&RAM File System模塊,用于OS鏡像的存放和運(yùn)行。外圍存儲設(shè)備的文件系統(tǒng)由存儲管理器負(fù)責(zé)管理,選取StorageManager模塊,以實(shí)現(xiàn)對FAT文件系統(tǒng)的存儲管理。 (5)編譯、鏈接、裝配OS各定制模塊,生成NK.BIN文件。建造CE操作系統(tǒng)后,應(yīng)創(chuàng)建為平臺上其他應(yīng)用程序的開發(fā)提供支持的軟件開發(fā)工具包SDK(包括Windows CE.NET操作系統(tǒng)組件,硬件驅(qū)動程序等)?梢岳肊mbedded VisualC++4.0提供的工具來創(chuàng)建、測試和修改應(yīng)用程序。利用Platform. Builder4.0創(chuàng)建SDK并導(dǎo)入到Microsoft Embedded Visual C++4.0,然后從環(huán)境列表中選擇所定制的平臺,進(jìn)行應(yīng)用程序的開發(fā)、調(diào)試和運(yùn)行。 4.2 應(yīng)用程序開發(fā) 系統(tǒng)主要模塊包括:視頻采集模塊,視頻壓縮傳輸模塊,圖像動態(tài)檢測及GPRS報警模塊。 1,視頻采集 本系統(tǒng)所用的是基于OV511芯片的網(wǎng)眼2000 USB攝像頭。Windows CE下的設(shè)備驅(qū)動程序分為兩類:本機(jī)驅(qū)動程序和流接口驅(qū)動程序。本機(jī)設(shè)備驅(qū)動程序,也稱為“內(nèi)置驅(qū)動程序”,這些設(shè)備驅(qū)動程序是一些硬件所必需的,是由原始設(shè)備制造商創(chuàng)建的,用以驅(qū)動如鍵盤、觸摸屏、音頻等設(shè)備,往往在設(shè)備售出后就不會再更換。流接口驅(qū)動程序是運(yùn)行在用戶級別的動態(tài)鏈接庫,用來實(shí)現(xiàn)一組稱為流接口函數(shù)的固定函數(shù),這些流接口函數(shù)使得應(yīng)用程序可以通過文件系統(tǒng)中的特殊文件與設(shè)備進(jìn)行交互。 每個流接口驅(qū)動程序必須實(shí)現(xiàn)一組標(biāo)準(zhǔn)的函數(shù):XXX_Close,XXX_Deinit,XXX_Init,XXX_IOControl,XXX_Open,XXX_Powerdown,XXX_powerUp,XXX_read,XXX_Seek,XXX_Write用來完成標(biāo)準(zhǔn)的文件I/O函數(shù)和電源管理函數(shù),這些函數(shù)提供給Windows CE.NET操作系統(tǒng)的內(nèi)核使用。這些函數(shù)通常也叫做流接口驅(qū)動程序的DLL接口。 流接口USB驅(qū)動主要分為下面幾步: 1)建立一個WCE Dynamic-Link Library; 2)書寫一個Export def文件輸出各個驅(qū)動需要的函數(shù)符號; 3)依據(jù)USB驅(qū)動加載的流程,添加完成USBInstallDriver,USBDeviceAttach,USBUnInstallDriver,CAM_Init,CAM_Deinit各個函數(shù),并進(jìn)行測試;這些函數(shù)正確填寫之后,驅(qū)動程序就可以加載了。 由于在Windows CE.Net系統(tǒng)中,設(shè)備的配置信息都是存儲在系統(tǒng)注冊表中,因此一個具體的USB流接口程序跟注冊表肯定是分不開的。我們希望驅(qū)動程序在系統(tǒng)啟動的時候能夠自動運(yùn)行,所以必須正確設(shè)置HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients鍵,這樣當(dāng)將設(shè)備附加到總線上時,USBD模塊可以自動加載該設(shè)備的合適的驅(qū)動程序。 2,視頻壓縮及傳輸 為了在局域網(wǎng)上有效的、高質(zhì)量的傳輸視頻流,需要多種技術(shù)的支持,其中包括視頻的壓縮、編碼技術(shù),應(yīng)用層質(zhì)量控制技術(shù)等等。 網(wǎng)絡(luò)的帶寬是有限的,所以需要壓縮傳輸視頻圖像,MPEG-4被廣泛的應(yīng)用于網(wǎng)絡(luò)環(huán)境下的實(shí)時視頻傳輸,因?yàn)镸PEG-4具有:可以達(dá)到很高的壓縮比;具有靈活的編碼和解碼復(fù)雜性;基于對象的編碼方式,允許視頻、音頻對象的交互;具有很強(qiáng)的容錯能力等優(yōu)點(diǎn)。為了達(dá)到視頻傳輸?shù)膶?shí)時性,總的思想是最少的發(fā)送冗余信息,最大程度上發(fā)送最新的視頻。局域網(wǎng)實(shí)時視頻傳輸采用服務(wù)器/客戶機(jī)模式,利用EVC實(shí)現(xiàn)。其工作流程如圖3所示。視頻采集采用從視頻采集卡捕獲視頻圖像,得到的是位圖型式的視頻幀,然后用Divx編碼器進(jìn)行壓縮,通過Winsock實(shí)現(xiàn)壓縮后的視頻數(shù)據(jù)在局域網(wǎng)中的實(shí)時傳輸,接收完的數(shù)據(jù)交給Divx解碼器解壓,最后實(shí)現(xiàn)視頻顯示。 3,圖像動態(tài)檢測及GPRS報警模塊 差影法是常用的運(yùn)動目標(biāo)檢測方法之一。它的基本思想是輸入圖像與背景模型進(jìn)行比較,通過判定灰度等特征的變化,或用直方圖等統(tǒng)計(jì)信息的變化來判斷異常情況的發(fā)生和分割運(yùn)動目標(biāo)。 考慮到本系統(tǒng)為固定區(qū)域視頻監(jiān)控,視頻背景圖像干擾因素較小,而且,差影法運(yùn)算量相對不大,更適合于在ARM9嵌入式處理器上進(jìn)行運(yùn)算,因而選用背景差法作為運(yùn)動檢測的算法。首先循環(huán)采集兩幀視頻圖像數(shù)據(jù),將圖像轉(zhuǎn)換為二值灰度圖像,然后分別提取兩幅圖像的亮度并做差,得出差影圖像,通過比較差影圖像的亮度閡值做出判斷,如果超過設(shè)定的闡值,則發(fā)出報警短消息,同時把當(dāng)時所抓拍的圖像保存下來。 結(jié)束語 本文在總結(jié)分析前人研究成果的基礎(chǔ)上,提出了切實(shí)可行的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的解決方案,通過合理完善的系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)了具有實(shí)用價值的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。系統(tǒng)采用先進(jìn)的基于ARMS3C2410微處理器的硬件平臺,采用最新的Windows CE作為服務(wù)器軟件的開發(fā)平臺;利用軟件實(shí)現(xiàn)性能優(yōu)良、適合網(wǎng)絡(luò)傳輸?shù)腗PEG-4視頻編碼標(biāo)準(zhǔn),能使監(jiān)控系統(tǒng)在較小的網(wǎng)絡(luò)帶寬下,獲得較好的視頻質(zhì)量。 本文作者創(chuàng)新點(diǎn):采用當(dāng)今主流的RAM嵌入式處理器設(shè)計(jì)監(jiān)控系統(tǒng),通過以太網(wǎng)傳輸,使得監(jiān)控不受距離的限制,并通過手機(jī)GPRS網(wǎng)絡(luò)及時通知用戶,達(dá)到監(jiān)控的智能性。 |