《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 家庭視覺智能防盜監(jiān)控系統(tǒng)
家庭視覺智能防盜監(jiān)控系統(tǒng)
來源:微型機(jī)與應(yīng)用2013年第15期
李景坤,袁月峰,徐 佳,趙嬌嬌
(中國計(jì)量學(xué)院 質(zhì)量與安全工程學(xué)院,浙江 杭州 310018)
摘要: 基于ARM9處理器S3C2440芯片硬件平臺,設(shè)計(jì)和開發(fā)了一種家庭視覺智能防盜監(jiān)控系統(tǒng)。服務(wù)器以裁剪的Linux為軟件平臺,移植了多種設(shè)備驅(qū)動程序,綜合利用多線程、socket等編程技術(shù),通過調(diào)用OpenCV圖像處理庫、Libjpeg內(nèi)存數(shù)據(jù)編解碼庫設(shè)計(jì)攝像頭應(yīng)用程序,著重分析了Linux下V4L的工作原理以及基于特征臉的人臉識別原理。該系統(tǒng)實(shí)現(xiàn)了在嵌入式Linux開發(fā)板上的人臉識別與身份驗(yàn)證主系統(tǒng),實(shí)現(xiàn)在PC上Web瀏覽功能,提高了防盜系統(tǒng)的安全性。
Abstract:
Key words :

摘  要: 基于ARM9處理器S3C2440芯片硬件平臺,設(shè)計(jì)和開發(fā)了一種家庭視覺智能防盜監(jiān)控系統(tǒng)。服務(wù)器以裁剪的Linux為軟件平臺,移植了多種設(shè)備驅(qū)動程序,綜合利用多線程、socket等編程技術(shù),通過調(diào)用OpenCV圖像處理庫、Libjpeg內(nèi)存數(shù)據(jù)編解碼庫設(shè)計(jì)攝像頭應(yīng)用程序,著重分析了Linux下V4L的工作原理以及基于特征臉的人臉識別原理。該系統(tǒng)實(shí)現(xiàn)了在嵌入式Linux開發(fā)板上的人臉識別與身份驗(yàn)證主系統(tǒng),實(shí)現(xiàn)在PC上Web瀏覽功能,提高了防盜系統(tǒng)的安全性。
關(guān)鍵詞: 嵌入式Linux;ARM9;人臉識別;OpenCV

 隨著智能視頻監(jiān)控系統(tǒng)的快速發(fā)展,通過對攝像機(jī)拍攝的圖像序列進(jìn)行自動分析,對視頻圖像中的運(yùn)動對象進(jìn)行檢測、跟蹤和識別,并在此基礎(chǔ)上對其進(jìn)行行為分析,從而做到預(yù)警、日常信息的管理,及在異常情況發(fā)生時(shí)發(fā)出告警,提高視頻監(jiān)控的效率成為可能[1]。本系統(tǒng)將智能視頻監(jiān)控系統(tǒng)應(yīng)用于家庭防盜,實(shí)現(xiàn)了一個(gè)以圖像處理技術(shù)為核心的家庭視覺防盜報(bào)警系統(tǒng),包括攝像機(jī)圖像采集分析、圖像信息編碼、壓縮及PC端解碼顯示的圖像處理設(shè)計(jì)、控制電路設(shè)計(jì)、GSM短信發(fā)送模塊。其目標(biāo)是提供一套成本低、功能全面的家庭視覺防盜系統(tǒng),解決長期以來防盜系統(tǒng)對于機(jī)械鎖的過度依賴,變傳統(tǒng)的被動式消極防盜為報(bào)警式積極防盜,提高安全性。
1 系統(tǒng)構(gòu)架
 該系統(tǒng)包含一個(gè)服務(wù)端和兩個(gè)客服端,服務(wù)端主要負(fù)責(zé)人臉識別圖像處理、編碼壓縮及無線發(fā)送圖像信息。一個(gè)客服端通過GSM模塊實(shí)現(xiàn)服務(wù)端與業(yè)主手機(jī)通信,服務(wù)端通過對攝像機(jī)采集信息的一系列圖像處理,對采集圖像作人臉識別處理,判斷是否為家庭成員并發(fā)送報(bào)警短信到業(yè)主手機(jī)。服務(wù)端將壓縮圖像信息打包,通過TCP協(xié)議發(fā)送到PC客戶端,實(shí)現(xiàn)在PC端的實(shí)時(shí)顯示。家庭視覺智能防盜系統(tǒng)結(jié)構(gòu)如圖1所示。
