蕭昊菁 曹旭陽
大連理工大學 大連 116024
在海洋運輸、海洋工程建設、海洋資源開采等領域中,船舶起重機是必不可少的作業(yè)裝備。受海洋風浪的影響,起重船在實際作業(yè)過程中,會產生橫搖、縱搖、艏搖等6個自由度的復雜運動,導致物資在懸空期間發(fā)生不可控的位姿變化,影響物資的安全補給[1],故開發(fā)一套具有海上吊裝定位能力的裝置有著巨大的工程應用價值。
視覺測量技術具有高精度,非接觸,實時在線檢測的特點。近幾年來,在圖像識別、快速跟蹤、多相機立體視覺領域取得了重要成果[2]。視覺測量作為非接觸測量,被測物體的運動狀態(tài)不會發(fā)生改變,且檢測對象不局限于人眼所能看到的范圍,紅外遙感圖像、雷達微波圖像,依然可以觀測[3]。
鑒于視覺測量在定位方面具有傳統(tǒng)傳感器所不具備的優(yōu)越性,考慮將其應用到海上吊裝定位系統(tǒng)中。目前,在物體三維測量領域里,視覺測量的產品主要以3種形式出現,分別是單目、雙目和多目視覺。單目視覺的應用較為普遍,該方法的優(yōu)點是結構簡單、相機標定容易。但其需要借助慣性傳感器提供的數據,且難以獲得準確的深度位置信息[4];多目視覺有較高的定位精度,但操作復雜,維護困難,而且價格高昂[5]。雙目視覺可直接獲得目標物體的三維深度信息,且其在進行位姿測量方面具有效率高、精度合適、系統(tǒng)結構簡單、成本低等優(yōu)點,在虛擬現實、機器人導航及非接觸式測量等許多方向均具有重要的應用價值[6]。
針對于上述情況,通過對雙目立體視覺定位方法的研究,結合海上復雜的吊裝環(huán)境需要,以Sift尺度空間為基礎對被吊物特征提取算法進行優(yōu)化,采用Lucas-Kanade算法對被吊物進行目標追蹤,最終利用SGBM算法對被吊物進行立體匹配,并求取被吊物的實時三維坐標。實驗表明,該方法能夠計算得到被吊物在吊裝過程中與目標點的相對位置,為指導海上吊裝作業(yè)提供數據支撐。
如圖1所示,視覺定位的基本原理是利用攝像機獲取被吊物在吊裝過程中局部環(huán)境信息,通過圖像算法處理得到被吊物與目標點之間的三維位置關系進而指導起重作業(yè)。
圖1 雙目視覺定位方法示意圖
雙目立體視覺定位方法是通過從2個視角觀察被吊物[7],利用三角幾何原理計算感知圖像中的視差,獲取被吊物三維坐標信息。指導起重機在吊裝過程中的運動和方向控制,使被吊物能精確吊裝到目標位置,從而保障海上船用起重機吊裝作業(yè)的安全性與穩(wěn)定性。
其工作流程如圖2所示,具體實施步驟主要可分為3步:首先,由相機獲得被吊物的圖像并通過sift尺度空間進行預處理識別被吊物特征點;然后利用Lucas-Kanade光流估計法追蹤被吊物運動路徑;再通過SGBM算法計算被吊物的立體信息,確定被吊物與目標點之間的相對三維坐標,進而通過上位機轉化為電信號輸出,指導起重機的作業(yè)。
圖2 雙目視覺定位方法工作流程圖
本裝置應用的場景為海上吊裝,需識別的吊裝位置隨波浪浮沉,忽大忽小,為了使計算機能對被吊物在不同尺度下有統(tǒng)一的認知,通過高斯金字塔建立圖像不同尺度的尺度空間,分析被吊物在不同尺度下均存在的特點。
接下來建立差分高斯金字塔提取圖像中的特征點:將每個像素點要和其圖像域(同一尺度空間)和尺度域(相鄰的尺度空間)的所有相鄰點進行比較,當其大于(或者小于)所有相鄰點時,將該點作為特征點。
如圖3所示,將中間的檢測點和其所在圖像的3×3鄰域8個像素點,以及其相鄰的上下2層的3×3領域18個像素點,共26個像素點進行比較,得出圖像的特征點。
圖3 特征點提取示意圖
每個特征點可以得到位置、尺度和方向3個信息(x,y,σ,θ)。
其中,點L(x,y)的梯度的模m(x,y)為
具有多個方向的關鍵點可以被復制成多份,然后將方向值分別賦給復制后的特征點,1個特征點就產生了多個坐標、尺度相等,但是方向不同的特征點。計算每個梯度方向的累加值,即可形成1個種子點,即每個特征點由4個種子點組成,每個種子點有8個方向的向量信息。如圖4所示,1個特征點就可產生32維的Sift特征向量。
圖4 32維的sift特征向量示意圖
通過特征向量表示特征點的方法可篩選出圖像中的特征點,采用Sift尺度空間算法可以得出圖像中的中心點、邊緣角點等后續(xù)視覺檢測工作中需要識別的特征點。
經過Sift尺度空間原理特征提取后,得到被吊物的特征點及相關特征信息,基于特征點可對被吊物進行目標追蹤。
光流就是像素在某時刻運動的瞬時速度,利用這個瞬時速度可以估計到上一幀該像素點在下一幀的對應位置[8]。假設1個像素在第1幀的光強度為I(x,y,t),當其移動了(dx,dy)的距離到下一幀用了dt的時間。由于是同一個像素點的移動,該像素在運動前后的光強度是不變的,即
式中的Ix、Iy、It均可由圖像數據求得,而(u,v)即為所求光流矢量。
Lucas-Kanade光流估計是通過對攝像機采集到的圖像序列進行重采樣和去噪預處理,利用光流法計算出各點的光流值,得出各點的光流場。然后對光流場進行閾值分割,區(qū)分出前景與背景,得出目標區(qū)域。經過區(qū)域連通便可識別出目標區(qū)域并統(tǒng)計其特征信息[9]。流程如圖5所示。
圖5 Lucas-Kanade光流目標追蹤流程圖
完成目標追蹤后,對識別出的目標使用SGBM算法進行視差圖計算。SGBM算法核心步驟為:選取匹配基元;構建基于多個方向的掃描線的代價能量和函數;求取能量代價和函數的最優(yōu)解[10]。OpenCV中SGMB算法的實現主要分為以下4個步驟:
1)預處理
采用水平Sobel算子把圖像做處理,其中Sobel算子為
2)代價計算
使用采樣方法對經預處理得到的圖像梯度信息計算梯度代價、使用采樣方法對源圖像計算SAD代價。如圖6所示,計算方法為輸入左右視圖2幅圖像,對左視圖,依次掃描,選定1個錨點:構造一個類似于卷積核的小窗口,用窗口覆蓋左視圖的圖像,選擇出窗口覆蓋區(qū)域內的所有像素點;同樣用窗口覆蓋右視圖的圖像并選擇出覆蓋區(qū)域的像素點;將左邊覆蓋區(qū)域減去右邊覆蓋區(qū)域,并求出所有像素點灰度差的絕對值之和;移動右邊圖像的窗口,重復設定范圍內像素點的處理;將范圍內SAD值最小的窗口定義為左視圖錨點的最佳匹配的像素塊。
圖6 SAD代價計算示意圖
3)動態(tài)規(guī)劃
在像素點周圍,以45°為間隔設置8個路徑。在每個方向上按照動態(tài)規(guī)劃的思想進行能量累積,然后將各個方向上的匹配代價相加得到總的匹配代價為
式中:L為當前路徑累積的代價函數,P1、P2為像素點與相鄰點視差存在較小和較大差異情況下的平滑懲罰。
4)后處理
在完成動態(tài)規(guī)劃后,需要對窗口進行唯一性檢測,最低代價對應的視差值才是該像素點的視差,否則該像素點的視差為0。接著對視差圖中空白的部分進行亞像素插值,通過得到的左視察圖計算右視差圖。
經過SGBM獲得視差映射后,通過簡單的矩陣相乘可提取物體的深度信息,即可輸出所需的三維點陣。
為了驗證文中方法的可行性、準確性以及實時性,搭建模擬實驗平臺進行結果驗證。采用一組GM37-545型直流減速電機來模擬海浪運動下被吊物的晃動;采用長130 mm,寬75 mm,高90 mm的紙箱模擬被吊物,如圖7所示。被吊物上裝有姿態(tài)傳感器可實時測量計算當前的空間坐標與雙目視覺計算結果相比對;如圖8所示,采用CAM-AR0135-3T16雙目相機進行數據采集,連接計算機進行計算測量。
圖7 模擬被吊物
圖8 實驗雙目相機
采用Python3.7和OpenCV3.4庫進行算法仿真實驗。被吊物擺動的過程中選取了擺動過程中的幾張圖片,利用算法進行三維坐標計算。首先,對圖片進行圖像預處理,利用sift尺度空間方法進行特征點提取,然后利用Lucas-Kanade光流估計對被吊物進行跟蹤,最后用SGBM算法計算出圖像的視差圖并輸出三維坐標。
識別后的部分視差對比圖如圖9所示。實驗中被吊物X軸擺幅在±50 mm、Y軸擺幅在±20 mm、Z軸擺幅在±170 mm。被吊物在不同位姿下三維識別坐標與測量值的誤差對比如表1~表3所示。
圖9 識別后的視差對比圖
由表1~表3分析可知,算法可以很好地識別出被吊物并計算出其三維坐標,雖與實際真值之間存在一定誤差,但誤差值在可控范圍內,可以滿足實際工作需求。
表1 X軸向結果對比 mm
表3 Z軸向結果對比 mm
表2 Y軸向結果對比 mm
為了研究海上吊裝過程中被吊物的定位及位姿變化過程,提出了一種可應用于海上吊裝的雙目視覺立體定位方法。本文基于現有雙目視覺立體定位原理,結合Sift尺度空間原理、Lucas-Kanade光流估計、SGBM算法等方法搭建了模擬實驗平臺。獲取實驗數據并進行數據分析,實驗證明雙目立體視覺定位方法能夠得到被吊物的三維位姿,為海上吊裝精準作業(yè)提供檢測方法。