李浩銘, 付戰(zhàn)平, 胡文婷, 王曼曼, 馮亞杰
(1.海軍航空大學,a.青島校區(qū),山東 青島 266000; b.岸防兵學院,山東 煙臺 264000;2.永吉縣第七中學,吉林 吉林 132000)
基于圖像識別的算法已經比較成熟,算法種類多、效果好且精度高,但針對視頻流進行目標識別的算法比較少。本文針對雙目攝像頭獲得的視頻流進行操作,在已經進行過圖像矯正并能得到深度圖像的基礎上,基于OpenCV和C++編程,結合合作目標對視頻流中的模擬器座艙儀表盤進行了識別定位。對視頻流中儀表盤上的合作目標進行跟蹤定位,獲得每一幀圖像中的合作目標坐標,結合深度圖像獲取原理,還原合作目標的三維坐標,從而得到實物儀表盤相對于頭盔攝像頭的三維坐標,為UE4場景中虛擬儀表盤的三維坐標的校正提供數(shù)據(jù)。通過實現(xiàn)虛擬儀表盤與實物儀表盤的對準,進而實現(xiàn)虛擬座艙蓋與實物座艙的準確融合,為進一步調整虛實交界處的邊緣融合進行鋪墊。
在模式識別領域,模板匹配屬于比較常規(guī)的成熟算法。選擇合適的數(shù)學工具,通過自適應控制、模糊邏輯、神經網絡等方法的應用,建立科學的數(shù)學模型,此類技術是模式識別領域目前的重要發(fā)展方向[1]。例如,文獻[2]提出了一種將傳統(tǒng)的模板匹配算法與深度神經網絡識別算法相結合的電能表示數(shù)及標簽的自動識別算法,有效解決了復雜條件下小尺寸電能表的信息檢測難問題以及噪聲條件下的信息識別問題;文獻[3]提出了一種基于模板匹配與Hough圓檢測的儀表識別方法,對于指針式圓形儀表識別效果顯著,定位表盤位置準確,指針識別和角度計算均有較高的精度。
基于圖像的模板匹配是在圖像中尋找與既定模板圖像最匹配或最相似部分的技術。利用預知的目標特征模板在待匹配圖像中進行搜索,并結合相關函數(shù)進行目標的識別[4]。模板匹配技術得以實現(xiàn)的關鍵前提在于得到數(shù)學函數(shù)的支撐,準確確定模板在被搜索圖中的坐標關系,并將其代入數(shù)學模型做相應的處理[5]。
OpenCV提供了matchTemplate函數(shù)實現(xiàn)模板匹配算法[6]。其中可用的方法有以下6種。
1) 平方差匹配(TM_SQDIFF)
(1)
2) 標準平方差匹配(TM_SQDIFF_NORMED)
(2)
3) 相關匹配(TM_CCORR)
(3)
4) 標準相關匹配(TM_CCORR_NORMED)
(4)
5) 相關系數(shù)匹配(TM_CCOEFF)
(5)
式中:
(6)
(7)
6) 標準相關系數(shù)匹配(TM_CCOEFF_NORMED)
(8)
TM_SQDIFF和TM_SQDIFF_NORMED利用平方差來衡量匹配效果,匹配得越好,得到的匹配值就越小,最優(yōu)匹配值為0;TM_CCORR和TM_CCORR_NORMED采用模板和圖像間的乘法操作獲取匹配值,所以匹配值越大代表匹配程度越高,0表示最壞的匹配效果;TM_CCOEFF和TM_CCOEFF_NORMED兩種方法將模板對均值的相對值與圖像對均值的相關值進行比較得到匹配值,0表示沒有任何相關性,最優(yōu)匹配值為1,最壞匹配值為-1。
通過上述算式可見,從簡單的平方差匹配到復雜的相關系數(shù)匹配,計算代價不斷增大,匹配精度相對提高。為了挑選出最適合本文實驗的方法,在同樣條件下對6種方法進行測試,計算識別速率和精度,在算法識別速率滿足最低限制(30幀/s)的條件下,會多做一些測試實驗,選擇出兼顧識別速度和精度的最佳方案。
基于模板匹配的視頻流識別算法的基本原理為:將視頻流劃分成視頻幀或視頻圖像序列,選擇合適的匹配函數(shù)在視頻幀中尋找與合作目標最相似的區(qū)域[7]。根據(jù)視頻流識別原理,制定程序流程如圖1所示。
圖1 視頻流識別流程圖
隨機取出總計30 s左右、幀率為60 幀/s的雙目視頻流,盡量涵蓋頭盔與合作目標的多角度變化,基于vs2019與OpenCV4.5進行視頻流劃分,得到1820幅1440×1600(單位為像素,下同)的圖像。
計算機視覺領域的目標跟蹤識別主要有基于合作目標和非合作目標兩種研究方案[8]。合作目標是進行跟蹤識別最常用的輔助手段,具有相對成熟、穩(wěn)定性高、成本低等優(yōu)勢,而且便于根據(jù)實驗應用情況對合作目標的設計進行調節(jié),有利于提高識別的魯棒性。文獻[9]提出一種簡單、高效的二維合作目標設計方案,8個圓形斑塊等距分布在目標圓的圓周上,適用于距離較長的靶標識別。文獻[10]設計了與地面機器人特征統(tǒng)一的合作目標,主體由3個同心圓組成,不僅可以為無人機提供識別參考和定位基準,外側的小圓也可為無人機提供與地面機器人之間的相對方向角度。
考慮到模擬飛行的應用,合作目標的設計不需要考慮遠距離識別,但是要滿足頭盔攝像頭快速移動時的實時性要求,合作目標數(shù)量設計為1即可。為了提高匹配精度,增加合作目標的可區(qū)分度和穩(wěn)定性,將合作目標設計成圖2樣式,設置大尺寸的合作目標,可以較好地與實物模擬器上其他復雜按鈕區(qū)分開,有效提高了識別精度。
圖2 合作目標樣式
通過標點程序,對視頻流劃分的總計1820幅圖像中合作目標的中心點二維坐標進行標定并記錄。通過6種函數(shù)對視頻流分別進行合作目標識別實驗,記錄程序運行返回的坐標序列和運行時間。
程序運行過程中,通過紅色矩形框標注最匹配區(qū)域,可以目測出是否準確識別了合作目標,圖3(a)和3(b)分別是實驗過程中正確框出合作目標和錯誤框出合作目標的情況。
圖3 識別合作目標過程截圖
為了獲取函數(shù)識別精度,得出精度最高的函數(shù),分別用執(zhí)行6種函數(shù)標注的中心點坐標與實際合作目標中心點坐標進行均方根誤差計算,函數(shù)如下。
計算結果如表1所示,函數(shù)序號與1.1節(jié)中函數(shù)介紹序號相同,可見標準相關匹配函數(shù)的誤差最低,識別精度最高,接下來在標準相關匹配函數(shù)的基礎上對算法進行改進。
表1 6種函數(shù)識別誤差
合作目標在視頻流中的相對大小會隨著攝像機鏡頭的拉近、拉遠而發(fā)生變化,但是傳統(tǒng)識別方法中的待匹配矩形窗口大小固定,特別是在獲取中心點坐標時存在匹配誤差。自適應窗口可以通過設置相似度閾值調節(jié)匹配窗口的半徑,極大地提高識別的精度[11]。文獻[12]提出一種異形自適應窗口局部立體匹配算法,通過雙螺旋路徑法得到形狀多變的待匹配窗口,提高了復雜圖像邊界的貼合性和圖像描述性;文獻[13]提出一種基于Camshift和ORB算法的自適應跟蹤注冊方法,將高斯背景建模和Camshift算法融入到跟蹤過程中,實現(xiàn)對目標尺度變化的自適應跟蹤。
在上面的實驗中,可以觀察到在鏡頭拉近和拉遠的情況下,紅色矩形框均比實際合作目標大小要大。實驗設計相似度閾值,通過循環(huán)不斷縮小矩形窗口的大小,直到窗口與合作目標大小最為適應為止,結束循環(huán)并輸出中心點坐標。自適應匹配改進后識別合作目標的效果如圖4所示。
圖4 自適應識別合作目標
同時改變相似度閾值及循環(huán)次數(shù),考慮到窗口縮小存在最低底線,分別測試相似度閾值為5%、循環(huán)次數(shù)為6~10,相似度閾值為10%、循環(huán)次數(shù)為5~10,相似度閾值為15%、循環(huán)次數(shù)為3~6,以及相似度閾值為20%、循環(huán)次數(shù)為4~5情況下的均方根誤差以及算法識別速率。由于實驗結果比較復雜、龐大,且需要同時考慮誤差以及識別速率,分別繪制均方根誤差折線圖和識別速率折線圖,如圖5所示。
圖5 均方根誤差折線圖和識別速率折線圖
在識別速率滿足最低限制(30幀/s)的情況下,通過分析圖5中2幅折線圖可以看出,相似度閾值為10%、循環(huán)6次,以及相似度閾值為15%、循環(huán)4次時,誤差均小于5,相對最小,根據(jù)實際實驗卡頓情況,最終選擇出相似度為15%、循環(huán)4次的自適應窗口進行接下來的實驗。
將合作目標設計在儀表盤正中央,得到的合作目標二維坐標即為儀表盤中心坐標,視為儀表盤像素坐標。雙目視覺測量過程較為復雜,牽扯到多個坐標系的相互轉換,包括像素坐標系、圖像坐標系、相機坐標系和世界坐標系[14]。
在自適應匹配實驗基礎上,為實現(xiàn)UE4場景中虛擬儀表盤與真實儀表盤的匹配融合,設計方案如圖6所示,將每一幀獲取的真實儀表盤坐標實時賦值給UE4場景中的虛擬儀表盤。
圖6 儀表盤虛實坐標匹配方案
雙目攝像機與人眼視物原理相似,可以通過目標物在左右相機成像時存在的視差與目標物到相機的距離存在的反比例關系,得到目標物的深度信息[15]。文獻[16]基于雙目測距原理,提出了一種水下引導光源檢測和測距的方案,不僅優(yōu)化了實時性,水下對接精度也得到了滿足;文獻[17]提出了一種改進ORB算法的雙目視覺測距方法,有效降低了誤匹配率,提高了測量精度;文獻[18]基于雙目視覺測距原理建立了雙目測距軟、硬件架構。
假設儀表盤為點A,其坐標轉換示意圖見圖7。
圖7 坐標系轉換圖
點A在相機坐標系下的坐標為(X,Y,Z),在圖像坐標系下的坐標為(x,y),在像素坐標系下的坐標為(u,v),圖像坐標系原點在像素坐標系下的坐標為(u0,v0),f為固定的焦距,p,q分別代表圖像坐標系中x′,y′軸每毫米存在的像素數(shù)。得到如下算式
u=px+u0
(9)
v=qy+v0
(10)
(11)
(12)
整理得到
(13)
(14)
利用HTC VIVE Pro Eye進行實驗,其SDK中寫好的深度模塊,將RGB(RED,GREEN,BLUE)圖像轉換為RGB-D(DEPTH)圖像,其中,DEPTH存儲目標點的景深信息。由此可以更精準地獲取到儀表盤的第三維坐標,得到儀表盤在相機坐標系的坐標,也為快速進行目標檢測、識別并與跟蹤算法相結合做鋪墊[19]。
UE4場景中坐標系是左手坐標系,以相機為原點的儀表盤坐標在UE4場景中屬于本地坐標,賦值運算時需要獲取到儀表盤在世界坐標系下的坐標。根據(jù)UE4場景中坐標軸的變化,將儀表盤的相機坐標轉換為本地坐標。坐標軸轉化如圖8所示。
圖8 坐標軸轉化圖
如圖8所示,兩個坐標系的原點都是相機,通過
(X1,Y1,Z1)=(Z,X,Y)
(15)
得到儀表盤本地坐標。
列出部分坐標轉換過程數(shù)值,如表2所示。
表2 坐標轉換數(shù)值
UE4提供了藍圖函數(shù)Transform Location,可以將本地坐標系的點轉換為世界坐標系下的點。坐標轉化藍圖如圖9所示,將獲取的攝像機在世界坐標系下的三維坐標、三維旋轉角度以及儀表盤的本地坐標輸入到函數(shù)中,輸出的三維坐標即儀表盤在世界坐標系下的坐標,賦值給虛擬儀表盤,即可有效實現(xiàn)虛擬儀表盤和真實儀表盤的實時對準。
圖9 坐標轉化藍圖
實驗隨機取出總計30 s左右?guī)蕿?0幀/s的雙目視頻流,涵蓋了頭盔與合作目標的多角度變化,通過搭建基于vs2019與OpenCV4.5的識別定位環(huán)境,得到1820幅1440×1600的圖像。
通過標定軟件獲取每一幅圖像中合作目標的坐標,與通過經典模板匹配6種算法得到的坐標進行誤差計算,得出1.1節(jié)方法4(標準相關匹配)誤差最小。通過增加自適應識別匹配功能對方法4進行改進,改進后誤差有效減小,但相對處理時間增幅較大,有待進一步改進。通過多個坐標系的坐標轉換,并通過UE4藍圖編程,實現(xiàn)了儀表盤的虛實配準。得到相關虛實配準參數(shù),如表3所示。
表3 虛實配準參數(shù)
目前為提高識別率,合作目標選取得比較明顯,直接識別儀表盤的識別率不高,后期實際應用中可以考慮開通實物座艙的儀表盤顯示,將儀表盤的顯示畫面中特征比較明顯的不變化因素作為合作目標,會更好地提高實驗虛實融合顯示效果。