|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
6 x* l; Q/ v8 w
" \: s+ C1 @3 i4 a; R9 U; k
项目源码地址:
# X5 w6 J; E( S* G7 Qhttps://github.com/PeterL1n/BackgroundMattingV2
: N6 D; T+ R; j# Y+ y项目依赖库:
' N3 u- p( D: M kornia==0.4.15 z" r$ Q- q; D% z3 I# }, X
tensorboard==2.3.09 A6 w1 P6 x: L( ~+ s: U
torchvision==0.8.1- f& @4 b& Q, S) g( J; O7 t
tqdm==4.51.0
w. H7 p, {5 o0 D2 w3 ]* e# _ opencv-python==4.4.0.444 K7 D* e2 q" W# }) r2 W
onnxruntime==1.6.0' o- E5 i3 Z8 l: J! d; }7 Z( H
开发者提供的一些文件资源(国内需木弟子):# d8 h5 t/ B, @5 N2 Q, }, V0 m
1、下载模型/权重文件( W$ N- c( a- }3 v9 d' K
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing, R+ W, p+ O$ K
2、用于练习的视频和图片文件6 v5 ?% Y4 f1 Q9 e" X
HD视频:' J+ q# y$ ]7 b$ Q) O
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
+ r3 @! Q% [( u# `% e- F2 y4K视频和图片:
# V, Q0 W7 b: e2 l7 dhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
( E- U* u' j/ H6 Y& {0 f# y项目demo脚本介绍:1 @3 u! F/ ^& \7 z
inference_images.py:用于图片中的背景替换,用法如下:
8 m2 V% G" e! hpython inference_images.py
: N3 L4 |! w$ U--model-type mattingrefine" X7 j4 P% j- s& @
--model-backbone resnet50% Q( u3 ?# ?5 Z+ w: @, A2 R; W5 ]
--model-backbone-scale 0.25
$ Z: ^! [, _5 z& U* c. e--model-refine-mode sampling
3 @1 ?! O* T% k1 v9 h: C/ A: F--model-refine-sample-pixels 80000
7 U1 {& l) N! C r4 a2 ^ p--model-checkpoint "PATH_TO_CHECKPOINT"* j* n) u0 h. M8 P
--images-src "PATH_TO_IMAGES_SRC_DIR"* B; M' S/ Z1 y9 n. d" y9 |9 }; L+ h. q
--images-bgr "PATH_TO_IMAGES_BGR_DIR": J# e8 ]2 w3 r, V
--output-dir "PATH_TO_OUTPUT_DIR"
/ A- L" o5 K# u( b3 P* E* o--output-type com fgr pha
1 \6 Z E' v& u! X$ vinference_video.py: 用于视频中的背景替换,用法如下:
2 e2 J$ z/ E! S' Spython inference_video.py
x0 G! O; H0 D2 G+ r! w) {$ L9 q--model-type mattingrefine
) j9 L5 x* N: C7 O4 h! D: `3 G# q--model-backbone resnet50
' c$ g$ ?2 A( L, X6 F+ z6 f--model-backbone-scale 0.25 . z. a$ M+ o8 n1 ^8 e) ]
--model-refine-mode sampling : R z( u. ^9 p. Y5 A. [; D6 @
--model-refine-sample-pixels 80000
! h. P. H. @) b* C& t) h--model-checkpoint "PATH_TO_CHECKPOINT"
& f9 q3 B1 w! I) _6 b9 J--video-src "PATH_TO_VIDEO_SRC"
) I5 @" d( g( E& A2 u7 G( w3 y--video-bgr "PATH_TO_VIDEO_BGR"
% u/ Y6 U: i" s+ c9 c% E--video-resize 1920 1080 2 L. h; S: a) ^& R
--output-dir "PATH_TO_OUTPUT_DIR" / W$ `/ w6 O& c* ]; }
--output-type com fgr pha err ref
, e% A) } Q1 Y: T" r/ ?2 Q3 z$ O4 H) ainference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
. }0 R" V; F7 ^0 Tpython inference_webcam.py
) [" l; l$ O8 I: D: M7 d--model-type mattingrefine
: R7 o8 F. R1 K/ k# X& F# U--model-backbone resnet50
: `% w2 H, N4 }8 A. f% V7 b" `$ V--model-checkpoint "PATH_TO_CHECKPOINT" & P- s/ _! h) \& W2 z/ p
--resolution 1280 720( f" r! j/ _- U* w% ]
虚拟摄像机' M3 K+ p' N+ n q& }1 K6 k* g9 k; i
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看: C+ T, u1 g% u
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux! a, H# H E \+ Z& R' z6 t/ y- f
在Google Colab上体验/ z+ Q( J4 l, a
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。- [8 [5 C0 b3 l
1、图片背景替换体验地址:8 ~' E2 _5 _5 M% o% n4 o
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
: f$ |2 E/ ]5 z2、视频背景替换体验地址:
0 ^9 N R* J4 \" G3 n! lhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing( Q* [1 t! E6 \4 f
附上开发者提供的项目演示视频:. O0 R! q# d2 E7 e6 V0 S4 W
- [9 I9 F, K1 Z( O3 L |
|