相對于傳統(tǒng)的機(jī)械鎖防盜與人工監(jiān)視的傳統(tǒng)視頻監(jiān)控系統(tǒng),本系統(tǒng)在效率上有了大大的提高,并且更加智能化、自動化。本系統(tǒng)具有以下功能:

?。?)可創(chuàng)建、更新家庭成員人臉頭像庫文件;
?。?)服務(wù)端將前端設(shè)備采集圖像作人臉識別圖像處理;
?。?)服務(wù)端判斷是否發(fā)送報(bào)警短信給業(yè)主;
?。?)前端設(shè)備采集圖像信息在PC端實(shí)時(shí)顯示;
?。?)前端設(shè)備采集圖像信息在服務(wù)端LCD實(shí)時(shí)顯示;
?。?)服務(wù)器端存儲可疑人圖片信息;
 (7)可通過Web網(wǎng)絡(luò)查看前端設(shè)備采集信息。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)硬件平臺

 系統(tǒng)硬件結(jié)構(gòu)如圖2所示。硬件平臺采用了ARM9嵌入式開發(fā)套件,它由核心板和底板組成,核心板上集成Samsung S3C2440處理器。該芯片采用ARM920T處理內(nèi)核,主頻為400 MHz,內(nèi)部帶有全性能MMU體系結(jié)構(gòu),支持Linux、WinCE等嵌入式操作系統(tǒng),集成了外部存儲器控制器、LCD控制器、一個(gè)5線異步串行口(波特率最高為115 200  b/s)、一個(gè)10 MHz網(wǎng)口、2個(gè)USB1.1接口(一個(gè)Host接口,一個(gè)Device接口)以及5 V電源接口[2]。

2.2 系統(tǒng)硬件框架
2.2.1 前端設(shè)備

 在Linux下,使用開發(fā)板與攝像機(jī)相連,通過攝像機(jī)捕捉頭像畫面。為方便圖像傳送,系統(tǒng)采用中星微301P攝像機(jī),其驅(qū)動需事先編譯進(jìn)Linux內(nèi)核。中星微301P芯片采用了最先進(jìn)的算法加速硬件方式,占用CPU資源一般為百分之十幾,使開發(fā)板LCD顯示屏在320×240模式下圖像表現(xiàn)優(yōu)異,并能達(dá)到30 f/s的速度[3],動態(tài)畫面流暢,實(shí)時(shí)還原真實(shí)場景。采集圖像數(shù)據(jù)經(jīng)攝像機(jī)硬件編碼通過USB接口與服務(wù)端實(shí)現(xiàn)傳輸,采集圖像數(shù)據(jù)為JPEG格式圖片。服務(wù)端通過軟件解碼實(shí)現(xiàn)在服務(wù)端LCD上實(shí)時(shí)顯示。
2.2.2 GSM模塊
 GSM模塊是可用單片機(jī)控制的以TC35I為核心的GSM系統(tǒng)終端,支持?jǐn)?shù)據(jù)、語言、短信傳輸?shù)裙δ?,利用信令信道傳輸,是GSM通信網(wǎng)所特有的功能,不用撥號建立連接,直接把要發(fā)送的信息加上目的地址發(fā)送到短消息服務(wù)中心,由短消息服務(wù)中心再發(fā)送給最終的信宿,短消息的收發(fā)不影響通話[4]。編碼后單條短消息最大長度為140 B,可以承載160個(gè)英文字符或70個(gè)漢字;編碼后每頁消息長度為82 B,最大頁數(shù)為15頁。GSM模塊短消息業(yè)務(wù)的優(yōu)點(diǎn)在于其無需建立連接,服務(wù)費(fèi)用低。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 軟件系統(tǒng)設(shè)計(jì)框架設(shè)計(jì)

 本系統(tǒng)軟件框架分為服務(wù)器端主機(jī)控制、顯示系統(tǒng)、GSM手機(jī)呼叫系統(tǒng)和PC終端顯示系統(tǒng)。核心部分為服務(wù)端主機(jī)系統(tǒng),以嵌入式Linux為基礎(chǔ),建立交叉編譯環(huán)境,完成引導(dǎo)加載程序Supervivi、Linux系統(tǒng)內(nèi)核Linux-2.6.32的編譯移植,其中包括無線網(wǎng)卡、通用USB攝像頭和LCD觸摸屏等驅(qū)動的移植,最后移植通用yaffs文件系統(tǒng)?;谙到y(tǒng)設(shè)計(jì)的需要,采用Framebuffer作為底層圖形接口,還需要在宿主機(jī)上交叉編譯Zlib、JPEG、OpenCV等多種庫,這使得系統(tǒng)環(huán)境具有豐富的控件資源和良好的可移植性,最終形成基于ARM的嵌入式Linux平臺,在此軟件平臺上可進(jìn)行嵌入式應(yīng)用程序的開發(fā)。
