智能家居監(jiān)控系統(tǒng)設(shè)計(jì)及應(yīng)用
2.1.1 獲取監(jiān)控視頻
客戶端通過(guò)WiFi與IP攝像機(jī)連接,登錄IP攝像機(jī)后,選擇監(jiān)控頻道,可同時(shí)實(shí)現(xiàn)4路智能監(jiān)控,即可以觀察家中的基本情況:家中有無(wú)人員進(jìn)出,是否有人在家,對(duì)監(jiān)控中出現(xiàn)的對(duì)象進(jìn)行關(guān)注跟蹤,辨別各房間照明情況以及電視、計(jì)算機(jī)等家電的使用情況等??蛻舳藢?shí)現(xiàn)方法為啟用多線程控制4路監(jiān)控任務(wù),使每路監(jiān)控任務(wù)具有相對(duì)獨(dú)立性,以便更換頻道。
多線程的具體實(shí)現(xiàn)方法有兩種,分別是繼承Thread線程類和實(shí)現(xiàn)Runnable 接口??蛻舳巳舨捎美^承Thread線程類的方法,則不能繼承除線程類之外的其他類,而界面子線程必須繼承View視圖類,所以本設(shè)計(jì)采用第二種方法。監(jiān)控實(shí)現(xiàn)中,每一路畫面都是一個(gè)單獨(dú)的線程,也是一個(gè)完整的視圖,它是實(shí)現(xiàn)了Runnable接口且繼承View類的類對(duì)象。因此每個(gè)對(duì)象之間相互獨(dú)立,每路監(jiān)控畫面相互獨(dú)立,可以靈活選擇監(jiān)控頻道,以便后臺(tái)控制管理。
界面實(shí)現(xiàn)上,主界面為4路監(jiān)控窗口,初始選擇監(jiān)控頻道后便可通過(guò)HTTP協(xié)議獲取監(jiān)控圖片序列,根據(jù)場(chǎng)景進(jìn)行算法處理,并播放智能監(jiān)控畫面。
2.1.2 程序優(yōu)化
客戶端需要根據(jù)不同場(chǎng)景調(diào)用不同的智能監(jiān)控算法對(duì)發(fā)生的事件進(jìn)行判斷與識(shí)別,這一過(guò)程包含了大量的圖像處理運(yùn)算,如灰度化、背景建模差分、中值濾波和形態(tài)學(xué)運(yùn)算等。Android操作系統(tǒng)的開發(fā)語(yǔ)言為Java,但是純Java編程的圖像處理程序在Android手機(jī)上的運(yùn)行速度是其很大的問(wèn)題。通過(guò)JNI(Java Native Interface)技術(shù)在Java程序中調(diào)用C程序模塊,明顯地提高了應(yīng)用程序的運(yùn)行速度。筆者截取了40幀作為觀察對(duì)象,程序各主要運(yùn)算步驟的平均運(yùn)行時(shí)間如表1所示,從中可以看出運(yùn)行時(shí)間縮短到了原來(lái)的1/18~1/17.
表1 主要算法Java和JNI實(shí)現(xiàn)的運(yùn)行時(shí)間比較
2.2 功能與實(shí)現(xiàn)
該設(shè)計(jì)的智能監(jiān)控系統(tǒng)具有3大功能:管理家中所有攝像頭,可靈活選擇監(jiān)控點(diǎn);執(zhí)行多種不同智能算法;能夠和其他聯(lián)網(wǎng)設(shè)備聯(lián)動(dòng),實(shí)現(xiàn)智能家居控制。
筆者用不同的實(shí)際場(chǎng)景對(duì)該系統(tǒng)進(jìn)行了測(cè)試,系統(tǒng)的功能描述與實(shí)驗(yàn)結(jié)果如下。
1)多路監(jiān)控。
獲取實(shí)時(shí)監(jiān)控圖片,同屏顯示最多4路經(jīng)后臺(tái)算法處理后的智能監(jiān)控畫面,如圖2所示。若需更換監(jiān)控頻道,可點(diǎn)擊監(jiān)控界面右側(cè)的路數(shù)列表,即可彈出頻道選擇欄,進(jìn)行頻道更換,以便更全面地實(shí)時(shí)監(jiān)控家中情況,如圖3所示。
評(píng)論