基於ARM-linux的智能監控系統設計

火星人 @ 2014-03-12 , reply:0


  

隨著社會的發展和進步,人們的生活步調加快,如家庭生活和工作等環境中會經常出現無人的情況,此時安全問題令人擔憂,研製一個適宜的安全監控系統是十分必要的。然而,目前大多智能監控系統需要藉助一些感測器,如熱紅外、煙霧等,來實現智能監控,這樣提高了成本,使系統變得複雜,可靠性降低。因此設計一種簡易的智能家居監控系統是必要的。本文提出了運動物體檢測的設計方案。當有外來入侵者時,系統會追蹤運動目標並將其鎖定,拍攝記錄下其圖片,並會發出報警信號,警告入侵者離開。同時系統將會通過GPRS網路發送警告信息和入侵者的圖片,讓用戶可以隨時了解監控區域的情況。

本文以嵌入式系統ARM+Linux系統為平台設計了智能家居監控系統。系統採用背景差法實現對視頻序列中運動目標的檢測,根據檢測結果實現報警功能,同時利用GPRS移動通信覆蓋區域廣闊的特點,以簡訊和彩信的形式將信息發送到用戶手機,從而實現智能監控[1]。

1 監控系統的功能概述及工作流程

本智能監控系統是基於嵌入式ARM-Linux開發的,系統實現圖像採集、運動目標檢測、現場警報並通過GPRS網路實現簡訊和彩信的發送。

系統要實現的主要功能有:(1)採用背景差法實現對視頻序列中運動目標檢測;(2)通過GPRS發送報警簡訊和檢測到的運動目標圖像彩信;(3)通過音效卡在現場播放報警音樂。

系統工作流程為:首先,運行運動目標入侵檢測模塊,驅動USB攝像頭進行圖像數據採集,在ARM處理器中進行運動目標檢測演算法計算工作。當系統檢測到有運動目標入侵時,系統會拍攝下運動目標入侵者的圖像並保存在文件夾中。此時,系統將開啟現場報警程序模塊,通過音效卡UDA1341驅動音箱播放報警音樂,來警告非法入侵者離開。同時,系統通過串口發送AT指令來啟動GPRS無線模塊M20,GPRS模塊發送報警簡訊和入侵者的圖片到用戶手機。

2 系統硬體平台構建

本系統硬體由以下模塊構成:中芯微的USB攝像頭zc0301、GPRS彩信模塊M20、音效卡UDA1341、音箱、三星公司的微處理器S3C2440,256 MB NAND Flash以及64 MB SDRAM。S3C2440微處理器內部集成了ARM公司ARM920T處理器核的32 bit微控制器,其資源豐富,帶獨立的16 KB指令Cache和16 KB數據Cache,還有NAND快閃記憶體控制器及RAM控制器,系統主頻最高可達203 MHz[2-3]。本系統硬體結構框圖如圖1所示。

本系統用USB攝像頭zc301進行圖像採集,得到JPEG格式圖像,通過音效卡UDA1341驅動音箱報警,用M20實現彩信圖片發送。

3 系統軟體設計

本視頻監控系統軟體是基於ARM-Linux平台開發的。首先在系統上移植Uboot、Linux-2.6.30內核和根文件系統。系統移植zc0301攝像頭驅動、音效卡UDA1341驅動和串口驅動。系統需要設計基於背景差法的運動圖像檢測演算法的軟體實現[4]。報警模塊需要移植MP3播放器madplay,設計報警控制程序及GPRS警告信息發送程序。系統的應用軟體體系結構如圖2所示。

3.1 運動圖像檢測

視頻序列檢測為智能視頻監控提供了便利。本系統通過運動檢測實現自動報警和圖片拍攝,而在以往的監控系統中通常是採用人工干預的方式或者增加額外報警電路的方式實現報警功能。通過視頻序列檢測運動目標則可以提高監控系統的自動化程度,節約人力[1]。運動目標檢測和跟蹤是視覺領域的重要課題。系統對視頻視野內是否有入侵者進行檢查,當檢測結果超出認定的變化閾值時,系統就會自動報警並拍攝下運動目標的照片。