3.2 服務(wù)器端主機(jī)程序設(shè)計(jì)
 主機(jī)程序設(shè)計(jì)采用C與C++語言相結(jié)合的方式進(jìn)行開發(fā),C部分主要用于開發(fā)視頻播放程序和socket網(wǎng)絡(luò)程序,主要內(nèi)容包括初始化攝像機(jī)設(shè)備和創(chuàng)建線程1采集視頻圖像。然后主程序創(chuàng)建一個(gè)套接字監(jiān)聽,阻塞等待客戶端的請求連接。連接成功后再創(chuàng)建線程2發(fā)送采集到的圖像數(shù)據(jù)給客戶端。線程1的作用是采集視頻圖像,線程2的作用是發(fā)送圖像數(shù)據(jù)給客戶端。內(nèi)嵌自定義的傳輸協(xié)議,自行編寫簡易系統(tǒng),在不減少功能及系統(tǒng)穩(wěn)定的情況下,減少代碼數(shù)量,精簡代碼,設(shè)定算法,提高系統(tǒng)穩(wěn)定性、安全性。
 當(dāng)主機(jī)設(shè)備啟動以后,系統(tǒng)進(jìn)行初始化,采集前端設(shè)備攝像機(jī)一幀圖像,作圖像識別處理,判斷是否為家庭成員。為非家庭成員時(shí),主機(jī)與客戶端建立聯(lián)系,通過GSM模塊發(fā)送報(bào)警短信給業(yè)主手機(jī),并通過TCP協(xié)議發(fā)送至終端,在PC上實(shí)時(shí)顯示,業(yè)主可登錄Web網(wǎng)頁查看門口監(jiān)控。程序流程圖如圖3所示。

3.3 圖像數(shù)據(jù)的編解碼實(shí)現(xiàn)
 系統(tǒng)在網(wǎng)絡(luò)傳輸前,必須要對處理后的圖像數(shù)據(jù)重新進(jìn)行壓縮處理。系統(tǒng)采用了IJG(Independent JPEG Group)提供的Libjpeg庫實(shí)現(xiàn)在內(nèi)存中圖像數(shù)據(jù)的編解碼,庫中函數(shù)必須從文件中讀取數(shù)據(jù),再將壓縮數(shù)據(jù)存成JPEG文件,增加了不必要的文件I/O操作,減慢了CPU的數(shù)據(jù)處理速度和網(wǎng)絡(luò)傳輸。為克服其缺點(diǎn),改寫Libjpeg庫內(nèi)jdatasrc.c及jdatadst.c兩個(gè)源文件,重新定義struct stdio_src_mgr及struct stdio_dest_mgr,并設(shè)計(jì)增加圖像操作函數(shù),實(shí)現(xiàn)輸入和輸出數(shù)據(jù)的重定向到內(nèi)存中,利用修改后的Libjpeg庫可以很好地實(shí)現(xiàn)在內(nèi)存中直接對圖像數(shù)據(jù)編、解碼。
3.4 人臉識別與身份驗(yàn)證

 


 本系統(tǒng)的特點(diǎn)是能實(shí)現(xiàn)人臉的檢測識別與身份驗(yàn)證。系統(tǒng)所采用的人臉檢測算法主要來源于Vioal等提出的基于AdaBoost的實(shí)時(shí)人臉檢測算法,該方法能實(shí)現(xiàn)Harr-like特征表示圖像。采用AdaBoost方法選擇少量特征組成強(qiáng)分類器,引入“積分圖”概念,提高對特征的計(jì)算速度,使用“cascade”策略,提高人臉檢測速度,并通過預(yù)先建立家庭成員人臉頭像庫文件的方式,將識別后取得的人臉圖像與庫中圖像匹配,以此判定身份[5]。該方法能取得較好的檢測效果。
 在此理論基礎(chǔ)上,本文人臉檢測算法的實(shí)現(xiàn)是基于OpenCV開源代碼庫,該庫實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。利用其開源性設(shè)計(jì)基礎(chǔ)的數(shù)據(jù)類型和實(shí)現(xiàn)函數(shù),借助交叉編譯器等工具,在服務(wù)器主機(jī)端實(shí)現(xiàn)人臉檢測及身份驗(yàn)證。系統(tǒng)人臉識別步驟如圖4所示,人臉識別圖像處理效果顯示圖如圖5所示。

