|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
1 V! r$ ?5 _7 ?/ c# J
u" ?; J) b. l/ x项目源码地址:
2 F: ^8 D- ^2 j. ?& G6 ^; Y' ]https://github.com/PeterL1n/BackgroundMattingV2
) ?5 v% W8 U6 `& W+ c' b9 ~& g项目依赖库:2 i( [! g% U4 Z6 d* L' \, C1 d3 v
kornia==0.4.1# c" s0 h8 `1 B
tensorboard==2.3.0
& Y: C# R$ z# o: n9 z" n torchvision==0.8.1( W# X3 r( [. P% C, r
tqdm==4.51.0
q% ^2 h" q+ S3 ~3 D; H3 N opencv-python==4.4.0.44
# h- M- i! q: @5 B' a" |& z onnxruntime==1.6.0; B7 |9 F$ c" p8 W4 ?5 k
开发者提供的一些文件资源(国内需木弟子):
) w" ?" q% C j) m& L1、下载模型/权重文件0 m: J) n! O# F( b8 Q m
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing' ~/ k+ v% g* a X/ Z) b
2、用于练习的视频和图片文件
" ~' \: {4 |( Q! i$ g9 yHD视频:
# T% Z, S6 a9 jhttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
0 x2 K- e8 H. S4K视频和图片:
/ H0 G n3 q/ {2 V1 `" uhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
' K L* a$ U% I! u项目demo脚本介绍:7 P& T1 d; K$ G4 v& b
inference_images.py:用于图片中的背景替换,用法如下:! `5 j4 X7 `, n: l5 u
python inference_images.py
" C3 x5 {- r# s! b6 z--model-type mattingrefine' R) t# d7 X1 ^" {
--model-backbone resnet50( H( n: K; y( M: d
--model-backbone-scale 0.25
( Y/ s& U* s/ C--model-refine-mode sampling" I; @% K- R% ^! V6 a
--model-refine-sample-pixels 800004 y, j9 h. _3 e! n1 S. | Y
--model-checkpoint "PATH_TO_CHECKPOINT". p, p% T8 b+ Z- q3 a8 a( U1 ?
--images-src "PATH_TO_IMAGES_SRC_DIR"
0 @: N/ p. i6 p--images-bgr "PATH_TO_IMAGES_BGR_DIR"
. `9 }3 a l* p y/ K4 u( H--output-dir "PATH_TO_OUTPUT_DIR"9 i5 U! }) Q* j
--output-type com fgr pha
* |& F" p1 T+ ^; L' n$ o3 A# [inference_video.py: 用于视频中的背景替换,用法如下:
! M4 c$ x7 h3 T! P) w/ ~. @python inference_video.py 3 R* p9 y2 H( z# U- [, Z# A+ b
--model-type mattingrefine . c+ U' J7 W+ ?
--model-backbone resnet50 3 ^- c$ N1 j& e5 ^8 T
--model-backbone-scale 0.25
. S+ j2 V( [' u! s; V, @: ?6 t--model-refine-mode sampling , r6 ^( F5 r- R
--model-refine-sample-pixels 80000
4 y& D& I" i1 t5 {+ F--model-checkpoint "PATH_TO_CHECKPOINT"
" t3 p5 @( y: K7 ^% d3 p--video-src "PATH_TO_VIDEO_SRC" , x. z; l; k" _, X$ g# h, v
--video-bgr "PATH_TO_VIDEO_BGR" 5 m# F& Y1 P. C- W3 Q+ @1 n
--video-resize 1920 1080
F1 N- ~5 I5 D- `6 ~--output-dir "PATH_TO_OUTPUT_DIR" & s5 E# a4 @( @. B; h; {: k, Y
--output-type com fgr pha err ref
$ U5 Y. x7 w+ }: S6 b- K2 P) W: }inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
4 k8 } q# s" H# Bpython inference_webcam.py
6 m3 I9 T& T, ]3 c2 U1 y; l--model-type mattingrefine
+ D9 y5 K8 A% M& j+ Z$ m--model-backbone resnet50
/ P6 k# k3 ~6 `/ ?* x# ~--model-checkpoint "PATH_TO_CHECKPOINT"
+ C" p3 @* Z H' y2 S3 V! s5 Z2 J--resolution 1280 720
9 V/ w# n& d; L* d% I虚拟摄像机) g0 h2 }4 m6 E4 T* {$ Z, j8 Z k* A
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:2 ]4 Q4 ^+ S* a/ d# X
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
, Z0 }+ g5 G. M在Google Colab上体验4 @4 ?) `; ?# B: m4 y
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
3 ?) }; s$ v" f* x$ [' \/ _- X3 Q1、图片背景替换体验地址:
, J# j. C, E6 W l$ Z% m! H- A& Hhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing5 t- {( c9 N& x3 t
2、视频背景替换体验地址:
3 p# \# s. G8 P% `https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing" l* z: K# h5 ]( r0 t; m0 W
附上开发者提供的项目演示视频:; E0 o7 A+ K- Y4 g* `
& P9 w( B( j, h0 k! U( x |
|