圖像摳圖Image Matting算法調研

pan_jinquan 2021-08-15 21:12:16 阅读数:466

本文一共[544]字,预计阅读时长:1分钟~
image matting 算法

目錄

1.Trimap和Strokes

2. 相關數據集

3.論文算法調研

3.1 Deep Image Matting

3.2 Semantic Image Matting

3.3 Background Matting

3.4 Background Matting V2

3.5 Semantic Human Matting

3.6 HAttMatting

3.7 MMNet:Towards Real-Time Automatic Portrait Matting on Mobile Devices

3.8 Fast Deep Matting for Portrait Animation on Mobile Phone

3.9 MODNet: Trimap-Free Portrait Matting in Real Time


1.Trimap和Strokes

Trimap和Strokes都是一種靜態圖像摳圖算法,現有靜態圖像摳圖算法均需對給定圖像添加手工標記以增加摳圖問題的額外約束。

  1. Trimap,三元圖,是對給定圖像的一種粗略劃分,即將給定圖像劃分為前景、背景和待求未知區域
  2. Strokes則采用塗鴉的方式在圖像上隨意標記前景和背景區域,剩餘未標記部分則為待求的未知區域

Trimap是最常用的先驗知識,多數摳圖算法采用了Trimap作為先驗知識,顧名思義Trimap是一個三元圖,每個像素取值為{0,128,255}其中之一,分別代錶前景、未知與背景,如圖


2. 相關數據集


3.論文算法調研

3.1 Deep Image Matting

Paper:https://arxiv.org/pdf/1703.03872.pdf 

GitHub: https://github.com/Joker316701882/Deep-Image-Matting

Adobe在17年提出了Deep Image Matting,這是首個端到端預測alpha的算法;整個模型分Matting encoder-decoder stage與Matting refinement stage兩個部分,Matting encoder-decoder stage是第一部分,根據輸入圖像與對應的Trimap,得到較為粗略的alpha matte。Matting refinement stage是一個小的卷積網絡,用來提昇alpha matte的精度與邊緣錶現。

說明:網絡輸入是一個patch圖像(經過crop)和相應的 trimap, 通過concat, 共4通道輸入網絡,推理時也要提供trimap圖,現實中不太方便

3.2 Semantic Image Matting

Paper: https://arxiv.org/abs/2104.08201 

Github: https://github.com/nowsyn/SIM

與Deep Image Matting類似,需要加入trimap進行摳圖

3.3 Background Matting

Paper:https://arxiv.org/abs/2004.00626

GitHub: https://github.com/senguptaumd/Background-Matting

這篇文章要介紹的是一篇基於深度學習的無交互的摳圖方法。它的特點是不需要Trimap圖,但要求用戶手動提供一張無前景的純背景圖,如圖1所示,這個方法往往比繪制三元圖更為簡單,尤其是在視頻摳圖方向 。這個要求雖然不適用於所有場景,但在很多場景中純背景圖還是很容易獲得的。

說明: 不需要Trimap圖,但需要提供一張無前景的純背景圖 

3.4 Background Matting V2

Paper:  https://arxiv.org/abs/2012.07810

GitHub: https://github.com/PeterL1n/BackgroundMattingV2

Background Matting得到了不錯的效果,但該項目無法實時運行,也無法很好的處理高分辨率輸入。所以項目團隊又推出了Background Matting V2,該項目可以以30fps的速度在4k輸入上得到不錯的結果。

說明: 與Background Matting類似,V2不需要Trimap圖,但需要提供一張無前景的純背景圖

3.5 Semantic Human Matting

Paper: https://arxiv.org/pdf/1809.01354.pdf

GitHUb: https://github.com/lizhengwei1992/Semantic_Human_Matting 

阿裏巴巴提出的Semantic Human Matting: 

  • 首次實現無需Trimap方式生成alpha圖
  • 提出了新的fusion的策略,用概率估計alpha matte
  • 構造了新的數據集

將網絡分成兩個部分。

  • TNet: 對前景、背景、未知區域做像素級別的分類(相當於預測Trimap了)。
  • MNet: 將TNet的輸出當做輸入,生成更加精細的alpha matte。
  • 兩個網絡的輸出經過Fusion Module生成最終的結果

