|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。" c, C9 t8 Z; U' Z6 G' P
$ ^4 d0 z. E1 u: P6 f5 s
项目源码地址:& Q* G2 E2 U+ Z' ]3 v' N, z" g1 u2 @
https://github.com/PeterL1n/BackgroundMattingV2
Q- \: a1 x. _) L5 H. O& o项目依赖库:
4 c2 n& P! v. [7 Q1 E) S kornia==0.4.13 ~. h' Q3 v- {) h n8 [ F
tensorboard==2.3.0% Q! T: q( s+ _5 n; ?' Y) w7 P& R
torchvision==0.8.10 a( K" n* i% y i& W: i
tqdm==4.51.0, m3 a( B: X M7 f6 Q
opencv-python==4.4.0.44
5 _4 p1 c" x/ ~1 u( D4 A onnxruntime==1.6.09 }9 x0 a( D7 @% g3 p
开发者提供的一些文件资源(国内需木弟子):
( b- L) w9 S! s) A1、下载模型/权重文件
# J- i( A0 K6 [- S0 e* jhttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing$ x7 W' O9 Z" w x0 H
2、用于练习的视频和图片文件
8 R2 i% e. p: K! z6 S- lHD视频:, E/ C% Z f, f0 w2 ]
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
0 v% V+ v0 L3 c4 E0 k, k! |: k4K视频和图片:+ a3 H6 F& f6 A4 u! O
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
% _, @0 t( P F! Z项目demo脚本介绍:
8 t" U$ B3 J& g R2 n" _! Z4 H1 m- ainference_images.py:用于图片中的背景替换,用法如下:( D' [5 |: b- s9 p
python inference_images.py) u* D( {4 p' r M# ?3 ~
--model-type mattingrefine9 u1 r: p% I% k/ f
--model-backbone resnet50
* O+ q3 @+ |- o9 T--model-backbone-scale 0.25
: q5 D4 U/ q C# B9 S--model-refine-mode sampling: G, m4 ]$ r1 e0 D5 D5 v4 J' g# F
--model-refine-sample-pixels 800006 X0 L' ^9 `2 y+ J# @
--model-checkpoint "PATH_TO_CHECKPOINT"0 S _0 H% X3 G; W
--images-src "PATH_TO_IMAGES_SRC_DIR"
+ ?+ S0 s; { }1 y* E, ^# L--images-bgr "PATH_TO_IMAGES_BGR_DIR"1 Z) G2 {& ]7 M0 U. X/ L' O
--output-dir "PATH_TO_OUTPUT_DIR"% f! {9 Y4 a/ D+ W; U* y
--output-type com fgr pha) B; Y( }& D/ j6 W1 X# F
inference_video.py: 用于视频中的背景替换,用法如下:5 Z9 s- y9 C( g8 }4 u+ X7 U3 [
python inference_video.py , \ C- n( y( v/ e6 P- v
--model-type mattingrefine
/ O: y- _: g7 a1 I- ^--model-backbone resnet50
) q9 ~0 ]) X. U( x2 p$ i' T--model-backbone-scale 0.25 ; t7 @) Q# ?1 w" ~1 d/ n
--model-refine-mode sampling 6 P' W, T7 l/ r% h0 Q) ]
--model-refine-sample-pixels 80000 ! ?; F7 H0 [" Z2 K1 G' [' K
--model-checkpoint "PATH_TO_CHECKPOINT"
3 K6 y# q* r! }5 T0 H0 @--video-src "PATH_TO_VIDEO_SRC"
" K5 f2 ^/ y, w% B( n; M& m--video-bgr "PATH_TO_VIDEO_BGR"
! L E' K8 L( `, ]/ { r--video-resize 1920 1080 $ ~5 W0 T/ g# t: Q/ M& z0 |, n1 p
--output-dir "PATH_TO_OUTPUT_DIR" $ Q# _( Q) W7 c6 w6 K
--output-type com fgr pha err ref" N3 d" ^+ w M! }1 |# ]' v
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
* ]4 \. H' T4 g( i9 C) f0 npython inference_webcam.py 2 R5 `8 m6 t7 |0 {, c8 {
--model-type mattingrefine ; i" q$ \2 } Z1 V5 f9 ]/ p" j& k
--model-backbone resnet50 1 Z6 ]* F" M! s/ c
--model-checkpoint "PATH_TO_CHECKPOINT" 5 v) n" D& D/ M) v8 j+ S' ~
--resolution 1280 720
" h* J9 ^5 C% R+ A" l) ^5 c虚拟摄像机/ l% }1 t5 `- s
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:' L8 X4 P& A8 x8 `8 m
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux6 j: K$ ]" M/ f: m5 Q# f
在Google Colab上体验) E+ L) D* l, O) _( _$ T/ d
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。! c( Y% l4 n3 v5 f, ]+ E, w
1、图片背景替换体验地址:( M) N; {3 O& ?
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing: U; e+ F4 r4 M: r
2、视频背景替换体验地址:
9 A" a4 T3 z5 ?9 Q% xhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
' G- N E0 n# p( q3 H4 A- D附上开发者提供的项目演示视频:
. o# n( U- }8 r5 O4 h) ?+ S& q8 X7 D6 R% Z5 l7 V
|
|