本發(fā)明涉及計(jì)算機(jī)視覺和無(wú)人機(jī)控制領(lǐng)域,尤其涉及一種復(fù)雜環(huán)境下無(wú)人機(jī)自動(dòng)障礙物檢測(cè)和避障方法。
背景技術(shù):
隨著無(wú)人機(jī)等智能系統(tǒng)的廣泛研究和應(yīng)用,障礙物的檢測(cè)和避障逐漸成為研究的熱點(diǎn)。安全性是無(wú)人機(jī)等智能系統(tǒng)能得以廣泛應(yīng)用的前提條件。在無(wú)人機(jī)的實(shí)時(shí)運(yùn)動(dòng)過(guò)程中,通過(guò)對(duì)攝像頭拍攝到的復(fù)雜場(chǎng)景的圖像進(jìn)行分析獲得障礙物的位置仍是一個(gè)非常具有挑戰(zhàn)性的研究問(wèn)題。
經(jīng)過(guò)許多年的發(fā)展,基于視覺的障礙物檢測(cè)方法已日趨成熟。基于視覺的障礙物檢測(cè)方法可以大體分為單眼視覺和雙眼視覺。單眼視覺中的典型方法是根據(jù)角點(diǎn)特征來(lái)標(biāo)注障礙物區(qū)域,再對(duì)比兩幅圖片匹配特征點(diǎn),找到移動(dòng)的對(duì)象作為障礙物區(qū)域。為了避免角點(diǎn)過(guò)多導(dǎo)致噪聲影響障礙物的定位,一般會(huì)先將圖片分為三個(gè)部分,即地面、天空和中間障礙物所在區(qū)域,這樣可以縮小檢測(cè)區(qū)域。單眼視覺的方法適用于障礙物很明顯而且背景很干凈,通過(guò)差分顏色就可以得到與背景顏色明顯不同的障礙物區(qū)域,一般背景可以是地面和天空。然而,移動(dòng)的區(qū)域不一定就是障礙物,障礙物是對(duì)智能體產(chǎn)生威脅的對(duì)象,如果障礙物的移動(dòng)對(duì)于智能體來(lái)說(shuō)沒有危險(xiǎn),那就沒有必要確定為障礙物。例如,當(dāng)某個(gè)視野內(nèi)的對(duì)象在遠(yuǎn)離智能體或者水平的在智能體面前走過(guò),這就不是障礙物,而如果對(duì)象朝向無(wú)人機(jī)移動(dòng)那就是有危險(xiǎn)的障礙物了。
雙目視覺相較于單眼視覺的好處是它可以探測(cè)深度信息。雙目視覺技術(shù)已經(jīng)取得了很大的進(jìn)展,通過(guò)校準(zhǔn)和立體匹配可以得到視差圖,視差圖清晰地反映了圖像中的對(duì)象相對(duì)于攝像頭的遠(yuǎn)近關(guān)系。一般認(rèn)為圖像中的前景很可能就是障礙物,因此,設(shè)定適當(dāng)?shù)拈撝堤崛∏熬笆鞘褂秒p目視覺解決障礙物檢測(cè)的核心思想。一般現(xiàn)有的方法盡量采用鮮明的障礙物區(qū)域,它們具有與背景差別很大的顏色或紋理特征,在得到前景區(qū)域后投射回原圖像,在原圖像上根據(jù)顏色信息提取該前景區(qū)域內(nèi)顏色差別不大的區(qū)域作為最終障礙物的區(qū)域。這些方法的限制在于僅僅適用于該顏色閾值或某個(gè)特定特征下的障礙物檢測(cè),而且要求背景較干凈得以突出前景,這樣設(shè)定的閾值才會(huì)具有一定的魯棒性。但是,障礙物并不一定滿足顏色就是一致,某個(gè)障礙物由不同顏色組成也是可能的。
還有一些基于超聲波、聲吶等傳感器的障礙物檢測(cè)方法,這些傳感器能夠探測(cè)智能體周圍的環(huán)境,但是在復(fù)雜的環(huán)境下,多個(gè)超聲波信息交錯(cuò)在一起容易產(chǎn)生混淆。而且任何傳感設(shè)備都不是完美的,總會(huì)存在盲區(qū)或受外界噪聲的干擾,這就導(dǎo)致了準(zhǔn)確性的降低。
縱觀已有的障礙物檢測(cè)方法,雖然在解決某些特定問(wèn)題上面已經(jīng)取得了一些進(jìn)展,但是,他們都是從問(wèn)題表面出發(fā),設(shè)計(jì)好適合于該類問(wèn)題的場(chǎng)景來(lái)檢測(cè)試驗(yàn),并未深入地理解障礙物的本質(zhì)特征以至于某種方法僅能解決一個(gè)問(wèn)題。此外,障礙物檢測(cè)的實(shí)際應(yīng)用主要在無(wú)人機(jī)等智能系統(tǒng),它們靈活的移動(dòng)在復(fù)雜的場(chǎng)景中,我們應(yīng)充分考慮智能系統(tǒng)面對(duì)的復(fù)雜的存在多個(gè)隱含障礙物下的環(huán)境,設(shè)計(jì)出能夠?qū)崟r(shí)地檢測(cè)具有危險(xiǎn)的障礙物并執(zhí)行避障指令。
本發(fā)明結(jié)合人腦對(duì)圖像的注意力劃分和對(duì)障礙物的特征分析,使用雙目視覺技術(shù)結(jié)合圖像預(yù)處理得到視差圖,基于輪廓和灰度值劃分視差圖得到候選障礙物區(qū)域,再根據(jù)障礙物的放大特征對(duì)比前后兩幀得到精確的障礙物區(qū)域。對(duì)于檢測(cè)到的障礙物,無(wú)人機(jī)采取實(shí)時(shí)的避障行為。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中的上述問(wèn)題,即為了解決無(wú)人機(jī)能夠在復(fù)雜的環(huán)境下實(shí)時(shí)的檢測(cè)到障礙物并獲取避障指令,本發(fā)明提出了一種復(fù)雜環(huán)境下無(wú)人機(jī)自動(dòng)障礙物檢測(cè)和避障方法,包括以下步驟:
步驟S1,利用無(wú)人機(jī)上設(shè)置的雙目攝像頭進(jìn)行實(shí)時(shí)的圖像采集,基于所采集的左、右兩幅圖像匹配計(jì)算生成視差圖并進(jìn)行預(yù)處理;
步驟S2,基于視差圖信息,對(duì)視差圖進(jìn)行輪廓和灰度值的聚類劃分,得到具有清晰結(jié)構(gòu)的區(qū)域塊,將所述區(qū)域塊的噪聲干擾去除后得到潛在障礙物區(qū)域;
步驟S3,對(duì)比前后兩幀視差圖中對(duì)應(yīng)的潛在障礙物區(qū)域,結(jié)合障礙物的放大特性,依據(jù)無(wú)人機(jī)與潛在障礙物區(qū)域的距離和潛在障礙物區(qū)域的面積篩選得到最終障礙物區(qū)域;
步驟S4,基于步驟S3所得到的最終障礙物區(qū)域,輸出無(wú)人機(jī)避障的動(dòng)作指令。
優(yōu)選地,步驟S1中基于所采集的左、右兩幅圖像匹配計(jì)算生成視差圖的方法具體為:基于立體匹配Graph Cut算法中的SGBM算法,對(duì)所述雙目攝像頭所采及的左、右兩幅圖像進(jìn)行校準(zhǔn),通過(guò)調(diào)整SGBM參數(shù)得到視差圖。
優(yōu)選地,步驟S1中對(duì)視差圖進(jìn)行的預(yù)處理包括:
根據(jù)校準(zhǔn)后圖像與原圖像對(duì)比,直接去除視差圖上兩邊的灰度信息干擾,得到第一視差圖;
對(duì)第一視差圖中灰度值差異大于設(shè)定閾值且面積小于設(shè)定閾值的白色塊進(jìn)行腐蝕處理,得到第二視差圖;
對(duì)第二視差圖進(jìn)行圖像平滑處理得到清晰的視差圖。
優(yōu)選地,步驟S2所述潛在障礙物區(qū)域,其獲取步驟包括:
步驟S21,獲取步驟1輸出視差圖的輪廓信息;
步驟S22,在各輪廓內(nèi)部對(duì)灰度值進(jìn)行聚類,形成多個(gè)對(duì)象區(qū)域塊,每個(gè)對(duì)象區(qū)域塊之間具有明顯的灰度差異,并且對(duì)象區(qū)域塊具有完整的區(qū)域輪廓;
步驟S23,分別選取各輪廓內(nèi)面積大于設(shè)定閾值的對(duì)象區(qū)域塊,針對(duì)所選取的對(duì)象區(qū)域塊分別繪制最小外接矩形框;
步驟S24,計(jì)算各對(duì)象區(qū)域塊的灰度值gray(i)、以及灰度值閾值gray0,選擇gray(i)>gray0的對(duì)象區(qū)域塊作為潛在障礙物區(qū)域。
優(yōu)選地,步驟S22中對(duì)灰度值進(jìn)行聚類,具體包括:
步驟S221,對(duì)步驟S21中獲取的輪廓繪制最小外接矩形框,并獲取所述矩形框內(nèi)的各個(gè)像素點(diǎn)的灰度信息;
步驟S222,在每個(gè)矩形框內(nèi),去除灰度值小于預(yù)設(shè)的類內(nèi)灰度差閾值的背景像素點(diǎn);
步驟S223,并將步驟S222中每個(gè)矩形框內(nèi)所去除的第一個(gè)背景像素點(diǎn)分別作為單獨(dú)的一類,并記錄其灰度值;
步驟S224,在每個(gè)矩形框內(nèi),逐個(gè)遍歷每一個(gè)像素點(diǎn),若其與已有類別的灰度值之差小于類內(nèi)灰度差閾值則將該像素點(diǎn)歸為對(duì)應(yīng)類,否則將該像素點(diǎn)自為一類;
步驟S225,重復(fù)步驟S223和S224,直到所有的矩形框都聚類完畢。
優(yōu)選地,步驟S24具體包括:
步驟S241,計(jì)算步驟S23中獲取的各最小外接矩形框的灰度值作為對(duì)應(yīng)對(duì)象區(qū)域塊的灰度值gray(i);
步驟S242,計(jì)算步驟S23所選取的所有對(duì)象區(qū)域塊的灰度值均值作為灰度值閾值gray0;
步驟S243,選取gray(i)>gray0的對(duì)象區(qū)域塊作為潛在障礙物區(qū)域。
優(yōu)選地,步驟S3中獲得最終障礙物區(qū)域的步驟包括:
步驟S31,獲取當(dāng)前幀視差圖和上一幀視差圖;
步驟S32,將當(dāng)前幀視差圖中潛在障礙物區(qū)域與上一幀視差圖對(duì)應(yīng)的潛在障礙物區(qū)域進(jìn)行面積大小的對(duì)比,若大于則判斷為候選障礙物所在的區(qū)域;
步驟S33:步驟S32輸出的候選障礙物所在的區(qū)域?yàn)閮蓚€(gè)或兩個(gè)以上時(shí),對(duì)危險(xiǎn)程度d(i)進(jìn)行計(jì)算,
d(i)=α*gray(i)+(1-α)*size(i)
其中α為比例系數(shù),gray(i)為第i個(gè)對(duì)象區(qū)域塊的平均灰度值,size(i)為第i個(gè)對(duì)象區(qū)域塊的最小外接矩形周長(zhǎng),d(i)則為第i個(gè)對(duì)象區(qū)域塊的危險(xiǎn)系數(shù)值;
選擇最危險(xiǎn)程度d(i)最大的候選障礙物所在的區(qū)域?yàn)樽罱K障礙物區(qū)域。
優(yōu)選地,步驟S4中無(wú)人機(jī)采取避障行為的過(guò)程包括以下步驟:
步驟S41,選取步驟S3得到的最終障礙物區(qū)域的最小外接矩形的中心坐標(biāo)作為最終障礙物區(qū)域的中心坐標(biāo);
步驟S42,先是執(zhí)行后退動(dòng)作躲避障礙物,再根據(jù)障礙物的中心坐標(biāo)計(jì)算障礙物區(qū)域相對(duì)于無(wú)人機(jī)位置;
步驟S43,依據(jù)步驟S42中所計(jì)算的障礙物區(qū)域相對(duì)于無(wú)人機(jī)位置,輸出無(wú)人機(jī)避障的動(dòng)作指令。
優(yōu)選地,步驟1中利用無(wú)人機(jī)上設(shè)置的雙目攝像頭進(jìn)行實(shí)時(shí)的圖像采集,其校正圖像所用的變換參數(shù)基于雙目攝像頭標(biāo)定好的內(nèi)、外參數(shù)計(jì)算,所述內(nèi)、外參數(shù)的標(biāo)定方法為:
步驟S121,利用雙目無(wú)線攝像頭對(duì)準(zhǔn)棋盤格圖片進(jìn)行選取不同方向進(jìn)行拍照并保存,選擇其中不同方向拍攝的N對(duì)圖像;N為選取圖像的數(shù)量;
步驟S122:使用Bouguet的matlab標(biāo)定工具箱,執(zhí)行運(yùn)行matlab標(biāo)定主函數(shù)calib_gui,選擇左側(cè)攝像頭拍攝的N張圖像,找到所有對(duì)應(yīng)的角點(diǎn),經(jīng)過(guò)多次迭代可以得到左側(cè)攝像頭的內(nèi)、外參數(shù);
步驟S123:選取右側(cè)攝像頭拍攝的N張圖像,采用步驟S122的方法獲取右側(cè)攝像頭的內(nèi)、外參數(shù);
步驟S124:依據(jù)左、右攝像頭的內(nèi)、外參數(shù),執(zhí)行雙目相機(jī)之MATLAB標(biāo)定stereo_gui,求出了兩個(gè)攝像頭之間的旋轉(zhuǎn)和平移關(guān)系向量,即外參數(shù)。
優(yōu)選地,步驟S23中用于選取各輪廓內(nèi)對(duì)象區(qū)域塊的設(shè)定閾值為:繪制對(duì)應(yīng)輪廓內(nèi)各對(duì)象區(qū)域塊的最小外接矩形,選擇面積最大最小外接矩形,并以該矩形面積的1/3作為此處的設(shè)定閾值。
優(yōu)選地,所述的雙目攝像頭為由固設(shè)于無(wú)人機(jī)上的兩個(gè)無(wú)線攝像頭組合而成的無(wú)線雙目攝像頭。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)勢(shì):
(1)考慮到無(wú)人機(jī)本體對(duì)攝像頭的便攜性和重量的考慮,本發(fā)明使用兩個(gè)無(wú)線攝像頭組合成無(wú)線雙目攝像頭應(yīng)用在無(wú)人機(jī)上,然后利用雙目視覺技術(shù)對(duì)無(wú)人機(jī)的視覺信息進(jìn)行處理。無(wú)人機(jī)平臺(tái)具有很大的發(fā)展空間,其所應(yīng)用的場(chǎng)景絕不是簡(jiǎn)單的背景和突出的前景,我們旨在解決無(wú)人機(jī)飛行的實(shí)際復(fù)雜環(huán)境下的檢測(cè)障礙物和避障問(wèn)題,其中障礙物可以是移動(dòng)障礙物和固定障礙物。
(2)本發(fā)明在獲得視差圖后,針對(duì)視差圖進(jìn)行輪廓和灰度值的聚類,劃分視差圖為不同對(duì)象的區(qū)域。這與已有的在原圖上按照顏色等聚類的技術(shù)相比,更加貼近人類對(duì)于環(huán)境中的對(duì)象的劃分方式,傳統(tǒng)的顏色劃分只適用于障礙物具有一致的顏色,對(duì)于由多種顏色組成的障礙物則無(wú)法確定其整體區(qū)域。由于視差圖的灰度信息表示了對(duì)象距離無(wú)人機(jī)的遠(yuǎn)近,因此本發(fā)明在視差圖上采用距離準(zhǔn)則進(jìn)行對(duì)象劃分。為了進(jìn)一步提高對(duì)象塊整體輪廓的提取,本發(fā)明在距離準(zhǔn)則的基礎(chǔ)上結(jié)合輪廓信息最終確定對(duì)象塊區(qū)域,即潛在障礙物區(qū)域。
(3)在確定的潛在障礙物基礎(chǔ)上,本發(fā)明再根據(jù)潛在障礙物在視野中的大小的變化來(lái)確定候選障礙物,具體為:對(duì)智能系統(tǒng)具有危險(xiǎn)性的障礙物會(huì)隨著時(shí)間的推進(jìn)逐步放大。大多數(shù)現(xiàn)有工作都是在判斷移動(dòng)物體,但是移動(dòng)的物體不一定就是對(duì)無(wú)人機(jī)有危險(xiǎn)的障礙物,向離無(wú)人機(jī)越來(lái)越遠(yuǎn)的方向移動(dòng)的物體本身對(duì)于無(wú)人機(jī)的安全構(gòu)不成威脅,那就不應(yīng)該被判定為障礙物。基于以上觀點(diǎn),本發(fā)明對(duì)比前后兩幀尋找具有放大趨勢(shì)的區(qū)域確定為候選障礙物所在的區(qū)域。
(4)在復(fù)雜環(huán)境下可能同時(shí)具有多個(gè)區(qū)域塊滿足放大的趨勢(shì),即存在多個(gè)候選障礙物區(qū)域。例如當(dāng)無(wú)人機(jī)飛向多個(gè)對(duì)象的時(shí)候就存在了多個(gè)障礙物的情況,這時(shí)需要快速的選擇最具有危險(xiǎn)的那一個(gè)來(lái)躲避,本發(fā)明結(jié)合對(duì)象區(qū)域塊距離無(wú)人機(jī)的遠(yuǎn)近以及對(duì)象區(qū)域塊的大小確定需要率先躲避的障礙物區(qū)域。
(5)本發(fā)明提出的方法能夠?qū)崟r(shí)的應(yīng)用在無(wú)人機(jī)上,使得無(wú)人機(jī)在室內(nèi)復(fù)雜環(huán)境下針對(duì)不同的障礙物進(jìn)行檢測(cè)和躲避。復(fù)雜環(huán)境是指不需人工設(shè)定的背景和障礙物的環(huán)境,本發(fā)明能夠檢測(cè)不同顏色、大小、紋理的障礙物,同時(shí)障礙物可以是移動(dòng)障礙物,也可以是固定障礙物。例如,朝向處于懸停狀態(tài)的無(wú)人機(jī)投射來(lái)的物體屬于移動(dòng)障礙物。
附圖說(shuō)明
圖1是本發(fā)明無(wú)人機(jī)自動(dòng)障礙物檢測(cè)和避障方法的流程示意圖;
圖2是本發(fā)明中立體匹配得到的視差圖示例;
圖3是本發(fā)明中圖2經(jīng)過(guò)腐蝕和平滑處理后得到的清晰視差圖示例;
圖4是本發(fā)明中區(qū)域化視圖差的流程示意圖。
具體實(shí)施方式
下面參照附圖來(lái)描述本發(fā)明的優(yōu)選實(shí)施方式。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,這些實(shí)施方式僅僅用于解釋本發(fā)明的技術(shù)原理,并非旨在限制本發(fā)明的保護(hù)范圍。
本發(fā)明采用雙目視覺技術(shù),它通過(guò)計(jì)算兩個(gè)攝像頭捕獲的左、右兩幅圖像來(lái)感知圖像中對(duì)象的深度信息。障礙物檢測(cè)和避障的研究旨在應(yīng)用于智能系統(tǒng)的實(shí)際產(chǎn)品上,本發(fā)明使用大疆的經(jīng)緯M100無(wú)人機(jī)作為應(yīng)用平臺(tái),使其能夠在室內(nèi)復(fù)雜場(chǎng)景下實(shí)時(shí)的檢測(cè)到障礙物并進(jìn)行躲避。由于無(wú)人機(jī)自身對(duì)于載重具有嚴(yán)格的要求,圖像的傳輸也是務(wù)必要考慮的因素,我們選擇微型的2.4G數(shù)字無(wú)線迷你小攝像頭,分辨率是640*480,像素在30萬(wàn)左右,它的重量只有22g,可以非常方便的固定在無(wú)人機(jī)上。雙目攝像頭是由兩個(gè)固定好位置的左、右兩個(gè)攝像頭組成的,我們使用兩個(gè)無(wú)線攝像頭拼成一個(gè)雙目無(wú)線攝像頭進(jìn)行研究。
本發(fā)明的一種復(fù)雜環(huán)境下無(wú)人機(jī)自動(dòng)障礙物檢測(cè)和避障方法,包括以下步驟:
步驟S1,利用無(wú)人機(jī)上設(shè)置的雙目攝像頭進(jìn)行實(shí)時(shí)的圖像采集,基于所采集的左、右兩幅圖像匹配計(jì)算生成視差圖并進(jìn)行預(yù)處理;
步驟S2,基于視差圖信息,對(duì)視差圖進(jìn)行輪廓和灰度值的聚類劃分,得到具有清晰結(jié)構(gòu)的區(qū)域塊,將所述區(qū)域塊的噪聲干擾去除后得到潛在障礙物區(qū)域;
步驟S3,對(duì)比前后兩幀視差圖中對(duì)應(yīng)的潛在障礙物區(qū)域,結(jié)合障礙物的放大特性,依據(jù)無(wú)人機(jī)與潛在障礙物區(qū)域的距離和潛在障礙物區(qū)域的面積篩選得到最終障礙物區(qū)域;
步驟S4,基于步驟S3所得到的最終障礙物區(qū)域,輸出無(wú)人機(jī)避障的動(dòng)作指令。
本實(shí)施例中,步驟1包括:
步驟S11:使用雙目無(wú)線攝像頭實(shí)時(shí)的捕獲圖像。捕獲到的左、右兩幅圖像具有一些微小的位移差別。
由于兩個(gè)攝像頭完全一致,使用opencv(Open Source Computer Vision Library,為現(xiàn)有的一個(gè)跨平臺(tái)計(jì)算機(jī)視覺庫(kù))的讀取攝像頭的方法是不能夠同時(shí)讀取兩個(gè)相同攝像頭的。這里,我們先利用vs(Microsoft Visual Studio)中的CameraDS類來(lái)同時(shí)讀取左、右兩幅圖像,并保存在指定文件夾,再每隔30毫秒加載該文件夾下的最后保存的圖像,實(shí)現(xiàn)實(shí)時(shí)的讀取功能。
步驟S12:為雙目無(wú)線攝像頭標(biāo)定,使用棋盤格標(biāo)定法,采集20對(duì)左、右圖像,應(yīng)用matlab標(biāo)定工具箱,獲得左、右攝像頭的內(nèi)、外參數(shù)。
步驟S13:由標(biāo)定好的內(nèi)、外參數(shù)計(jì)算得到產(chǎn)生校正圖像所需的變換參數(shù),得出校準(zhǔn)參數(shù)之后用OpenCV中的cvRemap函數(shù)來(lái)校準(zhǔn)輸入的左、右圖像,校準(zhǔn)后的圖像能夠?qū)⒃瓉?lái)并不對(duì)齊的兩張圖像進(jìn)行水平對(duì)齊,為后續(xù)的立體匹配做好準(zhǔn)備。
步驟S14:基于立體匹配Graph Cut算法中的SGBM算法,對(duì)所述雙目攝像頭所采及的左、右兩幅圖像進(jìn)行校準(zhǔn),通過(guò)調(diào)整SGBM參數(shù)得到視差圖。
視差圖通過(guò)不同的灰度值反映了圖像中的對(duì)象相對(duì)于攝像頭的深度信息,灰度值越大說(shuō)明對(duì)象離攝像頭越近。
步驟S15:由于畸變等原因,匹配得到的視差圖具有很多噪聲,因此需要去除由于畸變導(dǎo)致的邊緣匹配信息,對(duì)細(xì)小的白色塊進(jìn)行腐蝕,并且使用中值濾波平滑圖像,由此得到清晰的視差圖。
本實(shí)施例中,步驟1中利用無(wú)人機(jī)上設(shè)置的雙目攝像頭進(jìn)行實(shí)時(shí)的圖像采集,其校正圖像所用的變換參數(shù)基于雙目攝像頭標(biāo)定好的內(nèi)、外參數(shù)計(jì)算,所述內(nèi)、外參數(shù)的標(biāo)定方法如步驟S12所述,可以對(duì)步驟S12進(jìn)一步細(xì)化為:
步驟S121,利用雙目無(wú)線攝像頭對(duì)準(zhǔn)棋盤格圖片進(jìn)行選取不同方向進(jìn)行拍照并保存,選擇其中不同方向拍攝的20對(duì)圖像;
步驟S122:使用Bouguet的matlab標(biāo)定工具箱,執(zhí)行運(yùn)行matlab標(biāo)定主函數(shù)calib_gui,選擇左側(cè)攝像頭拍攝的20張圖像,找到所有對(duì)應(yīng)的角點(diǎn),經(jīng)過(guò)多次迭代可以得到左側(cè)攝像頭的內(nèi)、外參數(shù);
步驟S123:選取右側(cè)攝像頭拍攝的20張圖像,采用步驟S122的方法獲取右側(cè)攝像頭的內(nèi)、外參數(shù);
步驟S124:依據(jù)左、右攝像頭的內(nèi)、外參數(shù),執(zhí)行雙目相機(jī)之MATLAB標(biāo)定stereo_gui,求出了兩個(gè)攝像頭之間的旋轉(zhuǎn)和平移關(guān)系向量,即外參數(shù)。
在得到準(zhǔn)確的標(biāo)定結(jié)果(即左、右攝像頭的內(nèi)、外參數(shù))后,通過(guò)步驟S13執(zhí)行校準(zhǔn)工作,由于無(wú)線攝像頭存在畸變,因此在得到變換參數(shù)后進(jìn)行校準(zhǔn)得到的圖像較原圖具有一些修正,校準(zhǔn)是立體匹配的基礎(chǔ)。
步驟S14正是在校準(zhǔn)圖像基礎(chǔ)上執(zhí)行的立體匹配工作,根據(jù)SGBM算法得到的視差圖如圖2所示,視差圖可以反映圖像上的對(duì)象與攝像頭之間的遠(yuǎn)近關(guān)系,深度信息通過(guò)灰度體現(xiàn),灰度值越大顏色越偏白表示對(duì)象距離攝像頭越近,灰度值越小顏色越偏黑表示對(duì)象距離攝像頭越遠(yuǎn)。
但是由于畸變等噪聲干擾,圖2所示的視差圖雖然有些清晰的輪廓,但也具有很多瑣碎的噪聲,這就需要預(yù)處理過(guò)程即步驟S15。預(yù)處理主要是為了避免由于畸變導(dǎo)致的邊緣噪聲和細(xì)小區(qū)域噪聲對(duì)圖像中對(duì)象整體性的干擾。步驟S1中對(duì)視差圖進(jìn)行的預(yù)處理步驟S15可以進(jìn)一步細(xì)化為:
步驟S151,根據(jù)校準(zhǔn)后圖像與原圖像對(duì)比,發(fā)現(xiàn)畸變主要存在圖像的左右兩邊,因此,可以根據(jù)校準(zhǔn)后圖像與原圖像對(duì)比,直接去除視差圖上兩邊的灰度信息干擾,得到第一視差圖。
步驟S152,對(duì)第一視差圖中灰度值差異大于設(shè)定閾值且面積小于設(shè)定閾值的白色塊進(jìn)行腐蝕處理,得到第二視差圖。
例如,針對(duì)圖2左下部分的細(xì)小的碎塊,而且這些碎塊的灰度值很明顯不一致,這就說(shuō)明這些碎塊并不屬于一個(gè)對(duì)象整體,通過(guò)步驟S152的腐蝕的方法先腐蝕掉不滿足要求的區(qū)域塊。
步驟S153,對(duì)第二視差圖進(jìn)行圖像平滑處理得到清晰的視差圖。如圖3所示
例如,圖2左上所示的對(duì)象整體雖然輪廓較完整,但是內(nèi)部還會(huì)存在一些小的黑點(diǎn),腐蝕后的圖像整體會(huì)顯得有些鋸齒狀,我們使用中值濾波的方法,取9*9的小方塊計(jì)算均值賦給9*9的每個(gè)像素,這樣既可以去除噪聲點(diǎn)的干擾,也可以平滑圖像將對(duì)象區(qū)域用相同的灰度整體的表現(xiàn)出來(lái)。
得到清晰的視差圖后,就要進(jìn)一步尋找潛在障礙物區(qū)域。清晰視差圖上面有很多區(qū)域,人眼可以輕松地劃分圖像上不同的對(duì)象區(qū)域,這里我們就要將人眼基于輪廓和灰度值劃分的方法引入計(jì)算機(jī)的識(shí)別算法中,區(qū)域化視差圖的流程如圖4所示,通過(guò)提取輪廓、灰度聚類、去除噪聲的數(shù)據(jù)處理,得到步驟S2所述潛在障礙物區(qū)域,其獲取步驟包括:
步驟S21,獲取步驟1輸出視差圖的輪廓信息。
每個(gè)輪廓包含著一個(gè)對(duì)象所在的區(qū)域,輪廓是對(duì)視差圖的一個(gè)初步劃分,這里需要進(jìn)行去噪處理,即去除灰度值極小、距離攝像頭很遠(yuǎn)的對(duì)象的干擾。
輪廓只是根據(jù)像素點(diǎn)之間是否連接判斷是否在一個(gè)輪廓內(nèi),它并不能夠準(zhǔn)確地得到圖像中區(qū)域的準(zhǔn)確劃分結(jié)果,因此需要步驟S22、S23、S24的優(yōu)化。
步驟S22,在各輪廓內(nèi)部對(duì)灰度值進(jìn)行聚類,形成多個(gè)對(duì)象區(qū)域塊,每個(gè)對(duì)象區(qū)域塊之間具有明顯的灰度差異,并且對(duì)象區(qū)域塊具有完整的區(qū)域輪廓。
該步驟中對(duì)灰度值進(jìn)行聚類,具體包括:
步驟S221,對(duì)步驟S21中獲取的輪廓繪制最小外接矩形框,并獲取所述矩形框內(nèi)的各個(gè)像素點(diǎn)的灰度信息。
步驟S222,在每個(gè)矩形框內(nèi),去除灰度值小于預(yù)設(shè)的類內(nèi)灰度差閾值的背景像素點(diǎn)。
步驟S223,并將步驟S222中每個(gè)矩形框內(nèi)所去除的第一個(gè)背景像素點(diǎn)分別作為單獨(dú)的一類,并記錄其灰度值。
步驟S224,在每個(gè)矩形框內(nèi),逐個(gè)遍歷每一個(gè)像素點(diǎn),若其與已有類別的灰度值之差小于類內(nèi)灰度差閾值則將該像素點(diǎn)歸為對(duì)應(yīng)類,否則將該像素點(diǎn)自為一類。
步驟S225,重復(fù)步驟S223和S224,直到所有的矩形框都聚類完畢。
步驟S23,分別選取各輪廓內(nèi)面積大于設(shè)定閾值的對(duì)象區(qū)域塊,針對(duì)所選取的對(duì)象區(qū)域塊分別繪制最小外接矩形框。
該步驟中用于選取各輪廓內(nèi)對(duì)象區(qū)域塊的設(shè)定閾值自適應(yīng)地改變,根據(jù)不同的障礙物,大的障礙物設(shè)定閾值會(huì)設(shè)置的更大一些,本實(shí)施例采用的具體方法為:繪制對(duì)應(yīng)輪廓內(nèi)各對(duì)象區(qū)域塊的最小外接矩形,選擇面積最大最小外接矩形,并以該矩形面積的1/3作為此處的設(shè)定閾值。
步驟S24,潛在障礙物是在無(wú)人機(jī)視野中相對(duì)靠前的,這就需要灰度值閾值來(lái)評(píng)判,因此,可以計(jì)算各對(duì)象區(qū)域塊的灰度值gray(i)、以及灰度值閾值gray0,選擇gray(i)>gray0的對(duì)象區(qū)域塊作為潛在障礙物區(qū)域。
本實(shí)施例中,步驟S24具體包括:
步驟S241,計(jì)算步驟S23中獲取的各最小外接矩形框的灰度值作為對(duì)應(yīng)對(duì)象區(qū)域塊的灰度值gray(i)。
步驟S242,計(jì)算步驟S23所選取的所有對(duì)象區(qū)域塊的灰度值均值作為灰度值閾值gray0。
這種方式保證了灰度值閾值自適應(yīng)地改變根據(jù)障礙物距離攝像頭的不同距離。
步驟S243,選取gray(i)>gray0的對(duì)象區(qū)域塊作為潛在障礙物區(qū)域。
在獲得潛在障礙物區(qū)域后,我們需要進(jìn)一步的確定哪一個(gè)區(qū)域是真正的障礙物,這里所說(shuō)“真正的障礙物”是指對(duì)無(wú)人機(jī)構(gòu)成安全威脅的障礙物。無(wú)人機(jī)所處的復(fù)雜環(huán)境下可能存在很多個(gè)獨(dú)立的個(gè)體,但是并不是任意一個(gè)對(duì)象都是障礙物,也不能說(shuō)移動(dòng)的物體就是障礙物。具有危險(xiǎn)的障礙物本身是具有一定的屬性的,即不斷的靠近無(wú)人機(jī),靠近無(wú)人機(jī)體現(xiàn)在對(duì)象在無(wú)人機(jī)視野中隨著時(shí)間逐漸放大。采用步驟S3進(jìn)行最終障礙物區(qū)域的判斷,還可以進(jìn)一步細(xì)化為:
步驟S31,獲取當(dāng)前幀視差圖和上一幀視差圖。
步驟S32,基于人腦對(duì)于障礙物的處理分析,障礙物一般是在攝像頭視野中不斷放大的對(duì)象,因此,將當(dāng)前幀視差圖中潛在障礙物區(qū)域與上一幀視差圖對(duì)應(yīng)的潛在障礙物區(qū)域進(jìn)行面積大小的對(duì)比,若大于則判斷為候選障礙物所在的區(qū)域。
步驟S33:步驟S32輸出的候選障礙物所在的區(qū)域?yàn)閮蓚€(gè)或兩個(gè)以上時(shí),對(duì)危險(xiǎn)程度d(i)進(jìn)行計(jì)算,如公式(1)所示,選擇最危險(xiǎn)程度d(i)最大的候選障礙物所在的區(qū)域?yàn)樽罱K障礙物區(qū)域。
d(i)=α*gray(i)+(1-α)*size(i) (1)
其中α為比例系數(shù),gray(i)為第i個(gè)對(duì)象區(qū)域塊的平均灰度值,size(i)為第i個(gè)對(duì)象區(qū)域塊的最小外接矩形周長(zhǎng),d(i)則為第i個(gè)對(duì)象區(qū)域塊的危險(xiǎn)系數(shù)值;
例如當(dāng)無(wú)人機(jī)朝向某些物體移動(dòng)時(shí),視野中的物體都滿足是障礙物的條件,這時(shí)就需要無(wú)人機(jī)選擇最危險(xiǎn)的障礙物先躲避,這樣才不會(huì)因?yàn)槎鄠€(gè)障礙物導(dǎo)致無(wú)人機(jī)避障動(dòng)作的混淆。
在確定了最終障礙物的位置后可以進(jìn)行避障步驟S4,可進(jìn)一步細(xì)化為:
步驟S41,選取步驟S3得到的最終障礙物區(qū)域的最小外接矩形的中心坐標(biāo)作為最終障礙物區(qū)域的中心坐標(biāo);
步驟S42,先是執(zhí)行后退動(dòng)作躲避障礙物,再根據(jù)障礙物的中心坐標(biāo)計(jì)算障礙物區(qū)域相對(duì)于無(wú)人機(jī)位置;如判斷障礙物區(qū)域位于無(wú)人機(jī)的左側(cè)還是右側(cè);
步驟S43,依據(jù)步驟S42中所計(jì)算的障礙物區(qū)域相對(duì)于無(wú)人機(jī)位置,輸出無(wú)人機(jī)避障的動(dòng)作指令。如若障礙物區(qū)域在無(wú)人機(jī)的左側(cè),則輸出向右移動(dòng)的指令,若障礙物區(qū)域在無(wú)人機(jī)的右側(cè),則輸出向左運(yùn)動(dòng)的指令。
本領(lǐng)域技術(shù)人員應(yīng)該能夠意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的方法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明電子硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以電子硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。本領(lǐng)域技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
至此,已經(jīng)結(jié)合附圖所示的優(yōu)選實(shí)施方式描述了本發(fā)明的技術(shù)方案,但是,本領(lǐng)域技術(shù)人員容易理解的是,本發(fā)明的保護(hù)范圍顯然不局限于這些具體實(shí)施方式。在不偏離本發(fā)明的原理的前提下,本領(lǐng)域技術(shù)人員可以對(duì)相關(guān)技術(shù)特征作出等同的更改或替換,這些更改或替換之后的技術(shù)方案都將落入本發(fā)明的保護(hù)范圍之內(nèi)。