劉 堅 王媛媛
湖南大學汽車車身先進設計制造國家重點實驗室,長沙,410082
由于相機成像模型自身的局限性會使圖像產(chǎn)生“近大遠小”的透視畸變,在對物體進行幾何尺寸和空間位置的視覺測量時嚴重影響測量精度,因此校正圖像的透視畸變對于提高視覺測量精度至關(guān)重要。目前校正圖像“近大遠小”透視畸變的方法主要分為兩類:通過得到物體的理想正視圖圖像的校正方法和透視誤差補償?shù)男U椒āF渲型ㄟ^得到物體的理想正視圖圖像的校正方法是使物體目標平面上的點與相機平面的距離相等來實現(xiàn)的[1],主要有角度檢測法、控制點變換法和射影幾何方法[2]三類,這些方法都基于旋轉(zhuǎn)角度檢測和直線檢測技術(shù),算法比較復雜[3]且應用范圍有限,僅對平面物體的圖像具有較好的校正效果,對于曲面物體其理想正視圖中物體上的點與相機平面的距離并不相等,仍然存在“近大遠小”的透視畸變,因此無法應用到曲面物體的圖像透視畸變校正中。透視誤差補償?shù)男U椒╗4]直接對待測物體的像在標定平面逆映射的等效物理尺寸進行誤差補償,但需要已知待測物體與標定平面的準確距離。
在機械制造領(lǐng)域,圓形或球形特征的物體十分常見,對于這類物體,一般需采用雙目視覺方法,借助多個視圖獲取三維實體的參數(shù)。當物體的特征模型已知時,通過物體的單視圖也能檢測物體的三維位置和姿態(tài),其中最常見的是利用物體與其投影圖像之間存在的特定的點、線對應關(guān)系求解其三維位置[5]。本文的檢測目標是實現(xiàn)對一帶有圓形特征的球體的空間姿態(tài)測量,環(huán)繞該球體球面大圓處有一條凹槽,該凹槽構(gòu)成了一個空間圓環(huán),而空間圓在攝像機像平面上所成的像是橢圓形[6],因此該凹槽在像平面上所成的像是半個橢圓,若球體及凹槽的形狀參數(shù)是已知的,則可以通過球體的單視圖圖像中橢圓的參數(shù)檢測其當前姿態(tài)[7]。但是由于透視畸變的存在,球體凹槽上的點離相機平面的距離均不相同,導致其在圖像平面的橢圓的投影中心誤差[8]、長軸誤差和短軸誤差很大,大大降低球體姿態(tài)的檢測精度。
針對上述問題,本文基于逆透視畸變[9-10]和攝像機標定技術(shù)[11-12]提出了一種面向球姿態(tài)檢測的圖像透視畸變校正方法。
理想的相機成像模型為平面透視投影模型,即小孔成像模型,該模型是目前攝像機標定和機器視覺中應用最廣泛的模型[13]。其成像原理如圖1所示,其中坐標系OwXwYwZw為世界坐標系,用來表示被拍攝物體和相機在空間中的位置;坐標系OcXcYcZc為相機坐標系,Oc為相機的光心,Zc坐標軸與相機的光軸重合;坐標系Oixy為圖像坐標系,原點Oi為光軸OcZc與圖像平面的交點,稱為圖像主點,x軸平行于Xc軸,y軸平行于Yc軸;OtUV為像素坐標系,以像素為單位。
空間中任意一點M(xw,yw,zw),在相機坐標系中的坐標可以通過旋轉(zhuǎn)矩陣R和平移矩陣T變換得到,即世界坐標系和相機坐標系之間的變換關(guān)系為
(1)
建立相機坐標系和圖像坐標系之間的變換關(guān)系:
(2)
其中,K為相機的內(nèi)參數(shù)矩陣;(u0,v0)為圖像主點的像素坐標;f為相機透鏡的焦距;dx、dy分別為x軸、y軸方向單位像素的物理大小。內(nèi)參數(shù)矩陣K、旋轉(zhuǎn)矩陣R、平移矩陣T都可通過相機標定獲得。
但這種相機成像模型存在不可避免的缺點,在同一張圖像中,物體“近大遠小”的現(xiàn)象造成的畸變直接影響視覺測量精度,圖1中線段MN和線段PQ實際長度相等,且平行于圖像平面,根據(jù)透視投影原理可得,物距較小的線段PQ在相平面上的投影大小明顯大于物距較大的線段MN的投影,這就是本文中主要研究的透視畸變,而這種透視畸變在光心附近較小,遠離光心處逐漸變大。
圖1 相機成像模型Fig.1 Camera imaging model
圖2 待檢測球體模型Fig.2 Tested sphere model
逆透視變換為上述透視變換的逆過程,是為了找到圖像上點的像素坐標與其世界坐標之間的對應關(guān)系,從而可以恢復空間中某一平面的部分信息。
由式(1)、式(2)可知,若已知K、R、T的值,可由物體上的點的空間坐標(xw,yw,zw)得到圖像上對應的像素坐標,但由現(xiàn)實三維空間的點轉(zhuǎn)換為二維圖像坐標后,丟失了深度信息,若能夠已知物體上點的三維坐標中的某一維,則可完成圖像上點的像素坐標(u,v)到空間三維坐標(xw,yw,zw)的轉(zhuǎn)換。因此可將要恢復的空間平面的z坐標均設為0,從而得到空間平面x、y坐標信息,這就是逆透視變換的過程[14]。
由此可知P平面上點的世界坐標(xwP,ywP,0)與像素坐標(uP,vP)之間的關(guān)系為
(3)
(4)
由于球心在P平面上,由上式可得球心的世界坐標。
Qi平面上點的世界坐標(xwQ,ywQ,zwQ)與像素坐標(uQ,vQ)之間的關(guān)系為:
(5)
(6)
其中(a,b,c)是由式(4)計算得到的球心的世界坐標,zwQ的值等于di,OR為球體半徑。
實驗方案如圖3所示,旋轉(zhuǎn)臺和旋轉(zhuǎn)擺角器連接共同完成繞Z軸方向和繞Y軸方向的轉(zhuǎn)動,將球體放置于旋轉(zhuǎn)臺中心,使球心與擺角器的擺角中心重合,且球心位于相機光軸附近,相機和旋轉(zhuǎn)臺的初始位置均與水平面平行,光源采用平行背光源和兩個條形光源,保證球體外輪廓和球面細節(jié)清晰,通過光源控制器調(diào)節(jié)光源的亮度,為避免環(huán)境光的干擾,實驗在暗箱中進行。實驗開始后,相機和光源的位置均保持不變。
圖3 實驗模型Fig.3 Experimental model
完成不同角度的球體圖像采集后,將球體從旋轉(zhuǎn)臺上取下,并將擺角器的角度恢復到初始位置,相機焦距和位置均不改變,然后用精密標定板對相機進行標定實驗,并對過球心且垂直于相機光軸的平面位置進行標定。
圖4為依據(jù)實驗方案搭建的實驗平臺,實驗裝置包括精密光學平臺、型號為piA2400-17gc的Basler彩色CCD相機、GCM-730402M型旋轉(zhuǎn)擺角器、GCM-1101M型旋轉(zhuǎn)臺、OPT-FAT50型平行背光源、OPT-LXT402221型條形光源、OPT-DPA1024E-4型光源控制器、Win7 64位系統(tǒng)工控機、帶有水平儀的相機支架、棋盤格邊長為5 mm且圖案陣列為12×9的標定板,以及3D打印的球體,該球體打印精度達到0.1 mm,球體直徑60 mm,在球體最大圓處有一個深度為1 mm、寬度為0.5 mm的凹槽,球下方為定位結(jié)構(gòu),保證球心位于轉(zhuǎn)臺中心且凹槽所在的平面初始位置垂直于旋轉(zhuǎn)平臺。
(1)利用SolidWorks設計球體模型,并將模型導入3D打印機中,調(diào)節(jié)打印參數(shù),打印出符合精度要求的球體。
(2)調(diào)整實驗平臺,首先利用相機支架上與相機相連接的水平儀將相機調(diào)平,使相機平行于水平面,然后將旋轉(zhuǎn)臺和擺角器均調(diào)至0°,將球體放置于旋轉(zhuǎn)臺并固定,使球心與擺角器的擺角中心重合,且球心位于相機光軸附近,此時α和β都等于0°。
(3)采集球體不同α和β的圖像,在拍照過程中保持光源不變,相機焦距不變,通過調(diào)整旋轉(zhuǎn)臺和擺角器的角度獲取球體不同姿態(tài)。
(4)完成球體圖像采集后,取下球體,進行標定實驗。將旋轉(zhuǎn)臺和擺角器均調(diào)至0°,然后將標定板放置于過球心且垂直于相機光軸的平面位置,對標定板進行拍照,以便得到相機相對P平面的外部參數(shù);最后調(diào)整標定板的姿態(tài),得到15~20張不同角度的標定板的圖像,完成標定實驗。
本文算法流程如圖5所示,首先由采集的標定板不同角度的圖像計算得到相機的內(nèi)部參數(shù)、外部參數(shù)和畸變系數(shù),然后對采集的球在不同姿態(tài)的每張圖像進行如下操作:
(1)根據(jù)求得的相機畸變系數(shù)對采集的球的圖像進行幾何畸變校正。
(2)利用圖像預處理、邊緣提取和Hough變換[15]等方法擬合球的外圓并求得球心的像素坐標,再根據(jù)相機內(nèi)部參數(shù)和相對P平面的外部參數(shù)計算得到球心的世界坐標。
(3)提取球面上凹槽所形成的弧線,為了提高透視畸變校正算法的效率,選取弧線上部分像素點進行透視畸變校正,得到其校正后的像素坐標。
(4)利用透視畸變校正后的像素點進行橢圓擬合,得到α、β的值。
圖5 本文算法流程圖Fig.5 Flow chart of the method
文獻[4]中通過建立透視投影誤差模型對齒輪廓圓的“近大遠小”透視畸變進行了校正,其透視投影誤差的非線性數(shù)學模型如下:
(7)
其中,L0為待測物體在標定平面內(nèi)的實際長度;S0為標定平面到相機鏡頭的工作距離;ΔS為待測物體離標定平面的距離;f為相機的焦距。
應用該算法的流程如下:首先對原始圖像中提取的球面凹槽形成的弧線進行橢圓擬合,計算出短軸逆映射到標定平面后的等效長度;然后根據(jù)逆透視變換計算得到球面弧線上與短軸相交的點離標定平面的距離,以此代表短軸離標定平面的距離;最后應用式(7)中的誤差補償模型對橢圓短軸進行誤差補償。由于該算法是直接對橢圓短軸長度進行誤差補償,因此只能校正α,而β的值與校正前相等。
圖6 采集的原始圖像Fig.6 Collected original image
圖7 弧線校正的圖像Fig.7 Arc correction image
圖8 未校正和校正后橢圓擬合結(jié)果圖Fig.8 Pre-correction and post-correction ellipse fitting results
圖6為α=40°、β=-1°時采集的原始圖像。圖7為應用本文算法對弧線進行透視畸變校正的圖像,圖中弧線是直接提取的凹槽所形成的弧線,標記點是對弧線上的部分像素點進行透視畸變校正后的像素點位置,圖8所示為應用本文算法前后對弧線進行橢圓擬合的結(jié)果,圖中外側(cè)橢圓為校正前的擬合結(jié)果,內(nèi)側(cè)橢圓為校正后的擬合結(jié)果,從圖中可以看出校正后的橢圓短軸長度明顯小于校正前的橢圓短軸長度,正是由于球體的外輪廓圓所在的平面距離相機較遠,凹槽形成的弧線距離相機較近,將弧線上的點全部平移到外輪廓圓所在平面后再次透視投影,短軸長度會變短。
表1為β理論值為-1°、α理論值為5°~50°時未進行透視畸變校正、應用本文算法和文獻[4]的算法進行透視畸變校正計算得到的α和β值的對比。從表中可以看出,在未進行透視畸變校正時計算得到的α誤差很大,最小誤差為1.499°,最大誤差達到了9.210°,平均誤差為5.912°,且誤差隨著其角度的增大也逐漸增大,這正是由于“近大遠小”透視畸變造成的,位于光軸附近的圖像透視畸變較小,而離光軸較遠的圖像透視畸變較大,實驗數(shù)據(jù)驗證了透視畸變這一特點。未進行透視畸變校正時β的最小誤差為0°,最大誤差為4.642°,平均誤差為1.019°,由此可見
表1 透視畸變校正前和透視畸變校正后計算的角度(β=-1°)Tab.1 Angle before and after perspective distortion correction (β=-1°)(°)
透視畸變對α的影響最大,而對β的影響較小,這是由于β是由橢圓長軸的傾角決定,而橢圓長軸兩端始終在同一平面上。
圖9為根據(jù)表1數(shù)據(jù)得到的應用本文算法校正后α的絕對誤差趨勢圖,平均誤差為0.563°,與校正之前相比精度有了很大提升,并且誤差值隨α的變化隨機波動,但當α=50°時,誤差明顯較大,這是由于相機景深是一定的,此時橢圓弧線距離初始對焦的位置遠大于景深,導致獲取的圖像模糊,弧線位置提取不準確,使得誤差明顯增大。應用本文算法校正后β的平均誤差為0.372°,精度有了明顯提高。
圖9 本文算法校正后α的絕對誤差趨勢圖(β=-1°)Fig.9 The absolute error trend of alpha angle after correction by the method (β=-1°)
應用文獻[4]的算法校正后α的平均誤差為1.143°,與校正前相比精度有很大提升,但與本文算法相比,α理論值為10°~50°時其校正精度均低于本文算法的校正精度,只有在α理論值為5°時其精度略高于本文算法的校正精度,這是由于應用文獻[4]的算法時,誤差補償值主要由短軸在標定平面的等效長度及短軸到標定平面的距離決定,因此由球的圖像擬合的橢圓短軸的精度和β的精度嚴重影響其最終的校正精度,而在α較小時,透視畸變也較小,由球的圖像擬合得到的橢圓短軸長度和β誤差都很小,導致α較小時其精度較高。而當α較大時,擬合的橢圓誤差也較大,其校正精度較低。由于該算法只能對視覺測量中待測物體的長度進行透視畸變校正,因此并不能對β進行校正,適用范圍較小。
為了進一步驗證算法的穩(wěn)定性和有效性,分別計算了不同β值時的球的不同姿態(tài)。表2、表3、表4分別對應β理論值為1°、5°、-5°,α理論值為5°~50°時的數(shù)據(jù)。從表中可以看出,應用本文算法校正后α的平均誤差均在0.6°以下,其精度高于應用文獻[4]算法校正后的精度,證明了本文算法的先進性。圖10、圖11、圖12分別為根據(jù)表2、表3、表4數(shù)據(jù)得到的應用本文算法校正后α的絕對誤差趨勢圖。
應用本文算法校正后的角度檢測誤差主要來源是由實驗裝置帶來的系統(tǒng)誤差和圖像處理過程中弧線提取不準確帶來的隨機誤差。光學平臺表面的加工誤差和安裝誤差可能導致其平面并不水平,相機和實驗球體安裝過程中的誤差可能導致初始位置球心、擺角器的擺角中心和相機光軸沒有在同一直線上等,這些由于實驗裝置制造和安裝過程中引入的誤差都是系統(tǒng)誤差;球體最大圓處的圓形凹槽寬度為0.5 mm,深度為1 mm,采集的圖像中凹槽所形成的弧線具有一定的寬度,因此在圖像處理過程中提取弧線的中心位置的像素點時會帶來隨機誤差。
表2 透視畸變校正前和透視畸變校正后計算的角度 (β=1°)Tab.2 Angle before and after perspective distortion correction (β=1°)(°)
表3 透視畸變校正前和透視畸變校正后計算的角度(β=5°)Tab.3 Angle before and after perspective distortion correction(β=5°)(°)
表4 透視畸變校正前和透視畸變校正后計算的角度(β=-5°)Tab.4 Angle before and after perspective distortion correction (β=-5°)(°)
圖10 本文算法校正后α的絕對誤差趨勢圖(β=1°)Fig.10 The absolute error trend of alpha angle after correction by the method (β=1°)
圖11 本文算法校正后α的絕對誤差趨勢圖(β=5°)Fig.11 The absolute error trend of alpha angle after correction by the method (β=5°)
圖12 本文算法校正后α的絕對誤差趨勢圖(β=-5°)Fig.12 The absolute error trend of alpha angle after correction by the method (β=-5°)
(1)本文基于逆透視變換理論提出了一種面向球姿態(tài)檢測的圖像透視畸變校正方法并從理論上分析了其可行性,詳細介紹了圖像透視畸變校正方法的步驟;與現(xiàn)有的透視畸變校正算法進行對比,本文提出的圖像透視畸變校正方法在球姿態(tài)檢測中對α和β的測量精度更高,能夠滿足工業(yè)生產(chǎn)中對球姿態(tài)的測量需求。
(2)本文提出的圖像透視畸變校正方法應用范圍廣泛,可以應用在具有圓形特征或球形特征物體的視覺檢測中,為視覺測量領(lǐng)域提供了一種更高精度的圖像透視畸變校正方法。