|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。; z8 X2 s: \+ T/ q% u3 I6 E
+ R1 O; C4 E6 q项目源码地址:
5 C7 F+ B& T% w1 }: Zhttps://github.com/PeterL1n/BackgroundMattingV20 u4 ]% O3 `9 N# P; g6 X- w0 L
项目依赖库:: q! ?. v$ U, P, T. t) B* i
kornia==0.4.1
: G8 O" l5 N" C9 L- F tensorboard==2.3.0 l9 O3 ]' P: u2 U9 s5 Q
torchvision==0.8.17 x6 s! q1 n7 d( P- R. [. j2 [
tqdm==4.51.06 d) z4 U! ~8 V i/ k6 {2 t! ]
opencv-python==4.4.0.44! i1 G2 F5 I& r; |) `# y
onnxruntime==1.6.0& U Y5 p, s- Z: a
开发者提供的一些文件资源(国内需木弟子):
3 ~# Z( E, k8 b5 X& c. _* `1、下载模型/权重文件* W. P/ l; l% q# ` a. X% `
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing, _, R8 k& l1 C5 ]2 }5 }/ m; w
2、用于练习的视频和图片文件
4 i: I( M1 {/ l SHD视频:
% P/ K/ u" L# A7 Q4 fhttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
: Q$ X4 R( P8 x, [; T8 K, Y4K视频和图片:
: y* x: j1 V3 ?, \' x2 N% o% vhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
4 R/ ?5 W& ^! ^3 h项目demo脚本介绍:- l; L" @+ j( T% o" j6 [+ N
inference_images.py:用于图片中的背景替换,用法如下:3 h- ]+ F; D$ N- X8 e3 A
python inference_images.py. ^6 X0 C, W' O4 ^) E+ e+ o
--model-type mattingrefine# b: I3 q. }+ {) a# ?
--model-backbone resnet50
. ]9 }! s9 k- Q. o( c W3 x: o# j--model-backbone-scale 0.25( h2 s3 H8 L$ T& {, Q# y5 |% ^
--model-refine-mode sampling2 \$ k- \* L+ Y( X2 h/ w
--model-refine-sample-pixels 80000
& i' Y# w* t+ }/ o1 {8 t--model-checkpoint "PATH_TO_CHECKPOINT"7 ~% ]1 H3 j2 w3 z
--images-src "PATH_TO_IMAGES_SRC_DIR"4 L8 k1 ]' |% Y) n
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
9 |( f5 O* R' e/ F/ r--output-dir "PATH_TO_OUTPUT_DIR"$ I r( s, {9 ?
--output-type com fgr pha4 G+ d) g5 ~- k$ t' T0 ~* o
inference_video.py: 用于视频中的背景替换,用法如下:
3 d% V x- _( {$ f0 b, z, ]9 lpython inference_video.py
/ Q7 B/ t3 t& C--model-type mattingrefine . z; E" A* h) h1 Q
--model-backbone resnet50 5 |5 N7 ]. K" w' h/ d- X
--model-backbone-scale 0.25 / J1 e4 X! A3 U4 u3 G) z
--model-refine-mode sampling 8 J9 p' i ^4 V
--model-refine-sample-pixels 80000
x1 P) _8 C3 S a1 P--model-checkpoint "PATH_TO_CHECKPOINT"
" F# ^ T/ f* n+ P) w1 K, z--video-src "PATH_TO_VIDEO_SRC" 5 D6 K8 o7 p z: W& n. N8 Z4 H
--video-bgr "PATH_TO_VIDEO_BGR" $ _8 y* D* U# ]7 e1 V
--video-resize 1920 1080
' n* _' D. G7 S, O--output-dir "PATH_TO_OUTPUT_DIR"
8 L9 Y5 `% V7 H2 p7 l, \5 |, n, K--output-type com fgr pha err ref4 O. S0 D5 X/ r% m
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下: p5 g3 `6 i9 [
python inference_webcam.py
8 f, R! w" ~4 k& f--model-type mattingrefine
! Z% x' w2 ~+ n3 v+ Y) w, x; Z4 B--model-backbone resnet50
. p# ~! C! C: ?: ?$ J v--model-checkpoint "PATH_TO_CHECKPOINT"
; c o2 w. C0 Q! G) p--resolution 1280 720
/ \6 F$ o! ^3 q/ i4 u9 y3 H' a5 K虚拟摄像机
M4 F% S9 V4 W, j: T; ~% A4 v 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:; h" [ L3 C0 S2 C$ k
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
- E2 _# j) C% }3 s4 k( O! V在Google Colab上体验
: \: Y, m% V( S9 k0 h 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。! @1 V. [9 P% c) T4 p
1、图片背景替换体验地址:* O$ Q( \3 z6 z$ G" z4 B/ H
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
* h3 K, k, V! S3 i2 N% w y2、视频背景替换体验地址:
% Y" _7 h; A/ v8 _; thttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
# P# Z6 g2 P1 W# w) J附上开发者提供的项目演示视频:1 s$ I7 C4 K p3 c5 ^
d- J" t$ w; x9 t |
|