本發(fā)明屬于計算機視覺領(lǐng)域,更具體地,涉及一種圖像深度估計方法和系統(tǒng)。
背景技術(shù):
圖像深度估計被廣泛應(yīng)用到智能車避障,機器人控制,汽車輔助駕駛,增強現(xiàn)實等應(yīng)用領(lǐng)域。道路場景下基于視覺的圖像深度估計,利用計算機視覺技術(shù),通過處理攝像頭捕捉的圖像,獲得引導(dǎo)信息。與其他引導(dǎo)技術(shù)相比,基于視覺的方法不必增加其他的傳感器設(shè)施,易于對采集設(shè)備進(jìn)行擴(kuò)展。隨著我國車輛擁有數(shù)量的增加和道路狀況的日益復(fù)雜以及對輔助駕駛功能的更高要求,基于視覺的圖像深度估計也被廣泛地應(yīng)用到智能輔助駕駛之中。
目前道路場景下基于計算機視覺的深度估計方法主要分為兩種:1)基于雙目圖像的深度估計方法;2)基于單目圖像的深度估計方法。
基于雙目圖像的道路場景深度估計方法是通過安裝在兩個不同角度的攝像機對同一個場景從不同的視角拍攝,然后通過兩幅圖像以及兩幅圖像之間的基本幾何關(guān)系恢復(fù)場景的三維信息,從而獲得場景中每個像素點的深度估計值。在智能輔助駕駛中,利用獲得的深度值對前方障礙物進(jìn)行預(yù)警。但是,基于雙目圖像的道路場景深度估計方法存在大量的問題。如雙目攝像機在車輛行駛過程中的自標(biāo)定問題,雙目相機的計算量大問題等。這些問題造成了基于雙目相機的道路場景深度估計的不準(zhǔn)確和不實用。
基于單目圖像的道路場景深度估計方法又可以分為非基于學(xué)習(xí)的方法和基于學(xué)習(xí)的方法。非基于學(xué)習(xí)的方法通常是給定一部分的道路場景圖像以及場景圖像所對應(yīng)的深度圖像作為參考圖像集合,然后根據(jù)拍攝的當(dāng)前幀圖像與參考的圖像集合中的道路場景圖像中的圖像匹配結(jié)果,獲得道路場景的深度信息。方法的計算復(fù)雜度非常高,檢測圖像和參考圖像集合中進(jìn)行匹配的過程一般非常緩慢。并且,方法一般要求參考圖像集合中的圖像與拍攝的圖像具有相似的空間結(jié)構(gòu),并且需要花費極大的存儲空間維護(hù)一個數(shù)據(jù)龐大的參考圖像集合?;趯W(xué)習(xí)的道路場景深度估計方法一般是以場景圖像以及圖像的深度作為輸入,學(xué)習(xí)道路場景圖像與深度圖像之間的對應(yīng)關(guān)系,獲得深度模型。然后利用深度模型對輸入的圖像中場景深度進(jìn)行預(yù)測,獲得場景中目標(biāo)或者像素的深度信息。當(dāng)前大部分的基于學(xué)習(xí)的道路場景圖像深度估計方法是通過深度學(xué)習(xí)的方法進(jìn)行的。但是,大部分的基于深度學(xué)習(xí)的深度估計方法是針對單幅圖像或者雙目圖像中的左右立體圖像而言的,并且往往需要光流等信息作為輔助進(jìn)行輸入計算,不能直接實現(xiàn)端對端的深度估計計算,同時也造成了深度估計計算不準(zhǔn)確等問題。另外一個問題是當(dāng)前的基于深度學(xué)習(xí)方法的深度估計是將深度估計問題看作分類問題來處理,采用全連接層,最終得到的結(jié)果不能夠直接輸出與輸入圖像相同尺度大小的深度圖,即得到的結(jié)果是非致密的,需要后期進(jìn)一步的上采樣才能夠得到最終的輸出結(jié)果。同時,網(wǎng)絡(luò)層數(shù)過深,使得運算速度非常慢,要實現(xiàn)像素級的深度估計需要大量的運存。
由此可見,現(xiàn)有技術(shù)存在精確度低、效率低、且最終得到的深度圖是非致密的技術(shù)問題。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種圖像深度估計方法和系統(tǒng),其目的在于構(gòu)建深度估計網(wǎng)絡(luò),利用訓(xùn)練樣本訓(xùn)練深度估計網(wǎng)絡(luò),得到訓(xùn)練好的深度估計網(wǎng)絡(luò);采集測試圖像輸入深度估計網(wǎng)絡(luò),得到深度圖,由此解決現(xiàn)有技術(shù)存在精確度低、效率低、且最終得到的深度圖是非致密的技術(shù)問題。
為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種圖像深度估計方法,包括:
(1)構(gòu)建深度估計網(wǎng)絡(luò),深度估計網(wǎng)絡(luò)包括:編碼部分、卷積連接部分和解碼部分,解碼部分的反卷積層與編碼部分的尺度相同的卷積塊中的最后一層卷積層相連接,形成最終的反卷積層;
(2)選取樣本圖像中的兩張連續(xù)圖像和其中一張圖像的深度圖作為訓(xùn)練樣本,利用訓(xùn)練樣本訓(xùn)練深度估計網(wǎng)絡(luò),得到訓(xùn)練好的深度估計網(wǎng)絡(luò);
(3)采集測試圖像,提取測試圖像的當(dāng)前幀圖像和當(dāng)前幀圖像的前一幀圖像;將當(dāng)前幀圖像和前一幀圖像的顏色通道輸入訓(xùn)練好的深度估計網(wǎng)絡(luò),得到當(dāng)前幀圖像的深度圖。
進(jìn)一步的,步驟(1)包括以下子步驟:
(1-1)編碼部分由若干層卷積塊組成,上一卷積塊與下一卷積塊之間通過最大池操作連接,每個卷積塊中包含若干個卷積層;
(1-2)卷積連接部分包含若干層卷積層,對每層卷積層進(jìn)行防止過擬合操作;
(1-3)解碼部分包含若干層反卷積層,將每層反卷積層與編碼部分中的尺度相同的卷積塊中的最后一層卷積層相連接,形成最終的反卷積層;
(1-4)利用編碼部分、卷積連接部分和解碼部分構(gòu)建深度估計網(wǎng)絡(luò)。
進(jìn)一步的,步驟(2)還包括對訓(xùn)練樣本進(jìn)行預(yù)處理,使得訓(xùn)練樣本具有泛化性。
進(jìn)一步的,步驟(3)還包括對當(dāng)前幀圖像和前一幀圖像進(jìn)行直方圖均衡化處理。
進(jìn)一步的,步驟(3)還包括利用高斯濾波對深度圖進(jìn)行平滑處理。
按照本發(fā)明的另一方面,提供了一種圖像深度估計系統(tǒng),包括:
構(gòu)建深度估計網(wǎng)絡(luò)模塊,用于構(gòu)建深度估計網(wǎng)絡(luò),深度估計網(wǎng)絡(luò)包括:編碼部分、卷積連接部分和解碼部分,解碼部分的反卷積層與編碼部分的尺度相同的卷積塊中的最后一層卷積層相連接,形成最終的反卷積層;
訓(xùn)練深度估計網(wǎng)絡(luò)模塊,用于選取樣本圖像中的兩張連續(xù)圖像和其中一張圖像的深度圖作為訓(xùn)練樣本,利用訓(xùn)練樣本訓(xùn)練深度估計網(wǎng)絡(luò),得到訓(xùn)練好的深度估計網(wǎng)絡(luò);
在線深度估計模塊,用于采集測試圖像,提取測試圖像的當(dāng)前幀圖像和當(dāng)前幀圖像的前一幀圖像;將當(dāng)前幀圖像和前一幀圖像的顏色通道輸入訓(xùn)練好的深度估計網(wǎng)絡(luò),得到當(dāng)前幀圖像的深度圖。
進(jìn)一步的,構(gòu)建深度估計網(wǎng)絡(luò)模塊包括:
構(gòu)建編碼部分子模塊,用于構(gòu)建編碼部分,編碼部分由若干層卷積塊組成,上一卷積塊與下一卷積塊之間通過最大池操作連接,每個卷積塊中包含若干個卷積層;
構(gòu)建卷積連接部分子模塊,用于構(gòu)建卷積連接部分,卷積連接部分包含若干層卷積層,對每層卷積層進(jìn)行防止過擬合操作;
構(gòu)建解碼部分子模塊,用于構(gòu)建解碼部分,解碼部分包含若干層反卷積層,將每層反卷積層與編碼部分中的尺度相同的卷積塊中的最后一層卷積層相連接,形成最終的反卷積層;
構(gòu)建深度估計網(wǎng)絡(luò)子模塊,用于利用編碼部分、卷積連接部分和解碼部分構(gòu)建深度估計網(wǎng)絡(luò)。
進(jìn)一步的,訓(xùn)練深度估計網(wǎng)絡(luò)模塊還包括對訓(xùn)練樣本進(jìn)行預(yù)處理,使得訓(xùn)練樣本具有泛化性。
進(jìn)一步的,在線深度估計模塊還包括對當(dāng)前幀圖像和前一幀圖像進(jìn)行直方圖均衡化處理。
進(jìn)一步的,在線深度估計模塊還包括利用高斯濾波對深度圖進(jìn)行平滑處理。
總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
(1)本發(fā)明利用深度估計網(wǎng)絡(luò)實現(xiàn)圖像深度的快速估計,并且能夠直接得到致密的場景深度圖,同時使得構(gòu)造的深度估計網(wǎng)絡(luò)具有較小的體積,容易實現(xiàn)在移動端系統(tǒng)中的快速部署,另外,本發(fā)明使用連續(xù)幀圖像作為訓(xùn)練樣本,增加了訓(xùn)練樣本的信息量,同時加入了編碼部分到解碼部分之間的跳躍連接,提升了深度圖估計的準(zhǔn)確性和致密性,且效率高。
(2)將每層反卷積層與編碼部分中的尺度相同的卷積塊中的最后一層卷積層相連接,形成最終的反卷積層,實現(xiàn)深度估計網(wǎng)絡(luò)的全卷積跳躍連接,進(jìn)而能夠?qū)崿F(xiàn)端對端的致密深度估計,同時減少深度估計網(wǎng)絡(luò)的參數(shù)訓(xùn)練量,縮小深度估計網(wǎng)絡(luò)參數(shù)的存儲空間,使得最終的深度圖更加準(zhǔn)確。
(3)優(yōu)選的,對訓(xùn)練樣本進(jìn)行預(yù)處理,能夠有效的解決訓(xùn)練樣本數(shù)量過少而造成的深度估計網(wǎng)絡(luò)的欠擬合,增強訓(xùn)練樣本的種類和泛化性。
(4)優(yōu)選的,對當(dāng)前幀圖像和前一幀圖像進(jìn)行直方圖均衡化處理,能夠提升深度估計網(wǎng)絡(luò)中輸入圖像的對比度,提升最終深度估計的效果。
(5)優(yōu)選的,對最終的深度估計圖進(jìn)行平滑處理,能夠有效減少深度估計圖中的空洞出現(xiàn),提升深度估計圖中的有效像素數(shù),使深度圖中前景目標(biāo)和背景之間深度值平滑過渡。
附圖說明
圖1是本發(fā)明實施例提供的一種圖像深度估計方法的流程圖;
圖2是本發(fā)明實施例提供的深度估計網(wǎng)絡(luò)結(jié)構(gòu)圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
如圖1所示,一種圖像深度估計方法,包括:
(1)構(gòu)建深度估計網(wǎng)絡(luò),深度估計網(wǎng)絡(luò)包括:編碼部分、卷積連接部分和解碼部分,解碼部分的反卷積層與編碼部分的尺度相同的卷積塊中的最后一層卷積層相連接,形成最終的反卷積層;
(2)選取樣本圖像中的兩張連續(xù)圖像和其中一張圖像的深度圖作為訓(xùn)練樣本,利用訓(xùn)練樣本訓(xùn)練深度估計網(wǎng)絡(luò),得到訓(xùn)練好的深度估計網(wǎng)絡(luò);
(3)采集測試圖像,提取測試圖像的當(dāng)前幀圖像和當(dāng)前幀圖像的前一幀圖像;將當(dāng)前幀圖像和前一幀圖像的顏色通道輸入訓(xùn)練好的深度估計網(wǎng)絡(luò),得到當(dāng)前幀圖像的深度圖。
進(jìn)一步的,深度估計網(wǎng)絡(luò)為全卷積跳躍連接的深度學(xué)習(xí)網(wǎng)絡(luò),如圖2所示。
進(jìn)一步的,步驟(1)包括以下子步驟:
(1-1)編碼部分由若干層卷積塊組成,上一卷積塊與下一卷積塊之間通過最大池操作連接,通過最大池操作將下一卷積塊的尺度下采樣為上一卷積塊尺度的1/2,優(yōu)選地,在本發(fā)明實施例中卷積塊的數(shù)量為5個;每個卷積塊中包含若干個卷積層,同一個卷積塊中的卷積層尺度相同,卷積層中包含的通道數(shù)相同,同一個卷積塊中的相鄰卷積層通過卷積核與上一層卷積層卷積獲得,相鄰兩個卷積層之間不使用最大池操作進(jìn)行下采樣,優(yōu)選地,本發(fā)明中第1個卷積塊中包含2層卷積層,每層卷積層中通道數(shù)量為64個;第2個卷積塊中包含2層卷積層,每層卷積層中通道數(shù)量為128個;第3、4、5個卷積塊各包含3層卷積層,這三個卷積塊中的卷積層中包含的通道數(shù)量分別為256個、384個和512個;所有卷積層之間采用的卷積核為3×3大小,層與層之間使用校正線性單元(rectifiedlinearunits,relu)作為激活函數(shù);
(1-2)卷積連接部分包含若干層卷積核為1×1的卷積層,每層卷積層之后跟隨防止過擬合(dropout)操作,并使用relu進(jìn)行激活,優(yōu)選地,本發(fā)明中卷積連接部分中卷積層的數(shù)量為3層,每層卷積連接層中包含的通道數(shù)量分別為1024個、4096個和1024個;
(1-3)解碼部分包含若干層反卷積層,下一反卷積層的尺度為上一反卷積層尺度的2倍;優(yōu)選地,本發(fā)明中反卷積層的數(shù)目為4層,1到4層反卷積層中包含的通道數(shù)目分別為512、384、256和128;將每層反卷積層與編碼部分中的尺度相同的卷積塊中的最后一層卷積層相連接,形成最終的反卷積層,優(yōu)選地,最終反卷積層中,1到4層包含的通道數(shù)目分別是896、640、384和192;
(1-4)利用編碼部分、卷積連接部分和解碼部分構(gòu)建深度估計網(wǎng)絡(luò)。
進(jìn)一步的,深度估計網(wǎng)絡(luò)中采用的損失函數(shù)為l2損失函數(shù),定義為:
其中,y和
進(jìn)一步的,步驟(2)還包括對訓(xùn)練樣本進(jìn)行預(yù)處理,使得訓(xùn)練樣本具有泛化性。
進(jìn)一步的,步驟(2)包括以下子步驟:
(2-1)利用隨機函數(shù)隨機[1,3]內(nèi)的隨機數(shù)r;
(2-2)根據(jù)隨機數(shù)r對訓(xùn)練樣本進(jìn)行相應(yīng)的處理,當(dāng)r=1時,對訓(xùn)練樣本隨機旋轉(zhuǎn)同一角度。當(dāng)r=2時,對訓(xùn)練樣本在一定概率條件下進(jìn)行翻轉(zhuǎn)。當(dāng)r=3時,對兩張連續(xù)圖像中rgb三個顏色通道分別乘以一個隨機數(shù),兩張連續(xù)圖像的同一個顏色通道所乘的隨機數(shù)相同,深度圖保持不變,優(yōu)選地,對圖像進(jìn)行旋轉(zhuǎn)的角度范圍為-5°到5°;圖像是否翻轉(zhuǎn)的概率為0.5;圖像顏色變化所采用的隨機數(shù)范圍為0.8到1.2之間。
進(jìn)一步的,步驟(3)還包括對當(dāng)前幀圖像和前一幀圖像進(jìn)行直方圖均衡化處理,削弱當(dāng)前幀圖像和前一幀圖像中因為光照變化、運動模糊等因素對深度估計的影響。
進(jìn)一步的,步驟(3)還包括將預(yù)先處理后的當(dāng)前幀圖像和前一幀圖像合并,將合并后的rgb顏色6個通道輸入訓(xùn)練網(wǎng)絡(luò),得到當(dāng)前幀圖像所對應(yīng)的深度圖;利用高斯濾波對深度圖進(jìn)行平滑,優(yōu)選地,高斯濾波的核函數(shù)大小為5×5;將平滑后的深度圖歸一化到[0,255]灰度間間,并輸出。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。