|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。- Z( q& `! _$ C2 ]+ w: P
9 D6 Z+ |# n1 ~# {, h. W& D- d) R% x项目源码地址:
! x8 T' |) M4 W$ l: Mhttps://github.com/PeterL1n/BackgroundMattingV2
: Z: }- ^1 K/ s/ ~. G- \项目依赖库:' u% g+ h F( Z; v9 n
kornia==0.4.1% D! D* J2 Z( ~6 R% P/ ^
tensorboard==2.3.0
" r# O4 B, G; i7 I torchvision==0.8.1
1 w3 S/ h6 C y6 {: r$ z tqdm==4.51.04 }3 s$ V% ?9 r$ F0 c
opencv-python==4.4.0.44% }* H2 T' ^4 ~* Q. H% O! n
onnxruntime==1.6.0
, F2 Y5 }3 G* X" \- p$ w开发者提供的一些文件资源(国内需木弟子):/ t2 v) @5 {# u' P; X% D
1、下载模型/权重文件+ {1 u5 E( M* ?/ ~# O5 X ~
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing z# G! K0 Y& {
2、用于练习的视频和图片文件
% k" d* X8 `5 f' c0 w6 v7 ?0 o; cHD视频:; S& Q7 j% Y1 L/ g3 b& ^$ i. w
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
( w) l/ C4 F: s* E, v% O4K视频和图片:
5 i( M) J' a3 u6 ?* T/ ?https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
/ v" O% x) F+ `( B* s项目demo脚本介绍:
0 N( b) Y7 Q2 Minference_images.py:用于图片中的背景替换,用法如下:$ Y t3 ]$ K: p3 v8 ?0 ^& P
python inference_images.py
2 b* `' z5 x1 S: u' `, S# i; a--model-type mattingrefine$ g' q& f/ Q4 D, O
--model-backbone resnet509 C6 U1 `( O0 P$ |5 \( K
--model-backbone-scale 0.25' y! X, m# R8 B; Y6 m K# s9 R
--model-refine-mode sampling n9 b7 r0 I; D p
--model-refine-sample-pixels 80000
, O7 O; J0 W5 i; {--model-checkpoint "PATH_TO_CHECKPOINT"
) l( R4 ]& _2 }! p9 p--images-src "PATH_TO_IMAGES_SRC_DIR". q; g8 {# B7 M( G
--images-bgr "PATH_TO_IMAGES_BGR_DIR"
* ~. }2 [# e6 ?- j6 W' B--output-dir "PATH_TO_OUTPUT_DIR"
q) V6 Q# ~. z* U% Y--output-type com fgr pha
4 ?/ X$ ?4 M2 b7 ^- i! a- Y# Linference_video.py: 用于视频中的背景替换,用法如下:8 g( e. M: J$ z9 K/ ?% \! B
python inference_video.py : ?, N5 I3 C3 j8 A3 c' i0 w2 u! z
--model-type mattingrefine 5 i: I# c; d7 B; z" D$ a
--model-backbone resnet50 - t9 [3 P7 O% W* N' I) x( b
--model-backbone-scale 0.25
4 E( V+ {8 {8 s0 v, w7 S' |& p--model-refine-mode sampling ! n3 g9 O( s4 \* A3 z L/ G
--model-refine-sample-pixels 80000 . {0 U$ b- q8 G( z
--model-checkpoint "PATH_TO_CHECKPOINT" 1 M. K% ]2 i2 t. s
--video-src "PATH_TO_VIDEO_SRC" `# T3 k# f+ H
--video-bgr "PATH_TO_VIDEO_BGR"
$ k S3 h1 E* ]/ F) D+ j& C--video-resize 1920 1080 ! W& y/ I! j+ H; D p% T0 j* ]' J
--output-dir "PATH_TO_OUTPUT_DIR" " U6 z* t. l" }# X
--output-type com fgr pha err ref
2 F* N4 H" a+ Y0 I" ^inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
( A" P; A! e9 S1 |python inference_webcam.py
R- d# w1 `2 B--model-type mattingrefine
' y8 j7 a9 A" `2 ]* ^% ?( L--model-backbone resnet50 6 p3 t; w$ B2 f+ {( s
--model-checkpoint "PATH_TO_CHECKPOINT"
/ z2 {2 W3 f& z4 [7 {: _6 Y' J--resolution 1280 720. j0 I7 k, }% T) U$ x0 q' N, f
虚拟摄像机* @4 W+ i; H3 s2 x+ U P
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:4 U+ n7 Y, _5 K1 U2 j& X
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux+ S8 [( Q1 z# F# P' X6 z2 F+ B
在Google Colab上体验
( K9 ]) ~& u0 v3 |! f& P _ 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。) w7 J3 R! G1 ], P4 z
1、图片背景替换体验地址:
! e. x: `* |; u7 h2 Ohttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
. \, x; O% [* x( n2、视频背景替换体验地址:3 k/ o, y; T) A: s) n+ x
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing5 S8 B8 s& H, ^9 d9 e, E
附上开发者提供的项目演示视频:% ]8 ^9 r5 N2 [0 _) b, q
& X4 ]* Z1 Y m8 ?' e$ j
|
|