|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。0 C3 Q! u Y, k; g/ u [
% t/ }" l7 C' K
项目源码地址:
( [& y+ c9 g" `! y# P ~& \& jhttps://github.com/PeterL1n/BackgroundMattingV2% h) v* @) {0 N6 P
项目依赖库:; h+ d* w7 [" A6 `' h* }
kornia==0.4.1
. a+ L( y; m8 v' v3 b; e. C tensorboard==2.3.0
$ W2 ~6 o9 X' \' u/ G# Y torchvision==0.8.1
" A" \% p; G- \" y: _, f tqdm==4.51.0
# r, B( F& l! z! k8 J, k opencv-python==4.4.0.44
3 Z4 u: z8 c( j+ ^ onnxruntime==1.6.0* ]8 D* v+ b0 Y
开发者提供的一些文件资源(国内需木弟子):2 Q1 R, P' @7 z" v# V' n) s
1、下载模型/权重文件
+ F: ]. m, a, B9 K( D! }https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing; ~ ?' O* p& I, A2 y
2、用于练习的视频和图片文件! c6 x# t* K9 E( Q& b4 i; \
HD视频:4 Z6 g7 }; U& R# Z
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq. P# ]. r7 G% z( v0 z
4K视频和图片:
5 g( f$ l4 }: E5 |; Y. {+ v9 ohttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
) ^3 [2 ?( R4 \" S! }项目demo脚本介绍:
B' q. L8 J8 finference_images.py:用于图片中的背景替换,用法如下:2 N. ^# G2 n9 n- Y* E4 n: W
python inference_images.py
7 g: L* o" v7 r3 T3 n--model-type mattingrefine, ~' ~% A+ h0 N; B- C2 v5 U
--model-backbone resnet50: s4 G3 o. e& s% [
--model-backbone-scale 0.255 H6 v7 ~' c6 o$ T
--model-refine-mode sampling" c6 T4 u& U9 V; d' P7 Q2 M5 r. n8 w! u
--model-refine-sample-pixels 80000
$ z5 b6 ~2 [; l' i V5 V) e% S1 P--model-checkpoint "PATH_TO_CHECKPOINT"/ i2 S3 W1 E# p
--images-src "PATH_TO_IMAGES_SRC_DIR"
( `% q4 ~" y8 }7 [$ o" A( M8 D( `: @--images-bgr "PATH_TO_IMAGES_BGR_DIR"
" x6 X8 r, T) a/ v8 f6 x/ ]* n--output-dir "PATH_TO_OUTPUT_DIR"
3 C5 ?, ?! V7 J$ b3 n P--output-type com fgr pha/ h9 J4 }# Y# w( v( o
inference_video.py: 用于视频中的背景替换,用法如下:
! y+ l$ F1 H! h2 M' J% X) b1 epython inference_video.py ; B' @9 h! [$ U( I" `
--model-type mattingrefine
: A, b/ ~- C; p: O- L5 f& Z--model-backbone resnet50
8 ^6 b2 o3 o2 A8 o1 |8 }) Y; _--model-backbone-scale 0.25
! k0 I3 M* U# q2 W2 \- `--model-refine-mode sampling
2 ^, c% G' _2 `& F1 ^2 E* o5 W I2 S--model-refine-sample-pixels 80000
, C+ U1 E: L. N( Z--model-checkpoint "PATH_TO_CHECKPOINT" ! o5 o7 N ?) _! W5 y3 c0 ~4 Y
--video-src "PATH_TO_VIDEO_SRC" m$ l6 o; u' t- X" j% E# {: @; Z( g
--video-bgr "PATH_TO_VIDEO_BGR"
3 L9 m, n& k, q--video-resize 1920 1080 , S. O' x; j( q/ q- W/ c
--output-dir "PATH_TO_OUTPUT_DIR" ! j& N; P- w1 m1 F; l& K, n
--output-type com fgr pha err ref* I* Q5 k2 [7 c) |# }! C8 V' O1 s
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:% n8 \1 ^6 t A
python inference_webcam.py . w$ E; t" f$ g8 Q8 Q7 M8 A1 [" u
--model-type mattingrefine l9 i( Z) T8 ]
--model-backbone resnet50 : r$ R# ]6 f2 y8 C. m- _
--model-checkpoint "PATH_TO_CHECKPOINT"
) w }# L7 l7 w5 g--resolution 1280 7206 ?( e. _0 | U$ t H
虚拟摄像机, o$ o' G; K7 _9 m- i( A
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:% [; Q" E* [5 e3 x: y2 V9 V; D
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux+ B8 v' k' i4 G' v: W' \4 B
在Google Colab上体验9 K: U. F4 U4 s. ~) i
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。3 \, w3 S. j( M# B& w0 Y7 e: \
1、图片背景替换体验地址:
; z1 w7 R/ {9 b+ b' i3 _& f9 xhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing; X8 i% Q$ _8 n; n7 a% o
2、视频背景替换体验地址:; X/ Z" e7 O( e$ H: m4 T0 H
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing* G& I5 V( Y/ d6 {5 K
附上开发者提供的项目演示视频:
7 C1 h8 @' w" s% f* v6 b
6 Q( M- e8 ]- V; e |
|