|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
) u0 ]& i: {0 {8 D5 @9 n" u1 x
4 X W/ J# z% y) H5 X9 \项目源码地址:
( b) K3 c" y3 c$ C) k r7 D" p0 zhttps://github.com/PeterL1n/BackgroundMattingV2& w" Q$ S9 X( [5 M/ |
项目依赖库:" T* t4 L; w& w. G
kornia==0.4.1
( n: |+ |9 q4 P. } tensorboard==2.3.01 \; _" g" m+ b& [3 t" Z, i; `
torchvision==0.8.1
1 L& e1 m: C5 j tqdm==4.51.0& w; u; l1 l5 w1 l# \
opencv-python==4.4.0.445 A" C7 U8 U! T. i
onnxruntime==1.6.05 q1 I0 j0 @7 K F3 s2 z( M& I
开发者提供的一些文件资源(国内需木弟子):: l, ~* i3 r2 ~
1、下载模型/权重文件
- M0 w+ C/ P7 N& chttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
" B* h3 e0 X1 h$ | U2、用于练习的视频和图片文件, C6 d% G1 N. ~0 \1 z [# b7 }
HD视频:
/ R2 i( ]4 L4 t1 i chttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
0 A8 O1 A- a$ i% D/ Y9 k" \& Z4K视频和图片:
) B& x, J/ X) A7 A. Ihttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
2 h% h2 c$ l8 x" |9 H& \7 d9 `项目demo脚本介绍:# @. R! _+ _. X3 v
inference_images.py:用于图片中的背景替换,用法如下:
3 i& ^5 C5 b; }. \! K+ hpython inference_images.py
9 @ n1 L% V% p4 W& p9 o) e' W--model-type mattingrefine2 g( \ q" Y2 n
--model-backbone resnet50
* M7 N$ \; @* o--model-backbone-scale 0.25
" A' {' ^8 X; F L4 P |4 m--model-refine-mode sampling
, {2 n. H: X% K8 s- x2 U--model-refine-sample-pixels 80000/ e& f* V) ]7 u4 J6 @. B
--model-checkpoint "PATH_TO_CHECKPOINT"9 O9 p+ m* \/ J
--images-src "PATH_TO_IMAGES_SRC_DIR"/ q) l9 {% i8 ^. U$ l
--images-bgr "PATH_TO_IMAGES_BGR_DIR") V: W& Q5 |: C7 m1 B! w7 L
--output-dir "PATH_TO_OUTPUT_DIR"$ |5 h: ^9 H9 L
--output-type com fgr pha
7 K$ m/ h( y0 I4 o. ~8 W0 r) xinference_video.py: 用于视频中的背景替换,用法如下:+ H3 T1 F. d! V4 \' P5 E
python inference_video.py
- A: [ M0 h4 _8 U+ Y3 h--model-type mattingrefine " P, o! _- Z# E4 s1 F. i
--model-backbone resnet50 7 U' k0 |3 q* v
--model-backbone-scale 0.25
7 f" L- c8 I! L) @) C--model-refine-mode sampling ; Y2 @9 B" V! z
--model-refine-sample-pixels 80000 ; _6 N }9 S) o% o8 ~1 J- d
--model-checkpoint "PATH_TO_CHECKPOINT" 5 B/ `" e7 Z5 M: P4 Q
--video-src "PATH_TO_VIDEO_SRC"
/ Y/ P+ v$ K% i! |. i--video-bgr "PATH_TO_VIDEO_BGR" . T, E! ~0 _) X
--video-resize 1920 1080
P3 d! B+ O4 N1 {* [5 r--output-dir "PATH_TO_OUTPUT_DIR" 0 B" T6 a. N6 Q0 U
--output-type com fgr pha err ref2 I# Z* ]* Z; z. U& W5 p
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
* m+ r; k0 i1 z$ \. G: Fpython inference_webcam.py ) [; H/ t- y6 D
--model-type mattingrefine 1 U8 w4 n/ @9 g) Y) \7 g, s
--model-backbone resnet50 & i6 r: d0 @$ j' r9 F5 \( ? h
--model-checkpoint "PATH_TO_CHECKPOINT"
/ _( ]: \! T) _' W% X--resolution 1280 720
5 U, O& f( X0 J" f0 m虚拟摄像机) E; |5 z/ h5 h( _; u$ i( N9 _
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
: V: \& |( x: Z2 q6 d9 G% fhttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux) I( J0 P) M9 ]- T: j! u
在Google Colab上体验+ t B' J) }. b3 i J
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。0 Q. X$ G3 S7 i1 c) o4 `# {
1、图片背景替换体验地址:. y* C! J- W2 x: V0 o, x
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing: s2 p( X7 s: r' L, Q9 z
2、视频背景替换体验地址:6 y4 {8 @. x& [+ k6 K' E( o" y
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
% m$ G" V1 n( [! j3 g附上开发者提供的项目演示视频:
$ ^0 n5 r( C6 W
, y5 e6 N( U( b A1 u" {. g- Q5 M |
|