|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。 E9 Z) K2 X1 C% l t7 I
" C; H3 V2 N. V% N- \$ U" N- V
项目源码地址:
( y: f$ M! P! n4 L& ~https://github.com/PeterL1n/BackgroundMattingV2
& @4 r) Y* z7 d项目依赖库:
( ?# o `) Q l* _6 m) B4 e kornia==0.4.1
7 H* p; e& n+ V tensorboard==2.3.03 `0 e# t6 K7 h
torchvision==0.8.19 S% ]/ Q) w* n6 L/ _
tqdm==4.51.04 M6 Y1 h1 u9 ~$ [$ ~5 ^ \" m/ O( [
opencv-python==4.4.0.44/ Z, M0 \% o+ F+ k1 B8 S( [
onnxruntime==1.6.0
/ |' }+ B3 K& m" w开发者提供的一些文件资源(国内需木弟子):$ j7 }% s5 y# c% o% g
1、下载模型/权重文件0 y+ [# @( ~! y0 O* r$ D
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
: e% B( E, V+ Q; V4 x2、用于练习的视频和图片文件
- s1 f7 M4 Z# O% ?$ }$ sHD视频:
9 P/ \" W! {1 ^# d' |+ Ghttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq6 A9 f+ R4 g) O
4K视频和图片:/ V% L1 s& r1 ?, h1 p
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
1 m4 k& B! M) P! D项目demo脚本介绍:& x; ]# P4 d }( {
inference_images.py:用于图片中的背景替换,用法如下:7 B# y) {/ k w: U, R& f
python inference_images.py, I+ \8 F% W0 ?$ x
--model-type mattingrefine
9 S$ {: N: A( U--model-backbone resnet50$ R& l: `7 E# I! w
--model-backbone-scale 0.25
7 r0 H- {- H t; F# J0 l--model-refine-mode sampling
4 K' U8 ?- \% _; B0 G--model-refine-sample-pixels 80000
8 Y8 _1 L/ G3 z( K--model-checkpoint "PATH_TO_CHECKPOINT"
2 N3 f* o+ j( V9 a8 e--images-src "PATH_TO_IMAGES_SRC_DIR"& l0 `$ E& O% c% |. q- }7 F
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
1 Y7 q9 m2 u+ L- o% X4 N" K, T--output-dir "PATH_TO_OUTPUT_DIR"
6 V" R" F% G, c7 X* X9 }( _--output-type com fgr pha' `/ l) l6 Y5 [6 `5 a
inference_video.py: 用于视频中的背景替换,用法如下:% K$ |- T$ D, H0 C# h W
python inference_video.py
$ D- M7 D/ f; M0 s; V7 p8 J1 U+ l. i--model-type mattingrefine
& s1 O4 Y/ A) h- e--model-backbone resnet50
# \( n: Z7 k/ [0 F. ~9 {$ G" G--model-backbone-scale 0.25
* }. w% r! z/ |! L' \, |--model-refine-mode sampling ( L! K8 f2 o' ^+ |6 Y0 a
--model-refine-sample-pixels 80000 / N$ Z! @7 q0 G- B5 |4 d) y
--model-checkpoint "PATH_TO_CHECKPOINT" F9 s1 y; E( r
--video-src "PATH_TO_VIDEO_SRC"
$ y7 T3 }1 n( R1 G--video-bgr "PATH_TO_VIDEO_BGR" / d4 a4 ]4 v% `
--video-resize 1920 1080 $ [- H5 k6 `5 B" e+ |. `, {
--output-dir "PATH_TO_OUTPUT_DIR"
4 ]* V0 Q2 c. n% f% i: ]) Z--output-type com fgr pha err ref( L4 m) o- t9 y5 [* ~
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
" O- g+ H* k7 v7 ypython inference_webcam.py
, L9 Q, o0 f0 `2 k--model-type mattingrefine
G8 r: c$ m/ ~0 Y' \--model-backbone resnet50
, k$ _. d% G4 X! V--model-checkpoint "PATH_TO_CHECKPOINT"
" u3 Z. c- q( @( e" n--resolution 1280 720
6 P' ], o% X: B& w7 Q7 n虚拟摄像机
% N- }: R3 { u! A9 I/ K 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
, k- A8 @) G F1 ]( T) h6 Nhttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
' u, ~% V/ H( u$ h+ n, b. s& u在Google Colab上体验0 t! j7 X, d; g- ?& F) G
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。3 C, I4 _, \7 k$ |3 a5 ]# @3 O
1、图片背景替换体验地址:
% R" ~2 v; A' Uhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
! J8 b- ^+ ]" k4 D2、视频背景替换体验地址:1 T: M) Z, x5 [& B/ K" v6 l
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
7 x, t* q! \) O4 F4 K0 \附上开发者提供的项目演示视频:- d* p7 q( R9 m5 v9 e6 }4 R
* _/ b5 e5 Q5 D" _" C9 P: Q |
|