|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。0 j$ Q, U+ P ]0 q3 a
% h6 W: n1 T x+ P+ ^3 M3 u, g项目源码地址:' U T& y* W' V7 r+ g' m: l
https://github.com/PeterL1n/BackgroundMattingV2* W% z- W5 H. a& c2 b; s
项目依赖库:
: a& s3 U6 e( l& E kornia==0.4.1/ [4 G! ^7 ?. u R* \$ U R! ^
tensorboard==2.3.0
3 } B- w7 K/ S torchvision==0.8.19 g9 b- |# W/ j: e' p9 P# J$ |
tqdm==4.51.0$ e2 { q6 M5 C' i% v0 z" E
opencv-python==4.4.0.44+ _, E( m5 A% C& ?/ v7 d
onnxruntime==1.6.03 X1 ?% Q) Z% @1 q0 C% Y$ V$ r
开发者提供的一些文件资源(国内需木弟子):
4 `" x# o$ x7 j+ _- g7 t1、下载模型/权重文件
9 V v+ g2 v9 Nhttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing7 a3 B. w2 K% [2 y$ Z
2、用于练习的视频和图片文件
1 `# H& b$ {5 S" rHD视频:" ], C) r# \' Y3 `& v# c
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq+ D4 H( I4 X9 N$ l
4K视频和图片:
# K& {6 R, m4 H. p( ~9 a4 jhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing& f5 c6 s3 E7 e* j! H8 ?
项目demo脚本介绍:
: Y3 J. u; r( I/ pinference_images.py:用于图片中的背景替换,用法如下:0 N7 x9 r% l9 m. P6 K) X
python inference_images.py
! R& e1 z4 d w& `% r--model-type mattingrefine% {# b7 R: {& J9 b3 y$ b0 K- K- p
--model-backbone resnet50
. [& \# [& y7 g1 t! \# L--model-backbone-scale 0.253 v5 T5 \4 p" y$ a
--model-refine-mode sampling
: F" ]) }" W1 o+ z--model-refine-sample-pixels 80000
% n$ Y8 x* ~; e! g' Z& R* V--model-checkpoint "PATH_TO_CHECKPOINT". p5 R& o" ^1 k
--images-src "PATH_TO_IMAGES_SRC_DIR"# P# D' o; F! O m9 R: I( |5 Y
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
4 Z1 i1 h+ e* j( z--output-dir "PATH_TO_OUTPUT_DIR"
0 R3 i8 E: a( d1 u--output-type com fgr pha
) {% O3 N. Z' @" [7 uinference_video.py: 用于视频中的背景替换,用法如下:; B* |8 u8 @/ E' z6 z
python inference_video.py
: N2 w' [0 R3 L--model-type mattingrefine
: }- B% ~, Q9 E--model-backbone resnet50 7 T! I" a- T3 d9 W \2 n7 P
--model-backbone-scale 0.25
4 P0 W Q3 U: \4 C$ c0 H--model-refine-mode sampling
, m8 e( \# P" Z1 ?--model-refine-sample-pixels 80000
2 d! u6 D: A2 \) g" C2 E--model-checkpoint "PATH_TO_CHECKPOINT" - F4 I$ y6 z! ]) d( m
--video-src "PATH_TO_VIDEO_SRC"
: O8 i$ q- \1 J2 H6 F. X--video-bgr "PATH_TO_VIDEO_BGR" " t; S. Y: U" I7 j4 F+ H1 ~
--video-resize 1920 1080
" d% K# s% k& n1 U--output-dir "PATH_TO_OUTPUT_DIR" % o; @( X% z4 Z n% g3 k$ k
--output-type com fgr pha err ref J: q& ]9 R# \ k1 n' |
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:/ J% q8 e" Q) ^' X A- d2 I; Y
python inference_webcam.py
9 J$ w) ~( }2 D+ [4 V& C--model-type mattingrefine * x. |1 V3 M1 W$ i; h
--model-backbone resnet50 : r7 o: ~6 G5 d4 X- ]$ `8 K; {: u
--model-checkpoint "PATH_TO_CHECKPOINT" 6 ?& U* h7 D1 O% D( g
--resolution 1280 720! L2 X0 u7 w5 x) u% b8 N9 q8 A
虚拟摄像机- Y# T. r# d8 o
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
: N* u- \/ [4 ~7 Ghttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
9 v8 x: h5 {1 \4 f9 A+ B在Google Colab上体验
5 b" C& h$ k {& F- d' O 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
* f1 J* k' g8 T, |) Z1、图片背景替换体验地址:
0 [( U2 X( ]. z! V3 H# Uhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
9 q1 D, T# r% z0 f, A2、视频背景替换体验地址:/ {4 H8 i! {, t4 x5 V. P' \
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
2 P* P0 o5 }) ?+ W& \, B5 w附上开发者提供的项目演示视频:8 q& b# j* G% j+ j$ h, ?% j: M5 r
1 x# n* C9 c& R/ Z
|
|