|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
, B4 i' k) R3 |4 ?
' r7 a/ }1 l8 I4 S项目源码地址:
" L: B+ H! g+ n0 Zhttps://github.com/PeterL1n/BackgroundMattingV2" K0 N# i! O' n' w2 ~4 ~& Y' `. D
项目依赖库:
5 q' o& i7 C! v- g kornia==0.4.1
* @: ]+ L4 a+ W5 A tensorboard==2.3.00 v5 J' j% d7 a; k
torchvision==0.8.1
0 e3 y# Q2 P; w2 O/ Z4 j, n tqdm==4.51.0
9 d F. w: I+ U, N opencv-python==4.4.0.44# f* E8 K o3 D2 m
onnxruntime==1.6.0
3 H8 B: `- u. J8 S& [9 h开发者提供的一些文件资源(国内需木弟子):/ u4 X6 g; Y, q% a. o% M& L
1、下载模型/权重文件2 A3 q3 r* R+ Z( y
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing# p# S6 W& T# A
2、用于练习的视频和图片文件
- o/ P% e% ^7 {HD视频:* S5 q$ l4 ^" }8 h" h
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq# |7 A2 Y5 l8 a4 A- P% h2 w
4K视频和图片:
$ `2 N* d# @: Y* W$ E9 [! Ehttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing' W9 z, q& H$ g6 D) H# }
项目demo脚本介绍:
& M; |( d% B% P) y" Y1 Yinference_images.py:用于图片中的背景替换,用法如下:" x' e5 E. Z8 y2 Z7 ?5 q
python inference_images.py; \- c M) K+ g2 Z; \& t
--model-type mattingrefine: l! H. z( A7 w1 \) n, K7 J. a
--model-backbone resnet50
; l4 C) f7 k8 J# S; v--model-backbone-scale 0.25
) X$ B1 d4 U _, l8 N- @2 [--model-refine-mode sampling9 Q. r% |3 G1 F4 V
--model-refine-sample-pixels 800004 U: t& \& L# I6 x/ D
--model-checkpoint "PATH_TO_CHECKPOINT"
8 x* Y1 b( g$ k, t) t1 s1 Y1 B--images-src "PATH_TO_IMAGES_SRC_DIR"% M/ u! v! L7 F3 d7 A; L, Q
--images-bgr "PATH_TO_IMAGES_BGR_DIR") J* ?2 @8 {' k9 j @ K. {) S, V' `2 D
--output-dir "PATH_TO_OUTPUT_DIR"' _. y4 j4 ~; t" h
--output-type com fgr pha
) a2 G$ b2 V8 L7 R U' Rinference_video.py: 用于视频中的背景替换,用法如下:& t- Z2 t! O4 N2 D5 o# z7 n8 O6 o" a
python inference_video.py
% \, R6 }+ [3 O; w3 r' t" k--model-type mattingrefine 3 u5 w; S1 q ^' K9 B% V
--model-backbone resnet50
; S3 x' u0 ^1 Z--model-backbone-scale 0.25 / y3 j. X' |- Q3 w
--model-refine-mode sampling
6 {8 Z1 ~& B- }0 o( P9 M--model-refine-sample-pixels 80000
3 U* N8 _0 b$ `! S% n--model-checkpoint "PATH_TO_CHECKPOINT"
( \% z0 v- m+ X7 f--video-src "PATH_TO_VIDEO_SRC" + u) o: k6 Z" |7 A9 B6 @
--video-bgr "PATH_TO_VIDEO_BGR"
; C' j/ W3 l/ B0 d--video-resize 1920 1080 9 O5 ?- g( b, f9 c
--output-dir "PATH_TO_OUTPUT_DIR" Q4 M- F" h; L A
--output-type com fgr pha err ref
. q2 m& ~% f" S: Sinference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:1 G Y r+ |7 D, l! f
python inference_webcam.py
& A5 B2 w) b. F' H& a" \' p--model-type mattingrefine
3 b! O6 S0 @$ v, z/ x( [3 l--model-backbone resnet50
, l. t, e8 X5 v1 {' z--model-checkpoint "PATH_TO_CHECKPOINT"
5 {0 n* r) s) u: \--resolution 1280 7209 F+ F" L% d5 S; y
虚拟摄像机
8 t% C& {0 v. H) ?' t2 V1 v 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
8 J$ L- z; H* X! M9 A; Thttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
8 g: f% n, S a8 [$ p在Google Colab上体验- d6 a7 O8 L+ s
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。: t$ X4 g" c8 `( d* S
1、图片背景替换体验地址:* Z; f4 t" t+ B. N. F( b' F
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
) n K" Z- K. b" S E! ^+ W% ~4 U2、视频背景替换体验地址:) p0 _* Z# l( e- r3 a
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
5 U! K! g& m4 ^% k. N8 x# G附上开发者提供的项目演示视频:
$ z! ?' h9 t6 M- ?, k0 t" s. v5 F0 e3 w7 T& c; Q& h
|
|