彭金柱 孫貝貝
摘? 要: 傳統(tǒng)的魚眼圖像矯正技術(shù)在處理視角不確定以及拍攝角度和目標(biāo)姿勢可變時(shí)性能降低,從而限制了魚眼圖像的應(yīng)用。針對(duì)低秩魚眼圖像的局部不變特征,將最近鄰插值法與變換不變低秩紋理(TILT)方法結(jié)合的新方法對(duì)魚眼圖像進(jìn)行矯正,既能矯正魚眼圖像又能精確地恢復(fù)低秩紋理,并通過實(shí)驗(yàn)對(duì)幾何矯正精度進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果表明,最近鄰插值方法結(jié)合變換不變低秩紋理方法對(duì)魚眼圖像具有較好的矯正效果,精度高,且實(shí)現(xiàn)簡單,有良好的實(shí)用價(jià)值,矯正精度優(yōu)于其他算法。
關(guān)鍵詞: 畸變矯正; 魚眼圖像; 機(jī)器視覺; 最鄰近插值; 變換不變低秩紋理; 對(duì)比分析
中圖分類號(hào): TN911.73?34; TP391.41? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2020)10?0148?05
Fisheye image distortion correction method based on low?rank characteristic
PENG Jinzhu1, SUN Beibei2
(1. School of Electrical Engineering, Zhengzhou University, Zhengzhou 450001, China;
2. Industrial Technology Research Institute, Zhengzhou University, Zhengzhou 450001, China)
Abstract: The correction performance of the traditional fisheye image correction techniques would be decreased when the processing angle of the view is uncertain and the shooting angle and the target posture are variable, which limits the application of the fisheye images. In allusion to the local invariant features of low?rank fisheye images, the new method in combination of the nearest neighbor interpolation method and the transform invariant low?rank texture (TILT) method is used to correct the fisheye image, which can not only correct the fisheye image and but also recover low?rank texture accurately, and the geometric correction accuracy is compared by the experiments. The experimental results show that the nearest neighbor interpolation method combined with transform invariant low rank texture method has a good correction effect on fisheye image with high accuracy, simple implementation and good practical value, and the correction accuracy is better than that of the other algorithms.
Keywords: distortion correction; fisheye image; machine vision; nearest neighbor interpolation; transform invariant low?rank texture; contrastive analysis
0? 引 言
近年來,計(jì)算機(jī)視覺技術(shù)在生產(chǎn)上的應(yīng)用是傳統(tǒng)的制造業(yè)朝著信息化轉(zhuǎn)變的標(biāo)志,因此計(jì)算機(jī)視覺被廣泛的應(yīng)用,道路上到處可見監(jiān)控?cái)z像頭,這有利于周圍的情況被實(shí)時(shí)反饋,可以有效地避免因?yàn)橐曈X盲區(qū)而導(dǎo)致的較多事故。目前,市場上出現(xiàn)了一種大廣角的鏡頭,有比人類更大的視野范圍。這種鏡頭焦距相對(duì)較小,前鏡片的拋向鏡頭前部是凸出的。該鏡頭的結(jié)構(gòu)跟魚眼睛的結(jié)構(gòu)類似,因此被稱為“魚眼鏡頭”。魚眼攝像機(jī)具有視野寬廣、信息豐富、制造成本低的優(yōu)點(diǎn)。魚眼鏡頭被廣泛地應(yīng)用在各個(gè)行業(yè),如安防監(jiān)控[1?2]、機(jī)器人的導(dǎo)航[3]、智能交通監(jiān)控[4?5]與全景的顯示[5]等。
魚眼鏡頭是一種短焦大視場相機(jī)鏡頭。由于魚眼鏡頭的結(jié)構(gòu)復(fù)雜,因此難以提高畸變矯正的精度。
目前為止已提出了較多的關(guān)于魚眼圖像矯正的算法,這些算法可大致的分為三類。第一種類型為模型參數(shù)是未知的情況。劉億靜的畸變圖像球面坐標(biāo)定位模型的矯正算法[6];王向軍等提出基于改進(jìn)球面透視投影的魚眼圖像畸變矯正方法等[7];馬明飛等提出的基于動(dòng)態(tài)遠(yuǎn)的魚眼圖像矯正算法[8]。第二種類型是通過建立幾何模型來矯正魚眼圖像,接著再根據(jù)選取的控制點(diǎn)的數(shù)量來插值、擬合等算出所設(shè)定的模型中的參數(shù)。王益平等提出最小二乘法的魚眼圖像矯正算法[9],該算法是利用全局統(tǒng)一矯正模型來矯正圖像,一旦確定了要使用的模型,其中的差異僅僅是像素點(diǎn)的坐標(biāo)之間的差異,這些算法是可以適用于相同魚眼鏡頭拍攝的各種不相同的圖像。第三種類型是基于圖像內(nèi)容的矯正算法。王永等人提出一種面向內(nèi)容的矯正參數(shù)自動(dòng)獲取方法[10],即通過對(duì)魚眼畸變圖像進(jìn)行數(shù)學(xué)形態(tài)學(xué)和隨機(jī)霍夫變換預(yù)處理得到所需的圖像邊緣特征直線,然后統(tǒng)計(jì)水平和垂直線段在總線段中的比例,分析統(tǒng)計(jì)結(jié)果,對(duì)于由相同魚眼鏡頭拍攝的不同圖像,需要單獨(dú)計(jì)算。
上述這些方法雖然在一定的條件下都能獲得較好的矯正效果,但當(dāng)拍攝角度、光線明暗的不同,魚眼圖像會(huì)產(chǎn)生扭曲、旋轉(zhuǎn)、被污損的情況下就不容易獲得比較滿意的圖像矯正效果。
因此為了提高魚眼圖像矯正的準(zhǔn)確性,本文針對(duì)具有低秩紋理概念的圖像采用最近鄰插值和變換不變低秩紋理(TILT)結(jié)合的算法對(duì)低秩魚眼圖像進(jìn)行矯正。該算法首先假定原始圖像是一個(gè)低秩紋理,在該假定條件下首先對(duì)魚眼圖像進(jìn)行矯正;然后計(jì)算矯正后魚眼圖像的秩,并找出秩最小的圖像進(jìn)行一定的透射變換,使圖像完成旋轉(zhuǎn)變換,這樣就可以得到最后的矯正過來的魚眼圖像。實(shí)驗(yàn)結(jié)果得出,本文算法不僅可以實(shí)現(xiàn)畸變矯正還能實(shí)現(xiàn)角度矯正,并且矯正效果較好。
1? 基本原理和算法
1.1? 魚眼相機(jī)成像原理
魚眼鏡頭可近視為半球面,如圖1所示。本文采用USB魚眼攝像頭,該魚眼相機(jī)相對(duì)于其他普通相機(jī)來說具有很多優(yōu)勢,成像比較穩(wěn)定,支持使用OpenCV進(jìn)行相機(jī)的調(diào)用。
在計(jì)算機(jī)視覺整個(gè)系統(tǒng)中,主要涉及到的坐標(biāo)系有世界坐標(biāo)系、相機(jī)坐標(biāo)系、圖像坐標(biāo)系和圖像中像素點(diǎn)的坐標(biāo)系,如圖2所示。根據(jù)相機(jī)的成像原理以及各個(gè)坐標(biāo)系之間的位置,可以得出各個(gè)坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。空間點(diǎn)[M(Xw,Yw,Zw)]是實(shí)際空間場景中的一點(diǎn),攝像機(jī)的坐標(biāo)系為[XcYcZc],其中[XcYc]和圖像的物理坐標(biāo)系[XOY]的[XY]軸是平行的。圖像的像素坐標(biāo)系是[uOpv]。理想狀態(tài)下,空間中一點(diǎn)[M],在圖像平面上像素的坐標(biāo)是[Pu],由于魚眼鏡頭存在的畸變,所以實(shí)際像點(diǎn)的位置為[Pd]。
1.2? 算法原理
本文首先采用最近鄰插值進(jìn)行畸變矯正,矯正后的圖像再進(jìn)行低秩提取。最近鄰插值[11]是在要搜索的像素的四個(gè)相鄰像素中將最接近待搜索像素的相鄰像素的灰度級(jí)分配給要搜索的像素。變換不變低秩紋理[12]是2012年由張正東提出的一種不依賴特征點(diǎn)、邊緣等圖像特征的一個(gè)全局圖像特征,是通過提取“低秩紋理”來對(duì)魚眼圖像進(jìn)行各種變化,該方法使得圖像切換操作更準(zhǔn)確、更穩(wěn)健。
1.2.1? 最近鄰插值矯正原理
在圖3中,假設(shè)內(nèi)插像素的坐標(biāo)是[x(i+u,j+v)],圖中左上角像素的坐標(biāo)為[x0(i,j)],圖中右上角像素的坐標(biāo)為[x1(i+1,j)],左下角的像素坐標(biāo)為[x2(i,j+1)],并且像素坐標(biāo)是右下角為[x3(i+1,j+1)]。內(nèi)插像素的值根據(jù)式(1)獲得:
[x=x0,u<1-u,v<1-vx1,u<1-u,v>1-vx2,u>1-u,v<1-vx3,u>1-u,v>1-v]? (1)
對(duì)圖像的所有點(diǎn)進(jìn)行插值矯正完成后輸出。
1.2.2? 低秩魚眼圖像的提取
根據(jù)插值完成后提取魚眼圖像的紋理特性,低秩圖像所對(duì)應(yīng)矩陣的秩不會(huì)伴隨著其他的線性函數(shù)的改變而產(chǎn)生變化?;谡麄€(gè)問題進(jìn)行數(shù)學(xué)建模,可以得到:
[minI0,E,τrank(I0)+λE0s.t.? ? I?τ=I0+E]? ? ?(2)
式中:[I]表示固定觀察的魚眼圖像;[I0]表示低秩紋理魚眼圖像;[rank(I0)]為魚眼圖像要提取的紋理圖像對(duì)應(yīng)的矩陣的秩;[E0]是圖像誤差矩陣的零范數(shù)值,即表示矩陣的非零元素的數(shù)量;常數(shù)[λ]是權(quán)重值來表示均衡紋理矩陣的低秩性能與誤差矩陣的稀疏度之間的權(quán)重值,并且[λ]的確定值可以根據(jù)實(shí)驗(yàn)情況設(shè)定;[I?τ=I0+E]是一個(gè)約束條件,是對(duì)前者一個(gè)目標(biāo)函數(shù)的約束。處理過程是先讓觀察的魚眼圖像[I]的矩陣進(jìn)行空間函數(shù)的逆運(yùn)算,即[τ]的逆運(yùn)算結(jié)果是[τ-1],然后得到最終所需要的低秩魚眼紋理的圖像[I0]的秩和表示誤差矩陣[E]的稀疏度。所以,這樣就能保證矩陣[I0]的秩盡可能達(dá)到最小,最終符合低秩性,并且最后還可以確定矩陣[E]的非零數(shù)量滿足稀疏性。
從式(2)可以得出,目標(biāo)函數(shù)分為兩部分:一部分表示圖像矩陣的秩;另外一部分表示魚眼圖像矩陣的零范數(shù)。在某些條件下,數(shù)學(xué)模型式(2)可以近似為:
[minI0,E,τrank(I0)?+λE1s.t.? ? I?τ=I0+E]? ? ?(3)
式中:[I0?]表示矩陣[I0]的核范數(shù);矩陣[E]的唯一范數(shù)是[E1]。
通過式(2)的近似的轉(zhuǎn)換,使式(3)的目標(biāo)函數(shù)變?yōu)橥购瘮?shù)。[I?τ=I0+E]復(fù)合運(yùn)算[I?τ]是非線性的,使式(3)保持非凸函數(shù),可運(yùn)用增量迭代方法[13]更好地處理這個(gè)問題。將式(3)的約束條件進(jìn)行線性化處理,即:
[I?τ+?IΔτ=I0+E]? ? ?(4)
雅可比矩陣[?I]是三維向量。根據(jù)式(3)和式(4),可得:
[minI0,E,τrank(I0)?+λE1s.t.? ? I?τ+?IΔτ=I0+E]? ? (5)
式(5)成為最終需要計(jì)算的凸優(yōu)化問題,所以可以通過凸優(yōu)化的解決方法來有效地進(jìn)行處理。由于是利用局部線性化去解決非線性的問題,因此利用迭代求解的方法去計(jì)算每個(gè)局部的最小值,最終計(jì)算出全局的最小值,實(shí)現(xiàn)低秩紋理的提取。魚眼鏡頭相機(jī)在拍攝低秩模型的物體時(shí),拍攝出來的畸變圖像會(huì)把本來低秩的模型拍攝成非低秩的狀態(tài);而TILT是尋找一個(gè)合適的變換將畸變圖像從非低秩的圖像恢復(fù)到低秩的狀態(tài),并且可以有效地解決畸變矯正后的圖像質(zhì)量。針對(duì)式(5)的具體求解算法就是變換不變低秩紋理圖像提取算法。變換不變低秩紋理圖像提取算法如下:
輸入:觀測的魚眼圖像[I∈Rm1×m2],空間轉(zhuǎn)換變量[τ∈T]初始化,權(quán)重變量[λ>0]初始化。
1) 初始化各個(gè)變量:
[I?τ←I?τI?τF?I←??ζI?ζI?ζFζ=τ]
2) 進(jìn)行內(nèi)部循環(huán),迭代更新中間變量:
[(I0?,E?,Δτ?)←argminI0,E,τI0?+λE1s.t.? ? I?τ+?IΔτ=I0+E]
3) 更新變換:
[τ←τ+Δτ?]
結(jié)束循環(huán)。
輸出:低秩魚眼圖像[I0]。
從變換不變低秩紋理圖像提取算法可以看出,在整個(gè)紋理提取算法中消耗計(jì)算成本最大的部分是算法步驟2)中的內(nèi)部迭代循環(huán)。TILT算法對(duì)圖像的關(guān)鍵紋理不斷地進(jìn)行一定旋轉(zhuǎn)、仿射等空間幾何轉(zhuǎn)換,并從這些轉(zhuǎn)換結(jié)果中選擇最為符合要求的低秩特性的紋理圖像作為實(shí)驗(yàn)的最終矯正結(jié)果。
2? 實(shí)驗(yàn)結(jié)果的對(duì)比分析
2.1? 實(shí)驗(yàn)過程
綜上所述,魚眼圖像矯正過程如圖4所示,在VS2013環(huán)境下結(jié)合OpenCV圖像處理庫開發(fā)具有畸變矯正功能的應(yīng)用程序。首先進(jìn)行處理系統(tǒng)連接,用來進(jìn)行魚眼圖片的獲取,將獲得的魚眼圖像通過棋盤格的角點(diǎn)進(jìn)行魚眼鏡頭的標(biāo)定[14?15],獲得實(shí)驗(yàn)所需的魚眼鏡頭的畸變參數(shù);然后將獲得的參數(shù)用來矯正圖片通過最近鄰插值算法處理,這是將魚眼圖像進(jìn)行的首次矯正,矯正后的圖像還會(huì)存在一定程度的畸變;最后通過TILT算法對(duì)圖像進(jìn)行一定程度的旋轉(zhuǎn)、仿射等空間幾何的轉(zhuǎn)換,并從這些轉(zhuǎn)換結(jié)果中選擇最為符合要求的低秩特性的紋理圖像作為實(shí)驗(yàn)的最終矯正結(jié)果。
2.2? 實(shí)驗(yàn)結(jié)果分析
在本文的實(shí)驗(yàn)中,使用魚眼攝像機(jī)采集的棋盤圖像采集來提取幾個(gè)典型的棋盤圖像,本文分別對(duì)比最近鄰插值、TILT及本文算法并測試不同算法的矯正精度。實(shí)驗(yàn)效果圖如圖5所示。
圖中:a),b)為魚眼圖像;c),d)是經(jīng)過最近鄰插值算法矯正過的棋盤格圖像,可以看出還是存在嚴(yán)重的畸變和角度變形,特別是棋盤格的邊緣,畸變程度很嚴(yán)重;e),f)為TILT矯正后的效果圖,存在一定的變形;g),h)為本文算法矯正的效果圖,該算法的矯正效果較好。本文算法不僅可以矯正魚眼圖像的畸變,又可以使不同角度拍攝采樣的圖像進(jìn)行逆轉(zhuǎn),從要觀測的魚眼圖像中提取對(duì)應(yīng)的規(guī)則紋理圖像,并使其具有低秩特性。用魚眼圖像相對(duì)應(yīng)的矩陣的秩來衡量該圖像是否為不變性低秩紋理圖像,因此一些噪聲等不良因素的干擾不會(huì)對(duì)該算法圖像的提取效果產(chǎn)生較大的影響。
該對(duì)比實(shí)驗(yàn)中,為了驗(yàn)證這些算法的矯正精度,在此使用棋盤進(jìn)行比較實(shí)驗(yàn)。魚眼圖像矯正是魚眼鏡頭廣泛應(yīng)用的重要前期操作,棋盤圖像通常有手工標(biāo)記,可用于計(jì)算矯正精度。偏離水平方向的計(jì)算原理如圖6所示。
使用兩點(diǎn)[Ax20,y20],[Bx21,y21]計(jì)算A,B相對(duì)于水平方向的偏離角度的反正切,從而測量圖像矯正的準(zhǔn)確性。
[error=arctan-(y21-y20)x21-x20] (6)
從表1的實(shí)驗(yàn)結(jié)果可以看出,本文算法的平均角度反正切遠(yuǎn)遠(yuǎn)小于最近鄰插值和TILT的矯正算法的反正切值。所以通過最近鄰插值、TILT和本文算法對(duì)低秩魚眼圖像的矯正的對(duì)比實(shí)驗(yàn)可以得到結(jié)論。
最近鄰插值算法實(shí)現(xiàn)簡單,速度快,但只復(fù)制最近的像素進(jìn)行插值,因此矯正精度不高;TILT矯正方法具有操作靈活的優(yōu)點(diǎn),但該方法只能通過實(shí)驗(yàn)改變有限區(qū)域的角度,不能真正矯正魚眼圖像的畸變,因此,TILT存在矯正不理想的問題;基于最近鄰插值的低秩魚眼圖像畸變矯正方法可以得到較好的矯正效果,對(duì)于視角不確定以及拍攝角度和目標(biāo)姿勢可變時(shí)也可以對(duì)低秩魚眼圖像有更好的矯正效果,并且遮擋、污跡以及暗光條件下,該算法仍可以根據(jù)魚眼圖像的低秩特性準(zhǔn)確地對(duì)圖像進(jìn)行較好的矯正。所以本文算法對(duì)低秩魚眼圖像的矯正精度較好。
3? 結(jié)? 論
本文提出基于最近鄰插值與變換不變低秩紋理混合算法的低秩魚眼圖像畸變矯正的新方法,該算法是利用最近鄰插值結(jié)合一種新的TILT算法來提取低秩魚眼圖像,使魚眼相機(jī)較好地適合對(duì)應(yīng)的實(shí)際情景,從而提高魚眼圖像矯正算法的精度和降低魚眼相機(jī)應(yīng)用的成本。本文算法不僅能夠較好地處理和矯正一些邊、角等小范圍的局部信息,同時(shí)對(duì)魚眼圖像畸變和角度的矯正也具有比較好的效果。但這種算法對(duì)不同內(nèi)容的魚眼相機(jī)拍攝出來的圖像,矯正的效果也會(huì)存在一定的差別,這需要后續(xù)的工作進(jìn)行研究。
參考文獻(xiàn)
[1] HYUNGTAE Kim, EUNJUNG Chae, GWANGHYUN Jo, et al. Fisheye lens?based surveillance camera for wide field?of?view monitoring [J]. Optik?international journal for light and electron optics, 2015, 127: 505?506.
[2] HU X M, ZHEN H, CHEN Y Z, et al. Dense crowd counting based on perspective weight model using a fisheye camera [J]. Optik?international journal for light and electron optics, 2015, 126(1): 123?130.
[3] CHOI Y W, CHOI J W, IM S G, et al. Multi?robot avoidance control based on OMNI?directional visual SLAM with a fisheye lens camera [J]. International journal of precision engineering and manufacturing, 2018, 19(10): 1467?1476.
[4] 鄧琉元,楊明,王春香.基于環(huán)視相機(jī)的無人駕駛汽車實(shí)例分割方法[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2018,46(12):29?34.
[5] 趙三峰,謝明,陳玉明.基于逆向投影的全景泊車系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2017,53(23):272?275.
[6] 劉億靜,苗長云,楊彥利.基于經(jīng)緯映射的徑向畸變快速矯正算法的研究[J].激光雜志,2015,36(1):1?4.
[7] 王向軍,白皓月,吳凡璐.基于改進(jìn)球面透視投影的魚眼圖像畸變矯正方法[J].圖學(xué)學(xué)報(bào),2018,39(1):43?49.
[8] 馬朋飛,穆春陽,馬行.基于動(dòng)態(tài)圓的魚眼圖像矯正算法研究[J].科學(xué)技術(shù)與工程,2017,17(7):106?110.
[9] 王益平,楊鳴,周芳.基于最小二乘法的魚眼圖像矯正算法[J].激光雜志,2017,38(2):81?85.
[10] 王永,趙凱,程德強(qiáng).煤礦魚眼畸變圖像矯正[J].工礦自動(dòng)化,2016,42(7):54?58.
[11] RUKUNDO Olivier, CAO Hanqiang. Nearest neighbor value interpolation [J]. International journal of advanced computer science & applications, 2012, 3(4): 25?30.
[12] ZHANG Z D, GANESH A, LIANG X, et al. TILT: transform invariant low?rank textures [J]. International journal of computer vision, 2012, 99(1): 1?24.
[13] 夏驕雄,劉政,劉緒彬.基于快速應(yīng)用開發(fā)的功能點(diǎn)增量迭代模型[J].上海理工大學(xué)學(xué)報(bào),2014,36(6):578?584.
[14] 郭春磊,洪鷹.采用棋盤格靶標(biāo)的全自動(dòng)相機(jī)標(biāo)定方法[J].計(jì)算機(jī)工程與應(yīng)用,2016,52(12):176?179.
[15] 黃巖巖,李慶,張斌珍.魚眼畸變棋盤格圖像矯正[J].計(jì)算機(jī)工程與應(yīng)用,2014,50(12):111?114.
[16] 劉丹萍,聶宇航,許靜,等.面向樹木刷白機(jī)器人智能化的雙目攝像頭圖像畸變矯正算法研究[J].科技視界,2019(1):114?115.
[17] 衡威威,馮浩,沈明,等.基于近景攝影測量的交通事故現(xiàn)場信息重建方法研究與應(yīng)用[J].中國司法鑒定,2019(3):35?39.
[18] 陶常飛,徐永臣,周興華,等.起伏地形條件下側(cè)掃聲吶探測存在的問題及改進(jìn)方法:以海底管道檢測為例[J].中國海洋大學(xué)學(xué)報(bào)(自然科學(xué)版),2019(5):71?77.