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