張小艷, 郭海濤
(西安科技大學 計算機科學與技術(shù)學院, 陜西 西安 710600)
目前,大多煤礦井下視頻監(jiān)控[1]還是通過人工方式查看,存在效率低、對異常情況不能及時預(yù)警等問題?;诿旱V井下視頻監(jiān)控的目標檢測,可作為井下目標行為分析和理解的重要手段,為保障煤礦生產(chǎn)安全提供技術(shù)支持。傳統(tǒng)的運動目標檢測算法主要有幀差法[2-3]、光流法[4-6]和背景差分法[7-10]等。由于煤礦井下環(huán)境光照不足、粉塵多、噪聲大,上述算法應(yīng)用到煤礦井下時均存在不同程度缺陷,如檢測結(jié)果圖像輪廓不完整、算法處理速度和檢測效果不能兼顧、光照魯棒性弱等。
混合高斯模型是一種無監(jiān)督學習的模型,能夠處理圖像中背景物體的局部重復(fù)運動、緩慢運動,實現(xiàn)復(fù)雜區(qū)域中的跟蹤,被廣泛應(yīng)用于運動目標檢測中。但混合高斯模型是基于單像素點建模,建模速度較慢,并且在模型建立初期和后期采用同樣的學習率,導(dǎo)致模型更新速度緩慢。為了改善目標檢測效果,學者們基于混合高斯模型進行了進一步研究。文獻[11]自適應(yīng)地調(diào)整了高斯模型的分布數(shù)量,提高了背景建模精度,但沒有優(yōu)化高斯逐點建模過程,算法運行速度較慢。文獻[12]對井下圖像采用暗原色先驗進行去霧處理,在提高圖像對比度、識別細節(jié)信息、抑制噪聲等方面有較好的效果,但是獲取圖像暗通道圖的過程增加了算法復(fù)雜度。文獻[13]使用邊緣對比差分算法保證圖像邊緣信息連續(xù)、完整,提高了目標檢測的準確率。
針對混合高斯模型運行速度慢、算法復(fù)雜度高、易受光照影響等問題,提出了一種基于改進混合高斯模型的井下目標檢測算法,采用改進的暗通道去霧算法對井下視頻圖像進行預(yù)處理,通過塊建模算法和自適應(yīng)學習率提高背景模型的建立與更新速度。
對圖像中每個像素建立K個高斯分布模型,則t時刻當前像素值Xt的背景分布概率為
(1)
式中:ωi,t為第i個高斯分布在t時刻的權(quán)重;η為高斯分布的概率密度函數(shù);μi,t為第i個高斯分布在t時刻的期望;Σi,t為第i個高斯分布在t時刻的協(xié)方差矩陣。
高斯模型概率密度方程為
(2)
式中n為每個像素值的維數(shù),一般取1或3。
確定K時需要考慮到內(nèi)存和計算性能,一般取3~5??紤]到計算復(fù)雜度,定義協(xié)方差矩陣形式為
(3)
式中:σi為第i個分布的方差;I為圖像序列。
設(shè)權(quán)值為1,方差為默認值,期望為初始幀對應(yīng)點的像素值,對圖像中的像素點進行初始化?;旌细咚鼓P椭饕ㄟ^學習率來決定背景更新的速度。在建模初期,場景中一般沒有前景目標。因此,一般在建模初期使用較高的學習率來提高建模速度,然后再使用較低的學習率來進行前景提取和背景更新。
對圖像中每個像素點,分別與其對應(yīng)的K個高斯分布進行匹配,匹配公式為
|Xt-μi,t-1|≤Cσi
(4)
式中C為常數(shù),一般取2.5~3.5。
如果當前像素值與K個分布均不匹配,則用新的分布替換最小概率分布,并調(diào)整權(quán)重:
ωi,t=(1-α)ωi,t-1+αMi,t
(5)
式中:α為學習率;當像素和模型匹配時Mi,t為1,否則為0。
如果像素與任何一個分布匹配,則對應(yīng)參數(shù)更新公式為
μi,t=(1-ρ)μi-1,t+ρXt
(6)
(7)
式中ρ=αη(Xt,μi,t,σi)。
如果像素與任何一個分布均不匹配,則方差和期望不更新,只更新權(quán)重;當像素和任意一個分布匹配時,模型的各權(quán)值重新歸一化。
用B作為當前背景模型,B滿足:
(8)
式中T為判定高斯分布是否可作為背景模型的最低閾值,一般取0.9。
高斯模型分布是按照ωi,t/σi的值排序的,當分布的權(quán)重增大、方差減小時,該比值會增加。因此,可能性最大的分布排在最前面,而可能性較小的分布排在最后面,并最終被新的分布取代。
在判斷像素點類別時,如果當前像素與任意一個高斯分布匹配,則認為該像素點屬于背景,否則認為該像素點屬于前景。
煤礦監(jiān)控圖像存在照度低、粉塵大并且噪聲強度高等問題,對圖像有效信息提取帶來極大不便,因此,采用暗通道去霧算法[14]對井下圖像進行去霧,去霧公式為
(9)
式中:J(x)為無霧圖像;Y(x)為有霧圖像;s(x)為光線透射率;A為大氣光值。
求取暗通道圖會導(dǎo)致算法計算較慢,因此,首先對圖像的縮略圖求暗通道圖,然后插值恢復(fù)圖像像素。在常用的插值方法[15]中,雙三次插值法效果最佳,但算法速度較慢。為了提高速度,本文選擇雙線性插值法對圖像進行插值,以縮短暗通道圖的獲取時間,提高算法速度。
雙線性插值是對二元插值函數(shù)的擴展,其主要思想是分別在x,y方向進行一次線性插值,如圖1所示。
圖1 雙線性插值Fig.1 Bilinear interpolation
假設(shè)已知函數(shù)f在點Q11(x1,y1),Q12(x1,y2),Q21(x2,y1)及Q22(x2,y2)處的值,要得到f在點Q(x,y)處的值,在x方向進行線性插值,得
(10)
在y方向進行線性插值,得
(11)
預(yù)處理算法流程如下:
(1) 輸入塵霧圖像,對圖像進行直方圖均衡化。
(2) 對直方圖均衡化后的圖像求取縮略圖,再對縮略圖求取暗通道圖。
(3) 估計暗通道圖的大氣光值,并利用導(dǎo)向濾波求取圖像的透射率圖。
(4) 采用雙線性插值法放大去霧后的圖像,恢復(fù)圖像的像素。
(5) 輸出無霧圖像。
傳統(tǒng)混合高斯建模過程是對每一個像素點建立K個高斯分布,算法的復(fù)雜度高,實時性差。煤礦井下監(jiān)控攝像頭一般固定不動,因而圖像背景無變化。另外,圖像中可能出現(xiàn)像素相似區(qū)塊,如井下墻壁、礦車或者地面等,這些區(qū)域的像素可與其周圍像素共用一個模型,從而降低了建模復(fù)雜度。
(12)
式中I′(h1,h2,t)為t時刻的像素值。
(13)
(14)
文獻[16]得出分辨率為320×240的視頻最佳分塊數(shù)為2×2,但是其忽略了視頻分辨率變化的問題,即分辨率高于320×240時可能2×2分塊不適用。本文通過對320×240、640×480和960×540三種分辨率規(guī)格視頻中的10幀使用2×2、3×3、4×4、6×6四種分塊策略進行實驗,通過分析算法運行時間和檢測效果得到更佳的分塊策略,實驗結(jié)果如圖2所示。
圖2 塊建模算法對比Fig.2 Comparison of block modeling algorithms
從圖2可看出,分辨率為320×240時,解析10幀視頻的時間隨著分塊的增加依次減小了19.1%,16.6%,11.2%;分辨率為640×480時依次減小了17.5%,15.2%,10.3%;分辨率為960×540時依次減小了17.2%,13.6%,8.6%。隨著分塊數(shù)增加,算法所需要的時間逐漸減小。
塊建模效果如圖3所示。當分塊數(shù)為2×2和4×4時,檢測結(jié)果中目標形態(tài)清楚,幾乎沒有噪聲干擾;當分塊數(shù)為6×6時,檢測結(jié)果中目標出現(xiàn)了嚴重的“拖影”。因此,為了提高算法運行速度,同時保證檢測效果,采用如下改進塊建模算法:視頻分辨率低于320×240時不進行分塊,分辨率大于320×240且小于640×480時采用6×6分塊,分辨率超過640×480時采用4×4分塊。
(a) 原圖像
(b) 2×2分塊
(c) 4×4分塊
(d) 6×6分塊
在幀差法的基礎(chǔ)上對混合高斯模型進行改進。幀差法通過計算圖像幀之間的差值進行目標檢測,兩幀差分法易發(fā)生“空洞”現(xiàn)象,三幀差分法則是利用3幀圖像中的相鄰2幀進行差分計算,可以獲得較好的圖像檢測效果。選取3幀圖像Ij-1(x,y),Ij(x,y),Ij+1(x,y),分別計算相鄰2幀的差值:
(15)
使用閾值T對差值圖像進行二值化:
(16)
對得到的2個差分圖像進行“與”運算,得到結(jié)果圖像D(x,y):
(17)
三幀差分法如圖4所示。
圖4 三幀差分法Fig.4 Three-frame differential method
α的取值決定背景更新的速度。在傳統(tǒng)的混合高斯模型中,由于學習率α取值固定,導(dǎo)致模型的更新速度不能變化。由于對煤礦井下視頻進行了預(yù)處理,算法復(fù)雜度較高,同時要求一定的實時性,固定的學習率不能滿足井下目標檢測需求。因此,當背景發(fā)生改變時,相應(yīng)的學習率也要進行更新。本文結(jié)合三幀差分法對學習率設(shè)置進行改進。使用三幀差分法時,確定前景目標像素在整個圖像像素中的比例a,通過前景在所有像素中的占比設(shè)定建模不同階段的學習率:
(18)
在建模前期(0≤a≤10%),監(jiān)控場景中沒有運動目標,根據(jù)理論及實驗分析,設(shè)定一個較大的模型學習率0.05;而在建模后期(a>10%),運動目標進入監(jiān)控范圍內(nèi),根據(jù)運動目標在場景中的像素占比動態(tài)調(diào)節(jié)模型學習率。
通過自適應(yīng)學習率設(shè)計,既可以抑制光照對檢測的影響,又能在建模前期使用較大的學習率,建模后期減小學習率,從而提高建模的速度和準確度。
目標檢測算法流程如圖5所示。首先,對井下視頻進行預(yù)處理,對高斯模型進行初始化;然后,采用改進塊建模算法進行分塊處理,結(jié)合三幀差分法判斷建模階段并自適應(yīng)設(shè)置學習率;最后,通過改進高斯模型進行目標檢測。
為驗證所提出算法的有效性,選取井下視頻進行目標檢測,在Visual Studio 2019和OpenCV 440平臺進行實驗,取2段視頻Coalvideo1(930幀,分辨率為320×240,幀率為25幀/s),Coalvideo2(750幀,分辨率為640×480,幀率為25幀/s),進行實驗對比,結(jié)果如圖6、圖7所示。
圖5 目標檢測算法流程Fig.5 The flow of target detection algorithm
(a) 原圖
(b) 傳統(tǒng)混合高斯模型
(c) 三幀差分法
(d) 本文算法
(a) 原圖
(b) 傳統(tǒng)混合高斯模型
(c) 三幀差分法
(d) 本文算法
從圖6可看出,當光照未變化時,本文算法去噪效果更好,圖像更完整,而傳統(tǒng)混合高斯模型的噪聲較大,三幀差分法檢測結(jié)果中圖像空洞較多。從圖7可看出,當光照發(fā)生突變時,傳統(tǒng)混合高斯模型受光照影響較大;三幀差分法對光照變化的抑制性較好,但是圖像空洞現(xiàn)象嚴重;本文算法仍能較好地描述檢測對象,對光照變化有明顯抑制作用。
三幀差分法、傳統(tǒng)混合高斯模型和本文算法的處理速度見表1。對于視頻Coalvideo1,本文算法的處理速度比傳統(tǒng)混合高斯模型和三幀差分法分別提高了65.7%和45.4%;對于視頻Coalvideo2,本文算法的處理速度比傳統(tǒng)混合高斯模型和三幀差分法分別提高了65.4%和42.6%。實驗結(jié)果驗證了本文算法可有效提高視頻處理速度。
表1 實驗結(jié)果對比Table 1 Comparison of experimental results
在圖像預(yù)處理過程中,先對圖像縮略圖求暗通道圖,再通過雙線性插值恢復(fù)像素,從而降低暗通道去霧算法的復(fù)雜度,在保證圖像處理效果的同時提高了算法運行速度。在目標檢測中,對塊建模算法進行了改進,使其適用于不同分辨率的視頻;采用三幀差分法應(yīng)對光照突變,并在混合高斯模型建模前和建模后設(shè)定自適應(yīng)學習率,提高了模型的更新速度,取得了較好的井下目標檢測效果。實驗結(jié)果表明,當光照發(fā)生突變時,本文算法仍能較好地描述檢測對象,對光照變化有明顯抑制作用;與三幀差分法、傳統(tǒng)混合高斯模型相比,本文算法可顯著提高視頻處理速度。