文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)11-0030-04
隨著人們生活水平的不斷提高以及安全意識的不斷增強(qiáng),人們對小區(qū)安全也越來越重視,,而小區(qū)車庫安全是小區(qū)安全中必不可少的一部分[1],。但是由于小區(qū)入住率低、小區(qū)車庫管理混亂,、環(huán)境復(fù)雜,,私家車在小區(qū)車庫易遭受偷盜,甚至搶劫,,導(dǎo)致車主遭受巨大損失,。目前小區(qū)車庫主要由監(jiān)控人員通過視頻監(jiān)控。然而由于視頻監(jiān)控存在盲區(qū),、車庫監(jiān)控設(shè)備易遭破壞以及監(jiān)控人員疏忽等問題,,此種方式不能有效地保障私家車在小區(qū)車庫的安全。相關(guān)文獻(xiàn)介紹的當(dāng)前車庫的監(jiān)控系統(tǒng)主要是基于PC平臺的監(jiān)控,,是對整個小區(qū)車庫的監(jiān)控,,并且不具備主動報(bào)警的功能。為此,,設(shè)計(jì)了一種安裝在私家車內(nèi)的監(jiān)控報(bào)警系統(tǒng),。該系統(tǒng)不同于一般的汽車防盜報(bào)警系統(tǒng),可以通過對車內(nèi)圖像的檢測來判斷車輛是否被偷盜,,并可進(jìn)行郵件通知和實(shí)時(shí)監(jiān)控,,通過對攝像頭的控制可更加直觀地觀察到現(xiàn)場的情況,,對于提高私家車在小區(qū)車庫的安全性具有很大幫助,。
1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)的整體結(jié)構(gòu)簡圖如圖1所示,,該系統(tǒng)由視頻采集終端、無線網(wǎng)絡(luò)端以及視頻接收終端組成[2],。整個系統(tǒng)通過WiFi模塊接入小區(qū)網(wǎng)絡(luò)。視頻采集終端將USB攝像頭采集到的實(shí)時(shí)視頻數(shù)據(jù)傳輸?shù)较到y(tǒng)中,,然后由motion對采集到的視頻進(jìn)行處理。當(dāng)檢測到有物體進(jìn)入車內(nèi)時(shí)即發(fā)出報(bào)警,,并通過郵件把車內(nèi)實(shí)時(shí)圖片發(fā)送出去,;視頻接收終端通過網(wǎng)絡(luò)以及CGI腳本與嵌入式Boa服務(wù)器進(jìn)行交互,,可實(shí)現(xiàn)對車內(nèi)視頻的實(shí)時(shí)監(jiān)控,。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)硬件平臺設(shè)計(jì)
該系統(tǒng)硬件主要包括32位的嵌入式微處理器、WiFi無線模塊,、USB攝像頭等。系統(tǒng)的硬件結(jié)構(gòu)框圖如圖2所示,,其核心部分為S3C6410微處理器和256 MB的SDRAM,、1 GB的NAND Flash以及多種外設(shè)接口(包括USB接口,、SDIO接口、網(wǎng)卡接口等)所組成的最小系統(tǒng),。
2.2 USB攝像頭
USB攝像頭與微處理器的USB HOST接口直接相連,。攝像頭采用OV9650芯片,支持最大分辨率為1 300×1 028,,可以輸出GRB4:2:2,、YUV(4:2:2)和YCbCr(4:2:2)三種視頻格式,,這三種格式均符合CCIR601和CCIR656標(biāo)準(zhǔn),。
2.3 WiFi無線模塊接口電路
WiFi無線模塊采用Marvell公司低成本,、低功耗的88W8686芯片,它通過SDIO接口與主控設(shè)備相連,。該模塊遵循IEEE 802.11g標(biāo)準(zhǔn),,而且兼容802.11b協(xié)議標(biāo)準(zhǔn),,工作在2.4 GHz頻段,,最高傳輸速率可達(dá)54 Mb/s,。內(nèi)置天線,,可適應(yīng)不同的工作環(huán)境,,設(shè)備可以方便地接入無線網(wǎng)絡(luò)[3]。S3C6410 帶有2 路SDIO 接口,,其中 SDIO0 通常被用作SD卡接口使用,,另一路在本系統(tǒng)中用于連接WiFi無線模塊,,其接口電路圖如圖3所示,。
2.4 SD卡接口電路
SD存儲卡用于對重要視頻數(shù)據(jù)以及圖片的存儲,。通過SDIO接口與系統(tǒng)相連,,最大可支持32 GB,。其接口電路圖如圖4所示,。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 軟件開發(fā)環(huán)境介紹
本系統(tǒng)采用Linux操作系統(tǒng),, Linux系統(tǒng)具有開源,、內(nèi)核可裁剪,、對網(wǎng)絡(luò)的支持比較完善等特點(diǎn),,用戶可以根據(jù)自己的需求對內(nèi)核進(jìn)行裁剪并重新編譯,。在開發(fā)階段,,采用掛載NFS根文件系統(tǒng)進(jìn)行開發(fā),,以方便軟件的調(diào)試。本文完成的工作有:(1)在前面所述的硬件平臺上構(gòu)建最小嵌入式Linux系統(tǒng),,包括對UBOOT,、內(nèi)核、根文件系統(tǒng)的移植[4],,在對內(nèi)核進(jìn)行移植時(shí),,將本系統(tǒng)所用到的USB攝像頭和WiFi模塊等相關(guān)的驅(qū)動編譯到內(nèi)核中。(2)在該系統(tǒng)平臺上進(jìn)行motion的移植及嵌入式Web服務(wù)器的搭建,。編寫基于motion的監(jiān)控程序,,通過CGI和motion中的Http API來編寫Web控制頁面并對該系統(tǒng)進(jìn)行整體測試。
系統(tǒng)交叉編譯環(huán)境:主機(jī)開發(fā)環(huán)境選擇ubuntu9.10操作系統(tǒng),,主機(jī)工具鏈gcc-4.6.3,,交叉編譯工具鏈arm-linux- -gcc-4.3.2,內(nèi)核版本采用Linux2.6.38內(nèi)核,。
3.2 移植motion到6410開發(fā)板
motion是一個用于移動圖像監(jiān)控的程序,,本系統(tǒng)實(shí)現(xiàn)的視頻動態(tài)檢測功能就是基于motion的,使用的是motion-3.2.12版本,。下面介紹motion的移植和相關(guān)的配置。
首先將motion-3.2.12源碼解壓到/work/tools目錄下,,接下來進(jìn)行編譯安裝,,進(jìn)入解壓后的目錄,執(zhí)行命令:./configure-prefix=${PWD}/_install-host=arm-linux,,生成Makefile文件,,由make進(jìn)行編譯,make install將生成的庫和頭文件安裝到指定的./_install目錄下,。然后拷貝./_install/bin/下的可執(zhí)行程序motion到開發(fā)板根文件系統(tǒng)的/usr/sbin目錄下。另外需在開發(fā)板根文件系統(tǒng)目錄中創(chuàng)建/var/run/motion/目錄,,用于存放motion進(jìn)程。
接著進(jìn)行motion的配置,,根據(jù)./_install/etc/下的參考配置文件進(jìn)行配置,,修改后將配置文件放在開發(fā)板根文件系統(tǒng)的/etc/motion目錄下,。配置文件的主要參數(shù)設(shè)置如表1所示,。
3.3 動態(tài)視頻檢測算法及報(bào)警實(shí)現(xiàn)
目前,在靜態(tài)背景下,,主要有三類運(yùn)動目標(biāo)檢測算法:幀差法,、背景減法和光流法。本系統(tǒng)調(diào)用的motion采用幀差法[5],。該方法基于圖像序列中相鄰圖像中較強(qiáng)的空間相關(guān)性,直接將相鄰兩幀或多幀圖像中對應(yīng)的像素點(diǎn)逐一相減,,各個像素對之間都會得到一個數(shù)值,,如果這個數(shù)值的絕對值小于指定的閾值,,則認(rèn)為該點(diǎn)為背景像素點(diǎn),,反之為運(yùn)動目標(biāo)中的像素點(diǎn),。幀差法最大的特點(diǎn)在于算法實(shí)現(xiàn)簡單,,程序設(shè)計(jì)復(fù)雜度低,實(shí)時(shí)性好,。此外,,由于相鄰幀的時(shí)間間隔比較短,因此該方法對光線的變化具有較強(qiáng)的魯棒性,,幀差法流程圖如圖5所示,。
其中T為二值化閾值,Di(x,,y)中的1表示運(yùn)動目標(biāo),,0表示背景。本系統(tǒng)的motion動態(tài)視頻檢測通過幀差法來判斷是否有物體入侵,,并通過2個腳本來響應(yīng)motion事件,,以實(shí)現(xiàn)監(jiān)控報(bào)警和郵件通知。監(jiān)控報(bào)警腳本通過判斷motion配置文件中的參數(shù)設(shè)置決定在on_motion_detected事件觸發(fā)時(shí)播放報(bào)警聲。郵件通知腳本通過判斷motion配置文件中的參數(shù)設(shè)置決定在on_event_start事件觸發(fā)時(shí)發(fā)送最新捕獲到的圖片信息到指定的郵箱來通知用戶,。
3.4 Web服務(wù)器的搭建
為了方便服務(wù)器和瀏覽器通信,,需要進(jìn)行Boa服務(wù)器移植以及CGI程序編寫和HTML網(wǎng)頁設(shè)計(jì)。
Boa服務(wù)器通過建立http請求列表來響應(yīng)多路http連接請求,,可以大大節(jié)約系統(tǒng)資源,,非常適用于嵌入式系統(tǒng)[6]。這里主要介紹Boa服務(wù)器的移植過程,。首先將下載的Boa源碼包解壓到/work/boa目錄下,,進(jìn)入解壓后的目錄/work/boa/boa-0.94.13/src執(zhí)行./configure生成Makefile文件;接下來修改生成的Makefile文件,,將CC=gcc改為 CC=arm-linux-gcc,將CPP=gcc-E改成CPP=arm-linux-gcc-E,,保存后進(jìn)行make;之后執(zhí)行arm-linux-strip boa,,可以去掉調(diào)試信息并進(jìn)行優(yōu)化,,最終會在src目錄下生成boa可執(zhí)行文件。然后對Boa的配置文件boa.conf修改如下:
修改#ServerName www.your.org.here
為 ServerName www.your.org.here,;
修改DoucmentRoot /var/www
為DoucmentRoot /www,;
修改AccessLog /var/log/boa/access log
為#AccessLog /var/log/boa/access_log;
修改ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
為ScriptAlias /cgi-bin/ /gec/web/cgi-bin/,。
接著在開發(fā)板上創(chuàng)建/etc/boa和其他相關(guān)的目錄并將前面生成的boa和boa.conf拷貝過來,,步驟如下:
創(chuàng)建目錄mkdir /etc/boa;
創(chuàng)建HTML文檔的主目錄mkdir /www,;
創(chuàng)建CGI腳本所在錄 mkdir /www/cgi-bin,;
將boa.conf拷貝到開發(fā)板根文件系統(tǒng)的/etc/boa下cp boa.conf /nfs_root /etc/boa;
將boa拷貝到開發(fā)板根文件系統(tǒng)的/etc/boa下cp src/boa /nfs_root /rootfs/etc/boa,;
將ubuntu下/etc/mime.types拷貝到開發(fā)板根文件系統(tǒng)的/etc下cp /etc/mime.types /nfs_root /rootfs/etc,。
接下來進(jìn)行CGI程序的編寫,其編程原理主要為:通過GET或者POST等方法獲取表單中的數(shù)據(jù),,激活URL所指定的CGI應(yīng)用程序,,CGI應(yīng)用程序?qū)⑻幚砗玫慕Y(jié)果傳送給服務(wù)器,服務(wù)器再把結(jié)果返回到瀏覽器,。
系統(tǒng)的HTML頁面包括4個界面,即系統(tǒng)設(shè)置、網(wǎng)頁監(jiān)控,、查看圖片和查看視頻,。將設(shè)計(jì)好的index.html頁面拷貝到開發(fā)板www目錄下,打開瀏覽器輸入開發(fā)板地址,,如http://172.16.72.93/index.html,,可看到設(shè)計(jì)好的網(wǎng)頁。
3.5 基于TCP/IP協(xié)議的視頻流傳輸
本系統(tǒng)的視頻實(shí)時(shí)傳輸是基于TCP/IP協(xié)議的流式套接字接口編程方式[7],。實(shí)現(xiàn)的該協(xié)議的設(shè)計(jì)基于分層模型,,包括網(wǎng)絡(luò)接口層,、網(wǎng)絡(luò)層、傳輸層,、應(yīng)用層,,每一層都封裝來自上一層的消息,加上自己的數(shù)據(jù)頭和數(shù)據(jù)尾,。它實(shí)現(xiàn)了網(wǎng)絡(luò)中不同主機(jī)間的通信,,屬于典型的B/S模式。面向TCP的網(wǎng)絡(luò)通信流程如圖6所示,。數(shù)據(jù)傳輸?shù)牟襟E如下:首先服務(wù)器端創(chuàng)建Socket函數(shù)進(jìn)行初始化并建立流式套接字,,之后調(diào)用Bind函數(shù)進(jìn)行端口綁定,接著調(diào)用Listen函數(shù)等待瀏覽器的請求,。當(dāng)瀏覽器向服務(wù)器發(fā)送連接請求時(shí),,通過Accept和Connet函數(shù)來建立連接,接著通過Send和Recv函數(shù)實(shí)現(xiàn)數(shù)據(jù)的通信功能,,最后通過Close函數(shù)關(guān)閉套接字,。
本文提出了基于視頻動態(tài)檢測的小區(qū)車庫私家車監(jiān)控報(bào)警系統(tǒng)。主要從motion移植,、視頻動態(tài)檢測及報(bào)警,、Web服務(wù)器搭建和視頻傳輸?shù)确矫骊U述了系統(tǒng)的設(shè)計(jì)思路。實(shí)驗(yàn)測試表明,,系統(tǒng)運(yùn)行穩(wěn)定可靠,,視頻傳輸?shù)那逦雀撸瑐鬏斄鲿?,能夠滿足需求,,可以極大地提高私家車在小區(qū)車庫的安全性。
參考文獻(xiàn)
[1] 李紅剛,,張素萍,,方佳,等.基于ARM的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),,2009(5):134-128.
[2] 李昂,,送海聲,蘇小蕓.基于Android的視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2012,,38(7):138-140.
[3] 曹理發(fā),尹勇,,劉恒輝.基于ARM和DSP的視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子器件,,2009,32(1):213-217.
[4] 韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.
[5] 徐騰飛.視頻序列中基于檢測的多目標(biāo)跟蹤研究[D]. 南京:南京郵電大學(xué),,2011.
[6] 陳榮軍,,羅文聰.基于無線的物聯(lián)智能家居控制系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2012,,38(5):142-144.
[7] 代治國,,李興霞.基于ARM的智能小區(qū)遠(yuǎn)程視頻監(jiān)控系統(tǒng)[J].電子設(shè)計(jì)工程,2013(2):70-72.