1、問(wèn)題背景 最近在做的項(xiàng)目有畸變校正的需求,但測(cè)試鏡頭畸變時(shí),發(fā)現(xiàn)畸變的形態(tài)不太正常。如下圖所示中間向內(nèi)凹、四周向外凸,感覺(jué)像是曲線(xiàn)型的。 但常見(jiàn)的畸變就兩種,一種是向內(nèi)收的枕形畸變,另一種是向外凸的桶形畸變,所以本篇文章主要是對(duì)這個(gè)問(wèn)題做一個(gè)分析, 以及總結(jié)一下什么是畸變、畸變是怎么產(chǎn)生的、畸變的計(jì)算。 ? 2、問(wèn)題分析 關(guān)于畸變,是屬于像差的一種,肯定是和鏡頭相關(guān)的。遇到我上面的問(wèn)題具體該怎么處理呢? 最簡(jiǎn)單的方法就是對(duì)著圖卡(一般是點(diǎn)陣圖/棋盤(pán)格)去拍 raw 圖,將有問(wèn)題現(xiàn)象的 raw 圖反饋給鏡頭廠去確認(rèn)。 一開(kāi)始我是給的上面點(diǎn)陣圖的那張 raw,他們反饋看現(xiàn)象是不太正常,但說(shuō)我拍歪了,讓再擺正重新拍一張。 隨即又拍了張擺正的解析力卡的 raw 給他們,因?yàn)槭谴_認(rèn)邊緣直線(xiàn)變曲線(xiàn)的問(wèn)題,所以用其他圖卡能復(fù)現(xiàn)現(xiàn)象也行。 如下是這顆模組的規(guī)格,反饋說(shuō)是這顆鏡頭的視場(chǎng)角是120度,屬于廣角鏡頭,只要畸變<10.5%就是正常的, ? 確實(shí)短焦距的廣角鏡頭是會(huì)容易出現(xiàn)明顯的桶形畸變,但目前看到的這種曲線(xiàn)的畸變,就不太確定是什么了。 ?
? ? 鏡頭廠那邊實(shí)測(cè),模擬給出的結(jié)論就是桶形畸變,也是滿(mǎn)足鏡頭的設(shè)計(jì)要求的。并做了如下解釋?zhuān)缦聢D所示是反映鏡頭畸變的曲線(xiàn)圖、網(wǎng)格圖。 ? 從畸變曲線(xiàn)看,是單調(diào)遞增的,且是負(fù)值,所以是單純的桶形畸變。 ? 曲線(xiàn)圖上,在 2.2mm像高內(nèi),畸變都比較小,2.2mm 開(kāi)始,畸變就變的比較大,應(yīng)該是內(nèi)視場(chǎng)畸變和外視場(chǎng)畸變差異過(guò)大導(dǎo)致的視差。 ?
? 我的理解是類(lèi)似于在一個(gè)一圈一圈的圓環(huán)里面畫(huà)直線(xiàn),會(huì)感覺(jué)直線(xiàn)變形了一樣。 如上網(wǎng)格圖也是一樣,內(nèi)視場(chǎng)的畸變很小,而到邊角部分的畸變明顯變大所以視覺(jué)上就感覺(jué)中間不直了一樣。 ? 3、知識(shí)延申:關(guān)于畸變的相關(guān)概念 a、什么是畸變 畸變是指物體所成的像在形狀上的變形,它并不會(huì)影響像的清晰度,而只影響像與物的相似性。 如下示意圖所示,常見(jiàn)的畸變類(lèi)型有桶形畸變和枕形畸變。
? 那什么時(shí)候是桶形畸變,什么時(shí)候又是枕形畸變呢? ? 以如下簡(jiǎn)單的示意圖為例,將靠近鏡頭中心部分所成的像視為內(nèi)視場(chǎng)(y1),邊緣部分為外視場(chǎng)(y2)。 ? 當(dāng)內(nèi)視場(chǎng)的放大倍率 :y1/h1 > 外視場(chǎng)的放大倍率:y2/h2時(shí),所成的像是從中心是往外放大的,也就是桶形畸變。反之則是枕形畸變。
? 而具體出現(xiàn)桶形畸變還是枕形畸變,取決于光圈的位置,當(dāng)光圈在透鏡前面或后面時(shí),會(huì)限制光線(xiàn)的行為。 ? 當(dāng)光圈在鏡頭前面,像的高度減小了,也就是像縮小了,就造成了桶形失真。復(fù)雜的鏡頭,例如后焦距廣角鏡頭,往往就會(huì)出現(xiàn)桶形失真,因?yàn)榍敖M鏡頭會(huì)充當(dāng)后組的光圈。 ? 當(dāng)光圈在鏡頭后面,像的高度增加了,也就是放大了,就是枕形失真。遠(yuǎn)焦鏡頭的后組為負(fù),會(huì)導(dǎo)致枕形失真。 ? 下面這幅圖片是對(duì)應(yīng)的三維圖,更加清晰的看出光圈與鏡頭的關(guān)系。
? b、畸變產(chǎn)生的原因 從上面的概念我們了解到,畸變產(chǎn)生的根本原因是鏡頭像場(chǎng)中央?yún)^(qū)的放大倍率和邊緣區(qū)的放大倍率不一致導(dǎo)致,那為什么不一致呢? ?
? 請(qǐng)看如上這個(gè)光路圖,A 和 B一個(gè)是軸上點(diǎn),一個(gè)是軸外點(diǎn)。過(guò) B 點(diǎn)作輔助光軸,也就是這個(gè)虛線(xiàn),與像面交于 B0′,B0′點(diǎn)即為 B點(diǎn)的理想像點(diǎn)。 ? 另一方面,B點(diǎn)若是以細(xì)光束成像,則像點(diǎn)是B′點(diǎn),注意,細(xì)光束成像是沒(méi)有球差和慧差的,但是有場(chǎng)曲,所以B在細(xì)光束下成像像點(diǎn)實(shí)際在B', B′B0′為B點(diǎn)的場(chǎng)曲。 ? 當(dāng)B點(diǎn)以主光線(xiàn)成像時(shí),看黃色主光線(xiàn),這時(shí)注意,主光線(xiàn)是寬光束,存在球差和慧差,所以寬光束成像時(shí),黃色主光線(xiàn)交輔軸于B1′點(diǎn),所以B1′B′為B點(diǎn)的球差。 ? 所以,綜合球差慧差場(chǎng)曲的影響,主光線(xiàn)最終經(jīng)B1′點(diǎn)交像面于Bz′點(diǎn),那實(shí)際像點(diǎn)Bz’就偏離了理想像點(diǎn)B0′。 ? 再看看位于光軸上的A點(diǎn),主光線(xiàn)與光軸重合,主光線(xiàn)的像點(diǎn)與理想像點(diǎn)在像面的中心點(diǎn)A′重合,因此軸上點(diǎn)成像沒(méi)有偏差,但是軸外點(diǎn)的像高和理想像高有差異,造成中心和邊緣的放大倍率不同,這就產(chǎn)生了畸變。 ? 所以,由以上分析可以看出,畸變的形成既有場(chǎng)曲的因素也有球差的因素。 ? 注: 篇幅有限,這里就不再解釋關(guān)于球差,慧差,場(chǎng)曲的概念了,后續(xù)文章會(huì)再單獨(dú)描述; ? c、關(guān)于畸變的計(jì)算 再回到上面鏡頭的spec,描述了鏡頭的 TV 畸變是10.5%,光學(xué)畸變是20%,那這兩者的區(qū)別是什么,具體是如何計(jì)算的?
? 1)、關(guān)于光學(xué)畸變: 光學(xué)畸變是對(duì)應(yīng)鏡頭的指標(biāo),描述的是物體所成像的理想位置和實(shí)際位置的偏差,如下光路圖中的軸外一點(diǎn)B,實(shí)際像點(diǎn)Bz',理想像點(diǎn)為B0′。 ? 可以用理想像高y’,和實(shí)際像高 yz’ 的比值來(lái)描述偏離程度, 公式為:( yz'-y' ) / y' x 100%; ?
? 可以用此項(xiàng)目中的鏡頭規(guī)格來(lái)做具體的驗(yàn)證,鏡頭的光學(xué)畸變是隨視場(chǎng)范圍變化而變化的,規(guī)格書(shū)給出的20%是最大的光學(xué)畸變值, ? 所以我們要計(jì)算出最大的理想像高,也就是計(jì)算當(dāng)是最大視場(chǎng)范圍時(shí)成像時(shí)的理想像高是多少。 ?
? 最大的視場(chǎng)角如上規(guī)格書(shū),對(duì)角線(xiàn)方向的 FOV 值為120° (如下圖 ? = 60° ),焦距 f 是2.13mm,理想像高為:tan 60° x 2.13 = 3.689mm; ? 而最大實(shí)際像高就是 sensor 對(duì)角線(xiàn)長(zhǎng)的一半:5.867 / 2 = 2.934mm; 則鏡頭最大光學(xué)畸變?yōu)椋海?.934-3.689)/ 3.689 x 100% = - 20% ;
2)、關(guān)于 TV 畸變: TV畸變是對(duì)應(yīng)所拍攝出的圖片而言的,體現(xiàn)圖像的變形程度,我們平常用 imatest 軟件所測(cè)試的就是TV畸變的值。? ? TV 是 Transverse Vertical,橫向豎向的意思。 ? 關(guān)于TV畸變的計(jì)算它有SMIA 和 Traditional TV distortion 兩種,如下示意圖所示:
SMIA TV Distortion = 100% * ( A-B )/B ;A = ( A1+A2 )/2 Traditional TV distortion = 100% * ?H/H ? 如上?SMIA TV Distortion 計(jì)算中,A =?( A1+A2 )/2 =?H+2?H,B = H,則 100% *(A-B)/B = 2?H/H,所以 SMIA TV Distortion = 2x Traditional TV distortion。 ? 還是以此項(xiàng)目中用到的鏡頭來(lái)做具體的驗(yàn)證,規(guī)格書(shū)中給出的TV 畸變值是10.5%,且是SMIA TV 畸變; ?
? 如下是實(shí)拍的棋盤(pán)格的圖,用來(lái)計(jì)算 SMIA TV畸變,拍兩條橫向直線(xiàn),讓他們與圖像的上下邊相切。 ?
? 兩條直線(xiàn)與圖像左側(cè)相交,得到兩個(gè)坐標(biāo),計(jì)算出縱向像素差A(yù)1。同樣的方法可以得到右側(cè)的縱向像素差A(yù)2。兩條直線(xiàn)間的距離就是圖像的高B,畸變值就是((A1+A2)/2 - B)/B。 ? 用畫(huà)圖工具打開(kāi)后,就可以得到每個(gè)點(diǎn)的像素位置,如下圖的坐標(biāo)所示,先算出左側(cè)的像素差(2944-176=2768),右側(cè)的像素差(2937-169=2768),中間的像素差為3120, ? 可以計(jì)算出畸變值為:((2768+2768)/2 - 3120)/3120 = -11.2%),結(jié)果有點(diǎn)誤差,但也不大,實(shí)際測(cè)試一般都是用 imatest 軟件去計(jì)算,能了解一下具體是怎么計(jì)算的就可以了。??
責(zé)任編輯:彭菁
-
模擬
+關(guān)注
關(guān)注
7文章
1438瀏覽量
84478 -
鏡頭
+關(guān)注
關(guān)注
2文章
523瀏覽量
26029 -
線(xiàn)型
+關(guān)注
關(guān)注
0文章
5瀏覽量
6620
原文標(biāo)題:關(guān)于鏡頭畸變問(wèn)題的總結(jié)
文章出處:【微信號(hào):機(jī)器視覺(jué)沙龍,微信公眾號(hào):機(jī)器視覺(jué)沙龍】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
VirtualLab Fusion應(yīng)用:畸變分析儀
基于除法畸變模型的鏡頭線(xiàn)性標(biāo)定方法
Blackfin-Download生產(chǎn)碼的空間變換和鏡頭畸變校正(STLDC)

一種廣角鏡頭成像幾何畸變校正算法實(shí)現(xiàn)

halcon單相機(jī)標(biāo)定和畸變矯正程序

諧波畸變率計(jì)算公式解析

電流諧波畸變率最高多少算正常
市電諧波電壓畸變率標(biāo)準(zhǔn)值
電壓總諧波畸變率多少合格
基于DCC和張氏標(biāo)定的相機(jī)鏡頭畸變校正

評(píng)論