李威威 千博
摘要:文章介紹并利用具有圖像徑向和切向畸變的Brown模型及其像平面的直線不變性,分析了啟發(fā)式算法之一的模擬退火算法,對Brown模型的幾個參數(shù)變量進行求解最優(yōu)解,選擇Canny算子進行邊緣檢測,之后經(jīng)過噪聲抑制處理后進行霍夫變換得到直線檢測的結(jié)果,然后從檢測的直線中找出擬合最長的直線,以直線的長度作為模擬退火算法的能量函數(shù),經(jīng)過多次迭代后趨于穩(wěn)定,輸出最優(yōu)解。本方法的精度控制在2 pixels范圍內(nèi),通過對實際畸變圖像的校正,驗證了該直線檢測幾何校正方法的準確性。
關(guān)鍵詞:畸變校正;直線檢測;模擬退火算法;Brown模型
圖像的畸變是由于光學鏡頭在設(shè)計、裝配等的過程中產(chǎn)生的,存在光學系統(tǒng)的環(huán)境中,都會存在一定的畸變,畸變是由于鏡頭隨著鏡頭徑向的曲率不同,產(chǎn)生像差,使得原始圖像中的直線彎曲,可能會凹陷或者凸顯,根據(jù)畸變距離與理想的距離偏大或偏小,稱為桶形畸變和枕形畸變[1]。
攝像機的標定是圖像畸變校正的關(guān)鍵問題,標定主要是利用高精度的具有標記的模板作為空間參考,通過建立標定板與攝像機的三維坐標轉(zhuǎn)換關(guān)系來確定攝像機的內(nèi)外參數(shù)。由此可見參數(shù)的估計至關(guān)重要,而參數(shù)好壞的評定標準的選擇則是重中之重。傳統(tǒng)的標定方法有Tsai[2]的兩步法相機標定,2hang[3]的棋盤標定法,他們都是經(jīng)過測量進行的,而目前的一些非測量方法也得到了廣泛的研究,主要是根據(jù)直線特征[4]的不變性進行的。本文也是根據(jù)非測量、直線特征來進行完成標定的。首先選用Brown模型[5]作為畸變模型是考慮了不同方向上的畸變參數(shù),經(jīng)過分解將畸變因素分解成徑向和切向兩個方向,更能準確地表示實際的畸變情況。本文主要利用Brown模型的根本思想:實際物理空間在理想成像系統(tǒng)中的直線不變性[6],來進行作為參數(shù)優(yōu)劣的標準。
1 圖像畸變模型
由上可知,Brown模型具有較好的匹配性,該模型的數(shù)學表達式是:
(xc,yc)為徑向畸變中心點,(xd,yd)為畸變圖像像素點坐標,(xu,yu)為原圖像像素點坐標,Knn為徑向畸變n階系數(shù),Pn。為切向畸變n階系數(shù):r為畸變像素點到中心點的距離,在本文中,只考慮最高2階的畸變模型情況,故需要使用的參數(shù)是xc,yc,K2,P1,P2。
2 畸變校正原理及流程
首先利用如圖l所示的標定板,包含若干圈回字格,關(guān)于中心對稱,內(nèi)圈的使用相機拍攝圖片得到的畸變圖像如圖2所示。利用電腦屏幕作為基板,因為電腦屏幕具有很高的像素精度,這樣避免了打印標定板造成的誤差。本文主要通過根據(jù)上述,Brown模型的基本思想:實際物理空間在理想成像系統(tǒng)中的直線不變性。由于標定板的特性是內(nèi)圈直線短,外圈直線長,當存在畸變時,會使直線變彎曲,并且越是往外畸變的情況越是大,所以對于畸變的參數(shù)來說,檢測到的直線越長,說明參數(shù)越是最優(yōu)。至于如何檢測圖像中的直線以及直線的長度,本文首先進行邊緣檢測,之后采用霍夫變換進行處理,得到直線的信息和最長直線的位置與長度,以此作為衡量的標準,進行數(shù)據(jù)參數(shù)的優(yōu)化。
2.1利用邊緣提取獲得圖像曲線
邊緣檢測的方法有許多種,區(qū)別是算子的不同,主要分為一階微分算子和二階微分算子,一階微分算子有:Sobel算子對灰度漸變和噪聲較多的圖像處理效果較好,對邊緣定位不是很準確,圖像的邊緣不止一個像素。Roberts算子的邊緣提取較寬,故精度不夠。Prewitt算子對噪聲不敏感,能夠很好地過濾噪聲,缺點是檢測的邊緣較寬,精度也不夠。Canny算子也具有對噪聲不敏感的特性,對邊緣的強弱能夠進行區(qū)分,對弱邊緣的取舍具有較好的處理,能夠檢測出更準確的真正的邊緣[7]。二階微分算子有:Laplacian算子對圖像的要求較高,如果存在噪聲監(jiān)測的結(jié)果會大受影響,故很少使用該算子進行邊緣檢測。
本文進行邊緣檢測的圖像對像是邊界分明的回字格,噪聲不多,但是對精度的要求較高,綜合考慮本文采用Canny算子進行邊緣信息的提取。
Canny算子首先用高斯濾波器進行平滑圖像,盡量減少圖像中的噪聲,避免對檢測精度造成的影響。其次進行邊緣的強化,采用一階偏導的有限差分來計算梯度幅值和方向,在這一階段,得到的梯度值并不能作為邊緣的判斷標準,因為進行了圖像的增強,所以還要進行非極大值抑制,去除大量的非邊緣的干擾點。最后利用兩個閡值來連接邊緣,這兩個閡值的設(shè)置直接影響著檢測的精度。
2.2利用霍夫變換獲得直線的長度
理想圖像中的直線在畸變圖像中是曲線,利用己知的Brown系數(shù)進行畸變校正處理后,進行檢測校正后圖像中直線的長度,通過比較長度可以作為畸變校正系數(shù)選定優(yōu)劣的標準。本文檢測直線長度的方法是霍夫變換。
霍夫變換本質(zhì)是坐標變換,在直角坐標系x-y中,直線方程y=kx+b,當變換到k-b坐標系中,直線方程是b=-xk+y,其中斜率是-x,截距是y,由此可以看出k6坐標上的一條直線,可以表示為x-y坐標上經(jīng)過特定點的一系列直線。在實際操作過程中,當斜率很大時直線坐標無法表示,故使用極坐標來表示:
ρ=xcosθ+vsinθ率為:
(3)
另外模擬退火算法在計算過程中以一定的概率引入一個擾動量,該擾動量的引入概率隨時間的增加而降低。在熱力學系統(tǒng)中,當前溫度為T,存在能量差為Δt的概率是:
上面的式(4)是在每次迭代畸變校正系數(shù)的變化概率,把得到的改變的系數(shù)作為新的理想值,再進行驗證和比較。畸變校正處理的流程如圖3所示。
3 實驗結(jié)果與分析
在變換過程中,精度和角度檢測間隔的設(shè)置是比較重要的,為了能夠有較好的結(jié)果,需要多次試驗,找到合適的設(shè)置。另外在直線擬合過程中會導致線段的斷裂,會影響計算的速度,在計算時舍去小于50個像素的直線。
2.3畸變校正系數(shù)的最優(yōu)化
我們首先給定一個初始的系數(shù),讓系數(shù)在一定范圍內(nèi)變化,使得最優(yōu)的結(jié)果能夠快速地收斂經(jīng)過若干次迭代后輸出最優(yōu)解,本文采用模擬退火算法[8]作為每次迭代的原理依據(jù)。
該算法將目標函數(shù)作為熱量函數(shù),當熱量函數(shù)趨于穩(wěn)定時,就可以認為得到了當前最優(yōu)解。用數(shù)學語言描述為:設(shè)熱力學系統(tǒng)s中有有限個且離散的n個狀態(tài),狀態(tài);的能量為Ei,在溫度E「下,經(jīng)過一段時間達到熱平衡,這時處于狀態(tài)i的概
我們利用霍夫變換進行直線檢測,首先需要進行邊緣檢測以得到圖片的邊緣信息。為了減小霍夫變換的時間,我們對霍夫變換的不同參數(shù)進行設(shè)置,其中極值檢測的檢測間隔設(shè)置為2,即具有兩個像素的間隔偏差,角度檢測范圍設(shè)置為-20:0.5:20,間隔是0.5,這樣能夠快速地實現(xiàn)檢測,我們的回形圖(見圖4)只進行了豎列直線的檢測,因為豎向方向的檢測最優(yōu)就可以表示為整體最優(yōu),并且能夠使每一次進行模擬退火算法的迭代時間減小,加快計算速度。適應(yīng)度的變化曲線如圖5所示。
根據(jù)仿真結(jié)果可以看到,在30次迭代后最長直線的長度一直不變,保持在449,此時輸出參數(shù)得到Ki=9E-10,K2=9E-10,P1=1E-8,P2=4E-8。由圖4可知,最優(yōu)結(jié)果已經(jīng)能夠檢測到該回字形的最長邊長,大約450個像素滿足所求取得最優(yōu)參數(shù)。
4 結(jié)語
本文根據(jù)光學鏡頭產(chǎn)生的畸變作出了的分析和研究,利用模擬退火算法進行迭代尋找最優(yōu)的徑向和切向畸變校正參數(shù),其中我們根據(jù)物理平面的像平面的直線線性不變性,通過霍夫變換來檢測矯正后圖像直線的最大長度,利用直線長度作為模擬退火算法的能量函數(shù),每次迭代選擇最優(yōu)的作為當前輸出解,多次迭代后趨于穩(wěn)定,輸出的結(jié)果即使最優(yōu)的畸變校正參數(shù)設(shè)置。該方法的精度與霍夫變換的精確度有關(guān),由于霍夫變換的精度設(shè)置在2 pixels,該方法在進行直線檢測過程中會忽略大約2 pixels的范圍。最后通過實際的畸變校正圖像結(jié)果驗證了該直線檢測幾何校正方法的準確性。