趙江平,王 垚
(西安建筑科技大學資源工程學院,陜西 西安 710055)
有限空間是指在作業(yè)地點與外界相對分離的封閉或部分封閉的生產(chǎn)操作區(qū)域,且作業(yè)人員不能長期工作的場所[1]。結合有限空間的過往事故案例分析可以看出,當前工貿(mào)行業(yè)有限空間發(fā)生的安全事故主要是由人的不安全行為引發(fā)的,其原因主要包括作業(yè)前未檢測、未通風、未設置警戒標識,作業(yè)中人快速移動導致跌倒摔傷等。面對如此嚴峻的形勢,如何減少有限空間作業(yè)中因人的跌倒導致的事故,成為了國內(nèi)外學者關注的重要問題。
圖像識別技術是多領域技術的融合,包括人工智能、模式識別等,其作用是對實時的視頻圖像進行處理,可實現(xiàn)對運動目標的捕捉和識別[2]。人體跌倒行為檢測是圖像識別技術的研究熱點,目前該檢測技術分為兩類:可穿戴式傳感器檢測[3]和基于圖像識別的方法[4]。前者需要佩戴傳感器以提取人體運動特征,通過傳感器反饋的數(shù)據(jù)采用模式識別技術來進行人體跌倒行為分析與檢測;后者通過分析圖像中人的輪廓、形狀等特征來進行人體跌倒行為分析與檢測。如蘭勝坤等[5]通過提取運動物體的高寬比、運動目標投影的面積和周長以及Zernike矩特征,利用支持向量機(SVM)對人體跌倒行為進行判斷與識別;Dalal等[6]提出利用HOG特征提取人體運動特征,取得了很好的效果;孫曉雯等[7]通過對加速度閾值的判別,再利用PSO-SVM對人體跌倒行為進行檢測;裴利然等[8]用基于徑向基函數(shù)的SVM對人體跌倒行為進行檢測,并采用PSO算法對SVM參數(shù)進行了優(yōu)化。
影響圖像識別技術的關鍵環(huán)節(jié)是對圖像特征的提取,以上研究中都使用人體單一特征向量來描述與識別不安全行為具有局限性。本文通過改進方向梯度直方圖(HOG)特征并融合人體重心移動特征對有限空間作業(yè)中不安全行為即跌倒行為進行識別,可避免單一特征向量對檢測人體跌倒行為的誤判,通過對人體特征向量的改進,對不安全行為的識別更為準確。
人的行為檢測與識別是計算機視覺領域研究的熱門課題,其核心是利用圖像分析、模式識別等技術從圖像中檢測人的行為并進行分類與描述[9]。本文主要利用圖像識別技術檢測在有限空間作業(yè)過程中可能出現(xiàn)的不安全行為,為此提出了基于SVM的不安全行為即人體跌倒行為識別流程,見圖1。該流程分為以下幾部分:圖像預處理模塊、目標檢測模塊、特征提取模塊、圖像識別模塊。
圖1 基于支持向量機(SVM)的不安全行為跌倒 識別流程圖Fig.1 Unsafe behavior identification flow chart based on SVM
一幅RGB彩色圖像包含的信息內(nèi)容較大,計算機真正可識別的圖像信息需要進行預處理。圖像預處理方法主要有以下4種方法:
(1) 灰度級變換:該方法能夠使圖像像素亮度范圍變大,對比度增強,圖像清晰易于識別。在一幅圖像中邊緣就是灰度值間斷的結果,是圖像分割、形狀特征提取和分析的基礎[10]。
(2) 直方圖均衡化:該方法能夠使圖像對比度增強,并補償圖像在視覺上難以區(qū)分灰度級的差別。
(3) 高斯低通濾波平滑:是一種線性濾波器,該方法能夠有效抑制噪聲,平滑圖像。
(4) 中值濾波去噪:該方法能夠有效抑制噪點,保持圖像的清晰度。
圖2為圖像預處理的效果圖。
圖2 圖像預處理的效果圖Fig.2 Image preprocessing effect
幀間差分法是一種通過對視頻圖像序列中相鄰兩幀進行差分運算來獲得對運動目標輪廓的方法,它適合于對運動目標的捕捉[11]。當圖像中物體運動時,相鄰兩幀圖像之間會有明顯的位置變化,通過相鄰兩幀圖像亮度相減運算可得到亮度差的絕對值,判斷亮度差的絕對值是否大于閾值,分析視頻或圖像序列中物體的運動特性,確定圖像中是否有物體運動[12]。
假設視頻圖像序列f1,f2,…,fk中,提取相鄰兩幀圖像fk(x,y)和fk-1(x,y),則它們的差分圖像Dk(x,y)為
Dk(x,y)=|fk(x,y)-fk-1(x,y)|
(1)
式中:(x,y)表示圖像中像素點的空間坐標。
將差分圖像Dk(x,y)和設置的閾值T進行比較,得到差分后的二值化圖像Rk(x,y),并判定圖像中各個像素點是運動目標像素點還是背景像素點,灰度值為0是背景像素點,灰度值為1是運動目標像素點,從而提取出視頻目標運動輪廓。差分后的二值化圖像Rk(x,y)可表示為
(2)
式中的閾值T可以預先給定,也可以采用自適應的方法確定。幀間差分法的基本原理見圖3。
圖3 幀間差分法的原理Fig.3 Principle of inter-frame difference method
幀間差分法的優(yōu)點是:算法易于實現(xiàn),背景更新頻率高,對變化的背景適應力強,對變換的光線不敏銳,提取出的目標圖像能較為完整地顯示出所檢測目標的外輪廓形狀信息[13]。幀間差分法的缺點是:運動目標的速度變化快慢對計算結果有影響,當運動目標的速度過快時,會導致檢測目標不容易捕捉或很難檢測出來;幀與幀之間不匹配會出現(xiàn)重影,目標對象靜止不動在畫面中時會出現(xiàn)空洞;選取不同的閾值T會出現(xiàn)不同的效果,當選取的閾值T數(shù)值過大時,會產(chǎn)生大量的背景區(qū)域空白,且圖像受噪聲的影響較大,難以描繪出運動目標完整的區(qū)域。但是通過結合基本運算包括腐蝕(Erosion)、膨脹(Dilation)、開(Opening)、閉(Closing)等運算可以改進幀間差分法,如對差分后的二值化圖像進行腐蝕處理或膨脹處理,可以有效地去除圖像內(nèi)的空洞,并能夠使得圖像輪廓變得更光滑。圖4為幀間差分法人體運動目標檢測結果,人體目標用紅色框體進行標識。
圖4 幀間差分法人體運動目標檢測結果Fig.4 Detection results of human movement target based on interframe difference method
方向梯度直方圖(Histogram of Oriented Gradient,HOG)是一種實現(xiàn)人體運動目標檢測的圖像描述方法,HOG特征提取主要通過計算和統(tǒng)計圖像局部區(qū)域內(nèi)的直方圖來實現(xiàn)[14]。
1.3.1 HOG特征提取
HOG特征提取過程如下:
(1) 為了減少光照等其他因素的影響,將輸入圖像進行圖像預處理進而轉化為灰度圖。
(2) 計算圖像梯度。采用一維模板[1,0,1],[1,0,-1]T對圖像像素點橫縱坐標計算梯度,即計算x軸方向和y軸方向的梯度Gx(x,y)、Gy(x,y),其計算公式如下:
Gx(x,y)=H(x+1,y)-H(x-1,y)
Gy(x,y)=H(x,y+1)-H(x,y-1)
(3)
式中:H(x,y)表示輸入圖像在像素點(x,y)處的像素值;Gx(x,y)、Gy(x,y)分別表示水平方向和豎直方向的梯度。
圖像在像素點(x,y)處的梯度幅值和梯度方向分別為G(x,y)和α(x,y),計算公式如下:
(4)
(3) 將圖像分為若干個均勻的“Block Cell”,每個Cell為8×8像素,采取8個bin的直方圖來統(tǒng)計一個Cell的梯度內(nèi)容;將Cell的梯度方向360°分為8個方向塊,對每個Cell的梯度方向進行計數(shù)統(tǒng)計,可得到Cell的梯度方向直方圖,即一個Cell對應8維特征向量。
(4) 將Cell單元組合成大的Block,一個塊包括2×2個Cell,每個塊內(nèi)所有Cell的特征向量串聯(lián)起來即可得到塊的HOG特征。
(5) 在收集HOG特征前,需要對圖像梯度進行高斯函數(shù)加權,收集各個Block的HOG特征。
HOG特征提取由于是對局部小區(qū)域內(nèi)直方圖進行統(tǒng)計,因此該方法可以有效地消除光照、陰影等影響圖像特征提取的因素。圖5為圖像進行HOG特征提取后的結果,HOG特征提取經(jīng)過灰度處理,在人體邊緣附近產(chǎn)生了明顯的灰度差。
圖5 圖像經(jīng)HOG特征提取后的結果圖Fig.5 Results chart of images extracted by HOG features
1.3.2 人體行為重心特征提取
人的不同行為特征,會有不同的人體重心軌跡變化與運動趨勢,這一特征可以作為識別人的不同動作的重要依據(jù)。提取人體重心特征,需要對人體輪廓邊緣進行計算,在前述采用幀間差分法檢測出運動目標后,對運動目標利用邊緣檢測算法即Canny算子,得到人體輪廓邊緣的二值化圖像,使外接矩形盡可能地貼近運動目標的輪廓。
人體輪廓外接矩形的繪制步驟如下:
(1) 運動目標檢測后,利用Canny算子得到人體輪廓邊緣的二值化圖像;再對第一步的圖像遍歷,檢測運動目標的左下原點像素與右上對角點像素,記錄坐標(xmin,ymin)和(xmax,ymax)。人體輪廓的外接矩形高度和寬度可表示如下:
H=ymax-ymin
L=xmax-xmin
(5)
(2) 人體輪廓外接矩形的框體形狀定義如下:
左下O為原點像素點的坐標(xmin,ymin),右上T為最遠點像素點的坐標(xmax,ymax),通過O與T構成外接矩形進而代替被檢測的運動目標。人體輪廊外接矩形的框體形狀見圖6。
圖6 人體輪廓外接矩形的框體形狀圖Fig.6 A frame diagram of the external rectangle of a human body contour
(3) 被檢測的運動目標的重心可由人體輪廓外接矩形的灰度質心代替。設外接矩形f(x,y)是O與T構成的外接矩形內(nèi)的一個像素點灰度值,通過計算外接矩形區(qū)域內(nèi)所有像素點的灰度值之和∑xmin≤x≤xmax,ymin≤y≤ymaxf(x,y),計算外接矩形中每個像素點的灰度值與其橫坐標的乘積并對所有結果求和∑xmin≤x≤xmax,∑ymin≤y≤ymaxf(x,y),計算外接矩形中每個像素點與其縱坐標的乘積并對所有結果求和∑ymin≤y≤ymax,∑xmin≤x≤xmaxyf(x,y),可得到運動目標的質心(重心)坐標的表達式為
(6)
(7)
由運動目標的重心坐標表達式可描述人體的運動規(guī)律與特性,即人體重心高度變化率和寬高比。通過對圖像序列幀得到二值化圖像的人體輪廓,將其用外接矩形來代替,并通過對圖像序列幀的遍歷,可以獲取M個由外接矩形質心代替得到的運動目標重心坐標,將這些重心坐標組成一組特征矢量,通過記錄每一幀的重心坐標可以得到重心高度變化率。當被檢測對象在水平方向移動時,水平方向的重心高度變化率較小,而出現(xiàn)跌倒或下蹲時,豎直方向的重心高度變化率會急劇變化。因此,針對跌倒和下蹲動作的重心高度變化率幅值可以設定不同行為的閾值。
為了能夠表征人體輪廓外接矩形運動目標重心坐標的高度差Mh(i),通過計算測量運動目標重心坐標與原點坐標的差值來表示人體重心坐標的高度差,其計算公式為
Mh(i)=yw(i)-ymin(i)
(8)
式中:yw(i)為重心縱向坐標。
假設圖像當前幀為第i幀,計算之前的i-1幀圖像運動目標重心坐標的高度差Mh(i)的均值為
(9)
則人體重心高度變化率為
(10)
分別選取人體5種不同行為動作的重心高度變化率曲線(見圖7),可以明顯對比出人在不同行為動作下重心高度變化率的差異。
圖7 人體不同行為動作的重心高度變化率曲線Fig.7 Curves of change rate of height of gravity center under different human behaviors
由此可見,應用HOG特征和人體行為重心移動特征的融合對人體行為特征進行描述,可以降低單一特征在行為識別方面的誤報概率。
支持向量機(Support Vector Machines,SVM)是一種具有監(jiān)督學習的分類方法,廣泛應用于統(tǒng)計分類和回歸分析中[15]。SVM在解決小樣本、非線性和高維度模式識別分類問題中有著獨特的優(yōu)勢。SVM的核心思想是在核函數(shù)映射的高維特征空間上構造間隔分離超平面,通過建立超平面實現(xiàn)樣本的二分類。SVM分類識別算法的實現(xiàn)流程見圖8。
圖8 SVM分類識別算法的實現(xiàn)流程Fig.8 Implementation process of SVM classification algorithm
SVM問題可簡化為求公式(11)的二次規(guī)劃問題,通過尋找分類的超平面可使訓練集中的點距離分類面盡可能地遠,也就是尋找一個分類面使它兩側空白區(qū)域(margin)最大[16]。設分類線方程為xw+b=0,對它進行歸一化,使得線性可分樣本集(xi,yi)(i=1,2,…,n;x∈Rd;y∈{+1,-1})滿足:
yi[(w·xi)+b]-1≥0
(11)
若分類間隔為2/‖w‖,則分類間隔取最大值就等同于‖w‖取最小值。因此,使‖w‖最小的分類面就是所尋找的最優(yōu)分類面,這樣尋找最優(yōu)分類面的問題則轉化為約束條件下的優(yōu)化問題。
(12)
該目標函數(shù)是二次的,約束條件參數(shù)w和b是線性的,解決該約束條件下的優(yōu)化問題可通過標準的拉格朗日(lagrange)乘子,即將新的目標函數(shù)轉化成最優(yōu)化求解,加入拉格朗日乘子α,則有:
(13)
分別對公式(13)中參數(shù)w和b求導并令其為零,可得到下式:
(14)
將公式(12)代入公式(13)拉格朗日乘子中,則將分類問題轉化為對偶問題,有:
(15)
(αi≥0;i=1,2,…,n)
其中,αi為與第i個樣本相對應的拉格朗日乘子,且該方程存在唯一解。最后得到的最優(yōu)分類函數(shù)如下:
f(x)=sgn{(w·x)+b}
(16)
在上述圖像預處理與運動目標檢測的基礎上,提取HOG特征和人體重心移動特征,采用本文提出的人體跌倒行為檢測算法并應用SVM分類器進行分類識別。該分類器計算過程分4個步驟:第一步生成訓練特征集,利用SVM分類器計算樣本的置信度與判決權值;第二步計算訓練樣本特征到分類面的距離(置信值),結合置信值的正負和大小判斷出訓練樣本所屬分類;第三步輸入測試樣本進行分類識別;第四步判別出測試樣本特征所屬的類別,正數(shù)代表測試樣本屬于類別1,負數(shù)則代表測試樣本屬于類別2,且樣本的置信值越大,越可能代表所屬的類別。訓練樣本和測試樣本所屬類別的運算模塊,見圖9和圖10。
圖9 訓練樣本分類運算模塊Fig.9 Classification operation module of training samples
圖10 測試樣本分類運算模塊Fig.10 Classification operation module of test samples
本文的實驗環(huán)境如下:
(1) 軟件開發(fā)環(huán)境:Windows 10操作系統(tǒng),軟件仿真平臺MATLAB R2016b。
(2) 硬件開發(fā)環(huán)境:PC機一臺,Intel(R) Core(TM)i5-6300HQ CPU 2.30 GHz,8G的DDR3內(nèi)存、英偉達NVIDIA Geforce GTX 960M顯卡,算法在檢測過程中能夠以每秒30幀的圖像采集速度進行實時處理。
本文采用Sony XC-HR70攝像機進行拍攝,幀速率為60 fps,圖像大小為1024(H)×768(V),攝像頭布置的高度設為1.5 m,自然光照明且照明情況良好,采集人體正面和側面兩個方向的不同行為。
本實驗數(shù)據(jù)集分為訓練集和測試集兩部分,由于人的行為比較復雜,在收集人體行為數(shù)據(jù)時,拍攝了行走、奔跑、彎腰、下蹲、跌倒行為圖像,實驗人數(shù)為5人,其中每人每種動作重復15次。作業(yè)人員的行為有安全行為和不安全行為兩種,本文中將行走、彎腰、下蹲行為當作安全行為,將奔跑、跌倒行為當作不安全行為。實驗數(shù)據(jù)集中訓練集共244張圖像,測試集為131張圖像,圖像均來自本實驗所拍攝的圖像(見圖11),測試集和訓練集的人體行為動作分布見表2。
圖11 實驗拍攝的圖像Fig.11 Experimental image
表2 實驗數(shù)據(jù)集中測試集和訓練集的人體行為動作分布(單位:張)
依據(jù)第1.4節(jié)中SVM分類識別算法的流程及步驟,對測試樣本進行實驗,得到人體行為識別結果見表3。
表3 混淆矩陣人體行為識別結果
Table 3 Confusion matrix behavior recognition results
由表3可知,本實驗對人體的行為動作識別有較高的識別率,平均正確識別率達到了97.84%,說明本文將提取的HDG特征和人體重心移動特征融合能夠較好地完成對人的行為動作識別。其中,對彎腰這一行為動作有最高的正確識別率達100%,這主要是因為這一行為動作的人體重心移動特征不明顯,且人體輪廓較為完整,沒有自遮擋現(xiàn)象,并且當人在做這一動作時,身體不會出現(xiàn)明顯的抖動,相對位置比較固定;而出現(xiàn)識別偏差的剩下4組行為動作,錯分類主要集中在奔跑與行走、跌倒與下蹲。造成奔跑與行走行為動作錯分類現(xiàn)象的原因可能是,在目標檢測過程中由于水平運動速度快慢不一致,差分出的人體目標剪影有殘缺,說明人體目標剪影完整度對特征識別有影響;而下蹲與跌倒行為動作的錯分類現(xiàn)象的原因可能是,測試圖像中下蹲動作的幅度與跌倒動作的幅度差異變化不明顯,因此在設置人體重心移動特征相對位置坐標x軸運動方向的閾值還需進一步研究。
本文設計并實現(xiàn)了一種在有限空間作業(yè)中不安全行為的跌倒行為檢測算法,可以實現(xiàn)對有限空間作業(yè)視頻監(jiān)控范圍內(nèi)出現(xiàn)的人體跌倒行為進行監(jiān)控。該算法通過灰度級變換和高斯低通濾波平滑等圖像預處理后,采用幀間差分提取人體目標,并融合HOG特征與人體重心移動特征訓練SVM,對最終結果進行判斷與識別。實驗證明了該算法在人體跌倒行為檢測中的有效性,但是算法整體運算時效性較差,因此SVM分類器的設計還需要進一步優(yōu)化。另外,針對有限空間作業(yè)中更多的不安全行為識別還需要研究其形態(tài)特征提取方法,并將多特征融合算法進一步優(yōu)化。因此,下一階段的工作需針對有限空間特殊的結構及復雜的作業(yè)環(huán)境,設計更為接近真實場景的實驗環(huán)境,并針對有限空間內(nèi)作業(yè)人員所佩戴的安全用具以及儀器設備進行特征提取與識別,進而加強作業(yè)流程的規(guī)范化,以避免危險事故的發(fā)生。