|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
; H4 F/ N) v% n
$ W& r0 C. n7 q3 U8 v
项目源码地址:% ^5 s# ]" g1 s; {" n# e
https://github.com/PeterL1n/BackgroundMattingV27 s$ R5 w. @! J) @1 |# Q
项目依赖库:6 ~1 n6 [5 F& K* F# e
kornia==0.4.10 {2 Q& p# R* G \! T% Q2 f/ W- k9 b
tensorboard==2.3.02 G+ {7 c4 m+ K* J7 B' o* w
torchvision==0.8.1# ]6 l8 B) x% B$ T# f. S2 [ b
tqdm==4.51.09 I- W" {$ K+ S5 _
opencv-python==4.4.0.44( V8 u2 [9 N+ M3 G9 {8 p+ u; c+ A- `
onnxruntime==1.6.0 ^# w! z. b* u5 N/ ~
开发者提供的一些文件资源(国内需木弟子):
. r# g/ ^. e7 d( J6 R" ]1、下载模型/权重文件3 [1 x, Y4 A1 g6 `* b0 ^, T5 P
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing! Q3 Z1 [9 d G d+ V+ m/ ?
2、用于练习的视频和图片文件2 ]- l8 W C8 u/ F( i ?
HD视频:
4 d8 t" h9 g9 m5 |https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
& ]! y* @' L5 ~4 W0 U# k6 k B4K视频和图片:
( U9 W$ r% w6 r `https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing* K5 U) ?" K3 z/ p, |2 D# ]4 P
项目demo脚本介绍:$ J, c9 j! ?! z* E& v+ l
inference_images.py:用于图片中的背景替换,用法如下:
2 j$ U2 X- L9 R7 j0 |8 qpython inference_images.py4 Z# S, l1 g; t8 \; i
--model-type mattingrefine
: R' i4 }: x" u5 a* X4 y--model-backbone resnet509 I; m' y1 y3 V, h V3 h" S
--model-backbone-scale 0.25
9 M: r+ ]6 V U. `9 t--model-refine-mode sampling
7 ]8 C& I$ `. R--model-refine-sample-pixels 80000
7 b7 I" _0 U5 F* R/ y! I# B( V--model-checkpoint "PATH_TO_CHECKPOINT"
1 m6 y( ~! V( x1 @4 m--images-src "PATH_TO_IMAGES_SRC_DIR", [7 x/ {4 f- ?7 c, ]
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
' g4 A# f3 [# e. r' Z( j--output-dir "PATH_TO_OUTPUT_DIR"
8 B3 L8 \* Y' U--output-type com fgr pha
! v `4 S- X- X( Uinference_video.py: 用于视频中的背景替换,用法如下:& h) R8 L, Y+ j4 [
python inference_video.py , h8 a7 i x' R9 d
--model-type mattingrefine V0 A$ I5 ?4 o& k
--model-backbone resnet50 6 D, O: _( @/ d+ E" J
--model-backbone-scale 0.25 , B8 G7 O7 n: r
--model-refine-mode sampling
; L: \, T- a' o; v--model-refine-sample-pixels 80000 / N8 a5 o2 t8 x* G# f
--model-checkpoint "PATH_TO_CHECKPOINT"
; X" U. W- b: A3 F; X, j8 _--video-src "PATH_TO_VIDEO_SRC" 2 Q" H1 E8 @: B; V
--video-bgr "PATH_TO_VIDEO_BGR"
% A' C' ^9 O; P( W4 j, K--video-resize 1920 1080
9 E2 {1 [1 _# |" [. I) Z! l. F5 K--output-dir "PATH_TO_OUTPUT_DIR" 6 T6 ]7 F& f# }! ~7 M
--output-type com fgr pha err ref4 @1 n! c$ K9 M8 X7 v6 b8 F
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
, D8 ^1 [3 y7 @( I2 C4 P" p1 mpython inference_webcam.py 8 a/ y- M A! g) c/ s
--model-type mattingrefine ; M; l5 W8 \9 }6 Y! k
--model-backbone resnet50 # f! z( [; u D' _% d) ]) l
--model-checkpoint "PATH_TO_CHECKPOINT" \% Z- y6 J3 C \/ Q' Y
--resolution 1280 720
4 |# u* X0 w g6 D虚拟摄像机2 E2 B2 I8 T: [* w* ?) F) m! S
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
* \4 q& K5 N& Q( t2 ^https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux+ g0 K: p7 |' n6 R2 {' N
在Google Colab上体验; b( H1 L$ G" D5 Q7 [( y! F, S2 S
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
o2 h) z7 r+ K" D: c, W% \! q: ]1、图片背景替换体验地址:
; E) o' D) |4 h6 u8 |https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing- q) l% E3 e0 Q% n$ }* X5 E+ }5 a8 ]
2、视频背景替换体验地址:
* |% Y; s7 m9 ~/ Ahttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing7 ?; m# l1 r6 N( `& Y
附上开发者提供的项目演示视频:3 s4 g `, \* I8 f. o1 t* V1 s2 M
; T. o2 A: w2 N: v
|
|