|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
8 S" a' }6 U, k4 A0 q
; Z, i8 w" R4 l, a* D
项目源码地址: s) k3 E% |6 G5 A7 r
https://github.com/PeterL1n/BackgroundMattingV2) ~; {1 `. ?9 k- T& ?& E: m
项目依赖库:, V7 x8 l" a; `. P/ ]7 Z" W7 J4 i
kornia==0.4.1
! ?; n+ n v/ n* B6 a tensorboard==2.3.0
5 T2 G+ k$ U' h3 N3 t torchvision==0.8.1
$ @, K7 x* E$ z B tqdm==4.51.0
1 a% @) T/ O Q8 G. E2 k. l opencv-python==4.4.0.441 o1 P7 A- d0 C, v5 G" i2 A7 ]
onnxruntime==1.6.0
+ U: p7 ~% R/ }8 d! L2 [/ O开发者提供的一些文件资源(国内需木弟子):
- t. Q" e4 w" v+ w+ L1、下载模型/权重文件
: c# V6 p' d$ E; F W* _0 P6 Qhttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing1 S. X2 N7 G) e; \2 v% e
2、用于练习的视频和图片文件; n! Z2 O; J! K# s
HD视频:$ _; B0 X2 u1 N. H% Z
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
9 i0 S' G3 b# H" k1 x$ M( ^4K视频和图片:$ X, i+ t' d7 d' A! G/ ^
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
: p- x( c; c6 N# L# L; m项目demo脚本介绍:
& _; x7 M+ w6 Hinference_images.py:用于图片中的背景替换,用法如下:7 I# }% z. v3 r d6 U( h0 o, H
python inference_images.py
3 q/ p$ v( s; o--model-type mattingrefine7 T! l; B! ~, X3 ?9 _) X; _
--model-backbone resnet50
# u4 I$ \5 Z% z; P$ B--model-backbone-scale 0.25
1 u; }! r% V8 r& N2 f! ~3 m--model-refine-mode sampling
6 j1 U2 k" h" k) x J" i--model-refine-sample-pixels 80000
4 |$ m4 b7 o) i3 X) y--model-checkpoint "PATH_TO_CHECKPOINT"* ^# q, Q p" b( w; X D( A# ~
--images-src "PATH_TO_IMAGES_SRC_DIR": C m& b% [; E& x3 r: x q
--images-bgr "PATH_TO_IMAGES_BGR_DIR"* j1 g1 H8 A* U9 {9 D1 Q Y# J; W3 [, T
--output-dir "PATH_TO_OUTPUT_DIR"
- ]1 w! x C9 W6 ~--output-type com fgr pha
7 i9 a/ |6 d% l) y7 d# j2 ^' Zinference_video.py: 用于视频中的背景替换,用法如下:
! g% a, w/ _7 \, M% Mpython inference_video.py 7 v6 J- A; |+ b( V0 q3 k" J# o
--model-type mattingrefine
7 K, e3 ~2 Q$ ?7 M--model-backbone resnet50
- ]6 Q8 @$ L2 m( v2 o2 J--model-backbone-scale 0.25 ( i! W1 n3 }. s; w% I3 @
--model-refine-mode sampling
; s2 B4 e) H9 c' A' o: c: S--model-refine-sample-pixels 80000
$ K+ R4 _& u, E; Z- t4 C; d9 G--model-checkpoint "PATH_TO_CHECKPOINT"
; {0 f9 ~( @, s# }. j--video-src "PATH_TO_VIDEO_SRC" ' k3 d' B# S$ r, m
--video-bgr "PATH_TO_VIDEO_BGR" 1 X# j( ^3 `" t
--video-resize 1920 1080
3 b9 t/ g0 [- X n1 b! @9 J--output-dir "PATH_TO_OUTPUT_DIR"
% c ?, i( o ~8 e) F# |--output-type com fgr pha err ref6 T& h# L# h' Q. A9 |
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:0 Y9 ^4 ~0 r& P0 e8 F0 N
python inference_webcam.py ! e& a2 ~5 b; k' w% ^; F& |
--model-type mattingrefine
8 E( {& U3 F1 e0 I3 G0 f2 d--model-backbone resnet50
2 X! q3 s0 p+ v) f8 V--model-checkpoint "PATH_TO_CHECKPOINT" + w) N0 c, T5 g
--resolution 1280 720
' W" M( \; ?) j5 _/ ~/ w- `& E& z虚拟摄像机
5 P3 C4 }% Q$ p% g. R( D) j: i 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:. A: q0 l, P& w. @4 [/ l$ N+ e
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
: z% M6 N; |' s* D- R" A; ^. w$ w4 O在Google Colab上体验
5 F! K" F; |, b 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
% c! }* U6 H6 w' i1、图片背景替换体验地址:
: \9 p$ W4 i2 O9 @0 }" l+ Khttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing5 Y+ t$ e/ U7 t* o1 e2 w
2、视频背景替换体验地址:
% r1 _, t: W% Y* _4 R1 ~https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
1 l+ \3 q! G* b附上开发者提供的项目演示视频:
0 W- S) q7 c; o ` k( F
, ^5 T# d6 ^. a( l; k |
|