|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。; T7 S! B W) C1 h
) j, v# D N a! ~/ H项目源码地址:1 g6 }; D7 I$ C7 f6 j, d3 y
https://github.com/PeterL1n/BackgroundMattingV2
; l* \) ^- v {0 z$ F项目依赖库:$ D- ]% `* {) z7 n' Z3 K- J
kornia==0.4.1
. ~) T M4 P, h2 w% y& Z tensorboard==2.3.0
( O Y D6 s7 o8 P- m2 L2 m0 W torchvision==0.8.1
) d4 k- p6 ^( k7 R tqdm==4.51.0
) m$ w" X" p" |+ ]5 y" Q* u opencv-python==4.4.0.44 D4 v/ y, w# Y0 M. G, p0 O- n' y% e
onnxruntime==1.6.0+ o+ a+ `# n0 ?6 a) _0 }
开发者提供的一些文件资源(国内需木弟子):& J2 E+ |) }: e" } ]" u
1、下载模型/权重文件& ~( F; G; |3 c5 f3 F2 N
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing7 N; V: f. x; D! |0 J6 P
2、用于练习的视频和图片文件# f6 X! T5 _, w$ c. M3 K, x
HD视频:
: W# N. f0 `" r+ Y% e# G+ M, N) Phttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
9 }8 k! b' [0 J4K视频和图片:1 p }9 E# K6 ~8 c2 h. ~# i. }
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
7 P. r2 q% B# T; Q项目demo脚本介绍:
& ^+ J, h% N3 k0 W! |; Sinference_images.py:用于图片中的背景替换,用法如下:
: S/ H8 Y- X! c) Jpython inference_images.py$ ?' a/ T0 n& k' E7 M' A6 w
--model-type mattingrefine
( Y: }4 V: O, Z0 I0 v3 P1 F7 M--model-backbone resnet50: s8 M$ X( B5 b
--model-backbone-scale 0.25
% ?: b7 @+ Z8 d+ R6 \" W( E* J3 n--model-refine-mode sampling
+ j% Q/ [9 T% e- z: ?--model-refine-sample-pixels 80000
0 M* X) V, e4 T1 e) {--model-checkpoint "PATH_TO_CHECKPOINT"3 v1 @, a0 x, I Z) P. s6 i, G6 m! k5 U1 Z
--images-src "PATH_TO_IMAGES_SRC_DIR") ~5 o" B2 U, A! `* B
--images-bgr "PATH_TO_IMAGES_BGR_DIR"2 W8 p0 b# i& P9 o% ^
--output-dir "PATH_TO_OUTPUT_DIR"7 r2 C8 f! X2 r% k% M
--output-type com fgr pha
! ?0 D& {' j3 O: linference_video.py: 用于视频中的背景替换,用法如下:: u* Y9 B1 T/ d
python inference_video.py
1 C* w4 J9 W+ H& m1 E0 [--model-type mattingrefine
+ Q$ z1 v: B3 u1 v7 b--model-backbone resnet50 ; n% g$ q* e% ~" @2 Z
--model-backbone-scale 0.25 7 [& t8 S& F: l; ~
--model-refine-mode sampling ; C& N, I3 ?5 l
--model-refine-sample-pixels 80000 8 `! u5 S2 C" \" x& Y
--model-checkpoint "PATH_TO_CHECKPOINT"
& p1 I* O J" h' r- `5 y--video-src "PATH_TO_VIDEO_SRC"
6 p" _% i: r4 C- u--video-bgr "PATH_TO_VIDEO_BGR"
) x4 k. x( ~# K8 m# [+ A, `( n @--video-resize 1920 1080 : I8 ]' P! h" C! `1 {0 ~
--output-dir "PATH_TO_OUTPUT_DIR"
4 [& W0 h2 B& J, p--output-type com fgr pha err ref1 r& ?% {4 C, H% c5 D
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:2 g5 @; _ X+ Q
python inference_webcam.py
5 ?: ~3 v" U! U! k) V( J; c--model-type mattingrefine , P* C1 @8 j/ c' P( Q' o
--model-backbone resnet50
e+ M- r* i2 r! g# E3 a) P--model-checkpoint "PATH_TO_CHECKPOINT" 9 R% K* K' p! u3 F
--resolution 1280 720
; V9 f% H! a2 n n5 g w" S! H1 q虚拟摄像机
5 X2 G) r& n, E9 Q 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:$ u" P0 J) a( ~0 ?
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux6 P+ I, Z3 i2 Z' H% U$ l
在Google Colab上体验 G/ A% c. k6 n; z) N* I
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
3 T A: d& M+ D9 y" d0 ~* d1、图片背景替换体验地址:
/ y8 k6 y7 N4 Z: V, ghttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
; R- @4 ^1 N- d* \8 S6 l# H3 g3 s2、视频背景替换体验地址:/ p. ?& d4 r0 b: l* E& i
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
/ f: s& ~# F: E" X# _附上开发者提供的项目演示视频:
9 u. f" [! @. X. j, e0 e
) a/ `' L \" o2 \+ p- v |
|