|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。 w) a- ~6 O. {
! w. I2 r. M0 O' |2 Z3 M项目源码地址:
6 ]# A- l1 r, P ]3 _https://github.com/PeterL1n/BackgroundMattingV2
# P) _( g4 @! h项目依赖库:: o' P6 }8 y ~$ v4 K
kornia==0.4.1
) l2 v- b) P( R tensorboard==2.3.0+ s; Z) Y1 j3 w; V! J. o
torchvision==0.8.1
$ O4 M' B( u: B9 K tqdm==4.51.0
% W3 Q$ x" h6 ]) L6 H* p2 H opencv-python==4.4.0.44# R, v, U6 u: A- L1 }7 S7 a* ?% O
onnxruntime==1.6.0
: H/ ^) q3 a( t, V, M! E开发者提供的一些文件资源(国内需木弟子):- b6 W* C4 h+ C* W$ ~6 d3 y# \
1、下载模型/权重文件" p' h( P. R: R. I3 Y0 P
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
& `2 j" p" Z% }* u; B' o2、用于练习的视频和图片文件8 o8 K% E, Z3 J' o; b% v+ i
HD视频:' J$ h7 K# e# Z9 o
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
b# N# P8 O1 L4K视频和图片:
. I: M/ K1 S/ q7 Thttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing4 |) N3 j" A3 T% e# w0 r
项目demo脚本介绍:
' m' M5 P; u, S6 d) x& O" dinference_images.py:用于图片中的背景替换,用法如下:$ k7 J2 ~2 E0 p# W' ?9 U. e
python inference_images.py9 T3 K( @4 e* u% {
--model-type mattingrefine
" {4 s7 J4 \) l; e9 a--model-backbone resnet50# q( | T2 V5 p7 U- z2 x/ D1 S
--model-backbone-scale 0.25
) s& q; x4 S9 k: D: T. }--model-refine-mode sampling' S0 v* L; i- I4 }; w) f, m, w
--model-refine-sample-pixels 800007 T( A+ d$ |$ {4 w1 Z# ^. X; v6 |! Y( d
--model-checkpoint "PATH_TO_CHECKPOINT" r, [+ G& L/ X: w8 X+ j5 |# w
--images-src "PATH_TO_IMAGES_SRC_DIR" U* v/ w" `: W- _: _' k
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
+ N0 t K6 k# `6 Z5 y1 H3 n; ?--output-dir "PATH_TO_OUTPUT_DIR"0 e# T+ G; Q4 {* R* D1 H
--output-type com fgr pha
: o$ r* ^$ r G1 Y, {1 }inference_video.py: 用于视频中的背景替换,用法如下:$ D' Z2 v6 Y6 ?; l* X2 A5 G
python inference_video.py
* j- _( e8 G' | k--model-type mattingrefine 4 y5 A6 ^9 D4 j/ S$ ?. |/ ^% n$ P
--model-backbone resnet50
- j: M0 R- }* E+ t: O( y--model-backbone-scale 0.25
: _! J% h/ _/ Y! y, I6 e--model-refine-mode sampling
; |" V) p) `) e" A& b--model-refine-sample-pixels 80000 9 G* i/ {; F# s k6 b+ ^) v: T
--model-checkpoint "PATH_TO_CHECKPOINT" 1 k8 }7 x E* e' e
--video-src "PATH_TO_VIDEO_SRC" u0 H- x" a! N& x( i
--video-bgr "PATH_TO_VIDEO_BGR"
% O0 Q3 |" r9 B5 w--video-resize 1920 1080 2 _1 P1 \6 \2 O* Z
--output-dir "PATH_TO_OUTPUT_DIR" . k) H- g, q0 t' _) ]
--output-type com fgr pha err ref% H* b, m ?5 q; Q- N& ]) P
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:1 h& i4 [; R# v% ?
python inference_webcam.py
q q# c# g& S) z6 l/ }( G--model-type mattingrefine
2 g7 U; Q9 p! }7 Z--model-backbone resnet50
" S) |) A1 }( X--model-checkpoint "PATH_TO_CHECKPOINT" 0 {1 K5 M0 b. t" z+ H# a
--resolution 1280 720. v5 ~: Y9 n/ w+ _9 A% Z
虚拟摄像机& F( V/ p# h& R5 Z! {& l" k% i) ]5 }. K
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:) P$ p5 \7 S3 F
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
X& m+ O/ b. x3 E在Google Colab上体验$ F; W2 H5 O0 M/ w: I2 k) ?
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
: ~- p4 q" Q% `& s/ y1、图片背景替换体验地址:
( ]4 f9 d" [, B$ Y. C. E) x" E* zhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing. z5 B; a$ }! ?& [ h
2、视频背景替换体验地址:
! D) F& y1 r% b# u8 `https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing* X8 }7 ?/ w: S' K- |/ C
附上开发者提供的项目演示视频:5 K% D3 m/ `( J# i3 ]
7 Y j( z, o) i' Z8 V! f' P' R
|
|