李江華,李恩德
(江西理工大學(xué)信息工程學(xué)院,江西 贛州 341000)
在大范圍監(jiān)控、安全監(jiān)測、智能機器人視覺系統(tǒng)以及汽車影像等方面,魚眼鏡頭因其短焦距大視角的特點而被計算機視覺領(lǐng)域廣泛應(yīng)用。然而魚眼鏡頭因其特殊的構(gòu)造導(dǎo)致得到的圖像會在一定程度上發(fā)生畸變。因此,為獲得準(zhǔn)確的圖像內(nèi)容,對于畸變圖像的校正則必不可少[1,2]。近幾年來,魚眼圖像的校正方法主要有兩個不同的研究方向,即基于投影變換的校正方法和基于魚眼鏡頭標(biāo)定的校正方法[3]?;阽R頭標(biāo)定的方法需要世界坐標(biāo)與圖像坐標(biāo)之間的關(guān)系轉(zhuǎn)換,并且需要攝像機內(nèi)部參數(shù),因其成本高,實現(xiàn)復(fù)雜而很少使用?;谕队白儞Q的校正方法則是主要通過建立成像模型,擬合多形式等方法得到校正圖像。ZHANG[4]等人首先建立橢圓函數(shù)模型,其次基于此模型對魚眼圖像進(jìn)行初步校正,最后,將橢圓函數(shù)模型中的參數(shù)調(diào)整為對圖像進(jìn)行修正以獲得更好的校正效果,然而在魚眼圖像邊緣部分有一定的損失。Stenfan Hensel[5]等人通過結(jié)合對校正參數(shù)的估計,對魚眼圖像的徑向畸變進(jìn)行校正,實驗結(jié)果驗證了該方法的有效性。Tien-Ying Kuo[6]等人利用加權(quán)聯(lián)合殘差細(xì)化獲得更好的畸變參數(shù)并產(chǎn)生更準(zhǔn)確的魚眼失真圖像,實驗結(jié)果表明該方法可以有效校正徑向變形和拉伸邊界的魚眼圖像,但是此方法計算量過大,對于魚眼鏡頭內(nèi)部系數(shù)有一定要求,實現(xiàn)復(fù)雜。ZHANG[7]等人提出了一種兩步校正方法。首先,提出了自適應(yīng)的經(jīng)緯度校正方法,并利用霍夫變換對直線進(jìn)行檢測和估計,其次,檢查直線的保存和方向,基于一致性的優(yōu)化,以獲得最終的校正結(jié)果,實驗結(jié)果表明,該方法能夠獲得連貫的自然外觀,然而圖像的非中心部分存在一定的失真現(xiàn)象。
YANG[8]在已有的球面投影模型算法的基礎(chǔ)上,通過引入系數(shù)量化選定的區(qū)域進(jìn)行縮小,再給予加權(quán),有效保留圖像周邊信息,改善模糊情況,提高了圖像的可視性,具有很好的實用價值,但在縱向校正方面仍存在缺陷,周圍視圖仍有較大畸變的存在。WEI[9]在傳統(tǒng)經(jīng)緯校正的基礎(chǔ)上提出一種雙經(jīng)度模型校正,解決了在傳統(tǒng)經(jīng)緯度校正上水平方向上畸變的問題,無需借助外界設(shè)備仍能達(dá)到較好的校正效果,但在極點附近的畸變依然不能較好的校正,雙極點的畸變?nèi)匀粸榻窈笮U芯糠较颉ANG[10]提出一種針對魚眼圖像徑向畸變的校正算法,對畸變直線的斜率進(jìn)行求解得到多項式校正模型的參數(shù),建立校正圖像與畸變圖像的映射關(guān)系。此算法計算量低,校正圖像質(zhì)量較高,具有較強的適應(yīng)性。WANG[11]運用圖像處理技術(shù)從標(biāo)準(zhǔn)模板的畸變圖像中提取樣本,然后將樣本作為輸入信息進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,建立畸變圖像與校正圖像之間的映射關(guān)系,校正效果較好,但其耗時過長,對硬件要求高,實時性差。
上述方法雖然都對魚眼圖像的畸變進(jìn)行了校正,但是在效率方面和適應(yīng)性方面都存在一定的局限性,本文在分析了魚眼圖像畸變的原理,提出一種建立校正量場的方法,以解決效率和視圖中心關(guān)鍵區(qū)域校正以及縱向校正缺乏等方面的不足。
普通相機成像的視場角只有45°左右,其成像遵循的是針孔相機模型,在成像過程中實際場景中的直線仍被投影為圖像平面上的直線。然而魚眼相機因為視場角在180°甚至超過180°,如果按照針孔相機模型成像的話,投影圖像會變得非常大,當(dāng)相機視場角達(dá)到180°時,圖像甚至?xí)優(yōu)闊o窮大[12,13]。所以,魚眼相機的投影模型為了將盡可能大的場景投影到有限的圖像平面內(nèi),允許了相機畸變的存在。在本文中,由于切向畸變是由傳感器和透鏡的未對準(zhǔn)引起的,因此僅考慮徑向畸變。另外,對透鏡畸變的研究涉及徑向畸變而無切向畸變因此忽略其余類型的畸變。
魚眼鏡頭在實驗中可近似為一半球形,如圖1所示,假設(shè)c是空間中的一個拍攝對象點,連接空間中點c與光軸中心點o,交半球面于b點,過b點做XOY面的垂線,交XOY面于a點,a就是空間拍攝點c在魚眼成像平面上的成像點[14]。
圖1 魚眼鏡頭成像原理
在魚眼圖像成像過程中,徑向畸變又可分為枕形畸變和桶形畸變[15],魚眼鏡頭在拍攝時產(chǎn)生桶形畸變,如圖2所示。
圖2 魚眼圖像畸變圖
本文給出了魚眼圖像畸變過程的計算公式。以下是Slama,Tasi[16]等人提出的高階徑向多項式模型。
(1)
(2)
式(2)是畸變半徑,K為畸變系數(shù)。
魚眼圖像校正的前提是將魚眼圖像的有效區(qū)域從圖中提取出來并精確的提取出有效區(qū)域的半徑和中心以用于圖像的校正。目前主要的提取算法有面積統(tǒng)計法,最小二乘擬合法,區(qū)域增長法和掃描線逼近法[17~19]。本文根據(jù)原始算法提出一種新的快速掃描算法,具體流程如下所述:
a) 將圖像轉(zhuǎn)化為灰度圖像。
b) 設(shè)置一個合適的閾值。
c) 從圖像上方開始逐行逐列掃描。
d) 當(dāng)?shù)趇行第j列亮度大于閾值時,直接開始掃描第i+1行,第j列,如果同樣第i+1行第j列亮度大于閾值,則第i行為切線,(i,j)為上切點,確定上切點(top,j1),若亮度小于閾值,則繼續(xù)向下掃描。
e) 確定上切點后,過上切點做上切線的垂線,并于垂線上從下方開始向上逐點掃描,當(dāng)(i,j1)和(i-1,j1)同時大于閾值時,確定下切點(bottom,j1)。
f) 確定上下切點后,連接上下切點,并做上下切點連線的中垂線,以上步中步驟相同,可確定左右切點。
對有效區(qū)域進(jìn)行矩陣修正并計算有效區(qū)域半徑
R=max((right-left/2),(bottom-top)/2)
(3)
以及圓心。
該提取算法在有效的加強了噪音干擾帶來的誤差以及減少了時間復(fù)雜度,掃描線逼近法的算法計算量為
(m-2R)·n+(n-2R)·m
(4)
而本文提出的改進(jìn)算法計算量為
(m-2R)/2+(n-2R)-(m-2R)/2
(5)
在掃描線因噪聲點而出現(xiàn)誤差的問題也得到了解決,同時引入矩陣校正,對不規(guī)范的有效區(qū)域進(jìn)行了校正。
文中提出一種基于建立校正量場的魚眼圖像校正算法,算法框架見圖3,具體流程如圖3所示。
圖3 算法流程圖
a) 利用本文提出的新的快速提取魚眼圖像的算法將魚眼圖像有效區(qū)域提取出來,并確定邊界,圓心以及有效區(qū)域半徑等信息。
b) 生成x與y方向上的校正量場。
c) 定義畸變圖形與校正圖形的校正關(guān)系。
d) 獲取校正量。
e) 校正圖像。
f) 對校正圖像進(jìn)行灰度插值。
在傳統(tǒng)的魚眼圖像2D校正方法中,對于魚眼圖像中心關(guān)鍵區(qū)域的校正不足和縱軸方向上的畸變校正缺乏問題,本文根據(jù)魚眼圖像的畸變原理,分析魚眼圖像在縱向和橫向方向上的畸變過程,在畸變點周圍生成合適的校正量場,定義畸變圖形與校正圖形之間的校正關(guān)系。如圖4所示,對魚眼圖像上半部分進(jìn)行校正時,以畸變點為中心,獲得校正量場J-K-L-N?;凕c坐標(biāo)為A(a,b),魚眼圖像中心M(x0,y0),半徑為R。假設(shè)OQ為魚眼圖像上的一條橫向經(jīng)線,PAD為縱向經(jīng)線的一部分,對于A進(jìn)行校正,就要分別對其橫縱兩個方向進(jìn)行校正。
在縱向方向上,根據(jù)幾何關(guān)系(6)
(6)
在縱向方向上的臨時校正點為c(u,v)。根據(jù)關(guān)系式(6),可得校正關(guān)系,如式(7)所示。
(7)
根據(jù)式(7),可得臨時校正點的坐標(biāo)為
(8)
圖4 校正關(guān)系圖
完成對縱向方向上畸變的校正后,對橫向方向上的畸變進(jìn)行校正,由于魚眼圖像在橫向方向上的畸變量稍大,且對于畸變的魚眼圖像而言,橫縱方向上的畸變不能一概而論,故在校正量場中,需要對橫向方向上的校正關(guān)系進(jìn)行新的定義。以經(jīng)線PAD作一條四分之一圓,交校正量場于D,J兩點,生成四分之一圓NJD。
設(shè)N點坐標(biāo)為N(x00,0),在橫向方向上的臨時校正點為I(i,j),新的四分之一圓半徑為Rnew。根據(jù)幾何關(guān)系可得公式:
(9)
根據(jù)式(9)可得
(10)
(11)
通過建立的校正量場獲得畸變點A在橫縱兩個方向上的校正關(guān)系后,通過遍歷各個畸變像素點,獲得校正量,再對圖像進(jìn)行校正。
在通過建立校正量場確定校正關(guān)系并獲取校正量后,為匹配像素點的坐標(biāo)位置,完成圖像的描繪,需要進(jìn)行插值運算[20]。在傳統(tǒng)的魚眼圖像校正中,常用的插值算法有最鄰近插值和雙線性插值,但是由于直接進(jìn)行線性插值會出現(xiàn)不光滑的問題。本文考慮到Hermite插值導(dǎo)數(shù)連續(xù),具有保型性以及分段三次Hermite插值法的光滑特性 ,所以本文引入分段三次Hermite插值對校正后的圖像進(jìn)行插值運算。
文中實驗在Matlab2019a平臺進(jìn)行實驗操作,選取尺寸在370·340標(biāo)準(zhǔn)測試魚眼圖像作為實驗圖像。并對文獻(xiàn)[12]、文獻(xiàn)[15]的算法與文中算法進(jìn)行了性能比較。
文中實驗首先利用新的快速提取算法進(jìn)行魚眼有效區(qū)域提取,然后利用校正量場定義校正關(guān)系,遍歷圖像畸變點獲得校正量,進(jìn)行校正,最后進(jìn)行灰度插值獲得校正后的圖像。魚眼畸變圖像中心區(qū)域畸變嚴(yán)重,無法獲取客觀準(zhǔn)確的圖像信息。文中先采用新的快速提取魚眼有效區(qū)域算法提取魚眼圖像有效區(qū)域。利用同一張圖片分別對文獻(xiàn)[17]、文獻(xiàn)[18],以及本文方法三種提取算法的提取時間,有效區(qū)域提取精度進(jìn)行測試,如表1所示。
表1 提取有效區(qū)域算法比較
傳統(tǒng)的掃描線逼近法運行時間為19.824s,區(qū)域生長法運行時間為1205.497s,本文算法為1.481s,可見提取時間大大縮短,提高了效率。而在提取誤差方面本文提取算法也相對較小,可見本文提取算法性能更佳。
原來視角有200多度的魚眼圖像,校正到平面圖像,必然會有一些景物,在平面圖像上是顯示不出來的。視角中心區(qū)域的校正亦即魚眼圖像主要信息的校正就變得尤為重要。本文利用圖像中心區(qū)域景物的校正角度作為評判標(biāo)準(zhǔn),利用一幅標(biāo)準(zhǔn)測試圖對文獻(xiàn)[12]、文獻(xiàn)[15]與本文算法進(jìn)行比較。魚眼圖像及校正圖像分別如圖5所示。
圖5 視角200多度的魚眼圖像及校正圖像
為驗證算法的可行性以及有效性,采用魚眼原圖像及不同方法校正后的圖像的有效線段作為樣本進(jìn)行測試,將圖中易于觀察的視覺中心的橫線用白色代替,其它區(qū)域轉(zhuǎn)成黑色,與文獻(xiàn)[12]、文獻(xiàn)[15]方法進(jìn)行對比后,如圖6所示。
圖6 魚眼圖像及校正圖像
由圖6的圖像作為評判標(biāo)準(zhǔn),與畸變圖形以及文獻(xiàn)[12]、文獻(xiàn)[15]方法進(jìn)行對比,從主觀視角方面可以看出在縱向方向的畸變上本文方法校正效果得到較大改善。最后,分別對三幅二值圖像的樣本線段進(jìn)行畸變角度計算,比較在橫向以及縱向方向上的畸變角度,通過數(shù)據(jù)分析本文方法的有效性和可行性,具體數(shù)據(jù)如表2所示。在2D魚眼圖像校正縱向方向畸變上校正較差方面,經(jīng)過本文方法,得以改善。
表2 畸變程度比較
同時本文作為2D校正法,運行時間將是算法可行性的一大衡量標(biāo)準(zhǔn),本文同文獻(xiàn)[12]、文獻(xiàn)[15]的算法運行時間進(jìn)行對比,時間運行記錄如圖7所示。
由圖7可知,在本文算法增加校正效果的同時,算法復(fù)雜度增加的同時,時間復(fù)雜度并沒有明顯增加,并沒有丟失2D校正的快速校正的特點,因此本文算法具有可行性。
圖7 運行時間比較
本文針對傳統(tǒng)的魚眼圖像2D校正方法中,對于魚眼圖像中心關(guān)鍵區(qū)域的校正不足和縱軸方向上的畸變校正缺乏問題,提出了改進(jìn)算法。該算法通過新的快速掃描方法提取魚眼有效區(qū)域,建立移動的校正量場不斷對畸變點進(jìn)行校正,融合分段三次Hermite插值對校正后的圖像進(jìn)行插值運算,在不影響2D校正速率的情況下,著重提高了畸變圖像中心區(qū)域的校正效果,在縱向畸變上更是進(jìn)一步提高,同時校正后的圖像更為光滑,具有較高的可行性和有效性,對于圖像邊緣部分的校正,是今后研究的重點。