王 冠,易 航,張 恒,廖友萍
(北京宇航系統(tǒng)工程研究所,北京,100076)
計算機科學與總線技術的快速發(fā)展帶動計算機視覺技術從初具雛形到逐漸成熟完善。如今工業(yè)產業(yè)的迅速發(fā)展與計算機視覺技術的日趨成熟有著密不可分的關系,在諸多領域如科研、制造加工、醫(yī)療等都可以看到計算機視覺模塊的應用。計算機視覺技術不僅可以起到替代人眼的效果,降低成本,同時還能夠提高生產效率與穩(wěn)定性,在實際生產中與傳統(tǒng)的人力相比有著非常明顯的優(yōu)勢。
噴管是構成運載火箭發(fā)動機的一個重要元件,發(fā)動機通過噴管擺動實現(xiàn)對運載火箭俯仰、偏航和滾轉的控制[1]。目前,發(fā)動機噴管擺動極性測試仍采用人工目測法,測試耗時且結果不可追溯。為此,本文提出一套基于計算機視覺方法的測量系統(tǒng),通過對預先采集的視頻流進行穩(wěn)像技術處理,然后應用基于顏色模型、邊界輪廓聚類、幀背景差分、光流跟蹤、半監(jiān)督學習等實時在線和離線識別跟蹤方法并對各個算法結果進行自適應權重融合,最終計算得到各噴管的擺動軌跡、角度與極性。
該方案研究與實現(xiàn)的總體框架如圖1所示,具體分為在線識別算法、離線模型訓練兩部分。a)在線識別算法包括:顏色模型法、橢圓檢測法、幀差輪廓法和光流特征法4種,對實時視頻流進行了視頻穩(wěn)像處理獲得數字去抖動的視頻,然后應用多種在線識別跟蹤算法對發(fā)動機極性進行識別和判斷;b)離線模型訓練是通過少量人工標注和對在線識別跟蹤算法結果的迭代來訓練一個半監(jiān)督學習模型。
圖1 系統(tǒng)總體框架Fig.1 System Pipeline
4種在線識別跟蹤算法,不需要預先訓練相關模型即可實時地對發(fā)動機噴管擺動進行跟蹤。不同于在線算法,離線訓練模塊主要為半監(jiān)督學習,通過對反復收集的歷次在線算法數據及少量的人工標注數據進行特征提取并訓練深度神經網絡模型參數、各噴管的極性、位置與大小。
最后將以上所有方法得出的運動模型置于一個基于權重的多樣例在線學習模型中進行自適應融合,得到更為精準的目標運動信息,從而得出最終極性判斷。
后處理視頻穩(wěn)像技術分為3個步驟:a)估計原始攝像頭路徑C;b)估計出新的平滑攝像頭路徑P;c)使用優(yōu)化的平滑攝像頭路徑來重新合成穩(wěn)像視頻流[2]。將優(yōu)化攝像頭路徑看作靜態(tài)、線性和二次曲線運動分割構成,即運動模型方程的一階、二階、三階微分項等于零。然后通過線性規(guī)劃方法優(yōu)化路徑的一階、二階、三階微分方程[3],需要優(yōu)化最小值的目標方程為
式中P為新的平滑路徑;1ω,2ω,3ω分別為預設的超參數。
該方法可以有效去除視頻流中由于攝像頭移動而形成的抖動[4],圖2為算法中不斷更新穩(wěn)定矩陣B以估算最優(yōu)的攝像頭路徑的過程。
圖2 估算攝像頭路徑優(yōu)化過程Fig.2 Estimating Camera Path Optimization Process
圖3為發(fā)動機極性測試系統(tǒng)中幀差輪廓法的具體流程。先對實時視頻流進行圖像預處理,再用前景減除法[5]得到運動物體輪廓,之后經過腐蝕、膨脹等處理循環(huán)監(jiān)測得到輪廓從而確定噴管當前時刻所在位置。
圖3 幀差輪廓法流程Fig.3 Frame Difference Method Pipeline
2.2.1 幀差分處理
在經過灰度處理后,對視頻序列的當前幀圖像與上一幀圖像進行差分運算,再次選擇預先根據經驗或者實驗得到的閾值,最后對差分圖像的每個像素點進行處理,通過該點的像素值與閾值大小的比較把差分圖像進行二值化[6]。由于得到的二值圖像受到外界噪聲的干擾,使得部分背景圖也被當做前景目標,同時得到的前景目標中有空洞和小范圍的噪聲,最后對二值圖像運用數學形態(tài)學的方法處理,來去除小范圍的噪聲和填補運動目標內部的空洞,消除外界的干擾得到比較理想的運動目標圖像[7]。
2.2.2 輪廓檢測
針對數字化二值圖像的拓撲結構分析,Suzuki提出了邊界跟蹤算法。算法的本質是確定二值圖像邊界之間的圍繞關系,即確定外邊界和孔邊界以及他們之間的層次關系,由于這些邊界和原圖的區(qū)域具有一對一的對應關系(外邊界對應像素值為1的連通域,孔邊界對應像素值為0的孔洞),因此可用邊界來表示原圖。
通過Suzuki的算法并設定最小輪廓閾值可以得到運動目標的輪廓,之后對輪廓計算最小包圍矩陣從而進一步得出矩陣的偏轉,由于攝像頭是靜態(tài)固定的,判斷幀之間最小包圍矩陣的擺點位置變化過大或者最小包圍矩陣的擺角變化過大的話,即為跟蹤失效,此時自動修改輪廓閾值重新搜索或者引入光流特征法的特征群輔助搜索。幀差輪廓法過程效果如圖4所示。
圖4 幀差輪廓法過程效果Fig.4 Frame Difference Method Result
圖5 為發(fā)動機極性測試系統(tǒng)中顏色模型法的具體流程。本方法先對實時視頻流進行圖像預處理后,分別應用Sobel算子和HSV、RGB特征提取與融合,然后通過卡爾曼濾波運動估計計算出噴管的位置。
顏色模型法過程效果如圖6所示。
圖5 顏色模型法流程Fig.5 Color Model Method Pipeline
圖6 顏色模型法過程效果Fig.6 Color Model Method Result
2.3.1 色塊邊緣方向直方圖與HSV顏色直方圖
對于灰度圖像的像素矩陣 A,使用水平和垂直 2個Sobel算子矩陣來計算圖像中像素水平梯度Gx與垂直梯度Gy,進而計算出像素的梯度方向Θ為
對Θ進行篩選,若大于所設閾值,則認為是邊緣,然后判斷該邊緣周圍像素的灰度值是否一致,若不一致,則認為是色塊邊緣。將篩選出來的色塊邊緣的Θ取值范圍分成4等份,再將Θ進行量化即得到色塊邊緣方向直方圖[8]。
2.3.2 卡爾曼濾波
卡爾曼濾波是一種對動態(tài)系統(tǒng)序列進行線性最小誤差估計的算法,它利用測量值修正估計的狀態(tài),提供可靠的狀態(tài)估計,通過狀態(tài)方程和觀測方程來描述一個動態(tài)系統(tǒng)。在數學上可以證明在預測過程和觀測過程都為高斯線性時,按照卡爾曼方法做加權最優(yōu)[9]。
卡爾曼濾波的優(yōu)點是對目標運動進行了建模,且算法快速可靠易于實現(xiàn);缺點是不對目標的特征進行建模,判別力較差,不過與幀差輪廓法的融合可以彌補這方面的缺陷;而且限定目標運動服從線性高斯分布,這個條件對于發(fā)動機噴管的擺動運動來說是完美契合的。
圖7為橢圓檢測法的具體流程。
圖7 橢圓檢測法流程Fig.7 Ellipse Detection Method Pipeline
首先對實時視頻流進行一系列圖像預處理,之后通過角點、邊界檢測與過濾提取出散態(tài)圓弧,然后通過多尺度聚類算法的擬合得到噴管底部的位置,從而獲得各噴管的極性信息。
取候選橢圓弧和候選橢圓弧對應的邊界列,采用對橢圓缺損不敏感的直接最小二乘法計算所有候選橢圓的參數候選橢圓并非真實橢圓,對于任一候選橢圓,采用式(5)判斷邊界像素是否在候選橢圓上:
式中 p,q為候選橢圓圓心坐標;r1,r2,θ分別為候選橢圓長、短半徑及圓弧夾角。
設定邊界像素數量為ε1,像素總數為ε2,統(tǒng)計ε2%<di<ε1時,則判定該候選橢圓真實存在。取 ε1為 2~4、ε2為 45時,篩選效果良好。圖8為橢圓檢測法過程效果。
圖8 橢圓檢測法過程效果Fig.8 Ellipse Detection Method Result
圖9 為發(fā)動機極性測試系統(tǒng)中光流特征法的具體流程。本方法先對實時視頻流進行特征點的抽取,然后通過計算光流域與卡爾曼濾波來估算位置信息,從而得到各發(fā)動機點群的運動軌跡[10]。
2.5.1 特征點提取
本系統(tǒng)選取Harris角點與FAST關鍵點作為特征點對每一幀視頻圖像進行特征點提取。該方法計算圖像上所有像素點灰度的二階導數,因為得到的二階導數圖像源于二維Hessian矩陣:
式中 p為特征點;I為灰度值。
一個年紀已經過了六十的老人扛了一對大傀儡從后海走來,到了場坪,四下望人,似乎很明白這不是玩傀儡的地方,但莫可奈何的停頓下來。
圖9 光流特征法流程Fig.9 Optical Flow Method Pipeline
在Hessian圖像的自相關矩陣上有兩個最大特征值的位置就是 Harris角點。如果對應到原圖像上,這個位置實際上是表示以此點為中心,周圍至少存在 2個不同方向的邊緣(或者紋理)的地方,也就是拐角的位置。一階導數對均勻變化的梯度會產生響應,而二階導數對均勻變化梯度不產生響應,故Harris角點能夠克服均勻變化梯度產生的影響,同時,由于Harris角點通過Hessian圖像的自相關矩陣計算得到,所以滿足旋轉不變性,能提高檢測的魯棒性[11]。
FAST特征點是Rosten等提出的一種快速角點特征檢測算子,F(xiàn)AST特征點檢測具有很強的實時性。FAST特征點的提取是針對每個像素點m,考慮以m為中心的離散圓上的點。若存在圓上點和其直徑方向上的對應點與m點的灰度值相近,則認為m不是特征點。由式(7)可近似:
式中 Ra為離散圓半徑;τ為選取的閾值。
將圖像離散化,實際并非將圖像上 2個直徑相對的點進行比較,而是與其直徑相鄰的點比較。
2.5.2 Lucas-Kanade 稀疏光流算法
光流是空間運動物體在觀察成像平面上的像素運動的瞬時速度,是利用圖像序列中像素在時間域上的變化以及相鄰幀之間的相關性得到上一幀與當前幀之間存在的對應關系,從而計算出相鄰幀之間物體運動信息的一種方法。
由于大多數攝像機的運動是大而不連貫的,因此Lucas-Kanade光流在一些場景中的跟蹤效果并不理想,需要一個大窗口來捕捉大運動,而大窗口通常會違背運動連貫的假設。圖像金字塔可在一定程度上解決這個問題,即最初在較大的空間尺度上進行跟蹤,再通過圖像金字塔不斷縮小跟蹤尺度來修正初始運動速度的假定。對于發(fā)動機噴管擺動來說,擺動角度在4~12°;擺動時間約為2 s,要求攝像頭硬件采集幀率不小于24 Hz。光流特征法過程效果如圖10所示。
圖10 光流特征法過程效果Fig.10 Optical Flow Method Result
在系統(tǒng)設計和開發(fā)實踐過程中對整體架構和算法進行不斷地更改與完善,使得系統(tǒng)的魯棒性、準確性、穩(wěn)定性與實時性需求得到保證與提升。
無論是幀差輪廓法中的輪廓檢測還是光流特征法中的特征點聚類都可能出現(xiàn)因為遮擋、運動速度過快、分辨率低而導致的目標追蹤失效。本系統(tǒng)將光流特征法中的特征點位置作為輸入輔助輪廓檢測,可以提高幀差輪廓法的魯棒性。光流特征法的魯棒性也可以通過將幀差輪廓法過程中檢測出的輪廓輔助輸入到特征點聚類問題上而得到提升。2個方法互為冗余,即由于其中一個算法在視頻流中某些幀中達不到閾值而檢測失效時,另外一個算法也能獨立完成極性的判斷,使整體魯棒性得到提升。
除了通過用不同算法間模塊相互輔助、替換的方法來提升整體魯棒性,將單一算法中具有優(yōu)秀魯棒性的模塊直接應用于其他算法,可以幫助其快速地達到閾值或排除擾動。
相比于最初簡單的對2個算法的結果進行均值處理,應用基于權重的多樣例在線學習來進行多算法的融合解決了由于跟蹤偏移導致樣本出現(xiàn)的歧義性問題,克服了融合算法中的弱分類器退化問題,可以有效提高最終結果的精準度。另外,經過不斷的迭代,半監(jiān)督學習收集到的訓練數據越來越多,離線訓練得到的模型參數也越來越準確、可靠。
為了確保測量結果的穩(wěn)定性,分別從軟件層面和硬件層面對攝像頭和視頻流進行了設計。軟件層面上,通過建立攝像頭參數運動模型將抖動和擾動分解成靜態(tài)、線性運動和二次曲線運動,通過線性規(guī)劃方法優(yōu)化各階微分方程,從而去除掉原始視頻流中不必要的抖動和外來擾動對系統(tǒng)穩(wěn)定性造成的影響。
硬件層面,選擇采用兩個垂直于火箭法向中心的攝像頭來采集視頻,如圖11所示。
圖11 雙攝像頭位置分布Fig.11 Dual Camera Position Distribution
相比于單一攝像頭,復數攝像頭可以有效解決由前后遮擋引起的跟蹤不穩(wěn)定問題;而且由于操控發(fā)動機噴管的伺服機構擁有伸、縮、向左、向右,共 4個自由度。此外,兩個攝像頭與橫縱坐標系夾角為30°,這樣也會盡可能地減少有遮擋關系的 2個噴管之間的重合比例。
測試過程中大部分時間發(fā)動機處于靜止狀態(tài),流程中的若干次噴管擺動平均時長約為2 s,擺動角度為4~12°之間。當攝像頭的采集頻率為24 Hz 時,上下幀之間發(fā)動機噴管的角度變化最多為 0.25°,因此需要系統(tǒng)能夠快速捕捉運動??紤]到系統(tǒng)的實時性需求,所涉及的算法均采用工程應用類算法,并對各個算法中沒有交互的部分進行了并行計算設計。系統(tǒng)要求的最終運行速度不小于24 Hz。
基于計算機視覺的發(fā)動機噴管擺動極性測試系統(tǒng)不僅具有穩(wěn)定性,實時性等特點,還通過各算法之間的協(xié)調與冗余提升了系統(tǒng)的準確率與魯棒性。利用加裝于發(fā)動機兩側的工業(yè)攝像頭采集的視頻流來實時判讀噴管擺動極性,提高了測試的效率與覆蓋率,使整個測試過程可追溯,減少了人工判讀環(huán)節(jié)。
本文提出的基于計算機視覺的測試系統(tǒng)較傳統(tǒng)的人工目測法準確率高、檢測時間短、降低人力成本、提高型號隊伍效率。