GAITC 2021 馬思偉:人工智能技術(shù)推動智能編碼的發(fā)展
6月6日,由中國人工智能學(xué)會(以下簡稱CAAI)主辦,新浪新聞聯(lián)合中國傳媒大學(xué)共同承辦的2021全球人工智能技術(shù)大會(GAITC 2021)“發(fā)展與挑戰(zhàn)”專題論壇在杭州舉行。北京大學(xué)教授、國家杰青獲得者馬思偉先生在本次專題論壇上,與來自業(yè)界、學(xué)術(shù)界的嘉賓們分享了關(guān)于《智能圖像編碼》的研究。
馬思偉作主題演講。
馬思偉認為,智能編碼主要面向視覺內(nèi)容內(nèi)容分析和理解,采用基于特征或語義的編碼方法。當下數(shù)據(jù)驅(qū)動、算力提升,都在推動智能編碼的快速發(fā)展。從對象模型編碼、到知識、語義模型模型編碼,再到現(xiàn)在的深度學(xué)習(xí)編碼,智能編碼的發(fā)展始終與人工智能技術(shù)的發(fā)展密切相關(guān)。
以下為馬思偉演講實錄,內(nèi)容經(jīng)編輯略有刪減:
非常高興有機會來這兒匯報自己的工作。圖像編碼可以說是一個老技術(shù)問題,實際上編碼從數(shù)字圖像誕生時就開始了,這個是計算機上的第一幅圖像,圖像分辨率是176×176×1bit,一個像素要么是黑,要么是白。
中間這幅圖像被稱為JPEG的守護神,圖像壓縮或圖像處理的應(yīng)該都知道,這時的圖像分辨率是512×512,1972年的掃描儀只能掃描這個分辨率。后面這幅圖像就是今天說的比較多的4K、8K超高清分辨率的圖像。在8K分辨率圖像上我們可以看清狗的毛發(fā),一根一根的精細了。8K分辨率即7680×4320,位寬是10bit,這個數(shù)據(jù)量跟1957年比是一萬多倍。
即便是和70年代的圖像相比,數(shù)據(jù)量增長也是近200倍,可以說分辨率提升帶來巨量的數(shù)據(jù)量增加。圖像采集是更精細準確的記錄時空信息,圖像編碼則是為了降低數(shù)據(jù)量的儲存帶寬。智能編碼一方面是提高壓縮效率,另一方面是支持更方便、更智能的圖像處理。
最早熟知的圖像編碼技術(shù)是JPEG,現(xiàn)在數(shù)碼相機都還一直在使用。JPEG是1988年開始啟動,1992年成為標準,到現(xiàn)在接近30年,后來還有JPEG2000,性能比JPEG提升接近30%。由于技術(shù)專利問題并沒有獲得廣泛使用,我們看到很多技術(shù)是成功的,但實際成功應(yīng)用是受很多因素影響的。后來雖然圖像編碼標準聽說的少些,但這些視頻編碼標準的幀內(nèi)編碼也通常用于圖像編碼,像h.264這代標準是2003年制定的,h.265/HEVC是2013年制定的,BPG圖像就是基于h.265編碼技術(shù)。最新的就是h.266了,是2020年制定完成的,像HEIF圖像就是基于H.266的。對圖像壓縮來講,從1992年開始,近30年壓縮效率提升還不到兩倍。剛剛提到數(shù)據(jù)量是上百倍的增長,所以可以說壓縮技術(shù)很難,編碼壓縮是很有需求的。
編碼的難題是什么?這個是現(xiàn)在的編碼技術(shù)的通用手段,一個是預(yù)測這塊降低數(shù)據(jù)的空間冗余,還有從空域變換到頻域進行信號的分解去掉高頻信息。目前提高編碼效率是用很多的變換核,很多的預(yù)測技術(shù)手段綜合起來去選一個最優(yōu)的,選優(yōu)的過程是很復(fù)雜的,通常基于率失真優(yōu)化理論進行決策選定編碼參數(shù),這種優(yōu)化編碼是比較有限的,采用一些簡單的線性預(yù)測或者線性變換很難達到最優(yōu)的編碼效果,因為實際的數(shù)據(jù)情況太多太復(fù)雜了。
所以就有了現(xiàn)在做的比較多的非線性預(yù)測、變換編碼技術(shù),也就是現(xiàn)在講的比較多的神經(jīng)網(wǎng)絡(luò)編碼、深度學(xué)習(xí)編碼,可以通過更復(fù)雜的非線性預(yù)測變換,降低數(shù)據(jù)冗余度,這是一個新的研究方向。簡單講下深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)做預(yù)測編碼,我們傳統(tǒng)編碼里面通常取幾個像素做加權(quán)預(yù)測,一般是固定幾套濾波器,從中選擇一種,但實際信號組合情況太復(fù)雜了,很難依靠幾套簡單的濾波器解決這個問題,相比之下神經(jīng)網(wǎng)絡(luò)可以做更復(fù)雜的優(yōu)化預(yù)測。通常在編碼里面我們都很喜歡0.5這個數(shù),0.5很簡單,運算時就是(A+B)÷2,我們也知道這個0.5肯定不是最優(yōu)的,但到底是0.1、0.2、0.7、0.8,一下子多了更多選擇之后,優(yōu)化就變的很難解決了,所以通過神經(jīng)網(wǎng)絡(luò)去求解更復(fù)雜的優(yōu)化編碼問題,能夠?qū)Φ讓拥男盘柼卣魈幚砀?,提高編碼效率,這個是深度學(xué)習(xí)編碼工作的背后機理。
基于神經(jīng)網(wǎng)絡(luò)做優(yōu)化編碼主要是兩方面的問題,一方面是盡量少的去編碼信息,編碼較少的元素,比如神經(jīng)網(wǎng)絡(luò)輸出的特征盡量少,這樣降低碼率比較直觀,比如編8個數(shù)比編1個數(shù)考慮的情況要多的多,還有本身這個編碼元素的信息熵要低,這個是基本優(yōu)化的思想。
基于這些優(yōu)化思想現(xiàn)在可以看到基于神經(jīng)網(wǎng)絡(luò)編圖像性能提升,這些工作是在2016年,這個時候性能超過JPEG2000,2018年性能超過了h.265編碼。最后面的就是2020年的結(jié)果,它這個性能超過最新的VVC。前面說過編碼是個很有難度的問題,30年編碼效率只提升了一倍多?,F(xiàn)在這些基于神經(jīng)網(wǎng)絡(luò)編碼的方法比前面積累了幾十年的工作效果都好,但也有問題,神經(jīng)網(wǎng)絡(luò)編碼數(shù)據(jù)的依賴性還有復(fù)雜度目前還是比較大的問題。
前面我們看到用深度學(xué)習(xí)去解決更復(fù)雜的優(yōu)化編碼問題,是可以提升編碼性能的?,F(xiàn)在還有另外一個變化,原來傳統(tǒng)編碼為了追求壓縮效率提升,主要是面向人觀看的影視節(jié)目,包括我們手機上刷的視頻,都是人去看它。
對于這類視頻做編碼的目的是為了節(jié)省存儲空間和帶寬,但是現(xiàn)在越來越多的視頻不只是人去觀看,而是越來越多的機器都要對這些視頻和圖像分析處理,這是傳統(tǒng)編碼并沒有太多考慮的。所以提出智能編碼,采用基于語義或者是特征的編碼手段,能夠更好地面向內(nèi)容分析與理解。
原來的圖像視頻是由機器記錄之后呈現(xiàn)給我們?nèi)丝矗侨撕蜋C器之間的一種交互形式。機器之前或者人機之間,可以有有更高級的通信方式,比如像神經(jīng)脈沖,不一定就是圖像視頻。
傳統(tǒng)編碼和智能編碼在數(shù)據(jù)獲取以及表示處理的時候有很大的差別,首先傳統(tǒng)編碼的對象,就是圖像視頻,它都是基于CCD、CMOS陣列刷新,對像素塊進行處理編碼。后續(xù)基于圖像視頻的分析理解,目前基本都是基于深度學(xué)習(xí)的算法,有些方面比人做的都好了,與人的視覺系統(tǒng)相比效率還比較低。比如讓機器看了很多貓,后來一個貓它認成了狗,這是普遍存在的問題。對小孩子來說,給他看兩三只貓認出來的還是貓。
對人類視覺系統(tǒng)的研究也有很多,比如很早就有許多很基礎(chǔ)的理論研究,基本上我們編碼里面用到的比較多的理論一個是多通道,即對色彩、對比敏感度等的多通道處理。還有就是非線性,非線性可以更好對圖像視頻內(nèi)容實現(xiàn)更好的表示,這是背后的機理。
我們現(xiàn)在對比下傳統(tǒng)編碼和智能編碼,傳統(tǒng)編碼都是基于像素塊的處理,對像素塊做預(yù)測變換編碼,處理的時候我們不知道里面是什么,都是一樣的,無非就是說數(shù)據(jù)有的是方差大一點或者是小一點,都是信號層面的底層特征。我們?nèi)丝磧?nèi)容是從邊緣結(jié)構(gòu)特征入手,再到輪廓、對象,它是這樣一個信息處理模式。人看東西實際上也是一個編碼過程,可以看到面向理解的編碼和信號保證的編碼之間差別是很大的。
那么是不是可以從更多利用特征層面進行編碼呢?也就是說的智能編碼。智能編碼概念其實并不是現(xiàn)在才有的,也有20多年了,只不過它的進展一直沒有達到我們所要的智能。比如早些年提得比較多的基于模型的編碼,對圖像的內(nèi)容進行區(qū)域分割和編碼。MPEG-4提出了基于對象的編碼,但是它依賴對象的很精細的分割,為了實現(xiàn)對象交互?,F(xiàn)在我們回頭思考下如果想要實現(xiàn)內(nèi)容的分析理解,需要準確的分割嗎?不需要,只要對象的特征就足夠了。后來還有基于知識和語義的編碼,大概是在80年代末期到90年代中期,再后來就提出了綜合信號和視覺系統(tǒng)的智能編碼。其實還有很多工作是與智能編碼密切相關(guān)的,如MPEG-7中定義的視覺對象的描述,以及CDVS、CDVA,通過在圖像、視頻上附加上一些特征信息,可以基于特征進行圖像檢索,不需要再處理原始的圖像。近期還有一個稱為面向機器視覺的編碼叫video coding for machine,簡稱VCM,也是面向機器進行分析和處理的編碼。
下面我們在深入了解下深度學(xué)習(xí)編碼和特征編碼之間的關(guān)系。對于像素層面的編碼進行DCT變換,變換分解成不同信號進行編碼,這是很底層的特征。再高層些的特征是邊緣輪廓,也可以通過學(xué)習(xí)得到,可以模擬人一樣對視覺信息的處理。到高層這里我們看到類似于人臉的特征。由此可見基于深度學(xué)習(xí)的編碼,實際上包含了很多視覺特征特征信息在里面。
這里我們提出了一個視覺信息分層的編碼框架。一個是結(jié)構(gòu)層面,比如輪廓信息,還有紋理層,就是顏色等信息,還有是語義層,最后是殘差信號層。基于這些層次信息的融合表示實現(xiàn)智能編碼,用相應(yīng)的特征去做更多的智能處理。
這是一個具體實現(xiàn)的網(wǎng)絡(luò)框架,有時特征的數(shù)據(jù)量也很大,這部分負責(zé)去除語義冗余降低碼率,后面這里是解碼重建過程。對這種編碼方法,我們在一些大規(guī)模的圖像數(shù)據(jù)集上進行了測試。
首先在編碼效率方面,和VVC比在同等視覺視覺量下,壓縮效率差不多可以提高到2-3倍。剛才說了智能編碼不只是為了提升壓縮效率,還在內(nèi)容分析方面具有優(yōu)勢。
這個工作是訓(xùn)練網(wǎng)絡(luò)的時候不只是面向壓縮,同時面向圖像分割、人臉屬性預(yù)測這些分析識別任務(wù),網(wǎng)絡(luò)編碼提取的特征信息在達到壓縮的同時可以同時支撐分析識別任務(wù),不需要解碼圖像重建,不需要回到像素層次。
通過視覺信息分層編碼還可以做一些其他有意思的工作。像這里圖像結(jié)構(gòu)和紋理分開了,可以把一幅圖像的輪廓信息和另一幅圖像的色彩信息做組合,能夠很快變化出更多的圖像內(nèi)容甚至其他東西來,這些工作類似于圖像風(fēng)格化,但這里主要是講定義了底層的數(shù)據(jù)表示,可以基于這一表示去進行更多的處理。
還有一個是我們現(xiàn)在在做的工作,打通智能編碼和更多智能處理之間的聯(lián)系。一個是視頻的生成,可以用一副圖像生成一段視頻出來,還有一種是做圖像之間的變化效果,目前都還在進行中。
最后,談?wù)勚悄芫幋a的未來趨向,最頂層是編碼的理論基礎(chǔ),包括信息論、視覺表示理論等,我想人的視覺系統(tǒng)是很好的編碼器,這個是有相應(yīng)的生理智能基礎(chǔ)的,中間是早期的感知機編碼,其實一開始神經(jīng)網(wǎng)絡(luò)剛出來的既有很多的編碼工作,人看東西的過程也是編碼。后面到模型編碼,再后面是深度學(xué)習(xí)編碼,包括最近概念壓縮、生成壓縮等工作。從這里我們可以看到數(shù)據(jù)驅(qū)動、算力提升,推動了智能編碼的發(fā)展。智能編碼不是新東西,是在更多的計算資源、人工智能技術(shù)發(fā)展下有了更新的進展,這里也體現(xiàn)了從對象到內(nèi)容、越來越語義化的螺旋式發(fā)展。
與傳統(tǒng)編碼定義編解碼方法達到壓縮的目的類似,智能編碼的目標是定義更高效的數(shù)據(jù)表示形式,為更智能的數(shù)字媒體處理提供高層級的接口,我想這是智能媒體編碼未來的工作方向。