王堅
(紹興市特種設(shè)備檢測院,浙江 紹興 312071)
目前自動扶梯在各大商場、地鐵站點、火車站、機場等人流量密集的地方都有應(yīng)用,自動扶梯在給人們帶來極大便捷的同時,也會因為一些不當使用造成人們生命財產(chǎn)的損失。例如,當有人將手伸出扶手邊界或?qū)⑸习肷硖匠鲞吔鐣r,如果前方有遮擋物,若不播放提醒語音或減慢扶梯運行速度,則乘客很可能與其發(fā)生碰撞,危害乘客人身安全,甚至導致后面的乘客跌倒、摔落,進而造成多米諾效應(yīng),引發(fā)更惡性的傷亡事件。因此,檢測扶梯扶手邊界區(qū)域越界事件,可以第一時間采取相應(yīng)的語音和安保措施,避免發(fā)生悲劇。
本方法主要包括視頻圖像、ROI 四邊形頂點的輸入,ROI矩形區(qū)域圖像的獲取,ROI 四邊形區(qū)域模板的獲取,GMM 背景建模及運動前景的獲取,圖像后處理及判斷是否達到越界條件的步驟,其流程圖如圖1。
圖1 越界檢測方法流程圖
從扶梯正前方采集扶梯運行視頻圖像,輸入的ROI 四邊形頂點如下圖2(1)所示,ROI 四邊形、ROI 矩形區(qū)域如圖2(2)所示。
其中,圖2(1)中標注的1-4 個紅色頂點即為輸入的ROI 四邊形頂點,圖2(2)中,紅色四邊形為根據(jù)輸入的頂點畫出的ROI 四邊形區(qū)域,綠色矩形為根據(jù)輸入頂點計算出的ROI 矩形區(qū)域。
根據(jù)輸入的四邊形的頂點,找到其中最小的x 坐標值min_x 和y 坐標值min_y,最大的x 坐標值max_x 和y 坐標值max_y,從而獲得ROI 矩形區(qū)域,為了方便獲取后續(xù)ROI 四邊形區(qū)域模板,將ROI 矩形區(qū)域向外擴充一個像素, 再從源圖像中獲取ROI 矩形區(qū)域的子圖像,如圖2(3) 圖像所示。
圖2 從左至右,(a)輸入的ROI 四邊形頂點,(b)ROI 四邊形、ROI 矩形區(qū)域,(c)ROI 矩形區(qū)域圖像,(d)ROI 四邊形區(qū)域模板。
圖2
為了獲取ROI 四邊形區(qū)域模板,提出了一種針對四邊形的快速掃描線填充方法來填充ROI 四邊形區(qū)域,該方法消耗的內(nèi)存和cpu 資源少,空間復雜度低,不需要構(gòu)建復雜的數(shù)據(jù)結(jié)構(gòu),時間復雜度小,算法只需要遍歷一遍ROI 區(qū)域即可完成填充。而傳統(tǒng)的有序邊表掃描線填充法的空間復雜度較高,需要建立邊表(ET),活性邊表(AET)等數(shù)據(jù)結(jié)構(gòu),同時時間復雜度也較高,需要求掃描線與多邊形各邊的交點,涉及浮點數(shù)運算,比較耗時,還要對交點進行排序、交點匹配及區(qū)間填充等步驟,增加了運算耗時。
1.3.1 畫ROI 四邊形
將輸入四邊形頂點,按順序兩兩畫直線,從而圍成封閉的ROI 四邊形。畫直線時采用Bresenham 算法[4],該算法運行速度快,不需要進行浮點數(shù)運算。假設(shè)直線的斜率k>0,直線在第一象限,Bresenham 算法原理如下:
(1)畫起點(x1,y1)
(2)準備畫下一個點,x 坐標加1,判斷如果達到終點,則完成。否則找下一個點,要么為當前點的右鄰接點,要么是當前點的右上鄰接點。將這兩個點到直線上那個點的距離相減,判斷其正負,如果下邊的點到直線實際點距離遠,則Δd=d1-d2>=0,那么取上邊的點y1+1,因此可以直接根據(jù)Δd的符號來判斷選取下一個點,Δd 的計算規(guī)則如下:
①Δd 的初始值為Δd=2dy-dx
②當Δd<0 時Δd=Δd+2dy
③當Δd>=0 時Δd=Δd+2dy-2dx
(3)畫點
(4)跳回步驟b
(5)結(jié)束
1.3.2 填充ROI 四邊形
針對四邊形填充,本文提出了一種快速掃描線填充算法,填充后的流程圖如圖3 所示,具體步驟如下:
(1)按行掃描ROI 矩形區(qū)域。
(2)使用兩個變量記錄當前像素值cur_val 和前一個像素值pre_val,以及一個狀態(tài)變量change_state 來判斷何時開始和結(jié)束填充。
(3)若cur_val 為0,pre_val 不為0,則change_state 增加1。若change_state 為1 時,將當前像素值設(shè)置為255,同時,保存開始填充時的x 坐標值xs。若change_state 為2 時,則停止該行掃描填充。
(4)若此時change_state 為1,則說明掃描線與四邊形只有一個交點,需要將之前填充的像素回溯至xs,將像素值設(shè)置為0。
(5)掃描至整個ROI 區(qū)域結(jié)束。
采用GMM(混合高斯建模)方法,對ROI 矩形區(qū)域建立灰度圖像背景圖,然后用當前幀減去背景圖像,獲得差分圖像,選取合適的閾值,對差分圖像進行二值化,得到二值圖,即運動前景圖。其中,混合高斯背景建模的流程如下:
(1)為灰度圖像的每個像素點指定一個初始的均值、標準差以及權(quán)重。
(2)收集N(一般取200 以上,否則很難得到像樣的結(jié)果)幀圖像利用在線EM 算法得到每個像素點的均值、標準差以及權(quán)重。
(3)從N+1 幀開始檢測,檢測的方法:
對每個像素點:
圖3 快速掃描線填充算法流程圖
(4)更新背景圖像,用在線EM 算法。
利用形態(tài)學操作對運動前景圖進行后處理。先對其進行腐蝕操作,去除噪聲點,再對其進行膨脹處理,補償原有的前景部分,獲得最終的ROI 區(qū)域的運動前景圖。
遍歷最終的ROI 區(qū)域的運動前景二值圖像,若當前像素為255,同時ROI 四邊形模板對應(yīng)位置像素值為255,則模板內(nèi)的前景數(shù)mask_fg_count 增加1,為了統(tǒng)計ROI 四邊形模板內(nèi)的像素數(shù)mask_count,只要ROI 四邊形模板圖像對應(yīng)位置像素值為255,mask_count 增加1。然后計算mask_fg_count/mask_count,即為ROI 四邊形模板內(nèi)前景比例fg_ratio,當fg_ratio 大于設(shè)定閾值時,記錄其持續(xù)的時間continue_time。
若當前幀ROI 四邊形模板內(nèi)前景比例fg_ratio 大于設(shè)定閾值,同時持續(xù)的時間continue_time 大于設(shè)定閾值,則斷定發(fā)生了越界。
本文實驗對象為某商場的扶梯實時監(jiān)控視頻,在vs2013上實現(xiàn)。下面分別是使用本文提出的算法后檢測的結(jié)果。其中圖4 為有人越界的視頻監(jiān)控中某一幀圖像,圖5 中分別為獲取的ROI 矩形區(qū)域圖像、ROI 四邊形區(qū)域模板及通過GMM建模提取的運動前景,由于該視頻中ROI 四邊形模板內(nèi)前景比例大于設(shè)定閾值,同時持續(xù)的時間大于設(shè)定閾值,故發(fā)生了越界告警。圖5 中(1)ROI 矩形區(qū)域圖像,(2)ROI 四邊形區(qū)域模板的某一幀圖像,(3)GMM 建模提取的運動前景。
圖4 實時監(jiān)控視頻中
圖5
基于高斯混合建模的扶梯扶手邊界區(qū)域越界檢測方法,可以及時檢測出扶梯運行過程中有人或物體發(fā)生越界的情況。該方法消耗的內(nèi)存和cpu 資源少,空間復雜度低,時間復雜度小,在自動扶梯安全技術(shù)領(lǐng)域有著現(xiàn)實意義。