本文採用背景差法進行運動圖像檢測。背景差法基於圖像序列和參考背景模型相減實現運動物體的檢測,它能較好地檢測出運動目標有關的所有像素點[1]。由於視頻監控系統位置是固定的,場景不會實時變化,因此適合採用背景差法進行運動目標檢測[1]。

修改配置文件motion-dist.conf:設置圖像大小為320×240,設置攝像頭採集速度為30幀/s,設置像素變化檢測認定為圖像變化的閾值threshold=90,設置當檢測到有圖像變化時,把運動區域用矩形框起來等配置信息。

移植motion:首先進入源碼包交叉編譯#./configure、#make和#make install,這樣就完成了移植工作。之後#./motion-c motion-dist.conf,即可開始驗證運動圖像檢測。

報警模塊是根據motion檢測的結果(圖像變化超過閾值90)作出報警反應。報警模塊移植了MP3播放器madplay及報警音樂播放處理程序。當檢測到圖像像素變化達到閾值時,則開始播放MP3報警音樂。

 

3.2 簡訊發送

簡訊的發送方式有TEXT模式和PDU模式兩種,本文採用TEXT模式向用戶發送報警簡訊。發送英文簡訊的主要步驟如下:

(1)打開串口;

(2)初始化串口參數;

(3)發送AT+CMGF=1命令,通知手機模塊採用TEXT模式;

(4)發送AT指令AT+CMGS=“150968807501”,通知手機模塊用戶的電話號碼;

(5)添加發送的警告信息內容;

(6)發送結束,關閉串口。

3.3 彩信發送

運動目標檢測部分在檢測到運動目標入侵時會拍攝下運動目標的圖像,將其存儲在/root/motion文件夾下。發送彩信時則將讀取相關圖片,並採用彩信發送的指令發送彩信[5]。發送彩信的步驟為:

(1)發送指令AT+QIFGCNT=1,以配置場景;

(2)發送AT+QICSGP=1,“CMWAP”設置接入點;

(3)發送指令AT+QIREGAPP以設置用戶名及密碼,通常默認為空;

(4)發送AT+QIACT激活GPRS;

(5)發送AT+QILOCIP查詢本機IP是否連上GPRS;

(6)發送AT+QMMSW=1,1,“150968807501”設置目標手機號碼;

(7)發送AT+QFUPL=“pic_name.jpg”,2 644,即上傳圖片並起名為pic_name.jpg,圖片大小為2 664;

(8)發送AT+QMMSEND=1,發送彩信。

應用軟體部分代碼如下:

/*pic.txt用於記錄文件pic.txt記錄是否有圖像變化。1:有圖像變化0:沒有圖像變化*/

pic_fd=open(“pic.txt”,O_RDWR|O_CREAT,0666);

read(pic_fd,pic_buf,1);

if(pic_buf[0]==′1′) /*檢測到有圖像變化*/

start_playMP3(); /*播放MP3報警音樂函數*/

send_text(); /*發送文本簡訊*/

fd=open(pic_name.jpg,O_RDWR,0777));

len=read(fd,buff);

send_MMS(”150968807501”,len,buff);/*發送彩信*/

strcpy(uart_buff,AT_QIDEACT);

strcpy(ptr1_code,AT_QMMSEND);

Send_AT_Command(ptr1_code); /*發送彩信*/

Send_AT_Command(uart_buff); /*斷開連接*/

return 0;

4 系統測試

運動目標檢測的測試結果如圖4所示,當攝像頭視野內出現運動物體且像素變化達到設定的閾值時,報警模塊發出警報,同時拍攝下一組運動目標的圖像,在照片內用方框標定運動目標。

本文提出了一種基於運動檢測的智能家居監控系統設計方案,該系統最終完成了運動目標的檢測功能。當有物體入侵時,系統可以靈敏地檢測到運動目標,然後拍攝下入侵者的照片,將圖片發送到用戶的手機,併發出報警信號。系統能夠滿足無人值守環境的應用需求[6-8],提高了系統的智能化水平。






[火星人 via ] 基於ARM-linux的智能監控系統設計已經有278次圍觀

http://www.coctec.com/docs/enterprise/show-post-73098.html