|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。& ~; B. [$ m+ P' K2 G
+ p- }7 R$ K4 G3 B项目源码地址:& V5 s+ v ]: V6 A: f) q9 t
https://github.com/PeterL1n/BackgroundMattingV2
7 k1 d. g" n( | a1 \2 w4 u项目依赖库:
& N3 [; _' {* S3 Y) P kornia==0.4.19 |" i! q# S2 G y4 W* f
tensorboard==2.3.0
3 `7 p2 V! a3 z, m" V torchvision==0.8.1
2 H5 |, ~4 {# r% a tqdm==4.51.0
- a* N* \. R4 S( }% s opencv-python==4.4.0.44
3 l2 ~1 S* C9 T u1 c% v$ g- j1 P$ L onnxruntime==1.6.01 @/ H; z) p4 Q
开发者提供的一些文件资源(国内需木弟子):
% [8 ^. A* b) Y* U" S1、下载模型/权重文件8 i4 X4 t4 M, A' X# N. ~/ G
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
2 p. W) v! N$ T4 c( Q# X2、用于练习的视频和图片文件7 ?* D" t# |8 w; q
HD视频:3 p) i2 X# q) D$ D# C
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
0 o4 ^2 F; i0 P8 V3 ]2 u9 b0 ^. |; S4K视频和图片:6 d' ?3 |% j6 h1 B- d) F/ n3 A0 P+ Z5 ^
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
- @) g4 L# z# Q3 N2 Z5 ~6 Q项目demo脚本介绍:
' G6 j: a" k- ~( | ?% {inference_images.py:用于图片中的背景替换,用法如下:. n- Q! W8 f- l7 w5 J
python inference_images.py
6 D: X, E# E4 O2 @* Q: S6 c--model-type mattingrefine
# n. b8 I9 Y, W' d$ h7 S" c5 j--model-backbone resnet508 ~7 s4 F8 y4 n
--model-backbone-scale 0.25
1 R4 G8 I7 c2 ~--model-refine-mode sampling; X! Z" e; @) K
--model-refine-sample-pixels 80000; R2 ^- u- m. f2 r7 [9 U6 I
--model-checkpoint "PATH_TO_CHECKPOINT"5 O! }8 K2 v& F
--images-src "PATH_TO_IMAGES_SRC_DIR"
8 n0 b) e# w$ |! D' ?2 D--images-bgr "PATH_TO_IMAGES_BGR_DIR"# J$ w, e' P: J, l1 v# s7 W
--output-dir "PATH_TO_OUTPUT_DIR"
; o, J+ x4 P6 r) X1 h F4 `. v--output-type com fgr pha0 U4 W4 G! \. _0 U
inference_video.py: 用于视频中的背景替换,用法如下:4 c! S9 S) a# Q p& |4 x$ ?( N
python inference_video.py
' Y4 Z8 s+ A/ F" o" e--model-type mattingrefine 2 g6 z- U! l% |1 y K$ b5 U0 S
--model-backbone resnet50 : C5 E6 V2 y. _3 D
--model-backbone-scale 0.25 * K# {: b0 A; D8 Z( M* _* A1 t
--model-refine-mode sampling - f* ?/ G1 I, h1 |
--model-refine-sample-pixels 80000 % k; p0 g, R9 \) K, Q& T9 r% Z) ~
--model-checkpoint "PATH_TO_CHECKPOINT"
% @& r3 A3 c) ^8 I--video-src "PATH_TO_VIDEO_SRC"
$ q9 S3 \- X. Z2 p; `- E--video-bgr "PATH_TO_VIDEO_BGR" / t5 F! A. K! C# w1 [$ g
--video-resize 1920 1080
. A& w y) D, c--output-dir "PATH_TO_OUTPUT_DIR"
. l; `& M; R& d) l7 X--output-type com fgr pha err ref. E% q, w) N9 N/ S3 `2 R! }5 e
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
0 o Y( a/ e, {+ X. g1 F/ s' `" Epython inference_webcam.py
' v* Q( D; _3 L1 h, Z: x--model-type mattingrefine . F8 L8 A, D" A) P( d1 D5 Z& @
--model-backbone resnet50
' z* k% Y+ w5 C" i1 F9 G--model-checkpoint "PATH_TO_CHECKPOINT" + i- x" U( {: l3 l' l1 x$ q
--resolution 1280 7209 b8 r* M: x# O* z1 B; u5 x+ U
虚拟摄像机
0 U1 j3 y# O! b# s. u 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:& [0 H0 ]& k' i% J+ N9 t/ z
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
0 r) b2 w; B' x% W, e: v# l在Google Colab上体验
l' N) `6 a+ q 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。' H5 J# ?4 s3 H" }
1、图片背景替换体验地址:1 x7 B9 V4 S7 j+ b
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
4 T% T6 q) G. p3 C8 z9 x9 l; K2、视频背景替换体验地址:
/ N: R0 S/ c3 B: z/ `9 d2 Jhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing6 G" U/ W% |9 ^0 H
附上开发者提供的项目演示视频:1 S$ y f9 V* }( g! @
9 O, N- b9 i8 P2 W8 t
|
|