基于Android平臺的智能家居監(jiān)控系統(tǒng)
掃描二維碼
隨時隨地手機(jī)看文章
【摘要】目前,遠(yuǎn)程視頻監(jiān)控系統(tǒng)已成為智能家居的重要組成部分。智能監(jiān)控系統(tǒng)基于Android操作系統(tǒng)平臺,以平板式計算機(jī)作為客戶端,通過HTTP協(xié)議從IP攝像機(jī)下載監(jiān)控圖片,并利用多種算法對家中各房間或不同角度的情況進(jìn)行智能監(jiān)控。
近年來,視頻監(jiān)控系統(tǒng)已在制造企業(yè)、物業(yè)管理、無人職守終端、銀行、交通、倉庫等領(lǐng)域得到廣泛應(yīng)用。當(dāng)家庭中有特別需要關(guān)注的物體和區(qū)域時,家庭的主人可在其所處的家庭環(huán)境中安裝攝像頭,通過網(wǎng)絡(luò)遠(yuǎn)程觀察其狀況,當(dāng)發(fā)生意外情況時也可通過網(wǎng)絡(luò)監(jiān)控事態(tài)的進(jìn)展。隨著智能移動終端的廣泛普及,同時由于其特有的便攜性和易于接入網(wǎng)絡(luò)的特性,移動終端成為動態(tài)監(jiān)控和現(xiàn)場監(jiān)控的理想選擇。
本文設(shè)計的視頻監(jiān)控系統(tǒng)客戶端設(shè)備為Android平板電腦,該客戶端從IP攝像機(jī)獲取實時的監(jiān)控圖片,根據(jù)不同場景用不同算法來判斷家中有無人員出入,標(biāo)注關(guān)注對象并智能跟蹤,辨別各房間的照明情況及電視、計算機(jī)等家電的使用情況,可同時實現(xiàn)4路智能監(jiān)控。
1監(jiān)控平臺介紹
1.1客戶端平臺介紹
客戶端采用Android智能操作系統(tǒng),Android是Google公司于2007年11月5日發(fā)布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱。該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,底層Linux內(nèi)核只提供基本功能,其他的應(yīng)用軟件則由各公司自行開發(fā),部分程序以Java編寫。
2011年初數(shù)據(jù)顯示,僅正式上市2年的Android操作系統(tǒng)已超越稱霸10年的Symbian系統(tǒng),躍居全球最受歡迎的智能手機(jī)平臺?,F(xiàn)在,Android系統(tǒng)不僅應(yīng)用于智能手機(jī),也在平板電腦市場急速擴(kuò)張。同時,Android智能手機(jī)操作系統(tǒng)具有5大優(yōu)勢:開放性、擺脫運(yùn)營商的束縛、豐富的應(yīng)用選擇、開發(fā)商不受任何限制和無縫結(jié)合的Google應(yīng)用。
1.2IP攝像機(jī)介紹
IP攝像機(jī)是一種可產(chǎn)生數(shù)字視頻流,并將視頻流通過有線或無線網(wǎng)絡(luò)進(jìn)行傳輸?shù)脑O(shè)備,其不需要額外的軟硬件,便可以將活動的數(shù)字圖像直接傳輸?shù)交ヂ?lián)網(wǎng)上,使在世界各地的計算機(jī)都可以通過瀏覽器觀看實時活動數(shù)字圖像。IP攝像機(jī)支持TCP/IP,SMTPE-mail,HTTP以及其他Internet協(xié)議,支持諸如Windows,Unix,Mac及OS/2等多種操作系統(tǒng)。
該設(shè)計采用??低暪镜腄S-2DM1-502型網(wǎng)絡(luò)中速智能球型攝像機(jī),支持客戶端通過HTTP協(xié)議下載監(jiān)控圖片和H.264碼流。
2程序設(shè)計原理及實現(xiàn)
2.1客戶端設(shè)計原理。
該設(shè)計采用Android系統(tǒng)的平板電腦為客戶端,客戶端的軟件流程如圖1所示。
系統(tǒng)的具體實現(xiàn)大體分為兩部分:與IP攝像機(jī)連接,獲取所需視頻流;根據(jù)監(jiān)控場景做出相應(yīng)判斷及響應(yīng)。
2.1.1獲取監(jiān)控視頻
客戶端通過WiFi與IP攝像機(jī)連接,登錄IP攝像機(jī)后,選擇監(jiān)控頻道,可同時實現(xiàn)4路智能監(jiān)控,即可以觀察家中的基本情況:家中有無人員進(jìn)出,是否有人在家,對監(jiān)控中出現(xiàn)的對象進(jìn)行關(guān)注跟蹤,辨別各房間照明情況以及電視、計算機(jī)等家電的使用情況等。客戶端實現(xiàn)方法為啟用多線程控制4路監(jiān)控任務(wù),使每路監(jiān)控任務(wù)具有相對獨立性,以便更換頻道。
多線程的具體實現(xiàn)方法有兩種,分別是繼承Thread線程類和實現(xiàn)Runnable接口??蛻舳巳舨捎美^承Thread線程類的方法,則不能繼承除線程類之外的其他類,而界面子線程必須繼承View視圖類,所以本設(shè)計采用第二種方法。監(jiān)控實現(xiàn)中,每一路畫面都是一個單獨的線程,也是一個完整的視圖,它是實現(xiàn)了Runnable接口且繼承View類的類對象。因此每個對象之間相互獨立,每路監(jiān)控畫面相互獨立,可以靈活選擇監(jiān)控頻道,以便后臺控制管理。
界面實現(xiàn)上,主界面為4路監(jiān)控窗口,初始選擇監(jiān)控頻道后便可通過HTTP協(xié)議獲取監(jiān)控圖片序列,根據(jù)場景進(jìn)行算法處理,并播放智能監(jiān)控畫面。
2.1.2程序優(yōu)化
客戶端需要根據(jù)不同場景調(diào)用不同的智能監(jiān)控算法對發(fā)生的事件進(jìn)行判斷與識別,這一過程包含了大量的圖像處理運(yùn)算,如灰度化、背景建模差分、中值濾波和形態(tài)學(xué)運(yùn)算等。Android操作系統(tǒng)的開發(fā)語言為Java,但是純Java編程的圖像處理程序在Android手機(jī)上的運(yùn)行速度是其很大的問題。通過JNI(JavaNativeInterface)技術(shù)在Java程序中調(diào)用C程序模塊,明顯地提高了應(yīng)用程序的運(yùn)行速度。筆者截取了40幀作為觀察對象,程序各主要運(yùn)算步驟的平均運(yùn)行時間如表1所示,從中可以看出運(yùn)行時間縮短到了原來的1/18~1/17.
表1主要算法Java和JNI實現(xiàn)的運(yùn)行時間比較
2.2功能與實現(xiàn)
該設(shè)計的智能監(jiān)控系統(tǒng)具有3大功能:管理家中所有攝像頭,可靈活選擇監(jiān)控點;執(zhí)行多種不同智能算法;能夠和其他聯(lián)網(wǎng)設(shè)備聯(lián)動,實現(xiàn)智能家居控制。
筆者用不同的實際場景對該系統(tǒng)進(jìn)行了測試,系統(tǒng)的功能描述與實驗結(jié)果如下。
1)多路監(jiān)控。
獲取實時監(jiān)控圖片,同屏顯示最多4路經(jīng)后臺算法處理后的智能監(jiān)控畫面,如圖2所示。若需更換監(jiān)控頻道,可點擊監(jiān)控界面右側(cè)的路數(shù)列表,即可彈出頻道選擇欄,進(jìn)行頻道更換,以便更全面地實時監(jiān)控家中情況,如圖3所示。
2)入侵檢測。
如圖4所示,該系統(tǒng)利用運(yùn)動物體檢測和識別算法,實現(xiàn)對特定區(qū)域的入侵檢測,從而判斷人員進(jìn)出情況,并在有陌生人入侵時啟動報警。報警形式為彈出提示信息,并在該監(jiān)控頻道窗口外圍添加不停閃爍的紅色邊框。
3)家電使用情況監(jiān)測。
該系統(tǒng)可檢測各房間的照明情況,如某房間長時間無人活動或在室內(nèi)光線充足時,將彈出提示信息提醒用戶遠(yuǎn)程控制智能家電,關(guān)閉不必要的照明設(shè)備,如圖5所示。
該系統(tǒng)也可根據(jù)計算機(jī)顯示器或者電視屏幕的畫面亮度與明暗變化和屋內(nèi)有無人員來判斷計算機(jī)和電視是否有人使用,并通知用戶進(jìn)行處理,如圖6所示。
4)對象跟蹤。
用戶可根據(jù)需求,選中監(jiān)控畫面中出現(xiàn)的對象作為感興趣目標(biāo),該系統(tǒng)將執(zhí)行運(yùn)動檢測程序,對該對象的運(yùn)動范圍進(jìn)行實時圈定,方便監(jiān)控管理,如圖7所示。
3總結(jié)
該智能監(jiān)控系統(tǒng)允許用戶選定多個攝像機(jī)進(jìn)行監(jiān)視,從而能夠全面及時地遠(yuǎn)程觀察家中情況,并且可在異常情況發(fā)生時自動發(fā)出警報以提醒用戶家中發(fā)生危險。
另外,當(dāng)家中無人或在某一房間無人員活動時,系統(tǒng)也可提醒用戶關(guān)掉不需要工作的家電以節(jié)約能源,這一功能體現(xiàn)了監(jiān)控系統(tǒng)與物聯(lián)網(wǎng)的融合。此智能監(jiān)控系統(tǒng)具有良好的便攜性,功能較為完善。