|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。 g+ t+ H6 @" g$ r& I4 _$ g+ S
- x( N* c2 A5 s5 T# w6 J- z
项目源码地址:+ P7 ?/ l0 T6 e* O
https://github.com/PeterL1n/BackgroundMattingV2
/ J" b7 N) v' m# t M项目依赖库:
2 H9 ^3 R6 u9 w4 w# W' s* n& y kornia==0.4.1
4 p* n# o0 U- O7 @% F( _4 M tensorboard==2.3.0# _& e; R0 t! S, f
torchvision==0.8.1" ?/ k. K' g! g
tqdm==4.51.0+ b9 |& i S; s
opencv-python==4.4.0.44% z" `) e) G+ F) k3 @
onnxruntime==1.6.0
' H$ m8 x" N( w! I开发者提供的一些文件资源(国内需木弟子):
) A# p- \% {1 t( o7 T1、下载模型/权重文件
" V/ z* d! c4 q7 r' g6 J; [https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing, a1 O2 p+ q0 p( I: B6 k3 `
2、用于练习的视频和图片文件1 \! F$ o; M5 x9 Z! N: p5 r- c, W2 r
HD视频:( F4 p: C* x$ e. H) D( Z
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq. M1 {9 L6 E' z
4K视频和图片:
- q% W( ~9 t4 P: [, V5 }https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
& ?6 ^ B2 l) ?项目demo脚本介绍:7 e0 v! p/ s; M% ^# s( D7 q: o
inference_images.py:用于图片中的背景替换,用法如下:) P3 c( j" K" H* \9 }( c* _
python inference_images.py: G5 l: v! k+ q/ r
--model-type mattingrefine* W3 P4 ^" J" i, s
--model-backbone resnet50' f! z) H' `5 |
--model-backbone-scale 0.25
' U! a; o) L) x" K--model-refine-mode sampling
3 i" d0 ~% C( E0 }7 {, z! S) R--model-refine-sample-pixels 80000. r* }" `6 B5 x( O/ z% P
--model-checkpoint "PATH_TO_CHECKPOINT"0 R' D# z9 [6 I8 b1 T j- L9 {, c
--images-src "PATH_TO_IMAGES_SRC_DIR"
% Q4 T& u- q8 c2 D l+ H--images-bgr "PATH_TO_IMAGES_BGR_DIR", |6 ]- I0 m# P/ v7 K
--output-dir "PATH_TO_OUTPUT_DIR"- B/ z$ n7 S4 w: I# [! |
--output-type com fgr pha
; C* c' u" m9 S. A: q$ v; z# dinference_video.py: 用于视频中的背景替换,用法如下:
- o z+ n: e7 T4 [7 g& opython inference_video.py
/ {! f5 q" ~7 Y) p) z--model-type mattingrefine
, ~2 V% N$ o* a--model-backbone resnet50
9 V3 ]9 U/ w# r$ n/ v, p--model-backbone-scale 0.25
/ E. k$ Z8 c) m/ v6 Z+ Q) L--model-refine-mode sampling , W+ }4 q# l1 v8 _9 F
--model-refine-sample-pixels 80000
8 j, t6 B) _) Q4 w& P--model-checkpoint "PATH_TO_CHECKPOINT" - R8 I# B8 ~; `8 c
--video-src "PATH_TO_VIDEO_SRC" ) m k2 ]( G2 C, m. R; R4 y% G
--video-bgr "PATH_TO_VIDEO_BGR" * T0 y' f0 @3 E
--video-resize 1920 1080
6 t% D- }. h. v; ~--output-dir "PATH_TO_OUTPUT_DIR" + |+ S9 ?! R! H# r0 W, w) Z# V. _
--output-type com fgr pha err ref
9 M8 D# e, n/ o# V* Dinference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:$ f) g9 l) M4 ^0 h% X( X# S
python inference_webcam.py ( I. Y5 I: [7 d% e/ ^
--model-type mattingrefine - l3 F. X; K- ~( U) F5 X
--model-backbone resnet50
* M G! s1 n/ h$ C--model-checkpoint "PATH_TO_CHECKPOINT"
+ b6 F0 g, I; K$ f--resolution 1280 720
( ~; O& B6 C/ P1 ^虚拟摄像机
0 H U/ e$ S) z4 _8 g5 O. G 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
$ |: L' D/ `4 w6 z3 b2 l$ a. e4 }https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
2 ?! H: x2 W6 X0 ?6 o7 \6 k在Google Colab上体验
+ O0 O5 o. h5 h4 R- M 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。! K- \/ h5 a+ r5 l# l
1、图片背景替换体验地址:
, } D @; g% z, s* j3 @https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing+ {4 H* d3 l# N( B1 Y
2、视频背景替换体验地址:
) M- j: K$ D* b, C: o3 O ~; Phttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
$ G7 U& q- v4 b. \! S/ C/ |附上开发者提供的项目演示视频:: m% m6 w) O, o2 l' K3 @, d2 |
+ f/ d* o- Q+ g% x8 L |
|