基于Android智能家居遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)
多線程的具體實(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)控頻道后便可通過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í)別,這一過程包含了大量的圖像處理運(yùn)算,如灰度化、背景建模差分、中值濾波和形態(tài)學(xué)運(yùn)算等。Android操作系統(tǒng)的開發(fā)語言為Java,但是純Java編程的圖像處理程序在 Android手機(jī)上的運(yùn)行速度是其很大的問題。通過JNI(Java Native Interface)技術(shù)在Java程序中調(diào)用C程序模塊,明顯地提高了應(yīng)用程序的運(yùn)行速度。筆者截取了40幀作為觀察對(duì)象,程序各主要運(yùn)算步驟的平均運(yùn)行時(shí)間如表1所示,從中可以看出運(yùn)行時(shí)間縮短到了原來的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所示。
2)入侵檢測(cè)
如圖4所示,該系統(tǒng)利用運(yùn)動(dòng)物體檢測(cè)和識(shí)別算法,實(shí)現(xiàn)對(duì)特定區(qū)域的入侵檢測(cè),從而判斷人員進(jìn)出情況,并在有陌生人入侵時(shí)啟動(dòng)報(bào)警。報(bào)警形式為彈出提示信息,并在該監(jiān)控頻道窗口外圍添加不停閃爍的紅色邊框。
3)家電使用
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論