|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
5 ^- _4 h& c5 n9 E
; y& _$ O C2 l! I/ m/ _, q
项目源码地址:* [4 D3 E b4 K5 b% i
https://github.com/PeterL1n/BackgroundMattingV22 [2 x7 c8 \: e9 Q0 E# i+ E( i
项目依赖库:. {7 o; L/ ` Z5 P" Q! l- U
kornia==0.4.1: @) `: _2 ~# h2 M
tensorboard==2.3.0: ^! J H3 u# p: `3 B5 [
torchvision==0.8.1
6 Y1 ^; v: Y* x) t7 G tqdm==4.51.0
- L* a# g3 W/ E% B opencv-python==4.4.0.44 n5 G1 z! a6 l* t9 B
onnxruntime==1.6.0$ z* z" E7 a. M% R9 n+ `2 ]. h
开发者提供的一些文件资源(国内需木弟子):5 D! p; Y7 E4 a0 L T9 i5 W3 l* D
1、下载模型/权重文件& ]$ i3 J8 I2 X/ W' s" W
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
) p! S! X* }1 p/ q8 r0 g& T2、用于练习的视频和图片文件; B! W% n& Q6 k$ U/ U$ P; R" d3 v
HD视频:1 u3 E2 E1 A) J- m
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
& b* I: Z$ `: ]' j( U4K视频和图片:
! b7 d! Z- }- H3 u }$ ~4 d! r- P& bhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
/ N# n/ x) Z5 z! m项目demo脚本介绍:
9 F7 r' b$ v5 n }1 _3 Yinference_images.py:用于图片中的背景替换,用法如下:
4 z* Q% S% o% upython inference_images.py
( R- p! t2 a, G2 g7 [--model-type mattingrefine
- p5 o) D# t$ ~- k, `--model-backbone resnet50# f% T0 l: z- ~4 K/ m3 F4 A9 e
--model-backbone-scale 0.25' N0 }, Y3 M% J/ w( C0 ^0 z, w
--model-refine-mode sampling
1 u, |3 i0 x4 ]$ V: p- g. b--model-refine-sample-pixels 800004 _' O1 g5 W& X8 N; P
--model-checkpoint "PATH_TO_CHECKPOINT"/ s. M5 ?: C! [6 L% D0 w
--images-src "PATH_TO_IMAGES_SRC_DIR" f7 U( u7 G8 D- `& X0 `
--images-bgr "PATH_TO_IMAGES_BGR_DIR"' x& W$ O& L9 i; q0 X, Q6 B7 R/ P4 V* s
--output-dir "PATH_TO_OUTPUT_DIR"' p0 O) C6 c0 K% u6 B) Y; `, O
--output-type com fgr pha! l" S2 y$ O# k4 E, D* p
inference_video.py: 用于视频中的背景替换,用法如下:9 g' W* o* u- f3 z
python inference_video.py
0 d% p2 z; V- s$ }) ~+ @--model-type mattingrefine # q U Z7 f& G1 L" r4 t
--model-backbone resnet50
8 g3 x- E/ m5 x+ N* b8 X8 O--model-backbone-scale 0.25
2 b0 I7 l1 A. c9 j7 u--model-refine-mode sampling
) V) w; Y, K7 G% E--model-refine-sample-pixels 80000
- a" h# H8 U2 |3 J! r--model-checkpoint "PATH_TO_CHECKPOINT"
2 R8 Z! `4 W0 a7 z) I, O" I--video-src "PATH_TO_VIDEO_SRC"
. C- b; j' l! `% |, O% H--video-bgr "PATH_TO_VIDEO_BGR"
6 D, N/ l' Q1 k0 J* o; r$ q--video-resize 1920 1080
+ b' Q' f' o3 w# o) R; l--output-dir "PATH_TO_OUTPUT_DIR" ! O, f8 h9 C; W4 D, |
--output-type com fgr pha err ref
$ H; T/ A* z4 J% G, C7 Yinference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:$ n% A3 F* {3 m# g8 `
python inference_webcam.py 1 G, T$ H0 ]7 O' P2 F/ S
--model-type mattingrefine . [" c& _# `% z* R& E
--model-backbone resnet50 + o9 g/ c/ A$ y! U' [4 [7 a# H
--model-checkpoint "PATH_TO_CHECKPOINT"
/ [4 S& [6 K7 F, {--resolution 1280 720
' w$ l S" Y' Y虚拟摄像机: o4 I/ u" h7 x; f
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
' w/ g9 ?& M; u1 g2 d0 Bhttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
- G' s x5 J2 b, N' d, b在Google Colab上体验1 I( P! U% k" q3 n
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
+ y, e9 E4 c7 B& X3 I5 G t! Q1、图片背景替换体验地址:1 s, U+ u; v; S3 a6 j8 \
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
* a7 m" J3 b& |: ?( c( ~* M0 ^5 |/ x2、视频背景替换体验地址:( f2 a/ N9 `; P O" e# O
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing1 Y2 f$ ^, N- f
附上开发者提供的项目演示视频:. Q7 l0 B9 m& g' X3 P: e9 n
" I6 c1 M5 t- \" }0 |6 ?4 N! y/ ~ |
|