本技術總體上涉及視頻編碼和解碼領域。具體而言,本發明針對用于通過從編碼比特流中選擇移除或修改選定特征層來降低面向機器的視頻編碼系統中的帶寬的系統和方法。
背景技術:
1、隨著部署的視頻傳感器/設備的數量和規模增加,預計將由機器處理越來越多的視頻。采用數千個攝像頭的系統或解決方案會產生海量視頻,而人工無法以經濟有效的方式進行監控。能夠攝取和分析視頻的機器或計算系統為決策支持系統和分析引擎的實現提供了有效的解決方案。被設計用于執行分析任務的機器對視頻的質量和分辨率不像人類操作員那樣敏感。面向機器的視頻編碼(video?coding?for?machines,vcm)抓住這一機遇來轉換和表示視頻,以最小化視頻數據的計算、存儲和流傳輸,同時確保機器任務以高運行效率執行。
2、基于特征編碼的面向機器的視頻編碼(feature?coding?based?video?codingfor?machines,fcvcm)是基于這樣的觀察:基于卷積神經網絡(convolutional?neuralnetwork,cnn)的視頻分析是最突出的解決方案,但需要大量的計算資源。fcvcm方法嘗試壓縮和傳輸從cnn中提取的視頻特征,并在接收器側使用解壓縮的特征以繼續在執行機器任務的cnn上進行處理。
3、圖1示出了用于執行對象檢測的典型cnn。使用訓練數據(如視頻、圖像、音頻、激光雷達、熱成像或甚至文本)訓練的cnn用于執行任務并提供有關輸入到網絡的數據的信息。輸入圖像首先由特征金字塔網絡(feature?pyramid?network,fpn)105進行處理,特征金字塔網絡在層p2、p3、p4和p5產生特征圖。來自層p2、p3、p4和p5的特征圖由區域提議網絡(region?proposal?network,rpn)110和box?head(框頭)115進一步處理,box?head?115可以包括基于快速區域的卷積網絡(fast?r-cnn)convfchead?120和用于輸出層125的第二fast?r-cnn,輸出層125確定感興趣區域(roi)和針對roi檢測到的標簽。在這種架構中,fpn105、rpn?110和box?head?115表示計算上復雜的過程。
4、通過將cnn中執行的計算拆分到發送器/攝像頭和接收器側之間,可以降低系統復雜性,還可以減少數據使用量。在這種架構中,系統的攝像頭或視頻源端將由cnn的第一部分或前端組成,例如fpn?105。fpn的輸出、特征圖p2、p3、p4和p5隨后被壓縮并傳輸到接收器,在接收器處接收并解壓縮后的特征圖被輸入到包括例如rpn?110和box?head?115的組件的網絡的第二部分,以完成網絡的執行并產生網絡輸出。此類cnn可以訓練用于執行例如對象檢測、分割、動作檢測和對象跟蹤等任務。
5、圖2示出了處理這種拆分網絡(split?network)的典型方法。nn第1部分205表示攝像頭/視頻源,在其中輸入視頻或圖像由神經網絡的第1部分進行處理,以產生多個特征圖,例如四個特征圖p2、p3、p4和p5。特征圖的數量和結構取決于神經網絡。例如,有些網絡可能只有三個特征圖,而不是四個。每個特征圖的大小或維度也取決于神經網絡。通過對特征圖進行打包和量化,以準備好用于壓縮的特征圖。
6、nn第1部分
7、圖3進一步說明了nn第1部分305。在此階段,從神經網絡(例如fpn?105中的res-net)中提取特征。這些特征可以由四個層組成:p2(310a)、p3(310b)、p4(310c)和p5(310d),每一層都有256個通道。每一層中的每個通道都表示與核的卷積,并表示輸入圖像特征。通常情況下,給定層的所有通道都具有相同的維度。例如,如圖4所示,在層p2中,每個通道有兩個維度p2cw和p2ch。這兩個維度表示通道的寬度和高度,取決于輸入圖像和神經網絡。類似地,該示例網絡中其他三個層的通道維度可以用對應的通道寬度和高度表示為p3cw?xp3ch、p4cw?x?p4ch和p5cw?x?p5ch。
8、在特征金字塔網絡105的情況下,由于神經網絡的池化功能(其將信息的空間大小減少到更抽象的表示)造成的信息損失,使得每一層的大小都比前一層小。例如,每一層的大小可能是前一層的一半,其中p2為最大層,p5為最小層。
9、輸入到網絡的圖像的像素通過網絡傳遞。所提取的特征圖是每個特征圖的每個通道中經變換的輸入像素。每個所提取的通道中的特征本質上是表示輸入圖像特征的浮點值。因此,壓縮或編碼特征圖需要壓縮表示輸入圖像特征的所有值。
10、打包(平鋪(tiling))&?10比特均勻量化
11、返回參考圖2,執行打包210和量化215,以將神經網絡的浮點特征值轉換為圖像表示,并增強用于編碼器的數據,例如通過使用10比特量化。然而,可以理解的是,也可以使用其他量化級別。
12、對于打包和平鋪階段210,通過將通道數據映射到像素并按層組裝以形成完整的圖像來將特征轉換為圖像格式。例如,考慮有256個通道的p2層,每個通道的寬度和高度維度為p2cw?x?p2ch。如圖4所示,此類層中的通道數據可以打包成大小為p2cw?x?p2ch的片(tile),這些片被鋪設為矩形網格。
13、來自這256個通道中每個通道的特征圖數據可以平鋪成具有n?x?m個片的網格,每個片的大小為p2cw?x?p2ch。這樣就得到了等效的p2層特征圖,其寬度為p2w=p2cw?x?n,高度為p2h=p2ch?x?m。p2層的原始浮點特征圖數據的維度為p2w?x?p2h。將這種二維特征圖數據歸一化為10比特表示,得到對應于p2層的10比特圖像。類似地,通過平鋪和歸一化產生層p3、p4和p5的10比特層圖像。這種歸一化也稱為均勻10比特量化,因為浮點特征圖數據被映射到該數據的10比特表示中的1024個級別。
14、以r-cnn神經網絡為例,p3層中每個通道的大小在每個維度上都是p2層中每個通道大小的一半。類似地,p4中的通道維度是p3的一半,p5中的通道維度是p4中的一半。因此,p5中的層和通道數據量顯著少于p2。
15、p2層:
16、寬度,p2w=p2cw?x?n,以及
17、高度,p2h=p2ch?x?m
18、m?x?n=256;
19、p3層:
20、p3cw=p2cw/2;?p3ch=p2ch/2;
21、寬度,p3w=p3cw?x?2n,以及
22、高度,p3h=p3ch?x?m/2
23、p4層:
24、p4cw=p3cw/2=p2cw/4;?p4ch=p3ch/2=p2ch/4;
25、寬度,p4w=p4cw?x?4n,以及
26、高度,p4h=p4ch?x?m/4
27、p5層:
28、p5cw=p4cw/2=p2cw/8;?p5ch=p4ch/2=p2ch/8;
29、寬度,p5w=p5cw?x?8n,以及
30、高度,p5h=p5ch?x?m/8
31、來自所有四個層的通道數據被打包成單個圖像,并發送到編碼器的輸入。通常情況下,通道被平鋪成使得p2層的通道按照預定的通道順序布置成16?x?16的網格。后續各層的通道被平鋪成適應p2通道布置的寬度。圖5示出了來自p2、p3、p4和p5層的平鋪后的通道數據的示例。
32、壓縮
33、繼續參考圖2,經平鋪和量化的圖像使用圖像和視頻壓縮220(例如多功能視頻編碼(versatile?video?coding,vvc)或任何其他圖像或視頻壓縮)進行壓縮。壓縮后的數據通過通信網絡傳輸到接收器。
34、解壓縮
35、接收經壓縮的通道圖像數據,并使用適當的解壓縮系統225進行解壓縮,以產生經解碼的平鋪圖像。如果使用有損壓縮,則經解碼的圖像可能存在因有損壓縮而導致的失真。
36、反量化&解包
37、接收到的圖像被反量化(去歸一化)230并轉換為浮點特征圖數據,該數據然后被解包235到原始網絡特征的對應通道中,這些原始網絡特征可以饋入到神經網絡的后半部分中。在這些操作中,完成了打包(平鋪)210和量化215步驟中的過程的逆過程。
38、nn第2部分處理
39、一旦從解壓縮數據中重建出原始層信息,就可以將其直接饋入到神經網絡的第二部分(例如,r-cnn示例中的rpn和box?head)nn第2部分240,該部分將輸出機器任務輸出(例如,對象檢測或分割信息)。
40、機器任務性能
41、機器任務性能(例如,對象檢測或分割信息的準確性)會受到用于壓縮特征圖數據的方法的影響。無損壓縮能夠忠實地重建特征圖,并且不會影響接收器處的機器任務性能。任何有損壓縮(例如,使用視頻或圖像壓縮工具)都可能影響機器任務性能。預計對于在重建的特征圖中引入更大失真的更高壓縮級別,機器任務性能的退化會更大。
技術實現思路
1、在本公開的某些實施例中,提供了一種用于面向機器的視頻編碼的系統中的視頻編碼器。該視頻編碼器包括神經網絡前端,該神經網絡前端接收圖像數據并生成多個特征層。層上下文處理器評估圖像數據中對象的上下文,該上下文影響特征圖的層對于機器任務的重要性。冗余層識別器與上下文處理器耦合,并確定多個特征層與在解碼器站點處的機器任務的相關性。層過濾器接收來自神經網絡前端的多個特征層以及冗余層識別器的輸出,并執行以下項中的至少一者以生成經過濾的層集:移除冗余層、以及縮放被識別為與機器任務相關性低的層。編碼器接收經過濾的層集并生成經過濾的層集的編碼比特流。
2、在一些實施例中,視頻編碼器在編碼比特流中提供信令信息,該信令信息指示多個層中的哪些層被層過濾器移除或修改。優選地,來自神經網絡前端的多個特征層具有遞減的尺寸。在一些實施例中,神經網絡前端可以用特征金字塔網絡來實現。
3、本公開還包括用于面向機器的視頻編碼的系統中的解碼器的實施例。解碼器接收由編碼器生成的編碼比特流,編碼器生成多個特征層并在編碼之前選擇性地對多個特征層進行過濾。比特流優選包括經過濾的特征層以及識別哪些層在編碼器處受過濾影響的信令信息。解碼器解壓縮編碼比特流,將信令信息應用于經解壓縮的比特流,并生成在編碼器處被過濾移除的層。將經解碼和重建的特征層應用于神經網絡后端,該神經網絡后端優選是針對機器任務進行訓練的。
4、該公開還描述了比特流以及一種傳輸用于面向機器的視頻編碼的編碼比特流的方法。這些方法包括應用神經網絡前端來接收圖像數據并生成多個特征層。該方法還包括應用層上下文處理器來評估圖像數據中對象的上下文,該上下文影響特征圖的層對于機器任務的重要性;以及應用冗余層識別器來應用上下文處理器的輸出,并確定多個特征層與機器任務的相關性。應用層過濾器并執行以下項中的至少一者以生成經過濾的層集:移除冗余層、以及縮放被識別為與機器任務相關性低的層。應用編碼器生成經過濾的層集的編碼比特流以進行傳輸。優選地,編碼比特流包括指示多個層中的哪些層被層過濾器移除或修改的信令信息,以及在適當時包括用于在解碼器處逆轉過濾過程的信息(例如縮放信息)。
5、本發明非限制性實施例的這些及其他方面和特征,對于本領域技術人員而言,在結合附圖閱讀以下對本發明具體非限制性實施例的描述后,將變得明顯。