王 皓 杜向陽 耿英博 張克平
(上海工程技術大學機械工程學院)
基于LabVIEW的相機標定技術研究*
王 皓 杜向陽 耿英博 張克平
(上海工程技術大學機械工程學院)
使用LabVIEW平臺和視覺開發模塊完成對相機的標定,選用圓點陣標定板,利用Canny算子提取圓形輪廓,然后基于亞像素邊緣提取的圓擬合方法提取特征點在圖像坐標系下點中心坐標。該方法降低了攝像機標定的難度,極大地縮短了軟件開發周期,具有較高的標定精度,能夠滿足實際工業檢測的精度要求。
相機標定 機器視覺 LabVIEW Canny算子
機器視覺就是利用計算機和視覺傳感器件替代人眼來做度量和判決[1]。近年來,機器視覺技術以非接觸、快速、高精度及自動化程度高等優點在各個領域都得到廣泛應用。
相機標定是機器視覺檢測和定位系統研究中的重要組成部分。相機標定的實質就是求解相機內外參數的過程。目前,用于相機標定的方法多種多樣,大致可以分為3類:傳統的相機標定方法、主動視覺中的標定方法和相機自標定方法。筆者在基于張正友標定算法的基礎上,利用LabVIEW作為開發平臺,并考慮到二次徑向畸變,建立非線性相機模型,完成對相機的標定。
LabVIEW作為一種編程語言,與其他常見的編程語言相比,最大的特點在于它是一種圖形化編程語言,使程序開發更直觀、簡潔,界面也更加具有說服力,極大地提高了編程的效率,縮短了軟件的開發時間。
視覺開發模塊是專為開發機器視覺而設計的,NI視覺開發模塊包括IMAQ Vision和NI Vision Assistant,IMAQ Vision擁有強大視覺處理函數的庫,NI Vision Assistant提供不通過編程就實現將LabVIEW 應用于快速成型的直觀環境。其中IMAQ Vision 是一套包含各種圖像處理函數的功能庫,它將400 多種函數集成到LabVIEW、Measurement Studio、LabWindows/CVI、Visual C++和Visual Basic開發環境中,為圖像處理提供了完整的開發功能;NI Vision Assistant是圖像模型建立與驗證的一個工具,它能夠自動生成LabVIEW程序框圖,該程序框圖中包含NI Vision Assistant建模時一系列操作的相同功能,而且開發者可以根據實際需求進行二次編寫,并將程序框圖集成到自動化或生產測試應用中,用于運動控制、儀器控制及數據采集等。
針孔相機模型是各種相機模型中最簡單、常見的一種,這是一種不考慮相機畸變因素而建立的理想狀態模型。它的優點是成像關系是線性的,簡單實用而且保證準確性,因此在機器視覺中得到了廣泛的應用。但是在實際的工程應用中,由于相機鏡頭的制造和安裝中存在一定的誤差,鏡頭均會產生一定的畸變,為了提高相機標定的精度,筆者在理想的針孔相機模型的基礎上考慮鏡頭的徑向畸變,從而重新建立相機的成像模型。
2.1針孔相機模型
CCD相機采集獲取的圖片在計算機內是以M行N列的數組形式保存的,M行N列的圖像中的元素稱為像素。在圖像上定義直角坐標系每一像素的坐標(u,v)分別為該像素在數組中的列數和行數,所以(u,v)是以像素為單位的圖像坐標系的坐標。而在實際的工程應用中,需要將以像素為單位的圖像坐標系轉變成以物理單位毫米(mm)表示的圖像坐標系,以物理單位毫米表示的圖像坐標系的x軸和y軸分別平行于u軸和v軸,這兩個坐標系之間的關系如圖1所示。

