|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
+ d0 @% i/ t8 g: J" C$ n) T' _
8 m# d) E+ s3 W
项目源码地址:
# e- h# W7 D2 e3 @; f, Q- whttps://github.com/PeterL1n/BackgroundMattingV2
/ M* M+ J, `0 `' A+ a) @项目依赖库:
% o, B3 \# c2 B; J, |+ i kornia==0.4.1
& a+ F0 |( ~( L tensorboard==2.3.0
' Q% l/ d4 a5 h$ e" k torchvision==0.8.1
% F; R2 Q8 w7 u3 B4 L3 g" \; _2 t tqdm==4.51.0( Z" W# j6 s% k0 T. b: g* y" b
opencv-python==4.4.0.442 {2 t# Q+ ]7 J+ m
onnxruntime==1.6.04 j W7 z" S5 j4 m
开发者提供的一些文件资源(国内需木弟子):8 E( V1 \' H `9 t2 D, S/ z
1、下载模型/权重文件9 ^% _ [1 [& v8 \
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
; z8 ^5 G" z" c: G2 P2、用于练习的视频和图片文件 l+ G3 s# \% ]7 B- ]
HD视频:. P! [/ g* Z: g4 F8 a* z' J
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq( u9 l R4 K4 \' }6 C
4K视频和图片:
% Z1 x; Y. q% e; k7 Chttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
9 ]+ Z# E6 k7 ?项目demo脚本介绍:- X5 `7 c: ?4 [
inference_images.py:用于图片中的背景替换,用法如下:
2 e" v5 ?. u A# dpython inference_images.py, e6 f0 h9 n) b, C2 e4 D
--model-type mattingrefine
. f! V- B; A" ~8 M3 c/ a: W/ H--model-backbone resnet50
9 |! s8 p4 `9 T--model-backbone-scale 0.255 b+ N2 V: Q) S. `! j( U" o
--model-refine-mode sampling
" D# O1 s$ k8 ~--model-refine-sample-pixels 80000- ?; ?, y _- V. d3 u+ O
--model-checkpoint "PATH_TO_CHECKPOINT"' U& g3 R/ V/ D8 l2 K" g4 A3 ^
--images-src "PATH_TO_IMAGES_SRC_DIR"6 V5 e# Z0 c# y$ I' N) w2 c2 `
--images-bgr "PATH_TO_IMAGES_BGR_DIR"4 M+ y$ H1 W \- S3 G) R; s3 ^
--output-dir "PATH_TO_OUTPUT_DIR"/ F6 l# }; A. o
--output-type com fgr pha3 f+ d m3 Z, R* {% X% A0 e
inference_video.py: 用于视频中的背景替换,用法如下:7 @0 U. O( A- \" J; ]# X
python inference_video.py
) |9 S% Z$ t+ U1 ^6 T9 P( l--model-type mattingrefine + V# ]: H% f, U5 a0 Y5 e
--model-backbone resnet50 : X" O" w) G5 P2 Z& @& |
--model-backbone-scale 0.25
/ e' |9 o- h1 c8 Q: J' M--model-refine-mode sampling ( R) y3 k9 F( l- c
--model-refine-sample-pixels 80000
2 s: H; q2 J3 ^5 ? h--model-checkpoint "PATH_TO_CHECKPOINT"
$ L; U9 t/ U3 m6 Y* c9 ^4 ?) P--video-src "PATH_TO_VIDEO_SRC" 7 m$ d% Q7 }( a/ M
--video-bgr "PATH_TO_VIDEO_BGR"
( d/ d1 _3 d/ I8 n--video-resize 1920 1080
. A' o' }6 i$ i; m6 P7 M2 G/ X. D/ I--output-dir "PATH_TO_OUTPUT_DIR"
7 h1 q4 k+ Z' d% E' `--output-type com fgr pha err ref
* t; u8 M2 x7 ninference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:: C. E* X2 p1 y4 O/ N9 U3 @
python inference_webcam.py
$ V5 ]9 [& N* M- M$ E1 F--model-type mattingrefine
2 ~2 T1 `6 O+ w, z--model-backbone resnet50
1 Z' Q5 j4 f" G' V--model-checkpoint "PATH_TO_CHECKPOINT"
. p5 s2 O1 @, j; z/ f--resolution 1280 7205 U& j$ E% h- H, n" d, b
虚拟摄像机: N) t: B+ {, c& }7 s
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
" F( p+ C4 f3 K( C+ Lhttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
7 v, Q$ B* o! }在Google Colab上体验
+ s8 |9 }; T: \( J$ L+ Z 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。% Q! _$ y/ l& i8 B$ _
1、图片背景替换体验地址:
2 b6 D0 x% W I9 n1 n3 Khttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
+ G2 C7 S7 f0 Z5 t* I/ s2、视频背景替换体验地址:
9 g5 M# S* U1 }' x0 i1 n" j. fhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing3 B( o3 T- ? M) o5 ?4 r* K
附上开发者提供的项目演示视频:
& R) B; Z; w7 ^1 Q" G" z% q C/ A
5 ?5 f n" O1 h# i- Y, x |
|