|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
& \3 @8 r5 h& e% q; W1 t' X4 \" `
" A, v M5 E' O# G项目源码地址:, H# H1 y7 D- Y+ k
https://github.com/PeterL1n/BackgroundMattingV2 j- a/ n; @: `5 L" P
项目依赖库:% G2 g/ q* C8 i$ `
kornia==0.4.16 G$ c+ C' C) Z" ?2 S, I2 X
tensorboard==2.3.0
6 a- G* S" ?! C9 A5 m; w1 \" p torchvision==0.8.1
7 P/ v! c4 Y. j0 Y tqdm==4.51.0
2 G% f: V3 F3 Y, p c/ P opencv-python==4.4.0.444 Q7 h2 [; K7 C$ U0 \7 n
onnxruntime==1.6.0
. b2 c- e7 ]: p4 F7 G9 v2 N开发者提供的一些文件资源(国内需木弟子):" x2 V! K+ M/ b0 x; X) ]
1、下载模型/权重文件
! ~5 I& B) H, b0 Mhttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing: p1 R- J0 p& U) }- i: c4 v8 e
2、用于练习的视频和图片文件& V0 J5 _$ z% |3 ?. w$ Y. u! ]
HD视频:( {% F5 q! x0 N/ `
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq- o" i) M: k( G4 G K$ f
4K视频和图片:
5 `8 `) C7 L/ G2 | Z W* M6 s; lhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
% R7 o$ L4 B8 P/ x% f) Q4 ?项目demo脚本介绍:# z" z, H6 G! L# A5 Z b0 w0 L+ `
inference_images.py:用于图片中的背景替换,用法如下:0 [. y% U* _7 [1 i
python inference_images.py( E8 U+ W4 N' @# C
--model-type mattingrefine
( s9 K' m* E7 t" r--model-backbone resnet50( d) o$ i, U R2 W
--model-backbone-scale 0.25: t7 w+ p0 l0 a# `( S% }% Z
--model-refine-mode sampling" t1 h" O# \% F. Z
--model-refine-sample-pixels 80000 ]; ?4 t/ M, n
--model-checkpoint "PATH_TO_CHECKPOINT"
3 @( p( A$ q) A, c, m--images-src "PATH_TO_IMAGES_SRC_DIR"9 X! E* C5 k7 q% x0 H# n) U
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
+ S' b, J% ~& h/ ^5 R& Q--output-dir "PATH_TO_OUTPUT_DIR"
% l" p9 e/ E% A! I. S. M2 ~--output-type com fgr pha
9 |$ \ I! x/ [8 A6 h+ S4 d4 Einference_video.py: 用于视频中的背景替换,用法如下:
, s; ^- X6 j J% ]6 M- M& ^1 r' ~python inference_video.py
) T5 ]8 t" |' T7 j$ l8 y--model-type mattingrefine
9 s& E$ Z) V. b+ V: F: j F--model-backbone resnet50 : c3 X2 G! o$ Q9 H
--model-backbone-scale 0.25
0 Y( F1 x) o* G% a: ^' T+ o- M--model-refine-mode sampling r* J2 P+ A6 [5 v! o1 {# V
--model-refine-sample-pixels 80000 . l, j& K8 L2 S& p# ^
--model-checkpoint "PATH_TO_CHECKPOINT"
" e& h( M _1 X) z$ Q5 Q, S--video-src "PATH_TO_VIDEO_SRC" * `% J+ P) v4 J$ w& [& ?' O# {
--video-bgr "PATH_TO_VIDEO_BGR" , \" ?+ T" v* f j6 `" {
--video-resize 1920 1080
; c7 Y8 M8 l* `9 l; [! U o--output-dir "PATH_TO_OUTPUT_DIR" ( v9 Y4 j4 T: e2 m9 W
--output-type com fgr pha err ref5 K' o7 J8 Y$ _3 O
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
; P: f, M. |3 |& kpython inference_webcam.py . n+ ?8 W6 Q: j2 t8 ^
--model-type mattingrefine 5 z x8 J& ^- J0 U+ K
--model-backbone resnet50
0 P- |% M) O3 w( l" Q--model-checkpoint "PATH_TO_CHECKPOINT"
; m5 ^6 `# {9 T9 J--resolution 1280 720
! a; @" m! M" {! [: ^2 D2 G虚拟摄像机
/ ]7 f$ _; @: h' ]: L% F0 ] 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:2 U* `+ j5 H9 R% l6 H5 k6 ^
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
" o0 v' _) V O3 n在Google Colab上体验; B4 P X8 g% l$ M ?
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
+ s! S" I8 ^" Q1 K3 h3 j) C1、图片背景替换体验地址:8 P) W! @- C8 B
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
l2 `1 P0 j3 |0 ^2、视频背景替换体验地址:
( A# [0 k3 z. J2 Q; B Bhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing4 L: N8 r* R' `; m" a9 W
附上开发者提供的项目演示视频:
5 \1 v6 x1 l' {( N
/ m$ h S+ Y3 G# t! C; ] |
|