選用ARM11(S3C6410)處理器作為硬件平臺,嵌入式Linux操作系統(tǒng)作為軟件平臺,綜合運(yùn)動圖像檢測的背景差分法和幀間差分法為算法,并與GSM模塊相結(jié)合,設(shè)計(jì)并實(shí)現(xiàn)了一種應(yīng)用于家居環(huán)境或私人辦公室無人值守的運(yùn)動目標(biāo)檢測系統(tǒng)。提出了系統(tǒng)設(shè)計(jì)的總體方案,并詳細(xì)介紹了系統(tǒng)軟硬件平臺的設(shè)計(jì)流程,最后對系統(tǒng)進(jìn)行了測試。
隨著社會的發(fā)展和科技的進(jìn)步,人們的安防意識越來越強(qiáng),而計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),通信技術(shù),和數(shù)字視頻編碼技術(shù)的日益成熟,使基于計(jì)算機(jī)的多媒體視頻監(jiān)控系統(tǒng)成為可能。但是傳統(tǒng)的視頻監(jiān)控系統(tǒng)因十分復(fù)雜,功耗和成本較高且需要值守,而無法應(yīng)用于諸如家居或私人辦公室等場所,為此,本文設(shè)計(jì)了一種以ARM11為核心處理器,嵌入式Linux為操作系統(tǒng),在傳統(tǒng)的視頻監(jiān)控的基礎(chǔ)上加入了目標(biāo)檢測的算法,并與GSM模塊相結(jié)合,已達(dá)到無人值守的目的。
1 系統(tǒng)總體設(shè)計(jì)
運(yùn)動目標(biāo)檢測系統(tǒng)采用S/B(服務(wù)器/瀏覽器)工作模式,總體上分為服務(wù)器監(jiān)控模塊,短信通知模塊(GSM)和客戶查看模塊。服務(wù)器監(jiān)控模塊采用三星公司的ARM11(S3C6410)微處理器,開源的Linux操作系統(tǒng),GSM模塊采用Q2403A芯片,當(dāng)監(jiān)控的畫面發(fā)生變化,即檢測到運(yùn)動目標(biāo)時(shí),服務(wù)器會將發(fā)生變化的圖像以圖片的格式存儲起來發(fā)送給客戶端,與此同時(shí)2403A會以短信的方式通知客戶,客戶可以通過IE瀏覽器來查看圖像的變化結(jié)果。系統(tǒng)的總體設(shè)計(jì)如圖1所示。
2 硬件結(jié)構(gòu)
? ??本文采用廣州友善之臂公司的Tiny6410開發(fā)板,Tiny6410是一款以ARM11(三星S3C6410)作為主處理器的嵌入式板,該CPU基于ARM11-76JZF-S核設(shè)計(jì),內(nèi)部集成了強(qiáng)大的多媒體處單元。硬件架構(gòu)如圖2所示。短信通知模塊的Q2403A為WAVECOM公司推出的一款GSM?GPRS模塊,其體積較小,重量較輕,主要由射頻天線,內(nèi)部FLASH,SRAM和GSM基帶處理器,匹配電源和一個40腳的ZIF插座組成。GSM基帶處理器是核心部件,其作用相當(dāng)于一個協(xié)處理器,用來處理外部系統(tǒng)通過串口發(fā)送過來的AT指令。
3 軟件平臺
? ??系統(tǒng)軟件平臺以Linux操作系統(tǒng)為基礎(chǔ),首先在宿主機(jī)上建立交叉編譯環(huán)境,并安裝交叉編譯器arm-Linux-gCC。其次完成U-Boot以及Linux 2.6.33內(nèi)核的移植和編譯,構(gòu)建基于busy-box1.13.3的根文件系統(tǒng),由于嵌入式服務(wù)器資源的局限性,包括內(nèi)存大小,CPU的
處理能力等。因此,在設(shè)計(jì)過程中需要對內(nèi)核進(jìn)行裁剪,在提高系統(tǒng)性能的同時(shí)減少了系統(tǒng)資源的占用,在剪裁過的Linux操作系統(tǒng)上編寫運(yùn)動檢測的應(yīng)用程序和短信報(bào)警程序。
? ? ? ? ? ?3.1 嵌入式Linux下的運(yùn)動目標(biāo)檢測算法
? ??目前,對運(yùn)動物體的檢測和運(yùn)動參數(shù)測量的研究方向主要有2種,即:運(yùn)用人工神經(jīng)網(wǎng)絡(luò)和運(yùn)用圖像處理的方法,大多數(shù)專家學(xué)者都把研究重點(diǎn)放在運(yùn)用圖像處理的方法進(jìn)行運(yùn)動目標(biāo)檢測和跟蹤,現(xiàn)在的比較有效的圖像運(yùn)動目標(biāo)檢測的方法主要是光流法和差分圖像法。一般來說光流發(fā)的時(shí)間開銷很大,其實(shí)時(shí)性和實(shí)用性。相反,圖像差分法比較簡單,易于實(shí)現(xiàn),圖像差分法可分為2類:背景圖像差分法和幀間差分法。背景圖像差分法是傳統(tǒng)運(yùn)動目標(biāo)檢測方法中最直接最簡序列圖像當(dāng)前幀與背景圖像做減法運(yùn)算。由于運(yùn)動物體和背景在灰度或色彩上存在差別,相減后所得的結(jié)果中每一像素的值和一個預(yù)先設(shè)定的閾值相比較,如果這個像素的值大于設(shè)定的閾值,則判定被監(jiān)控的場景中存在運(yùn)動物體,總而得到運(yùn)動的目標(biāo)。背景圖像差分法原理設(shè)計(jì)簡單,但同時(shí)也存在受光線,天氣等外界條件變化的影響較大。幀間差分法是一種通過對視頻圖像序列中相鄰兩幀做差分運(yùn)算來獲得運(yùn)動目標(biāo)輪廓的方法,它可以很好地適用于存在多個運(yùn)動目標(biāo)和攝像機(jī)移動的情況,當(dāng)監(jiān)控場景中出現(xiàn)異常物體運(yùn)動時(shí),幀與幀之間會出現(xiàn)較為明顯的差別,兩幀相減,得到兩幀圖像亮度的絕對值,判斷它是否大于閾值來分析視頻或圖像序列的運(yùn)動特性,確定圖像序列中有無物體運(yùn)動,圖像序列逐幀的差分,相當(dāng)于對圖像序列進(jìn)行時(shí)域上的高通濾波。幀間差分法對光線等場景變化不太敏感,能適應(yīng)各種動態(tài)環(huán)境,穩(wěn)定性較好,其缺點(diǎn)是:不能提取出對象的完整區(qū)域,只能提取出邊界,當(dāng)物體在前后兩幀中幾乎完全重疊時(shí),則檢測不到運(yùn)動的物體。鑒于背景差分法和幀間差分法的優(yōu)缺點(diǎn),將兩種方法結(jié)合起來,使它們優(yōu)勢互補(bǔ)。在視頻圖像序列中,利用已有的背景差分法和幀間差分法作為啟示,將動態(tài)圖像中連續(xù)兩幀差圖像和背景差圖像直接進(jìn)行與操作,再將結(jié)果進(jìn)行二值化處理得到運(yùn)動結(jié)果。
3.2 算法描述
? ??算法描述如下所示:
? ? (1)對序列圖像進(jìn)行3x3中值濾波預(yù)處理,去掉圖像隨即噪聲。減少以后運(yùn)算的復(fù)雜度,克服噪聲對圖像處理結(jié)果的干擾;
? ? (2)從視頻圖像序列中選取背景圖像Bk(x,y),使其只包含固定的背景圖像;
? ? (3)在視頻圖像序列中選取連續(xù)的兩幀圖像,其中前一幀圖像Pk-1(x,y);
? ? (4)計(jì)算當(dāng)前幀與背景幀差得FD(x,y),從圖像中提取出完整的目標(biāo);
? ? (5)計(jì)算當(dāng)前幀與前一幀的差得FD(x,y),得到目標(biāo)的變化量;
? ? (6)求幀差FD(x,y)與FG(x,y)的交集得到運(yùn)動目標(biāo)粗糙的運(yùn)動區(qū)域圖像;
? ? (7)數(shù)學(xué)形態(tài)學(xué)運(yùn)算使得運(yùn)動區(qū)域封閉,連續(xù)完整,并去掉背景中的噪聲。
? ? 其中:
? ?
? ? 式中T為閾值。對于給定視頻序列的圖像,假設(shè)像素點(diǎn)k處沒有運(yùn)動,其幀差也服從均值為0,方差為σ2的Gauss分布N(O,σ2):
? ??
? ? 式中:H0表示無運(yùn)動假設(shè);σ2是幀差得統(tǒng)計(jì)方差,通常認(rèn)為他等于攝像頭噪聲方差的2倍。根據(jù)概率統(tǒng)計(jì)學(xué)假設(shè)檢驗(yàn)“3σ”法則,并根據(jù)“正確的閾值T應(yīng)該能消除大部分噪聲”的原則。由實(shí)驗(yàn)測試的閾值T在本系統(tǒng)的應(yīng)用背景下可以選在5~15之間。基于以上算法,系統(tǒng)的具體實(shí)現(xiàn)如圖3所示。
3.3 GSM模塊的短信通知
? ??對于GSM模塊來說所有的操作都是通過AT命令(AT命令就是與MODEM相連的終端或計(jì)算機(jī)發(fā)出的以“AT”開始(除兩個立即執(zhí)行命令外),以回車結(jié)束執(zhí)行的一套命令)來實(shí)現(xiàn)的。編程時(shí)先把AT命令作為數(shù)據(jù)通過數(shù)據(jù)串口發(fā)送給GSM模塊,GSM模塊把接收到的數(shù)據(jù)作為AL命令來解釋,隨后根據(jù)命令執(zhí)行響應(yīng)的操作。具體操作為:包含串口操作需要的頭文件,打開串口,在linux下串口相關(guān)文件是位于/dev下,打開串口是通過使用標(biāo)準(zhǔn)的文件打開函數(shù)操作:fd=open(“/dev/ttySO”,O_RDWR);設(shè)置串口最基本的設(shè)置串口包括波特率,校驗(yàn)位和停止位設(shè)置。串口的設(shè)置主要是設(shè)置struct termios結(jié)構(gòu)體的各成員值;設(shè)置短信發(fā)送格式(O_PDU,1_文本);發(fā)送短消息。例如短消息的內(nèi)容為hel lo,則AT指令應(yīng)為AT+CMGS=“139# # # # #2312”>hello^z(^z表示CTRl+z);關(guān)閉串口close(fd)。
? ? ? ? 3.4 圖像的傳輸
? ??實(shí)現(xiàn)流媒體網(wǎng)絡(luò)傳輸?shù)姆椒ㄓ泻芏啵谋緜鬏攨f(xié)議(HyperText Transfer Protocol,HTTP)是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,屬于客戶端瀏覽器與Web服務(wù)器之間的應(yīng)用通信層協(xié)議,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。HTTP協(xié)議采用了請求/響應(yīng)模式,具體實(shí)現(xiàn)過程為:在嵌入式開發(fā)板S3C6410中植入嵌過人式Web服務(wù)器,在完成配置之后,用戶先在地址欄里輸入U(xiǎn)RL地址,此時(shí)客戶端瀏覽器打開一個Socket文件,標(biāo)志著成功的建立了連接,通過Socket客戶端瀏覽器IE向Web服務(wù)器提交請求,Web服務(wù)器接收到請求后處理請求,并將結(jié)果通過HTTP送回給客戶端瀏覽器IE。當(dāng)瀏覽器IE與服務(wù)器建立了連接后,通過system(“tar”)和system(“cp”)將存儲在開發(fā)板上的圖片打包并拷貝到Web服務(wù)器的主目錄下,并編寫主目錄下的超文本標(biāo)記語言(Hypertext MarkedLanguage,HTML),是一種用來制作超文本文檔的簡單標(biāo)記語言,超文本傳輸協(xié)議規(guī)定了測覽器在運(yùn)行HTML文檔時(shí)所遵循的規(guī)則和進(jìn)行的操作。HTML文件中最端的瀏覽器可以訪問服務(wù)器主目錄下保存的圖像。具體的格式為:超鏈接名稱,標(biāo)簽表示一個鏈接的開始,表示鏈接的結(jié)束。
4 實(shí)驗(yàn)結(jié)果
? ??整套系統(tǒng)在模擬的環(huán)境下進(jìn)行了測試,啟動系統(tǒng),等系統(tǒng)穩(wěn)定后,移動攝像頭視野中的某樣物體,使監(jiān)控的畫面發(fā)生變化,此時(shí)系統(tǒng)會發(fā)短信給用戶,當(dāng)用戶收到短信時(shí),打開瀏覽器,在地址欄輸入U(xiǎn)RL,下載存儲在Web服務(wù)器主目錄下的圖片,便可以查看實(shí)驗(yàn)結(jié)果。顯示的圖片結(jié)果如圖4所示,系統(tǒng)會將攝像頭視野范圍內(nèi)的運(yùn)動物體框起來,并記錄下發(fā)現(xiàn)運(yùn)動物體的時(shí)間。
5 結(jié)語
? ??本文設(shè)計(jì)了一種以ARM11為核心芯片,嵌入式Linux為操作系統(tǒng),采用背景差分法和幀間差分法相結(jié)合作為核心算法的運(yùn)動檢測系統(tǒng)。并與GSM模塊相結(jié)合,已達(dá)到監(jiān)控?zé)o人值守的目的,實(shí)驗(yàn)結(jié)果達(dá)到了預(yù)期的目的,該系統(tǒng)體積小,功耗低,成本低,使用方便靈活,功能可擴(kuò)展等特點(diǎn),可用于家居環(huán)境或是私人辦公室等場所。具有較好的市場前景。
評論
查看更多