|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
, o" z. m% }4 p' ]8 k% \
: m4 G: \6 w" a$ p& D8 J' D+ q0 i项目源码地址:
0 t9 L- I5 W8 Z) Xhttps://github.com/PeterL1n/BackgroundMattingV2
3 q& [) m( S# e9 Q+ L项目依赖库:, }( \6 I6 S9 A3 \
kornia==0.4.1
1 e, r; u& n9 D2 \, w" q; Z! ? tensorboard==2.3.0" z: g) S# W( y# n2 m
torchvision==0.8.19 M! b% z, h* T: G5 ^) J; o
tqdm==4.51.0
; G" e8 Y8 J& C" L" n) t opencv-python==4.4.0.44: t1 y5 f5 Q: }, z
onnxruntime==1.6.03 h" r% l0 i6 q, w# C2 B1 J
开发者提供的一些文件资源(国内需木弟子):
0 B0 |" o$ ] ], S1、下载模型/权重文件
4 D' B. E2 z$ t/ zhttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing8 ?& c8 Y8 \8 E9 F W! x
2、用于练习的视频和图片文件
0 {1 h4 q3 S* ?' `+ l6 DHD视频:) J. A: B- t, ?1 g
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq! f2 T2 D* [: ~, ~/ X$ E
4K视频和图片:! k( M7 m3 K' k+ O ^6 `7 J
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
- E0 q* l7 S y3 c# Z l/ M) N& p+ M$ g项目demo脚本介绍:' j' T1 g" d7 y! T& O \
inference_images.py:用于图片中的背景替换,用法如下:
* n: K9 P" I0 v3 M& q" rpython inference_images.py
# Q, z6 p1 r1 m6 u2 ?* _--model-type mattingrefine
# r3 X- ]; F; j: ^--model-backbone resnet50
, L: {9 E8 Q! U" w+ i--model-backbone-scale 0.25
6 r2 _ s) \7 R1 W- `--model-refine-mode sampling2 ^9 ?2 h7 Z6 y
--model-refine-sample-pixels 80000
# [! h& W) A7 Y( _/ ]--model-checkpoint "PATH_TO_CHECKPOINT"( j6 {" d6 _7 w2 X# ]3 c; A, u( _5 @& P
--images-src "PATH_TO_IMAGES_SRC_DIR"- A. O- e( m0 Y* x' p0 i& [
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
7 ]: {) I W' W4 `3 ^--output-dir "PATH_TO_OUTPUT_DIR"2 R% m( Y* X/ V" a/ a3 Q _( W
--output-type com fgr pha
' f! C) m8 U6 jinference_video.py: 用于视频中的背景替换,用法如下: p, K9 T! [$ e1 e O
python inference_video.py `1 `. r+ X. p Z) O* ]" o( _
--model-type mattingrefine
: k& g7 J Z L) H--model-backbone resnet50 - G) r! Q- H6 n, b! }
--model-backbone-scale 0.25 ; b2 l& j: r( S+ X
--model-refine-mode sampling
9 F8 ^, d* E! r% M+ W--model-refine-sample-pixels 80000
4 P% P# w' c0 b6 c+ Y6 x--model-checkpoint "PATH_TO_CHECKPOINT" 2 b$ `/ o2 B6 P [( g7 @& c. W$ d
--video-src "PATH_TO_VIDEO_SRC" $ a8 b& X' g# G; O( F& _; C
--video-bgr "PATH_TO_VIDEO_BGR"
. |" b5 n. p2 z3 t5 I# W1 l--video-resize 1920 1080 & P- [$ i' Y. ]* y: x
--output-dir "PATH_TO_OUTPUT_DIR" % Z ?, D" x5 o- g5 I
--output-type com fgr pha err ref
( P8 B1 @1 e' Z0 Q) p# k/ kinference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:, r# \; |! O: H
python inference_webcam.py - k- y4 t9 {. a/ q
--model-type mattingrefine
( D9 D: y* a% t @6 l--model-backbone resnet50 0 R$ `" |2 Z1 V; ?
--model-checkpoint "PATH_TO_CHECKPOINT"
8 i' ~& w; I- u' f& \; d--resolution 1280 7202 ~( y4 L0 i, t7 l1 h$ G
虚拟摄像机+ `/ Y2 h0 T X; c3 l$ i) E7 A
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
- f6 g. \7 M; B5 B& q6 [https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux6 O* P" h( c+ `% D- [" [ d
在Google Colab上体验' l: L7 y8 C( ] \& G0 \
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。6 P( F' h# G& W! N6 l }# a
1、图片背景替换体验地址:
# k/ \1 u- c- b) {6 vhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
/ K# m& Q7 N( F& U2、视频背景替换体验地址:) H7 u! e* K, h# C/ F
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
$ c, J# o0 v0 m; ^. w+ `附上开发者提供的项目演示视频:
# L3 i& P* }, i" a$ {: y% e1 W {# @+ D
|
|