引言
數據中心機房內裝載了大量計算機硬件設備,為保證這些設備的安全穩(wěn)定運行,需要對其進行7×24h實時監(jiān)控與巡檢。常規(guī)的人工巡檢方式通過查看計算機設備前后面板上的指示燈了解設備的當前運行狀態(tài),如電源指示燈、硬盤/IDE設備活動指示燈、網卡指示燈、系統異常指示燈等,根據不同顏色的指示燈代表的不同意義來判斷設備是否發(fā)生異常。由于機房的設備數量較多,加上設備類型不一,品牌型號繁雜,巡檢人員完成一次常規(guī)巡檢需要耗費很長時間。此外,巡檢人員工作強度大、內容枯燥,其間很容易產生視覺疲勞,出現人為漏檢、誤檢的情況。鑒于此,為避免人為因素給數據中心帶來風險,許多運維管理方開始嘗試智能巡檢方式。
目前,針對計算機設備的智能巡檢大多采用動態(tài)識別設備的狀態(tài)指示燈方式,即通過機器人上搭載的攝像頭實現實時監(jiān)測,并與設備正常指示燈狀態(tài)的圖像進行分析對比,如發(fā)現問題立即記錄并報警。由于機房內環(huán)境、機器人位置及攝像頭角度等都會對視頻圖像的獲取產生一定影響,這就給圖像處理增加了不小的難度,同時還降低了檢測效率與準確率。為解決上述問題,本文研制了一種基于設備指示燈輪廓及顏色識別的智能巡檢系統。
1系統工作原理及檢測算法
本系統通過視覺系統對計算機設備前后面板進行檢測,根據指示燈輪廓與顏色來判斷當前設備的運行狀態(tài),發(fā)現異常后記錄并報警。系統檢測算法流程如圖1所示。
2系統組成
2.1視頻采集
本系統采用VideoCapture()函數調用外置攝像頭獲取視頻圖像,使用cap.read()函數按幀讀取視頻,通過調用cv2.resize()函數調整圖像的尺寸,如圖2所示。由于攝像頭以30幀/s的速率采集視頻,為減少圖像處理時間,提高檢測效率,本系統按0.5s的時間間隔截取視頻。
圖2視頻圖像采集
2.2圖像顏色空間轉化
HSV顏色模型采用色調(Hue)、飽和度(Saturation)、亮度(Value)3個屬性來表示,它是一種比較直觀的顏色模型,便于顏色對比,常用于指定顏色的分割識別。在opencv中默認讀取圖像是RGB通道,現需要轉化到HSV顏色空間,本文采用cvtColor函數對顏色空間進行轉換。
本文試驗采集的設備指示燈主要有橙色、綠色與藍色,其中綠色與藍色為正常工作狀態(tài),橙色為異常狀態(tài)。將上述3種顏色的RGB色彩值轉化為HsV值后,可以浮動得到上下閾值,如表1所示。
2.3圖像二值化處理
為了便于異常指示燈檢測,需要選取合適的閾值對采集的圖像進行二值化處理。在HsV顏色空間中,橙色閾值的上限與下限分別是[25,255,255]與[ll,43,46]。采用cv2.inRange函數設置閾值,去除背景部分,即將圖像中低于橙色閾值下限的圖像值變?yōu)?,將圖像中高于橙色閾值上限的圖像值變?yōu)?,介于兩者之間的值變?yōu)?55。
為了便于觀察目標輪廓,本文利用cv2.bitWiwenots(函數對圖像做取反處理,如圖3所示,黑色區(qū)域表示圖像中所有橙色部分的輪廓。
圖3二值化圖
2.4濾波處理
由于故障指示燈燈光通過機柜網孔門時會產生反射作用,因此采集的圖像上產生了許多與目標顏色相同的區(qū)域或離散點,這對故障燈的識別產生了一定的干擾,為減少系統在上述情況下的誤判,本文引入濾波處理方式。
常用的濾波方式有均值濾波、高斯濾波、雙邊濾波與中值濾波。
(1)均值濾波是一種線性濾波,主要是利用目標像素及周圍像素的平均值代替目標像素值,公式如下:
(2)高斯濾波是一種線性平滑濾波,利用高斯函數計算出每一個像素點本身和鄰域內的其他像素點的值,然后進行加權平均的過程。
(3)雙邊濾波是一種非線性濾波,利用空間距離的權重與灰度信息的權重的乘積得到最終的卷積模板。相比高斯濾波,其增加了灰度信息的權重,即在鄰域內灰度值與中心點灰度值相差小的點權重更大,而灰度值相差大的點權重更小。
(4)中值濾波是一種非線性濾波,其主要原理是對圖像中的目標點及該點的鄰域中各個像素值進行排序,取中值來代替目標點的像素值。
采用上述4種濾波方式對二值化圖像進行處理,如圖4所示。
均值濾波、高斯濾波、雙邊濾波均未能過濾掉圖像中的黑點,而中值濾波能夠在濾除孤立噪聲點的情況下較好地保留紋理信息,目標像素周圍更接近真實值,圖像質量較高。
2.5異常指示燈輪廓識別
由于報警燈外輪廓為圓形,而機柜門反光產生的圖像輪廓為不規(guī)則圖形,因此本系統采用cv2.HoughCircles()函數對中值濾波后的圖像進行霍夫圓檢測,它是基于圖像梯度的方法實現的。其原理為對圖像進行邊緣檢測,對邊緣中的每一個非零點計算局部梯度,該梯度方向就是圓切線的垂線,三條垂線可以確定一個圓心,通過累加器得到重合度最高的圓心,從該中心的最小距離算起,選擇非零像素最支持的一條半徑,以此確定報警燈外圓。
如圖5所示,圖像左側的干擾區(qū)域被系統過濾,報警燈處的區(qū)域被獲取并進行圓心標記。
圖5異常指示燈識別與標記
2.6報警
在系統識別出計算機設備指示燈出現異常時,采用cv2.rectangle()與cv2.putText()函數在監(jiān)控視頻圖像右上角顯示alarm報警信息,同時調用winsound模塊來播放報警聲音,向外界傳遞示警信號。運維人員可在第一時間關注到報警事件的發(fā)生并及時應對響應,極大地提高了設備故障處理效率。
2.7存儲
為了便于運維人員后續(xù)處理、記錄與查閱,本系統采用cv2.imwrite()函數對報警圖像進行保存,并按時間依次命名文件。
3結語
本文設計的基于設備指示燈輪廓及顏色識別的視覺巡檢系統,能方便運維人員及時準確地掌握機房設備運行狀態(tài),發(fā)現問題并立即處置,有效提升了人員對機房設備的遠程管控能力,確保了數據中心機房的安全穩(wěn)定運行:同時,還提高了人員的工作效率,降低了巡檢成本。