|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。! Q$ c+ n: Y/ K2 S
7 T; C9 [# z$ r) I" a# z+ \) D9 |9 N
项目源码地址:- P7 N% R! R5 k3 L$ s3 Z' t
https://github.com/PeterL1n/BackgroundMattingV2
( h$ b, x# Y$ s6 e" S; k8 F项目依赖库:
$ f; Z1 b4 E3 a! ~ kornia==0.4.15 y) A+ B b" I+ v# Q
tensorboard==2.3.0
1 b! D; v. q) u3 a9 B; Q torchvision==0.8.1
4 G0 Y9 M9 L6 n; r& f/ H; `( z5 a6 E( d tqdm==4.51.02 d% m2 w6 J0 X. S: B) D- s5 ?! U
opencv-python==4.4.0.44* e5 F S2 i% _4 o7 e9 A
onnxruntime==1.6.0
6 b/ P: j- o1 R" ]* Q" y( @7 a开发者提供的一些文件资源(国内需木弟子):
) g# J# b3 C9 `4 t1、下载模型/权重文件
) t; i- S8 y' M7 Shttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
% C/ J* T$ |" I, L. X2、用于练习的视频和图片文件) O1 C7 W- i% g( M6 Q
HD视频:
8 J( o O% A& Vhttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq! W! Z7 n6 t4 d, I$ t
4K视频和图片:
8 j$ m" l: j" H R4 N8 zhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
' v& Z% d' I [2 `项目demo脚本介绍: n' o6 p2 e J7 D- R
inference_images.py:用于图片中的背景替换,用法如下:
" G; P" {/ T0 @) ^1 \& d+ {python inference_images.py+ o( E: C. w7 M+ l6 ]# D4 L1 |4 l
--model-type mattingrefine1 P* R' i- ], i. M
--model-backbone resnet50
" |5 I$ U9 L1 i$ G--model-backbone-scale 0.254 i: r- u9 }$ e# r0 K8 _; U
--model-refine-mode sampling# `$ @9 V5 g. d- _8 K1 D t4 R4 s
--model-refine-sample-pixels 80000
" Y" B/ ]- ^2 L: b* N4 w--model-checkpoint "PATH_TO_CHECKPOINT"
) `( F3 H- `: l& _4 v7 B6 t7 Z--images-src "PATH_TO_IMAGES_SRC_DIR"
6 D& p8 I7 @& `/ ^--images-bgr "PATH_TO_IMAGES_BGR_DIR"
5 a/ _9 V9 V% u3 `& y& p- w--output-dir "PATH_TO_OUTPUT_DIR"9 H7 I$ h$ A# Y0 }( o
--output-type com fgr pha( R$ o/ i" C; p( h! [, @' `
inference_video.py: 用于视频中的背景替换,用法如下:' P! W, }9 O! Q+ v" N; z4 p) y
python inference_video.py 1 J( s. f0 K- c& Q R5 @' _
--model-type mattingrefine : M* F; t& ^* X1 P
--model-backbone resnet50 7 Z4 X4 d9 S V4 M$ J" w
--model-backbone-scale 0.25
: [+ k+ f1 q7 p& d% Q--model-refine-mode sampling
$ P4 D7 V/ f. N--model-refine-sample-pixels 80000
1 C/ H! t( r5 s( C# c: M--model-checkpoint "PATH_TO_CHECKPOINT"
9 ]6 M0 \; z) J9 P/ K--video-src "PATH_TO_VIDEO_SRC" 5 I" ]. J3 I6 y
--video-bgr "PATH_TO_VIDEO_BGR" , c2 _* ^, ^& B* \3 R1 g; g. Q1 b
--video-resize 1920 1080
- W$ ?2 l5 k) {; f: i--output-dir "PATH_TO_OUTPUT_DIR"
7 B3 W( d( ?6 M: M" a* ]3 f--output-type com fgr pha err ref4 w6 N, k$ s; Q2 E& ?0 M* m
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:# @: m! J+ N( h% l( Y
python inference_webcam.py 7 C1 s+ i& e8 x4 k4 h3 H! ~
--model-type mattingrefine
- n8 i) P5 {% J5 e' K--model-backbone resnet50 7 \: m* M4 {: b3 [ X. M9 m Z' C& G
--model-checkpoint "PATH_TO_CHECKPOINT" ( {, W, D$ v/ o5 U" [- B) F: D7 |+ C
--resolution 1280 720) {( A6 V, _( R! g, V
虚拟摄像机7 _1 p k$ [/ ]% {, h3 _ B' y: e0 N; L
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:$ O6 F6 f: ~. \# {/ Y$ |
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
' o; q0 {7 O/ ^在Google Colab上体验: W7 z3 e. B! j$ U, E
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。. }2 b1 f3 q: V) @; R+ @& C
1、图片背景替换体验地址:
# X$ _0 o$ B3 G# d1 Fhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing8 ?0 N, ?" u$ n: ` ~ q
2、视频背景替换体验地址:
8 x2 z* m2 T5 X( G) C& Mhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
, H8 W% A. i% x! e附上开发者提供的项目演示视频:) y/ D" h; [% n; x6 O
+ q" q+ E+ ]; V. o6 C1 d& c |
|