版權(quán)申明
本專利文件披露的內(nèi)容包含受版權(quán)保護的材料。該版權(quán)為版權(quán)所有人所有。版權(quán)所有人不反對任何人復(fù)制專利與商標局的官方記錄和檔案中所存在的該專利文件或者專利披露。
本發(fā)明屬于計算機視覺技術(shù)領(lǐng)域,具體是指采用雙目攝像頭系統(tǒng)生成用于避障的深度圖時進行遮擋恢復(fù)的方法,以及采用該遮擋恢復(fù)方法的遮擋檢測系統(tǒng)。本發(fā)明可應(yīng)用于帶有多攝像頭的載具的避障應(yīng)用,例如無人駕駛的汽車、自動飛行的無人機、vr/ar眼鏡、雙攝像頭的手機等設(shè)備。
背景技術(shù):
計算機視覺是依靠成像系統(tǒng)代替視覺器官作為輸入敏感手段的技術(shù)。最常用的成像系統(tǒng)是攝像頭,由雙攝像頭即可組成一個基礎(chǔ)的視覺系統(tǒng),稱為stereovision。
雙目攝像頭系統(tǒng)stereovisionsystem是通過兩個攝像頭,拍攝同一時刻、不同角度的兩張照片,再通過兩張照片的差異,以及兩個攝像頭之間的位置、角度關(guān)系,利用三角關(guān)系,計算出場景與攝像頭的距離關(guān)系,這種距離關(guān)系一張圖顯示即為深度圖(depthmap)。也就是說,雙目攝像頭系統(tǒng)是通過同一時刻不同角度的兩張照片的差異,來獲取場景的深度信息。
兩張照片的差異通常是由于從不同角度拍攝而造成的,這種情況下計算出來的場景深度信息是正確的。但是,這種差異也有可能是由兩個攝像頭本身的成像差異引起的,或是單個攝像頭被遮擋引起的。如果是這種情況,那么計算出來的深度信息就是錯誤的。
為了消除單個攝像頭被遮擋引起的兩個攝像頭的成像差異,需要對遮擋的影響進行消除,即進行遮擋恢復(fù)操作。當雙目攝像頭系統(tǒng)應(yīng)用于無人機等無人載具的避障應(yīng)用上時,如果發(fā)生深度圖的計算錯誤,就會引起對障礙的誤檢測,從而錯誤地觸發(fā)制動措施,從而影響無人載具的操作及用戶體驗。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在解決無人機避障時在雙目圖像在出現(xiàn)的固定遮擋物影響深度圖計算,從而導(dǎo)致避障失誤的問題。
為解決上述技術(shù)問題,本發(fā)明提出一種能進行遮擋恢復(fù)的深度圖生成方法,包括:s1、檢測兩個圖像中的異常區(qū)域,該兩個圖像是從不同角度對同一場景同時進行拍攝而獲得;s2、在屏蔽所述兩個圖像中的處于異常區(qū)域的像素的情況下,根據(jù)所述兩個圖像生成深度圖。
本發(fā)明還提出一種無人機,包括:圖像獲取裝置,用于獲取從不同角度對同一場景同時進行拍攝的兩個圖像;以及一個或多個處理器,用于:檢測所述兩個圖像中的異常區(qū)域;以及在屏蔽所述異常區(qū)域的情況下,根據(jù)所述兩個圖像生成深度圖。
本發(fā)明還提出一種用于執(zhí)行上述深度圖生成方法的處理器,以及存儲有執(zhí)行上述深度圖生成方法的程序的計算機可讀介質(zhì)。
本發(fā)明從工程角度出發(fā),提出一種能夠?qū)崟r檢測深度圖上遮擋并移除其影響的方法。本發(fā)明的方法簡單有效,魯棒性強,能夠?qū)崟r檢測和處理,減少障礙誤檢率。
附圖說明
圖1a是本發(fā)明的一個實施例中,從無人機的前置雙目攝像頭中的一個攝像頭中拍攝的一個圖像的示意圖;
圖1b是本發(fā)明的一個實施例中進行異常區(qū)域檢測的示意圖;
圖2是本發(fā)明的深度圖生成方法所包括的步驟流程圖;
圖3是根據(jù)本發(fā)明的深度圖生成方法生成的圖1a的深度圖的示意圖;
圖4是根據(jù)本發(fā)明的深度圖生成方法架構(gòu)的用于無人機的一種遮擋檢測系統(tǒng)的一個實施例的結(jié)構(gòu)示意圖;
圖5是根據(jù)本發(fā)明的一個實施例的無人機的避障系統(tǒng)的模塊架構(gòu)圖;
圖6是本發(fā)明的另一實施例的無人機的模塊架構(gòu)圖。
具體實施方式
由于深度圖能夠顯示場景中物體的遠近,因此能夠根據(jù)深度圖檢測無人機的前進方向上是否具有障礙物,從而據(jù)此進行相應(yīng)的避障操作。然而,在實際應(yīng)用中,攝像頭中往往會出現(xiàn)無人機自身的部件的遮擋,這些部件例如是無人機的螺旋槳、螺旋槳罩等。在計算深度圖時,如果這些部件的部分出現(xiàn)在攝像頭,往往會將這些部件視為距離很近的障礙物,從而引發(fā)誤操作。為此,本發(fā)明提出在計算深度圖時消除這類遮擋的干擾,即進行遮擋的恢復(fù)。
總的來說,本發(fā)明提出一種遮擋恢復(fù)的深度圖生成方法,以及采用該生成方法的無人機。深度圖的生成方法包括兩個基本的步驟:即s1、檢測兩個圖像中的異常區(qū)域;s2、在屏蔽所述兩個圖像中的處于異常區(qū)域的像素的情況下生成深度圖。當然,此處的兩個圖像是雙目攝像機拍攝的圖像,即該兩個圖像是從不同角度對同一場景同時進行拍攝而獲得的。
也就是說,本發(fā)明一方面在于檢測出那些可能會被認為是障礙物的異常區(qū)域,另一方面在于如何使這些異常區(qū)域不被視為障礙物。本發(fā)明的基本原理是在生成深度圖時使異常區(qū)域不影響到整個圖像深度圖的計算。但是,應(yīng)當理解,本發(fā)明并不限于如何計算深度圖,而是,只要使被檢測出的障礙物區(qū)域不參與深度圖計算,或以參與度較小的方式參與深度圖計算,都是本發(fā)明所涵蓋的范圍。
根據(jù)本發(fā)明,可以根據(jù)實際應(yīng)用中異常區(qū)域出現(xiàn)的特點來制定特定的異常區(qū)域檢測方式,本發(fā)明不局限于具體的檢測方式,只要檢測之后能夠得到一個圖像中的異常區(qū)域。例如,可以檢測可能出現(xiàn)的遮擋物的紋理、遮擋物可能出現(xiàn)的區(qū)域等來進行所述檢測。
除了無人機自身部件的遮擋之外,天空、強光源、太陽等引起圖像過度曝光的景象也會影響深度圖的生成,這些過度曝光區(qū)域可能會被認為是障礙物出現(xiàn)的區(qū)域,因此,本發(fā)明還提出在檢測兩個圖像中的異常區(qū)域時,將過度曝光的區(qū)域也作為異常區(qū)域,以消除這些區(qū)域的影響。
由此可知,本發(fā)明對現(xiàn)有的深度圖生成方法進行了改進,使之對遮擋物的影響降至最低。采用這種方法,可以設(shè)計出本發(fā)明的具有遮擋恢復(fù)的無人機。
此外,本發(fā)明還提出包括具有遮擋恢復(fù)功能的無人機,該無人機還應(yīng)包括圖像獲取裝置,用于獲取從不同角度對同一場景同時進行拍攝的兩個圖像。以及一個或多個處理器,處理器用于檢測所述兩個圖像中的異常區(qū)域;以及在屏蔽所述異常區(qū)域的情況下,根據(jù)所述兩個圖像生成深度圖。由此,該無人機根據(jù)圖像獲取裝置獲取的圖像進行遮擋檢測。
下面參照具體實施例來說明。下面的說明盡管是采用無人機為例來進行說明,但本發(fā)明的方法、系統(tǒng)、裝置并不限于該領(lǐng)域,任何需要計算深度圖的應(yīng)用領(lǐng)域都可合理地利用本發(fā)明,例如包括任何不需要人直接在設(shè)備本體上進行操作的各種應(yīng)用設(shè)備和應(yīng)用場景,例如機器人技術(shù)、虛擬現(xiàn)實技術(shù)等。
圖1a是本發(fā)明的一個實施例中,從無人機的前置雙目攝像頭中的一個攝像頭中拍攝的一個圖像的示意圖。如圖1a所示,在該圖片中的右上方出現(xiàn)了一個長條狀的物體a,該物體是無人機的槳葉保護罩。槳葉保護罩通常會出現(xiàn)在攝像對拍攝的范圍中的固定區(qū)域。除此之外,無人機的螺旋槳、腳架等部件均有可能出現(xiàn)在圖像中,并且位置通常較為固定。該實施例中以圖1所示的槳中保護罩為例進行說明。
漿葉保護罩上有豎狀條紋。因此,在無人機起飛前,對槳葉保護罩可能出現(xiàn)的固定區(qū)域做檢測。如圖1b所示,對固定區(qū)域b進行檢測,在該實施例中是對于已知的遮擋物進行紋理檢測來確定是否出現(xiàn)遮擋。在此,本發(fā)明先做二值化處理,變?yōu)楹诎咨?,再按照箭頭c方向取一行的像素數(shù)據(jù)進行統(tǒng)計,用0表示白,1表示黑,應(yīng)該有如下規(guī)律[000000001111000000111000011001]:①黑白相間②在左圖中,從左到右,黑帶和白帶逐漸縮減,而在右圖中相反③黑白相間重復(fù)次數(shù)有9次,數(shù)到8次以上就可以記為有效。滿足以上三個條件,則可以認為有檢測到漿葉保護罩,可以在手機app等交互界面上進一步彈窗提示,要求用戶確認,是否真的安裝有漿葉保護罩。通過這樣的步驟能夠快速確認漿葉保護罩的遮擋,從而觸發(fā)對應(yīng)的遮擋恢復(fù)邏輯。
應(yīng)該了解的是,上述檢測紋理的方法僅僅是一種示例,本發(fā)明可以根據(jù)具體遮擋物的形狀、圖案等特定,根據(jù)現(xiàn)有的方法來制定特定的檢測方式,其均應(yīng)涵蓋在本發(fā)明的范圍內(nèi)。
再者,本發(fā)明還考慮到了,出現(xiàn)在圖像中的部件本身的位置相對于圖像獲取裝置(雙目相機)也可能不是固定的。例如,在無人機的飛行過程中或者在無人機起飛之前,為了使固定在云臺上的拍攝裝置(不同于雙目相機)持續(xù)對某一場景進行拍攝,云臺的姿態(tài)可能是隨時變化的。由此,云臺在雙目相機所獲取的圖像中可能出現(xiàn)的區(qū)域、大小或形狀均可能是變化的。在這種情況下,就需要根據(jù)云臺的姿態(tài)來判斷圖像中是否存在異常區(qū)域,并進行相應(yīng)的遮擋檢測和深度圖遮擋恢復(fù)操作。具體來說,可以根據(jù)云臺的實時姿態(tài)角(如俯仰角、橫滾角、偏航角等)來估計云臺在檢測圖像中的位置,并在估計出云臺的位置之后進行遮擋恢復(fù)操作。
此外,根據(jù)本發(fā)明的另一實施方式,在檢測兩個圖像中的異常區(qū)域時,將過度曝光的區(qū)域作為異常區(qū)域。過度曝光區(qū)域包括陽光、燈光等直接照射而產(chǎn)生的強光區(qū)域,也可以是由于高動態(tài)場景切換時的過度曝光區(qū)域。由于過度曝光的區(qū)域和遮擋物一樣會影響深度圖的計算,因此,在檢測異常區(qū)域時,也將這些過度曝光區(qū)域作為一種特殊的異常區(qū)域進行處理。檢測過度曝光的區(qū)域可以通過檢測圖像中各個像素的亮度值來進行,例如,可以將圖像中的亮度值大于某個閾值的區(qū)域作為過度曝光區(qū)域。當然,本發(fā)明還可以采用其他的檢測過度曝光區(qū)域的技術(shù)。在一些實施例中,圖像獲取裝置的曝光時間被設(shè)為很短(如小于5ms),且其增益也很小,但是會出現(xiàn)很多像素值大于所述閾值(如有大量像素值大于255的像素點)的像素點,此時的場景則可以被判斷為過度曝光。
圖2是根據(jù)本發(fā)明的深度圖生成方法生成的圖1a的深度圖的示意圖。如圖2所示,該生成的深度圖在未受到遮擋物的影響。圖3是本發(fā)明的深度圖生成方法所包括的步驟流程圖。如圖3所示,深度圖的生成方法包括兩個基本的步驟:即
s1、檢測兩個圖像中的異常區(qū)域,該兩個圖像是從不同角度對同一場景同時進行拍攝而獲得;
s2、在屏蔽所述兩個圖像中的處于異常區(qū)域的像素的情況下同,根據(jù)所述兩個圖像生成深度圖。
在本發(fā)明的上述實施例中,通過上述檢測方法檢測出兩個圖像中的異常區(qū)域,然后在屏蔽異常區(qū)域的像素的情況下生成深度圖。在進行屏蔽處理的時候,本發(fā)明根據(jù)具體的深度圖生成方法可以采用不同的屏蔽方式,其原理是使異常區(qū)域的像素不參與到深度圖的計算中,或者使之參與的成分對深度圖的計算不產(chǎn)生顯著的影響。
作為一個例子,步驟s2中生成深度圖d時可采用semi-globalmatching算法,該算法計算匹配代價s取最小值時相應(yīng)的深度值d,s表示所述兩幅圖像在進行匹配計算時的匹配程度。所述匹配代價s由下式計算:
其中l(wèi)r(p,d)表示像素p沿路徑r的路徑代價,所述路徑代價lr(p,d)由下式迭代計算獲得:
l′r(p,d)=c(p,d)+min(l′r(p-r,d),l′r(p-r,d-1)
+p1,l′r(p-r,d+1)+p1,min(l′r(p-r,i)+p2)
其中,c(p,d)表示像素p的匹配度,p1、p2為懲罰因子,均為常數(shù),i為自然數(shù)。
對于步驟1中檢測到的所有異常區(qū)域的所有像素,令c(p,d)為一個常數(shù)cb,該cb大于其他區(qū)域像素的c(p,d)的最大值。
根據(jù)上述公式,由于l’r(p,d)只取決于式中的后一部分,此此點的深度信息是通過周圍的點推算來的,這樣就能夠去除遮擋引用的本身匹配錯誤問題。
根據(jù)本發(fā)明的一種實施方式,當步驟s1檢測到異常區(qū)域時,步驟s2還包括提示出現(xiàn)遮擋的步驟。例如,對于semi-globalmatching算法來計算深度圖時,還可以計算∑ps(p,d),當∑ps(p,d)大于一個閾值時,提示出現(xiàn)遮擋。由于該方法手動地設(shè)置了一些像素的本身匹配結(jié)果令c(p,d)為一個較大的數(shù)字,會引起有較大偏差,因此在計算整個匹配過程的適配參數(shù)的時候,手動設(shè)置的像素將一律不參與計算,由此,計算出來的∑ps(p,d)若很大(大于一定的閾值),則認為當前觀測很差,可能出現(xiàn)物體遮擋,或者其他情況(鏡頭被污染等),導(dǎo)致雙目之間匹配很差。此時無人機可以向用戶發(fā)出提示信息,如在控制端(如遙控器或智能手機)發(fā)出警告信息,警告用戶可能有遮擋物擋住了圖像獲取裝置。用戶收到警告信息之后,可以去查看是否有遮擋物存在。
圖4是根據(jù)本發(fā)明的深度圖生成方法架構(gòu)的用于無人機的一種遮擋檢測系統(tǒng)的一個實施例的結(jié)構(gòu)示意圖。如圖4所示,該檢測系統(tǒng)1包括深度圖生成裝置10和遮擋檢測裝置11,深度圖生成裝置10用于檢測從不同角度對同一場景同時進行拍攝的兩個圖像中的異常區(qū)域,并在屏蔽所述兩個圖像中的處于異常區(qū)域的像素的情況下,根據(jù)所述兩個圖像生成深度圖;遮擋檢測裝置11則用于根據(jù)所述深度圖生成裝置生成的深度圖檢測遮擋。
所述的深度圖生成裝置10采用本發(fā)明前述的深度圖生成方法,在此不再贅述。所述遮擋檢測裝置11根據(jù)生成的深度圖來判斷是否存在遮擋物。例如,對于semi-globalmatching算法來計算深度圖時,如前所述,可以計算∑ps(p,d),當∑ps(p,d)大于一個閾值時,則判斷出現(xiàn)遮擋。
如圖4所示,本發(fā)明的遮擋檢測系統(tǒng)還可以包括警示裝置12。當遮擋檢測裝置11檢測到存在遮擋物時,其向警示裝置12發(fā)送警示指令,警示裝置根據(jù)該警示指令在所述遮擋檢測裝置確定出現(xiàn)遮擋時進行警示動作。
作為無人機上應(yīng)用的一種具體的實施方式,警示裝置12可以是安裝在無人機上的任何能產(chǎn)生聲、光、電信號的器件,例如揚聲器、警示燈等。除此之外,本發(fā)明優(yōu)選為將警示裝置12設(shè)計為具有人機交互功能的器件,或者集成在具有人機交互功能的器件中。對于無人機來說,其可以設(shè)置于無人機的遙控器上,或者由無人機的遙控器中的現(xiàn)有器件、例如屏幕、指示燈等。
作為更優(yōu)選的實施方式,所述警示裝置是可以接收用戶輸入的裝置。例如,警示裝置可以是觸摸式屏幕,或者是屏幕與按鍵的組合等。當警示裝置12接收到警示指令時,其可以通過在屏幕上顯示彈窗的方式向用戶警示,并提示用戶確認是否確實存在遮擋。由此,用戶可以直接進行相關(guān)的確認動作。
圖5是根據(jù)本發(fā)明的一個實施例的無人機的避障系統(tǒng)的模塊架構(gòu)圖。如圖5所示,該避障系統(tǒng)包括圖像獲取裝置2、遮擋檢測系統(tǒng)1和避障控制裝置3。
圖像獲取裝置2用于獲取從不同角度對同一場景同時進行拍攝的兩個圖像。通常圖像獲取裝置為雙目相機,雙目相機可以是可見光波段的相機或紅外相機,或者二者集成。圖像獲取裝置2將獲取的圖片或視頻中的圖像幀發(fā)送給遮擋檢測系統(tǒng)。
遮擋檢測系統(tǒng)1能夠根據(jù)所述兩個圖像生成深度并進行遮擋檢測,具體實施方式已在前文中進行說明,在此不再贅述。
避障控制裝置3用于進行無人機等無人駕駛載具有避障控制,能夠?qū)o人駕駛載具的行駛或飛行進行自動控制。其通常具有自身的障礙物檢測裝置并根據(jù)檢測的障礙物來調(diào)整無人駕駛載具的行駛或飛行路線。在本發(fā)明中,為了不使遮擋物被當作障礙物,本發(fā)明引入了前述的遮擋檢測系統(tǒng)2,并使得避障控制裝置3根據(jù)遮擋檢測系統(tǒng)2的檢測結(jié)果來作為是否進行避障的依據(jù)之一。具體來說,當遮擋檢測裝置檢測到存在遮擋時,避障控制裝置3不針對該遮擋物產(chǎn)生的圖像異常進行避障,而在遮擋檢測裝置檢測不到存在遮擋時,避障控制裝置3才以常規(guī)的方式進行避障。
在實際的應(yīng)用中,遮擋檢測系統(tǒng)和避障控制裝置可能由獨立的硬件或軟件實現(xiàn),也可以由集成的硬件或軟件實現(xiàn)。對于無人機來說,其也可以共同作為飛行控制系統(tǒng)的一部分由硬件和/或軟件來實現(xiàn)。
圖6是本發(fā)明的另一實施例的無人機的模塊架構(gòu)圖。如圖6所示,該無人機包括圖像獲取裝置2和處理器5。圖像獲取裝置2用于獲取從不同角度對同一場景同時進行拍攝的兩個圖像;處理器5用于檢測所述兩個圖像中的異常區(qū)域,以及在屏蔽所述異常區(qū)域的情況下,根據(jù)所述兩個圖像生成深度圖。所述處理器5具有前述的深度圖生成方法,在此不再贅述。
處理器5還可根據(jù)生成的深度圖來判斷是否存在大面積遮擋。例如,對于semi-globalmatching算法來計算深度圖時,如前所述,可以計算∑ps(p,d),當∑ps(p,d)大于一個閾值時,則判斷出現(xiàn)大面積遮擋。
如圖6所示,該實施例的無人機還可包括顯示裝置6,所述處理器5在所述遮擋出現(xiàn)時還可以使顯示裝置6顯示所述警告信息。所述顯示裝置例如可以是能夠接收用戶輸入的觸摸式屏幕,以使得用戶能夠能過輸入來確認是否存在大面積遮擋。
應(yīng)當理解,雖然該實施例中采用一個處理器,但其也可由多個處理器來分別執(zhí)行上述一個處理器中執(zhí)行的步驟。
根據(jù)本發(fā)明各實施例的上述方法、模塊可以通過有計算能力的電子設(shè)備執(zhí)行包含計算機指令的軟件來實現(xiàn)。該系統(tǒng)可以包括存儲設(shè)備,以實現(xiàn)上文所描述的各種存儲。所述有計算能力的電子設(shè)備可以包含通用處理器、數(shù)字信號處理器、專用處理器、可重新配置處理器等能夠執(zhí)行計算機指令的裝置,但不限于此。執(zhí)行這樣的指令使得電子設(shè)備被配置為執(zhí)行根據(jù)本發(fā)明的上述各項操作。上述各方法和/或模塊可以在一個電子設(shè)備中實現(xiàn),也可以在不同電子設(shè)備中實現(xiàn)。
本發(fā)明的實施例使用軟件的,軟件可以存儲為易失性存儲器或非易失性存儲裝置的形式(比如類似rom等存儲設(shè)備),不論是可擦除的還是可重寫的,或者存儲為存儲器的形式(例如ram、存儲器芯片、設(shè)備或集成電路),或者被存儲在光可讀介質(zhì)或磁可讀介質(zhì)上(比如,cd、dvd、磁盤或磁帶等等)。應(yīng)該意識到,存儲設(shè)備和存儲介質(zhì)是適于存儲一個或多個程序的機器可讀存儲裝置的實施例,所述一個程序或多個程序包括指令,當所述指令被執(zhí)行時,實現(xiàn)本發(fā)明的實施例。此外,可以經(jīng)由任何介質(zhì)(比如,經(jīng)由有線連接或無線連接攜帶的通信信號)來電傳遞這些程序,多個實施例適當?shù)匕ㄟ@些程序。
以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。