|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
2 D2 f; q! v0 S5 H
`- W$ c# |0 r G. U; z: d项目源码地址:
% [" j; e1 Y8 k8 @5 t& U3 ~https://github.com/PeterL1n/BackgroundMattingV2
/ x& X* J* n R6 F2 C4 i项目依赖库:- F: \4 w" w4 k7 f
kornia==0.4.1& l( V: q4 U8 `( | X. w8 L) W6 o
tensorboard==2.3.0* {4 `/ Y1 b: n. ~1 H% {- J
torchvision==0.8.1
X4 G. E) s% l% H$ e' v; i" u tqdm==4.51.0
4 Z7 l4 U8 h( J8 q opencv-python==4.4.0.44* f. p/ Z+ ~! Z- q
onnxruntime==1.6.0
' R6 f! Q2 O: x$ \) v开发者提供的一些文件资源(国内需木弟子):
1 p! W' H2 Q, ]1、下载模型/权重文件
. n9 K5 g) v; n+ Q6 j- ^https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
! K5 B8 `% n; P7 m2、用于练习的视频和图片文件
! b! [+ V# Y" R+ R2 ~HD视频:
! K1 E$ @8 g q" H- X, b* h, o+ ^https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
8 C8 m% r2 i- T. v2 K5 S4K视频和图片:3 u2 J- @$ L- L. T9 W E$ ?: l* g
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing+ H% ~7 R9 U4 B6 c9 X; T- l2 {5 X
项目demo脚本介绍:
+ n& e+ Z# s& N h% b! ]' Ainference_images.py:用于图片中的背景替换,用法如下:8 M0 Y: a( M& Q0 H/ T
python inference_images.py/ O/ C' I! j* s! j+ O6 U
--model-type mattingrefine
8 l2 }7 x: m. G7 o' k--model-backbone resnet50
9 E$ e7 Z$ P) x) E1 d7 W--model-backbone-scale 0.25; k3 _2 l' M/ E1 f. c( C }& P
--model-refine-mode sampling
/ `1 k* D2 N' V) R+ x% l( l--model-refine-sample-pixels 80000' O/ x) { e6 g, k9 Y
--model-checkpoint "PATH_TO_CHECKPOINT"
2 w3 E5 h1 N! q3 N& g4 W; f4 S--images-src "PATH_TO_IMAGES_SRC_DIR"
- S) i* [/ a' [" ]--images-bgr "PATH_TO_IMAGES_BGR_DIR"; e/ T) N" j1 n3 i3 T3 o
--output-dir "PATH_TO_OUTPUT_DIR"% J3 {3 Q' f8 S5 C9 H
--output-type com fgr pha
7 \9 `" i2 k' g9 A7 iinference_video.py: 用于视频中的背景替换,用法如下:- D; A% a9 E. R
python inference_video.py 3 ?; b5 i* [, v' Y
--model-type mattingrefine ) o: [7 Y* V( {: }
--model-backbone resnet50 % q& z# b1 z, @, p& j* p
--model-backbone-scale 0.25 : j, e: [* F) f; H8 i1 M& g. H* M
--model-refine-mode sampling 2 D! ?! y& \0 q8 S
--model-refine-sample-pixels 80000
' o8 _7 d* E& f O3 A3 c4 U: w--model-checkpoint "PATH_TO_CHECKPOINT" ( ?& f b0 f& [6 B. d, J$ o
--video-src "PATH_TO_VIDEO_SRC" U: y5 r- _' z
--video-bgr "PATH_TO_VIDEO_BGR" $ N* R# n! {1 |, z& c
--video-resize 1920 1080 6 t% [3 N* w6 l) X! A% z, \
--output-dir "PATH_TO_OUTPUT_DIR"
$ l& ]/ ]. M2 _. z/ f8 Y/ q--output-type com fgr pha err ref
7 n; ~# h0 A) R1 ~inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
1 i: J' ?6 h2 }# l) r9 W6 ]7 l) ~, Epython inference_webcam.py
5 P* P4 X! P; Z) {--model-type mattingrefine / `, [; ?7 A; Y, R. J
--model-backbone resnet50
0 c; w3 I" ]4 Y' N--model-checkpoint "PATH_TO_CHECKPOINT"
$ j$ |, U0 D8 S( P: t--resolution 1280 720
( W0 L y6 Z8 g0 W, x虚拟摄像机# b# B: K' J; ^$ W! F( j
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
. T4 R( A# S$ X) Z7 ^ r: n8 @# Mhttps://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
6 N; L# s8 ?+ p- j3 V7 Y) s, r h' I在Google Colab上体验- N# W. I3 A3 _3 i! d6 n& k
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
' Y- \0 x7 D' k% N( s0 n1、图片背景替换体验地址:
t5 n9 b J: k% {6 c9 ]$ Z: Khttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing% A) k3 y2 ~4 U# G2 i; O1 a
2、视频背景替换体验地址: y' [/ c: k1 e, e& W
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
( c" x) ~1 H% V: F# z3 B1 y附上开发者提供的项目演示视频:
/ |% k, M7 U* Y5 x% o& q4 H' f/ Z
+ Q e7 Q' m: D7 L Q1 { |
|