|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。1 U% ^$ |% a4 q( C9 P
5 S i) R. x+ {% J2 m! O- H项目源码地址:
: l9 ^: ~" ~- X. r& H* d; hhttps://github.com/PeterL1n/BackgroundMattingV2
6 h* k) L4 _3 P0 |5 s7 s2 o项目依赖库:2 ~; O2 K6 H) K0 w# {
kornia==0.4.1
X- g( r/ `" r; d% A' g! `- G tensorboard==2.3.02 X5 U1 d! u* S- m
torchvision==0.8.1# J" i# t! i5 c# L& ?. F
tqdm==4.51.0
; l# m) k$ ?+ V opencv-python==4.4.0.44
9 w$ J2 i4 s# ? onnxruntime==1.6.0
+ X# a1 P% V9 N开发者提供的一些文件资源(国内需木弟子): s' f8 V: \7 ?+ l4 a" V. J4 N8 R9 o
1、下载模型/权重文件
0 z/ r% U" P* m$ _, Rhttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
$ ^) R! S$ U& R, J* m( w9 m2、用于练习的视频和图片文件: q( i" x* s" E& |
HD视频:0 k4 D/ i0 [0 `7 B+ A
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq8 A. O* R" b: l2 q4 ?$ \. |# k& j
4K视频和图片:0 Q( I8 m8 Y h$ f& [
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
9 H) ~( O h8 G1 M& d* j项目demo脚本介绍:) W" H$ F+ v8 S5 \# \0 U. R
inference_images.py:用于图片中的背景替换,用法如下:2 N- S5 V i W
python inference_images.py* y2 X+ D/ t) [' G$ i
--model-type mattingrefine" h% x7 ]2 T5 v/ p! h/ g2 h3 E
--model-backbone resnet50
6 v- }4 C! U* O$ E--model-backbone-scale 0.25! U* ^, @% p3 M
--model-refine-mode sampling
* k5 @/ |! D8 M* r--model-refine-sample-pixels 800001 ]8 @( j3 L9 U5 L. i1 g
--model-checkpoint "PATH_TO_CHECKPOINT" T& f t: Q c# i
--images-src "PATH_TO_IMAGES_SRC_DIR"+ Q# c9 S6 G# O7 d
--images-bgr "PATH_TO_IMAGES_BGR_DIR"; ?8 _- b" {9 v" o7 x
--output-dir "PATH_TO_OUTPUT_DIR"
" X8 m" n% O" C7 v3 U, |--output-type com fgr pha& {8 A1 |% z' d- B# p: c+ q2 [! A
inference_video.py: 用于视频中的背景替换,用法如下:9 @1 e% v- I0 O% Z! y% B
python inference_video.py
8 q i) T: {5 k: [* ^* s( n--model-type mattingrefine
! {/ a. B ` g* _--model-backbone resnet50 . |# n/ `" \# s5 f% d
--model-backbone-scale 0.25 " M: Y9 e B0 U$ e" m0 p* b1 e+ T& O
--model-refine-mode sampling
/ G1 P# V( ?) m, r. n, j--model-refine-sample-pixels 80000
1 S/ H" V0 H" W--model-checkpoint "PATH_TO_CHECKPOINT" 8 S5 T0 J7 P" Q O
--video-src "PATH_TO_VIDEO_SRC" + D) I3 c8 D$ Y$ G
--video-bgr "PATH_TO_VIDEO_BGR"
, B6 |% a5 [% M) C# [--video-resize 1920 1080
9 u8 d0 ~% \: Q3 O4 H--output-dir "PATH_TO_OUTPUT_DIR"
+ F8 i0 f8 x. J--output-type com fgr pha err ref; s* H. Z5 l- o. y
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:: V2 Y5 T8 z% b7 v3 A
python inference_webcam.py
% d+ Z$ Z& m4 N; T% k1 o$ O--model-type mattingrefine
# h x* s- o- k6 f0 w--model-backbone resnet50 & t4 X! b3 J m( @/ J/ K! D$ |
--model-checkpoint "PATH_TO_CHECKPOINT" 8 s' m; Y; A# A5 r
--resolution 1280 720
3 W! S E% j2 O3 h" d虚拟摄像机
5 B' t0 a0 n0 t; k 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:( g/ e1 ^5 ~4 m% g
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
$ g- U/ o2 x' k7 R& D在Google Colab上体验
+ J& g" N7 B* J- S 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
/ X7 K. O8 i0 R& w1 O1、图片背景替换体验地址:4 x, ^3 ?7 @( ?: c+ b
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing7 Q% Y; C# _4 K* W- i4 ?5 m
2、视频背景替换体验地址:6 V, X7 j C3 P/ Y! e
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
- @! e2 k+ G- u附上开发者提供的项目演示视频:
0 w9 z$ j+ O% [' g; g' g3 i" j' r C# v4 g8 f3 m# Z1 g
|
|