|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
% @, C: r+ L9 a" J, I# f/ R9 l; q
4 G3 P {# ^/ E/ |3 S% T
项目源码地址:
- e5 W( _8 B" X/ B2 }, jhttps://github.com/PeterL1n/BackgroundMattingV2
; L s4 M5 T( ~. K1 w3 J项目依赖库:/ r2 i" U5 U2 d9 i1 _, a- m
kornia==0.4.17 p: c+ \ y1 i5 I8 j/ \% |
tensorboard==2.3.0
% g u% m0 | ~4 p& D- t torchvision==0.8.1! F8 B+ ]) |* l$ p# [0 U
tqdm==4.51.0
9 M0 F* s9 |' a2 u& W opencv-python==4.4.0.44
3 k6 o9 U/ @) @+ w$ j onnxruntime==1.6.0
! B0 U! D2 @- `2 s3 W开发者提供的一些文件资源(国内需木弟子): }( P; }( |: L$ f; t* t
1、下载模型/权重文件+ ]6 m3 ~+ }& ^4 N" o5 @
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing' t4 Y, M0 ?0 j) N0 W
2、用于练习的视频和图片文件
( a0 u" c m& j: u" h. C- n- P& K3 L3 cHD视频:" i1 f" c M1 `
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq& E* R" c- y* e$ y3 F6 G
4K视频和图片:% ^" o: I3 g7 }. n: `' Z
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing2 Y9 M* z5 B# c7 B3 N
项目demo脚本介绍:- R/ V, e8 j- U6 K2 b+ G
inference_images.py:用于图片中的背景替换,用法如下:6 K2 l& V' k! ?: d. C
python inference_images.py
2 J' O1 b! d! S/ b4 N--model-type mattingrefine
( Y4 Y( k# l5 W- v--model-backbone resnet50
, d0 n9 M0 Z$ [5 a& f' K--model-backbone-scale 0.25
: F7 O; ^# F1 o0 D1 v--model-refine-mode sampling
& Q" U* {) L' L+ |& r--model-refine-sample-pixels 80000
/ ~1 b4 `2 q" [0 T' N* l7 ~8 n--model-checkpoint "PATH_TO_CHECKPOINT"8 H7 W5 Y c% }2 N( L: }% y, \+ l: Y
--images-src "PATH_TO_IMAGES_SRC_DIR"& m/ e% J" K6 ]" N6 d
--images-bgr "PATH_TO_IMAGES_BGR_DIR"7 O7 N. e6 b: B5 U6 ]
--output-dir "PATH_TO_OUTPUT_DIR"
4 _8 E) E* K' X- B& L3 @& [8 k--output-type com fgr pha
! O# c2 |- i, b- ^ t7 }inference_video.py: 用于视频中的背景替换,用法如下:4 x+ i* K- e/ \1 {. g/ s
python inference_video.py + T8 E; l) D0 i
--model-type mattingrefine
; ]" K n3 W J9 Q1 c4 G--model-backbone resnet50
1 o8 X# z) B6 S--model-backbone-scale 0.25 # J+ l- A0 Q) L8 V! b7 |# p
--model-refine-mode sampling
$ k9 ]+ P8 y! O% v4 w--model-refine-sample-pixels 80000 ' z& Y' d& v2 q' z; C
--model-checkpoint "PATH_TO_CHECKPOINT" " t1 _9 v: ~* c; V% C, h
--video-src "PATH_TO_VIDEO_SRC"
, Q: `* X! j! \ c# g0 ]--video-bgr "PATH_TO_VIDEO_BGR"
) G7 v& \( ]) Z0 }: K v--video-resize 1920 1080
( V) B# e; N* a( D8 V: t--output-dir "PATH_TO_OUTPUT_DIR" ) l- T& {0 C; ~
--output-type com fgr pha err ref# T8 Z5 b1 H' L& ~1 B, Z: E
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:0 P. M4 V# s2 G5 }6 m3 z
python inference_webcam.py
$ Y; u% T3 Q( T--model-type mattingrefine
: {2 K/ U+ F* ^# W ~--model-backbone resnet50 % C( g% u6 a& Z/ s& K, }2 h
--model-checkpoint "PATH_TO_CHECKPOINT"
G! ` o$ a, i--resolution 1280 720$ T0 X5 W, G! d5 P" u/ o
虚拟摄像机( c7 X7 Q/ E! w! B
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
2 t% b/ ~/ J* K+ g& L% Ohttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux" u3 v J4 t6 Z9 ~
在Google Colab上体验
* U% k& y" D0 v' ? 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
$ [/ g) G$ W+ \& B1、图片背景替换体验地址:9 | `: c: c1 U9 q
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing! J( ^7 [( Z( H- c: _) O v& g
2、视频背景替换体验地址:" Z H! n: i0 P! p5 E4 Y
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing2 y4 T" c. H3 q- o- W% k4 ^/ n
附上开发者提供的项目演示视频:
& ?2 y$ |9 h) h/ ` W( {* Z3 U
" i% q' ] M! I N# E, o# U |
|