喬超,李帥康,洪榮晶,孫新平
1南京工業大學機械與動力工程學院;2江蘇省工業裝備數字化制造及控制技術重點實驗室
在金屬切削加工中,可轉位刀具扮演著非常重要的角色,其精度對可轉位刀具的切削效率和加工精度有著重要的影響,對可轉位刀片幾何參數進行準確測量至關重要[1]??赊D位刀片的測量方法包括傳統人工測量法和視覺測量法,視覺測量法比傳統人工測量法誤差更小,精度更高,效率更高。雙目視覺已經應用到生活中的各個領域,包括人工智能、自動駕駛、工業測量和醫療等領域。雙目視覺研究是科研領域重要的一個研究課題。雙目視覺[2,3]是較為簡單的一種立體視覺,采用左右兩個攝像機模仿人類和動物的雙目視覺功能,利用攝像機在不同位置拍攝同一物體獲取物體雙目圖像,得到物體的三維立體信息。
目前針對刀具測量主要是通過機器視覺測量。關波[4]基于機器視覺設計刀具幾何參數測量系統對刀具進行離線測量。陳宇彤[1]提出基于機器視覺的可轉位刀片幾何參數測量,通過單目測量系統完成平面幾何參數測量,通過引入線激光器與單目測量系統結合組成結構光視覺系統完成三維幾何參數測量。
圖1 雙目模型視覺測量
如果P是三維立體世界中存在的一點,在左圖像和右圖像上的對應點為Pl和Pr,其橫坐標分別為xl和xr。
在這個簡化且理想系統下,計算的視差是d=xl-xr,深度Z則利用相似三角形可得
(1)
(2)
由式(2)可推導出深度Z和視差d成反比關系。當視差非常小時,視差的細微變化都會對深度造成很大影響,而當視差足夠大時影響很小,因此在用攝像機采集圖像時需要保持攝像機與物體適當的距離。
雙目視覺刀片厚度測量主要包括五個步驟,測量系統流程如圖2所示。
圖2 雙目視覺刀片測量系統流程
圖像采集系統由工業CMOS相機、相機鏡頭、環形光源等主要部分組成。兩個工業相機通過相機夾持機構將其平行固定以保證采集符合標準的圖像集。工業相機通過USB3.0接口連接,采集的圖像通過PC端直接傳入電腦,傳輸速度快,距離短,信號干擾小,且無需使用圖像采集卡。光源為刀片圖像采集補光,照亮圖像刀片表面特征,根據刀片雙目測量特點選取環形光源。環形光源的放置不能遮擋相機的視角,否則成像誤差大,直接影響實驗結果。在采集可轉位刀片圖像過程中必須保持相機平行。
相機鏡頭畸變模型有徑向畸變和切向畸變兩種,其中徑向畸變是因為透鏡的制造形狀存在誤差導致,而切向畸變是由于相機組裝無法將透鏡和成像裝置嚴格對齊,因此需要利用相機標定減少其帶來的誤差影響。利用位置保持平行的雙目工業相機從左右兩個方向一起攝取多對標定板圖像。將左右工業相機采集的圖像集分別傳入MATLAB R2018a中的標定應用程序Stereo Camera Calibrator中,并且輸入棋盤格的寬度,識別后的棋盤格如圖3所示。
圖3 棋盤格角點識別
執行標定程序,并移除誤差較大的圖像以提高標定結果的準確性。將參數保存到.txt文件中,將該文件中參數提取到VS-OpenCV(Visual Studio-Open Source Computer Vision Library)中并顯示到VS的界面上,從上到下依次為左相機內參camerMatrixL、右相機內參camerMatrixR、左相機畸變參數dstCoeffL、右相機畸變參數dstCoeffR、平移矩陣T、旋轉矩陣R,如圖4所示。
圖4 相機標定參數
立體校正的目的是將采集的非共面行校準的實物雙目圖像校正成共面行校準的雙目圖像,減少誤匹配以提高立體匹配精度和效率。在相機標定中已經獲取的標定參數旋轉矩陣R和平移向量T,再結合Bouguet[5]算法進行立體校正。經計算得出重投影矩陣Q,世界坐標系和像素坐標系之間的轉換是通過Q完成。
(3)
(4)
式中,(ul,vl)和(ur,vr)分別對應左右相機圖像上的主點坐標;d是對應特征點視差;Tx是基線距離。
經過立體校正后左棋盤格圖像中的任意一點與右棋盤格圖像中的對應點都在一條直線上。圖5和圖6分別為校正前和校正后雙目圖像效果。
圖5 校正前雙目圖像
圖6 校正后效果
為了計算視差得出視差圖,需要尋找立體校正后的雙目圖像中對應的匹配點,這一過程就是立體匹配。立體匹配分為全局立體匹配、局部立體匹配和半全局立體匹配,全局立體匹配較精確但成本高,局部立體匹配成本較低但不夠精確,本文采用成本相對較低且相對精確的半全局立體匹配。
由于測量可轉位刀片對測量精度要求較高,采用基于Roberts算法的SGBM(Semi-global Block Matching)立體匹配改進算法對可轉位刀片圖像進行立體匹配。Roberts算法是一種比較簡單的算法,計算成本低,定位準,在本測量系統中通過Roberts算法對立體匹配過程中SGBM算法匹配精度進行提高從而提高雙目測距精度。
Roberts算法[6,7]利用局部差分尋找邊緣并且采用對角線方向相鄰兩像素的差近似梯度幅值檢測邊緣。其梯度公式為
(5)
(6)
(7)
Roberts算法模板如圖7所示。
圖7 Roberts算法模板
SGBM算法[8-12]是SGM(Semi-global Block Matching)在OpenCV庫中的表現形式,主要包括預處理、代價計算、視差優化和后處理等步驟。
基于Roberts算法的SGBM立體匹配改進算法的核心是將Roberts算法應用到SGBM立體匹配過程中提高可轉位刀片圖像的邊緣定位精度。其主要步驟包括:
①利用Roberts算法對刀片圖像邊緣進行準確定位并完成預處理;
②代價計算;
用d=(xi,yi,IL,IR)表示刀片左右圖像中其中兩個點為對應點的概率,yi為同名像點的可能性。
(8)
式中,xi,yi分別為刀片左右圖像中在同一條左右掃描線上的像點;IR(x)為左掃描線上位置x的灰度值;IR為右掃描線上的采樣點經過線性內插的方法得到的灰度。
③通過SGBM算法完成刀片左右圖像中同一條左右掃描線上的像點的匹配計算;
④對計算得出的代價進行領域求和運算,參照圖像的像素塊匹配目標圖像的像素塊,通過匹配獲得一個新的視差圖;
⑤通過SGBM算法內部檢測算法判斷選取的點是否為誤匹配點,若是,則將其剔除。
刀片厚度測量實驗主要包括以下步驟:
①通過雙目工業相機平行采集15對棋盤格標定板圖像,導入MATLAB R2018a中的標定應用程序Stereo Camera Calibrator,刪除重投影誤差較大的圖像,完成相機的標定工作,獲取相機內外參數,如圖4所示。
②利用雙目工業相機采集一對可轉位刀片圖像,如圖8所示,并將采集的圖像集傳入VS-OpenCV。
圖8 雙目相機采集的一對圖像
③利用計算出的相機內外參數和Bouguet算法完成刀片圖像立體校正,獲取非共面行校準(即去畸變)的雙目圖像。校正效果如圖9所示。
圖9 雙目圖像校正效果
④分別利用SGBM算法和基于Roberts的SGBM算法對上述雙目校正圖像進行立體匹配,通過坐標映射求出視差圖(見圖10)。通過對比兩圖可以看出,基于Roberts算法的SGBM得出的視差圖相對清晰。
圖10 SGBM視差(左)和改進SGBM視差(右)
⑤測量刀片厚度。通過視差圖中獲取的三維坐標即可求出刀片上表面到下表面的距離,將刀片上表面到下表面的距離轉化為上表面中一點到下表面中一點的距離,即可轉位刀片厚度。對厚度7.5mm的標準可轉位刀片分別采用SGBM算法和基于Roberts的改進SGBM算法進行測試,測量結果見表1。
表1 測量結果 (mm)
由表可得,使用SGBM算法測量的最小誤差為0.044mm,改進后SGBM算法測量的最小誤差為0.024mm,測量誤差更小,說明SGBM算法測量精度高,改進后能夠提高精度,可以滿足基本測量。
搭建可轉位刀片視覺測量系統,通過研究圖像采集、雙目相機標定、圖像立體校正、圖像立體匹配等關鍵圖像處理技術,提出基于Roberts算法的SGBM算法改進方法,實現了可轉位刀片立體幾何參數厚度精確測量。同時由于雙目視覺平臺底座制造不夠平整以及平臺放置存在一定放置誤差沒有達到理想的平行效果,導致刀片厚度測量結果的誤差值有一定的波動。