|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
2 c& e6 }' w2 l+ O
* s' w# V$ o ^( h# F- X# D
项目源码地址:8 j i% d# q$ o/ i4 s# ~
https://github.com/PeterL1n/BackgroundMattingV2
3 L% G# t( h2 D% s0 C0 H项目依赖库:
- s; P9 v7 y, L) d/ G: d, @! n& [ kornia==0.4.1
) X1 O2 V# R9 |0 w tensorboard==2.3.0
" q. ^) a% i3 F0 E' B% S R torchvision==0.8.1# \" K: M. F+ r9 V
tqdm==4.51.0
! _ F3 O6 Z/ T0 a' ~! G9 k0 y% Y opencv-python==4.4.0.44( K0 E0 G- z: {* k
onnxruntime==1.6.0
; _! L9 q4 z6 n' L开发者提供的一些文件资源(国内需木弟子):2 a0 U7 [: m% \, e; A
1、下载模型/权重文件
+ F. P6 u3 J. \https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing. b7 q! M! U, p( ^, ~2 m/ t
2、用于练习的视频和图片文件
6 o& G _5 B& @2 B5 e9 o! GHD视频:' y( L( ?; b. W7 k) z6 Z5 g
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq* \2 y2 l5 ?. z& B
4K视频和图片:
7 I2 F Z0 [8 a9 P$ r- ?; A0 zhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing) z* ?/ K; o/ B
项目demo脚本介绍:
- }% \/ f' R1 f& ]* Cinference_images.py:用于图片中的背景替换,用法如下:
* u6 V4 V6 Z2 e% Q* X# v( j8 hpython inference_images.py
8 N6 X ~' r" v8 P( U! q7 A--model-type mattingrefine
9 s0 Q6 v+ m# I4 r R4 m9 m--model-backbone resnet50
" i4 Z0 A1 V2 |7 K0 f$ q% j' @9 T8 z! {--model-backbone-scale 0.251 Q* D8 f1 s" m1 ?$ {. U
--model-refine-mode sampling
& A* D' J" v9 V+ x- h# {--model-refine-sample-pixels 80000
5 X0 _$ z+ S7 R2 a--model-checkpoint "PATH_TO_CHECKPOINT"7 i6 C0 M, p/ t) X) P
--images-src "PATH_TO_IMAGES_SRC_DIR" r) ~9 m7 m8 t; E; R" N
--images-bgr "PATH_TO_IMAGES_BGR_DIR"2 H7 ^: G' [) ]% r, r
--output-dir "PATH_TO_OUTPUT_DIR"
4 V' @8 k9 \) V! H1 I4 ]: ?--output-type com fgr pha$ r# A, x# m1 t: }0 [! x
inference_video.py: 用于视频中的背景替换,用法如下:
9 b9 }: O7 ]6 Apython inference_video.py
. \& O- k8 @% T2 i3 D! F, o--model-type mattingrefine
) ]" n" r: V: e6 _0 O) N--model-backbone resnet50 5 e6 ^1 G$ _ c0 A1 d# ^
--model-backbone-scale 0.25
/ G! K7 t! Z Z( w--model-refine-mode sampling
2 g$ M+ J1 g6 B3 i--model-refine-sample-pixels 80000
; M) h/ @4 X- Q" W! c$ ]! n5 g" s--model-checkpoint "PATH_TO_CHECKPOINT" $ H( L% B% n. h3 O9 j
--video-src "PATH_TO_VIDEO_SRC"
+ H G) n: q0 r--video-bgr "PATH_TO_VIDEO_BGR" 6 \% Y5 G# \9 W) X7 H0 V7 L
--video-resize 1920 1080 8 ^( \: k u; U, _
--output-dir "PATH_TO_OUTPUT_DIR"
) x, D' p* q* Q" E3 I" o--output-type com fgr pha err ref: g$ t7 |1 ?4 G) |5 s
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
8 H7 ]' m" U) j _: H1 Z$ \. q, Fpython inference_webcam.py
% U# c- j% s4 ]- Y2 B% R- x--model-type mattingrefine
# f5 ~+ c$ g( m+ M* C5 K: J--model-backbone resnet50 & Q4 J4 c" {; j" y) @1 C- I
--model-checkpoint "PATH_TO_CHECKPOINT" ; U- Y9 ~/ K8 X& J
--resolution 1280 720
* V( Z \2 {3 p/ f8 z0 ^虚拟摄像机- Z. U @5 T$ ^& l$ v
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:& @( R7 c$ `$ d% m. `' D/ X
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
) v9 T9 v( p; r z+ c9 k9 r在Google Colab上体验4 g6 I$ V- D0 v: u
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
2 V4 ^3 l P$ a6 B8 Y: p' o2 y. G1、图片背景替换体验地址:7 q! ~/ S& P* i+ B' O' L
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
2 @. O0 K. q9 C% O Q2、视频背景替换体验地址:
~1 a5 U7 w7 \1 v$ ^" h5 Rhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
/ x# [% C! B+ e, m5 I9 {附上开发者提供的项目演示视频:$ D0 q) T7 C8 V$ g( M
2 U% ]$ p0 {/ @; M! ]! x |
|