秦璐璐,李敬兆
(安徽理工大學(xué) 計算機科學(xué)與工程學(xué)院,安徽 淮南 232001)
井下視頻監(jiān)控是保證煤礦安全生產(chǎn)的重要環(huán)節(jié)[1]?,F(xiàn)有礦井視頻監(jiān)控系統(tǒng)配置的前端監(jiān)控器主要是采集和上傳視頻數(shù)據(jù),一般不具有分析計算能力。煤礦企業(yè)一般通過系統(tǒng)平臺的反饋對井下場景進(jìn)行監(jiān)控,存在著管理不及時、安全效率低等問題。此外,監(jiān)控系統(tǒng)對井下各類監(jiān)控場景的無差別采集和存儲,會產(chǎn)生海量的視頻冗余數(shù)據(jù),若將數(shù)據(jù)全部上傳至云服務(wù)器進(jìn)行分析處理,會存在網(wǎng)絡(luò)帶寬過高和云端壓力過大等問題[2]。而視頻監(jiān)控數(shù)據(jù)的遠(yuǎn)距離傳輸會產(chǎn)生較長時延,不能即時實現(xiàn)智能預(yù)警[3]。
目前,國內(nèi)外針對煤礦視頻監(jiān)控系統(tǒng)的研究較少,相關(guān)研究主要集中在煤礦監(jiān)控視頻處理、礦工行為識別、井下視頻圖像增強和煤礦設(shè)備監(jiān)測等方面。徐永剛等[4]針對井下視頻處理的時延問題,利用分布式組件搭建了井下視頻處理平臺,對幀間相關(guān)性高的視頻流等分截取視頻幀,通過加權(quán)融合算法對各節(jié)點處理結(jié)果進(jìn)行融合,提高了平臺處理視頻數(shù)據(jù)的實時性,但對礦井高危場所的適應(yīng)性不強,無法對礦工進(jìn)行目標(biāo)檢測。羅響等[5]針對井下礦工復(fù)雜行為識別,提出了基于深度網(wǎng)絡(luò)的持續(xù)學(xué)習(xí)模型,利用主動學(xué)習(xí)方法對新樣本進(jìn)行標(biāo)記和學(xué)習(xí),提高了識別準(zhǔn)確度,但無法解決礦工在礦井高危場所越界問題。王樹奇等[6]提出了一種礦井視頻監(jiān)控圖像增強和運動目標(biāo)檢測算法,使系統(tǒng)檢測能力得到了提高,但無法滿足礦井高危場所處理緊急事件時延低的需求。汪杰等針對煤礦設(shè)備的運行狀態(tài),在云平臺上構(gòu)建了煤礦監(jiān)測系統(tǒng),能在設(shè)備發(fā)生故障前起到智能預(yù)警作用,但沒有考慮邊緣感知設(shè)備的計算能力,存在延時長和帶寬壓力大等問題。
鑒于此,文章構(gòu)建了一種基于云邊協(xié)同的礦井高危場所視頻監(jiān)控系統(tǒng),在邊緣節(jié)點(Edge Compute Node,ECN)中部署運動目標(biāo)檢測算法,對前端監(jiān)控器在短時間內(nèi)采集到的視頻監(jiān)控圖像進(jìn)行檢測,提高視頻分析速度。將預(yù)處理后的視頻流根據(jù)任務(wù)優(yōu)先級上傳至云服務(wù)器進(jìn)行存儲,降低視頻傳輸時延,減緩云服務(wù)器計算存儲壓力[8]。
根據(jù)數(shù)據(jù)采集、處理、傳輸、存儲和應(yīng)用的順序,基于云邊協(xié)同的礦井高危場所視頻監(jiān)控系統(tǒng)主要由邊緣感知層、網(wǎng)絡(luò)傳輸層、云服務(wù)層和應(yīng)用層組成。系統(tǒng)的分層架構(gòu)如圖1所示。
圖1 系統(tǒng)的分層架構(gòu)
1)邊緣感知層。邊緣感知層處于系統(tǒng)架構(gòu)的最底層,由監(jiān)控探頭、圖像處理模塊、圖像存儲模塊、微處理器、通信模塊和設(shè)備控制模塊組成,主要任務(wù)是采集原始監(jiān)控視頻、分析視頻數(shù)據(jù)和上傳數(shù)據(jù)。其中,圖像處理模塊為整個系統(tǒng)的核心部分,圖像處理流程如圖2所示。監(jiān)控探頭采集視頻原始數(shù)據(jù),通過部署在微處理器上的運動目標(biāo)檢測算法對視頻圖像進(jìn)行分析。當(dāng)檢測到有人員闖入時,設(shè)備控制模塊會進(jìn)行聲光語音提醒,并發(fā)送閉鎖控制信號至電機電源控制系統(tǒng),由通信模塊發(fā)送報警信息和入侵視頻至應(yīng)用平臺顯示。圖像存儲模塊進(jìn)行視頻幀過濾存儲入侵視頻段落,通過任務(wù)優(yōu)先級上傳到云服務(wù)層進(jìn)行存儲。
圖2 圖像處理流程
2)網(wǎng)絡(luò)傳輸層。以井下的以太環(huán)網(wǎng)為核心的網(wǎng)絡(luò)傳輸層為系統(tǒng)數(shù)據(jù)傳輸提供了保障。經(jīng)邊緣感知層處理后的信息通過井下通信網(wǎng)絡(luò)按照優(yōu)先級進(jìn)行上傳。傳輸?shù)姆绞街饕屑磿r傳輸和緩存?zhèn)鬏?,對有人員入侵時的報警信息和現(xiàn)場實時視頻采用即時傳輸,視頻幀過濾后的入侵視頻段落采用緩存?zhèn)鬏?,在帶寬充足的情況下正常傳輸?shù)皆品?wù)器進(jìn)行存儲。若當(dāng)前網(wǎng)絡(luò)帶寬壓力較大,則視頻存儲于緩沖區(qū),待網(wǎng)絡(luò)正常后進(jìn)行傳輸。
3)云服務(wù)層。云服務(wù)層主要由高性能服務(wù)器集群和數(shù)據(jù)庫服務(wù)器部署組成。在云邊協(xié)同架構(gòu)中,云服務(wù)器始終是計算和存儲的中心,處理邊緣感知層難以計算的復(fù)雜任務(wù),對接收到的視頻作進(jìn)一步分析處理,發(fā)送數(shù)據(jù)給應(yīng)用層。
4)應(yīng)用層。應(yīng)用層使用了C#語言和基于B/S架構(gòu)構(gòu)建的視頻監(jiān)控應(yīng)用平臺,有入侵監(jiān)控、越界報警、數(shù)據(jù)推送和綜合管理等功能。
礦井中的視頻監(jiān)控系統(tǒng)一般為7×24 h監(jiān)控,會產(chǎn)生海量視頻數(shù)據(jù)。因此,在邊緣設(shè)備中部署運動目標(biāo)檢測算法,以檢測視頻圖像中的運動目標(biāo),通過設(shè)置相應(yīng)參數(shù)獲取運動特征,實現(xiàn)系統(tǒng)自動報警,從而降低視頻處理和傳輸時延。
在SVR模型中,模型的輸入是視頻圖像當(dāng)前幀像素點的顏色向量,模型的輸出是像素從屬于背景的置信度。利用SVR學(xué)習(xí)算法對背景模型進(jìn)行實時更新,設(shè)定視頻流圖像背景訓(xùn)練數(shù)據(jù)為{(x1,y1),(x2,y2),…,(xn,yn)},其中xk表示在P位置處第k幀像素點的顏色向量,yk表示在P位置處當(dāng)前幀像素點從屬于背景區(qū)域的置信度。
當(dāng)前幀每個像素點匯總的背景置信度公式為:
(1)
采用高斯核函數(shù)衡量2個數(shù)據(jù)之間的相似性,公式為:
(2)
式(2)中,σ是高斯核的帶寬。
將式(2)代入式(1),得到代入高斯函數(shù)的背景模型:
(3)
由式(3)可知,每加入一幀圖像,新樣本就會加入到訓(xùn)練集合,系統(tǒng)實時更新背景模型。根據(jù)SVR算法獲得當(dāng)前幀圖像背景,將當(dāng)前幀和圖像背景做差分運算,再與閾值進(jìn)行比較,做二值化處理,從而區(qū)分出運動目標(biāo)和背景。背景差分法檢測結(jié)果如圖3所示。
(a) 輸入圖像
(b) 運動目標(biāo)檢測
視頻存儲主要是為了記錄監(jiān)控場所的變化信息。如果不對視頻進(jìn)行預(yù)處理,存儲大量有效信息含量低的視頻,會占用較大網(wǎng)絡(luò)帶寬。因此,可以使用幀過濾方法將有效視頻幀進(jìn)行篩選,上傳到云服務(wù)器存儲,減少視頻冗余信息。
ECN將視頻流分為多個時長為T的視頻幀序列,根據(jù)檢測場景中運動目標(biāo)的影像在不同視頻流圖像中的位置,采用三幀差分法計算視頻流S在當(dāng)前時間點是否檢測到目標(biāo):檢測到目標(biāo)數(shù)值為“1”,反之則為“0”。三幀差分法運算如圖4所示。
圖4 三幀差分法運算
三幀差分法運算公式為:
Dk(x,y)=|Fk(x,y)-Fk-1(x,y)|
(4)
Dk+1(x,y)=|Fk+1(x,y)-Fk(x,y)|
(5)
Dk'(x,y)=Dk(x,y)∩Dk+1(x,y)
(6)
式(4)~(6)中,F(xiàn)k+1,F(xiàn)k和Fk-1分別為視頻序列中第k+1幀、第k幀和第k-1幀圖像;Fk+1(x,y),F(xiàn)k(x,y)和Fk-1(x,y)為三幀對應(yīng)像素點的灰度值;Dk(x,y)為第k幀和第k-1幀的差分值;Dk+1第k+1幀和第k幀的差分值。
將與運算得到的結(jié)果進(jìn)行閾值判斷。
(7)
式(7)中,Rk′(x,y)為閾值判斷的結(jié)果;V為固定的閾值。
對視頻幀進(jìn)行篩選時,首先計算時間T內(nèi)每路視頻流檢測到目標(biāo)的關(guān)鍵幀數(shù)量Ai,對Ai數(shù)量最大的視頻流進(jìn)行幀過濾。然后,將幀過濾得到的視頻流按照連續(xù)檢測到目標(biāo)的關(guān)鍵幀數(shù)量進(jìn)行降序排列,生成上傳視頻幀組序列,格式為[i,Ai,c],i為關(guān)鍵幀序列,Ai,c為從關(guān)鍵幀i開始連續(xù)檢測到目標(biāo)的關(guān)鍵幀數(shù)量。視頻幀組序列按照Ai降序排列發(fā)送上傳請求,等待云服務(wù)器分配資源。云服務(wù)器通過任務(wù)調(diào)度優(yōu)先級為ECN分配上傳通道,根據(jù)任務(wù)處理的平均價值量,對其進(jìn)行優(yōu)先級劃分,按任務(wù)優(yōu)先級上傳視頻。沒有檢測到目標(biāo)的視頻流則不進(jìn)行上傳存儲。
設(shè)定礦井場所中有N個ECN,每個ECN都有一個待上傳任務(wù),用Tk表示第k個ECN待上傳任務(wù)。Tk的具體信息參數(shù)為{TkDatasize,TkValue},其中TkDatasize為任務(wù)的數(shù)據(jù)量,TkValue為任務(wù)的計算價值量,可用視頻幀過濾中的Ai表示,Ai越大,任務(wù)的計算價值量越高。
任務(wù)的優(yōu)先級描述為:
Pk=TkValue/TkDatasize
(8)
式(8)中,Pk為第k個任務(wù)的優(yōu)先級,也可表示為單位時間內(nèi)的平均計算價值量。由式(8)可知,Pk越高,任務(wù)優(yōu)先級越高。
監(jiān)控系統(tǒng)根據(jù)視頻中人員入侵的位置關(guān)系判斷是否達(dá)到報警條件。系統(tǒng)在要害區(qū)域周邊設(shè)置2條虛擬警戒線,對視頻圖像ROI進(jìn)行檢測。監(jiān)控探頭采集實時視頻數(shù)據(jù),前端監(jiān)控器中的微處理器通過運動目標(biāo)檢測算法對視頻圖像進(jìn)行分析。在檢測到有人員進(jìn)入或觸碰外圍警戒線時,微處理器發(fā)送報警信號,以聲光方式提醒入侵人員,并即時發(fā)送現(xiàn)場監(jiān)控畫面至前端應(yīng)用平臺,語音提示管理員注意報警情況。若人員繼續(xù)入侵至內(nèi)圍警戒線,微處理器發(fā)送閉鎖控制信號至設(shè)備控制模塊,對電機電源進(jìn)行控制,關(guān)閉電源,保障工作人員生命安全。
使用C#語言,基于B/S架構(gòu)采用Winform控件構(gòu)建礦井高危場所視頻監(jiān)控平臺。監(jiān)控平臺是整個系統(tǒng)執(zhí)行日常監(jiān)控和管理維護的中心,管理員可以查看全部視頻監(jiān)控數(shù)據(jù)和各類報警信息。在人員入侵時,現(xiàn)場監(jiān)控視頻需要即時傳輸至平臺界面進(jìn)行顯示,因而采用RTP/RTCP協(xié)議作為網(wǎng)絡(luò)機制傳輸音視頻。為保證音視頻的同步傳輸,系統(tǒng)分別對音頻和圖像的采集編碼線程設(shè)置緩沖區(qū),利用信號量機制使同一線程中的2種碼流交替?zhèn)鬏敚瑥亩_(dá)到音視頻同步傳輸[13-17]。
平臺界面主要分為3個板塊。頁面左邊列出監(jiān)控設(shè)備列表,管理員可以手動選擇礦井中某要害場所監(jiān)控視頻進(jìn)行查看,在有人員闖入時及時提醒管理員注意異常信息,開啟對講模式提醒現(xiàn)場人員注意安全。頁面中間設(shè)置Windows Media Player控件,播放前端監(jiān)控器所采集的實時視頻。頁面右邊分為視頻參數(shù)調(diào)節(jié)、本地回放和云臺控制3個部分,管理員可以更改相應(yīng)視頻參數(shù),查看視頻回放,設(shè)置監(jiān)控器的聚焦、光圈,點擊視頻窗口數(shù)可以同時顯示多個要害場所的監(jiān)控視頻,窗口信息處顯示監(jiān)控異常信息,可以點擊異常信息查看人員入侵回放視頻[18-19]。平臺界面顯示如圖5所示。
圖5 平臺界面顯示
模擬礦井中高危場所配置,對云計算和云邊協(xié)同計算2種計算模式進(jìn)行實驗對比,即將全部計算任務(wù)置于云服務(wù)層進(jìn)行處理和在邊緣感知層進(jìn)行數(shù)據(jù)預(yù)處理后,通過任務(wù)調(diào)度算法上傳云服務(wù)層作進(jìn)一步分析處理,對比2種計算模式所產(chǎn)生的時延大小。
將2種計算模式下的云服務(wù)器部署在同一局域網(wǎng)中,在云計算模式中,云服務(wù)器是搭載Intel Core i7四核處理器的電腦,監(jiān)控探頭選用普通礦用攝像頭。在云邊協(xié)同計算模式中,云服務(wù)器配置i5四核處理器,監(jiān)控探頭選用配置微處理器的礦用攝像頭。把視頻流按分辨率分為3組(480 p,720 p,1 080 p),每組包含5段有人員闖入的視頻流,取5段視頻流預(yù)處理時延的平均值進(jìn)行對比。
2種計算模式在不同視頻流分辨率下的處理時延如圖6所示。由圖6可知,隨著視頻分辨率增加,數(shù)據(jù)處理時延不斷提高,而邊緣感知層預(yù)處理時延始終低于直傳云計算層。這是因為視頻流經(jīng)過幀過濾和任務(wù)優(yōu)先級調(diào)度降低了系統(tǒng)處理時延。
圖6 2種計算模式在不同視頻流分辨率下的處理時延
在視頻圖像中設(shè)定2道虛擬警戒線劃分危險區(qū)域,選取5名人員依次進(jìn)入場所進(jìn)行系統(tǒng)目標(biāo)識別率和系統(tǒng)響應(yīng)時間測試,其結(jié)果見表1。由表1可知,系統(tǒng)目標(biāo)識別率不低于97.7%,響應(yīng)時間不高于2.1 s,滿足需求。隨著檢測人數(shù)增加,系統(tǒng)目標(biāo)識別率降低,響應(yīng)時間增加。這是因為系統(tǒng)對多運動目標(biāo)增加了檢測時間,可以考慮在系統(tǒng)中對運動目標(biāo)檢測算法進(jìn)行優(yōu)化。
表1 系統(tǒng)目標(biāo)識別率和系統(tǒng)響應(yīng)時間測試結(jié)果
針對目前煤礦視頻監(jiān)控系統(tǒng)數(shù)據(jù)傳輸時延的問題,設(shè)計了一種云邊協(xié)同的礦井高危場所視頻監(jiān)控系統(tǒng)。其以云邊協(xié)同模型為基礎(chǔ),構(gòu)建了系統(tǒng)分層架構(gòu),部署邊緣感知節(jié)點對監(jiān)控視頻進(jìn)行運動目標(biāo)檢測,實現(xiàn)本地智能處理;對視頻流進(jìn)行視頻幀過濾,根據(jù)任務(wù)優(yōu)先級上傳視頻至云服務(wù)器存儲,減少了視頻傳輸時延。實驗結(jié)果表明,該系統(tǒng)可以在人員闖入礦井高危場所時進(jìn)行警告、報警和控制,達(dá)到了預(yù)期要求。