(華中科技大學 機械科學與工程學院國家數(shù)控系統(tǒng)工程技術研究中心,武漢 430000)
在光電檢測領域,激光三角法以其快速、非接觸、高精度的特點,被廣泛使用,其中市場上出現(xiàn)最多的是基于線結構光的激光三角測量系統(tǒng),已經有相應的產品,如北京大恒公司代理國外廠商LMI Technologies INC的Gocator智能傳感器系列產品,通過投射線結構光達到測距、測截面輪廓等目的。線結構光三維測量系統(tǒng)的標定是獲取三維信息的關鍵步驟,有許多學者都對其進行了研究,但是多數(shù)都不是恒聚焦光路,對攝像機的標定采用傳統(tǒng)的線性模型與非線性模型,有如學者周富強、張廣軍[1],提出了一種新的基于自由移動平面參照物的表面視覺傳感器全部參數(shù)的高精度簡易標定方法;學者陳新禹等[2]提出的提出了一種基于單一圓形標靶標定線結構光視覺傳感器的方法,他們的系統(tǒng)都是基于攝像機和透鏡平行放置來建立的。
本文以線結構光三維測量系統(tǒng)為支撐,為達到高精度測量,設計了滿足恒聚焦光路條件的硬件系統(tǒng),由于光路條件的改變,原有的攝像機標定的線性模型以及非線性模型不足以描述本系統(tǒng)攝像機模型,因此本文深入研究了恒聚焦光路的數(shù)學模型,并建立了基于傾斜鏡頭的攝像機標定模型。
線結構光傳感器原理如圖1所示,線激光照射到被測物表面,激光在表面上會發(fā)生漫反射,反射的光線由光學透鏡匯聚在光敏接收單元上,如果被測表面有位移變化,通過檢測光敏單元上激光位置變化,就能得到物體位移的變化,這就是激光三角法的測量原理。傳統(tǒng)的三角測量過程都保證透鏡主平面與成像元件光敏面平行,一旦系統(tǒng)調試好,準確聚焦的位置只有一個,其余都處于離焦狀態(tài),為使被測表面上任一點都能在透鏡上清晰成像,提高系統(tǒng)檢測精度,系統(tǒng)需要滿足Scheimpflug定律,也稱沙姆定律,該定律物理意義上描述為激光軸線光束、成像透鏡主平面、光敏單元三者延長線必須相交與一點[3]。為此,光敏單元相對于透鏡必須有一個夾角。該定律的證明如下:
圖1 線結構光傳感器原理
圖2 恒聚焦光路圖
圖2中,α是激光軸線與透鏡光軸的夾角;β是感光元件平面與光軸的夾角;物點A在感光面上的像點是A'點,a是該點的物距,b是該點像距;同理B點。ρ是BB'與光軸之間的夾角;f是透鏡的焦距。已知透鏡成像公式:
只要滿足公式(1)的都可以在光敏元件上清晰成像,為此當物點從A移到B點時,也要滿足清晰成像公式,即:
聯(lián)立式(1)~式(3)得:
式(4)是沙姆定律的數(shù)學表達式。即為保證成像系統(tǒng)滿足Scheimpflug定律,透鏡與光敏單元之間的夾角必須存在。由此滿足恒聚焦光路條件的攝像機系統(tǒng)中鏡頭是傾斜的。
傾斜鏡頭攝像機模型是建立在攝像機線性模型和非線性模型基礎之上的。
攝像機的線性模型是一種理想的模型,又可稱作針孔模型[4]。是在透視投影基礎上加上剛體變換(剛體的旋轉與平移)得到的攝像機模型[5]。為了了解線性模型,先要了解幾個常用坐標系之間的變換關系,建立的坐標系如圖3所示。
圖3 攝像機常用坐標系
攝像機常用坐標系主要有圖像坐標系O0uv,成像平面坐標系O1xy,攝像機坐標系OcXcYcZc以及世界坐標系OwXwYwZw,其中圖像坐標系建立在圖像平面內,原點在圖像的左上角,以像素單位為量綱。成像平面坐標系建立在CMOS平面內,原點建立在光軸與CMOS平面的交點位置上,一般為中心,成像平面坐標屬于物理坐標系。攝像機坐標系建立在攝像機上,坐標原點OC與透鏡中心重合,ZC軸與光軸重合,XC和YC軸分別與成像平面坐標系的x軸和y軸平行,如圖3所示,對于理想的針孔模型,要求物點P、光心OC和像點p這三點須在同一直線上[6]。
為了建立各個坐標系之間的關系,假設成像坐標系原點O1在圖像坐標系中的坐標為(u0,v0),每個像素在x方向的實際物理尺寸設為SX,在y方向的物理尺寸記為Sy,量綱為mm,鏡頭焦距設為f,在圖像坐標系中取點(u,v),可得圖像坐標系與成像坐標系之間的變化關系式:
用齊次坐標表示為:
成像平面坐標系中的點(x,y)與攝像機坐標系中的點(Xc,Yc,Zc)之間的關系為:
同理寫成齊次坐標形式為:
攝像機坐標系中的點(Xc,Yc,Zc)與世界坐標系中的點(Xw,Yw,Zw)變換屬于空間坐標坐標變換范疇,變換關系為:
式(3)~式(9)中,R是旋轉矩陣,表示相機坐標系在世界坐標系中的方向矢量,T為三維平移向量,T=[Tx,Ty,Tz]T。
綜上,從圖像坐標系到世界坐標系之間的齊次變換為:
式(10)中,αx=f/Sx,αy=f/Sy,αx、αy、u0、v0只與攝像機內部參數(shù)有關,因此M1稱為攝像機內部參數(shù)矩陣,而M2表征攝像機坐標系與世界坐標系的齊次變換,稱之為攝像機外部參數(shù),M=M1.M2,它表示了圖像坐標系中的點與世界坐標系中點之間的關系,稱之為投影矩陣。
采用理想的針孔模型,由于每次只有少量的光線通過針孔,這導致實際情況下曝光不足,圖像生成很慢,攝像機為了快速生成圖像,必須采用大面積而且彎曲的透鏡,讓足夠的光線能夠聚焦到投影點上,迅速生成圖像,而這樣做的代價就是引入了透鏡的畸變[7]。透鏡的畸變主要包含兩方面,徑向畸變與切向畸變。
徑向畸變主要來自于透鏡的形狀,是由制造誤差產生的。它的效應主要有兩種:枕形失真和桶形失真,在CMOS中心(光學中心)的畸變?yōu)?,隨著向邊緣移動,畸變越來越嚴重。切向畸變來自于透鏡安裝的整個過程,因為安裝時很難保證透鏡和成像平面平行。
本文通過引入三個徑向畸變參數(shù)k1,k2,k3和兩個切向畸變參數(shù)p1,p2描述透鏡畸變模型:
式(11)中(x,y)為實際成像坐標系中的點,(xcorrected,ycorrected)為校正之后的新位置。
為了使光學系統(tǒng)滿足沙姆定律,透鏡與光敏元件必須成一個夾角,因此要重新建立符合本系統(tǒng)的攝像機數(shù)學模型。
圖4 傾斜透鏡模型
如圖4所示,為了描述CMOS相對于透鏡傾斜的位置,在CMOS平面建立空間坐標系OXYZ,并引入兩個旋轉角度tilt和rot。tilt描述光軸相對于CMOS平面法線的傾斜角度,取值范圍為[0,90°],在圖中表示為YcOcZc繞x軸旋轉角度的大小,也可以有其他的表示方式,這里只是描述角度大小的度量值。rot描述光軸傾斜的方向,取值范圍為[0°,360°],在圖中表示為ZC軸在XOY平面內的投影相對于X軸的旋轉角度。從圖像坐標系變換到世界坐標系的過程描述如下:
Step1:設在圖像坐標系下一點的坐標為qi=(u,v)T,這時圖像坐標系是建立在傾斜的CMOS面上的,映射到成像平面坐標系下的點為qt=(xt,yt)T,兩者之間的變化關系如式(6)所示。
Step2:為了使用攝像機的線性模型求得最終世界坐標系下的坐標,必須將傾斜的成像平面上的點qt變換到與透鏡平行的虛擬成像平面上的點去,它們之間的變換關系由透視變換(也稱投影映射)描述:
Step4:由理想的無失真的虛擬成像平面上的點qc變換到攝像坐標系下的點pc=(Xc,Yc,Zc)T,如式(8)所示。
Step5:由攝像坐標系下的點pc變換到世界坐標系下的點pw=(Xw,YwZw)T,如式(9)所示。
上述模型的建立,本文主要參考了HALCON機器視覺軟件中對calibrate_cameras算子描述的英文文檔,該模型為area_scan_tilt_polynomial(面掃描的多項式模型),有描述不當?shù)牡胤娇梢圆榭丛摹?/p>
傾斜鏡頭的攝像機模型的內部參數(shù)總共包含14個未知量:[f,k1,k2,k3,p1,p2,tilt,rot,Sx,Sy,Cx,Cy,ImageWidth,ImageHeight],其中Sx,Sy為像元尺寸,Cx,Cy是圖像中心的坐標,也即(u0,v0)。標定的最終目的就是求出這14個未知量。
本文使用標定輔助工具是德國MVTec公司開發(fā)的HALCON圖像處理軟件,其中有專門針對攝像機標定集成的一個標定助手,本文傾斜鏡頭模型的建立正是通過學習HALCON標定助手中area_scan_tilt_polynomial標定模型得到的。標定實驗的硬件示意圖如圖5所示。
依據本系統(tǒng)的視野,選擇HALCON30mm的標定板,結構如圖6中所示,是一種包含黑色圓點的標定板。在系統(tǒng)滿足了沙姆定律后,攝像機只能在激光所在的光平面附近清晰成像,在高度測量的方向上,反應在圖像上就是一條清晰的光帶。如圖6所示,經觀察,清晰成像區(qū)域大概在光平面前后3mm的范圍內,因此使用標定板標定時,標定板只能放置在光平面附近,且前后改變姿態(tài)的位置不能超過3mm,否則無法清晰成像,提取不到標記點。
對于傾斜鏡頭模型的相機標定,HALCON也有一些特殊的說明:
圖5 標定實驗的硬件結構圖
圖6 清晰光帶
圖7 標定圖片
對于傾斜透鏡,透鏡失真越大,標定出的傾斜角度越準確。對于具有小失真的鏡頭,無法穩(wěn)定地標定出傾斜角度,因此,標定出的角度可能與初始給定的角度顯著不同,如果是這種情況,就要檢查標定誤差,如果誤差小,則所得到的相機參數(shù)可用于精確測量。area_scan_tilt_polynomial模型的切向失真參數(shù)p1和p2在一定程度上能夠對傾斜透鏡進行建模。相反,傾斜參數(shù)能夠在一定程度對p1和p2建模。因此,當使用多項式模型時,可能發(fā)生一些傾斜參數(shù)由p1和p2建模,另一些傾斜參數(shù)由tilt和rot建模。在這種情況下,所產生的傾斜參數(shù)可能會偏離初始設置的標準值。同樣地,如果誤差很小,優(yōu)化得到的相機參數(shù)與實際參數(shù)一致性地描述了圖像的幾何成像,是可以使用的。如果使用area_scan_tilt_polynomial模型獲取傾斜參數(shù)的實際值很重要,則應將參數(shù)p1和p2排除,即忽略切向畸變。
表1 HALCON標定相機結果
【】【】
根據上述要求,使用HALCON標定助手,拍攝如圖7所示圖片,并在標定過程中不勾選切向畸變的參數(shù),以最后一幅圖像為參考位姿,得到相機的標定結果如表1所示。標定的平均誤差約為0.357368個像素。本系統(tǒng)硬件設計的光敏元件與透鏡之間的理論夾角為6°,標定的結果為7.61591°,是相對接近的,而且標定的平均誤差較小,說明標定結果可以使用。
至此,對于包含傾斜鏡頭的攝像機標定也有了一般的方法,有助于Scheimpflug定律在激光三角測量系統(tǒng)中的應用,有助于提高系統(tǒng)的精度。
激光三角測量法的應用雖然較多,但是沙姆定律的應用卻不多,主要一部分原因是傾斜鏡頭的標定還沒有流程化的步驟,鮮有學者對傾斜鏡頭的標定做深入的研究,本文發(fā)現(xiàn)了HALCON機器視覺軟件可用來標定傾斜鏡頭,并對包含的模型進行了深入的學習,才建立了本文傾斜鏡頭的攝像機數(shù)學模型,傾斜鏡頭的攝像機標定也因此有了流程化的步驟,這對未來沙姆定律在三維測量系統(tǒng)中的應用有重要作用。
[1]周富強,張廣軍.表面視覺傳感器模型參數(shù)的簡易標定方法[J].機械工程學報,2005.41(3):175-179.
[2]陳新禹,馬孜,陳天飛.線結構光傳感器模型的簡易標定[J].光學精密工程,2012.20(11):2345-2352.
[3]唐朝偉,梁錫昌,鄒昌平.三維曲面激光精密測量技術[J].計量學報,1994.15(2):65-69.
[4]吳文琪,孫增圻.機器視覺中的攝像機定標方法綜述[J].計算機應用研究,2004(2):4-6.
[5]譚曉波.攝像機標定及相關技術研究[D].長沙:國防科技大學,2004.
[6]張鋮偉,王彪,徐貴力.攝像機標定方法研究[J].計算機技術與發(fā)展,2010.20(11):175-176.
[7]于仕琪,劉瑞禎.學習OpenCV中文版[M].北京:清華大學出版社,2009.