|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。 T. l9 e; e5 E6 A( H0 _
; |9 ]7 J- E/ R5 a项目源码地址:
9 g# r- b; [. G( H- v$ }* Z( |https://github.com/PeterL1n/BackgroundMattingV2
* ?$ s5 p- {% D" C8 f6 R9 E9 t+ R# s9 _项目依赖库:
, s/ D) L( P1 }4 z7 M kornia==0.4.1" B! Y/ r' x* c5 n# h
tensorboard==2.3.0+ a( Z- m0 t3 _
torchvision==0.8.1
! d; C4 s7 Y/ L/ k( K tqdm==4.51.0
4 D" w _+ K+ j1 S0 I( \3 v2 ?9 z opencv-python==4.4.0.44, S; D6 W% B2 p0 u* H, L
onnxruntime==1.6.0
( ] ^% \& K% R0 k开发者提供的一些文件资源(国内需木弟子):+ |, b, e$ ?+ ]6 B4 u
1、下载模型/权重文件" w A# w; C! f+ m( c3 e
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing2 x" b2 d1 M+ }: v* a
2、用于练习的视频和图片文件
) h9 E5 P" B( P$ }7 F; \HD视频:
2 r5 {7 _$ }: ?2 Z. {1 j$ P! Chttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
: |( S2 X) I* v" p. v g x4K视频和图片:
( K2 V) M( N/ y3 d+ P: ], r6 t7 @https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
- Y! F# a5 A7 L. j项目demo脚本介绍:, T3 G* t# p2 O/ t9 ~" S* ~
inference_images.py:用于图片中的背景替换,用法如下:
- g4 L* ]( Q8 ~: Q% @* Z2 \python inference_images.py3 q5 N e5 P9 L
--model-type mattingrefine9 i+ p0 s% N' g
--model-backbone resnet50
5 n8 q, O; X* r8 `--model-backbone-scale 0.25
$ M: A: w$ K+ ^' C: I6 z--model-refine-mode sampling
+ B6 M5 x+ u+ {6 v/ H--model-refine-sample-pixels 80000
! E; s7 d; q, j* M! @: v--model-checkpoint "PATH_TO_CHECKPOINT"
5 b/ a+ J% k& G; E# [5 `' X7 Q--images-src "PATH_TO_IMAGES_SRC_DIR"
7 H( @0 P$ U5 h/ G# ^--images-bgr "PATH_TO_IMAGES_BGR_DIR"4 o+ ?, X* d8 q8 c6 J' F( y
--output-dir "PATH_TO_OUTPUT_DIR"6 I+ u4 }4 I& H# V" g
--output-type com fgr pha
% J$ x% G1 s6 j( _% h8 D' \inference_video.py: 用于视频中的背景替换,用法如下:; K! {/ U9 i I" j. A) N- n
python inference_video.py
) D# `9 ], U) N) b# U0 t3 g& I--model-type mattingrefine / P3 ]; g, E g! v9 d6 ?
--model-backbone resnet50 8 X: P0 L7 S6 }- X1 b
--model-backbone-scale 0.25 - A( O( W( \$ J- x9 C% {9 y
--model-refine-mode sampling + u2 W; k: E% a D
--model-refine-sample-pixels 80000
6 U4 K/ n9 |, U- [& f& s6 Z--model-checkpoint "PATH_TO_CHECKPOINT"
y! ?( q# S2 S( y' H9 u--video-src "PATH_TO_VIDEO_SRC"
+ P8 C% Q w7 N--video-bgr "PATH_TO_VIDEO_BGR" ' T+ G2 V/ T, n4 @5 m! |6 `
--video-resize 1920 1080
a5 R* M- F# M' O5 o( i$ `1 l--output-dir "PATH_TO_OUTPUT_DIR"
' p6 g9 {4 s" x# V' s--output-type com fgr pha err ref3 B7 D9 e2 W4 s- s1 n
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
* M, k3 w& F: R+ e% `: Spython inference_webcam.py , s9 U- g; f, p& g- B# M) r8 a
--model-type mattingrefine ) ]3 W/ |1 M5 ?' Y! z5 f
--model-backbone resnet50
3 E! w! g- ?* b6 S% j6 s--model-checkpoint "PATH_TO_CHECKPOINT" % H: z# B) @8 {. d& v
--resolution 1280 720$ H V0 v; i3 T5 w. b6 l- D
虚拟摄像机
% `# i- l! C0 E$ l# @+ f4 ?# R- Q- y 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:
: v6 X. U" f8 L- U Y1 ?https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux
3 J5 x4 O2 l" h, \+ R9 W% T在Google Colab上体验
: G( M0 s# {1 [9 F8 h, p 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。
, z R; f, j8 P1、图片背景替换体验地址:
5 x8 L; u% ]( D4 g) nhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
1 k, i5 ]. a0 `1 v# l: W" ~) j2、视频背景替换体验地址:- r8 E$ n, @0 I: y0 S
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
* D- I5 r0 e1 ?: C7 s' ]5 Y+ P附上开发者提供的项目演示视频:
( }" L/ r0 a" P& R y5 i
& c, B8 ]. L6 L. {- I |
|