|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
5 Y' l% N$ g0 e4 u, x o# I, j
* r% G( e% N. F) i项目源码地址:
5 x! `) K7 }/ ehttps://github.com/PeterL1n/BackgroundMattingV2$ r; [9 T. |& P9 g2 i# W
项目依赖库:
# y5 b& B3 B2 h3 P; L# E1 ]. ^ kornia==0.4.10 y& M( Z" U% [9 |; H. N6 T
tensorboard==2.3.0
! O- o/ I# n- Y/ @- L& R7 m. z1 ~ torchvision==0.8.1
A' N) [& M4 T/ ?% ^$ t* S tqdm==4.51.0% P8 \% D1 H O- {
opencv-python==4.4.0.44
/ _* M6 V. M( _3 K. n% q onnxruntime==1.6.00 x; ~; E- f( r& |1 f O
开发者提供的一些文件资源(国内需木弟子):1 l4 F" G6 `: N+ F9 j8 |/ R0 v
1、下载模型/权重文件
& f/ X4 \, n% i7 B7 ghttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing: y! u6 J0 P. |$ [5 `, t! ^% M" z
2、用于练习的视频和图片文件2 |9 ]6 Z. O4 X
HD视频:5 o) I- e4 z( r c' R) r
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq- |. ~/ ]9 _" W6 U9 X
4K视频和图片:9 B3 H& K6 R6 r. O( M7 h) [( v
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing0 M3 m* X; K, U" @: R! g! S
项目demo脚本介绍:
9 c* ?/ W/ T) z, k' Z; p; R4 J: \inference_images.py:用于图片中的背景替换,用法如下:0 |4 M& T" W) \
python inference_images.py
! C1 s) A" N' _1 `--model-type mattingrefine
0 D/ i' u/ s: T6 [) j--model-backbone resnet50( i: v( G) w/ e/ H
--model-backbone-scale 0.25
, |- L) Q: }# B0 D" c* ^) I9 l% c+ V* F--model-refine-mode sampling
9 i6 Y/ i- }- \, z k: o: h--model-refine-sample-pixels 80000% r7 E" a0 b) L9 E6 F0 c
--model-checkpoint "PATH_TO_CHECKPOINT" [- Q" {) t( }8 S
--images-src "PATH_TO_IMAGES_SRC_DIR"; O2 O' Y3 U) S$ R/ S: e
--images-bgr "PATH_TO_IMAGES_BGR_DIR"+ C! B1 i- E' ?+ t& m; }
--output-dir "PATH_TO_OUTPUT_DIR", I) ?$ Z# K/ V$ _' B
--output-type com fgr pha
% j4 ]) N9 H% [+ L6 kinference_video.py: 用于视频中的背景替换,用法如下:6 ^) @, T2 @: R/ J7 D
python inference_video.py 5 {8 F$ {, B6 H0 I S9 W
--model-type mattingrefine 3 C, J; y9 j/ j7 x2 t2 R# p
--model-backbone resnet50
" o5 n2 O0 j7 x: L3 K; E--model-backbone-scale 0.25 , t& b+ k- `$ w* \1 @6 o# G8 v
--model-refine-mode sampling
( M0 P! w2 [ F/ c. Q3 z--model-refine-sample-pixels 80000
8 Z+ K6 l- G5 l) v) E--model-checkpoint "PATH_TO_CHECKPOINT" 6 D9 I: Q/ b2 z- k9 p1 W! g7 a
--video-src "PATH_TO_VIDEO_SRC" 8 a% K4 r! [/ j- U7 ~0 g3 M/ V3 H
--video-bgr "PATH_TO_VIDEO_BGR"
9 ^% _" G$ K7 \; ~--video-resize 1920 1080 & O1 H! k7 _+ J; ?4 E8 s3 c; U9 C
--output-dir "PATH_TO_OUTPUT_DIR" - \- J" Z T7 l$ Z4 ]
--output-type com fgr pha err ref
4 C% a7 j: }4 H3 T9 oinference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
- m) {+ H' Z% S9 x" f6 K8 {python inference_webcam.py
2 f* ?- f& |( p! v- ~' {+ ^--model-type mattingrefine
- ]: v, `' B& T B--model-backbone resnet50
: i9 E C0 r# T/ U, n) A--model-checkpoint "PATH_TO_CHECKPOINT"
. k" G6 \: B9 r6 G--resolution 1280 7209 n2 P: }: p2 n( b
虚拟摄像机1 Q+ T4 E; [3 z: ~4 F/ H' K
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:+ v6 D* j5 f' Z$ d' q3 [4 `
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
' e- Q) Z0 U' h, z9 G4 s" l; W- U在Google Colab上体验" G! T! L& Y9 E1 R
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。9 [5 V* h) T1 T% p- y8 S0 d
1、图片背景替换体验地址:/ I; F7 e1 @! d* f! d" V/ w# v
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
% q, A; C) n" ~( Z2、视频背景替换体验地址:
& x# [& V. N: N- C7 G- Bhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
. b) k p6 q! B附上开发者提供的项目演示视频:
; S7 Y) _7 R0 }* E, i9 A+ I- u: c. n
) V; }# d: S n) G: {. ~ |
|