3.5 信號忽略機(jī)制算法
 因本系統(tǒng)需實(shí)現(xiàn)遠(yuǎn)程PC端的網(wǎng)頁觀看視頻功能,圖像數(shù)據(jù)要以TCP/IP協(xié)議的形式在互聯(lián)網(wǎng)中進(jìn)行傳輸,因此需考慮多個(gè)遠(yuǎn)程PC端同時(shí)訪問服務(wù)器端請求數(shù)據(jù)的情況,由此產(chǎn)生了如下問題:若目前有多個(gè)客戶端正在訪問服務(wù)器端,其中一個(gè)客戶端關(guān)閉了與服務(wù)端的連接,但服務(wù)端依然試圖發(fā)送圖像數(shù)據(jù)給客戶端(write to pipe with no readers),系統(tǒng)就會發(fā)出一個(gè)SIGPIPE信號,默認(rèn)對SIGPIPE的處理是終止(terminate),此時(shí)即使還有別的客戶端仍連接,負(fù)責(zé)發(fā)送圖像數(shù)據(jù)的服務(wù)器端還是會被終止。這當(dāng)然不是所想要的,因此本文采用了SIGPIPE信號忽略機(jī)制算法。
 信號是UNIX/Linux進(jìn)程間通信的一種標(biāo)準(zhǔn)方式,又稱軟中斷信號(signal,簡稱為信號),是一種簡單的通信方式,由于信號相對簡單和有效而被廣泛使用[6]。信號主要用來通知進(jìn)程發(fā)生了異步事件。但信號只是用來通知某進(jìn)程發(fā)生了什么事件,并不給該進(jìn)程傳遞任何數(shù)據(jù),收到信號的進(jìn)程對各種信號有不同的處理方法,其中有一種處理方法是,忽略某個(gè)信號,對該信號不作任何處理,就像從未發(fā)生過一樣,而進(jìn)程是通過調(diào)用signal來指定進(jìn)程對某個(gè)信號的處理行為。在本系統(tǒng)中,在建立一個(gè)socket時(shí)便設(shè)定好客戶端的信號處理機(jī)制,設(shè)定為信號忽略。這種情況下,即使其中一個(gè)客戶端關(guān)閉與服務(wù)器的連接,服務(wù)器端也不會終止,從而提高了系統(tǒng)的可靠性。
 隨著人民生活水平的日益提高,人們對居住生活的安全性愈加重視,家庭防盜系統(tǒng)的作用更加突出,克服家庭防盜系統(tǒng)對于機(jī)械鎖的過度依賴,本系統(tǒng)變傳統(tǒng)的被動式消極防盜為報(bào)警式積極防盜,提高了防盜系統(tǒng)的安全性。該系統(tǒng)使用簡單,價(jià)格低,市場應(yīng)用前景廣闊,值得進(jìn)行大量的探索和深入的研究。
參考文獻(xiàn)
[1] 鐘海濤.基站智能防盜監(jiān)控系統(tǒng)視頻智能分析技術(shù)的研究[D].北京:北京郵電大學(xué),2011.
[2] 吳嘉彥.基于ARM的JPEG圖像處理技術(shù)研究與應(yīng)用[J].梧州學(xué)院學(xué)報(bào),2010(6):67-72.
[3] 宋樂,林玉池,吳穎,等.基于視覺傳感的嵌入式自動讀尺系統(tǒng)[J].傳感器與微系統(tǒng),2009(8):86-88.
[4] 吳玉田,王瑞光,鄭喜鳳,等.GSM模塊TC35及其應(yīng)用[J].計(jì)算機(jī)測量與控制,2002(8):557-560.
[5] 公衍宇,郭琦,于超.Android系統(tǒng)下OpenCV的人臉檢測模塊的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012(20):52-54.
[6] 鄭尚志,趙小龍,昌杰.Linux信號機(jī)制的分析與研究[J].科技資訊,2008(11):98-100.
[7] 李明學(xué),田由輝,張雅若.ARM平臺嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的實(shí)現(xiàn)[J].電子產(chǎn)品世界,2012(12):62-64.
[8] 王桂林.監(jiān)控領(lǐng)域背景下遠(yuǎn)距離人臉識別系統(tǒng)探究[J].信息通信,2012(6):9.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。