|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。; ^' ]! {4 H: S h
0 k( w$ b' F8 `' c
项目源码地址:
2 a4 ~* R0 j/ u. r; x& Z& _https://github.com/PeterL1n/BackgroundMattingV2! g% Y9 d3 H L, |9 n4 C1 x; \
项目依赖库:
" y" J9 i# |! h! s& t2 q3 z kornia==0.4.1; }% f* A, `" o
tensorboard==2.3.0
3 }( ^% H: [2 b torchvision==0.8.1
9 J9 V5 e. o" l1 _' l tqdm==4.51.0: o* k7 \% J2 S Y; `
opencv-python==4.4.0.44 z n% Y# o) n8 T
onnxruntime==1.6.0
# n4 I! ^) \4 x% d开发者提供的一些文件资源(国内需木弟子):3 Z) ^( @2 s3 F
1、下载模型/权重文件- \ ]* |! M% w D) W. `7 A
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
) N; c& `/ O$ w7 v9 L2、用于练习的视频和图片文件
) z G3 u4 A5 t8 F) A' oHD视频:
/ O/ Y" S% _4 m: L, R9 Bhttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq( b8 L% }8 W7 b8 M1 c8 b* N
4K视频和图片:, ?" K, q" h/ m
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
0 i5 d* u! i8 P3 o0 f$ D项目demo脚本介绍:
# { T7 e& D: o% k0 l+ Linference_images.py:用于图片中的背景替换,用法如下:
/ Z j. \0 s1 r# B3 Qpython inference_images.py
& G l) J0 N5 f$ S e--model-type mattingrefine
; o+ L/ y3 I' s+ l% g( b. p--model-backbone resnet50: }$ y! @9 d7 r
--model-backbone-scale 0.25
& y9 r8 u R7 v--model-refine-mode sampling
7 j$ F5 m% R" x+ E9 B) T--model-refine-sample-pixels 80000
+ F q5 j8 B3 `$ Y--model-checkpoint "PATH_TO_CHECKPOINT"
_' D- u/ M9 f$ y9 I- J# T--images-src "PATH_TO_IMAGES_SRC_DIR" X; R5 q; G R( h% I
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
3 Y! Z: ]* i z% z) ]8 J' r1 U$ F--output-dir "PATH_TO_OUTPUT_DIR"
9 I' v3 A) s. j( q7 @# Y--output-type com fgr pha
& @$ f/ S7 V. w; E! a+ [1 P* h% uinference_video.py: 用于视频中的背景替换,用法如下:& `4 }4 f# v- k
python inference_video.py 4 t* }4 b, \' z
--model-type mattingrefine * X6 o1 P0 T7 p
--model-backbone resnet50
K" v1 j& g9 N' R- a--model-backbone-scale 0.25 : M' d7 s/ h+ z
--model-refine-mode sampling
( {: a) J1 V/ R9 V1 z: G--model-refine-sample-pixels 80000
) ?2 y2 U( g7 C, G--model-checkpoint "PATH_TO_CHECKPOINT"
0 @; I- R9 m- N--video-src "PATH_TO_VIDEO_SRC"
1 O( c. T, |4 N6 i--video-bgr "PATH_TO_VIDEO_BGR" 4 w* D9 x# ~" ~1 N. @; A
--video-resize 1920 1080
- G8 X3 z# x- I2 }5 t. B--output-dir "PATH_TO_OUTPUT_DIR"
1 ~& b( O& j$ k& v# L& F/ Z: y--output-type com fgr pha err ref
$ v5 m9 y& [2 ^6 q8 C3 [inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:) Q9 M4 }; I" ?" M) D
python inference_webcam.py 2 F) a0 Y {( A0 [% ]
--model-type mattingrefine
8 K! i$ i4 X+ r3 n8 n* m% B2 w( |--model-backbone resnet50 ! M6 C! r8 V( k" e% G1 i5 Y
--model-checkpoint "PATH_TO_CHECKPOINT"
) \1 I$ ]1 F. w7 b--resolution 1280 7207 R! B* n. z) `( J) p' ~# n' c. l
虚拟摄像机/ H8 p8 v0 b, y) j, Q
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
% N2 b2 L3 ~- x% O7 p. `+ Uhttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
4 _* U( t, v E2 ?( S5 |1 o在Google Colab上体验
1 X3 N; ?- w& e- ]6 I0 n# w 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
: _# R- i" M. P: w1、图片背景替换体验地址:* V3 U; N) j( X* C* ?
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
6 x J4 \3 l7 C I2、视频背景替换体验地址:1 E) }! @9 y$ j1 w( z
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing. X! E) ?6 l4 o3 U* I# V
附上开发者提供的项目演示视频:. P6 j r0 `( E. D) t3 ?4 w# X
: b) m$ ~0 x9 H, d, z
|
|