摘 要: 針對(duì)無(wú)人值守的環(huán)境,設(shè)計(jì)了一種智能監(jiān)控系統(tǒng)。該系統(tǒng)以S3C2440為核心處理器搭建硬件平臺(tái),并在硬件平臺(tái)上移植了嵌入式Linux系統(tǒng)。系統(tǒng)采用背景差法實(shí)現(xiàn)了對(duì)視頻序列中運(yùn)動(dòng)目標(biāo)的檢測(cè),根據(jù)檢測(cè)結(jié)果觸發(fā)報(bào)警和拍攝照片,同時(shí)將警告信息和運(yùn)動(dòng)目標(biāo)的圖片通過(guò)GPRS網(wǎng)絡(luò)發(fā)送到用戶(hù)的手機(jī),從而實(shí)現(xiàn)智能化監(jiān)控。本系統(tǒng)通過(guò)圖像運(yùn)動(dòng)檢測(cè)觸發(fā)報(bào)警信息,避免了額外檢測(cè)電路或者人工干預(yù),使系統(tǒng)更加簡(jiǎn)潔和智能化。
關(guān)鍵詞: ARM9;Linux;運(yùn)動(dòng)目標(biāo)檢測(cè);GPRS;彩信
隨著社會(huì)的發(fā)展和進(jìn)步,人們的生活步調(diào)加快,如家庭生活和工作等環(huán)境中會(huì)經(jīng)常出現(xiàn)無(wú)人的情況,此時(shí)安全問(wèn)題令人擔(dān)憂(yōu),研制一個(gè)適宜的安全監(jiān)控系統(tǒng)是十分必要的。然而,目前大多智能監(jiān)控系統(tǒng)需要借助一些傳感器,如熱紅外、煙霧等,來(lái)實(shí)現(xiàn)智能監(jiān)控,這樣提高了成本,使系統(tǒng)變得復(fù)雜,可靠性降低。因此設(shè)計(jì)一種簡(jiǎn)易的智能家居監(jiān)控系統(tǒng)是必要的。本文提出了運(yùn)動(dòng)物體檢測(cè)的設(shè)計(jì)方案。當(dāng)有外來(lái)入侵者時(shí),系統(tǒng)會(huì)追蹤運(yùn)動(dòng)目標(biāo)并將其鎖定,拍攝記錄下其圖片,并會(huì)發(fā)出報(bào)警信號(hào),警告入侵者離開(kāi)。同時(shí)系統(tǒng)將會(huì)通過(guò)GPRS網(wǎng)絡(luò)發(fā)送警告信息和入侵者的圖片,讓用戶(hù)可以隨時(shí)了解監(jiān)控區(qū)域的情況。
本文以嵌入式系統(tǒng)ARM+Linux系統(tǒng)為平臺(tái)設(shè)計(jì)了智能家居監(jiān)控系統(tǒng)。系統(tǒng)采用背景差法實(shí)現(xiàn)對(duì)視頻序列中運(yùn)動(dòng)目標(biāo)的檢測(cè),根據(jù)檢測(cè)結(jié)果實(shí)現(xiàn)報(bào)警功能,同時(shí)利用GPRS移動(dòng)通信覆蓋區(qū)域廣闊的特點(diǎn),以短信和彩信的形式將信息發(fā)送到用戶(hù)手機(jī),從而實(shí)現(xiàn)智能監(jiān)控[1]。
1 監(jiān)控系統(tǒng)的功能概述及工作流程
本智能監(jiān)控系統(tǒng)是基于嵌入式ARM-Linux開(kāi)發(fā)的,系統(tǒng)實(shí)現(xiàn)圖像采集、運(yùn)動(dòng)目標(biāo)檢測(cè)、現(xiàn)場(chǎng)警報(bào)并通過(guò)GPRS網(wǎng)絡(luò)實(shí)現(xiàn)短信和彩信的發(fā)送。
系統(tǒng)要實(shí)現(xiàn)的主要功能有:(1)采用背景差法實(shí)現(xiàn)對(duì)視頻序列中運(yùn)動(dòng)目標(biāo)檢測(cè);(2)通過(guò)GPRS發(fā)送報(bào)警短信和檢測(cè)到的運(yùn)動(dòng)目標(biāo)圖像彩信;(3)通過(guò)聲卡在現(xiàn)場(chǎng)播放報(bào)警音樂(lè)。
系統(tǒng)工作流程為:首先,運(yùn)行運(yùn)動(dòng)目標(biāo)入侵檢測(cè)模塊,驅(qū)動(dòng)USB攝像頭進(jìn)行圖像數(shù)據(jù)采集,在ARM處理器中進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè)算法計(jì)算工作。當(dāng)系統(tǒng)檢測(cè)到有運(yùn)動(dòng)目標(biāo)入侵時(shí),系統(tǒng)會(huì)拍攝下運(yùn)動(dòng)目標(biāo)入侵者的圖像并保存在文件夾中。此時(shí),系統(tǒng)將開(kāi)啟現(xiàn)場(chǎng)報(bào)警程序模塊,通過(guò)聲卡UDA1341驅(qū)動(dòng)音箱播放報(bào)警音樂(lè),來(lái)警告非法入侵者離開(kāi)。同時(shí),系統(tǒng)通過(guò)串口發(fā)送AT指令來(lái)啟動(dòng)GPRS無(wú)線(xiàn)模塊M20,GPRS模塊發(fā)送報(bào)警短信和入侵者的圖片到用戶(hù)手機(jī)。
2 系統(tǒng)硬件平臺(tái)構(gòu)建
本系統(tǒng)硬件由以下模塊構(gòu)成:中芯微的USB攝像頭zc0301、GPRS彩信模塊M20、聲卡UDA1341、音箱、三星公司的微處理器S3C2440,256 MB NAND Flash以及64 MB SDRAM。S3C2440微處理器內(nèi)部集成了ARM公司ARM920T處理器核的32 bit微控制器,其資源豐富,帶獨(dú)立的16 KB指令Cache和16 KB數(shù)據(jù)Cache,還有NAND閃存控制器及RAM控制器,系統(tǒng)主頻最高可達(dá)203 MHz[2-3]。本系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。
本系統(tǒng)用USB攝像頭zc301進(jìn)行圖像采集,得到JPEG格式圖像,通過(guò)聲卡UDA1341驅(qū)動(dòng)音箱報(bào)警,用M20實(shí)現(xiàn)彩信圖片發(fā)送。
3 系統(tǒng)軟件設(shè)計(jì)
本視頻監(jiān)控系統(tǒng)軟件是基于ARM-Linux平臺(tái)開(kāi)發(fā)的。首先在系統(tǒng)上移植Uboot、Linux-2.6.30內(nèi)核和根文件系統(tǒng)。系統(tǒng)移植zc0301攝像頭驅(qū)動(dòng)、聲卡UDA1341驅(qū)動(dòng)和串口驅(qū)動(dòng)。系統(tǒng)需要設(shè)計(jì)基于背景差法的運(yùn)動(dòng)圖像檢測(cè)算法的軟件實(shí)現(xiàn)[4]。報(bào)警模塊需要移植MP3播放器madplay,設(shè)計(jì)報(bào)警控制程序及GPRS警告信息發(fā)送程序。系統(tǒng)的應(yīng)用軟件體系結(jié)構(gòu)如圖2所示。
3.1 運(yùn)動(dòng)圖像檢測(cè)
視頻序列檢測(cè)為智能視頻監(jiān)控提供了便利。本系統(tǒng)通過(guò)運(yùn)動(dòng)檢測(cè)實(shí)現(xiàn)自動(dòng)報(bào)警和圖片拍攝,而在以往的監(jiān)控系統(tǒng)中通常是采用人工干預(yù)的方式或者增加額外報(bào)警電路的方式實(shí)現(xiàn)報(bào)警功能。通過(guò)視頻序列檢測(cè)運(yùn)動(dòng)目標(biāo)則可以提高監(jiān)控系統(tǒng)的自動(dòng)化程度,節(jié)約人力[1]。運(yùn)動(dòng)目標(biāo)檢測(cè)和跟蹤是視覺(jué)領(lǐng)域的重要課題。系統(tǒng)對(duì)視頻視野內(nèi)是否有入侵者進(jìn)行檢查,當(dāng)檢測(cè)結(jié)果超出認(rèn)定的變化閾值時(shí),系統(tǒng)就會(huì)自動(dòng)報(bào)警并拍攝下運(yùn)動(dòng)目標(biāo)的照片。
本文采用背景差法進(jìn)行運(yùn)動(dòng)圖像檢測(cè)。背景差法基于圖像序列和參考背景模型相減實(shí)現(xiàn)運(yùn)動(dòng)物體的檢測(cè),它能較好地檢測(cè)出運(yùn)動(dòng)目標(biāo)有關(guān)的所有像素點(diǎn)[1]。由于視頻監(jiān)控系統(tǒng)位置是固定的,場(chǎng)景不會(huì)實(shí)時(shí)變化,因此適合采用背景差法進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè)[1]。
修改配置文件motion-dist.conf:設(shè)置圖像大小為320×240,設(shè)置攝像頭采集速度為30幀/s,設(shè)置像素變化檢測(cè)認(rèn)定為圖像變化的閾值threshold=90,設(shè)置當(dāng)檢測(cè)到有圖像變化時(shí),把運(yùn)動(dòng)區(qū)域用矩形框起來(lái)等配置信息。
移植motion:首先進(jìn)入源碼包交叉編譯#./configure、#make和#make install,這樣就完成了移植工作。之后#./motion-c motion-dist.conf,即可開(kāi)始驗(yàn)證運(yùn)動(dòng)圖像檢測(cè)。
報(bào)警模塊是根據(jù)motion檢測(cè)的結(jié)果(圖像變化超過(guò)閾值90)作出報(bào)警反應(yīng)。報(bào)警模塊移植了MP3播放器madplay及報(bào)警音樂(lè)播放處理程序。當(dāng)檢測(cè)到圖像像素變化達(dá)到閾值時(shí),則開(kāi)始播放MP3報(bào)警音樂(lè)。
3.2 短信發(fā)送
短信的發(fā)送方式有TEXT模式和PDU模式兩種,本文采用TEXT模式向用戶(hù)發(fā)送報(bào)警短信。發(fā)送英文短信的主要步驟如下:
?。?)打開(kāi)串口;
?。?)初始化串口參數(shù);
(3)發(fā)送AT+CMGF=1命令,通知手機(jī)模塊采用TEXT模式;
?。?)發(fā)送AT指令A(yù)T+CMGS="150968807501",通知手機(jī)模塊用戶(hù)的電話(huà)號(hào)碼;
?。?)添加發(fā)送的警告信息內(nèi)容;
(6)發(fā)送結(jié)束,關(guān)閉串口。
3.3 彩信發(fā)送
運(yùn)動(dòng)目標(biāo)檢測(cè)部分在檢測(cè)到運(yùn)動(dòng)目標(biāo)入侵時(shí)會(huì)拍攝下運(yùn)動(dòng)目標(biāo)的圖像,將其存儲(chǔ)在/root/motion文件夾下。發(fā)送彩信時(shí)則將讀取相關(guān)圖片,并采用彩信發(fā)送的指令發(fā)送彩信[5]。發(fā)送彩信的步驟為:
(1)發(fā)送指令A(yù)T+QIFGCNT=1,以配置場(chǎng)景;
(2)發(fā)送AT+QICSGP=1,"CMWAP"設(shè)置接入點(diǎn);
(3)發(fā)送指令A(yù)T+QIREGAPP以設(shè)置用戶(hù)名及密碼,通常默認(rèn)為空;
(4)發(fā)送AT+QIACT激活GPRS;
(5)發(fā)送AT+QILOCIP查詢(xún)本機(jī)IP是否連上GPRS;
(6)發(fā)送AT+QMMSW=1,1,"150968807501"設(shè)置目標(biāo)手機(jī)號(hào)碼;
(7)發(fā)送AT+QFUPL="pic_name.jpg",2 644,即上傳圖片并起名為pic_name.jpg,圖片大小為2 664;
(8)發(fā)送AT+QMMSEND=1,發(fā)送彩信。
應(yīng)用軟件部分代碼如下:
/*pic.txt用于記錄文件pic.txt記錄是否有圖像變化。1:有圖像變化0:沒(méi)有圖像變化*/
pic_fd=open("pic.txt",O_RDWR|O_CREAT,0666);
read(pic_fd,pic_buf,1);
if(pic_buf[0]==′1′) /*檢測(cè)到有圖像變化*/
start_playMP3(); /*播放MP3報(bào)警音樂(lè)函數(shù)*/
send_text(); /*發(fā)送文本短信*/
fd=open(pic_name.jpg,O_RDWR,0777));
len=read(fd,buff);
send_MMS(”150968807501”,len,buff);/*發(fā)送彩信*/
strcpy(uart_buff,AT_QIDEACT);
strcpy(ptr1_code,AT_QMMSEND);
Send_AT_Command(ptr1_code); /*發(fā)送彩信*/
Send_AT_Command(uart_buff); /*斷開(kāi)連接*/
return 0;
4 系統(tǒng)測(cè)試
運(yùn)動(dòng)目標(biāo)檢測(cè)的測(cè)試結(jié)果如圖4所示,當(dāng)攝像頭視野內(nèi)出現(xiàn)運(yùn)動(dòng)物體且像素變化達(dá)到設(shè)定的閾值時(shí),報(bào)警模塊發(fā)出警報(bào),同時(shí)拍攝下一組運(yùn)動(dòng)目標(biāo)的圖像,在照片內(nèi)用方框標(biāo)定運(yùn)動(dòng)目標(biāo)。用戶(hù)手機(jī)接收到報(bào)警短信和彩信,如圖5所示。
本文提出了一種基于運(yùn)動(dòng)檢測(cè)的智能家居監(jiān)控系統(tǒng)設(shè)計(jì)方案,該系統(tǒng)最終完成了運(yùn)動(dòng)目標(biāo)的檢測(cè)功能。當(dāng)有物體入侵時(shí),系統(tǒng)可以靈敏地檢測(cè)到運(yùn)動(dòng)目標(biāo),然后拍攝下入侵者的照片,將圖片發(fā)送到用戶(hù)的手機(jī),并發(fā)出報(bào)警信號(hào)。系統(tǒng)能夠滿(mǎn)足無(wú)人值守環(huán)境的應(yīng)用需求[6-8],提高了系統(tǒng)的智能化水平。
參考文獻(xiàn)
[1] 李保國(guó).基于嵌入式ARM的遠(yuǎn)程視頻監(jiān)控系統(tǒng)研究[D].南京:南京理工大學(xué),2009.
[2] 趙新榮.網(wǎng)絡(luò)視頻傳輸及動(dòng)目標(biāo)檢測(cè)技術(shù)的研究[D].南京:南京航空航天大學(xué),2007.
[3] 李紅剛,張素萍,方佳,等.基于ARM的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009,32(5):134-138.
[4] 張靜.基于Linux的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)研究與設(shè)計(jì)[EB/OL].[2011-12-01].http://www.creader.Com/news/20011219/200112190019.html.
[5] 張科.嵌入式運(yùn)動(dòng)物體自動(dòng)跟蹤視頻監(jiān)控器的設(shè)計(jì)實(shí)現(xiàn)[D].成都:西南交通大學(xué),2010.
[6] 黃倩,閔華松.基于ARM的移動(dòng)視頻監(jiān)控系統(tǒng)[J].現(xiàn)代電子技術(shù),2010,33(1):148-152.
[7] 陳素華,方旭,司宏易.基于ARM 和FPGA 的智能小車(chē)監(jiān)控系統(tǒng)[J].現(xiàn)代電子技術(shù),2010,33(16):59-62.
[8] 趙曉軍,任明偉,蘇海霞,等.基于ARM 的嵌入式無(wú)線(xiàn)視頻監(jiān)控系統(tǒng)[J].微型機(jī)與應(yīng)用,2010,29(16):54-56.