本公開涉及例如在諸如神經(jīng)網(wǎng)絡(luò)加速器的推斷裝置上的圖像信號(hào)處理。
背景技術(shù):
1、可以由圖像信號(hào)處理器(下文稱為isp)執(zhí)行的圖像信號(hào)處理是修改表示由相機(jī)捕獲的圖像的原始圖像數(shù)據(jù)的過程。isp可以專門用于產(chǎn)生供人類用戶消耗的圖像?;蛘?,isp可以專門用于處理供計(jì)算機(jī)視覺算法消耗的圖像,或者它可以輸出多個(gè)圖像以用于各種計(jì)算機(jī)視覺算法和/或人類觀察。原始圖像的處理通常涉及執(zhí)行許多任務(wù),例如對(duì)圖像進(jìn)行去噪、去馬賽克、銳化和色彩校正,然而此列表并非詳盡無遺??梢愿鶕?jù)反轉(zhuǎn)由相機(jī)執(zhí)行的圖像捕獲過程(或反轉(zhuǎn)圖像捕獲過程的相應(yīng)特定方面)來考慮isp(或由isp執(zhí)行的特定圖像處理函數(shù))。在一些情況下,isp可能不完全反轉(zhuǎn)圖像捕獲過程。例如,當(dāng)用于計(jì)算機(jī)視覺算法輸入時(shí),通常不需要色彩校正,因此isp流水線可以省略此圖像處理函數(shù)。
2、isp最常使用流式傳輸(通?;谛写鎯?chǔ)(linestore-based))架構(gòu)實(shí)現(xiàn)為專用硅硬件,所述流式傳輸架構(gòu)包括定義明確、手動(dòng)工程化的固定功能模塊的流水線。每個(gè)模塊可以在硬件中配置成用于執(zhí)行特定圖像處理函數(shù),例如去噪、去馬賽克、銳化、色彩校正等。這些圖像處理函數(shù)可以被視為由isp執(zhí)行的任務(wù)。然而,將定義明確、手動(dòng)工程化的固定功能模塊的流水線實(shí)現(xiàn)為isp的模塊的工程化isp產(chǎn)生兩個(gè)顯著的隱藏成本。第一成本來自調(diào)整控制各個(gè)模塊的行為的參數(shù)的過程。此調(diào)整是通常手動(dòng)或半手動(dòng)執(zhí)行的費(fèi)力且耗時(shí)的過程。第二成本是工程模塊在固定功能硬件中實(shí)現(xiàn)的過程,這使得開發(fā)、調(diào)試和更改的成本很高,原因是(i)在算法設(shè)計(jì)期間必須考慮硬件實(shí)現(xiàn)的復(fù)雜性;(ii)在開發(fā)期間需要調(diào)整算法以評(píng)估質(zhì)量;(iii)以例如硬件描述語言(重新)實(shí)現(xiàn)的成本;以及(iv)需要(重新)驗(yàn)證硬件設(shè)計(jì)。
3、wo?2022193514?a1公開了端對(duì)端可微分機(jī)器視覺系統(tǒng)、訓(xùn)練方法和處理器可讀介質(zhì)??梢允褂脵C(jī)器學(xué)習(xí)技術(shù)訓(xùn)練可微分圖像信號(hào)處理器(isp),以將從新傳感器接收到的原始圖像調(diào)適成與先前用于訓(xùn)練感知模塊的圖像相同類型(即,在同一視覺域中)的調(diào)適圖像,而不微調(diào)感知模塊本身。
技術(shù)實(shí)現(xiàn)思路
1、提供本
技術(shù)實(shí)現(xiàn)要素:
是為了以簡(jiǎn)化形式介紹下文在具體實(shí)施方式中進(jìn)一步描述的一系列概念。本發(fā)明內(nèi)容不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用以限制所要求保護(hù)的主題的范圍。
2、根據(jù)本公開的第一方面,提供了一種圖像信號(hào)處理器的可微分模型的可微分模塊,所述圖像信號(hào)處理器包括功能塊的流水線,其中所述可微分模塊被配置成實(shí)現(xiàn)所述流水線的單個(gè)功能塊,所述可微分模塊包括:基礎(chǔ)邏輯,所述基礎(chǔ)邏輯被配置成接收輸入圖像信號(hào)并且通過執(zhí)行基礎(chǔ)圖像處理函數(shù)來處理所接收的輸入圖像信號(hào),所述基礎(chǔ)圖像處理函數(shù)表示由所述模塊實(shí)現(xiàn)的所述流水線的功能塊的任務(wù);細(xì)化函數(shù),所述細(xì)化函數(shù)被配置成接收所述輸入圖像信號(hào)并且與所述基礎(chǔ)邏輯處理所接收的輸入圖像信號(hào)并行地處理所接收的輸入圖像信號(hào);以及組合邏輯,所述組合邏輯被配置成組合來自所述基礎(chǔ)邏輯的經(jīng)處理圖像信號(hào)和來自所述細(xì)化函數(shù)的經(jīng)處理圖像信號(hào)以確定待從所述可微分模塊輸出的輸出圖像信號(hào)。
3、上文描述的可微分模塊,其中所述可微分模塊可用命令流表示為來自推斷裝置上可用的基本神經(jīng)網(wǎng)絡(luò)運(yùn)算的集合的運(yùn)算的組合,以在所述推斷裝置上實(shí)施。
4、上文描述的可微分模塊,其中所述基本神經(jīng)網(wǎng)絡(luò)運(yùn)算的集合可以由以下各項(xiàng)中的一者或多者組成:卷積運(yùn)算;池化運(yùn)算;逐元素運(yùn)算;激活運(yùn)算;局部響應(yīng)歸一化運(yùn)算;張量重縮放運(yùn)算;通道排列運(yùn)算;以及整形運(yùn)算。
5、上文描述的可微分模塊,其中所述推斷裝置可以是神經(jīng)網(wǎng)絡(luò)加速器。
6、上文描述的可微分模塊,其中所述可微分模塊的邏輯可以被配置成執(zhí)行的基礎(chǔ)圖像處理函數(shù)可以是在應(yīng)用于圖像信號(hào)時(shí)在一個(gè)方面細(xì)化所述圖像信號(hào)的函數(shù)。
7、上文描述的可微分模塊,其中所述細(xì)化函數(shù)可以被配置成補(bǔ)充由所述基礎(chǔ)圖像處理函數(shù)執(zhí)行的細(xì)化。
8、上文描述的可微分模塊,其中在補(bǔ)充由所述基礎(chǔ)圖像處理函數(shù)執(zhí)行的細(xì)化時(shí),所述細(xì)化函數(shù)可以被配置成以使得所述組合邏輯在所述基礎(chǔ)邏輯已處理所接收的輸入圖像信號(hào)之后校正經(jīng)處理圖像信號(hào)中剩余的誤差的方式處理所述輸入圖像信號(hào)。
9、上文描述的可微分模塊,其中與所述基礎(chǔ)邏輯執(zhí)行的圖像信號(hào)的細(xì)化相比,所述細(xì)化函數(shù)可以執(zhí)行的圖像信號(hào)的細(xì)化可以很小。
10、上文描述的可微分模塊,其中所述可微分模塊可以是去馬賽克模塊、銳化器模塊、黑電平減法模塊、空間去噪器模塊、全局色調(diào)映射模塊、通道增益模塊、自動(dòng)白平衡或色彩校正模塊中的任一者。
11、由本公開提供的另一方面可以是一種用于圖像處理的推斷裝置,所述推斷裝置被配置成實(shí)施可表示圖像信號(hào)處理器的可微分模型的命令流,所述可微分模型包括上文描述的可微分模塊。
12、根據(jù)本公開的另一方面,提供了一種使用推斷裝置處理圖像信號(hào)的方法,所述推斷裝置被配置成實(shí)施表示圖像信號(hào)處理器的可微分模型的命令流,所述圖像信號(hào)處理器具有功能塊的流水線,其中所述圖像信號(hào)處理器的模型包括被配置成實(shí)現(xiàn)所述流水線的單個(gè)功能塊的可微分模塊,所述方法包括:在所述可微分模塊處接收輸入圖像信號(hào);通過執(zhí)行基礎(chǔ)圖像處理函數(shù)來處理所接收的輸入圖像信號(hào),所述基礎(chǔ)圖像處理函數(shù)表示由所述模塊實(shí)現(xiàn)的所述流水線的功能塊的任務(wù);與所述通過執(zhí)行基礎(chǔ)圖像處理函數(shù)來處理所接收的輸入圖像信號(hào)并行地使用細(xì)化來處理所接收的輸入圖像信號(hào);組合來自執(zhí)行所述基礎(chǔ)圖像處理函數(shù)的經(jīng)處理圖像信號(hào)和來自使用所述細(xì)化函數(shù)的經(jīng)處理圖像信號(hào)以確定輸出圖像信號(hào);以及從所述可微分模塊輸出所確定的輸出圖像信號(hào)。
13、上文描述的方法,其中所述命令流可以將所述圖像信號(hào)處理器的可微分模型表示為來自所述推斷裝置上可用的基本神經(jīng)網(wǎng)絡(luò)運(yùn)算的集合的運(yùn)算的組合。
14、上文描述的方法,其中所述基本神經(jīng)網(wǎng)絡(luò)運(yùn)算的集合可以由以下各項(xiàng)中的一者或多者組成:卷積運(yùn)算;池化運(yùn)算;逐元素運(yùn)算;激活運(yùn)算;局部響應(yīng)歸一化運(yùn)算;張量重縮放運(yùn)算;通道排列運(yùn)算;整形運(yùn)算;級(jí)聯(lián);歸約運(yùn)算,包括求和、求平均、最小化和最大化。
15、上文描述的方法,其中所述推斷裝置可以是神經(jīng)網(wǎng)絡(luò)加速器。
16、上文描述的方法,其中所述通過執(zhí)行所述基礎(chǔ)圖像處理函數(shù)來處理所接收的輸入圖像信號(hào)可以在一個(gè)方面細(xì)化所接收的輸入圖像信號(hào)。
17、上文描述的方法,其中所述使用所述細(xì)化函數(shù)處理所接收的輸入圖像信號(hào)可以補(bǔ)充由所述基礎(chǔ)圖像處理函數(shù)執(zhí)行的細(xì)化。
18、上文描述的方法,其中所述使用所述細(xì)化函數(shù)處理所接收的輸入圖像信號(hào)可以補(bǔ)充由所述基礎(chǔ)圖像處理函數(shù)執(zhí)行的細(xì)化,使得所述組合校正來自執(zhí)行所述基礎(chǔ)圖像處理函數(shù)的經(jīng)處理圖像信號(hào)中的誤差。
19、上文描述的方法,其中與通過執(zhí)行所述基礎(chǔ)圖像處理函數(shù)來處理所接收的輸入圖像信號(hào)執(zhí)行的圖像信號(hào)的細(xì)化相比,可以通過使用所述細(xì)化函數(shù)處理所接收的輸入圖像信號(hào)執(zhí)行的圖像信號(hào)的細(xì)化可以很小。
20、上文描述的方法,其中由所述模塊實(shí)現(xiàn)的所述流水線的功能塊的任務(wù)可以是去馬賽克、銳化、黑電平減法、空間去噪、全局色調(diào)映射、通道增益應(yīng)用、自動(dòng)白平衡或色彩校正中的任一者。
21、上文描述的方法,其中所述推斷裝置可以包含在集成電路上的硬件中。
22、可以提供一種計(jì)算機(jī)可讀代碼,所述計(jì)算機(jī)可讀代碼被配置成在該代碼運(yùn)行時(shí)使上文描述的方法得以執(zhí)行。
23、可以提供一種集成電路定義數(shù)據(jù)集,所述集成電路定義數(shù)據(jù)集當(dāng)在集成電路制造系統(tǒng)中被處理時(shí)可以將所述集成電路制造系統(tǒng)配置成制造如上文描述的推斷裝置。
24、可以提供一種用于訓(xùn)練圖像信號(hào)處理器的可微分模型的訓(xùn)練設(shè)備,所述圖像信號(hào)處理器具有單獨(dú)的圖像信號(hào)處理函數(shù)的流水線,其中所述圖像信號(hào)處理器的可微分模型包括至少兩個(gè)可微分模塊,所述圖像信號(hào)處理器的可微分模型的可微分模塊中的每個(gè)可微分模塊被配置成執(zhí)行所述流水線的相應(yīng)單個(gè)圖像信號(hào)處理函數(shù),所述訓(xùn)練設(shè)備包括一個(gè)或多個(gè)處理器,所述一個(gè)或多個(gè)處理器被配置成:接收參考圖像;以及通過迭代地進(jìn)行以下操作來訓(xùn)練所述圖像信號(hào)處理器的可微分模型的第一可微分模塊以執(zhí)行第一圖像信號(hào)處理函數(shù),同時(shí)不訓(xùn)練所述圖像信號(hào)處理器的可微分模型的其他可微分模塊:向所述圖像信號(hào)處理器的可微分模型輸入表示所述參考圖像的已知退化的退化圖像信號(hào),所述退化與所述第一圖像信號(hào)處理函數(shù)有關(guān);使用所述圖像信號(hào)處理器的可微分模型處理所述退化圖像信號(hào)以產(chǎn)生第一經(jīng)處理圖像,所述處理包括使用所述第一可微分模塊執(zhí)行所述第一圖像信號(hào)處理函數(shù);通過將所述第一經(jīng)處理圖像與所述參考圖像進(jìn)行比較來計(jì)算所述第一經(jīng)處理圖像與所述參考圖像之間的誤差;以及基于所計(jì)算的誤差更新由所述第一可微分模塊執(zhí)行的第一圖像處理函數(shù),而不更新由所述圖像信號(hào)處理器的可微分模型的其他可微分模塊執(zhí)行的圖像處理函數(shù)。
25、可以提供一種用于訓(xùn)練圖像信號(hào)處理器的可微分模型的訓(xùn)練方法,所述圖像信號(hào)處理器具有單獨(dú)的圖像信號(hào)處理函數(shù)的流水線,其中所述圖像信號(hào)處理器的可微分模型包括至少兩個(gè)可微分模塊,所述圖像信號(hào)處理器的可微分模型的可微分模塊中的每個(gè)可微分模塊被配置成執(zhí)行所述流水線的相應(yīng)單個(gè)圖像信號(hào)處理函數(shù),所述訓(xùn)練方法包括:接收參考圖像;以及通過迭代地進(jìn)行以下操作來訓(xùn)練所述圖像信號(hào)處理器的可微分模型的第一可微分模塊以執(zhí)行第一圖像信號(hào)處理函數(shù),同時(shí)不訓(xùn)練所述圖像信號(hào)處理器的可微分模型的其他可微分模塊:向所述圖像信號(hào)處理器的可微分模型輸入表示所述參考圖像的已知退化的退化圖像信號(hào),所述退化與所述第一圖像信號(hào)處理函數(shù)有關(guān);使用所述圖像信號(hào)處理器的可微分模型處理所述退化圖像信號(hào)以產(chǎn)生第一經(jīng)處理圖像,所述處理包括使用所述第一可微分模塊來執(zhí)行所述第一圖像信號(hào)處理函數(shù);通過將所述第一經(jīng)處理圖像與所述參考圖像進(jìn)行比較來計(jì)算所述第一經(jīng)處理圖像與所述參考圖像之間的誤差;以及基于所計(jì)算的誤差更新由所述第一可微分模塊執(zhí)行的第一圖像處理函數(shù),而不更新由所述圖像信號(hào)處理器的可微分模型的其他可微分模塊執(zhí)行的圖像處理函數(shù)。
26、可以提供一種推斷裝置,所述推斷裝置被配置成實(shí)施命令流,所述命令流將圖像信號(hào)處理器的可微分模型表示為來自所述推斷裝置上可用的基本神經(jīng)網(wǎng)絡(luò)運(yùn)算的集合的運(yùn)算的組合,所述圖像信號(hào)處理器具有兩個(gè)或更多個(gè)功能塊的流水線,所述圖像信號(hào)處理器的可微分模型包括:至少兩個(gè)可微分模塊,所述至少兩個(gè)可微分模塊中的每個(gè)可微分模塊被配置成實(shí)現(xiàn)所述流水線的相應(yīng)單個(gè)功能塊。
27、還可以提供一種使用推斷裝置處理圖像信號(hào)的方法,所述推斷裝置被配置成實(shí)施命令流,所述命令流將圖像信號(hào)處理器的可微分模型表示為來自所述推斷裝置上可用的基本神經(jīng)網(wǎng)絡(luò)運(yùn)算的集合的運(yùn)算的組合,所述圖像信號(hào)處理器的可微分模型具有兩個(gè)或更多個(gè)功能塊的流水線,所述方法包括:以對(duì)應(yīng)于所述圖像信號(hào)處理器的模型的第一可微分模塊進(jìn)行處理的方式使用所述推斷裝置處理所述圖像信號(hào)以產(chǎn)生第一經(jīng)處理圖像信號(hào),其中所述圖像信號(hào)處理器的模型的第一可微分模塊被配置成實(shí)現(xiàn)所述流水線的第一功能塊;以及以表示所述圖像信號(hào)處理器的模型的第二可微分模塊進(jìn)行處理的方式使用所述推斷裝置處理所述第一經(jīng)處理圖像信號(hào)以產(chǎn)生第二經(jīng)處理圖像信號(hào),其中所述圖像信號(hào)處理器的模型的第二可微分模塊被配置成實(shí)現(xiàn)所述流水線的第二功能塊,其中所述圖像信號(hào)處理器的模型的第一可微分模塊和第二可微分模塊中的每個(gè)可微分模塊被配置成實(shí)現(xiàn)所述流水線的相應(yīng)單個(gè)功能塊。
28、所述推斷裝置、神經(jīng)網(wǎng)絡(luò)加速器(nna)或訓(xùn)練設(shè)備可以包含在集成電路上的硬件中??梢蕴峁┮环N在集成電路制造系統(tǒng)處制造推斷裝置、nna或訓(xùn)練設(shè)備的方法??梢蕴峁┮环N集成電路定義數(shù)據(jù)集,所述集成電路定義數(shù)據(jù)集當(dāng)在集成電路制造系統(tǒng)中被處理時(shí)將所述系統(tǒng)配置成制造推斷裝置、nna或訓(xùn)練設(shè)備??梢蕴峁┮环N非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有推斷裝置、nna或訓(xùn)練設(shè)備的計(jì)算機(jī)可讀描述,所述計(jì)算機(jī)可讀描述當(dāng)在集成電路制造系統(tǒng)中被處理時(shí)使所述集成電路制造系統(tǒng)制造包含推斷裝置、nna或訓(xùn)練設(shè)備的集成電路。
29、可以提供一種集成電路制造系統(tǒng),所述集成電路制造系統(tǒng)包括:非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有推斷裝置、nna或訓(xùn)練設(shè)備的計(jì)算機(jī)可讀描述;布局處理系統(tǒng),其被配置成處理所述計(jì)算機(jī)可讀描述,以便生成包含所述推斷裝置、nna或訓(xùn)練設(shè)備的集成電路的電路布局描述;以及集成電路生成系統(tǒng),其被配置成根據(jù)所述電路布局描述制造所述推斷裝置、nna或訓(xùn)練設(shè)備。
30、可以提供用于執(zhí)行本文描述的方法中的任何方法的計(jì)算機(jī)程序代碼??商峁┓菚簯B(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),在其上存儲(chǔ)有計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令當(dāng)在計(jì)算機(jī)系統(tǒng)中執(zhí)行時(shí)使所述計(jì)算機(jī)系統(tǒng)執(zhí)行本文描述的任一種方法。
31、如技術(shù)人員顯而易見的,上述特征可以適當(dāng)?shù)亟M合,并且可與本文所述的示例的任一個(gè)方面組合。