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