使用 AI 過度壓縮圖像

使用 AI 過度壓縮圖像
神經網絡等數據驅動算法席捲全球。 它們的發展有幾個原因,包括廉價而強大的設備和海量數據。 神經網絡目前處於與“認知”任務相關的一切領域的前沿,例如圖像識別、自然語言理解等。 但它們不應僅限於此類任務。 本文討論如何使用神經網絡壓縮圖像,使用殘差學習。 本文中介紹的方法比標準編解碼器更快更好。 方案、方程式,當然還有下切測試的表格。

本文基於 工作。 假定您熟悉神經網絡及其概念。 卷積 и 損失函數.

什麼是圖像壓縮及其工作原理?

圖像壓縮是轉換圖像以使其占用更少空間的過程。 簡單地存儲圖像會佔用大量空間,這就是為什麼有 JPEG 和 PNG 等旨在減少原始圖像大小的編解碼器的原因。

如您所知,有兩種類型的圖像壓縮: 沒有損失 и 有損失. 顧名思義,無損壓縮可以保留原始圖像數據,而有損壓縮會在壓縮過程中丟失部分數據。 例如,JPG 是有損算法 [大約。 翻譯。 - 基本上,我們也不要忘記無損 JPEG],而 PNG 是一種無損算法。

使用 AI 過度壓縮圖像
無損和有損壓縮的比較

請注意,右側圖像中有很多塊狀偽像。 這是丟失的信息。 相似顏色的相鄰像素被壓縮為一個區域以節省空間,但有關實際像素的信息丟失了。 當然,JPEG、PNG 等編解碼器中使用的算法要復雜得多,但這是有損壓縮的一個很好的直觀示例。 無損壓縮固然好,但無損壓縮文件佔用磁盤空間大。 有更好的方法可以在不丟失大量信息的情況下壓縮圖像,但它們非常慢並且許多使用迭代方法。 這意味著它們不能在多個 CPU 或 GPU 內核上並行運行。 這種限制使它們在日常使用中完全不切實際。

卷積神經網絡輸入

如果需要計算某些東西並且計算可以是近似的,請添加 神經網絡. 作者使用相當標準的捲積神經網絡來改進圖像壓縮。 所提出的方法不僅與最佳解決方案性能相當(如果不是更好的話),它還可以使用並行計算,從而顯著提高速度。 原因是卷積神經網絡 (CNN) 非常擅長從圖像中提取空間信息,然後以更緊湊的形式呈現(例如,僅保留圖像的“重要”位)。 作者希望使用這種 CNN 功能來更好地表示圖像。

架構

作者提出了一個雙網絡。 第一個網絡將圖像作為輸入並生成緊湊表示 (ComCNN)。 該網絡的輸出隨後由標準編解碼器(例如 JPEG)處理。 在經過編解碼器處理後,圖像被傳遞到第二個網絡,該網絡“修復”來自編解碼器的圖像以嘗試返回原始圖像。 作者將這個網絡命名為 Reconstructive CNN (RecCNN)。 與 GAN 一樣,這兩個網絡都是迭代訓練的。

使用 AI 過度壓縮圖像
ComCNN 緊湊表示傳遞給標準編解碼器

使用 AI 過度壓縮圖像
RecCNN。 ComCNN 輸出按比例放大並饋送到 RecCNN,後者將嘗試學習剩餘部分

編解碼器輸出按比例放大,然後傳遞給 RecCNN。 RecCNN 將嘗試渲染盡可能接近原始圖像的圖像。

使用 AI 過度壓縮圖像
端到端圖像壓縮框架。 Co(.) 是一種圖像壓縮算法。 作者使用了 JPEG、JPEG2000 和 BPG

什麼是餘數?

其餘部分可以被認為是“改進”編解碼器正在解碼的圖像的後處理步驟。 擁有大量關於世界的“信息”,神經網絡可以做出關於修復什麼的認知決策。 這個想法是基於 殘差學習,閱讀您可以了解的詳細信息 這裡.

損失函數

使用兩個損失函數是因為我們有兩個神經網絡。 其中第一個是 ComCNN,標記為 L1,定義如下:

使用 AI 過度壓縮圖像
ComCNN 的損失函數

說明

這個方程看似複雜,其實是標準的(均方根誤差) MSE. ||² 表示它們所包圍的向量的範數。

使用 AI 過度壓縮圖像
公式 1.1

Cr 表示 ComCNN 的輸出。 θ表示ComCNN參數的可學習性,XK是輸入圖像

使用 AI 過度壓縮圖像
公式 1.2

Re() 代表 RecCNN。 這個等式簡單地將等式1.1的意思傳達給RecCNN。 θ 表示 RecCNN 可訓練參數(頂上的帽子表示參數是固定的)。

直觀定義

方程式 1.0 將導致 ComCNN 改變其權重,以便在使用 RecCNN 重新創建時,最終圖像看起來與輸入圖像盡可能相似。 第二個 RecCNN 損失函數定義如下:

使用 AI 過度壓縮圖像
公式 2.0

說明

同樣,該函數可能看起來很複雜,但這在很大程度上是一個標準的神經網絡損失函數 (MSE)。

使用 AI 過度壓縮圖像
公式 2.1

Co() 表示編解碼器輸出,頂部帶帽子的 x 表示 ComCNN 輸出。 θ2 是 RecCNN 可訓練參數, res() 只是 RecCNN 的殘差輸出。 值得注意的是,RecCNN 是在 Co() 和輸入圖像之間的差異上訓練的,而不是在輸入圖像上訓練的。

直觀定義

公式 2.0 將導致 RecCNN 改變其權重,以便輸出看起來與輸入圖像盡可能相似。

學習計劃

模型是迭代訓練的,比如 . 第一個模型的權重是固定的,而第二個模型的權重正在更新,然後第二個模型的權重是固定的,同時第一個模型正在被訓練。

測試

作者將他們的方法與現有方法(包括簡單的編解碼器)進行了比較。 他們的方法比其他方法執行得更好,同時在適當的硬件上保持高速。 此外,作者嘗試僅使用兩個網絡中的一個並註意到性能下降。

使用 AI 過度壓縮圖像
結構相似性指數比較 (SSIM)。 高值表示與原件更相似。 粗體表示作者的工作結果

結論

我們研究了一種將深度學習應用於圖像壓縮的新方法,並討論了在圖像分類和語言處理等“一般”任務之外的任務中使用神經網絡的可能性。 這種方法不僅不遜色於現代要求,而且可以讓您更快地處理圖像。

學習神經網絡變得更加容易,因為我們專門為 Habravchan 製作了促銷代碼 哈伯, 在橫幅上顯示的折扣基礎上額外提供 10% 的折扣。

使用 AI 過度壓縮圖像

更多課程

推薦文章

來源: www.habr.com

添加評論