|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
7 i$ M* e% |5 D' w, S6 p
P4 \- V8 u2 [1 a项目源码地址:
- @3 D" I4 y! S+ J z( dhttps://github.com/PeterL1n/BackgroundMattingV2
: y% L! j' U5 ?7 k" h! O( o" j' u项目依赖库:
+ u0 i, H% C! O8 c0 w" K kornia==0.4.1
4 `7 X" a0 [- T; J tensorboard==2.3.0
$ a/ Q6 x e v torchvision==0.8.16 ?1 w, m: ]" ~4 x$ r
tqdm==4.51.0
5 b [& [' |- ^( Y( l1 E opencv-python==4.4.0.44
) B; s$ [/ i5 S: J" M onnxruntime==1.6.0. D! z, I/ j# n! y
开发者提供的一些文件资源(国内需木弟子):
5 K0 A/ \8 f! p1、下载模型/权重文件; c; g a: V. x1 s
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
" @" G' I' n9 h# V9 e1 M8 Z4 C2、用于练习的视频和图片文件
/ x5 n8 P1 r/ r, u- OHD视频:
! R/ s9 K/ L) @' G& T* s" ~https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
5 X7 y2 M4 b1 j# t# X T3 V- k m4K视频和图片:3 d( u7 H& h2 f" c7 q# K2 _
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
) x, U1 k3 K7 e- v8 p- e2 D项目demo脚本介绍:1 @- r+ z2 l4 D, C7 n0 ~! W7 B7 I
inference_images.py:用于图片中的背景替换,用法如下: D4 d- c8 P2 Y
python inference_images.py3 b5 T) K/ I0 o# t
--model-type mattingrefine
# R- B# h: L$ k, [--model-backbone resnet504 q" I3 ?# V( M b: N
--model-backbone-scale 0.25) _3 L) i. k" B7 }( S% \1 w; T. ~
--model-refine-mode sampling
/ V. j5 x" l( M; |( S2 p--model-refine-sample-pixels 80000
2 E; r* c7 d$ [7 B, k0 O: H4 h--model-checkpoint "PATH_TO_CHECKPOINT"; x; f, i; O. N1 Y0 x
--images-src "PATH_TO_IMAGES_SRC_DIR"
# U% Y; I- v/ ]3 w7 n" f--images-bgr "PATH_TO_IMAGES_BGR_DIR"
( K( z& h L& B2 y3 K--output-dir "PATH_TO_OUTPUT_DIR"$ n; k+ Y8 S$ p6 s* }/ G' ?3 r- a
--output-type com fgr pha, X8 k. w C Z9 I$ T# |
inference_video.py: 用于视频中的背景替换,用法如下:8 [7 X$ f6 Q% T9 M! j4 D7 n
python inference_video.py
$ E3 |& O; \0 J--model-type mattingrefine
+ P1 m2 z# e* X. u$ J! Y S--model-backbone resnet50
/ ^ ^9 C9 n. R) d3 z3 `& J9 {/ t--model-backbone-scale 0.25
& j" c1 c3 p: s--model-refine-mode sampling
3 d) l- \6 b6 J8 Z" [--model-refine-sample-pixels 80000 # e- j N) |( ], M; J
--model-checkpoint "PATH_TO_CHECKPOINT" 5 s0 L, Q i5 t
--video-src "PATH_TO_VIDEO_SRC" , ?' [* ?% W6 J* `0 n1 ?
--video-bgr "PATH_TO_VIDEO_BGR"
u! S8 D! T8 i; L) b! g" {--video-resize 1920 1080
$ i# y. [0 u3 `--output-dir "PATH_TO_OUTPUT_DIR" 0 @7 {1 {) V) ?0 U4 ^4 }* U% @4 n( Q
--output-type com fgr pha err ref
6 L/ E% y/ D4 F. Sinference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
- H7 |: g1 k% Apython inference_webcam.py 0 P( w+ X1 X# K9 k& |% o8 x. t+ l
--model-type mattingrefine
* x1 I9 m# Q; F5 y, @--model-backbone resnet50
) K) T8 }3 V# V" W--model-checkpoint "PATH_TO_CHECKPOINT" " V2 K: l7 D( j# N" q: \1 d' w/ ?
--resolution 1280 720+ H5 a n( @' H: p0 y
虚拟摄像机
/ S2 Z7 T! v. k3 a' w& L 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:; o B' b* d6 z% E% x; T' Z! c; X
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
3 B2 r$ p1 _( s% b2 d; T% r3 O0 A在Google Colab上体验) {9 s s# c* w& e# I _
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
2 }2 h5 h8 {' x& w! Y1、图片背景替换体验地址:1 N t' ^ {! b2 `4 `$ A
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing0 O/ F1 P( {/ E5 q t6 M" A
2、视频背景替换体验地址:
! Z1 {6 u# d/ k d! mhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing/ r1 W. j u% N8 ?
附上开发者提供的项目演示视频:4 i1 U2 _5 n8 a, a( ?
7 a. K4 h$ c" b7 o3 T
|
|