|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
! O% ]" ^5 E0 Y0 _
, ^( ^3 b5 p7 A
项目源码地址:
) e; t/ X8 n, z0 ]) bhttps://github.com/PeterL1n/BackgroundMattingV2' V m, G# V$ d
项目依赖库:5 Z8 Z+ s# U# e8 \" n& C6 v: a" Z+ I
kornia==0.4.1
5 y" |* h: j c! ~9 I tensorboard==2.3.0' N# `& q" O) ?5 c d. D0 _4 I% ] d( {
torchvision==0.8.1% H! G: b; y7 N
tqdm==4.51.0
( C. H) A7 R3 e5 x! g+ Y opencv-python==4.4.0.44* |2 N: ^1 C8 H/ M0 M- c
onnxruntime==1.6.0
9 @$ z% b1 \0 ~& {开发者提供的一些文件资源(国内需木弟子):0 h2 w' i1 X! ]: U
1、下载模型/权重文件
$ @- O& M( f) |5 i7 F& H% Shttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
! N2 a; Y" I7 r8 p5 \4 j2、用于练习的视频和图片文件
3 M. f1 Z% t$ U* R; \8 ~6 h U) H; EHD视频:1 A& n: Q. t. u b; }8 c
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
) g/ G, b3 t% B) ?4K视频和图片:
2 P6 j( Q' k O( z r) H/ r+ I& Whttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
. i: A+ i. H$ S1 T6 I项目demo脚本介绍:
3 P: G$ x* v% f, }* {, a- Einference_images.py:用于图片中的背景替换,用法如下: l! J8 B; N6 R. w( w2 f
python inference_images.py$ ~" }3 M6 M k) I, w
--model-type mattingrefine
" l x& j' Y! x/ j2 }4 `0 f6 ]--model-backbone resnet503 ]2 ~7 A. L, c0 P) P& e1 k+ z. Y
--model-backbone-scale 0.257 d! m6 l% Z/ n" ^
--model-refine-mode sampling
6 [: z4 z9 v: U" F' H--model-refine-sample-pixels 80000) r4 V' n' l4 p6 Y) ]
--model-checkpoint "PATH_TO_CHECKPOINT"# y _5 y" J3 ?% i. `$ e2 G
--images-src "PATH_TO_IMAGES_SRC_DIR"
+ R/ I8 B& ? c7 a- e3 f7 u--images-bgr "PATH_TO_IMAGES_BGR_DIR" ?9 \5 i K+ c" y& M5 q( P
--output-dir "PATH_TO_OUTPUT_DIR"
z4 O# G0 L# R2 E--output-type com fgr pha ~' h+ }$ l% f
inference_video.py: 用于视频中的背景替换,用法如下:5 V3 a9 [/ Y6 u6 V8 m
python inference_video.py u; Z& x( M2 f6 s: I
--model-type mattingrefine
7 [7 p! Z3 M( }9 k) D" {. ^1 `6 Y5 ~--model-backbone resnet50
$ ? v! k- @/ q. i# o--model-backbone-scale 0.25 " [0 n8 |3 r7 k U' ?( j
--model-refine-mode sampling
! F A k& S' ?, A# Z6 ?4 W1 j) {--model-refine-sample-pixels 80000
" W: k' _6 h3 v; b5 L: E7 s8 ~7 G--model-checkpoint "PATH_TO_CHECKPOINT" . U2 d- M2 Z5 p) {! y- s
--video-src "PATH_TO_VIDEO_SRC" , d `& W/ Y$ i" ^
--video-bgr "PATH_TO_VIDEO_BGR" : {4 E0 {7 q( `; \
--video-resize 1920 1080
9 _; \1 L" R; S+ K$ H6 @) m1 m--output-dir "PATH_TO_OUTPUT_DIR"
" x6 W& p4 D9 ?: k% K--output-type com fgr pha err ref8 ~+ ]) V& C7 I3 x! j/ d* s
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:+ E$ O7 _- I% O' c
python inference_webcam.py $ _& g/ Y9 D) B# L5 C
--model-type mattingrefine
1 N; L* b4 u' b0 W9 P; t3 r--model-backbone resnet50 0 ]7 m; b; ^# Z ~; U/ t8 S& A' Y" Z
--model-checkpoint "PATH_TO_CHECKPOINT" - u8 c7 J- ~+ ]
--resolution 1280 720# B$ ]% _* y! o0 H7 w' K+ A
虚拟摄像机
4 N+ G0 Z/ d: k1 @. P) G- i6 j 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
$ a# ?* ^/ ^0 ?: z* \% ^- n7 [https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
3 b; S0 Z, g, Z- w& d+ |在Google Colab上体验, D0 i$ s0 N, e" T
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。5 I% {3 V' D5 |+ j+ U
1、图片背景替换体验地址:
. x% s' ^4 U' U* J# j& y whttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing' S+ l* u/ X; W, p D5 L8 N
2、视频背景替换体验地址:% ?+ }6 d5 S" I, m: i
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
; g( s+ P4 _: k$ Q( V' i+ w) n附上开发者提供的项目演示视频:
: s8 J0 B" H+ ^: d
% z9 ?: |1 S- b3 a+ i+ x |
|