孫 雯, 洪留榮, 葛方振
(淮北師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 安徽 淮北 235000)
一種改進(jìn)的透視變換算法
孫 雯, 洪留榮, 葛方振
(淮北師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 安徽 淮北 235000)
針對(duì)圖像的透視畸變問(wèn)題,提出一種新的直線檢測(cè)算法和改進(jìn)的透視變換方法相結(jié)合的方法,實(shí)現(xiàn)對(duì)畸變圖像的校正。通過(guò)新的直線檢測(cè)算法—TSAP,得到邊界直線和頂點(diǎn)位置,從而實(shí)現(xiàn)直線探測(cè)。使用改進(jìn)的控制點(diǎn)策略確定控制點(diǎn),利用透視變換公式,實(shí)現(xiàn)對(duì)畸變圖像的校正和歸一化。MATLAB仿真實(shí)驗(yàn)結(jié)果表明,該方法計(jì)算量小,精度高,容錯(cuò)性高。
透視變換;直線檢測(cè);太陽(yáng)能電池板;切空間
圖像在獲取的過(guò)程中,由于受到鏡頭精度,成像系統(tǒng)的非線性,拍攝角度等因素的影響,會(huì)發(fā)生不同程度的幾何畸變。在進(jìn)行拍攝過(guò)程中,攝像機(jī)和物體通常存在一定夾角,導(dǎo)致拍攝圖像存在一定的透視畸變,但在實(shí)際應(yīng)用中,通常需要得到的是圖像的正視圖圖像,因此需要對(duì)畸變進(jìn)行校正。圖像的校正也越來(lái)越受到關(guān)注。
常用的圖像校正方法主要有控制點(diǎn)變換方法、角度檢測(cè)法及透視變換方法[1-3]。無(wú)論哪種校正算法,首先都要對(duì)畸變圖像進(jìn)行直線探測(cè)。控制點(diǎn)變換方法針對(duì)圖像本身,依據(jù)控制點(diǎn)的對(duì)應(yīng)關(guān)系,使用線性差值方法完成對(duì)圖像的校正,但是控制點(diǎn)校正算法的壓縮拉伸恢復(fù)能力較弱,當(dāng)采集平面與圖像平面存在偏差時(shí),校正效果較差[4]220-226;角度檢測(cè)法依據(jù)檢測(cè)到的直線的角度,進(jìn)行旋轉(zhuǎn)校正,忽視了圖像的透視畸變,存在局限性;透視變換方法根據(jù)攝像機(jī)的成像原理,對(duì)圖像的透視畸變進(jìn)行校正,效果較好,但是透視變換首先需要對(duì)控制點(diǎn)進(jìn)行精確地探測(cè),常用的Hough變換,計(jì)算量大,實(shí)時(shí)性較差,且檢測(cè)精度不高[5-6]。
本文提出了一種改進(jìn)的圖像校正算法,通過(guò)一種新的直線探測(cè)方法和透視變換相結(jié)合實(shí)現(xiàn)圖像校正。首先將邊緣化后的原始圖像進(jìn)行切空間表示[7],對(duì)切空間圖像進(jìn)行角度方向投影,得到原始圖像直線部分的點(diǎn)的累加峰值,通過(guò)峰值確定圖像中的直線部分,從而實(shí)現(xiàn)直線探測(cè)。針對(duì)任何圖像,若可以探測(cè)到四條相交直線段,得到相交直線的交點(diǎn)作為變換點(diǎn),并定義這四個(gè)交點(diǎn)對(duì)應(yīng)的正視圖中的坐標(biāo)。四對(duì)變換點(diǎn)通過(guò)透視變換公式,得到變換參數(shù),通過(guò)變換參數(shù)對(duì)原始圖像進(jìn)行坐標(biāo)變換,即可實(shí)現(xiàn)對(duì)透視畸變圖像到理想正視圖的校正。
1.1 透視投影的原理
透視投影,就是從視圖空間到目標(biāo)空間的帶透視性質(zhì)的坐標(biāo)變換(見(jiàn)圖1)。
圖1 透視投影的標(biāo)準(zhǔn)模型
可以認(rèn)為觀察者以E點(diǎn)為視點(diǎn),P′平面為視平面看向物體,P′平面為近截面,P為遠(yuǎn)截面,P與P′之間的棱臺(tái)區(qū)域?yàn)榭梢晠^(qū)域。觀察者的視線穿過(guò)P′平面投影到P平面,形成物體的透視圖。
1.2 透視變換
以點(diǎn)E為視點(diǎn),看向P′平面上的矩形,視線經(jīng)過(guò)P′平面到達(dá)P平面時(shí),由于視點(diǎn)與P′平面有一定的夾角,矩形發(fā)生透視畸變,投影成為新的矩形,如圖2所示。
圖2 透視變化
以矩形區(qū)域的四個(gè)角點(diǎn)為例,經(jīng)過(guò)透視變換后A′->A,B′->B,C->C,D′->D,矩形的形狀發(fā)生改變。透視投影實(shí)質(zhì)上就是P′平面上的每一點(diǎn)在視角的作用下投影到P平面的過(guò)程。若將P平面定義為物體的正視圖平面,那么透視變換就是透視投影平面上的每一個(gè)像素點(diǎn)變換到正視圖上對(duì)應(yīng)的像素點(diǎn)的過(guò)程。為了實(shí)現(xiàn)透視畸變的校正,只需要找到P平面上的點(diǎn)和物體正視圖上對(duì)應(yīng)點(diǎn)的變換公式。
二維圖像透視變化公式[8-9]可以表示為
(1)
(2)
式中(x,y)是投影圖像的坐標(biāo),(u,v)是正視圖上的坐標(biāo)。a,b,c,d,e,f,g,h是畸變參數(shù)。
2.3 改進(jìn)的控制點(diǎn)的選擇
由式(1)、式(2)可以推出,只要得到四對(duì)透視變換前后對(duì)應(yīng)點(diǎn)的坐標(biāo),就可以解出畸變參數(shù),從而實(shí)現(xiàn)透視變換[10-11]。定義這四對(duì)變換點(diǎn)為控制點(diǎn),所以控制點(diǎn)的確定,對(duì)實(shí)現(xiàn)透視變換有很重要的作用。對(duì)于圖2所示的矩形進(jìn)行透視變換,選取P平面上的畸變矩形作為原始圖像。
在進(jìn)行變換點(diǎn)選擇時(shí),使用“邊廓點(diǎn)”方法定義矩形的四個(gè)角點(diǎn)為控制點(diǎn)。該方法保證控制點(diǎn)分布均勻,且將要進(jìn)行變換的區(qū)域控制在一個(gè)規(guī)則的坐標(biāo)范圍內(nèi)。此時(shí),控制點(diǎn)的點(diǎn)位誤差可以控制到最小。
此時(shí)還需確定控制點(diǎn)對(duì)應(yīng)的正視圖中的坐標(biāo)位置。對(duì)應(yīng)不同的正視圖控制點(diǎn)坐標(biāo),其校正結(jié)果也不同。在實(shí)際應(yīng)用中,希望校正后的圖像能度量物體的實(shí)際大小且與物體實(shí)際大小的誤差盡可能的小。文獻(xiàn)[12]使用的方法是:使用物體的實(shí)際尺寸轉(zhuǎn)換成相應(yīng)的坐標(biāo)值。這樣導(dǎo)致在校正過(guò)程中,校正之后的圖像邊緣不連續(xù),此時(shí),一并將該坐標(biāo)的右,下,右下角3個(gè)像素的灰度值設(shè)成和該點(diǎn)相同的值,以使圖片看起來(lái)是連續(xù)的。文獻(xiàn)[4]226使用灰度級(jí)插值法來(lái)保證圖像的連續(xù)性和平滑性。不論使用哪種方法,都未能保證正視圖圖像能精準(zhǔn)度量物體的實(shí)際尺寸,且計(jì)算量都大幅度提升。
為了較少計(jì)算量,并提升正視圖圖像與物體實(shí)際尺寸的匹配度,本文使用三個(gè)像素來(lái)度量實(shí)際物體的一個(gè)點(diǎn),將正視圖對(duì)應(yīng)控制點(diǎn)的坐標(biāo)設(shè)置成實(shí)際物體的3倍大小。經(jīng)過(guò)試驗(yàn)分析,改進(jìn)的控制點(diǎn),計(jì)算簡(jiǎn)單,運(yùn)算量較低,且使用改進(jìn)的控制點(diǎn)進(jìn)行圖像校正時(shí),能夠保證校正后的正視圖大小與物體實(shí)際尺寸的匹配度較高,且誤差很小。
由透視變換理論分析可知,影響透視變換的一個(gè)主要因素就是控制點(diǎn)的探測(cè)。對(duì)于一個(gè)矩形圖像來(lái)說(shuō),控制點(diǎn)的選擇通常為矩形的四個(gè)角點(diǎn)。而角點(diǎn)的探測(cè)則需要通過(guò)矩形的邊緣直線進(jìn)行解析。因此問(wèn)題轉(zhuǎn)化為對(duì)矩形中直線的探測(cè)問(wèn)題,只要確定了矩形中的直線,通過(guò)直線解析式,可以得到相交直線的角點(diǎn),也就是控制點(diǎn)。
本文使用的TSAP算法,首先將采集到的原始圖像進(jìn)行二值邊緣化,然后進(jìn)行切空間表示,對(duì)切空間圖像進(jìn)行角度方向投影,得到原始圖像中直線部分的點(diǎn)的累加值,通過(guò)峰值確定圖像中的直線部分,從而實(shí)現(xiàn)直線探測(cè)。
2.1 切空間表示
假設(shè)存在一條曲線l={li},θi=∠(li-1li,lili+1), di為li與li+1的距離, i={0,…,n }。當(dāng)li+1在li-1li的右側(cè)時(shí),令θi>0,否則θi<0(見(jiàn)圖3)。
(3)
將直角坐標(biāo)系中的曲線轉(zhuǎn)化到由Ti2T(i+1)1,T(i+1)1T(i+1)2表示的切空間內(nèi),轉(zhuǎn)化規(guī)則如下:
(1) T02=(0,0)
其中 i∈{1,……,n}
(3) Ti2=(T(i1))*x,T(i1)*y+θi),其中,i∈{1,……,n-1} (如果l是一個(gè)封閉曲線,則l0=ln);
值得注意的是當(dāng)是一條沿順時(shí)針?lè)较虻姆忾]曲線時(shí),Tn1的坐標(biāo)為(1,2π)。
圖3 切空間示意圖
由切空間轉(zhuǎn)化規(guī)則,可以得到性質(zhì)如下:
性質(zhì)1:平面上一條直線,由于其理論θi恒等于0,在切空間內(nèi)是一條水平直線,如圖4a所示。
性質(zhì)2:由一條曲線連接的兩條直線,在連接點(diǎn)處其θi發(fā)生突變,對(duì)于曲線部分,其θi連續(xù)隨機(jī)變化,在切空間內(nèi)會(huì)形成兩條水平線,水平線間以曲線連接,如圖4b所示。
性質(zhì)3:如果一條直線中間被曲線分開(kāi),則曲線端點(diǎn)處的θi發(fā)生突變,曲線內(nèi)部,其θi連續(xù)隨機(jī)變化,則在切空間上形成一條水平線,且被曲線分開(kāi),如圖4c所示。
圖4 各類(lèi)線段及其切空間表示
由圖4可以看到直線對(duì)應(yīng)的切空間表示并不是一個(gè)直線,而是以Δθi進(jìn)行上下波動(dòng)。這是因?yàn)閷?duì)于實(shí)際圖像來(lái)說(shuō),直線的像素點(diǎn)以整數(shù)形式表示,且直線部分存在鋸齒現(xiàn)象。由性質(zhì)2可以得到推論,若兩條直線相連,則在切空間內(nèi)會(huì)形成兩條水平線。針對(duì)矩形圖形,則在切空間內(nèi)會(huì)形成四條水平線,也就是矩形邊緣直線在切空間內(nèi)被劃分到四個(gè)區(qū)域,如圖5所示。
圖5 矩形圖像的切空間表示
2.2 角度投影
已知矩形邊緣直線被劃分到不同區(qū)域,不同區(qū)域以直線的偏轉(zhuǎn)角度進(jìn)行劃分。此時(shí)不同的直線對(duì)應(yīng)的角度必定不同。將圖4b進(jìn)行角度方向投影,則直線段上對(duì)應(yīng)的點(diǎn)大量聚集,產(chǎn)生峰值點(diǎn)。由矩形的性質(zhì)可以知道,進(jìn)行角度投影之后會(huì)產(chǎn)生四個(gè)峰值點(diǎn),峰值點(diǎn)是直線段上的點(diǎn)的集合。
由切空間定義可以知道,Ti1表示曲線的坐標(biāo)信息,Ti2表示曲線的角度信息。首先將切空間圖像進(jìn)行角度方向上的投影,也就是令di=0。由圖4b可以知道,若圖像中存在直線部分,則對(duì)應(yīng)的切空間表示進(jìn)行角度投影之后,直線上的所有的點(diǎn)將聚集在同一個(gè)角度上,產(chǎn)生峰值點(diǎn)。峰值點(diǎn)的角度值對(duì)應(yīng)不同的直線間的偏轉(zhuǎn)情況,并不度量直線的方向。
投影公式如下
Pi1=di
(4)
(5)
Pi1是發(fā)生偏轉(zhuǎn)的角度值,I為指示函數(shù),取值為0,1,Pi2是偏轉(zhuǎn)角度相同的基元段的個(gè)數(shù)。
記錄偏轉(zhuǎn)角度相同的基元段的個(gè)數(shù)。P值最大時(shí),對(duì)應(yīng)的偏轉(zhuǎn)角度θl表示了一條直線。
投影公式更新為
Pi1=di
(6)
(7)
針對(duì)圖5所示的切空間表示,Pi2會(huì)有四個(gè)峰值點(diǎn),每一個(gè)峰值點(diǎn)都是原圖像中的直線部分的點(diǎn)集合。由此可以得到邊緣曲線中的直線段的所有坐標(biāo)點(diǎn)的信息。
直線的探測(cè)實(shí)質(zhì)上就是探測(cè)組成直線的點(diǎn)的集合。由公式(6)~式(7),得到直線部分的點(diǎn)的集合,即可構(gòu)造直線的解析式,實(shí)現(xiàn)直線探測(cè)。
2.3 算法的普適性
針對(duì)圖6所示的破損直線,由于破損部分相對(duì)直線部分的點(diǎn)較少,且其θi連續(xù)隨機(jī)變化,具有較大離散性,所以,在進(jìn)行直線探測(cè)時(shí),不會(huì)影響直線探測(cè)的準(zhǔn)確性。
圖6 破損矩形的切空間表示
對(duì)于圖6所示的破損矩形進(jìn)行TSAP,峰值點(diǎn)仍為4個(gè),此時(shí)對(duì)于破損的邊緣部分,已知邊緣中的直線部分的坐標(biāo)信息,可以實(shí)現(xiàn)兩段探測(cè),也可以僅探測(cè)一段。算法具有較高的靈活性,且直線探測(cè)的正確性得到保障。
3.1 透視變換
已知直線解析式,可實(shí)現(xiàn)對(duì)控制點(diǎn)的確定。將控制點(diǎn)作為已知變量,求解透視變換參數(shù)。
式(1)和式(2)的矩陣表示形式為
(8)
已知投影圖像的角點(diǎn)坐標(biāo)為(x1,y1),(x2,y2),(x3,y3),(x4,y4),正視圖對(duì)應(yīng)的控制點(diǎn)的坐標(biāo)為(u1,v1),(u2,v2),(u3,v3),(u4,v4)。則根據(jù)式8得到透視變換的矩陣為
(9)
記作:Z=A*M,
則M=A-1*M
(10)
其中M記作變換參數(shù)。
已知變換參數(shù),作用于原始圖像,即可實(shí)現(xiàn)對(duì)畸變圖像的校正。
F=P*M
(11)
式(11)中,P為透視投影圖像,M為變換參數(shù),F(xiàn)為校正之后的正視圖圖像。
實(shí)際應(yīng)用中,很多時(shí)候在進(jìn)行校正時(shí),不需要考慮圖像的灰度和內(nèi)部情況,僅需要對(duì)外部輪廓進(jìn)行校正。針對(duì)這種情況,不需要對(duì)原始圖像進(jìn)行校正,可以僅對(duì)二值邊緣化之后的圖像進(jìn)行校正,減少計(jì)算量(見(jiàn)圖7)。
圖7 圖像透視校正
3.2 誤差分析
定義校正誤差函數(shù)為L(zhǎng)(Y,f(x))
L(Y,f(x))=(Y-f(x))2
(12)
式中f(x)表示校正之后的邊緣長(zhǎng)度,Y表示物體實(shí)際邊緣長(zhǎng)度。
使用經(jīng)驗(yàn)風(fēng)險(xiǎn)Remp估算期望損失,分析算法的精確性,定義經(jīng)驗(yàn)風(fēng)險(xiǎn)為
(13)
算法使用三個(gè)像素來(lái)度量實(shí)際物體的一個(gè)像素點(diǎn),若Remp值小于3,則算法的誤差不超過(guò)實(shí)際物體的一個(gè)像素點(diǎn),算法精確度較高。
3.3 算法總結(jié)
步驟1 使用TSAP算法實(shí)現(xiàn)直線探測(cè),獲得圖像中的四條直線;
步驟2 聯(lián)立直線解析式,求得交點(diǎn)坐標(biāo);
步驟3 定義改進(jìn)的正視圖坐標(biāo)作為控制點(diǎn);
步驟4 將四對(duì)控制點(diǎn)作為已知變量,帶入透視變換的方程式,求解畸變參數(shù);
步驟5 將畸變參數(shù)作用于待校正圖像,實(shí)現(xiàn)圖像校正。
為更好的對(duì)本文透視變換算法進(jìn)行分析,現(xiàn)針對(duì)工業(yè)生產(chǎn)中的太陽(yáng)能圖片進(jìn)行實(shí)驗(yàn),隨機(jī)抽取實(shí)際工廠中的40張?zhí)?yáng)能電池板進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表1所示。
表1 算法分析
實(shí)驗(yàn)分析如下:
(1)本文所用TSAP算法具有較好的直線檢測(cè)效果,容錯(cuò)率高。特別的當(dāng)直線出現(xiàn)破損時(shí),例如直線中間或者端點(diǎn)處發(fā)生破損,也就是存在曲線時(shí),根據(jù)切空間性質(zhì)2,3可知,本算法仍然可以實(shí)現(xiàn)直線的正確檢測(cè)。這是因?yàn)門(mén)SAP算法是基于統(tǒng)計(jì)的算法,峰值點(diǎn)的統(tǒng)計(jì)可以很大程度的減少誤差,對(duì)于直線中存在的毛刺,斷裂有很好的容錯(cuò)性,如圖8所示。
圖8 直線探測(cè)
若直線探測(cè)正確,則相應(yīng)的控制點(diǎn)也能被正確定位,此時(shí)可以實(shí)現(xiàn)圖像的透視變換,如圖9所示。
圖9 透視校正
(2)當(dāng)直線存在破損情況,且破損處呈直線特性而不是曲線時(shí),可能存在過(guò)度檢測(cè)情況。此時(shí)若破損處的直線長(zhǎng)度大于實(shí)際直線非破損部分長(zhǎng)度,則此時(shí)探測(cè)出的直線為破損處的直線。
由于直線探測(cè)誤差,將導(dǎo)致透視校正出現(xiàn)誤差。
圖像校正在數(shù)字圖像處理領(lǐng)域越來(lái)越受到關(guān)注,實(shí)現(xiàn)高正確性,高精度和快速的圖像校正,是圖像校正的一個(gè)重要研究方向。
為實(shí)現(xiàn)圖像的透視校正,通常需要對(duì)目標(biāo)點(diǎn)進(jìn)行精準(zhǔn)的探測(cè),也就是對(duì)直線的精確探測(cè),本文提出一種新的直線檢測(cè)算法—TSAP,在進(jìn)行直線檢測(cè)時(shí),對(duì)切空間內(nèi)的圖像僅需一次投影,利用統(tǒng)計(jì)特性,即可實(shí)現(xiàn)對(duì)直線的快速正確探測(cè),其算法計(jì)算量遠(yuǎn)低于Hough變換,且檢測(cè)精確度較高。在進(jìn)行透視校正時(shí),使用改進(jìn)的控制點(diǎn)策略,針對(duì)特定的工業(yè)圖像,僅對(duì)圖像輪廓進(jìn)行校正,保證了校正的精確性,并減少了計(jì)算量。
[1] 李立鋼,劉波,尤紅建,等.星載遙感影像幾何精校正算法分析比較[J].光子學(xué)報(bào),2006,35(7):1 028-1 034.
[2] 辛舟,龔俊.空間復(fù)合角構(gòu)成傾斜面加工角度的變換[J].機(jī)械設(shè)計(jì)與制造,2003(5):97-98.
[3] 何援軍.透視和透視投影變換—論圖形變換和投影的若干問(wèn)題之三[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào).2005,17(4):734-739.
[4] 胡東紅,汪浩,艾君,等,兩種圖像校正算法在實(shí)際應(yīng)用中的比較[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(13):191-226.
[5] 陳國(guó)棟.Hough變換改進(jìn)算法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2007:9-19.
[6] 段汝嬌,趙偉,黃松嶺,等.一種基于改進(jìn)Hough變換的直線快速檢測(cè)算法[J].儀器儀表學(xué)報(bào),2010,31(12):2 774-2 780.
[7]THANHPHUONGNGUYEN,DRISABELLE.Circularitymeasuringinlineartime[R].2010InternationalConferenceonPatternRecognition,2010:2 098-2 101.
[8]GUANLING.FrontMatterMultimediaImageandVideoProcessing[M].BocaRaton;CRCPressLLC,2001.
[9]TEKALPAM.DigitalVideoProcessing.[M].2nd.北京:清華大學(xué)出版社,1998:165-166.
[10] 郝永杰,劉文耀,路爍.畸變汽車(chē)牌照?qǐng)D像的空間校正[J].計(jì)算機(jī)應(yīng)用,2001,21(4):30-32.
[11] 葉青,張春華.汽車(chē)牌照實(shí)時(shí)幾何畸變校正方法[J].紅外與激光工程,2004,33(2):181-184.
[12] 代勤,王延杰,韓廣良.基于改進(jìn)Hough變換和透視變換的透視圖像校正[J].液晶與顯示,2012,27(4):552-556.
An Improved Perspective Transformation Method
SUN Wen, HONG Liu-rong, GE Fang-zhen
(School of Computer Science and Technology, Huaibei Normal University, Huaibei Anhui 235000, China)
Aiming at the problem of perspective distortion of image, a new method based on the new line detection algorithm and the improved perspective transformation method is proposed to correct distorted image. Through the new line detection algorithm-TSAP, we can get the boundary line and the vertex position, so as to realize the linear detection. Using the improved control point policy to determine control point and perspective transformation formula, we can correct and normalize the distorted images. MATLAB simulation results show that the proposed method is of low computation, high accuracy and high fault tolerance.
perspective transformation; line detection; solar panel; tangent space
2016-02-20
國(guó)家自然基金資助項(xiàng)目(61572224);安徽省自然科學(xué)基金資助項(xiàng)目(1408085MF130); 安徽省高校省級(jí)自然科學(xué)基金資助項(xiàng)目(KJ2013A229);安徽省高校省級(jí)自然科學(xué)基金資助項(xiàng)目(KJ2013Z281)
孫雯(1992-),女,安徽濉溪人,在讀碩士,研究方向:模式識(shí)別。
TP391
A
1672-1098(2016)06-0075-06