图像抠图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都是一種靜態圖像摳圖算法,現有靜態圖像摳圖算法均需對給定圖像添加手工標記以增加摳圖問題的額外約束。
Trimap是最常用的先驗知識,多數摳圖算法采用了Trimap作為先驗知識,顧名思義Trimap是一個三元圖,每個像素取值為{0,128,255}其中之一,分別代表前景、未知與背景,如圖
2. 相關數據集
- Adobe Composition-1K
- matting_human_datasets? : https://github.com/aisegmentcn/matting_human_datasets
- VideoMatte240K
- PhotoMatte85
- RealWorldPortrait-636
- ?https://github.com/thuyngch/Human-Segmentation-PyTorch
- Automatic Portrait Segmentation for Image Stylization: 1800 images
- Supervisely Person: 5711 images
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或者其他交互輔助的條件下,進行完全自動化摳圖!! 實質上,存在很多矛盾,就比如上去,上述效果圖,模型怎么知道要摳圖是那個球球,而不是那條馬呢?
更多質疑:[質疑][CVPR2020]只有強者才能“摳”腳 - 知乎?
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?
在線體驗:Portrait Matting?
MODNet模型學習分為三個部分,分別為:語義部分(S),細節部分(D)和融合部分(F)。
- 在語義估計中,對high-level的特征結果進行監督學習,標簽使用的是下采樣及高斯模糊后的GT,損失函數用的L2-Loss,用L2loss應該可以學到更soft的語義特征;
- 在細節預測中,結合了輸入圖像的信息和語義部分的輸出特征,通過encoder-decoder對人像邊緣進行單獨地約束學習,用的是交叉熵損失函數。為了減小計算量,encoder-decoder結構較為shallow,同時處理的是原圖下采樣后的尺度。
- 在融合部分,把語義輸出和細節輸出結果拼起來后得到最終的alpha結果,這部分約束用的是L1損失函數。
個人覺得結構設計上較為清晰,監督信息與方式利用合理
?說明:無需Trimap,?MODNet整體Matting效果,相當不錯
總結
以上是生活随笔為你收集整理的图像抠图Image Matting算法调研的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [ShapeInferenceError
- 下一篇: 基于LSTM的序列预测: 飞机月流量预测