◆肖 培 王 強
(蘇州工業(yè)園區(qū)工業(yè)技術(shù)學(xué)校 江蘇 215123)
基于Android系統(tǒng)的設(shè)備巡檢手機客戶端設(shè)計與實現(xiàn)
◆肖 培 王 強
(蘇州工業(yè)園區(qū)工業(yè)技術(shù)學(xué)校 江蘇 215123)
校園網(wǎng)絡(luò)設(shè)備中配電房設(shè)備巡檢依賴于人工,安全隱患大,本文的目的是開發(fā)基于Android系統(tǒng)的客戶端軟件進行圖像識別,通過校園無線網(wǎng)絡(luò),將配電房中網(wǎng)絡(luò)攝像機獲得的圖像信息傳輸?shù)绞謾C上。通過對開關(guān)柜工作狀態(tài)的判斷,實現(xiàn)遠程、實時智能監(jiān)測。通過對現(xiàn)場采集的數(shù)據(jù)進行分析和反復(fù)的實驗,該系統(tǒng)能夠滿足配電房巡查需要,操作簡單且工作可靠,具有良好的市場應(yīng)用前景和可擴展性。
Android;視頻監(jiān)控;RTSP;OpenCV;圖像識別
校園網(wǎng)絡(luò)設(shè)備的正常運行依賴于配電系統(tǒng),目前大部分配電房設(shè)備的運行和維護都依賴于人工巡查,安全隱患大,如何讓巡查者快捷獲得現(xiàn)場信息并確保巡查人員的人身安全是擺在眼前的重要問題。隨著“互聯(lián)網(wǎng)+”時代的到來,網(wǎng)絡(luò)速度日益提升,智能手機系統(tǒng)功能日趨完善,手機客戶端的應(yīng)用前景十分廣闊。本文開發(fā)出基于Android的手機客戶端軟件進行圖像識別,將配電房中網(wǎng)絡(luò)攝像機獲得的圖像信息,通過校園無線網(wǎng)絡(luò)傳輸?shù)街悄苁謾C,通過對配電設(shè)備開關(guān)柜工作狀態(tài)的判斷,來實現(xiàn)遠程、實時智能監(jiān)測,為校園設(shè)備的配電房遠程實時巡檢提供了方便。
配電房巡檢系統(tǒng)的主要設(shè)備包括:網(wǎng)絡(luò)攝像機、無線路由器和Android智能手機。它的硬件實現(xiàn)如圖1所示。
圖1 視頻監(jiān)控硬件結(jié)構(gòu)
(1)網(wǎng)絡(luò)攝像機:攝像機是整個系統(tǒng)數(shù)據(jù)的采集者,負責(zé)采集配電房設(shè)備的工作狀態(tài),實時拍攝視頻,同時,網(wǎng)絡(luò)攝像機也是巡檢網(wǎng)中的一個設(shè)備終端,通過以太網(wǎng)接入系統(tǒng)。
(2)路由器:是整個系統(tǒng)的通信中繼裝置,負責(zé)將攝像機采集到的數(shù)據(jù)傳遞給接收端。
(3)智能手機:是整個系統(tǒng)數(shù)據(jù)的接收者和處理者,負責(zé)向用戶播放實時視頻數(shù)據(jù),并對數(shù)據(jù)進行處理和智能化的分析。
Android是目前最具可移植性的嵌入式操作系統(tǒng),從接口到功能,都有層出不窮的變化??蛻舳说脑O(shè)計與實現(xiàn)基于Android操作系統(tǒng)以及RTSP協(xié)議,使用OpenCV對圖像進行邊緣檢測和圓形檢測的基本處理。
2.1 Android操作系統(tǒng)和平臺架構(gòu)
隨著智能手機的日益普及,智能手機操作系統(tǒng)也日益為人們所重視。有的智能手機操作系統(tǒng)曾經(jīng)非常成功,如諾基亞的Symbian系統(tǒng)、RIM的Blackberry系統(tǒng),有的則稍縱即逝,如Windows Mobile、MeeGo、FireFox OS,能夠存活并且大面積使用的有Android 和IOS兩種。與封閉的IOS系統(tǒng)不同,Android是一款自由及開放源代碼的操作系統(tǒng)[1][2]。Android系統(tǒng)的開放性特點更能夠吸引開發(fā)者,同IOS昂貴的開發(fā)設(shè)備和需要付費才能成為開發(fā)者不同,Android的開發(fā)需要的成本少、門檻低。Android是對Linux在移動設(shè)備上的一個良好的補充,它對Linux進行了一定程度的裁剪,同時也做了大量優(yōu)化,使Linux在移動設(shè)備領(lǐng)域獲得了新生[3]。
2.2 RTSP協(xié)議
RTSP(Real Time Streaming Protocol)[4]實時流傳輸協(xié)議,是由Real network 和Netscape共同提出的如何有效地在IP網(wǎng)絡(luò)上傳輸流媒體數(shù)據(jù)的應(yīng)用層協(xié)議。該協(xié)議定義了一對多應(yīng)用程序如何有效地通過IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。
RTSP協(xié)議以客戶服務(wù)器方式工作,它是一個多媒體播放控制協(xié)議,對流媒體提供了諸如暫停、繼續(xù)、后退、前進等控制。因此 RTSP 又稱為“因特網(wǎng)錄像機遙控協(xié)議”。
圖2 RTSP協(xié)議參考模型
2.3 OpenCV
OpenCV的英文全稱為:Open Source Computer Vision Library。OpenCV是一個基于BSD許可(開源)發(fā)行的跨平臺計算機視覺庫,它可以在Linux、Windows、Android和Mac OS操作系統(tǒng)上運行[5]。它具有輕量和高效的特點,由一系列的C函數(shù)和少量的C++類構(gòu)成,同時提供了Python、Ruby、MATLAB等語言的接口,具有圖像處理和計算機視覺方面的很多通用算法。OpenCV進行圖像識別一般采用兩種方式,對于簡單的圖像一般采用輪廓識別,如車牌;對于復(fù)雜圖像,采用特征值識別,如人臉識別。
圖像識別的核心思想是從靜態(tài)圖片中找到設(shè)備的特征值,從而對設(shè)備進行判斷和定位,并從相關(guān)圖像參數(shù)中獲取設(shè)備的運行狀態(tài)。
3.1 預(yù)處理過程
為提高后續(xù)識別的準確度,首先需要對圖像進行去除噪聲操作,即平滑操作。但是平滑操作帶來一個問題,如通常使用的高斯濾波法,會使圖像的清晰度降低。如果圖像本身清晰度很高,對后續(xù)計算影響較小。如果因為在拍攝過程中清晰度很差,就會影響圖像的識別。
所以在識別圖像前先判斷圖像的清晰度,對于不同清晰度的圖像采取不同的操作,對于清晰度高的圖像,采用高斯濾波,進行平滑操作,對于清晰度低的圖像,采用銳化操作,提升圖像的清晰度。
圖像操作的第一步是簡化圖像像素點,即圖像的灰度化操作,調(diào)用如下:
cvtColor(src_img, gray, CV_BGR2GRAY);
隨后調(diào)用圖像清晰度檢測函數(shù)進行清晰度檢測,圖像清晰度檢測函數(shù)使用計算相鄰像素點方差的方法。
根據(jù)檢測的結(jié)果,以閾值(100左右)為分界線,大于100的認為是清晰度較高的圖像進行高斯濾波:GaussianBlur(gray, gray, Size(9, 9), 2, 2);低于100的圖像進行銳化操作,采用拉普拉斯算子:Laplacian(gray, gray,CV_16S,3)。
3.2 特征值識別
由于本項目中的圖片特征主要是矩形和圓形,對于矩形檢測,需要先檢測到直線,再對兩個直線求直角,由于真實圖片可能因為角度問題導(dǎo)致矩形在圖片中成為不規(guī)則的四邊形,所以在求直角運算時,可以適當放開直角的角度范圍進行糾正。
首先對濾波后的圖像進行二值化操作,輪廓檢測,并存儲檢測到的輪廓,對每個進行多邊形逼近,檢測矩形輪廓,對檢測到的多邊形進行邊數(shù)和形狀判別,檢測是否為凸多邊形。隨后計算多邊形四個邊的的夾角,并判斷是否為矩形,可適當放寬夾角的范圍防止圖片的拉伸情況。
圖3 設(shè)備特征圖
根據(jù)圖片中矩形的范圍定位到兩個燈所在的矩形,如圖3所示,設(shè)備指示燈所在的黑色區(qū)域是一個大矩形,內(nèi)部有三個小矩形,可以根據(jù)檢測到的矩形的結(jié)果集確定黑色區(qū)域矩形的范圍。最后在確定的矩形范圍中尋找圓形。
3.3 設(shè)備工作狀態(tài)提取
整個設(shè)備的指示燈中,中間的位置顏色最鮮艷,明亮度也最高,所以先根據(jù)圖3找到的圓進行圓心的提取。
圖像重新載入和顏色識別:因為原始圖像已經(jīng)被二值化(黑白化),不能識別顏色,所以從圖像讀取的拷貝中讀取彩色圖像進行顏色判斷。
4.1 實驗環(huán)境
實驗環(huán)境為海康威視DS-2CD1201D-I3 網(wǎng)絡(luò)監(jiān)控攝像頭、D-Link無線路由器、Android智能手機(安卓系統(tǒng)版本5.0以上)。
表1 攝像頭與設(shè)備間的距離和角度測試數(shù)據(jù)結(jié)果統(tǒng)計
4.2 實驗方法
(1)功能說明:通過手機客戶端遠程實時查看攝像頭視頻,攝像頭的IP地址可以手動輸入,顯示當前設(shè)備工作狀態(tài),對采集的數(shù)據(jù)進行圖像識別。
(2)功能設(shè)計:采用Android 5.0版本以上智能手機作為App的運行系統(tǒng),使用Android前臺加Open CV后臺的方式完成對設(shè)備工作狀態(tài)的識別。
通過界面輸入網(wǎng)址來訪問網(wǎng)絡(luò)攝像頭,接收數(shù)據(jù)流后進行解碼和播放工作,在客戶端界面上有明顯的顯示區(qū)域提供設(shè)備狀態(tài)的監(jiān)測工作。
4.3 實驗結(jié)果
在工程上,攝像頭安裝的位置直接決定了攝像頭和配電房開關(guān)柜的距離和角度,通過實地搭建系統(tǒng),調(diào)整攝像頭的位置,選取不通角度和距離進行測試,表1列舉了部分識別結(jié)果。
由以上測試結(jié)果得出,攝像頭和開關(guān)柜距離在8m以內(nèi),角度大于30°的情況下,該系統(tǒng)能夠達到預(yù)期效果。當攝像頭與開關(guān)柜距離大于8m時,因開關(guān)柜矩形框邊緣過小,系統(tǒng)無法識別。當攝像頭與開關(guān)柜角度小于30°時,無法進行傾斜矯正,系統(tǒng)無法識別。綜合判斷,該系統(tǒng)能夠滿足校園配電房設(shè)備日常巡檢輔助工作。
本文根據(jù)實際,開發(fā)出一款可應(yīng)用于配電房設(shè)備巡檢的手機客戶端軟件(APP),該軟件基于對安卓操作系統(tǒng)的基本框架程序,設(shè)計相應(yīng)的登錄及播放器操作界面,并根據(jù)基本的視頻編解碼原理,實現(xiàn)RTSP交互過程,在手機界面上流暢地獲得攝像機采集的圖像。最后通過OpenCV視覺庫來對圖像進行邊緣檢測和中心圓形檢測,完成對采集圖像的識別以及結(jié)果判斷,為配電房遠程實時巡檢提供了方便。
通過對現(xiàn)場采集數(shù)據(jù)的分析和反復(fù)的實驗表明,該系統(tǒng)能夠初步滿足高低壓配電房設(shè)備巡查的需要,操作簡單且工作可靠,具有良好的市場應(yīng)用前景和可擴展性,有一定的工程應(yīng)用潛質(zhì)。
[1]張華亮.基于Linux自由及開放源代碼的Android操作系統(tǒng)[J].計算機與網(wǎng)絡(luò),2016.
[2]卓煒.基于Android操作系統(tǒng)的軟件開發(fā)及應(yīng)用的探討[J].電子技術(shù)與軟件工程,2013.
[3]石鑫,夏青.基于Android操作系統(tǒng)的實時系統(tǒng)監(jiān)控研究[J].電視技術(shù),2015.
[4]萬明明.基于RTSP的流媒體傳輸系統(tǒng)的應(yīng)用開發(fā)[J].電子測試,2016.
[5]李小川,楊國林.基于OpenCV的視頻監(jiān)控系統(tǒng)的研究與實現(xiàn)[J].內(nèi)蒙古工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2015.