|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。2 p8 n8 Q0 Y* V5 e) Y$ U# I( o: v% s
5 J; ~' L2 {3 w5 \$ |& H, p
项目源码地址:
! e+ ~ E, M2 `/ F9 a6 Yhttps://github.com/PeterL1n/BackgroundMattingV2
! F0 a% Z% m; d3 E# d# p+ A项目依赖库:
2 P$ ]9 S5 {/ z4 g) B+ j' } kornia==0.4.1! X6 o, R' l7 r, n* ~1 O& X
tensorboard==2.3.0% z% @$ H1 i% g
torchvision==0.8.15 S1 l; D9 V& t; R# Z% c9 f6 j
tqdm==4.51.0! q: Z: Q) \' Z* v4 B# h
opencv-python==4.4.0.44
, b( _2 @& M9 y+ b- s3 {+ s* ? onnxruntime==1.6.0
( h$ n. y4 Q, l, \% j: `* f开发者提供的一些文件资源(国内需木弟子):
; K' e P3 j p2 `2 k4 H1、下载模型/权重文件" _) n: B2 |8 \, g
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing4 p7 W6 h1 g" z }( p
2、用于练习的视频和图片文件8 f$ H: p% P2 A
HD视频:3 o2 y0 w" R6 A/ [5 v% w
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
3 A2 W& ~$ I+ a- r, b4K视频和图片:
( @/ y( q0 x% l) C+ j/ jhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing% _9 d4 P7 Z, i/ ]
项目demo脚本介绍:
4 o* L G t8 J9 p8 ]# Hinference_images.py:用于图片中的背景替换,用法如下: k" _$ M# J* F c* Z' N
python inference_images.py
5 s+ q* I6 I7 u X--model-type mattingrefine
, i( u9 v9 H8 p- c--model-backbone resnet50
! q1 n# J/ q: ^ m& b" O1 M+ Q# d--model-backbone-scale 0.25
! n, c. c: c5 [$ c/ W) ~--model-refine-mode sampling% B9 G# l7 F8 i' ?: i( Y
--model-refine-sample-pixels 80000; Z2 L, D, ` h5 R
--model-checkpoint "PATH_TO_CHECKPOINT"# U$ h" N6 q: h1 m: [2 K5 q
--images-src "PATH_TO_IMAGES_SRC_DIR"( H5 P* g' X# M- D$ h3 B
--images-bgr "PATH_TO_IMAGES_BGR_DIR"$ {! p+ a0 a' @% {0 \, ]0 i' U
--output-dir "PATH_TO_OUTPUT_DIR"# B8 }2 d: B/ p1 l/ M
--output-type com fgr pha+ f" {+ Z3 }; D. h7 ~) L& h
inference_video.py: 用于视频中的背景替换,用法如下:7 V8 ]. M& M" W/ W. l+ I0 \
python inference_video.py 9 D$ T$ P5 V, S3 M" a; v
--model-type mattingrefine
( d! Q% x5 j. M. o) }--model-backbone resnet50
# g$ {( Q5 ?# S$ T/ h% K- y--model-backbone-scale 0.25 7 I# E! Z& @& D) t/ T# V+ g
--model-refine-mode sampling * C9 z7 C& }) w, w
--model-refine-sample-pixels 80000 * m9 i4 i) s9 ]1 c' n: [5 j& x! p
--model-checkpoint "PATH_TO_CHECKPOINT"
7 J2 M2 _' b6 m0 s: h$ V& y( z! R--video-src "PATH_TO_VIDEO_SRC" 2 d6 D' {6 b D4 v0 X
--video-bgr "PATH_TO_VIDEO_BGR"
6 Y3 H0 Q2 h5 t. G( [$ t6 o, {--video-resize 1920 1080
^3 A0 a( }! o) p: {& P$ W) k7 w- n--output-dir "PATH_TO_OUTPUT_DIR"
+ {5 }3 H9 _$ _% q( x) C--output-type com fgr pha err ref$ \: v/ f+ { e9 E4 ^* h$ M
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
# @, {8 |$ f9 k7 V" }- k- U4 ^python inference_webcam.py
& Z! d! H. C3 E& Q' D--model-type mattingrefine 7 [, m5 V# i# y' J( V
--model-backbone resnet50 3 {, b. \0 ~7 w) `& Y
--model-checkpoint "PATH_TO_CHECKPOINT"
: U9 y V3 y$ M# E" T1 ?--resolution 1280 720
4 H6 _- Z) l% s9 E# V% q" q虚拟摄像机 o$ B' _, i9 {* h& h- [
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
, _* x3 {8 ?6 j; W5 r: fhttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
9 r! Q3 l; T; d: P, ]在Google Colab上体验' E, s5 Z: W5 t
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。& M( R& l! t+ o8 s& n
1、图片背景替换体验地址:! v) P+ P) L# u: x
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing3 x$ I! X0 k1 T+ Q' L
2、视频背景替换体验地址:
4 Q, @) k' A9 l( r; yhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
$ l3 G w7 V# C附上开发者提供的项目演示视频:
3 `% f* y$ M6 b: h: N" j5 v6 E: l# |! s; K+ e
|
|