圖1 圖像坐標系關系
其中o點在(u,v)坐標系中的坐標為(u0,v0),即圖像中每一個像素在x軸和y軸方向上的物理尺寸為dx,dy,所以在圖像中,每個像素在坐標系(u,v)和坐標系(x,y)下的關系用齊次坐標與矩陣形式表示為:
(1)
圖2為針孔相機模型示意圖。針孔相機模型是指在理想狀態下,采集的圖像點經過透鏡成像后,在成像平面上可形成與之對應的理想的像點,使得空間圖像點、鏡頭的光心點和成像點都在一條直線上[2]。設Oc-XcYcZc為相機坐標系、Ow-XwYwZw為世界坐標系,相機坐標系的原點Oc為CCD相機鏡頭的光心,Zc軸與相機的光軸重合,原點o為相機光軸和圖像平面的交點,f為相機的有效焦距,圖像平面和XcOcYc平面平行,以物理單位毫米表示的圖像坐標系的x軸和y軸分別平行于相機坐標系的Xc軸和Yc軸。(Xw,Yw,Zw)、(Xc,Yc,Zc)分別為空間中任意一點P的世界坐標和相機坐標,(x,y)為點P在圖像平面上的投影坐標。
對于空間上任意一點P,在世界坐標系下的坐標(Xw,Yw,Zw)和在相機坐標系下的坐標(Xc,Yc,Zc)之間的變換關系為:
(2)

圖2 針孔相機模型示意圖
其中,R和T分別表示從世界坐標系到相機坐標系的旋轉矩陣和平移矩陣,旋轉矩陣R是3×3的正交矩陣,平移矩陣T是3×1的列向量;H1是4×4的矩陣,用于反映相機坐標系和世界坐標系之間的位置關系,表示相機的外參數矩陣。
按圖2建立針孔相機模型,得到空間上一點P在圖像平面上的坐標用齊次坐標與矩陣形式表示為:
(3)
根據式(1)、(3)得到圖像坐標系與相機坐標系之間的轉換關系:

(4)
其中,H2是3×4的矩陣,表示相機的內部參數矩陣;fx、fy、u0、v0只與相機的內部結構有關。根據式(4),當采集3幅及以上的標定板圖像,就可以求出相機內參數矩陣H2。
根據式(2)、(4)得到圖像坐標系與世界坐標系之間的轉換關系:

(5)
其中,H是3×4的單應性矩陣。根據式(5),當已知足夠多的空間點的世界坐標及其對應的圖像坐標,就可求出H矩陣。知道了投影矩陣H和相機內參數矩陣H2,便可求出相機的外參數矩陣,得到相機的外部參數。確定了相機的內外參數,即完成了相機線性模型的標定。
2.2非線性相機模型
在實際的成像過程中,考慮到相機鏡頭的制造和安裝過程中存在一定的誤差,會造成鏡頭的失真,一般都存在非線性畸變,相機的鏡頭畸變主要分為3類:徑向畸變、偏心畸變和薄棱鏡畸變[3],考慮到非線性畸變,所以在相機標定時使用非線性優化算法。而有研究表明,引入過多的非線性(如偏心畸變和薄棱鏡畸變)不僅不能提高解的精度,還會引起解的不穩定,所以筆者在考慮畸變的情況下建立實際的非線性相機模型,而在一般情況下徑向畸變就足以描述非線性畸變,因此筆者只考慮徑向畸變[4],建立相機非線性模型的方程如下:
(6)

筆者利用LabVIEW+NI Vision去完成相機的標定,考慮到圓心提取算法的穩定性和定位精度要優于棋盤標定板的角點提取,因此選用6×8圓點陣列標定板,如圖3所示。

