本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種飛行器的障礙物檢測(cè)方法和裝置。
背景技術(shù):
無人駕駛飛機(jī)簡(jiǎn)稱為飛行器,飛行器在國(guó)民經(jīng)濟(jì)、軍事上都有很多應(yīng)用,目前飛行器己被廣泛應(yīng)用于航拍攝影、電力巡檢、環(huán)境監(jiān)測(cè)、森林防火、災(zāi)情巡查、防恐救生、軍事偵察、戰(zhàn)場(chǎng)評(píng)估等領(lǐng)域,飛行器是利用無線電遙控設(shè)備和自備的程序控制裝置操縱的不載人飛機(jī)。機(jī)上無駕駛艙,但安裝有自動(dòng)駕駛儀、程序控制裝置、信息采集裝置等設(shè)備,遙控站人員通過雷達(dá)等設(shè)備,對(duì)其進(jìn)行跟蹤、定位、遙控、遙測(cè)和數(shù)字傳輸。
現(xiàn)有技術(shù)中飛行器在檢測(cè)障礙物時(shí)通常采用如下兩種方案:1、飛行器基于激光雷達(dá)進(jìn)行障礙物的檢測(cè),2、飛行器基于超聲波檢測(cè)障礙物。對(duì)于現(xiàn)有的方法1,飛行器中需要安裝激光雷達(dá),激光雷達(dá)檢測(cè)障礙物易受到太陽光的影響,在強(qiáng)光下面,激光雷達(dá)無法準(zhǔn)確探測(cè)障礙物,降低了障礙物檢測(cè)的精確度。對(duì)于現(xiàn)有的方法2,飛行器中需要安裝超聲波發(fā)生器,通過其發(fā)射的超聲波來檢測(cè)障礙物,這種超聲波檢測(cè)的方式對(duì)于非垂直平面或者異形物體的檢測(cè)會(huì)出現(xiàn)很大的誤差。
綜上,現(xiàn)有技術(shù)中需要在飛行器安裝額外的器件用于障礙物檢測(cè),這不利于飛行器的小型化發(fā)展,并在現(xiàn)有技術(shù)還存在障礙物檢測(cè)精確度低的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種飛行器的障礙物檢測(cè)方法和裝置,用于減少飛行器的障礙物檢測(cè)誤差,提高飛行器的障礙物檢測(cè)精度。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供以下技術(shù)方案:
第一方面,本發(fā)明實(shí)施例提供一種飛行器的障礙物檢測(cè)方法,包括:
通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像,其中,所述第一圖像由所述雙目攝像頭中的左眼拍攝得到,所述第二圖像由所述雙目攝像頭中的右眼拍攝得到;
確定所述目標(biāo)障礙物投影在所述第一圖像中的第一像素位置,以及所述目標(biāo)障礙物投影在所述第二圖像中的第二像素位置,并根據(jù)所述第一像素位置和所述第二像素位置計(jì)算所述第一像素位置和所述第二像素位置之間的視差值;
根據(jù)所述第一像素位置和所述第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算所述雙目攝像頭距離所述目標(biāo)障礙物的深度值。
第二方面,本發(fā)明實(shí)施例還提供一種飛行器的障礙物檢測(cè)裝置,包括:
圖像采集模塊,用于通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像,其中,所述第一圖像由所述雙目攝像頭中的左眼拍攝得到,所述第二圖像由所述雙目攝像頭中的右眼拍攝得到;
視差計(jì)算模塊,用于確定所述目標(biāo)障礙物投影在所述第一圖像中的第一像素位置,以及所述目標(biāo)障礙物投影在所述第二圖像中的第二像素位置,并根據(jù)所述第一像素位置和所述第二像素位置計(jì)算所述第一像素位置和所述第二像素位置之間的視差值;
深度計(jì)算模塊,用于根據(jù)所述第一像素位置和所述第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算所述雙目攝像頭距離所述目標(biāo)障礙物的深度值。
從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
在本發(fā)明實(shí)施例中,首先通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像,其中,第一圖像由雙目攝像頭中的左眼拍攝得到,第二圖像由雙目攝像頭中的右眼拍攝得到,然后確定目標(biāo)障礙物投影在第一圖像中的第一像素位置,以及目標(biāo)障礙物投影在第二圖像中的第二像素位置,并根據(jù)第一像素位置和第二像素位置計(jì)算第一像素位置和第二像素位置之間的視差值,最后根據(jù)第一像素位置和第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算雙目攝像頭距離目標(biāo)障礙物的深度值。本發(fā)明實(shí)施例通過飛行器的內(nèi)置雙目攝像頭實(shí)現(xiàn)前向障礙物的實(shí)時(shí)檢測(cè),不需要在飛行器中增加額外的器件設(shè)備,對(duì)于飛行器的飛行場(chǎng)景和障礙物的形狀都不需要限制,通過圖像的分析和計(jì)算可以準(zhǔn)確的計(jì)算出雙目攝像頭距離目標(biāo)障礙物的深度值,減少飛行器的障礙物檢測(cè)誤差,提高飛行器的障礙物檢測(cè)精度。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種飛行器的障礙物檢測(cè)方法的流程方框示意圖;
圖2為本發(fā)明實(shí)施例提供的雙目立體視覺障礙物檢測(cè)的整個(gè)工作流程示意圖;
圖3為本發(fā)明實(shí)施例提供的雙目立體視覺障礙物檢測(cè)中圖像處理環(huán)節(jié)的流程示意圖;
圖4為本發(fā)明實(shí)施例提供的雙目立體視覺障礙物檢測(cè)中視差值計(jì)算環(huán)節(jié)的流程示意圖;
圖5-a為本發(fā)明實(shí)施例提供的一種飛行器的障礙物檢測(cè)裝置的組成結(jié)構(gòu)示意圖;
圖5-b為本發(fā)明實(shí)施例提供的另一種飛行器的障礙物檢測(cè)裝置的組成結(jié)構(gòu)示意圖;
圖5-c為本發(fā)明實(shí)施例提供的另一種飛行器的障礙物檢測(cè)裝置的組成結(jié)構(gòu)示意圖;
圖5-d為本發(fā)明實(shí)施例提供的另一種飛行器的障礙物檢測(cè)裝置的組成結(jié)構(gòu)示意圖;
圖5-e為本發(fā)明實(shí)施例提供的一種視差計(jì)算模塊的組成結(jié)構(gòu)示意圖;
圖5-f為本發(fā)明實(shí)施例提供的一種深度計(jì)算模塊的組成結(jié)構(gòu)示意圖;
圖5-g為本發(fā)明實(shí)施例提供的另一種飛行器的障礙物檢測(cè)裝置的組成結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例提供的飛行器的障礙物檢測(cè)方法應(yīng)用于飛行器的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種飛行器的障礙物檢測(cè)方法和裝置,用于減少飛行器的障礙物檢測(cè)誤差,提高飛行器的障礙物檢測(cè)精度。
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域的技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,以便包含一系列單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于那些單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它單元。
以下分別進(jìn)行詳細(xì)說明。
本發(fā)明飛行器的障礙物檢測(cè)方法的一個(gè)實(shí)施例,具體可以應(yīng)用于飛行器飛行過程中的目標(biāo)障礙物避障場(chǎng)景中,飛行器具體可以是無人機(jī)、也可以是遙控飛機(jī)、航模飛機(jī)等。本發(fā)明實(shí)施例通過飛行器自帶的雙目攝像頭實(shí)現(xiàn)對(duì)目標(biāo)障礙物的圖像拍攝,再通過對(duì)左右眼拍攝的圖像進(jìn)行視差值、深度值的計(jì)算,就可以確定出障礙物與飛行器之間的深度值,通過圖像的分析計(jì)算就可以檢測(cè)出障礙物,無需在飛行器中內(nèi)置額外器件,有利于飛行器的小型化發(fā)展。請(qǐng)參閱圖1所示,本發(fā)明一個(gè)實(shí)施例提供的飛行器的障礙物檢測(cè)方法,可以包括如下步驟:
101、通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像。
其中,第一圖像由雙目攝像頭中的左眼拍攝得到,第二圖像由雙目攝像頭中的右眼拍攝得到。
在本發(fā)明實(shí)施例中,飛行器需要對(duì)前方出現(xiàn)的目標(biāo)障礙物進(jìn)行實(shí)時(shí)的檢測(cè),飛行器中設(shè)置有雙目攝像頭,該雙目攝像頭的左右眼(即兩個(gè)攝像頭)實(shí)時(shí)拍攝目標(biāo)障礙物,并生成在不同時(shí)刻拍攝的圖像,本發(fā)明實(shí)施例中通過飛行器中已有的雙目攝像頭拍攝目標(biāo)障礙物,雙目攝像頭可以被動(dòng)接收可見光,因此不會(huì)受到強(qiáng)光干擾,在復(fù)雜場(chǎng)景下面也可以很好的估算物體的深度信息,很好的解決了激光雷達(dá)和超聲波的缺陷,同時(shí)本發(fā)明實(shí)施例中使用的雙目攝像頭是普通的攝像頭,因此其硬件成本比激光雷達(dá)要低很多。
本發(fā)明實(shí)施例中每對(duì)攝像頭采集在同一時(shí)刻采集相同的目標(biāo)障礙物可以得到兩個(gè)圖像,其中為了區(qū)別上述兩個(gè)圖像,由雙目攝像頭中的左眼拍攝得到的圖像定義為“第一圖像”,由雙目攝像頭中的右眼拍攝得到“第二圖像”,第一圖像和第二圖像只是用于區(qū)分兩個(gè)攝像頭分別拍攝到的圖像。
102、確定目標(biāo)障礙物投影在第一圖像中的第一像素位置,以及目標(biāo)障礙物投影在第二圖像中的第二像素位置,并根據(jù)第一像素位置和第二像素位置計(jì)算第一像素位置和第二像素位置之間的視差值。
在本發(fā)明實(shí)施例中,第一圖像和第二圖像是對(duì)同一時(shí)刻的同一個(gè)目標(biāo)障礙物進(jìn)行拍攝得到的兩個(gè)圖像,同一目標(biāo)障礙物投影到左右攝像頭中,其位置會(huì)有一些差別,對(duì)于第一圖像和第二圖像先計(jì)算出目標(biāo)障礙物的投影位置,其中為了區(qū)別上述兩個(gè)投影位置,將目標(biāo)障礙物在第一圖像中的投影位置定義為“第一圖像位置”,將目標(biāo)障礙物在第二圖像中的投影位置定義為“第二圖像位置”。針對(duì)同一目標(biāo)障礙物在攝像頭中的投影會(huì)有一個(gè)像素位置,左右兩個(gè)攝像頭的像素位置會(huì)有一個(gè)偏移值,這個(gè)值就是第一像素位置和第二像素位置之間的視差值。本發(fā)明實(shí)施例中可以使用雙目立體視覺(Binocular Stereo Vision)來計(jì)算兩個(gè)像素位置之間的視差值,基于視差原理并利用成攝像頭從不同的位置獲取被測(cè)目標(biāo)障礙物的兩幅圖像,通過計(jì)算圖像對(duì)應(yīng)點(diǎn)間的位置偏差,來獲取物體三維幾何信息,雙目立體視覺融合兩個(gè)攝像頭獲得的圖像并觀察它們之間的差別,可以獲得明顯的深度感,建立特征間的對(duì)應(yīng)關(guān)系,將同一空間物理點(diǎn)在不同圖像中的映像點(diǎn)對(duì)應(yīng)起來,這個(gè)差別也可以稱作視差圖像。
在本發(fā)明的一些實(shí)施例中,步驟102中的確定目標(biāo)障礙物投影在第一圖像中的第一像素位置,以及目標(biāo)障礙物投影在第二圖像中的第二像素位置,包括:
A1、根據(jù)飛行器在雙目攝像頭中形成的機(jī)身尺寸圖像確定圖像選擇窗口,圖像選擇窗口的總像素值大于機(jī)身尺寸圖像的總像素值、且小于第一圖像的總像素值、且小于第二圖像的總像素值;
A2、使用圖像選擇窗口分別從第一圖像、第二圖像中選擇出與圖像選擇窗口對(duì)應(yīng)的第一子圖像和第二子圖像;
A3、使用全局匹配(Semi-Global Block Matching,SGBM)算法對(duì)第一子圖像和第二子圖像分別拍攝到的目標(biāo)障礙物進(jìn)行圖像點(diǎn)的匹配,通過匹配成功的圖像點(diǎn)確定目標(biāo)障礙物投影在第一子圖像中的第一像素位置,以及目標(biāo)障礙物投影在第二子圖像中的第二像素位置。
其中,為了提高對(duì)圖像的處理速度,滿足飛行器的實(shí)時(shí)計(jì)算需求,可以根據(jù)飛行器在雙目攝像頭中形成的機(jī)身尺寸圖像確定圖像選擇窗口,飛行器在飛行方向上只需要保證正前方的障礙物被實(shí)時(shí)的探測(cè),在飛行軌跡以外的障礙物不會(huì)影響到飛行器的飛行,因此本發(fā)明實(shí)施例中可以預(yù)先根據(jù)飛行器的機(jī)身尺寸確定出圖像選擇窗口,該圖像選擇窗口用于對(duì)第一圖像、第二圖像進(jìn)行裁剪,選擇出與圖像選擇窗口對(duì)應(yīng)的第一子圖像和第二子圖像,其中,第一子圖像是第一圖像中與圖像選擇窗口相同大小的圖像內(nèi)容,第二子圖像是第二圖像中與圖像選擇窗口相同大小的圖像內(nèi)容,該圖像選擇窗口的大小只需要大于飛行器的實(shí)際大小均可,即可保證飛行器在未探測(cè)到障礙時(shí)不會(huì)碰撞到障礙,則步驟A3中只需要計(jì)算該圖像選擇窗口內(nèi)的視差值,不需要計(jì)算圖像選擇窗口之外的視差值,這可以大大減少圖像處理資源的開銷。
本發(fā)明實(shí)施例中,步驟A3中使用SGBM算法對(duì)第一子圖像和第二子圖像分別拍攝到的目標(biāo)障礙物進(jìn)行圖像點(diǎn)的匹配,SGBM算法可以基于Open CV完成兩個(gè)圖像中的圖像點(diǎn)匹配,再結(jié)合步驟A1和步驟A2中對(duì)原有圖像的窗口選擇,因此SGBM算法還需要計(jì)算圖像選擇窗口內(nèi)的視差值即可,不限定的是,在本發(fā)明的其它實(shí)施例中,還可以使用其它的立體匹配算法,例如OpenCV2.1中的BM算法和GC算法,此處不做限定。
在本發(fā)明的一些實(shí)施例中,步驟101通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像之后,本發(fā)明實(shí)施例提供的飛行器的障礙物檢測(cè)方法還包括:
B1、對(duì)第一圖像和第二圖像分別進(jìn)行縮放處理和裁剪處理;
B2、將處理后的第一圖像、第二圖像分別轉(zhuǎn)換為第一灰度圖和第二灰度圖,并對(duì)第一灰度圖和第二灰度圖分別進(jìn)行均衡化處理;
在執(zhí)行步驟B1和B2的實(shí)現(xiàn)場(chǎng)景下,步驟102中的確定目標(biāo)障礙物投影在第一圖像中的第一像素位置,以及目標(biāo)障礙物投影在第二圖像中的第二像素位置,包括:
B3、從均衡化處理后的第一灰度圖中確定出目標(biāo)障礙物投影到的第一像素位置,從均衡化處理后的第二灰度圖中確定出目標(biāo)障礙物投影到的第二圖像位置。
其中,對(duì)于雙目攝像頭采集目標(biāo)對(duì)象得到的圖像,若存在干擾情況,還可以對(duì)圖像進(jìn)行預(yù)處理,例如可以進(jìn)行縮放處理、裁剪處理和灰度直方圖的均衡化處理。其中,對(duì)圖像的縮放處理時(shí)可以將攝像頭采集目標(biāo)對(duì)象得到的圖像分別縮放到一個(gè)適合進(jìn)行目標(biāo)障礙物識(shí)別的比例,例如可以放大圖像也可以縮小圖像。對(duì)于圖像的裁剪,在處理時(shí)可以剪裁掉左右兩幅圖像邊緣的多個(gè)像素點(diǎn),這樣可以減少視覺處理的計(jì)算量。在本發(fā)明的另一些實(shí)施例中,如果一副圖像的像素占有很多的灰度級(jí)而且分布均勻,那么這樣的圖像往往有高對(duì)比度和多變的灰度色調(diào)。對(duì)灰度圖的均衡化處理也稱為直方圖均衡化,就是一種能僅靠輸入圖像直方圖信息自動(dòng)達(dá)到這種效果的變換函數(shù)。它的基本思想是對(duì)圖像中像素個(gè)數(shù)多的灰度級(jí)進(jìn)行展寬,而對(duì)圖像中像素個(gè)數(shù)少的灰度進(jìn)行壓縮,從而擴(kuò)展像素取值的動(dòng)態(tài)范圍,提高了對(duì)比度和灰度色調(diào)的變化,使圖像更加清晰。通過前述對(duì)圖像的預(yù)處理,還可以使圖像的光照均衡,圖像大小適合移動(dòng)設(shè)備處理。
在本發(fā)明實(shí)施例執(zhí)行前述步驟B1和步驟B2的實(shí)現(xiàn)場(chǎng)景下,對(duì)于飛行器中目標(biāo)攝像頭實(shí)時(shí)采集目標(biāo)障礙物得到的圖像,若先對(duì)該圖像轉(zhuǎn)換得到的灰度圖進(jìn)行了均衡化處理,則視差計(jì)算時(shí)需要的圖像就是均衡化處理后的灰度圖,對(duì)左右兩個(gè)攝像頭采集到的灰度圖中投影到的目標(biāo)障礙物進(jìn)行檢測(cè)可以得到第一像素位置和第二像素位置。
在本發(fā)明的一些實(shí)施例中,步驟101通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像之后,本發(fā)明實(shí)施例提供的飛行器的障礙物檢測(cè)方法還包括:
C1、獲取雙目攝像頭的內(nèi)參信息和外參信息,內(nèi)參信息包括:左眼的徑向畸變參數(shù)和切向畸變參數(shù)、右眼的徑向畸變參數(shù)和切向畸變參數(shù),外參信息包括:雙目攝像頭中左眼和右眼之間的旋轉(zhuǎn)矩陣和偏移矩陣;
C2、根據(jù)內(nèi)參信息分別對(duì)第一圖像和第二圖像進(jìn)行畸變補(bǔ)償,得到畸變補(bǔ)償完成后的第一圖像和畸變補(bǔ)償完成后的第二圖像;
C3、根據(jù)外參信息對(duì)畸變補(bǔ)償完成后的第一圖像和畸變補(bǔ)償完成后的第二圖像進(jìn)行同一水平面上的圖像校正處理。
其中,為了提高對(duì)圖像計(jì)算的準(zhǔn)確度,若雙目攝像頭沒有進(jìn)行提前標(biāo)定,還可以對(duì)雙目攝像頭采集的圖像進(jìn)行校正,其中包括圖像的畸變校正和圖像的對(duì)準(zhǔn)。例如,在圖像裁剪以后,本發(fā)明實(shí)施例中可以使用Open CV的remap函數(shù)根據(jù)之前攝像頭標(biāo)定得到的內(nèi)參和外參對(duì)圖像做畸變校正和對(duì)準(zhǔn),經(jīng)過remap函數(shù)后的左右眼圖像就滿足數(shù)學(xué)意義上面的在同一水平線上面的圖像。雙目攝像頭的外參信息中包括旋轉(zhuǎn)矩陣和偏移矩陣,通過旋轉(zhuǎn)矩陣和偏移矩陣對(duì)第一圖像和第二圖像的校正,可以對(duì)第一圖像和第二圖像進(jìn)行對(duì)準(zhǔn)校正,使得第一圖像和第二圖像滿足是處于同一水平線上面的圖像。
103、根據(jù)第一像素位置和第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算雙目攝像頭距離目標(biāo)障礙物的深度值。
在本發(fā)明實(shí)施例中,計(jì)算出第一像素位置和第二像素位置之間的視差值之后,通過對(duì)雙目攝像頭的攝像頭參數(shù)進(jìn)行計(jì)算可以預(yù)先確定出左右兩個(gè)攝像頭的視差深度映射矩陣,再根據(jù)視差值和深度值之間的反比關(guān)系,可以計(jì)算出雙目攝像頭距離目標(biāo)障礙物的深度值,其中,目標(biāo)障礙物的深度值是指目標(biāo)障礙物所在的平面與雙目攝像頭的之間的垂直距離,通過計(jì)算出的深度值可以確定在飛行器的飛行方向上距離多遠(yuǎn)的距離會(huì)出現(xiàn)障礙物。
在本發(fā)明的一些實(shí)施例中,步驟103根據(jù)第一像素位置和第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算雙目攝像頭距離目標(biāo)障礙物的深度值之后,本發(fā)明實(shí)施例提供的方法還包括:
D1、將雙目攝像頭距離目標(biāo)障礙物的深度值發(fā)送給飛行器的飛行控制模塊,由飛行控制模塊根據(jù)雙目攝像頭距離目標(biāo)障礙物的深度值判斷在其飛行方向上是否有障礙物阻擋。
其中,通過步驟103計(jì)算出雙目攝像頭距離目標(biāo)障礙物的深度值之后,該深度值可以用于飛行控制模塊判斷當(dāng)前飛行器距離目標(biāo)障礙物的距離,飛行控制模塊根據(jù)雙目攝像頭距離目標(biāo)障礙物的深度值判斷在其飛行方向上是否有障礙物阻擋,例如該深度值表示距離小于某個(gè)門限值(例如1米),那么表示飛行器將會(huì)碰撞到目標(biāo)障礙物。
在本發(fā)明的一些實(shí)施例中,在前述執(zhí)行步驟A1至步驟A3的實(shí)現(xiàn)場(chǎng)景下,步驟103根據(jù)第一像素位置和第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算雙目攝像頭距離目標(biāo)障礙物的深度值,包括如下步驟:
E1、根據(jù)第一像素位置和第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣分別計(jì)算出與圖像選擇窗口對(duì)應(yīng)的所有像素點(diǎn)的深度值;
E2、將圖像選擇窗口劃分為多個(gè)圖像子窗口,根據(jù)與圖像選擇窗口對(duì)應(yīng)的所有像素點(diǎn)的深度值分別計(jì)算出每個(gè)圖像子窗口的深度值;
E3、從每個(gè)圖像子窗口的深度值中選擇深度值最小的圖像子窗口,確定深度值最小的圖像子窗口的深度值為雙目攝像頭距離目標(biāo)障礙物的深度值。
其中,在前述步驟A1至步驟A3的實(shí)現(xiàn)場(chǎng)景下,根據(jù)飛行器在雙目攝像頭中形成的機(jī)身尺寸圖像確定圖像選擇窗口,對(duì)于第一圖像和第二圖像都使用圖像選擇窗口分別劃分出第一子圖像和第二子圖像。因此在步驟E1中只需要對(duì)于第一子圖像和第二子圖像中每個(gè)像素點(diǎn)的深度值進(jìn)行計(jì)算,第一圖像和第二圖像中處于圖像選擇窗口以外的像素點(diǎn)的深度值不需要計(jì)算,因此可以大大減少計(jì)算深度值所需要的計(jì)算資源開銷,例如可以減少中央處理器(Central Processing Unit,CPU)的計(jì)算負(fù)荷。步驟E1中計(jì)算圖像選擇窗口內(nèi)的像素點(diǎn)的深度值可以是用視差值和視差深度映射矩陣(Disparity-to-Depth Mapping Matrix)做矩陣乘法來獲得實(shí)際的三維點(diǎn)位置,具體的,在本發(fā)明實(shí)施例中可以使用OpenCV提供的stereoRectify函數(shù)來獲得該映射矩陣和像素點(diǎn)的深度值。計(jì)算出與圖像選擇窗口對(duì)應(yīng)的所有像素點(diǎn)的深度值之后,將圖像選擇窗口劃分為多個(gè)圖像子窗口,例如將其等分成4×4的子窗口。在步驟E2中計(jì)算每個(gè)圖像子窗口的深度值時(shí),具體可以從每個(gè)圖像子窗口的所有像素點(diǎn)的深度值中選擇深度值最小的作為該圖像子窗口的深度值。例如,根據(jù)與圖像選擇窗口對(duì)應(yīng)的所有像素點(diǎn)的深度值分別計(jì)算出16個(gè)圖像子窗口的深度值,再?gòu)?6個(gè)圖像子窗口的深度值中選擇深度值最小的圖像子窗口,確定深度值最小的圖像子窗口的深度值為雙目攝像頭距離目標(biāo)障礙物的深度值,這表示在該子窗口內(nèi)距離飛行器最近的障礙物的距離。
進(jìn)一步的,在本發(fā)明的另一些實(shí)施例中,步驟E3確定深度值最小的圖像子窗口的深度值為雙目攝像頭距離目標(biāo)障礙物的深度值之后,本發(fā)明實(shí)施例提供的方法還包括:
E4、將每個(gè)圖像子窗口的深度值都發(fā)送給飛行器的飛行控制模塊,由飛行控制模塊根據(jù)每個(gè)圖像子窗口的深度值選擇避障方向后再調(diào)整飛行器的飛行姿態(tài)。
其中,在前述執(zhí)行步驟E1至步驟E3的實(shí)現(xiàn)場(chǎng)景下,通過對(duì)圖像選擇窗口劃分為多個(gè)圖像子窗口,則每個(gè)圖像子窗口都計(jì)算出深度值,則所有圖像子窗口的深度值也可以發(fā)送給飛行控制模塊,由飛行控制模塊根據(jù)每個(gè)圖像子窗口的深度值選擇避障方向后再調(diào)整飛行器的飛行姿態(tài)。其中,飛行器的飛行姿態(tài)可以指的是飛行器的朝向,高度和位置,在使用飛行器避障飛行的實(shí)現(xiàn)過程中,主要控制飛行器與目標(biāo)障礙物保持適當(dāng)距離進(jìn)行的位置移動(dòng)。例如,調(diào)整飛行姿態(tài)可以只是控制飛行器往前飛行,也可以指控制飛行器實(shí)現(xiàn)翻滾等飛行動(dòng)作。
通過以上實(shí)施例對(duì)本發(fā)明實(shí)施例的描述可知,首先通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像,其中,第一圖像由雙目攝像頭中的左眼拍攝得到,第二圖像由雙目攝像頭中的右眼拍攝得到,然后確定目標(biāo)障礙物投影在第一圖像中的第一像素位置,以及目標(biāo)障礙物投影在第二圖像中的第二像素位置,并根據(jù)第一像素位置和第二像素位置計(jì)算第一像素位置和第二像素位置之間的視差值,最后根據(jù)第一像素位置和第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算雙目攝像頭距離目標(biāo)障礙物的深度值。本發(fā)明實(shí)施例通過飛行器的內(nèi)置雙目攝像頭實(shí)現(xiàn)前向障礙物的實(shí)時(shí)檢測(cè),不需要在飛行器中增加額外的器件設(shè)備,對(duì)于飛行器的飛行場(chǎng)景和障礙物的形狀都不需要限制,通過圖像的分析和計(jì)算可以準(zhǔn)確的計(jì)算出雙目攝像頭距離目標(biāo)障礙物的深度值,減少飛行器的障礙物檢測(cè)誤差,提高飛行器的障礙物檢測(cè)精度。
為便于更好的理解和實(shí)施本發(fā)明實(shí)施例的上述方案,下面舉例相應(yīng)的應(yīng)用場(chǎng)景來進(jìn)行具體說明。
如圖2所示,為本發(fā)明實(shí)施例提供的雙目立體視覺障礙物檢測(cè)的整個(gè)工作流程示意圖。雙目立體視覺是被動(dòng)接收可見光,因此不會(huì)受到強(qiáng)光干擾,在復(fù)雜場(chǎng)景下面也可以很好的估算目標(biāo)障礙物的深度信息,很好的解決了激光雷達(dá)和超聲波的缺陷,同時(shí)雙目視覺使用的是普通攝像頭,因此其硬件成本比激光雷達(dá)低很多,其中,本發(fā)明實(shí)施例中計(jì)算出的障礙物的深度信息是指障礙物所在的平面與雙目攝像頭的之間的垂直距離。
如圖2所示,以飛行器具體為無人機(jī)為例說明本發(fā)明實(shí)施例中的障礙物檢測(cè)方法,首先在無人機(jī)上安裝雙目攝像頭然后進(jìn)行攝像頭的標(biāo)定。對(duì)單個(gè)攝像頭需要做標(biāo)定,其目的是求得攝像頭的徑向畸變(例如桶形畸變)和切向畸變的參數(shù),稱為內(nèi)參(intrinsic parameters)。雙目立體視覺避障要求左右兩個(gè)眼的攝像頭安裝在同一個(gè)水平線上面,并且間隔在6cm~10cm左右。小于6cm的間隔,圖像的視差值太小不能得到合理的深度值。間隔太大近處的物體會(huì)無法匹配。安裝好的攝像頭因?yàn)闊o法在數(shù)學(xué)上實(shí)現(xiàn)精確的同一水平線。因此需要對(duì)其做立體標(biāo)定。立體標(biāo)定使用張正友標(biāo)定法,這樣可以求出兩個(gè)鏡頭之間的旋轉(zhuǎn)矩陣和偏移矩陣,這組值成為攝像頭的外參(extrinsic parameters)。圖像在被采集到后會(huì)使用內(nèi)參對(duì)其進(jìn)行畸變補(bǔ)償,然后使用外參來旋轉(zhuǎn)和平移圖像使其到達(dá)數(shù)學(xué)上面要求的同一水平線上面。
接下來介紹雙目立體視覺障礙物檢測(cè)的工作流程。
無人機(jī)通過其搭載的雙目攝像頭采集左右眼的實(shí)時(shí)圖像。左右眼的實(shí)時(shí)圖像會(huì)經(jīng)過圖像深度計(jì)算模塊來生成對(duì)應(yīng)的深度值。無人機(jī)根據(jù)深度值來確定其飛行方向上是否有障礙物阻擋。如果有障礙物阻擋,會(huì)把距離當(dāng)前障礙物的深度值發(fā)送給無人機(jī)的飛行控制模塊。
如圖3所示,為本發(fā)明實(shí)施例提供的雙目立體視覺障礙物檢測(cè)中圖像處理環(huán)節(jié)的流程示意圖,無人機(jī)中可以通過立體視覺模塊負(fù)責(zé)計(jì)算場(chǎng)景的深度信息,其工作流程分為圖像的縮放和裁剪,圖像畸變補(bǔ)償,圖像的對(duì)準(zhǔn),視差計(jì)算和深度值計(jì)算,接下來分別對(duì)各個(gè)過程進(jìn)行舉例說明。
首先說明圖像的縮放與裁剪,無人機(jī)使用雙目視覺探測(cè)障礙物時(shí),不需要高精度圖片,因此雙目攝像頭采集的圖片可以縮放到320x240的格式。因?yàn)樽笥已鄣囊暡畲嬖?,所以左右兩幅圖像的邊緣是不能匹配的,在處理時(shí)可以剪裁掉左右兩幅圖像邊緣20個(gè)像素左右,這樣可以減少視覺處理的計(jì)算量。
然后進(jìn)行圖像校正,圖像校正包括圖像的畸變校正和圖像的對(duì)準(zhǔn)。在圖像裁剪以后,會(huì)使用openCV的remap函數(shù)根據(jù)之前攝像頭標(biāo)定得到的內(nèi)參和外參對(duì)圖像做畸變校正和對(duì)準(zhǔn)。經(jīng)過remap函數(shù)后的左右眼圖像就滿足數(shù)學(xué)意義上面的在同一水平線上面的圖像。一個(gè)是對(duì)單張圖片進(jìn)行畸變校正,另外一個(gè)是對(duì)兩張圖片做平移和旋轉(zhuǎn)使其滿足數(shù)學(xué)意義上面的在同一個(gè)水平面上。
接下來說明視差值的計(jì)算過程。雙目視覺的深度值計(jì)算要先求取左右圖像對(duì)應(yīng)點(diǎn)之間的視差值。實(shí)際世界中的同一物體投影到左右攝像頭中,其位置會(huì)有一些差別。針對(duì)同一個(gè)實(shí)際空間中的點(diǎn)在攝像頭中的投影會(huì)有一個(gè)像素位置,左右兩個(gè)攝像頭的像素位置會(huì)有一個(gè)偏移值,這個(gè)值就是視差。
如圖4所示,為本發(fā)明實(shí)施例提供的雙目立體視覺障礙物檢測(cè)中視差值計(jì)算環(huán)節(jié)的流程示意圖,物理點(diǎn)P在左右攝像頭中的投影分別是點(diǎn)XL和XR。因?yàn)殡p目視覺要求在同一水平線上面,所以其Y值都相同。視差值(disparity)即是XL-XR,圖4中,f表示左右攝像頭的焦點(diǎn)位置,Tx表示兩個(gè)攝像頭之間的位移,Z就是P點(diǎn)的深度值。在本發(fā)明實(shí)施例中以使用OpenCV提供的SGBM算法為例來說明圖像點(diǎn)的匹配和視差值的計(jì)算。
為了減少SGBM算法的運(yùn)算量,在嵌入式設(shè)備上保證圖像處理計(jì)算的實(shí)時(shí)性。為了減少運(yùn)算量提高處理速度,本發(fā)明實(shí)施例中沒有對(duì)整張圖像做SGBM,根據(jù)無人機(jī)運(yùn)動(dòng)的特性,只需要對(duì)其飛行軌跡的正前方的障礙物做探測(cè),在飛行軌跡以外的障礙物不會(huì)影響到無人機(jī)的飛行。具體可以利用3維投影的計(jì)算方法,可以得到一個(gè)圖像選擇窗口,該圖像選擇窗口的大小只需要大于無人機(jī)的實(shí)際大小,即可保證無人機(jī)在未探測(cè)到障礙時(shí)不會(huì)碰撞到障礙,只需要計(jì)算該窗口內(nèi)的視差值,不需要計(jì)算窗口之外的視差值,這可以大大減少CPU的開銷。
深度值是用視差值和視差深度映射矩陣做矩陣乘法來獲得實(shí)際的三維點(diǎn)位置,其計(jì)算公式如下:
[X Y Z W]T=Q*[xydisparity(x,y)1]T;
其中,x,y是實(shí)際三維空間中的點(diǎn)在圖像中的投影坐標(biāo),單位是像素。disparity(x,y)表示在像素點(diǎn)(x,y)處的視差值,Q矩陣是視差深度映射矩陣,它是通過攝像頭內(nèi)參和外參計(jì)算得到。Q的形式如下:Tx,f,Cx,Cy,其中,Q是攝像頭的標(biāo)定和校準(zhǔn)獲得的,Tx是兩個(gè)攝像頭之間的水平偏移,f是焦距,Cx和Cy是內(nèi)參,用于表示光心和焦點(diǎn)的位置偏移。
在本發(fā)明實(shí)施例中使用OpenCV提供的stereoRectify函數(shù)來獲得該映射矩陣。通過矩陣乘法得到的[X Y Z W]T是實(shí)際的三維點(diǎn)的齊次坐標(biāo),計(jì)算出的深度值是Zc=Z/W。
最后對(duì)無人機(jī)的障礙檢測(cè)進(jìn)行說明,通過雙目視覺模塊得到了圖像選擇窗口中的所有像素點(diǎn)的深度值(單位是物理值單位,例如米),將圖像選擇窗口其等分成3x3的圖像子窗口。對(duì)每個(gè)子窗口求其深度值的最小值。子窗口中所有像素點(diǎn)的深度值的最小值就是該子窗口的深度最小值,這表示在該子窗口內(nèi)離無人機(jī)最近的障礙物的距離,其中,障礙物與攝像頭的距離是與主光軸平行的垂直于障礙物平面的連線。如果距離小于某個(gè)門限值(例如1米),那么表示無人機(jī)將會(huì)碰撞到該障礙物。每個(gè)子窗口的最小深度值可能不一樣,這可以幫助無人機(jī)飛控系統(tǒng)來決定該往哪個(gè)方向避障。我們把所有子窗口的深度值都發(fā)送給飛控系統(tǒng)。對(duì)于障礙物的探測(cè)過程舉例說明如下,可以設(shè)定一個(gè)閾值,比如1.5米,那么只要有一個(gè)圖像子窗口的深度值小于1.5米,就意味著無人機(jī)再飛1.5米就會(huì)碰到障礙物,那么需要根據(jù)其它圖像子窗口情況來判讀向哪個(gè)方向轉(zhuǎn)向來避開,比如左邊的子窗口是3米,那么可以向左避障,如果所有圖像子窗口都是1.5米,那么采用隨機(jī)轉(zhuǎn)向來避障,這只是最簡(jiǎn)單的避障策略,避障策略還可以結(jié)合人工智能,定位,地圖等來實(shí)現(xiàn)。
本發(fā)明實(shí)施例中,通過無人機(jī)的內(nèi)置雙目攝像頭實(shí)現(xiàn)前向障礙物的實(shí)時(shí)檢測(cè)。通過設(shè)定圖像選擇窗口來減少雙目匹配算法的運(yùn)算量,達(dá)到無人機(jī)障礙物探測(cè)的實(shí)時(shí)性要求。通過劃分圖像子窗口來獲取無人機(jī)前向不同位置的深度值來幫助無人機(jī)的飛行控制模塊控制無人機(jī)的轉(zhuǎn)向。
需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
為便于更好的實(shí)施本發(fā)明實(shí)施例的上述方案,下面還提供用于實(shí)施上述方案的相關(guān)裝置。
請(qǐng)參閱圖5-a所示,本發(fā)明實(shí)施例提供的一種飛行器的障礙物檢測(cè)裝置500,可以包括:圖像采集模塊501、視差計(jì)算模塊502、深度計(jì)算模塊503,其中,
圖像采集模塊501,用于通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像,其中,所述第一圖像由所述雙目攝像頭中的左眼拍攝得到,所述第二圖像由所述雙目攝像頭中的右眼拍攝得到;
視差計(jì)算模塊502,用于確定所述目標(biāo)障礙物投影在所述第一圖像中的第一像素位置,以及所述目標(biāo)障礙物投影在所述第二圖像中的第二像素位置,并根據(jù)所述第一像素位置和所述第二像素位置計(jì)算所述第一像素位置和所述第二像素位置之間的視差值;
深度計(jì)算模塊503,用于根據(jù)所述第一像素位置和所述第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算所述雙目攝像頭距離所述目標(biāo)障礙物的深度值。
在本發(fā)明的一些實(shí)施例中,請(qǐng)參閱圖5-b所示,所述飛行器的障礙物檢測(cè)裝置500還包括:圖像預(yù)處理模塊504,其中,
所述圖像預(yù)處理模塊504,用于所述圖像采集模塊501通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像之后,對(duì)所述第一圖像和所述第二圖像分別進(jìn)行縮放處理和裁剪處理;將處理后的第一圖像、第二圖像分別轉(zhuǎn)換為第一灰度圖和第二灰度圖,并對(duì)所述第一灰度圖和所述第二灰度圖分別進(jìn)行均衡化處理;
所述視差計(jì)算模塊502,具體用于從均衡化處理后的第一灰度圖中確定出所述目標(biāo)障礙物投影到的第一像素位置,從均衡化處理后的第二灰度圖中確定出所述目標(biāo)障礙物投影到的第二圖像位置。
在本發(fā)明的一些實(shí)施例中,請(qǐng)參閱圖5-c所示,相對(duì)于圖5-a所示,所述飛行器的障礙物檢測(cè)裝置500,還包括:
獲取模塊504,用于所述圖像采集模塊501通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像之后,獲取所述雙目攝像頭的內(nèi)參信息和外參信息,所述內(nèi)參信息包括:所述左眼的徑向畸變參數(shù)和切向畸變參數(shù)、所述右眼的徑向畸變參數(shù)和切向畸變參數(shù),所述外參信息包括:所述雙目攝像頭中左眼和右眼之間的旋轉(zhuǎn)矩陣和偏移矩陣;
畸變補(bǔ)償模塊505,用于根據(jù)所述內(nèi)參信息分別對(duì)所述第一圖像和所述第二圖像進(jìn)行畸變補(bǔ)償,得到畸變補(bǔ)償完成后的第一圖像和畸變補(bǔ)償完成后的第二圖像;
校正模塊506,用于根據(jù)所述外參信息對(duì)畸變補(bǔ)償完成后的第一圖像和畸變補(bǔ)償完成后的第二圖像進(jìn)行同一水平面上的圖像校正處理。
在本發(fā)明的一些實(shí)施例中,請(qǐng)參閱圖5-d所示,相對(duì)于圖5-a所示,所述飛行器的障礙物檢測(cè)裝置500,還包括:
第一發(fā)送模塊507,用于所述深度計(jì)算模塊503根據(jù)所述第一像素位置和所述第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算所述雙目攝像頭距離所述目標(biāo)障礙物的深度值之后,將所述雙目攝像頭距離所述目標(biāo)障礙物的深度值發(fā)送給所述飛行器的飛行控制模塊,由所述飛行控制模塊根據(jù)所述雙目攝像頭距離所述目標(biāo)障礙物的深度值判斷在其飛行方向上是否有障礙物阻擋。
在本發(fā)明的一些實(shí)施例中,請(qǐng)參閱圖5-e所示,所述視差計(jì)算模塊502,包括:
窗口確定模塊5021,用于根據(jù)所述飛行器在所述雙目攝像頭中形成的機(jī)身尺寸圖像確定圖像選擇窗口,所述圖像選擇窗口的總像素值大于所述機(jī)身尺寸圖像的總像素值、且小于所述第一圖像的總像素值、且小于所述第二圖像的總像素值;
圖像區(qū)域選擇模塊5022,用于使用所述圖像選擇窗口分別從所述第一圖像、所述第二圖像中選擇出與所述圖像選擇窗口對(duì)應(yīng)的第一子圖像和第二子圖像;
圖像匹配模塊5023,用于使用全局匹配SGBM算法對(duì)所述第一子圖像和所述第二子圖像分別拍攝到的所述目標(biāo)障礙物進(jìn)行圖像點(diǎn)的匹配,通過匹配成功的圖像點(diǎn)確定所述目標(biāo)障礙物投影在所述第一子圖像中的第一像素位置,以及所述目標(biāo)障礙物投影在所述第二子圖像中的第二像素位置。
進(jìn)一步的,請(qǐng)參閱圖5-f所示,所述深度計(jì)算模塊503,包括:
像素點(diǎn)深度值計(jì)算模塊5031,用于根據(jù)所述第一像素位置和所述第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣分別計(jì)算出與所述圖像選擇窗口對(duì)應(yīng)的所有像素點(diǎn)的深度值;
子窗口深度值計(jì)算模塊5032,用于將所述圖像選擇窗口劃分為多個(gè)圖像子窗口,根據(jù)與所述圖像選擇窗口對(duì)應(yīng)的所有像素點(diǎn)的深度值分別計(jì)算出每個(gè)圖像子窗口的深度值;
深度值確定模塊5033,用于從所述每個(gè)圖像子窗口的深度值中選擇深度值最小的圖像子窗口,確定所述深度值最小的圖像子窗口的深度值為所述雙目攝像頭距離所述目標(biāo)障礙物的深度值。
進(jìn)一步的,在深度計(jì)算模塊503如圖5-f的實(shí)現(xiàn)場(chǎng)景下,請(qǐng)參閱圖5-g所示,相對(duì)于如圖5-a所示,所述飛行器的障礙物檢測(cè)裝置500,還包括:
第二發(fā)送模塊508,用于所述深度值確定模塊確定所述深度值最小的圖像子窗口的深度值為所述雙目攝像頭距離所述目標(biāo)障礙物的深度值之后,將所述每個(gè)圖像子窗口的深度值都發(fā)送給所述飛行器的飛行控制模塊,由所述飛行控制模塊根據(jù)所述每個(gè)圖像子窗口的深度值選擇避障方向后再調(diào)整所述飛行器的飛行姿態(tài)。
通過以上對(duì)本發(fā)明實(shí)施例的描述可知,首先通過飛行器配置的雙目攝像頭對(duì)目標(biāo)障礙物進(jìn)行實(shí)時(shí)的圖像采集,得到第一圖像和第二圖像,其中,第一圖像由雙目攝像頭中的左眼拍攝得到,第二圖像由雙目攝像頭中的右眼拍攝得到,然后確定目標(biāo)障礙物投影在第一圖像中的第一像素位置,以及目標(biāo)障礙物投影在第二圖像中的第二像素位置,并根據(jù)第一像素位置和第二像素位置計(jì)算第一像素位置和第二像素位置之間的視差值,最后根據(jù)第一像素位置和第二像素位置之間的視差值、預(yù)置的視差深度映射矩陣計(jì)算雙目攝像頭距離目標(biāo)障礙物的深度值。本發(fā)明實(shí)施例通過飛行器的內(nèi)置雙目攝像頭實(shí)現(xiàn)前向障礙物的實(shí)時(shí)檢測(cè),不需要在飛行器中增加額外的器件設(shè)備,對(duì)于飛行器的飛行場(chǎng)景和障礙物的形狀都不需要限制,通過圖像的分析和計(jì)算可以準(zhǔn)確的計(jì)算出雙目攝像頭距離目標(biāo)障礙物的深度值,減少飛行器的障礙物檢測(cè)誤差,提高飛行器的障礙物檢測(cè)精度。
圖6是本發(fā)明實(shí)施例提供的一種飛行器的結(jié)構(gòu)示意圖,該飛行器1100可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個(gè)或一個(gè)以上中央處理器(central processing units,CPU)1122(例如,一個(gè)或一個(gè)以上處理器)和存儲(chǔ)器1132,一個(gè)或一個(gè)以上存儲(chǔ)應(yīng)用程序1142或數(shù)據(jù)1144的存儲(chǔ)介質(zhì)1130(例如一個(gè)或一個(gè)以上海量存儲(chǔ)設(shè)備)、攝像頭1152、傳感器1162。其中,存儲(chǔ)器1132和存儲(chǔ)介質(zhì)1130可以是短暫存儲(chǔ)或持久存儲(chǔ)。存儲(chǔ)在存儲(chǔ)介質(zhì)1130的程序可以包括一個(gè)或一個(gè)以上模塊(圖示沒標(biāo)出),每個(gè)模塊可以包括對(duì)飛行器中的一系列指令操作。更進(jìn)一步地,中央處理器1122可以設(shè)置為與存儲(chǔ)介質(zhì)1130通信,在飛行器1100上執(zhí)行存儲(chǔ)介質(zhì)1130中的一系列指令操作。本領(lǐng)域技術(shù)人員可以理解,圖6中示出的飛行器結(jié)構(gòu)并不構(gòu)成對(duì)飛行器的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
飛行器1100還可以包括一個(gè)或一個(gè)以上電源1126,一個(gè)或一個(gè)以上無線網(wǎng)絡(luò)接口1150,一個(gè)或一個(gè)以上輸入輸出接口1158,和/或,一個(gè)或一個(gè)以上操作系統(tǒng)1141,例如安卓系統(tǒng)等等。
飛行器中包括的攝像頭1152,該攝像頭具體可以是數(shù)字?jǐn)z像頭,也可以是模擬攝像頭,攝像頭1152具體為雙目攝像頭,攝像頭的分辨率可以根據(jù)實(shí)際需要來選擇,攝像頭的結(jié)構(gòu)組件可以包括:鏡頭、圖像傳感器可以結(jié)合具體場(chǎng)景來配置。
飛行器還可以包括:傳感器1162,比如運(yùn)動(dòng)傳感器以及其他傳感器。具體地,作為運(yùn)動(dòng)傳感器的一種,加速計(jì)傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別飛行器姿態(tài)的應(yīng)用(比如飛行器偏航角、橫滾角、俯仰角的測(cè)算、磁力計(jì)姿態(tài)校準(zhǔn))、識(shí)別相關(guān)功能等;至于飛行器還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
上述實(shí)施例中由飛行器所執(zhí)行的飛行器的障礙物檢測(cè)方法步驟可以基于該圖6所示的飛行器結(jié)構(gòu)。
另外需說明的是,以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。另外,本發(fā)明提供的裝置實(shí)施例附圖中,模塊之間的連接關(guān)系表示它們之間具有通信連接,具體可以實(shí)現(xiàn)為一條或多條通信總線或信號(hào)線。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過專用硬件包括專用集成電路、專用CPU、專用存儲(chǔ)器、專用元器件等來實(shí)現(xiàn)。一般情況下,凡由計(jì)算機(jī)程序完成的功能都可以很容易地用相應(yīng)的硬件來實(shí)現(xiàn),而且,用來實(shí)現(xiàn)同一功能的具體硬件結(jié)構(gòu)也可以是多種多樣的,例如模擬電路、數(shù)字電路或?qū)S秒娐返?。但是,?duì)本發(fā)明而言更多情況下軟件程序?qū)崿F(xiàn)是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤、U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
綜上所述,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照上述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)上述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。