双目估计方法_教你提高双目立体视觉系统的精度!
雙目立體視覺(jué)(Binocular Stereo Vision)是機(jī)器視覺(jué)的一種重要形式,它是基于視差原理并利用成像設(shè)備從不同的位置獲取被測(cè)物體的兩幅圖像,通過(guò)計(jì)算圖像對(duì)應(yīng)點(diǎn)間的位置偏差,來(lái)獲取物體三維幾何信息的方法1。
精度,是雙目立體視覺(jué)至關(guān)重要的指標(biāo)。
雙目立體視覺(jué)系統(tǒng),不談精度幾許,未免顯得業(yè)余!精度不行?
“來(lái),小同志往邊上讓一讓,下一個(gè)!”精度很高?
“小伙子你們?cè)O(shè)備多少錢!能打個(gè)折不!”做過(guò)雙目研究的伙伴們,肯定是經(jīng)常和精度打交道的,大部分人也肯定知道,雙目立體視覺(jué)的精度主要看的是深度方向的精度!深度圖是很多雙目設(shè)備的輸出數(shù)據(jù),通過(guò)深度圖以及相機(jī)參數(shù),可以算出三維點(diǎn)云的空間坐標(biāo),公式如下:
可知深度D DD的角色感很強(qiáng),把深度估計(jì)準(zhǔn)了,那三維點(diǎn)也就準(zhǔn)了。(什么,相機(jī)標(biāo)定也不準(zhǔn)?當(dāng)我沒(méi)說(shuō)!)
所以,如何讓深度精度更高?
我們?cè)賮?lái)看一個(gè)經(jīng)典公式:
這可再熟悉不過(guò)了,
是深度, 是基線, 是焦距(像素單位), 是視差。咱們一分為二看這個(gè)公式,右邊分母部分是像素視差值,和算法相關(guān);分子部分是系統(tǒng)硬件參數(shù),和硬件相關(guān)。可知深度精度是由算法和硬件綜合決定。
研發(fā):“哥們,你們硬件做的不行啊!”硬件:“屁,是你們算法不行!”
老板:“都是廢物!”
對(duì)各參數(shù)不太清楚的同學(xué)可以看下圖:
1 算法因素
咱們先分析算法對(duì)精度的影響。那么硬件參數(shù)
和 就假設(shè)是已知且恒定的了。假設(shè)視差偏差為
,則計(jì)算視差偏差 下的深度偏差 :(修訂:假設(shè)視差偏差和深度偏差都是正值(假設(shè)負(fù)值同理),公式(2)左邊應(yīng)該是減號(hào)) 和 已知且恒定,如果我們把 也恒定,也就是在同一個(gè)深度距離下評(píng)判精度,由公式(1)可知 也就恒定。此時(shí)容易發(fā)現(xiàn), 越小, 越小。說(shuō)明:(一)視差偏差越小,深度偏差越小;換言之,算法的視差精度越高,深度精度越高,深度精度和視差精度成正比。
所以更高精度的視差估計(jì)算法,自然能帶來(lái)更高的深度精度。
2 硬件因素
上面分析算法對(duì)精度的影響,所以固定了硬件參數(shù)
和 。現(xiàn)在我們來(lái)分析視差精度恒定的情況下,硬件參數(shù)如何影響精度。還是基于上面三個(gè)公式,但是做一些修改,把公式(1)代入到(3)中,如下:(修訂:假設(shè)視差偏差和深度偏差都是正值(假設(shè)負(fù)值同理),公式(2)左邊應(yīng)該是減號(hào))同樣,我們把
恒定,也就是在同一個(gè)深度距離下評(píng)判精度,因?yàn)橐暡罹群愣?#xff08;也就是視差估計(jì)算法定了,精度差不多固定了),因此 也恒定。不難發(fā)現(xiàn), 和 對(duì) 有相同的影響關(guān)系, 越大、 越大, 越小。說(shuō)明:(二)基線越大、焦距(像素單位)越長(zhǎng),深度精度越高。深度精度和基線、焦距成正比。
從公式中我們看到,影響
的實(shí)際是基線和焦距的乘積,所以若兩個(gè)一起增大,那深度精度必然增大,若一個(gè)增大一個(gè)減小,那么深度精度可能增大也可能減小。另一個(gè)需要說(shuō)明的是,
是焦距的像素單位,它和焦距的空間尺寸和像素大小有關(guān),設(shè)焦距的空間尺寸為 ,像素大小為 ,則 的計(jì)算公式為:顯然,
越小, 越大。我們知道 的大小是相機(jī)傳感器尺寸決定的,而焦距是鏡頭決定的。所以選相機(jī)的時(shí)候要了解第三個(gè)知識(shí):(三)像素大小越小,同樣的物理尺寸焦距有更長(zhǎng)的像素尺寸焦距,深度精度就越高。
3 深度范圍
上面我們分析了算法參數(shù)和硬件參數(shù)對(duì)深度精度的影響,但還有一個(gè)重要的因素,它即非硬件相關(guān)也非算法相關(guān),它就是深度本身的大小,也即深度范圍。簡(jiǎn)單的說(shuō),目標(biāo)離鏡頭的距離不同,精度是不一樣的。
對(duì)上一節(jié)的公式(3)再多做一步推導(dǎo):
這里討論深度范圍,所以假設(shè)
、 和 都恒定。顯然可以發(fā)現(xiàn), 越小, 越小。所以我們得出第四個(gè)結(jié)論:(四)測(cè)量目標(biāo)離系統(tǒng)越近,深度精度越高。
4 總結(jié)
我想大家其實(shí)在實(shí)際應(yīng)用中都會(huì)有一些直觀的理解,比如(1)算法越好,精度越高,明擺著嘛!(2)相機(jī)分辨率越高,精度越高,這不廢話嘛!(3)基線越長(zhǎng),精度越高,顯而易見(jiàn)嘛!
本文的目的就是通過(guò)公式推導(dǎo)來(lái)嚴(yán)格證明,以讓大家更加清晰的明白各因素影響精度的本質(zhì),從而更科學(xué)的指導(dǎo)雙目系統(tǒng)的設(shè)計(jì)。再來(lái)匯總一下上面的四條結(jié)論:
(一)視差偏差越小,深度偏差越小;換言之,算法的視差精度越高,深度精度越高,深度精度和視差精度成正比。 (二)基線越大、焦距(像素單位)越長(zhǎng),深度精度越高。深度精度和基線、焦距成正比。 (三)像素大小越小,同樣的物理尺寸焦距有更長(zhǎng)的像素尺寸焦距,深度精度就越高。 (四)測(cè)量目標(biāo)離系統(tǒng)越近,深度精度越高。所以同學(xué)們你們現(xiàn)在知道怎么設(shè)計(jì)雙目系統(tǒng)能提高精度了嗎?
(1)選高精度視差估計(jì)算法 (2)在應(yīng)用場(chǎng)景允許、結(jié)構(gòu)穩(wěn)定性滿足需求的情況下,盡可能延長(zhǎng)基線。 (3)在視場(chǎng)范圍、景深滿足需求的情況下,盡可能選擇長(zhǎng)焦鏡頭 (4)在算力允許的情況下,選擇高分辨率相機(jī)(本質(zhì)上應(yīng)該是像素尺寸小的相機(jī),有的相機(jī)提高了分辨率,只是提升了視域,但像素尺寸不變,那精度也不變) (5)測(cè)量距離適當(dāng)拉近(這點(diǎn)往往是場(chǎng)景需求決定的)總結(jié)
以上是生活随笔為你收集整理的双目估计方法_教你提高双目立体视觉系统的精度!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 二十万字C/C++、嵌入式软开面试题全集
- 下一篇: 超详细的8psk调制解调通信系统讲解与仿