今天介紹的是澳洲國立大學在CVPR 2020上發表的新工作《Learning to Structure an Image with Few Colors》。不同於日常見到的sRGB顏色空間 (3x8位元),本文探討了在受限顏色空間下 (極少位元),如何儘量保留圖片中關鍵結構,使得生成影象仍可被網路識別:只用2種顏色,即可在CIFAR10達到82。1%的準確率。此外,本文率先研究了面向網路的圖片壓縮:不同於面向人類的圖片壓縮,面向網路的圖片壓縮注重壓縮後圖片在預訓練神經網路上的準確率。
論文題目:Learning to Structure an Image with Few Colors
論文地址:pdf, cvpr virtual conference
作者:Yunzhong Hou, Liang Zheng, Stephen Gould
程式碼:github
圖片中的顏色和結構
顏色和結構是構建一張圖片的兩個重要部分。一般情況下,圖片中的結構資訊可以透過廣泛顏色空間(24-bit)中的不同顏色來表示。但是,當顏色空間受到極大限制的時候(e。g。, 1-bit),圖片中的結構資訊也會相應的受損,造成大量原有結構的消失(沒有明確的色彩差異,導致結構/邊界的損失)。面對顏色和結構的同時受損,原始圖片上預訓練的神經網路很難繼續分辨這些受限顏色空間中的影象。
傳統的顏色量化(color quantization)工作,研究如何在受限顏色空間內,生成對於人類視覺最相似圖片。這套工作一般對圖片中的顏色進行聚類,然後選擇聚類中心作為量化之後的顏色。由於傳統方法只關注畫素的rgb值,不關注語義資訊,他們的顏色量化結果並不能被網路很好的識別。可以看到,在顏色空間不斷縮小時,神經網路漸漸不再關注狗的頭和身體,導致識別失敗。
上:傳統方法顏色量化的結果;下:量化結果在預訓練神經網路的分類器相應(class activation map, CAM)。綠色:正確識別;紅色:識別失敗。
目標
出於對顏色和結構互相影響的興趣,在本文中,我們研究如何在受限顏色空間中,識別和保留重要結構,使得神經網路可以正確識別壓縮後的圖片。不同於之前的
面向人類的
影象壓縮,本文討論
面向網路的
影象壓縮:系統關注點是神經網路識別準確率,而非人類觀看。
我們透過原始影象預訓練的神經網路的識別準確率來評估面向網路的影象壓縮效果。
左:不同方法顏色量化結果;右:評估方式。左側每列分別為原圖,1-bit量化結果(三種傳統方法MedianCut+Dither, MedianCut, OCTree, 文章提出的ColorCNN方法)。
方法:ColorCNN
為了提高神經網路在顏色量化影象上的效能,我們提出了一套ColorCNN方法,可以端到端(end-to-end)的學習如何進行顏色量化。如上圖,文章提出的ColorCNN有效保留了神經網路在貓的條紋和前爪的啟用值,進而保證了壓縮影象的正確識別。
ColorCNN的輸入和輸出
為了進行顏色量化,ColorCNN輸出一張顏色序號圖(color index map)和一個顏色盤(color palette)。顏色序號圖和顏色盤原生支援PNG壓縮。在解碼時只需進行查表替代即可。
系統概覽
ColorCNN方法主要包含以下幾個部分:
自編碼器(auto-encoder)構成的基網路:尋找重要的結構,並進行保留,使得壓縮結果在預訓練網路上有相似的相應;
訓練過程中的近似:argmax生成顏色序號圖,以及解碼時的查表均不可導,需要近似;
利用預訓練網路的識別loss(cross-entropy)端到端監督ColorCNN。
如何訓練ColorCNN
訓練/測試網路流程圖對比。紅色:不可導;綠色:可導近似。
為了去除網路中的不可導部分(argmax生成顏色序號圖、解碼時的查表),在訓練過程中,我們將它們都進行了替代。
ColorCNN訓練/測試輸出對比
可以看到,由於在解碼時使用weighted average代替查表,訓練時ColorCNN會輸出更多顏色。
在訓練過程中,我們還引入了一個鼓勵ColorCNN選擇儘量多的顏色的約束(預訓練網路的分類loss並不能直接指導如何選擇顏色、選擇多少顏色),
此外,對於顏色量化任務,在預訓練網路計算分類loss前,我們在解碼影象上引入顏色抖動作為資料增強。
實驗結果
視覺化
ColorCNN有效識別(上圖d)並保留(上圖c)了圖片中的重要結構:e。g。, 飛機機翼、汽車風擋和輪胎、小鳥肚子而臉頰。
量化結果
文中提出方法在較小顏色空間中明顯超過傳統方法:在1-bit顏色空間內,提出的ColorCNN可以在CIFAR10達到82。1%準確率。
應用
透過PNG壓縮,文中提出的ColorCNN顏色量化可直接用於低位元影象壓縮。
感謝觀看!
如果你有興趣,歡迎檢視我之前的工作!