本技術(shù)涉及人工智能,具體涉及一種網(wǎng)絡(luò)模型知識蒸餾方法、圖像深度估計(jì)方法和電子設(shè)備。
背景技術(shù):
1、隨著人工智能技術(shù)的迅速發(fā)展,深度學(xué)習(xí)網(wǎng)絡(luò)模型(如神經(jīng)網(wǎng)絡(luò)大模型)得到了廣泛應(yīng)用,特別是在計(jì)算機(jī)視覺領(lǐng)域?yàn)閳D像深度估計(jì)任務(wù)提供了有效的解決方案。
2、目前,用于圖像深度估計(jì)任務(wù)的網(wǎng)絡(luò)模型多以編碼器-解碼器的結(jié)構(gòu)形式出現(xiàn),由于編碼器的計(jì)算參數(shù)量較大,對處理器的計(jì)算能力要求較高,因此該類網(wǎng)絡(luò)模型通常運(yùn)行在個人計(jì)算機(jī)(personal?computer,pc)上執(zhí)行任務(wù)。而對于嵌入式設(shè)備來說,因所搭載的處理器算力和內(nèi)存容量比較有限,則需要采用計(jì)算參數(shù)量較少和計(jì)算能力要求較低的網(wǎng)絡(luò)模型來執(zhí)行任務(wù)。
3、對于當(dāng)前已有的運(yùn)行在嵌入式設(shè)備上用于圖像深度估計(jì)任務(wù)的網(wǎng)絡(luò)模型來說,雖然降低了計(jì)算參數(shù)量以及對計(jì)算能力的要求,但是也降低了執(zhí)行圖像深度估計(jì)任務(wù)時的結(jié)果精度,沒有達(dá)到較好的圖像深度估計(jì)效果。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了一種網(wǎng)絡(luò)模型知識蒸餾方法、圖像深度估計(jì)方法和電子設(shè)備,可以提高電子設(shè)備執(zhí)行圖像深度估計(jì)任務(wù)時的結(jié)果精度。
2、第一方面,本技術(shù)提供一種網(wǎng)絡(luò)模型知識蒸餾方法,該方法由電子設(shè)備執(zhí)行,包括:
3、獲取訓(xùn)練數(shù)據(jù)以及訓(xùn)練數(shù)據(jù)對應(yīng)的深度標(biāo)簽,訓(xùn)練數(shù)據(jù)包括多個圖像數(shù)據(jù);
4、將訓(xùn)練數(shù)據(jù)輸入第一模型,得到第一中間輸出特征和第一深度估計(jì)結(jié)果,第一模型為已訓(xùn)練收斂的網(wǎng)絡(luò)模型,第一中間輸出特征為第一模型中的多個網(wǎng)絡(luò)層對訓(xùn)練數(shù)據(jù)進(jìn)行處理時得到的特征數(shù)據(jù),第一深度估計(jì)結(jié)果為第一模型預(yù)測的訓(xùn)練數(shù)據(jù)對應(yīng)的圖像深度信息;
5、將訓(xùn)練數(shù)據(jù)輸入第二模型,得到第二中間輸出特征和第二深度估計(jì)結(jié)果,第二中間輸出特征為第二模型中的多個網(wǎng)絡(luò)層對訓(xùn)練數(shù)據(jù)進(jìn)行處理時得到的特征數(shù)據(jù),第二深度估計(jì)結(jié)果為第二模型預(yù)測的訓(xùn)練數(shù)據(jù)對應(yīng)的圖像深度信息,第二模型的網(wǎng)絡(luò)復(fù)雜度低于第一模型的網(wǎng)絡(luò)復(fù)雜度;
6、根據(jù)第一中間輸出特征、第一深度估計(jì)結(jié)果、第二中間輸出特征、第二深度估計(jì)結(jié)果以及深度標(biāo)簽,計(jì)算第二模型對應(yīng)的損失;
7、基于損失對第二模型進(jìn)行訓(xùn)練,得到訓(xùn)練收斂的目標(biāo)網(wǎng)絡(luò)模型。
8、其中,本技術(shù)提供的網(wǎng)絡(luò)模型知識蒸餾方法,旨在采用教師-學(xué)生的學(xué)習(xí)機(jī)制,將第一模型作為教師模型、第二模型作為學(xué)生模型,通過第一模型的中間輸出特征、深度估計(jì)結(jié)果以及訓(xùn)練數(shù)據(jù)對應(yīng)的深度標(biāo)簽,從多種不同尺度對第二模型進(jìn)行監(jiān)督訓(xùn)練,得到輕量級的精度較高的目標(biāo)網(wǎng)絡(luò)模型,該目標(biāo)網(wǎng)絡(luò)模型可以運(yùn)行在嵌入式設(shè)備上,以及具有較高的處理性能,從而提高嵌入式設(shè)備上執(zhí)行圖像深度估計(jì)任務(wù)時的結(jié)果精度。
9、在一些實(shí)現(xiàn)方式中,第一模型和第二模型可以具有midas深度估計(jì)網(wǎng)絡(luò)模型的結(jié)構(gòu),第二模型的網(wǎng)絡(luò)復(fù)雜度低于第一模型的網(wǎng)絡(luò)復(fù)雜度,例如采用midas大骨干網(wǎng)絡(luò)模型作為第一模型、midas輕量級骨干網(wǎng)絡(luò)模型作為第二模型。
10、結(jié)合第一方面,在第一方面的有些實(shí)現(xiàn)方式中,上述根據(jù)第一中間輸出特征、第一深度估計(jì)結(jié)果、第二中間輸出特征、第二深度估計(jì)結(jié)果以及深度標(biāo)簽,計(jì)算第二模型對應(yīng)的損失,包括:根據(jù)第一中間輸出特征和第二中間輸出特征,計(jì)算得到第一損失;根據(jù)第一深度估計(jì)結(jié)果和第二深度估計(jì)結(jié)果,計(jì)算得到第二損失;根據(jù)第二深度估計(jì)結(jié)果和深度標(biāo)簽,計(jì)算得到第三損失;根據(jù)第一損失、第二損失和第三損失,計(jì)算第二模型對應(yīng)的損失。
11、其中,在計(jì)算第二模型對應(yīng)的損失時,電子設(shè)備可以分別計(jì)算第一中間輸出特征與第二中間輸出特征之間的第一損失、第一深度估計(jì)結(jié)果與第二深度估計(jì)結(jié)果之間的第二損失、以及第二深度估計(jì)結(jié)果與深度標(biāo)簽之間的第三損失,再由這三種損失共同組成總損失。
12、在一些實(shí)現(xiàn)方式中,因第一模型可以包括多個網(wǎng)絡(luò)層,例如第一模型可以包括編碼器網(wǎng)絡(luò)和解碼器網(wǎng)絡(luò),編碼器網(wǎng)絡(luò)和解碼器網(wǎng)絡(luò)可以各包括4層結(jié)構(gòu),第二模型也可以包括多個網(wǎng)絡(luò)層,因此,電子設(shè)備可以分別計(jì)算第一模型中各個網(wǎng)絡(luò)層的輸出特征與第二模型中各個網(wǎng)絡(luò)層的輸出特征之間的子損失,再將各個子損失相加即是上述第一損失。
13、也即是說,第一中間輸出特征可以包括第一模型中的多個網(wǎng)絡(luò)層分別輸出的多個第一子特征,第二中間輸出特征可以包括第二模型中的多個網(wǎng)絡(luò)層分別輸出的多個第二子特征,上述根據(jù)第一中間輸出特征和第二中間輸出特征,計(jì)算得到第一損失,包括:
14、對于第一網(wǎng)絡(luò)層和第二網(wǎng)絡(luò)層,計(jì)算第一網(wǎng)絡(luò)層對應(yīng)的第一子特征和第二網(wǎng)絡(luò)層對應(yīng)的第二子特征之間的第一子損失,第一網(wǎng)絡(luò)層為第一模型中的多個網(wǎng)絡(luò)層中的任意一個網(wǎng)絡(luò)層,第二網(wǎng)絡(luò)層為第二模型中的多個網(wǎng)絡(luò)層中的任意一個網(wǎng)絡(luò)層,第一網(wǎng)絡(luò)層在第一模型中的層級位置與第二網(wǎng)絡(luò)層在第二模型中的層級位置相同;基于多個第一子特征與多個第二子特征之間的多個第一子損失,計(jì)算得到第一損失。
15、假設(shè)第一模型中的多個網(wǎng)絡(luò)層分別輸出的多個第一子特征為fet1、fet2、fet3和fet4、以及fdt4、fdt3、fdt2和fdt1,第二模型中的多個網(wǎng)絡(luò)層分別輸出的多個第二子特征為fes1、fes2、fes3和fes4、以及fds4、fds3、fds2和fds1,則電子設(shè)備分別計(jì)算fet1與fes1之間、fet2與fes2之間、fet3與fes3之間、fet4與fes4之間、fdt4與fds4之間、fdt3與fds3之間、fdt2與fds2之間、fdt1與fds1之間的損失(即得到多個第一子損失),然后可以將多個第一子損失累加得到第一損失。由此,通過計(jì)算第一模型和第二模型中每個網(wǎng)絡(luò)層的輸出特征之間的損失,提高了計(jì)算損失的維度,可以更好的對第二模型進(jìn)行監(jiān)督訓(xùn)練。
16、結(jié)合第一方面,在第一方面的有些實(shí)現(xiàn)方式中,上述計(jì)算第一網(wǎng)絡(luò)層對應(yīng)的第一子特征和第二網(wǎng)絡(luò)層對應(yīng)的第二子特征之間的第一子損失,包括:根據(jù)預(yù)設(shè)的蒸餾溫度和第一子特征中單個通道對應(yīng)的特征,確定第一子特征對應(yīng)的單通道特征概率分布;根據(jù)蒸餾溫度和第二子特征中單個通道對應(yīng)的特征,確定第二子特征對應(yīng)的單通道特征概率分布;基于蒸餾溫度、第一子特征對應(yīng)的單通道特征概率分布和第二子特征對應(yīng)的單通道特征概率分布,計(jì)算第一子特征和第二子特征之間的第一子損失。
17、在該實(shí)現(xiàn)方式中,電子設(shè)備可以采用逐通道歸一損失來計(jì)算第一損失,即根據(jù)每個子特征中單個通道對應(yīng)的特征來確定對應(yīng)的單通道特征概率分布,進(jìn)而根據(jù)單通道特征概率分布計(jì)算子特征之間的第一子損失,繼而基于多個第一子損失計(jì)算得到第一損失。在一個實(shí)現(xiàn)方式中,這里電子設(shè)備可以基于的關(guān)系式來確定第一子特征對應(yīng)的單通道特征概率分布,t為蒸餾溫度,fet1(c)為第一子特征中單個通道對應(yīng)的特征,類似的,也可以計(jì)算得到第二子特征對應(yīng)的單通道特征概率分布。
18、結(jié)合第一方面,在第一方面的有些實(shí)現(xiàn)方式中,上述基于蒸餾溫度、第一子特征對應(yīng)的單通道特征概率分布和第二子特征對應(yīng)的單通道特征概率分布,計(jì)算第一子特征和第二子特征之間的第一子損失,包括:
19、基于包含的關(guān)系式,計(jì)算第一子特征和第二子特征之間的第一子損失,其中,表示第一子特征對應(yīng)的單通道特征概率分布,表示第二子特征對應(yīng)的單通道特征概率分布,ct表示第一子特征和第二子特征對應(yīng)的通道數(shù),h1×w1表示第一子特征和第二子特征對應(yīng)的特征維度,γ表示蒸餾溫度。
20、可以理解,基于上述關(guān)系式原理,電子設(shè)備可以計(jì)算得到每個第一子特征和對應(yīng)的第二子特征之間的第一子損失,即可以得到fet1與fes1之間、fet2與fes2之間、fet3與fes3之間、fet4與fes4之間、fdt4與fds4之間、fdt3與fds3之間、fdt2與fds2之間、fdt1與fds1之間的損失,那么,第一損失即可以為這些損失的求和結(jié)果。
21、結(jié)合第一方面,在第一方面的有些實(shí)現(xiàn)方式中,在計(jì)算第一網(wǎng)絡(luò)層對應(yīng)的第一子特征和第二網(wǎng)絡(luò)層對應(yīng)的第二子特征之間的第一子損失之前,上述方法還包括:若第二子特征對應(yīng)的通道數(shù)與第一子特征對應(yīng)的通道數(shù)不相等,則對第二子特征進(jìn)行卷積操作,使第二子特征的通道數(shù)等于第一子特征對應(yīng)的通道數(shù)。
22、其中,由于第二模型的網(wǎng)絡(luò)結(jié)構(gòu)與第一模型的網(wǎng)絡(luò)結(jié)構(gòu)不同,則第二模型輸出的第二子特征對應(yīng)的通道數(shù)可能與第一模型對應(yīng)輸出的第一子特征對應(yīng)的通道數(shù)不相等,那么,電子設(shè)備可以對第二子特征進(jìn)行一次卷積操作(如進(jìn)行一次1×1的卷積操作),將第二模型輸出第二子特征的通道數(shù)與第一模型輸出第一子特征的通道數(shù)對齊,由此可以提高數(shù)據(jù)統(tǒng)一性,為后續(xù)計(jì)算損失的過程提供數(shù)據(jù)基礎(chǔ)。
23、結(jié)合第一方面,在第一方面的有些實(shí)現(xiàn)方式中,在根據(jù)第一深度估計(jì)結(jié)果和第二深度估計(jì)結(jié)果,計(jì)算得到第二損失之后,上述方法還包括:基于第一深度估計(jì)結(jié)果、第二深度估計(jì)結(jié)果以及第一深度估計(jì)結(jié)果對應(yīng)的像素變化梯度,計(jì)算第二梯度匹配項(xiàng)損失,以及將第二梯度匹配項(xiàng)損失加入第二損失中。
24、結(jié)合第一方面,在第一方面的有些實(shí)現(xiàn)方式中,在根據(jù)第二深度估計(jì)結(jié)果和深度標(biāo)簽,計(jì)算得到第三損失之后,上述方法還包括:基于第二深度估計(jì)結(jié)果、深度標(biāo)簽以及深度標(biāo)簽對應(yīng)的像素變化梯度,計(jì)算第三梯度匹配項(xiàng)損失,以及將第三梯度匹配項(xiàng)損失加入第三損失中。
25、上述兩種實(shí)現(xiàn)方式中,電子設(shè)備在計(jì)算得到第二損失和第三損失之后,還可以分別在第二損失和第三損失之后附加一個梯度匹配項(xiàng)損失,可以理解為是一個較小的梯度正則項(xiàng),用于控制最終深度估計(jì)結(jié)果的梯度平滑性,以進(jìn)一步提高第二模型的訓(xùn)練精度。
26、結(jié)合第一方面,在第一方面的有些實(shí)現(xiàn)方式中,上述根據(jù)第一損失、第二損失和第三損失,計(jì)算第二模型對應(yīng)的損失,包括:對第一損失、第二損失和第三損失進(jìn)行加權(quán)求和,得到第二模型對應(yīng)的損失。
27、即電子設(shè)備可以分別對上述計(jì)算得到的第一損失、第二損失和第三損失附加上對應(yīng)的權(quán)重系數(shù),加權(quán)求和后得到第二模型對應(yīng)的總損失。
28、結(jié)合第一方面,在第一方面的有些實(shí)現(xiàn)方式中,在獲取訓(xùn)練數(shù)據(jù)以及訓(xùn)練數(shù)據(jù)對應(yīng)的深度標(biāo)簽之后,上述方法還包括:對訓(xùn)練數(shù)據(jù)進(jìn)行歸一化以及分辨率轉(zhuǎn)換,得到具有目標(biāo)分辨率的訓(xùn)練數(shù)據(jù);將具有深度維度的深度標(biāo)簽轉(zhuǎn)換到視差維度,對轉(zhuǎn)換后的深度標(biāo)簽進(jìn)行尺度歸一以及分辨率轉(zhuǎn)換,得到具有目標(biāo)分辨率的深度標(biāo)簽。
29、因?yàn)樗@取的訓(xùn)練數(shù)據(jù)以及深度標(biāo)簽的大小、格式等數(shù)據(jù)維度可能不統(tǒng)一,因此,電子設(shè)備可以先對訓(xùn)練數(shù)據(jù)以及訓(xùn)練數(shù)據(jù)對應(yīng)的深度標(biāo)簽進(jìn)行數(shù)據(jù)預(yù)處理,達(dá)到數(shù)據(jù)的統(tǒng)一性。例如,電子設(shè)備可以首先對訓(xùn)練數(shù)據(jù)的像素值進(jìn)行尺度變換,使像素值歸一化至[0,1]區(qū)間;再對深度標(biāo)簽進(jìn)行尺度歸一,將深度維度的深度標(biāo)簽統(tǒng)一到視差維度后進(jìn)行尺度歸一,如給定一個有效標(biāo)簽的范圍區(qū)間[min,max],將不在該范圍區(qū)間中的深度標(biāo)簽進(jìn)行裁剪,剩余的都是有效標(biāo)簽,接下來對有效的深度標(biāo)簽進(jìn)行尺度變換至[0,1]區(qū)間等。然后,為了網(wǎng)絡(luò)模型處理的訓(xùn)練數(shù)據(jù)的分辨率是一個比較合適的分辨率,以使網(wǎng)絡(luò)模型能夠獲取到圖像中的更多細(xì)節(jié)信息以及更全面的全局信息,以及使網(wǎng)絡(luò)模型所處理的同一批(batch)的訓(xùn)練數(shù)據(jù)具有相同分辨率,電子設(shè)備還可以對上述變換后的訓(xùn)練數(shù)據(jù)以及深度標(biāo)簽進(jìn)行分辨率轉(zhuǎn)換,都轉(zhuǎn)換至目標(biāo)分辨率上。由此,提高了訓(xùn)練數(shù)據(jù)的統(tǒng)一性。
30、第二方面,本技術(shù)提供一種圖像深度估計(jì)方法,該方法由電子設(shè)備執(zhí)行,包括:獲取第一圖像;將第一圖像輸入目標(biāo)網(wǎng)絡(luò)模型,輸出第一圖像對應(yīng)的圖像深度估計(jì)結(jié)果,其中,目標(biāo)網(wǎng)絡(luò)模型為根據(jù)第一方面及其任意可能的實(shí)現(xiàn)方式中的方法訓(xùn)練得到的模型。
31、其中,第一圖像可以為電子設(shè)備(如嵌入式設(shè)備)獲取的任意一張圖像,然后電子設(shè)備將第一圖像輸入目標(biāo)網(wǎng)絡(luò)模型進(jìn)行處理,例如可以經(jīng)由編碼器網(wǎng)絡(luò)、解碼器網(wǎng)絡(luò)的處理過程,輸出第一圖像對應(yīng)的圖像深度估計(jì)結(jié)果,由于目標(biāo)網(wǎng)絡(luò)模型是使用上述網(wǎng)絡(luò)模型知識蒸餾方法所訓(xùn)練得到的,模型精度較高,因此,采用上述圖像深度估計(jì)方法所輸出的圖像深度估計(jì)結(jié)果也具有較高的精度。
32、第三方面,本技術(shù)提供一種裝置,該裝置包含在電子設(shè)備中,該裝置具有實(shí)現(xiàn)上述第一方面及上述第一方面的可能實(shí)現(xiàn)方式、以及第二方面的實(shí)現(xiàn)方式中電子設(shè)備行為的功能。功能可以通過硬件實(shí)現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊或單元。例如,接收模塊或單元、處理模塊或單元等。
33、第四方面,本技術(shù)提供一種電子設(shè)備,電子設(shè)備包括:一個或多個處理器,以及存儲器;
34、所述存儲器與所述一個或多個處理器耦合,所述存儲器用于存儲計(jì)算機(jī)程序代碼,所述計(jì)算機(jī)程序代碼包括計(jì)算機(jī)指令,所述一個或多個處理器調(diào)用所述計(jì)算機(jī)指令以使得電子設(shè)備執(zhí)行第一方面的技術(shù)方案中任意一種方法,以及執(zhí)行第二方面的技術(shù)方案的方法。
35、第五方面,本技術(shù)提供一種芯片系統(tǒng),所述芯片系統(tǒng)應(yīng)用于電子設(shè)備,所述芯片系統(tǒng)包括一個或多個處理器,所述一個或多個處理器用于調(diào)用計(jì)算機(jī)指令以使得所述電子設(shè)備執(zhí)行第一方面及其任意可能的實(shí)現(xiàn)方式中的方法,以及執(zhí)行第二方面的實(shí)現(xiàn)方式中的方法。
36、可選地,芯片系統(tǒng)還包括存儲器,存儲器與處理器通過電路或電線連接。
37、進(jìn)一步可選地,芯片系統(tǒng)還包括通信接口。
38、第六方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)可讀存儲介質(zhì)中包括指令,當(dāng)所述指令在電子設(shè)備上運(yùn)行時,使得所述電子設(shè)備執(zhí)行第一方面的技術(shù)方案中任意一種方法,以及執(zhí)行第二方面的技術(shù)方案的方法。
39、第七方面,本技術(shù)提供一種計(jì)算機(jī)程序產(chǎn)品,計(jì)算機(jī)程序產(chǎn)品包括:計(jì)算機(jī)程序代碼,當(dāng)計(jì)算機(jī)程序代碼在電子設(shè)備上運(yùn)行時,使得該電子設(shè)備執(zhí)行第一方面的技術(shù)方案中任意一種方法,以及執(zhí)行第二方面的技術(shù)方案的方法。