本發明(ming)涉及(ji)(ji)(ji)視覺(jue)圖像(xiang)處(chu)理,特別(bie)涉及(ji)(ji)(ji)一種基于深度學習的雙目視差的估計(ji)方法、裝置、設(she)備及(ji)(ji)(ji)介質。
背景技術:
1、雙目深(shen)(shen)度估計(ji)(ji)算法,旨(zhi)在通過使(shi)用雙目攝(she)像頭或圖像對來推(tui)斷場(chang)景中物體(ti)的(de)(de)深(shen)(shen)度信息。通過計(ji)(ji)算左右兩個(ge)視圖之間(jian)的(de)(de)視差(disparity),然后將(jiang)視差轉換為物體(ti)的(de)(de)深(shen)(shen)度信息。傳(chuan)統的(de)(de)雙目深(shen)(shen)度估計(ji)(ji)方法包括基于區(qu)域的(de)(de)匹配(pei)、基于特(te)征的(de)(de)匹配(pei)等等。近年(nian)來,深(shen)(shen)度學(xue)習(xi)技術的(de)(de)發展也推(tui)動了基于卷積神經網絡(cnn)的(de)(de)深(shen)(shen)度估計(ji)(ji)方法的(de)(de)出現(xian)。
2、基于區域(yu)的(de)(de)(de)匹(pi)(pi)配(pei)(pei)(pei)方法(fa)(fa)(fa):這種方法(fa)(fa)(fa)將圖(tu)(tu)像(xiang)(xiang)劃分為(wei)一系列的(de)(de)(de)區域(yu),并在(zai)左右圖(tu)(tu)像(xiang)(xiang)之(zhi)間(jian)尋找相(xiang)應區域(yu)的(de)(de)(de)匹(pi)(pi)配(pei)(pei)(pei)。其中(zhong)最常見(jian)的(de)(de)(de)算(suan)法(fa)(fa)(fa)是塊(kuai)(kuai)匹(pi)(pi)配(pei)(pei)(pei)算(suan)法(fa)(fa)(fa)(block?matching),它(ta)將圖(tu)(tu)像(xiang)(xiang)分割(ge)為(wei)固定大(da)小(xiao)的(de)(de)(de)塊(kuai)(kuai),然后通過計算(suan)塊(kuai)(kuai)之(zhi)間(jian)的(de)(de)(de)相(xiang)似(si)(si)度(du)來匹(pi)(pi)配(pei)(pei)(pei)視差。塊(kuai)(kuai)匹(pi)(pi)配(pei)(pei)(pei)算(suan)法(fa)(fa)(fa)使(shi)用各種相(xiang)似(si)(si)度(du)度(du)量方法(fa)(fa)(fa),如均方差、絕對差異(yi)等,來評估(gu)塊(kuai)(kuai)之(zhi)間(jian)的(de)(de)(de)相(xiang)似(si)(si)性(xing)。另一種常見(jian)的(de)(de)(de)方法(fa)(fa)(fa)是自(zi)適應支持窗口算(suan)法(fa)(fa)(fa)(adaptive?support?weight),它(ta)根據像(xiang)(xiang)素之(zhi)間(jian)的(de)(de)(de)亮度(du)差異(yi)調整匹(pi)(pi)配(pei)(pei)(pei)窗口的(de)(de)(de)大(da)小(xiao),以(yi)提高(gao)匹(pi)(pi)配(pei)(pei)(pei)的(de)(de)(de)準(zhun)確性(xing)。
3、基于特(te)征(zheng)(zheng)的(de)(de)匹配(pei)(pei)方法(fa)(fa)(fa):這(zhe)(zhe)(zhe)種(zhong)方法(fa)(fa)(fa)尋找左右(you)圖像(xiang)中的(de)(de)特(te)征(zheng)(zheng)點(dian),并通過匹配(pei)(pei)這(zhe)(zhe)(zhe)些特(te)征(zheng)(zheng)點(dian)來估計(ji)視差(cha)。常用的(de)(de)特(te)征(zheng)(zheng)點(dian)提(ti)(ti)取(qu)算法(fa)(fa)(fa)包括sift(尺度不變(bian)特(te)征(zheng)(zheng)變(bian)換(huan))和surf(加速穩(wen)健特(te)征(zheng)(zheng))。這(zhe)(zhe)(zhe)些算法(fa)(fa)(fa)提(ti)(ti)取(qu)圖像(xiang)中的(de)(de)關鍵點(dian),并計(ji)算描述(shu)符用于匹配(pei)(pei)。然(ran)后,通過計(ji)算特(te)征(zheng)(zheng)點(dian)之(zhi)間的(de)(de)相似性(xing)得到視差(cha)信(xin)息。
4、深度學習算法在雙目深度估計任務中(zhong)已經(jing)取得(de)了顯(xian)著的(de)(de)進展,目前在許多方面(mian)超(chao)過(guo)(guo)了傳統的(de)(de)方法。基(ji)于卷(juan)積神(shen)經(jing)網(wang)絡的(de)(de)方法通(tong)過(guo)(guo)端到端的(de)(de)學習,可以直接從輸(shu)入的(de)(de)圖(tu)(tu)像對中(zhong)預測(ce)視差圖(tu)(tu),進而計算出深度圖(tu)(tu)。
5、從(cong)(cong)整(zheng)體(ti)結(jie)構來(lai)(lai)看,為了(le)提高深度估計(ji)的性能,現有(you)模型如dispnet和(he)psmnet等算法引入了(le)編碼-解碼結(jie)構,以(yi)便從(cong)(cong)不同層(ceng)次和(he)粒(li)度上(shang)提取特(te)(te)征并進行特(te)(te)征融合;gc-net引入全局卷積層(ceng)和(he)全局嵌入層(ceng),以(yi)利(li)用全局上(shang)下文信息來(lai)(lai)提高視(shi)差準確(que)性。
6、從技術選型(xing)來看,基于(yu)(yu)(yu)深(shen)度(du)學習的(de)(de)(de)(de)雙(shuang)目深(shen)度(du)估(gu)(gu)計算法包含:基于(yu)(yu)(yu)correlation的(de)(de)(de)(de)方法將雙(shuang)目數據(ju)直(zhi)接合(he)并進行(xing)特(te)(te)征(zheng)(zheng)(zheng)提取,或者(zhe)采(cai)用共享權重的(de)(de)(de)(de)形式分別提取雙(shuang)目數據(ju)的(de)(de)(de)(de)特(te)(te)征(zheng)(zheng)(zheng),在(zai)中間層(ceng)進行(xing)特(te)(te)征(zheng)(zheng)(zheng)融合(he),最后(hou)(hou)直(zhi)接回歸(gui)輸出(chu)左相機(ji)的(de)(de)(de)(de)視(shi)差(cha)估(gu)(gu)計;基于(yu)(yu)(yu)cost?volume矩陣的(de)(de)(de)(de)方法首(shou)(shou)先(xian)(xian)將兩(liang)張圖(tu)像進行(xing)特(te)(te)征(zheng)(zheng)(zheng)提取,然后(hou)(hou)采(cai)用錯位匹配的(de)(de)(de)(de)方式構建一(yi)個完整的(de)(de)(de)(de)costvolume矩陣,然后(hou)(hou)采(cai)用三維(wei)卷積等手(shou)段進行(xing)深(shen)度(du)融合(he)感知,最終生成視(shi)差(cha)以及深(shen)度(du)估(gu)(gu)計結果;基于(yu)(yu)(yu)transformer的(de)(de)(de)(de)方法首(shou)(shou)先(xian)(xian)各(ge)自提取雙(shuang)目圖(tu)片的(de)(de)(de)(de)深(shen)層(ceng)特(te)(te)征(zheng)(zheng)(zheng),然后(hou)(hou)借助transformer強大的(de)(de)(de)(de)注意力機(ji)制,學習各(ge)像素點全(quan)局(ju)匹配特(te)(te)征(zheng)(zheng)(zheng),最后(hou)(hou)輸出(chu)深(shen)度(du)估(gu)(gu)計結果。
7、目前(qian),現有技術中的各種(zhong)雙目深度(du)估計(ji)算法(fa)均存在缺陷,例如:
8、1.對于傳(chuan)統(tong)算(suan)法(fa)(fa)(fa)(fa)方案,采用(yong)的(de)匹配算(suan)法(fa)(fa)(fa)(fa)(block?matching)、sift以(yi)及(ji)(ji)surf等(deng)算(suan)法(fa)(fa)(fa)(fa)模塊通常(chang)計算(suan)量較大,不利于嵌(qian)入式(shi)平(ping)臺的(de)實(shi)時部署;對于目前流行的(de)各類ai推(tui)(tui)理芯(xin)片來說,無法(fa)(fa)(fa)(fa)對算(suan)法(fa)(fa)(fa)(fa)進行有效的(de)硬件(jian)加速(su),只能借(jie)助cpu實(shi)現算(suan)法(fa)(fa)(fa)(fa)計算(suan),更加導(dao)致推(tui)(tui)理時間難以(yi)降低;傳(chuan)統(tong)算(suan)法(fa)(fa)(fa)(fa)由于其匹配以(yi)及(ji)(ji)特(te)征(zheng)(zheng)點提取等(deng)算(suan)法(fa)(fa)(fa)(fa)的(de)局(ju)限(xian)性,通常(chang)難以(yi)產生密集深度(du)信息,只能輸出特(te)征(zheng)(zheng)明顯的(de)稀疏深度(du)值;
9、2.對于深度(du)學習算法,其可以(yi)輸出(chu)密集(ji)深度(du)信息,但是現(xian)有不同技術路徑算法存在各自的問題:
10、1)對(dui)于correlation方案,一(yi)般(ban)要求模型做完(wan)圖像特(te)征(zheng)提取后直接(jie)左(zuo)右相機特(te)征(zheng)直接(jie)融合(he),然(ran)后輸出視差結(jie)果(guo),對(dui)于cnn模型架構來說,沒有進行左(zuo)右特(te)征(zheng)的位置(zhi)對(dui)齊(qi),通常難以學習真正的像素視差,效果(guo)一(yi)般(ban)。
11、2)對于cost?volume方(fang)案,在網(wang)絡深層通過(guo)左右(you)偏移的(de)形式特(te)征(zheng)(zheng)對齊(qi)、計算代價矩陣,大大提(ti)升了模(mo)型輸出(chu)的(de)視(shi)差(cha)性能,但是(shi)其特(te)征(zheng)(zheng)對齊(qi)方(fang)式通常在同一層進(jin)(jin)行(xing),且需要對特(te)征(zheng)(zheng)圖(tu)進(jin)(jin)行(xing)幾十(shi)次裁切(qie)、偏移才(cai)能實現對齊(qi)、點乘(cheng)等(deng)操作。這種(zhong)方(fang)式不能充分提(ti)取代價矩陣特(te)征(zheng)(zheng),同時頻繁裁切(qie)、點乘(cheng)等(deng)計算會大大提(ti)高嵌入式平(ping)臺(tai)ddr帶(dai)寬以及cpu資源占用(yong)率,降低模(mo)型部署(shu)效率。在獲(huo)得cost?volume后(hou),本方(fang)法通常選(xuan)擇(ze)三(san)維卷(juan)(juan)積(ji)(ji)實現視(shi)差(cha)空間特(te)征(zheng)(zheng)融合(he)來(lai)提(ti)升最終輸出(chu)效果,但相比二維卷(juan)(juan)積(ji)(ji),三(san)維卷(juan)(juan)積(ji)(ji)會帶(dai)來(lai)數十(shi)倍的(de)計算量提(ti)升,對嵌入式平(ping)臺(tai)部署(shu)十(shi)分不利。
12、對于transformer方案,受限于transformer模型結構,存在訓練收(shou)斂難度大,模型涉及(ji)算子部(bu)署效率低等(deng)問題(ti)。
技術實現思路
1、有鑒于此,本發明實施例提供(gong)了一(yi)種基于深度(du)學習(xi)的雙目視差的估計方法(fa),以(yi)解決(jue)現(xian)有技術(shu)中雙目深度(du)估計存在(zai)的準確(que)性低、計算量(liang)大(da)、資(zi)源占用率(lv)高(gao)的技術(shu)問題(ti)。該方法(fa)包(bao)括:
2、對左(zuo)目圖(tu)像和右目圖(tu)像分別采用(yong)各自的特(te)征提取模型(xing)進(jin)行圖(tu)像特(te)征提取,得到(dao)左(zuo)目特(te)征圖(tu)和右目特(te)征圖(tu),其中,所述特(te)征提取模型(xing)包括(kuo)多個串聯(lian)的二維神(shen)經網絡模塊(kuai);
3、對單路(lu)特(te)征(zheng)(zheng)圖進行(xing)橫向偏(pian)(pian)移(yi),得(de)到(dao)偏(pian)(pian)移(yi)后的(de)單路(lu)特(te)征(zheng)(zheng)圖,將偏(pian)(pian)移(yi)后的(de)單路(lu)特(te)征(zheng)(zheng)圖與剩余特(te)征(zheng)(zheng)圖進行(xing)逐點(dian)相(xiang)乘(cheng),得(de)到(dao)代價矩陣,其(qi)中(zhong),所(suo)述(shu)(shu)單路(lu)特(te)征(zheng)(zheng)圖為(wei)(wei)所(suo)述(shu)(shu)左目特(te)征(zheng)(zheng)圖和(he)所(suo)述(shu)(shu)右(you)目特(te)征(zheng)(zheng)圖中(zhong)的(de)一個(ge)特(te)征(zheng)(zheng)圖,所(suo)述(shu)(shu)剩余特(te)征(zheng)(zheng)圖為(wei)(wei)所(suo)述(shu)(shu)左目特(te)征(zheng)(zheng)圖和(he)所(suo)述(shu)(shu)右(you)目特(te)征(zheng)(zheng)圖中(zhong)的(de)另一個(ge)特(te)征(zheng)(zheng)圖;
4、采用融合(he)解碼模型融合(he)所述(shu)代價矩陣(zhen)和(he)所述(shu)剩余特(te)征(zheng)圖,得到基于所述(shu)剩余特(te)征(zheng)圖的雙(shuang)目視差,其中,所述(shu)融合(he)解碼模型包括多個串聯的二(er)維神經網絡模塊。
5、本發明實(shi)施例還提供了一種基于深(shen)度學習(xi)的(de)雙目視差的(de)估計(ji)(ji)裝置,以解(jie)決現有技術中雙目深(shen)度估計(ji)(ji)存在(zai)的(de)準確性低、計(ji)(ji)算量(liang)大、資源占用率高(gao)的(de)技術問題。該裝置包括:
6、特征(zheng)提取(qu)模(mo)塊(kuai),用于對左目(mu)(mu)圖(tu)像和(he)(he)右目(mu)(mu)圖(tu)像分別采用各(ge)自的特征(zheng)提取(qu)模(mo)型進行圖(tu)像特征(zheng)提取(qu),得到左目(mu)(mu)特征(zheng)圖(tu)和(he)(he)右目(mu)(mu)特征(zheng)圖(tu),其中,所述特征(zheng)提取(qu)模(mo)型包括多(duo)個串(chuan)聯的二(er)維神經網絡模(mo)塊(kuai);
7、代(dai)價匹(pi)配模塊(kuai),用于對單路(lu)特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu)進行橫(heng)向偏移,得(de)到偏移后的(de)(de)(de)單路(lu)特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu),將偏移后的(de)(de)(de)單路(lu)特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu)與剩余特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu)進行逐點相乘(cheng),得(de)到代(dai)價矩陣,其中,所述(shu)單路(lu)特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu)為所述(shu)左目特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu)和(he)所述(shu)右(you)目特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu)中的(de)(de)(de)一(yi)個特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu),所述(shu)剩余特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu)為所述(shu)左目特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu)和(he)所述(shu)右(you)目特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu)中的(de)(de)(de)另一(yi)個特(te)征(zheng)(zheng)(zheng)圖(tu)(tu)(tu)(tu)(tu);
8、雙(shuang)目(mu)視(shi)差(cha)解(jie)碼模(mo)塊(kuai),用于(yu)采(cai)用融合解(jie)碼模(mo)型(xing)融合所述代價矩陣和所述剩余特征圖,得到(dao)基于(yu)所述剩余特征圖的(de)雙(shuang)目(mu)視(shi)差(cha),其中,所述融合解(jie)碼模(mo)型(xing)包(bao)括多個串(chuan)聯(lian)的(de)二維(wei)神經網絡(luo)模(mo)塊(kuai)。
9、本發明實施例還提供了一種計(ji)(ji)(ji)算(suan)機設備,包(bao)括(kuo)存(cun)儲(chu)(chu)器(qi)、處(chu)(chu)理器(qi)及存(cun)儲(chu)(chu)在存(cun)儲(chu)(chu)器(qi)上(shang)并可在處(chu)(chu)理器(qi)上(shang)運行的(de)(de)計(ji)(ji)(ji)算(suan)機程序(xu),所述(shu)處(chu)(chu)理器(qi)執行所述(shu)計(ji)(ji)(ji)算(suan)機程序(xu)時實現(xian)上(shang)述(shu)任意的(de)(de)基于深度學(xue)習的(de)(de)雙目視差的(de)(de)估計(ji)(ji)(ji)方(fang)法,以解(jie)決現(xian)有技(ji)術中雙目深度估計(ji)(ji)(ji)存(cun)在的(de)(de)準(zhun)確性低、計(ji)(ji)(ji)算(suan)量大、資源占用(yong)率高的(de)(de)技(ji)術問(wen)題。
10、本發明(ming)實施例還(huan)提(ti)供了一種計(ji)(ji)算機可讀(du)存儲介質,所述計(ji)(ji)算機可讀(du)存儲介質存儲有執行上述任意(yi)的(de)基(ji)于深(shen)度(du)學習的(de)雙目視差的(de)估計(ji)(ji)方法的(de)計(ji)(ji)算機程序,以(yi)解決(jue)現有技術(shu)(shu)中雙目深(shen)度(du)估計(ji)(ji)存在(zai)的(de)準(zhun)確性(xing)低、計(ji)(ji)算量大、資源(yuan)占用率(lv)高的(de)技術(shu)(shu)問題。
11、與(yu)現有(you)技術(shu)相比,本說明(ming)書實施例采(cai)用的(de)(de)(de)上述(shu)至少(shao)一個(ge)技術(shu)方案能(neng)夠達到(dao)的(de)(de)(de)有(you)益(yi)效果至少(shao)包括:提(ti)出(chu)了通過(guo)(guo)包括多個(ge)串(chuan)聯(lian)(lian)的(de)(de)(de)二維(wei)神(shen)經網(wang)絡模(mo)塊的(de)(de)(de)特(te)(te)(te)(te)征(zheng)(zheng)提(ti)取模(mo)型(xing)對(dui)(dui)(dui)(dui)雙目圖像進(jin)(jin)(jin)行(xing)(xing)圖像特(te)(te)(te)(te)征(zheng)(zheng)提(ti)取,以分別獲得(de)左目特(te)(te)(te)(te)征(zheng)(zheng)圖和(he)右目特(te)(te)(te)(te)征(zheng)(zheng)圖,進(jin)(jin)(jin)而提(ti)出(chu)了對(dui)(dui)(dui)(dui)單路(lu)特(te)(te)(te)(te)征(zheng)(zheng)圖進(jin)(jin)(jin)行(xing)(xing)橫向(xiang)偏(pian)移(yi)(yi),并將偏(pian)移(yi)(yi)后的(de)(de)(de)單路(lu)特(te)(te)(te)(te)征(zheng)(zheng)圖與(yu)剩(sheng)余(yu)特(te)(te)(te)(te)征(zheng)(zheng)圖進(jin)(jin)(jin)行(xing)(xing)逐點(dian)相乘(cheng),得(de)到(dao)代(dai)價矩陣(zhen)(zhen),最后,基于(yu)(yu)(yu)包括多個(ge)串(chuan)聯(lian)(lian)的(de)(de)(de)二維(wei)神(shen)經網(wang)絡模(mo)塊的(de)(de)(de)融(rong)合(he)解(jie)碼模(mo)型(xing)融(rong)合(he)所(suo)述(shu)代(dai)價矩陣(zhen)(zhen)和(he)所(suo)述(shu)剩(sheng)余(yu)特(te)(te)(te)(te)征(zheng)(zheng)圖,得(de)到(dao)基于(yu)(yu)(yu)所(suo)述(shu)剩(sheng)余(yu)特(te)(te)(te)(te)征(zheng)(zheng)圖的(de)(de)(de)雙目視差(cha)(cha)。由于(yu)(yu)(yu)只(zhi)對(dui)(dui)(dui)(dui)單路(lu)特(te)(te)(te)(te)征(zheng)(zheng)圖進(jin)(jin)(jin)行(xing)(xing)橫向(xiang)偏(pian)移(yi)(yi),而不是雙相機(ji)對(dui)(dui)(dui)(dui)向(xiang)偏(pian)移(yi)(yi),保留了代(dai)價矩陣(zhen)(zhen)與(yu)剩(sheng)余(yu)特(te)(te)(te)(te)征(zheng)(zheng)圖的(de)(de)(de)像素一致(zhi)性,使(shi)得(de)在視差(cha)(cha)解(jie)碼過(guo)(guo)程中(zhong),代(dai)價矩陣(zhen)(zhen)和(he)剩(sheng)余(yu)特(te)(te)(te)(te)征(zheng)(zheng)圖是像素對(dui)(dui)(dui)(dui)齊的(de)(de)(de),有(you)助于(yu)(yu)(yu)提(ti)升輸出(chu)的(de)(de)(de)密(mi)集(ji)視差(cha)(cha)的(de)(de)(de)準確性,此外(wai),通過(guo)(guo)對(dui)(dui)(dui)(dui)單路(lu)特(te)(te)(te)(te)征(zheng)(zheng)圖進(jin)(jin)(jin)行(xing)(xing)橫向(xiang)偏(pian)移(yi)(yi),替代(dai)了其他cost?volume方案中(zhong)大(da)量的(de)(de)(de)數(shu)據(ju)裁切(qie)、偏(pian)移(yi)(yi)操作,使(shi)得(de)大(da)量減少(shao)計(ji)算量、模(mo)型(xing)部(bu)署時(shi)cpu和(he)ddr帶寬資源的(de)(de)(de)占(zhan)用,進(jin)(jin)(jin)而有(you)利(li)于(yu)(yu)(yu)大(da)幅度提(ti)升模(mo)型(xing)在嵌入式(shi)平臺中(zhong)的(de)(de)(de)部(bu)署效率(lv)。同時(shi),多個(ge)串(chuan)聯(lian)(lian)的(de)(de)(de)二維(wei)神(shen)經網(wang)絡模(mo)塊的(de)(de)(de)使(shi)用有(you)利(li)于(yu)(yu)(yu)進(jin)(jin)(jin)一步(bu)提(ti)升輸出(chu)的(de)(de)(de)密(mi)集(ji)視差(cha)(cha)的(de)(de)(de)準確性。