|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。5 i" w) q9 }. m7 Q9 |
4 }6 T+ V8 [2 @1 F; s项目源码地址:0 Y# Y, z# H( h9 O
https://github.com/PeterL1n/BackgroundMattingV2
0 o& ]1 O" r n& l3 [- k项目依赖库:
" X, y. W, A* ` kornia==0.4.1
% Q5 \) S [* V% \/ T8 W tensorboard==2.3.0" n w8 `& s/ G, A
torchvision==0.8.1
7 d4 ~( D x1 X( H+ t tqdm==4.51.0
) m3 T6 }* }; z1 ^+ n opencv-python==4.4.0.44
0 O/ F b% _8 y/ |" Y onnxruntime==1.6.0
4 {. H* B6 C4 Y" t }开发者提供的一些文件资源(国内需木弟子):- Q) f- M* X# s, x+ N& t9 Z
1、下载模型/权重文件
( {7 n1 \3 `( ^https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
2 D9 D7 o Z5 k4 X# \2、用于练习的视频和图片文件/ G' w) w( M5 k6 C- n
HD视频:& w# ]0 m E2 k* K( r
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
' @6 W# N+ @% v8 ?$ ^; J4K视频和图片:
- F& ^6 f5 o4 D. _* ihttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
j2 f% s% X- I# w5 y% i$ D项目demo脚本介绍:
4 M. @1 r3 a: |- s$ k) X3 o7 Qinference_images.py:用于图片中的背景替换,用法如下:
+ X) E- L9 P! ]1 ]8 u& gpython inference_images.py
9 Y% T( H; s2 V( Z/ [/ A" g. ^8 g2 {--model-type mattingrefine
. L3 y% b7 {" ]8 N9 P2 V& ?( r--model-backbone resnet50
# J4 n. m( W7 t0 X" k--model-backbone-scale 0.254 H2 p: N2 \9 R1 B2 N& d+ I* V
--model-refine-mode sampling+ h1 i3 L7 b) _% k4 O0 P: t, S
--model-refine-sample-pixels 80000. F- t3 |% ^! t+ u: N( d
--model-checkpoint "PATH_TO_CHECKPOINT"6 P6 S1 S7 O8 O, }
--images-src "PATH_TO_IMAGES_SRC_DIR"( _1 V5 D' r0 @! u/ X
--images-bgr "PATH_TO_IMAGES_BGR_DIR") t; g6 ^* V% N) ?- B& M
--output-dir "PATH_TO_OUTPUT_DIR"
+ X1 I* ]2 x6 `# w4 ?5 z--output-type com fgr pha
]" O* H( M i2 N; @& dinference_video.py: 用于视频中的背景替换,用法如下:. K, J W ]& i9 y6 Z) E4 h
python inference_video.py
# o1 q7 d2 V2 b2 ]& ^$ Z# Z9 E--model-type mattingrefine
" K s! ~, t( E2 Y--model-backbone resnet50 : m& ^% _ X! T3 z9 {
--model-backbone-scale 0.25
. y6 s2 D: b- S& j0 p--model-refine-mode sampling
/ C( m3 @4 l. D--model-refine-sample-pixels 80000 " g# v- r; p1 i: B
--model-checkpoint "PATH_TO_CHECKPOINT"
! }- o# o: y8 o6 w0 @--video-src "PATH_TO_VIDEO_SRC"
% Y) O9 ?9 p/ X. z2 m- U--video-bgr "PATH_TO_VIDEO_BGR" 1 ^: @9 f' I+ t, a" R4 K& Q
--video-resize 1920 1080 , B! Z- Z4 M( G! W) c/ r
--output-dir "PATH_TO_OUTPUT_DIR"
' X) @9 E5 w: ?. Z/ [) p6 B; M--output-type com fgr pha err ref6 I+ m( F: Q6 p: \$ N( A
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:% ]1 e7 S; g/ V, [4 N) s' X
python inference_webcam.py : B, B- S% p! D: {' e+ {
--model-type mattingrefine % f& J5 ~& T; s/ p: T
--model-backbone resnet50
0 ^# V0 F5 P& @/ b--model-checkpoint "PATH_TO_CHECKPOINT"
% Z. X' l! G- X; s* Z! S" W# N--resolution 1280 7207 s/ f% D7 ?6 M$ F3 O0 A+ X" R
虚拟摄像机2 o4 \3 _# _6 X* Z1 X" m
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
" y5 ]. L- `7 t+ whttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
) t0 z, ~- Y) ]% L8 V3 m' R在Google Colab上体验
4 x) B8 y0 o6 @2 }- D* h 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
9 Q1 e& O3 T' } d) }& a' L0 F6 o1、图片背景替换体验地址:# k, m! b" t+ ~: t) y/ U- p
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing- O, P# A* P R" q) @, f
2、视频背景替换体验地址:8 U( {" g$ s5 r m( ` [
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing7 k, Z* `& \% f1 p" T
附上开发者提供的项目演示视频:
" X0 V- D: p+ r, W8 H2 c7 n1 ~4 @4 ]0 K! d& D
|
|