|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
5 t# a0 X6 v( g: G# w
% ^2 f# _4 ]$ o) g2 G项目源码地址:& B! J& `# a0 N; h; k
https://github.com/PeterL1n/BackgroundMattingV2' t5 O' P, h5 t6 d4 W9 L
项目依赖库:' T2 v5 ]# [$ P* `
kornia==0.4.1
* S! u1 M: I# g tensorboard==2.3.0
3 n, X _- b. b" W3 x3 J torchvision==0.8.1
3 { Z: i* ]: r1 P0 W& c tqdm==4.51.0
B( M' ~- e* t1 p c h: p! E4 N opencv-python==4.4.0.441 g% x8 |9 Q; E( j: z
onnxruntime==1.6.0
. ] S! w7 O/ R开发者提供的一些文件资源(国内需木弟子):
0 N; \# E- ~, T9 o1、下载模型/权重文件
; s+ B6 B8 @- l2 V8 w, ^1 Chttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
5 Q# e3 w8 w# {) X% _2、用于练习的视频和图片文件- t4 _- l" f. p" e
HD视频:8 N& b7 n% p7 |
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq& Q+ ~" e# c+ H1 I3 H+ S
4K视频和图片:* p4 X! y3 ?9 {( H
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
$ R( c4 [, S! Y, P g' o/ d! K: U项目demo脚本介绍:
* S3 ^6 H G* D: v4 pinference_images.py:用于图片中的背景替换,用法如下:; ^4 O( }7 b8 C, j) |4 g+ [# \' u
python inference_images.py( Z) n* D. |/ E1 n3 B
--model-type mattingrefine5 r& n5 u0 P7 Z: u+ G K* Z+ T
--model-backbone resnet50# @% j, ]+ H- P0 i4 X
--model-backbone-scale 0.25# J8 ]7 t L4 j1 \
--model-refine-mode sampling6 _) C4 ?% ]' ~! n4 m; A% B
--model-refine-sample-pixels 80000. M# S' E* I; X; @% d
--model-checkpoint "PATH_TO_CHECKPOINT"
# O& \) E1 U& J--images-src "PATH_TO_IMAGES_SRC_DIR") I. C# v u; s, w. N; A
--images-bgr "PATH_TO_IMAGES_BGR_DIR"0 E7 J0 X2 S, ?6 d& J* h3 \$ N
--output-dir "PATH_TO_OUTPUT_DIR"" @5 J- d4 U5 n" h
--output-type com fgr pha/ o Q& H0 B0 n- K
inference_video.py: 用于视频中的背景替换,用法如下:
, K t) l! f% x2 h3 k4 Y3 A* G0 Opython inference_video.py
* l% u) p5 P* K- [. J B--model-type mattingrefine % k2 }0 o, z( t; o' h; T2 P
--model-backbone resnet50 ; i8 p9 |' q! N7 a9 H; u
--model-backbone-scale 0.25 * ^# q0 Q: a. |: S. } R
--model-refine-mode sampling
& C# S% w, s6 y! U) J6 n--model-refine-sample-pixels 80000 3 h3 {: i/ d n% @. Y% n( y/ O8 m
--model-checkpoint "PATH_TO_CHECKPOINT"
: h) V- \5 H: i: p--video-src "PATH_TO_VIDEO_SRC" , c8 J$ o/ R: j! g- } \
--video-bgr "PATH_TO_VIDEO_BGR" 4 I2 _6 m2 Q$ s, s$ o% a5 }
--video-resize 1920 1080
7 b/ G. E7 ]) F: ]' I--output-dir "PATH_TO_OUTPUT_DIR"
* J8 s8 Y n4 p! E0 v" L--output-type com fgr pha err ref5 R4 L0 b4 E9 x+ r3 Y6 c4 b T
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
' W9 Q3 Y! n/ U) [( I; J4 U2 H: Fpython inference_webcam.py
- q; ?& v9 u& r* h( r0 `--model-type mattingrefine
& r" \& V* t8 ^ g) V--model-backbone resnet50
( q. ^6 S \) t' ` H--model-checkpoint "PATH_TO_CHECKPOINT" % G8 i* }* [% Z
--resolution 1280 720; _/ q$ X% M1 X+ i' S6 K
虚拟摄像机
8 _- U4 @. q! `; Q/ }4 U5 d* T 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:+ g( }3 Y U1 H6 R
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux ?" g i4 [: r0 W6 S
在Google Colab上体验: V1 Q' Z" p9 X; u- ^& y3 N% i% {% b! c8 q
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。4 H% V L. f( t% B2 v% f! }" j
1、图片背景替换体验地址:
# q( U, Y" C8 |% K+ Y& Khttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
- t z* P, ^% m% P/ A: ?2、视频背景替换体验地址:4 \3 Z4 I3 O2 ?* C- J& L% M4 _
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
% s) u6 p# h& ?- G; |. p附上开发者提供的项目演示视频:
7 A9 I1 e4 i; g" X" [0 v9 ~! _. ?$ V$ m
|
|