摳圖是影像處理中最常見的操作之一,指的是將影像中需要的部分從畫面中精確的提取出來,
摳圖的主要功能是為了后期的合成做準備,在 Photoshop 中,摳圖的方法有很多種,最常見的有通道摳圖、蒙版摳圖、鋼筆工具摳圖和快速選擇工具等,針對視頻的摳圖方法主要是基于keylight 插件對純色背景進行摳圖(多用于綠幕),
摳圖主要解決的是影像中前景和背景區域的準確預測問題,對于影像編輯和影視制作有著極其重要的實際意義,因此一個準確有效的摳圖演算法可以極大改善內容生產的作業流程,從而節省大量的人力物力并提高作業效率,

圖1 trimap 摳圖
常用視頻摳圖方式
業內常用視頻摳圖主要有通用摳圖和綠幕摳圖兩種方式,
通用摳圖通常基于 trimap 對前景、背景和 alpha 圖進行估計,然而當影像中的前景和背景顏色相似或有著比較復雜的紋理時,基于 trimap 的傳統演算法很難取得比較好的效果,綠幕摳圖也可以基于 trimap,但是由于 trimap 方法需要額外增加一個三值圖輸入,在視頻綠幕摳圖很難實際應用起來,
綠幕摳圖通常采用色度鍵或亮度鍵演算法,亮度鍵指將一幅彩色影像轉為單通道的黑白影像,這幅黑白影像就代表著該影像的亮部和暗部區域,通過設定最低亮度和最高亮度兩個閾值,將符合該條件的區域保留,不符合的去除,由此就生成了一張 alpha 圖,然而這種方法直接生成的 alpha 圖通常有比較多的瑕疵,還需要進行二次處理,
色度鍵演算法則是在 HSV 彩色空間中進行,其中 H 表示色調、即是什么顏色,S 表示飽和度即該顏色有多濃,V 表示亮度即該顏色有多亮,色度鍵演算法需要提前手動選擇背景顏色,通過計算整幅影像和背景顏色的距離或稱相似度來判斷哪些顏色屬于背景,哪些顏色屬于前景,由此得到最終的 alpha 圖,

圖2 AE 軟體中的色度鍵摳圖
在綠幕摳圖中,無論是亮度鍵還是色度鍵都需要和用戶進行互動,需要用戶繁瑣的調節各種復雜的引數來達到較好的摳圖效果,同時,由于黃色(255,255,0)和綠色(0,255,0)相近,色度鍵演算法很難對該顏色進行有效處理,如圖 2 所示,在 AE 軟體中使用色度鍵演算法對綠幕視頻進行摳圖,可以看到背景基本能去除干凈,但是黃色的皮卡丘玩具出現了例外,

圖3 HSV 顏色空間模型
近年來隨著計算機硬體設備和人工智能基礎理論的發展,使得人工智能演算法能夠真正在各行各業落地,CNN 具備強大的高級特征提取能力,彌補了傳統演算法要基于手工特征進行設計的弊端,同時 CNN 還具備強大的擬合能力,與傳統演算法相比,基于 CNN 的人工智能演算法通常具備更強的魯棒性,
ZEGO 綠幕摳圖技術方案
2.1 資料制作

圖4 綠幕摳像程序
綠幕資料是比較專業的資料,一般只有影視公司才會去拍攝,而由于肖像、著作權等一系列問題,互聯網上幾乎找不到任何可以公開使用的綠幕資料,所以,ZEGO 搭建了專業的綠幕拍攝場地,用于制作專業的綠幕資料集,
綠幕資料的制作包括綠幕背景和前景拍攝,為了兼容市面上大部分綠幕以及增加綠幕背景的多樣性,ZEGO 使用專業的攝影燈用于調節綠幕的明亮和色溫,同時考慮到用戶使用的綠幕不一定像專業的那么平整和柔和,我們也制作了一批效果較差的綠幕背景資料,

圖5 通過補光燈和色溫燈控制綠幕背景的顏色
綠色溢位是綠幕摳圖的經典問題,由于光線的反射、物體距離綠幕的遠近和物體本身色彩的深淺等原因會造成物體表面被染上綠色,而人眼對綠色非常敏感,因此綠色溢位會使得綠幕摳圖的效果大打折扣,ZEGO 專門制作了一批帶有綠色溢位的資料集,并使用 AE 軟體中的 keylight 插件進行綠幕摳圖和顏色溢位抑制,由此得到帶綠色溢位的前景影像、綠色溢位抑制后的前景影像以及對應的 alpha 圖,

圖6 帶綠色溢位的前景以及對應的綠色抑制前景和 alpha 圖

