周 珂,張浩博,付冬梅,趙志毅,曾 惠
1) 北京科技大學高等工程師學院,北京 100083 2) 北京科技大學自動化學院,北京 100083
視頻圖像的跟蹤及特征分割,是視頻應用中的一項基本任務,如自動監(jiān)視[1],車輛導航,視頻標簽,人機交互[2]和行為識別等. 如何在使用場景中,對視頻流在線執(zhí)行目標跟蹤,滿足圖像跟蹤及后續(xù)處理的實時性、可靠性需求,是目前圖像識別領域的重要研究方向.
2016年,Bertinetto等[3]提出 SiamFC算法,利用CNN的全卷積(Fully-convolutional)神經(jīng)網(wǎng)絡進行實時圖像的跟蹤處理,克服了傳統(tǒng)深度學習在實時視頻圖像處理中計算量大、效率過低的缺陷.2018年,Li等[4]結合了 SiameseFC和 Faster RCNN中的 RPN(Region proposal network),使得實時圖像的提取速度大大加快,同時也達到較高精度效果,其目標跟蹤算法的代碼實現(xiàn)精度在VOT2018排名第一,魯棒性大大增強. 2019年,中科院Wang等[5]提出新算法SiamMask,實時進行目標跟蹤和半監(jiān)督視頻對象分割,采用基于數(shù)百萬視頻幀上離線訓練的全卷積網(wǎng)絡Siamese,縮小任意目標跟蹤與VOS之間的差距,在視頻跟蹤任務上達到最優(yōu)性能,并且在視頻目標分割上取得了當前最快速度.
上述算法在已有開源數(shù)據(jù)庫的實時識別中均有出色表現(xiàn),但在應用場景里,由于識別背景的復雜性及遮擋性、目標特征的差異性、環(huán)境影響的隨機性等因素,會存在一定的目標誤識別現(xiàn)象[6?7].針對如何在識別準確度要求較高的應用場景中(如生產(chǎn)安全智能預警系統(tǒng)中的移動目標實時圖像識別),實現(xiàn)高效、快速的實時圖像識別,開展了本文研究內(nèi)容. 提出一種基于SiamMask的時空預測移動目標跟蹤算法,克服環(huán)境干擾、目標遮擋對跟蹤效果的影響,實現(xiàn)視頻序列中的目標快速識別,對移動目標識別算法模型的復雜環(huán)境應用具有借鑒意義.
機床加工在工業(yè)生產(chǎn)中應用極為廣泛,實際生產(chǎn)操作環(huán)節(jié)里,由于人的安全防護不符合規(guī)范,操作人員的頭發(fā)往往是導致嚴重安全事故的隱患之一. 如女性操作車床時,若未扎好頭發(fā)或未戴帽子,散落的發(fā)梢極易被卷進高速旋轉(zhuǎn)的車床部件中,帶來嚴重的人身安全事故. 隨著數(shù)字化管理手段的普及,操作環(huán)節(jié)的全時監(jiān)控已在生產(chǎn)過程中得到普遍應用,預警系統(tǒng)可通過監(jiān)控視頻的目標識別,達到對危險因素監(jiān)測、預警的目的. 然而頭發(fā)由于移動中的非規(guī)則性、運動無規(guī)律性,使得頭發(fā)區(qū)域在運動圖像中的分割較為困難. 常見的動態(tài)圖像識別Camshift算法以顏色直方圖為特征對目標進行跟蹤[8?9],對剛性目標的跟蹤具有較強的魯棒性. 但當目標過于復雜、目標被遮擋或做加速運動時,很容易發(fā)生目標跟丟的情況. 目前國內(nèi)外頭發(fā)區(qū)域分割多集中在二維圖像中[10?12],對移動目標的頭發(fā)區(qū)域分割尚無工業(yè)實現(xiàn)的先例.
本文的動態(tài)識別檢測以北京科技大學工程訓練中心金工實習車床加工環(huán)節(jié)為樣本,其結果需滿足生產(chǎn)環(huán)節(jié)的安全操作預警,要求較高的識別準確性及算法效率. 因此提出了一種基于PyTorch深度學習框架,將SiamMask單目標跟蹤算法與ROI(Region of interest)檢測及 STC(Spatio-temporal context learning)時空上下文目標跟蹤算法融合的方法[13],滿足實際場景中對人員頭發(fā)區(qū)域動態(tài)分割識別的任務需求.
動態(tài)視頻檢測的重要技術難題就是如何更快、更有效,本文基于2019年5月PySOT目標跟蹤庫[14]的最新成果SiamMask模型進行面部動態(tài)檢測[15]. SiamMask是當前視頻圖像目標跟蹤模型中,最為出色的快速跟蹤和分割方法. 該算法基于PyTorch深度學習框架,實時進行目標跟蹤和半監(jiān)督視頻對象分割,通過增加目標分割的損失,改進了全卷積網(wǎng)絡Siamese跟蹤方法的離線訓練過程. 經(jīng)過訓練,SiamMask完全依賴于初始化單個邊界框并在線操作,產(chǎn)生類別未知的目標分割Mask和實時每秒35幀的旋轉(zhuǎn)邊界框. 在VOT-2018、DAVIS-2016和DAVIS-2017上均有極為出色表現(xiàn).
1.2.1 算法移植測試優(yōu)勢
如圖1所示,Mask生成的網(wǎng)絡采用的兩層1*1卷積,分別是256通道和63*63通道數(shù),并采用了Refinement module(微調(diào)模塊),這是一種不同分辨率的特征融合策略. 在SiamFC和SiamRPN基礎上分別加上目標分割分支網(wǎng)絡,形成兩分支和三分支的SiamMask網(wǎng)絡. 圖1左邊是共享權值的孿生網(wǎng)絡,在對模板(上分支網(wǎng)絡)和搜索區(qū)域(下分支網(wǎng)絡輸入)特征提取后,進行卷積生成與模板最相似的相應區(qū)域. 圖中,★d表示深度相關權重疊加,Row表示響應窗口,Mask表示視頻目標物體,Box 為預測盒,Score為預測得分.fθ、h?、bσ、sφ、pω分別為 CNN、目標物體、預測盒、預測得分、響應窗口預測得分的處理函數(shù)[5].
SiamMask模型通過大量的深度學習網(wǎng)絡離線訓練,將在線學習工作量節(jié)約至最小狀態(tài),整個模型通過初始幀跟蹤目標設定即可完成整段視頻的目標跟蹤處理,具有非常強的實時性、便捷性、計算低成本性. 考慮應用場景對識別快速性的要求,采用SiamMask對圖像進行初步處理. 為更好的測試算法可用性,算法處理環(huán)境為工業(yè)環(huán)境中易于實現(xiàn)的單GPU處理板.
圖2為SiamMask模型在工業(yè)系統(tǒng)視頻中的測試效果,對不同發(fā)型及尺寸視頻目標的頭部追蹤,該模塊表現(xiàn)出較高的識別效率,平均識別速度可達每秒26.8幀.
1.2.2 算法移植測試誤識別現(xiàn)象
盡管算法識別效率高,但在環(huán)境嘈雜時,會出現(xiàn)跟蹤誤識別情況. 如圖 3(a)、(b)所示,當追蹤對象周圍出現(xiàn)深色服裝、肉色物體等干擾源時,算法產(chǎn)生誤識別現(xiàn)象;圖3(c)為人臉被頭發(fā)遮擋后,該模型失去跟蹤目標. 此外,在目標出畫面之外再進來的情況下,繼續(xù)跟蹤效果不佳.
將SiamMask模型對7段測試視頻的追蹤效果進行統(tǒng)計,得到表1所列情況.
結合圖3和表1數(shù)據(jù)可以看出,SiamMask網(wǎng)絡模型會在以下情況產(chǎn)生誤識別現(xiàn)象:
圖1 SiamMask模型算法流程圖[5]. (a)三分支變型架構;(b)二分支變型架構核心Fig.1 SiamMask model algorithmic flow chart[5]: (a) three-branch variant architecture; (b) two-branch variant head
圖2 SiamMask模型面部檢測效果. (a)束發(fā)頭部跟蹤;(b)長發(fā)頭部跟蹤Ⅰ;(c)長發(fā)頭部跟蹤ⅡFig.2 SiamMask model face detection effect: (a) bundle head tracking; (b) long hair head tracking I; (c) long hair head tracking II
圖3 SiamMask模型測試誤識別現(xiàn)象. (a)深色干擾源誤識別;(b)肉色干擾誤識別;(c)頭發(fā)遮擋誤識別Fig.3 SiamMask model test misrecognition phenomenon: (a) misidentification of dark interference sources; (b) misidentification of flesh color interference; (c) misidentification of hair occlusion
表1 SiamMask模型目標跟蹤效果統(tǒng)計Table 1 Statistics of target tracking effect of the SiamMask model
1)初始化區(qū)域選定的面部比例較大時,效果存在較多誤識別現(xiàn)象.
2)干擾項出現(xiàn)時若產(chǎn)生誤識別現(xiàn)象,在干擾因素消失時,無法及時恢復目標跟蹤. 在本文的對象視頻中表現(xiàn)為,目標移出視頻后再返回則不再跟蹤. 由圖3所示,目標誤識別后,即便目標仍在同一區(qū)域,也難以校正.
針對SiamMask模型的應用不足,提出算法修正. 對原始工業(yè)視頻做ROI提取,并以STC時空上下文跟蹤法[16?17]對視頻序列進行匹配校正,從而減少工業(yè)環(huán)境中的目標漏檢、誤檢率,實現(xiàn)復雜環(huán)境中頭發(fā)區(qū)域的精準檢測. 算法框架圖如圖4所示. 圖中,Pk為第k幀圖像,Pk’為STC預測的第k幀圖像,Φ為判斷函數(shù).
修正1:ROI區(qū)域提取. 如上文所述,SiamMask模型初始Mask對視頻后序識別的誤差具有積累性,因此在算法修正時首先對視頻進行了識別目標與非相關性背景的分離預處理[18].
修正2:STC匹配校正. STC模型是一種考量了目標與背景相關性的算法理念,具有較高的目標跟蹤精度與速度. 本文基于STC算法,結合時間與空間信息,根據(jù)對頭發(fā)目標時空關系的在線學習預測新的目標位置,并與SiamMask模型的跟蹤結果進行匹配校正.
1.3.1 工業(yè)視頻ROI提取
本文所使用的視頻來自于實際車工場地監(jiān)控鏡頭錄制的彩色視頻,分辨率為1920×1080,幀率為每秒24幀,總幀數(shù)截取3427幀. 從圖5(a)可以看出,視頻畫面中包含多個機床工位,往來人員較多,這給單個目標的跟蹤、檢測帶來一定干擾. 面對實際情況,針對單個車床目標,需要對獲得的視頻進行ROI提取操作. 其中包括:視頻ROI區(qū)域設定、全圖運動檢測兩部分.
(1)ROI區(qū)域設定.
具體ROI提取步驟中有兩個關鍵點:ROI區(qū)域起點位置、ROI區(qū)域的分辨率. 應用先驗知識,可以確定ROI區(qū)域左上角起點像素位置A(x,y),ROI區(qū)域?qū)挾葹閘w,高度為lh,如式(1)所示:
圖4 基于SiamMask模型的時空預測移動目標跟蹤算法框架圖Fig.4 Framework of spatiotemporal prediction moving target tracking algorithms based on the SiamMask Model
圖5 車工監(jiān)控視頻 ROI提取結果. (a)原始畫面;(b)ROI提取畫面Fig.5 ROI extraction result of a locomotive monitoring video: (a) original picture; (b) ROI extraction picture
通過自動獲取原始視頻的信息,按照式(1)進行相對比例的計算,處理結果如圖5(b)所示,裁切得到的視頻寬度為816個像素、高度為536個像素、ROI左上角起點坐標像素為(516,541).
(2)ROI全圖運動檢測及自動提取.
步驟1:設Ik(z)為像素點z(xz,yz)灰度值,對輸入視頻相鄰的三幀圖像,進行像素點灰度值變化計算.
步驟2:判斷相鄰幀之間灰度變化,對差值標志賦值. 在訓練中選取灰度差閾值ΔIT=30.
步驟3:判斷兩個差值標志位邏輯結果同時為1時,代表三幀中有運動目標存在.
步驟4:對于輸入的序列圖像,按照時序統(tǒng)計每三幀之間的灰度變化像素點的個數(shù),當運動目標出現(xiàn)時,灰度變化像素點個數(shù)成跳變趨勢,從該時刻進行ROI區(qū)域的提取,即按照ROI區(qū)域先驗設定尺寸進行裁切. 如圖6所示.
圖6 運動圖像檢測灰度圖. (a)無運動目標時的原圖/灰度圖;(b)運動目標出現(xiàn)時的原圖/灰度圖Fig.6 Gray level image of moving image detection: (a) original image / gray level image without moving object; (b) original image / gray level image when moving object appears
1.3.2 STC匹配校正
為了解決復雜環(huán)境、頭發(fā)遮擋等對頭部跟蹤的影響,在深度學習框架后的濾波跟蹤框架中融合了圖像空間上下文信息,以實現(xiàn)對目標變化的自適應調(diào)整. STC圖像空間上下文算法通過貝葉斯框架統(tǒng)計目標及其背景的相關性并進行置信圖計算,根據(jù)置信圖的似然概率最大位置預測新的目標位置.
根據(jù)當前幀確定上下文特征集合:Tc={c(z)=(I(z),z)|z∈Ωc(t*)},其中,t*(xt,yt)是目標區(qū)域中心,I(z)是目標區(qū)域像素z的灰度值,Ωc(t*)是由目標矩形確定的局部上下文區(qū)域的圖像灰度與位置的統(tǒng)計建模,c(z)為置信圖函數(shù)[19]. 如圖7所示,對灰度級圖像進行閾值化處理,得到的二值化圖像可進一步排除背景冗余信息.
設SiamMask模型第k幀追蹤目標圖像為Pk,空間上下文預測第k幀目標圖像為. 設計判斷函數(shù)Φ進行Pk與中目標位置的相似度比對,根據(jù)比對結果進行更新校正,形成新的目標跟蹤結果.
步驟1:計算k-1幀ROI區(qū)域置信圖:
圖7 圖像灰度及閾值化處理. (a)原始視頻圖像;(b) 灰度化處理結果;(c) 閾值化處理結果Fig.7 Gray level and threshold processing of image: (a) original video image; (b) grayscale processing results; (c) threshold processing results
式中,o表示所跟蹤目標,P為上下文先驗模型.
步驟2:計算k-1幀Ωc(t*)上下文區(qū)域的空間上下文模型:
式中,b是歸一化參數(shù),α是尺度參數(shù),β是目標形狀參數(shù).
步驟3:更新空間上下文模型:
式中,ρ為模型更新的學習率.
步驟4:在第k幀計算上下文先驗模型及置信圖:
步驟5:將第k幀得到的置信圖極值點作為目標在k幀的位置輸出:
與SiamMask[15]一樣,使用Warmup預熱學習率的方式,在Davis2017[20]數(shù)據(jù)集中進行訓練,并在機加工操作數(shù)據(jù)視頻集中進行頭部識別測試.其中,訓練輸入為圖像尺寸127像素×127像素,255像素×255像素,數(shù)據(jù)增強采用隨機抖動與搜索策略,網(wǎng)絡初始化權重采用SiamMask模型在ImageNet-1k Datasets上預訓練的權重,梯度下降策略采用SGD. 訓練時在開始進行的5輪訓練中,先將學習率從10-3線性增長到5×10-3,之后通過15輪訓練將學習率以對數(shù)規(guī)律降為5×10-4.
圖8為本文算法在訓練及測試集中的準確率、損失率曲線圖. 可以看到,在訓練集上,15輪次左右訓練后,準確率及損失率均有效收斂. 在測試集上,由于數(shù)據(jù)特征更為集中,呈現(xiàn)了更快速的收斂性.
圖8 算法訓練/測試準確率及損失率曲線. (a)訓練集準確率曲線圖;(b)訓練集損失率曲線圖;(c)測試集準確率曲線圖;(d)測試集損失率曲線圖Fig.8 Algorithm training/test accuracy and loss rate curve: (a) training set accuracy curve; (b) training set loss curve; (c) test set accuracy curve; (d) test set loss curve
2.2.1 測試指標設計
本文采用圖像檢測中常用的標準性能度量參數(shù) IoU(Intersection over union)進行檢測判斷. 當檢測到的目標位置與真實目標位置相交的重疊部分為0時為失敗,即IoU=0認定為跟蹤失敗. 通過式(10)統(tǒng)計第i段視頻誤檢幀所占的比例.
式中,M為視頻個數(shù).Q為所有視頻片段的錯誤率的均值.
2.2.2 測試數(shù)據(jù)對比
為保證對比測試的初始區(qū)域一致性,SiamMask模型與本文所提算法均采用被測視頻的初始幀人臉區(qū)域分割結果. 通過對7段測試視頻進行統(tǒng)計,得到前文表1及下文表2的數(shù)值.
從表1中視頻的測試數(shù)據(jù)可計算得知Q=34.29%,即算法誤識別的平均可能性為34.29%.從表2數(shù)據(jù)可計算得知Q=0.156%,本文提出的算法誤識別率有較大降低.
由于本文算法必須滿足智能安全識別系統(tǒng)實時、高效、可靠的要求,因此在實際使用環(huán)境中測試其綜合時間成本.
為了檢驗效果,用外接矩形框?qū)δ繕烁欇喞吔邕M行了包圍,如圖9(a)所示. 可以看到,經(jīng)過算法校正,背景中的噪聲輪廓得到了大幅度去除,保留得到的頭部輪廓是大面積連通域的外輪廓. 對于頭發(fā)輪廓的邊界點坐標以向量的形式進行存儲,即獲取到視頻序列中人員頭發(fā)的位置坐標,為后續(xù)頭發(fā)目標是否進入危險區(qū)的判定提供基礎.
如圖9(a)中所示,較大藍色矩形框代表二級危險區(qū),較小綠色矩形框代表一級危險區(qū). 對于危險區(qū)的位置信息記錄如下,二級危險區(qū)的具體設計為:左上角頂點像素位置坐標為(418, 274),寬度為164個像素,高度為147個像素. 一級危險區(qū)的具體設計為:左上角頂點像素位置坐標為(471, 311),寬度為107個像素,高度為93個像素. 在圖9(b)中設計了四種報警級別的區(qū)域范圍,分別是預警II級、預警I級、危險、非常危險.
對于兩組坐標進行比對判別,判斷頭發(fā)目標進入危險區(qū)的程度以觸發(fā)不同類別的報警. 得到結果如圖10所示,圖10(b)左上角為具體文字報警內(nèi)容.
表2 基于SiamMask模型的時空預測算法目標跟蹤效果統(tǒng)計Table 2 Statistics of the target tracking effect of the spatiotemporal prediction algorithms based on the SiamMask model
圖9 固定危險區(qū)劃分示意圖. (a)視頻危險區(qū)劃分圖;(b)危險級別劃分示意圖Fig.9 Fixed danger zone division diagram: (a) video dangerous zone division map; (b) diagram of hazard classification
圖10 頭發(fā)目標跟蹤報警結果. (a)第 30 幀;(b)第 35 幀;(c)第 60 幀;(d)第 70 幀;(e)第 75 幀;(f)第 80 幀F(xiàn)ig.10 Hair target tracking alarm results: (a) frame 30; (b) frame 35; (c) frame 60; (d) frame 70; (e) frame 75; (f) frame 80
對于算法的處理時間進行統(tǒng)計. 利用cvGetTickCount函數(shù)得到從操作系統(tǒng)啟動到當前所經(jīng)歷的時鐘周期數(shù),利用cvGetTickFrequency函數(shù)返回每秒的計時周期數(shù)N. 則程序運行時間T可以通過式(12)計算得到.
式中,nr為當前時鐘周期數(shù),ns為開始時鐘周期數(shù).
測試視頻的基本信息為:寬度816像素,高度536像素,總幀數(shù)3426幀,幀率為每秒30幀,圖像處理速度為每秒30幀. 按照式(12)計算,處理時間為0.137 ms.
算法的計算效率比改進前的SiamMask模型圖像處理速度每秒提高3.2幀,算法效率提高約11.94%,可以滿足智能安全預警系統(tǒng)的實時快速性要求.
(1)基于PyTorch深度學習框架的SiamMask模型單目標跟蹤算法,引入ROI檢測及STC時空上下文目標跟蹤算法,結合時間與空間信息,根據(jù)對頭發(fā)目標時空關系的在線學習預測新的目標位置,對SiamMask模型進行了算法校正.
(2)提出的算法應用于復雜環(huán)境中頭發(fā)目標視頻圖像識別. 研究結果表明:所提算法能夠克服環(huán)境干擾、目標遮擋對跟蹤效果的影響,將目標跟蹤誤識別率降低至0.156%.
(3)其計算時間成本為每秒30幀,比改進前的SiamMask模型幀率每秒提高3.2幀,算法效率提高約11.94%,可以滿足智能安全預警系統(tǒng)的實時快速性要求.