如何輕鬆地運用 AI 技術,讓影片或直播畫面擁有透明背景,無需繁鎖編輯與圖層操作!今天分享的工具是使用 InSPyReNet 提供的開源套件
內容目錄
工具簡介:什麼是 transparent-background[webcam]
?
- 核心技術:基於 InSPyReNet(ACCV 2022)所提出的 AI 去背演算法,支援圖片、影片甚至 webcam 的背景移除功能 。
- Python 套件:名稱為
transparent-background
,採 MIT 授權,可自由商業使用。 - 強大特色:
- 支援多種輸出模式:如 RGBA(透明背景)、saliency map、綠幕、背景模糊、overlay 等。
- 支援 webcam 輸入,但 Linux 上需安裝
v4l2loopback
才能建立虛擬攝影機
安裝與依賴設定(含 webcam 支援)
安裝套件:
pip install transparent-background[webcam]
若使用 Linux,請安裝 webcam relay:
git clone https://github.com/umlaeute/v4l2loopback.git && cd v4l2loopback make && sudo make install sudo depmod -a sudo modprobe v4l2loopback devices=1
CLI 快速範例
transparent-background --source 0 --dest output_folder --type rgba
參數說明:
--source 0
表示 webcam 輸入(一般第一支 webcam 為 0)。--type rgba
代表輸出為帶 alpha 通道的透明背景影像。
可依需求更換為map
、green
、blur
、overlay
或指定背景圖
用於單一影片檔案
Python API 範例:
讀取 webcam 並顯示去背畫面
import cv2 from transparent_background import Remover remover = Remover() cap = cv2.VideoCapture(0) # 開啟預設 webcam while True: ret, frame = cap.read() if not ret: break # 處理去背結果(RGBA) out = remover.process(frame, type="rgba") cv2.imshow("Transparent Webcam", out) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
📖 transparent-background
參數說明
--source [SOURCE]
(必填)
指定輸入的資料來源,可以是:
- 單張圖片:例如
image.png
- 圖片資料夾:例如
path/to/img/folder
- 單個影片檔:例如
video.mp4
- 影片資料夾:例如
path/to/vid/folder
- 整數:用於指定 webcam 地址,例如
0
(對應/dev/video0
的攝影機)
--dest [DEST]
(可選)
輸出結果存放的資料夾,若未指定,則預設為當前工作目錄。
--threshold [THRESHOLD]
(可選)
設定硬性去背的閾值,範圍為 0.0 ~ 1.0。
- 不建議與 soft prediction 同時使用,若未設定,系統會使用「軟性預測」來生成更自然的透明效果。
--type [TYPE]
(可選)
選擇輸出的背景類型,預設為 rgba
:
- rgba:輸出帶透明通道的影像(alpha map),若未設定 threshold,會自動透過
pymatting
進行前景提取。⚠️ 此模式不適用於影片或 webcam。 - map:輸出純粹的 saliency map(灰階遮罩)。
- green:將背景換成綠幕。
- white:將背景換成純白色(由 [carpedm20] 貢獻)。
- ‘[255, 0, 0]’:使用指定的 RGB 顏色作為背景(需加單引號)。
- blur:將背景模糊處理。
- overlay:以半透明綠色覆蓋前景並突顯邊緣。
- 另一張圖片:可指定圖片路徑(例如
samples/background.png
),前景會直接疊加在該背景上。
--ckpt [CKPT]
(可選)
使用其他模型檔(checkpoint)。
- 預設會自動下載訓練好的 composite dataset 模型。
- 你也可以從 InSPyReNet Model Zoo 選擇不同的預訓練模型。
--mode [MODE]
(可選)
指定運行模式:
- base:標準模式。
- base-nightly:使用 nightly release 版本的 checkpoint。
- fast:快速模式,速度快但可能在細節上略有損失。
其他選項
--resize [RESIZE]
(可選):static
(預設):輸出尺寸固定。dynamic
:生成更清晰的邊緣,但可能不穩定。
--format [FORMAT]
(可選):輸出格式,若未指定,會與輸入格式相同。--reverse
(可選):反轉去背結果,將前景移除、保留背景(官方玩笑稱為「transparent-foreground」模式 😆)。--jit
(可選):啟用 TorchScript 模式,會先透過 PyTorch JIT 編譯器追蹤模型,初始化較慢,但推論速度更快且記憶體佔用更低。
範例
單張圖片去背(輸出透明 PNG):
transparent-background --source input.png --dest output --type rgba
處理整個資料夾的圖片,並輸出模糊背景效果:
transparent-background --source ./images --dest ./results --type blur
即時 webcam 去背(Linux 需安裝 v4l2loopback
):
transparent-background --source 0 --dest ./webcam_output --type green
更換背景為自訂圖片:
transparent-background --source video.mp4 --dest ./output --type 'backgrounds/bg.png'
GUI 模式
安裝 GUI 支援
pip install --extra-index-url https://download.pytorch.org/whl/cu118 transparent-background[gui] # with gui dependency (flet)
開啟 GUI
transparent-background-gui
官方教學
官方網頁
https://github.com/plemeri/transparent-background
採用的演算法
https://github.com/plemeri/InSPyReNet
開源的後製影片軟體
參考資料
近期留言