辛宜曈,曹文霞,陳 鯨,楊學志,吳克偉,沈 晶
1.合肥工業(yè)大學 計算機與信息學院,合肥 230009
2.工業(yè)安全與應急技術安徽省重點實驗室,合肥 230009
3.安徽水利水電職業(yè)技術學院,合肥 231603
4.合肥工業(yè)大學 軟件學院,合肥 230009
5.合肥師范學院 電子信息與電氣工程學院,合肥 230061
6.安徽微波與通信工程技術研究中心,合肥 230061
振動,是自然界中普遍存在的物理現(xiàn)象[1]。工程結構和設備在運行過程中會產(chǎn)生大量的振動信號,其中蘊含著豐富的結構內在特性和設備運行狀況信息,能夠反映系統(tǒng)的狀態(tài)及其變化的規(guī)律。振動檢測廣泛存在于機械、車輛、建筑、航空航天等各類工程應用中,已經(jīng)成為目前工程測量領域重要的研究方向[2]。
基于視覺的振動檢測作為一種新興的振動測量方式,受到了國內外學者的廣泛關注[3-4]。但視覺測量系統(tǒng)在圖像采集過程中易受外部環(huán)境因素的干擾,復雜工況下,振動、噪聲等干擾造成視覺測量系統(tǒng)的穩(wěn)定性和準確度等性能下降[5]?,F(xiàn)有的視覺測量技術進行振動檢測時,相機抖動會導致整個視覺測量系統(tǒng)的各項功能指標達不到所需的穩(wěn)定性和精準度[6]。
對于結構的振動變化,現(xiàn)有學者將歐拉視角下相位分析法應用于振動檢測的研究中。Chen等人[7]、Wadhwa等人[8]利用該方法通過攝像機測量民用基礎設施振動以及實驗室中設備的微小振動,并通過大量的實驗證明了該方法的可行性;Sarrafi 等人[9]采用基于相位的運動估計和運動放大方法提取風力機葉片諧振頻率,用于損傷檢測;Choi等人[10]提出了一種利用運動放大技術進行視覺監(jiān)測的探傷方法,能夠測量懸臂梁發(fā)生損傷的位置及定量的測量損傷深度,并根據(jù)損傷參數(shù)理論得到頻率;Yang等人[11]利用相機設備全局測量多根電纜模態(tài),提出了基于物理信息的無監(jiān)督機器學習和計算機視覺的鋼索振動模態(tài)模型估計方法,但是受限于相機視角,只能測得部分鋼索振動;Peng等人[12]改進了基于相位的運動提取方法,提出了一種新的基于攝像機的輕量化結構振動測量方法。
除了上述通過相位的方式提取振動信號外,其他研究還包括通過歐拉視角下的亮度變化以及邊緣檢測等方法對振動進行檢測。Aoyama等人[13]提出了一種多線程視覺傳感的概念,可以測量土木工程結構上多個點的動態(tài)變化,以完全不同的視角觀察多個場景;Moya-Albor等人[14]采用仿生歐拉運動放大方法來突出心臟跳動時血液的變化過程,用于進行心率檢測;Zhang等人[15]提出了一種基于理想邊緣輪廓偏差的結構動力響應分析方法,解決了受光照變化影響導致邊緣輪廓不清晰的問題。但上述檢測過程都是在相機穩(wěn)定的條件下進行的,對于存在相機抖動的環(huán)境,還沒有方法能夠做到精準檢測。
為解決視頻中存在相機抖動對振動頻率檢測造成的影響,考慮事先通過穩(wěn)像的方法對圖像進行校正,以去除相機抖動,其中重要的環(huán)節(jié)在于對相機的運動矩陣估計,其中包括通過魯棒算法來估計運動矩陣,如RANSAC(隨機抽樣一致性)算法和MLESAC(隨機抽樣最大似然估計)算法。Liu 等人[16]提出了一種改進的基于SURF 的RANSAC 特征圖像匹配方法用于圖像拼接技術,具有較高的匹配精度和較好的實時性;魏利勝等人[17]提出一種SURF 的圖像匹配改進算法,利用特征點約束的單向匹配和方向一致等性質,有效剔除誤匹配點;Kim等人[18]利用MLESAC算法來提高二維激光測距儀繪制三維地圖時曲面切片的定位精度。但這些改進的運動矩陣估計方法只停留在圖像的全局運動估計上,針對視頻中存在待測物體振動的情況沒有加以分析,更沒有做到分離視頻中的不同運動,導致全局運動矩陣估計模型出現(xiàn)偏差。
本文關注于視覺振動檢測中的相機抖動抑制,提出了一種互抑制一致采樣算法,區(qū)分視頻中的相機抖動和待測物體振動的特征點,得到相機運動估計矩陣,結合歐拉視角下相位分析算法,用于檢測抖動視頻中待測物體的振動頻率,并且能夠提供更準確的檢測結果。
針對存在相機抖動的視頻畫面中振動檢測不準的問題,首先通過SURF 特征點匹配算法選取特征點,再通過本文提出的互抑制一致采樣算法,去除相機運動造成的干擾,得到相機運動估計矩陣對圖像進行校正,保留待測物體的振動信息,再通過歐拉視角下的相位變化信息進行頻率檢測。核心模塊分為兩部分:(1)不同振動信號特征點的分離;(2)基于歐拉視角的相位頻率檢測。具體算法檢測流程如圖1所示。
圖1 抗相機運動干擾的歐拉視頻振動檢測算法框圖Fig.1 Eulerian video vibration detection algorithm against camera motion interference framework
針對于視頻中含有的復雜信號,本文希望通過采樣算法對視頻中的振動信號與抖動信號進行信號分離。首先對視頻中含有的信號進行分析,含有相機抖動的圖像振動信號為:
其中,I(x,t+1) 為第t+1 幀信號,I(x,t)為第t幀信號,J(x,t)為相機抖動信號,V(x,t)為待測物體的振動信號。
本文通過采樣算法將視頻中的信號分離出來,通過估計相機運動矩陣對圖像進行校正,從而得到振動信號:
其中,IT(x,t)為校正后的第t幀信號。振動及抖動信號分離圖如圖2所示,(a)為信號區(qū)域選擇圖,藍色區(qū)域存在激振器的頂桿部分的振動及抖動兩種混合信號,紅色區(qū)域存在相機運動產(chǎn)生的單一抖動信號;(b)為藍色區(qū)域中振動及抖動信號波形圖,是圖像中的混合信號;(c)為紅色區(qū)域中抖動信號J(x,t)的波形圖,是通過采樣算法得到的待校正信號;(d)為待測振動信號V(x,t)的波形圖,是圖像經(jīng)過校正后,通過公式(3)提取到的目標振動信號。
圖2 振動及抖動信號分離Fig.2 Separation of vibration and jitter signal
1.2.1 基于SURF的特征點匹配
本文算法的核心在于根據(jù)分離后得到的抖動信號對圖像進行運動校正,得到校正后的信號,即IT(x,t)。
在運動校正之前需要對相機的抖動信號進行估計,處理過程首先采用特征點匹配中的SURF算法[19]檢測特征點,實現(xiàn)方法如下:
特征點提?。河嬎阆嚓PHessian 矩陣,當Hessian 矩陣的判別式取得局部極大值時,確定特征點的位置。
特征點方向分配:在特征點的圓形鄰域內,統(tǒng)計扇形區(qū)域內所有特征點在水平、垂直兩個方向Harr小波特征總和,其中向量幅值最大區(qū)域對應的方向為特征點主方向。
特征點描述子生成:沿特征點的主方向在特征點周圍取一個4×4的矩形區(qū)域塊,在每個子區(qū)域里得到4維特征向量,將分成的16 個子區(qū)域進行累加得到最終的64維特征向量描述子。
特征點匹配:通過計算兩個特征點間的歐式距離來確定匹配度,得到對應的匹配點集:S{(xi?x′i),i=1,2,…,N}。
1.2.2 振動抖動特征點分離
振動特征點與抖動特征點的分離過程中,首先需要根據(jù)上述特征點匹配方法建立一個由兩幀圖像中的對應特征點構成的匹配集,對基本矩陣進行估計后才能對圖像中的相機抖動進行修正。在存在混合運動的視頻中,這個匹配集中不可避免地存在誤差數(shù)據(jù),即錯誤匹配點。在本文所提到的待檢測的視頻中,存在兩種運動特征點,即待測振動特征點以及相機抖動特征點。采用本文提出的互抑制一致采樣算法將兩種特征點加以區(qū)分,得到所需的相機抖動特征點,用于相機運動矩陣估計。算法描述如下:
從1.2.1小節(jié)得到的匹配點集S中選取兩幀圖像的特征匹配點xi?x′i,通過計算得到一個基本矩陣F。計算原始數(shù)據(jù)中每對匹配點的對極距離di,表示每一對匹配點的誤差距離,計算公式為:
因振動信號與相機抖動信號幅度大小不同,如圖2(c)、(d)所示,導致二者特征點di不同,可通過設置閾值的方式區(qū)分兩種特征點,即抖動點xj和振動點xv。按對極距離大小升序排列,選取中位值為需要通過后續(xù)實驗確定的系數(shù),判斷準則為:
為了求解λ,令:
其中,M(λ) 為分離測度,表示形式為:
其中,Av為框選的振動區(qū)域,[xv,Av] 為待測物體振動區(qū)域內檢測到的振動點的個數(shù),N(xv)為圖像中檢測到的振動點的總數(shù)。M(λ) 用于表示振動點與抖動點的區(qū)分程度,M(λ) 越大,振動區(qū)域內的振動點占比越高,區(qū)分效果越好。
1.2.3 振動抖動分離參數(shù)估計
通過上述對振動特征點和抖動特征點分離方法的分析,為估計參數(shù)λ,隨機選取10組視頻進行參數(shù)估計訓練,取λ值為0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0時,M(λ)的值如表1所示。
表1 不同抖動視頻下λ 對應的M值Table 1 M value corresponding to λ under different jitter videos
由表1可知,在λ=2.0時,M(λ)接近最大值。同時給出可視化示意圖,取λ=2.0,λ=2.5,λ=3.0,對視頻中的振動特征點進行檢測,特征點區(qū)分檢測效果如圖3所示。
圖3 振動特征點檢測圖Fig.3 Vibration feature points detection diagram
其中圖3(a)(b)(c)為視頻1 中對應的檢測結果,(d)(e)(f)為視頻5 中對應的檢測結果,(g)(h)(i)為視頻9 中對應的檢測結果,同一視頻中分別對應λ=2.0、λ=2.5、λ=3.0。實驗結果表明λ取值不同,M(λ) 得到最大值不同,振動特征點和抖動特征點的區(qū)分效果不同。
1.2.4 相機運動矩陣估計與圖像校正
對M(λ)進行分析,不同視頻對應的M(λ) 最大值有所不同,導致λ取值有所不同,并且分離效果與λ的選擇有關。為了更好地區(qū)分特征點,得到更加精確的相機運動矩陣,需對不同視頻進行實驗,選取最優(yōu)λ值。算法步驟如下:
算法互抑制一致采樣算法
輸入:圖像I(x,t),I(x,t+1) ;
由1.2.3小節(jié)估計的λ;
1.特征點提取
使用SURF提取I(x,t),I(x,t+1) 特征點;
2.計算對極距離
估計I(x,t)和I(x,t+1) 之間的變換矩陣;
計算對極距離di;
3.得到抖動特征點xj
使用λ,分離出抖動特征點xj;
輸出:抖動特征點xj
通過上述的采樣方法得到λ對應的抖動特征點集合xj,采用非線性最小二乘法用以最小化Sampson誤差來估計相機運動矩陣F,Sampson 誤差代價函數(shù)為e(F):
其中,x表示坐標矩陣。通過最小化Sampson 誤差,得到精確的相機運動矩陣F:
通過仿射變換矩陣將t+1 幀修正到t幀,得到校正后的圖像。
在得到IT(x,t)后,可通過公式(3)得到待測振動信號V(x,t),并且通過歐拉視角下的相位變化信息進行頻率檢測。
基于相位的歐拉視頻振動檢測是在歐拉視角下,對視頻中的微小振動利用局部相位信息進行間接表示,通過處理局部相位信息實現(xiàn)對視頻中振動的檢測。
將校正后的視頻每一幀圖像進行復可控金字塔分解,由此將視頻圖像中空間域的位置信息轉換成局部相位信息。在傅里葉變換過程中,圖像的局部相位變化能夠反映出圖像的局部位移,從而進行傅里葉級數(shù)分解,可以將V(x,t)、V(x,t+δ(t))寫成復正弦波的和的形式:
其中,Aω為幅度,ω為頻率,δ(t)為幅度較小的位移函數(shù)。對于每個頻率ω,其復指數(shù)形式可以寫成:
通過直流濾波器對相位ω(x+δ(t))進行濾波,濾除直流分量ωx,將每幀圖像與參考幀的局部相位相減,即可得到每幀圖像的相位差信號,并通過相位的變化Bω(x,t)來代表運動:
對每一幀所選檢測區(qū)域點相位差求和,從而得到指定區(qū)域的相位差變化信息,即為該區(qū)域振動的時域波形(相位差-時間函數(shù))。對生成的時域波形做傅里葉變換,得到各個頻率的功率譜,計算振動頻率f。
其中,p(f)代表功率譜,fft(Bω(x,t))表示對振動相位差信號進行傅里葉變換。
實驗系統(tǒng)由一臺移動攝像設備、一臺SA-SG030 掃頻信號發(fā)生器和SA-JZ002 模態(tài)激振器組成,使用信號發(fā)生器在確定真實頻率的條件下,模擬發(fā)動機的不同頻率,利用Matlab R2019a 開發(fā),對分辨率為1 080×1 920(單位:像素)的抖動視頻進行分析,檢測激振器頂桿端的振動頻率。
采集真實頻率為10.0 Hz 的激振器振動視頻,時長均為10 s,幀率為30幀/s。選擇10組視頻作為針對λ參數(shù)估計的訓練實驗數(shù)據(jù)。選取抖動區(qū)域的特征點,計算多個特征點在不同幀的坐標間的歐式距離,選擇最大距離作為估計抖動幅度的依據(jù)。選取60組視頻作為測試實驗數(shù)據(jù),根據(jù)相機抖動幅度大小分為三組,每組20個視頻,組別1(抖動幅度范圍0~20 pixel)、組別2(抖動幅度范圍20~40 pixel)、組別3(抖動幅度范圍40~60 pixel),用于檢測振動頻率。對于激振器的振動幅度,通過調節(jié)信號發(fā)生器的振動幅度選擇,固定其為10 pixel。實驗場景如圖4所示。
圖4 頻率檢測實驗裝置Fig.4 Frequency detection experimental device
2.2.1 運動補償?shù)脑u價標準
對于在特征點匹配過程中區(qū)分振動特征點和抖動特征點,采用待測物體振動區(qū)域內檢測到的振動點的個數(shù)與圖像中全部振動點的個數(shù)比值M作為指標,M值越大,表示算法對于特征點的區(qū)分效果越好。
為了定量衡量抖動校正,采用圖像相鄰幀之間的峰值信噪比PNSR 進行計算,PNSR 作為評價穩(wěn)定算法準確度的指標之一,反映了圖像序列經(jīng)過校正以后和參考的對應像素匹配程度。PNSR值越大,穩(wěn)定程度越大,校正效果越好。
2.2.2 頻率檢測的評價標準
(1)平均準確率,記為Fac。用來反映檢測頻率相對于真實頻率的準確性,其表達式為:
其中,N表示實驗樣本的數(shù)量,f為第n組視頻測得的頻率值,F(xiàn)tnr為第n組真實頻率值,Sqe為f與Ftnr之間的誤差。
(2)平均絕對誤差,記為E。用來反映測量值與真實值誤差的絕對平均值,其表達式為:
(3)誤差的均方根,記為RMSE。用來反映偏離的程度,其表達式為:
將本文提出的采樣算法與MLESAC以及RANSAC算法對比,因對視頻圖像直接進行校正后沒有考慮邊緣的無定義區(qū),計算整幅圖像的峰值信噪比(PSNR)沒有意義,因此本文只計算1.2.3 小節(jié)中視頻序號1(抖動幅度15 pixel)中補償圖像中心區(qū)域的PSNR,實驗結果如圖5所示。圖中曲線從上到下,依次分別表示使用本文方法、MLESAC、RANSAC 進行校正后的視頻圖像以及原視頻圖像的PSNR曲線圖,四種曲線的峰值信噪比都有著相似的起伏變化。
圖5 不同采樣算法圖像校正效果對比Fig.5 Comparison of image correction effects of different sampling algorithms
實驗結果表明,與原視頻圖像相比,經(jīng)過本文采樣算法補償后的圖像序列PSNR 值較原視頻序列有大幅度的提高;與RANSAC 采樣算法相比,PSNR 值平均提高了3 dB;與MLESAC 采樣算法相比,雖有小部分重合,但均大于使用MLESAC采樣算法的PSNR值。由此看出,本文提出的采樣算法對于抖動視頻的校正效果最好,原因在于:本章的采樣算法能夠針對不同抖動視頻,有效地實現(xiàn)抖動特征點與振動特征點的區(qū)分,能夠更精準地估計圖像中因相機抖動而造成的全局運動,所以得到的校正圖像質量更高。
2.4.1 不同抖動條件下的檢測結果
對真實頻率為10.0 Hz 的振動物體進行頻率檢測,分別選用不同相機抖動幅度組別中的3個視頻,得到的頻譜圖如圖6 所示,組別1 對應的峰值頻率為10.0 Hz、組別2 為10.1 Hz 以及組別3 為9.9 Hz。結果表明,本文方法在不同相機抖動幅度下均能有效地提取振動信號,檢測結果均接近真實頻率。
圖6 不同幅度抖動視頻檢測頻譜對比Fig.6 Comparison of different amplitude jitter video detection spectrum
為進一步將本文的實驗結果與真實值對比,在2.4.3小節(jié)中對60 組視頻進行頻率檢測,計算檢測結果的誤差均值、均方誤差、及平均準確率。
2.4.2 消融實驗
分別針對RANSAC 算法、MLESAC 算法以及本文提出的互抑制一致采樣算法(根據(jù)1.2.3 小節(jié)選擇最優(yōu)的λ),通過相位信號提取對頻率進行檢測,結果如表2所示。
表2 不同采樣算法平均準確率對比Table 2 Comparison of results of different sampling algorithms
本文提出的互抑制一致采樣算法相較于其他的方法能夠針對視頻中的不同振動將相機抖動的信號分離出來,能夠更好地對視頻中的圖像進行校正,所以能夠得到較高的頻率檢測平均準確率,在抖動幅度較大的視頻中(組別3),頻率檢測的平均準確率仍可達到97.95%。
2.4.3 不同對比方法下的檢測結果
將本文算法(根據(jù)1.2.3節(jié)選擇最優(yōu)的λ)與Peng等人[12]采用的相位檢測算法、Moya-Albor等人[14]采用的亮度檢測算法以及Zhang等人[15]采用的邊緣檢測算法進行頻率檢測對比,視頻序號1 的頻率檢測頻譜圖如圖7 所示,四條曲線分別對應不同方法得到的頻譜曲線,Peng等人[12]提出的算法、Moya-Albor等人[14]提出的算法以及Zhang等人[15]提出的算法,得到峰值頻率分別為10.4 Hz、10.6 Hz以及9.2 Hz,相較于本文算法的檢測結果10.0 Hz,上述三種算法都存在較大誤差。由此看出,本文算法能夠有效地去除相機運動干擾,實現(xiàn)了振動信號的精確提取,相較于其他檢測方法的檢測結果更接近于真實值。
圖7 頻率檢測算法頻譜對比Fig.7 Frequency detection algorithm spectrum comparison
對60組視頻進行頻率檢測,檢測結果如表3。因視頻中存在相機抖動,Peng等人[12]采用的相位檢測算法對振動物體的相位信號提取不準確,Moya-Albor等人[14]采用的亮度檢測算法受光強等亮度變化影響;以及Zhang等人[15]采用的邊緣檢測算法也在提取邊緣信號時產(chǎn)生誤差。本文通過互抑制一致采樣算法分離振動特征點與抖動特征點,對抖動圖像進行校正,準確提取了視頻中的待測振動信號。實驗結果表明,本文提出的方法能夠有效地處理含有相機抖動的視頻中頻率檢測問題,相對于相位檢測、亮度檢測以及邊緣檢測,準確率提高4.0、4.6和4.7個百分點。
表3 頻率檢測算法結果對比Table 3 Comparison of results of four frequency detection algorithms
針對相機運動干擾造成視頻振動檢測誤差的問題,本文提出了一種互抑制一致采樣算法,將視頻中的信號分離為待測物體的振動信號以及相機的抖動信號,去除其中的抖動分量,實現(xiàn)有效的振動信號提取。本文的視頻振動檢測方法的平均準確率能夠達到98.08%,相較于其他方法有顯著提高。