|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。: s, C8 M1 w2 n4 P
, G7 Q% M! I4 p: ~* K, c% p4 V
项目源码地址:- e: o: Y3 y5 X4 D
https://github.com/PeterL1n/BackgroundMattingV2
5 C: j. W) C1 P. _- p项目依赖库:7 l4 j- b& N; m4 C* @+ v2 |
kornia==0.4.1/ @; t) C2 p: w9 q
tensorboard==2.3.0
* v" q/ ^0 o. Y( l& T& v3 V2 _3 J torchvision==0.8.1% l% e7 j, r( x) U1 R( P, H, d
tqdm==4.51.0
6 K# k H c8 N. p opencv-python==4.4.0.44
; J2 K, t' z) c( p: L3 [ onnxruntime==1.6.0
" p7 J8 |) s; Y9 |! v3 o p开发者提供的一些文件资源(国内需木弟子):. o) i- G5 D5 O' W1 G
1、下载模型/权重文件
; T3 A' T% o1 `' A0 z/ Rhttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing' v0 Y5 N3 d c; V# S
2、用于练习的视频和图片文件! k! K/ R( m6 O. j4 k8 j
HD视频:
5 q5 G( L( {7 \1 C/ K* zhttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
" _3 C' h' N0 w4K视频和图片:
6 G8 U0 |6 B" E5 J6 j9 g2 b7 K7 thttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
3 B# C4 D! J$ b H项目demo脚本介绍:
2 \7 \/ k4 l. pinference_images.py:用于图片中的背景替换,用法如下:5 M6 x" p- ]8 o S
python inference_images.py
, ]; {' M9 h- b- w; B6 W--model-type mattingrefine
. F4 I' q% {( U: ` k3 y& O( D--model-backbone resnet50; O+ X2 G) {$ G4 G
--model-backbone-scale 0.254 W% K0 _; J4 E2 {3 j
--model-refine-mode sampling/ A' e7 k7 P" `; }* f, _3 T
--model-refine-sample-pixels 800009 Q+ l& b3 k$ }% I' z: i2 ~, g
--model-checkpoint "PATH_TO_CHECKPOINT"
1 A$ @4 l' \! Z# t. L) S--images-src "PATH_TO_IMAGES_SRC_DIR"8 f, x5 z5 V A% u- R5 o; \8 N
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
. @3 m; T: Z' s" d. y. A2 V--output-dir "PATH_TO_OUTPUT_DIR"
. n5 X+ b/ R1 G0 I+ S--output-type com fgr pha, D b2 S' X# i: t. Q% Y
inference_video.py: 用于视频中的背景替换,用法如下:1 J( e8 p. u% _- ~$ [
python inference_video.py & Y8 Y; c; y" X( v. x: f1 Y
--model-type mattingrefine
3 o0 c5 T6 V) p1 C1 h1 ], N( L% k--model-backbone resnet50
; }4 m G$ x( G" H: N! _--model-backbone-scale 0.25 # \0 \1 m( b; W2 ~" _
--model-refine-mode sampling % E# y! p- q+ l' h9 H/ u
--model-refine-sample-pixels 80000 $ v1 U: Y. ^. b# Z; {& J
--model-checkpoint "PATH_TO_CHECKPOINT"
9 \" J2 \, k2 f$ i5 K1 t* N--video-src "PATH_TO_VIDEO_SRC"
r' L6 N, t. z--video-bgr "PATH_TO_VIDEO_BGR" ; D! `. n ^" m4 k1 y! j
--video-resize 1920 1080 $ w0 _0 ~: q, Z1 T- \# h( B
--output-dir "PATH_TO_OUTPUT_DIR"
7 A. y2 n: r4 }8 L; u- `--output-type com fgr pha err ref
1 B: X( _9 w% G4 `inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
& n& N, T+ F; I7 W4 b" {python inference_webcam.py
5 M8 a F. Q5 J8 Q& P4 U G--model-type mattingrefine
: X6 `, a9 H/ k--model-backbone resnet50 8 @5 r. H5 |! J) y
--model-checkpoint "PATH_TO_CHECKPOINT"
/ d( h# e8 n- a, P! `--resolution 1280 720; Z3 G2 M) i! S# e7 [! R
虚拟摄像机. d3 H6 a. y$ Y+ @0 ~
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
/ B! t( o0 c! P4 Bhttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux1 J, B3 \. t3 P0 E
在Google Colab上体验
, v: u! d) s* x* U f$ b& [) x 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。2 |6 y5 V& D! Z6 o5 o
1、图片背景替换体验地址:
) t( t4 Z: ^2 ~https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing5 G0 o' @( }# ^# O- v5 J8 V6 _8 P
2、视频背景替换体验地址:
4 Q8 M7 b4 J z6 Thttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
3 S0 g% p$ n& ^! x- O: [6 n& N附上开发者提供的项目演示视频:9 f% \4 n, m: G/ g% [" I; {
# \2 } |. d5 l8 E. o3 F
|
|