T-Net對像素三分類得到Trimap,與圖像concat得到六通道輸入送入M-Net,M-Net通過encoder-decoder得到較為粗糙的alpha matte,最後將T-Net與M-Net的輸出送入融合模塊Fusion Module,最終得到更精確的alpha matte。

3.6 HAttMatting

Paper:  https://wukaoliu.github.io/HAttMatting/  

GitHub:https://github.com/wukaoliu/CVPR2020-HAttMatting (僅有效果圖,連測試模型都沒有,存在很大的質疑)

Attention-Guided Hierarchical Structure Aggregation for Image Matting

這也是一篇不需要提供trimap或者其他交互的摳圖方法(可認為是自動化摳圖),核心思想是抑制高級特征中的冗餘語義,並消除空間線索中無用的背景細節,然後對其進行聚合以預測准確的alpha 通道。

為此,該文使用通道注意力(channel-wise attention)模型來蒸餾金字塔特征,並對空間線索使用空間注意力(spatial attention ),以同時消除前景以外的圖像紋理細節。

說明:該文聲稱可以無trimap或者其他交互輔助的條件下,進行完全自動化摳圖!! 實質上,存在很多矛盾,就比如上去,上述效果圖,模型怎麼知道要摳圖是那個球球,而不是那條馬呢?

更多質疑:https://zhuanlan.zhihu.com/p/158611874 

3.7 MMNet:Towards Real-Time Automatic Portrait Matting on Mobile Devices

Paper: https://arxiv.org/abs/1904.03816

Github: https://github.com/hyperconnect/MMNet 

Mobile Matting Network (MMNet)采用了標准的編碼-解碼框架。其中,編碼器通過多次下采樣,逐步减小輸入特征的尺寸,在捕獲更高級語義信息的同時,也在丟失空間/比特置信息。另一方面,解碼器對特征圖進行上采樣,逐步恢複空間/比特置信息,同時使其放大為原先的輸入分辨率。另外,作者將來自跳連接的信息與上采樣信息相串聯,還采用了增强塊來改善解碼效果。如此,輸出的alpha摳圖就能與原始圖像的尺寸保持一致了。MMNet的具體結構圖1所示。

說明:17年的Paper,無需Trimap,在移動設備上實現了實時自動摳圖功能,網絡的體積較小, 效果有待驗證

3.8 Fast Deep Matting for Portrait Animation on Mobile Phone

Paper: https://arxiv.org/abs/1707.08289 

GitHub: https://github.com/huochaitiantang/pytorch-fast-matting-portrait 

網絡由兩個階段組成。

第一階段是人像分割網絡,它以一幅圖像為輸入,獲得一個粗二進制mask。第二階段是feathering模塊(羽化模塊),將前景/背景mask細化為最終的alpha matte。第一階段用輕全卷積網絡快速提供粗二進制mask,第二階段用單個濾波器細化粗二進制mask,大大降低了誤差。

說明:無需Trimap,輸入RGB圖像,輸出是matte, 效果有待驗證

3.9 MODNet: Trimap-Free Portrait Matting in Real Time

Paper: https://arxiv.org/pdf/2011.11961.pdf

Github: https://github.com/ZHKKKe/MODNet 

在線體驗:https://sight-x.cn/portrait_matting/ 

MODNet模型學習分為三個部分,分別為:語義部分(S),細節部分(D)和融合部分(F)

  • 在語義估計中,對high-level的特征結果進行監督學習,標簽使用的是下采樣及高斯模糊後的GT,損失函數用的L2-Loss,用L2loss應該可以學到更soft的語義特征;
  • 在細節預測中,結合了輸入圖像的信息和語義部分的輸出特征,通過encoder-decoder對人像邊緣進行單獨地約束學習,用的是交叉熵損失函數。為了减小計算量,encoder-decoder結構較為shallow,同時處理的是原圖下采樣後的尺度。
  • 在融合部分,把語義輸出和細節輸出結果拼起來後得到最終的alpha結果,這部分約束用的是L1損失函數。

個人覺得結構設計上較為清晰,監督信息與方式利用合理

 說明:無需Trimap, MODNet整體Matting效果,相當不錯

版权声明:本文为[pan_jinquan]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/08/20210815211145738B.html