






摘" 要: 為進一步提高機械臂圖像處理的精確度,文中在改進Canny算子的基礎上,提出一種適用于機械臂視覺伺服的圖像識別與定位算法。該算法利用張正友標定法、灰度化、濾波及閾值分割等方法,完成了精確的相機標定和圖像預處理,并在此基礎上通過改進傳統的Canny算子,降低了圖像處理中邊緣檢測算法的檢測誤差,從而有效提高了機械臂的目標識別與定位精度。仿真實驗結果表明,與傳統算法相比,基于改進Canny算子的識別及定位算法具有更高的處理精度和更快的執行速度。
關鍵詞: 機械臂; 視覺伺服; 相機標定; 灰度化; 圖像濾波; 邊緣檢測; 輪廓提取; Canny算子
中圖分類號: TN911.73?34; TP274+.51" " " " " " " " "文獻標識碼: A" " " " " " " " 文章編號: 1004?373X(2024)13?0027?05
Design of robotic arm recognition and positioning algorithm
using improved Canny operator
LUO Xiaoqing1, HU Rong2
(1. Electromechanical Laboratory, Jiangxi Institute of Mechanical Science, Nanchang 330000, China;
2. Nanchang University College of Science and Technology, Jiujiang 332020, China)
Abstract: An image recognition and positioning algorithm suitable for manipulator visual servo is proposed based on the improved Canny operator to further improve the accuracy of manipulator image processing. In the algorithm, Zhang′s calibration method, grayscale, filtering and threshold segmentation are used to fulfill accurate camera calibration and image preprocessing. On this basis, by improving the traditional Canny operator, the detection error of edge detection algorithm in image processing is reduced, so as to effectively improve the object recognition and positioning accuracy of manipulator. The simulation results show that the recognition and positioning algorithm based on the improved Canny operator has higher processing accuracy and faster execution speed in comparison with the traditional algorithm.
Keywords: mechanical arm; visual servo; camera calibration; grayscale; image filtering; edge detection; contour extraction; Canny operator
0" 引" 言
隨著科學與技術的飛速發展,智能工廠逐漸成為研究熱點,機械臂技術也逐步被廣泛應用于實際的工業生產過程中[1?3]。其中,汽車生產過程中的焊接噴涂、貨運倉庫的快速運輸及快遞分揀已大規模地使用此項技術,并提高了汽車生產和物流運輸等產業的生產速度及效率[4?6]。通常而言,機械臂技術主要由視覺傳感器技術與自動控制技術等組成。其中,視覺傳感器技術是機械臂的眼睛,其精準的識別和定位技術令機械臂實現對目標的自主識別、抓取、分揀及缺陷檢測等多項復雜任務,從而解決復雜環境中工業生產欠缺靈活性、自主性與智能化的問題[7?9]。
針對機械臂中的識別與定位技術,國內外學者進行了大量的研究工作。在圖像處理的目標檢測中,文獻[10?12]第一次引入神經網絡的深度學習方法,從而提出基于R?CNN(Region?based Convolutional Neural Network)的圖像檢測模型,同時利用RoI池化方法和選擇性搜索算法獲取具有更快速度的Faster R?CNN檢測模型;基于幾何不變性、形態學與圖像處理等多種算法,文獻[13]提出基于Canny算子的邊緣檢測算法,實現對異源圖像中各種事物的特征提取;綜合利用卷積運算、聚類算法及特征提取網絡等多種算法,文獻[14]提出YOLO檢測模型,從而提高圖像檢測的準確度;通過設定關鍵檢測點的方法,文獻[15]提出具有更高檢測精度的CornerNet方法。然而,這些圖像識別和定位算法仍然難以適應機械臂的高速發展需求,即其處理精度與執行速度仍較低。針對這一問題,本文通過引入張正友標定法、灰度化、圖像濾波和閾值分割等方法,提出了一種圖像識別及定位算法,以降低機械臂工作過程的邊緣檢測誤差,從而提高機械臂的目標識別與定位精度。
1" 相機標定原理
相機標定法起源于攝影測量學,是指從二維圖像出發,確定三維空間中坐標與點之間的關系,且其標定內容包括內部參數和外部參數。其中:內部參數主要由焦距、焦點、傾斜、橫縱比與失真度等多種參數組成;外部參數則主要由二維圖像及三維空間之間的旋轉角度和平移距離等運行參數組成。
目前,相機標定方法可分為三種,即傳統標定、主動式標定及自標定。為了提高機械臂的標定精度,同時降低標定方法的復雜性,文中選取基于單面棋盤的張正友標定法。該標定法采用針孔成像模型,其空間與圖像間的坐標具有特定的線性關系。在相機標定過程中,張正友標定法分別需建立圖像像素、圖像物理、相機和世界坐標系,這些坐標系間的相互關系如圖1所示。
由圖1可知,在二維圖像空間中,對于圖像像素坐標系[IO'J]與圖像物理坐標系[POH],設圖像物理坐標系的原點[O]在像素坐標系中的坐標為[p0,h0],像素點在物理坐標系中的長和寬分別是[lp]與[lh],則圖像的物理坐標[p,h]及像素坐標[x,y]之間的關系為:
[x=plp+p0y=hlh+h0] (1)
設相機焦距為[f],則像素坐標[x,y]與相機坐標系[Oc?XcYcZc]中的空間坐標[xc,yc, zc]之間可進行較為簡單的轉換,其轉換方法如下:
[xc=zcxfyc=zcyf] (2)
在三維空間中,令[M3×3]表示三維的旋轉方陣,[T1×3]表示維度為[1×3]的平移列向量。在相機坐標系中,[xc,yc, zc]表示某個像素的空間坐標,在世界坐標系中,[xd,yd, zd]表示某像素的坐標,二者間的轉換關系為:
[xcyczc=M3×3xdydzd+T1×3] (3)
聯立式(1)~式(3),可得圖像像素坐標系[x,y]與世界坐標系[xd,yd, zd]間的轉換公式為:
[zcxy1=flp0p00flhh0001M3×3T1×301xdydzd1=R1R2xdydzd1] (4)
式中:[R1]和[R2]分別是相機的內部參數和外部參數矩陣。根據上述相機標定原理,利用邊長為10 mm的單面棋盤打印結果。文中使用Matlab軟件完成機械臂相機的參數計算與標定。需要說明的是,由于不同相機攝像頭具有完全不同的屬性,所以其標定內外參數的計算結果也存在著較大差異。
2" 圖像預處理
針對現場環境的亮度、對比度與空氣質量等因素的干擾,在圖像采集中增加灰度化、濾波及閾值分割等預處理步驟,從而提高圖像的處理精度與識別效率。
2.1" 灰度化
對于采集的原始圖像,機械臂的相機需要先將其轉化為灰度圖像,再提取圖像中的目標特征。目前,圖像灰度化方法主要由最大值法、平均值法和OpenCV加權均值法組成。通過考慮機械臂的計算條件與圖像處理環境,文中選取性質適中的OpenCV加權均值法,對彩色的原始圖像進行必要的灰度化處理,其具體操作過程描述如下。
不妨設圖像的紅色、綠色和藍色的通道坐標分別為[Rx,y]、[Gx,y]和[Bx,y],則利用OpenCV加權均值法可得到灰度化之后的圖像[sx,y],其計算過程如下:
[sx,y=0.299Rx,y+0.587Gx,y+0.114Bx,y] (5)
2.2" 高斯濾波
通常灰度化之后的圖像[sx,y]仍存在較多圖像噪點,其會影響機械臂的圖像識別及定位精確度。針對這一情況,需選取適當的圖像濾波方法對灰度圖像進行必要的濾波。常見的濾波方法有均值濾波、高斯濾波和中值濾波,而本次選取了高斯濾波作為處理的方法,原因在于:第一,均值濾波可以完整地保留圖像目標的整體形狀,但其特征的邊緣信息較為模糊,輪廓的檢測難度也較高;第二,中值濾波能較優地處理圖像的邊緣噪聲,但其整體的降噪效果仍低于高斯濾波。在具體濾波過程中,令[σ]表示高斯分布的標準差,[x,y]表示圖像像素坐標系中的坐標,則二維高斯函數[gx,y]為:
[gx,y=12πσ2e-x2+y22σ2] (6)
將灰度圖像[sx,y]與二維高斯函數[gx,y]執行卷積運算,能夠得到平滑之后的圖像[Ix,y]。
[Ix,y=gx,y*sx,y] (7)
2.3" 閾值分割
經過灰度化及濾波處理之后,圖像[Ix,y]需按照一定的閾值進行圖像分割,從而實現圖像檢測目標與背景的分離。通常而言,圖像分割的核心在于計算目標及背景的最佳閾值。而計算圖像閾值的算法有Otsu閾值分割法、最大熵閾值分割法和迭代閾值分割法。由于Otsu閾值分割法經常忽略圖像的邊緣特征信息,造成檢測目標信息的缺失;最大熵閾值分割法則容易混淆不同的圖像特征,導致圖像檢測目標的混雜與模糊,而迭代閾值分割法可兼顧圖像檢測目標的邊緣特征及目標特征,故文中選取迭代閾值分割法作為圖像分割的算法。
在閾值分割過程中,對于平滑圖像[Ix,y],首先需要統計其灰度直方圖,得到圖像[Ix,y]的最大灰度值[Gmax]和最小灰度值[Gmin],并按照式(8)計算第一輪的初始閾值[H0],則:
[H0=Gmax+Gmin2] (8)
其次,按照閾值[H0]將圖像[Ix,y]劃分為前景和背景,并計算小于[H0]的灰度均值[G0]與大于[H0]的灰度均值[G1],按照式(9)中的均值計算方法,計算其新一輪的閾值[H1],則有:
[H1=G0+G12] (9)
最后,若第[k]輪與第[k+1]輪的閾值相等,即[Hk=Hk+1],則結束迭代,返回當前閾值[Hk];否則,繼續重復以上步驟進行迭代閾值分割。
3" 邊緣檢測算法
在圖像處理領域,邊緣特征是檢測目標的重要信息[16],直接影響機械臂的識別與定位。為了提高機械臂的識別精度,降低圖像采集與檢測的誤判概率,引入了改進Canny算子,以優化機械臂中圖像的邊緣檢測算法,該算法流程如圖2所示。
由圖2可知,經過預處理之后,需要計算圖像梯度的幅值和方向。對于待處理的圖像[Ix,y],圖像梯度的水平分量[Grx]和垂直分量[Gry]的計算方法如下:
[Grx=-101-202-101*Ix,y] (10)
[Gry=121000-1-2-1*Ix,y] (11)
由水平分量[Grx]與垂直分量[Gry]得到圖像像素點的梯度幅值Gr和相位[?]的計算公式為:
[Gr=Gr2x+Gr2y] (12)
[?=arctanGryGrx] (13)
在獲取梯度幅值及相位之后,需要使用非極大值抑制法刪除假邊緣特征。首先,對圖像中所有的像素點進行遍歷訪問,以獲取此類像素點的梯度矢量;其次,若某像素點的梯度值大于相鄰像素點的梯度值,則該像素點是邊緣像素點,反之,該像素點不是邊緣像素點。
基于逼近思想和改進Canny算子,文中結合迭代閾值分割法及雙閾值算法,提出具有較高實用性的閾值分割方法,具體實現步驟如下。
步驟1:設置迭代閾值差為[ε];
步驟2:遍歷所有圖像像素點,計算其平均梯度值,并設置為初始閾值[H0];
步驟3:按照初始閾值[H0]將圖像劃分為梯度值小于[H0]的像素點[P1]和梯度值大于[H0]的像素點[P2];
步驟4:求解部分圖像[P1]及[P2]的平均灰度值[G1]和[G2];
步驟5:計算[G1]和[G2]的平均值[Hnew]作為新閾值;
步驟6:若兩次相鄰迭代閾值[Hnew]和[H′new]之差小于[ε],即[Hnew-H′newlt;ε],重復運行步驟3~步驟6;
步驟7:輸出最后一次迭代閾值[H′new],作為算法最終輸出。
4" 實驗仿真
為驗證基于改進Canny算子識別定位算法的有效性和可行性,利用現實生活中的真實數據,分別對基于經典Canny算子與改進Canny算子的圖像處理算法進行必要的仿真及分析。實驗中使用攝像頭拍攝實際生活中的多張圖像,并從中選取100張較為清晰的圖像進行圖像邊緣檢測實驗。這些物體包括螺絲釘、螺帽和牛奶盒等多種物體,部分實驗圖像如圖3所示。
在所有算法執行之前,設定相同的邊緣檢測初始條件和執行環境。其中,邊緣檢測算法的初始閾值[H0=30],閾值差[ε=0.001],作為算法運行的初始條件。算法運行過程中,其外部執行環境主要由主控制器、攝像頭和機械臂組成。主控制器是型號為4B的樹莓派,加載Linux操作系統及OpenCV圖像庫。在圖像采集中,選取具有小體積和低功耗等特點的HV3808攝像頭,其分辨率與幀率分別為[640×480]及30 f/s;在控制端,選取具有5個旋轉關節及1個夾子的ArmPi機械臂,其自由度為5,固定周期為20 ms,基準脈寬為1.5 ms。
經過兩種算法的重復運行與統計,獲取上文兩種算法在不同檢測目標特征數量情況下的邊緣檢測累計誤差及算法執行時間,具體結果如圖4、圖5所示。
由圖4可知,在算法執行過程中,基于經典Canny算法的累計誤差均值遠高于改進Canny算子,且當目標檢測數量小于20時,基于經典Canny算子和改進Canny算子兩種圖像檢測算法的累計誤差均值都處于區間內較高的水平,但隨著目標檢測數量的增多,經典Canny算子的累計誤差呈現緩慢升高的趨勢,而改進Canny算子則呈現相對平穩的波動趨勢。該結果表明,基于改進Canny算子的邊緣檢測算法具有更高的處理精度。而從圖5中可看出,隨著目標檢測數量的增多,兩種算法的執行時間均不斷增加,但基于經典Canny算子檢測算法的執行時間明顯多于改進Canny算子。此外,當目標特征檢測數量大于40時,基于改進Canny算子檢測算法的執行時間增長速度遠低于經典Canny算子,且兩種算法間的執行時間之差也逐漸增大。這直接證明了基于改進Canny算子的圖像檢測算法具有更快的執行速度。由圖4、圖5的結果可知,與經典Canny算子相比,基于改進Canny算子的圖像處理算法具有更高的處理精度及更快的執行速度。換言之,基于改進Canny算子的圖像檢測算法優于經典Canny算子。
5" 結" 論
基于改進Canny算子、張正友標定法和多種圖像處理流程,本文提出具有更高檢測精確度及更少執行時間的圖像檢測算法,從而直接優化機械臂的識別與定位精度。但本文尚未對機械臂圖像檢測和控制過程之間的匹配方法加以研究,即機械臂邊緣檢測精度的提高并不意味著其控制精度的優化。因此,如何以高精確度的圖像處理算法實現對機械臂的精確控制,仍需大量的研究及實踐,這也是未來的研究方向。
注:本文通訊作者為胡榮。
參考文獻
[1] 陳浩,李華峰.超聲電機驅動的機械臂控制系統研究[J].國外電子測量技術,2021,40(9):70?75.
[2] 王鑫,李偉,梁煒,等.單目相機?IMU?機械臂的空間聯合標定方法[J].儀器儀表學報,2021,42(6):221?231.
[3] 韓銳,隆晨海,馬國梁,等.基于特征建模的連續體機械臂自適應魯棒控制技術研究[J].計算技術與自動化,2023,42(3):1?4.
[4] 黃艷,黃蓉.基于物聯網技術的工業機械臂抓取位姿快速檢測研究[J].制造業自動化,2022,44(9):189?192.
[5] 鄭雪楷,劉放,魏文清,等.接觸網雙機械臂作業車運動學分析及軌跡規劃[J].機床與液壓,2023,51(11):34?39.
[6] 趙修琪,盧文豪,王珊.基于Arduino的自動分揀機械臂控制系統設計[J].現代電子技術,2021,44(24):163?166.
[7] 蘇賜民,李春杏.激光視覺傳感器的機器人焊縫高精度跟蹤系統[J].激光雜志,2023,44(1):221?226.
[8] 趙以恒,周志峰.基于激光和視覺傳感器融合的定位與建圖[J].上海工程技術大學學報,2022,36(4):392?397.
[9] 王樹強,賀久洲,高元德,等.基于視覺傳感器的相貫線焊縫特征提取方法[J].沈陽化工大學學報,2022,36(4):368?375.
[10] GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2014: 580?587.
[11] GIRSHICK R. Fast R?CNN [C]// Proceedings of the IEEE International Conference on Computer Vision. New York: IEEE, 2015: 1440?1448.
[12] REN S Q, HE K M, GIRSHICK R, et al. Faster R?CNN: Towards real?time object detection with region proposal networks [C]// Advances in Neural Information Progressing Systems 28: Annual Conference on Neural Information Processing Systems 2015. [S.l.: s.n.], 2015: 91?99.
[13] 謝靜,庹先國,方曉.基于邊緣幾何不變性的特征提取算法研究[J].電子技術應用,2015,41(3):161?164.
[14] REDMON J, DIVVALA S K, GIRSHICK R, et al. You only look once: Unified, real?time object detection [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2016: 779?788.
[15] LAW H, DENG J. CornerNet: Detecting objects as paired keypoints [C]// Proceedings of the European Conference on Computer Vision (ECCV). Heidelberg, Germany: Springer, 2018: 765?781.
[16] 童勝杰,江明,焦傳佳.一種改進工件邊緣檢測方法的研究[J].電子測量與儀器學報,2021,35(1):128?134.