|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。/ {+ t8 z# I; m
& S X/ s! t, O2 G1 S项目源码地址:
3 ], `7 ~) m2 t7 S; q9 Shttps://github.com/PeterL1n/BackgroundMattingV2
8 T& b0 J( g' n0 j: T. @& v项目依赖库:. `' J1 B' ?" Y) I" R
kornia==0.4.1+ K5 h$ z! A+ C" U( e4 u
tensorboard==2.3.03 T6 v# d# H- ~. `8 f: N
torchvision==0.8.1
$ {/ X& {7 N6 h+ F& E1 n tqdm==4.51.0
* S1 P$ L* \% j8 D1 L7 |1 ? opencv-python==4.4.0.44
: K% m+ R, L5 a! s$ W8 D onnxruntime==1.6.04 O6 U( I2 c7 G
开发者提供的一些文件资源(国内需木弟子):
% U- x1 m' l# Z* `2 J1、下载模型/权重文件
A4 s/ \; @& e% `https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing& A* ]* n) W V- }6 j6 g
2、用于练习的视频和图片文件
1 H" B7 B k# U W8 i. [7 @HD视频:
! z- X& ^( B) Jhttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
5 C; C! B! s d* E+ \4K视频和图片:4 S( Q* V+ s6 F: D6 d: v5 E+ w8 g
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
- f. ?2 P! t6 C5 J: Z& q b) t项目demo脚本介绍:
# n8 T0 s! u: `6 {, j- ?inference_images.py:用于图片中的背景替换,用法如下:. k/ }+ i4 `# t& m" O* }
python inference_images.py
- ?6 i+ K; _; `( z* p, j: i4 \1 ]--model-type mattingrefine n9 `* y. B- `
--model-backbone resnet50* I2 ^# E+ p- _! u+ g
--model-backbone-scale 0.255 K4 y0 D$ I' J
--model-refine-mode sampling
: |# k* N- P! g/ e/ ~: M7 |. c--model-refine-sample-pixels 80000
) |; t8 c4 ~. b( [--model-checkpoint "PATH_TO_CHECKPOINT"
4 U4 \7 }$ g5 E' Y( K; T/ c/ }! k--images-src "PATH_TO_IMAGES_SRC_DIR"
' E" Z! i! O, @--images-bgr "PATH_TO_IMAGES_BGR_DIR") S# T: o& y( u3 X
--output-dir "PATH_TO_OUTPUT_DIR"
8 G# |3 o6 b& V# ~9 u' b--output-type com fgr pha- b1 S$ ~" P# A k) |
inference_video.py: 用于视频中的背景替换,用法如下:" A) C8 M, |" x; J
python inference_video.py * r1 I& Q% A A6 ?% J. H7 }
--model-type mattingrefine 2 U5 v, F4 Y9 _* ^
--model-backbone resnet50
0 U: N5 d1 N' T" u) T6 U--model-backbone-scale 0.25
8 Z6 \: `0 H% x% F- a1 @--model-refine-mode sampling & F3 k& q q% u3 t& \
--model-refine-sample-pixels 80000 R. a/ j7 d) ]0 @7 @! Q4 m
--model-checkpoint "PATH_TO_CHECKPOINT"
! f w9 q- M! J; w" k1 z--video-src "PATH_TO_VIDEO_SRC" : W' E1 P/ ^# m; D/ m+ ]6 x: v9 F
--video-bgr "PATH_TO_VIDEO_BGR"
2 {, s- p, K; M+ B1 @--video-resize 1920 1080
1 P7 k) h) N* g5 M. H--output-dir "PATH_TO_OUTPUT_DIR" $ x& U; ^2 s2 r" l& ^6 a8 e
--output-type com fgr pha err ref
$ N, x* A$ t8 k- V2 Jinference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:& [% y; j% D% w, e# R) v5 A
python inference_webcam.py # v& t/ U; D+ w$ Z" N3 o$ u @
--model-type mattingrefine # b! t" I7 k2 ?+ S) {* E
--model-backbone resnet50
4 x8 l8 Z: e$ @8 G4 H9 e A--model-checkpoint "PATH_TO_CHECKPOINT"
5 \7 B- k4 X) Z4 K/ G+ J2 P--resolution 1280 720' a% K$ D: q) e( D+ n# a
虚拟摄像机7 c+ n+ V' e& Y, A v* u5 M
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:2 q1 W) F- J7 x4 e& S
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux9 T; W) |' l2 c5 |; k1 B9 Z
在Google Colab上体验# V/ }4 Z: y ?* O
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。, M3 h( ?+ d3 u
1、图片背景替换体验地址:; N2 ^3 X5 A# S. W1 b; P# f
https://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
7 @" U- U2 U3 x1 n2、视频背景替换体验地址:
1 m( ^2 ]. G! @9 O5 @' h5 |https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing( s# c1 a7 @1 V4 X. B" c% \6 u
附上开发者提供的项目演示视频:2 b& t; M% X6 T- a" e4 P5 C b; f
" n5 G3 r+ l8 j, d. ?
|
|