圖7 人體、紙張被綠幕反射上綠色
2.2 模型設計
ZEGO 設計了超輕量級的 CNN 模型用于實時綠幕摳圖,該模型采用編碼器加解碼器結構,其中編碼器由 3X3 的卷積層、relu 激活函式、1x1 的卷積層、batchnoraml 層構成并整體遵循mobilenetV3 的倒殘差結構,
編碼器采用通道可分離卷積用于降低計算量,隨后進行特征圖升維最后再使用 1x1 的卷積對特征圖進行壓縮降維,實驗表明這種結構在輕量級網路中能夠更加有效的提取資料特征,資料每經過一個編碼器,大小減小一半,網路將在不同解析度的資料上提取特征,
經過編碼器提取特征后,最后一層特征會經過 LRASSP(輕量級空洞空間金字塔池化)層,該層是輕量級的空間金字塔池化,該層會將輸入按照寬和高均勻的分成 1 份、4 份、16 份,并分別對其進行全域均值池化,最后再把得到的池化特征拼接起來,該層能獲取特征圖不同空間的尺度資訊,從而增強網路的魯棒性,

圖8 ASPP 示例
在解碼器階段,會逐一對特征圖進行兩倍上采樣并結合時序資訊來加強視頻摳圖的連續性和穩定性,時序資訊通過 GRU(Gate Recurrent Uint)模塊來提取并嵌入對應的解碼器中,GRU 是回圈神經網路的一種,和 LSTM(Long-Short Term Memory)一樣,也是為了解決長期記憶和方向傳播中的梯度等問題,
GRU 包括兩個門控介面,其公式如下:

GRU 首先通過上一個傳輸下來的狀態
和當前節點的輸入
來獲取兩個門控的狀態,其中
制重置的門控,Z為控制更新的門控,
為 sigmoid 函式,
得到門控信號之后,首先使用重置門控來得到重置后資料:

再將
與輸入
進行拼接,隨后通過 tanh 激活函式來講資料縮放到 -1 到 1 的范圍內,

這里的
主要包含了當前輸入的
資料,有針對性的對
添加到當前的隱藏狀態,相當于記憶了當前時刻的狀態,
GRU 的關鍵步驟是記憶更新階段,在這個階段中,GRU 同時進行了遺忘和記憶兩個步驟,并使用先前得到的更新門控Z進行更新:

門控信號的范圍為 0 到 1,門控資訊越接近 1,代表記憶下來的資料越多,反之則代表遺忘的越多,
當添加了 GRU 后,整個網路會隨著時間對錯誤的預測進行修正并能有效抑制視頻摳像的閃爍,

圖 9 GRU 對錯誤預測的修正
綠幕摳圖除了要精細的摳出前景邊界外還需有對綠色溢位進行有效抑制,人眼對綠色非常敏感,如果摳像邊界還殘留綠色或前景被光線反射上綠色會對綠幕摳圖的結果大打折扣,
整個綠幕摳圖的原理可解釋為如下公式:

其中
為合成后影像,
為摳圖模型得到的透明通道圖,
表示前景,
表示新的背景,

圖10 綠幕摳圖模型
2.3 綠色抑制
為了解決綠幕摳圖中的顏色溢位問題,ZEGO 額外在網路后端增加了一個綠色抑制模塊,ZEGO 在該方案中制作了一批帶有綠色溢位的資料,并通過 AE 軟體提取其前景、alpha 圖隨后對前景進行綠色抑制得到抑制后的前景圖,因此,一個資料組包含了四個資料,分別是原始綠幕影像、alpha 圖、帶綠色溢位的前景、綠色抑制后的前景,

圖11 綠色抑制流程
在網路的訓練程序中,會先預測出不進行綠色抑制的前景影像,隨后進入綠色抑制器并對綠色溢位進行抑制,
最終的前景圖會和資料中的手動綠色抑制前景計算 L1 損失,并將梯度回傳更新網路引數,
其中
為預測的前景,
為真實的綠色抑制后的前景,

圖13 綠色抑制效果
ZEGO 綠幕分割,極致效果體驗
ZEGO 通過在演算法中嵌入多級綠色值,有效的改善了傳統綠幕在打光不均、綠幕不規范時出現的綠色殘留,同時 ZEGO 利用 GRU 模塊,增加了幀間資訊,有效的提升了 alpha 圖之間的連續性,榷訓了原始噪聲對摳圖的影響,并且 ZEGO 提出了自適應的顏色溢位機制,在解決顏色溢位的同時盡量不對其他顏色產生大的影響,ZEGO 綠幕摳圖在獲得好的摳圖效果同時,性能同樣優秀,實測在 RK3588 上對四路 1080P 視頻進行處理,每幀耗時僅 8 毫秒,

綠幕分割效果對比
除了綠幕分割能力之外,ZEGO 還支持任意背景分割能力,開發者可以利用這兩種能力實作背景虛化、虛擬背景、演講模式、多人實時同臺互動等業務場景,打造更多樣的互動體驗,
更多 ZEGO 綠幕分割資訊可點擊鏈接或下方閱讀原文查看:https://doc-zh.zego.im/article/16333
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/556627.html
標籤:其他
下一篇:返回列表