圖3 圓點陣列標定板
具體的標定步驟如下:
a. 首先選擇相機的標定類型為Camera Model(Grid),用至少5幅標定圖像才能得到相機參數和鏡頭的畸變;
b. 加載采集的標定板圖像,為了提高標定的精度,筆者載入11張在不同角度下采集的標定板圖像,并按照要求,選用基本上與鏡頭光軸相垂直的圖像1為標定的參考工作平面,并將以此平面為基準來修正鏡頭的非線性畸變;
c. 對每一幅圖像進行閾值參數的選擇,將標定板圖像上的圓點從背景中清晰地顯現出來,若標定版圖像上的圓點沒有被完全覆蓋,則需要手動畫出相對應的范圍,以保證圓點區域完全顯示,并采用Canny濾波器提取圓形輪廓;
d. 輸入標定版圖像上圓點間的相關參數,包括X Spacing、Y Spacing和Unit,分別表示標定板上相鄰圓點之間的X方向上的圓心距離、Y方向上的圓心距離和距離的單位,筆者使用的實際相鄰圓點間X方向上和Y方向上的距離均為12,單位為mm;
e. 利用圓擬合算法提取圓心特征點的坐標,得出相機的內參和相應的誤差參數,如圖4所示;
f. 為標定圖像設定坐標系,選取右上角的圓心為坐標圓點,以便在后續測量中得出點的精確坐標值;
g. 最后將標定結果保存為png文件格式,方便在后續的測量中調用。

圖4 相機標定步驟e
對矯正后的圖像進行形狀邊緣檢測,得到圓點陣列標定板中所有圓的半徑、圓心的圖像坐標及世界坐標等詳細的參數,筆者只選取標定板圓點的半徑參數數據信息(表1)。

表1 標定板圓點半徑參數
實驗結果表明該方法矯正效果較好,平均物理誤差在0.032 9mm左右,畸變為0.100 7%。
在計量學中,常用標準差衡量所測數據的精度,筆者選用標準差σ對垂直方向相機標定精度進行評定,公式如下:

(7)

根據表1選取圖像圓點的半徑結果數據進行具體的分析處理,分別計算得出以像素為單位的圓的半徑標準差σpixel=0.1639和以毫米為單位的圓的半徑的標準差σmm=0.0088。因此經過上述的數據分析表明,筆者使用的標定方法具有較高的標定精度,能夠滿足實際機床加工或工業檢測的精度要求。
基于LabVIEW 的標定方法可以很有效地消除圖像中線性與非線性的畸變,操作簡單,標定精度較高,而且能夠方便地與NI視覺開發模塊結合使用,是傳統方法無法相比的,對實際生產有很重大的意義,將會廣泛地應用到機械工件加工、零件檢測等眾多領域,進一步提高自動化程度,極大地提高生產效率,降低成本。
[1] Carsten S, Markus U, Christian W. Machine Vision Algorithms and Applications[M]. Berlin: Wiley-VCH, 2007.
[2] Yang X F, Huang Y M, Gao F.A Simple Camera Calibration Method Based on Sub-pixel Corner Extraction of the Chessboard Image[C].Proceedings of IEEE International Conference on Intelligent Computing and Intelligent Systems.Piscataway,NJ,2010:688~692.
[3] 劉超.移動視覺檢測系統的建模與標定方法研究[D].天津:天津大學,2013.
[4] Zhang Z Y. A Flexible New Technique for Camera Calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,22(11):1330~1334.
TheResearchofTechnologyforCameraCalibrationBasedonLabVIEW
WANG Hao, DU Xiang-yang, GENG Ying-bo, ZHANG Ke-ping
(CollegeofMechanicalEngineering,ShanghaiUniversityofEngineeringScience)
Employing LabVIEW platform and visual development module to calibrate cameras was implemented, including having dot matrix chosen to calibrate the board and Canny operator adopted to extract the circle edge and then having the method of circle fitting extracted based on subpixel edge to get feature points’ coordinate in the image coordinate system. The proposed method can reduce the difficulty of camera calibration and shorten the software development cycle. The most important is that it has a high calibration accuracy as the actual industrial detection required.
camera calibration, machine vision, LabVIEW, Canny operator
王皓(1993-),碩士研究生,從事圖像處理的研究,wanghaoxsj@qq.com。
TP301.6
A
1000-3932(2017)10-0944-05
2017-06-21,
2017-06-30)