|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。5 X; r: {* k" e) `( a
. O" Y! p y% p7 q. q项目源码地址:
6 M$ k- p1 K/ k# L4 ]3 B) _https://github.com/PeterL1n/BackgroundMattingV2
! M* C4 ?4 k. b2 r项目依赖库:4 S4 @! X* f+ o! U
kornia==0.4.1
& x* a# E& g5 l' h; }$ m7 X tensorboard==2.3.0
! O* X3 r: x& j! N, I9 B torchvision==0.8.14 C4 k9 k+ S4 k2 d- B
tqdm==4.51.0
) j. @4 b U; Y H2 t. T( k3 C opencv-python==4.4.0.44
2 s8 q3 X* Y! { onnxruntime==1.6.0& K9 Z7 Q$ n/ ]! P$ m$ t' X @
开发者提供的一些文件资源(国内需木弟子):! R1 x( {& e/ d$ F9 S; S1 V6 ]+ q' @
1、下载模型/权重文件
}7 q$ K- c7 N( z5 P7 t. B/ J: khttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
, I" K, z! I1 v( L( `, W2、用于练习的视频和图片文件
: @8 K3 F+ e$ s. ]- a4 JHD视频:1 ]" _6 t6 z/ R- J; y. q
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
! A, D6 A! }& x) n- v4K视频和图片:
5 e6 z/ R2 h4 y# z2 Dhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing. C$ e# Z0 T8 k: A8 b* _. L
项目demo脚本介绍:/ J1 Z, A% b1 a8 A$ T9 \3 C
inference_images.py:用于图片中的背景替换,用法如下:" [5 }) K3 p$ J% W$ x
python inference_images.py& l6 t* ~- m& F+ Z: I2 D
--model-type mattingrefine8 |9 Z z; j. f" `3 Z L
--model-backbone resnet502 d( G- d% T' a1 e' `2 k# n
--model-backbone-scale 0.252 B, _% c5 M1 }
--model-refine-mode sampling1 G, L) P/ t5 ^& C$ m
--model-refine-sample-pixels 80000. E. k+ v5 c$ y& ~
--model-checkpoint "PATH_TO_CHECKPOINT"1 x' g N6 d$ O+ a* f' ^7 Z& m
--images-src "PATH_TO_IMAGES_SRC_DIR"
+ W3 X1 z& I% B, k% d k--images-bgr "PATH_TO_IMAGES_BGR_DIR"
# b, K: m+ g" S8 z--output-dir "PATH_TO_OUTPUT_DIR"
8 {: [5 y+ u$ f% Q6 Y--output-type com fgr pha- U! Z/ I8 ?& D3 x9 Z
inference_video.py: 用于视频中的背景替换,用法如下:1 u: ^$ e; |) l2 g: K$ G" k! p
python inference_video.py
6 D& ~/ r: f1 T--model-type mattingrefine
; v6 E! ~8 B9 ~2 e& }1 B--model-backbone resnet50 # P6 O$ z8 |2 H; \' Z0 _
--model-backbone-scale 0.25
/ A* |% o q' V E--model-refine-mode sampling / M" b5 H- M& J6 [& f% \& L
--model-refine-sample-pixels 80000 * D! x! e$ T. P; I
--model-checkpoint "PATH_TO_CHECKPOINT"
/ ~ n' X; e4 V3 [. E--video-src "PATH_TO_VIDEO_SRC" ; }* ?7 v6 J7 Q
--video-bgr "PATH_TO_VIDEO_BGR" 2 R" j- t9 ^" g
--video-resize 1920 1080
8 S5 U) a. ]8 D' e3 |5 g$ N0 X--output-dir "PATH_TO_OUTPUT_DIR" ( e8 l2 H& M2 f
--output-type com fgr pha err ref
) ?! M3 A2 K9 V6 [3 Hinference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:0 T$ y/ M' m2 R- J4 p$ H8 `
python inference_webcam.py
4 x% h8 l% A3 d--model-type mattingrefine 9 s. [; a' e9 ^# @8 q5 g
--model-backbone resnet50
& C6 @3 b( M" m% B5 A! F1 D4 O4 A--model-checkpoint "PATH_TO_CHECKPOINT"
' W g, A) l" X& G, X( u v, X8 j* r--resolution 1280 720
$ l: V7 f# c" y, |7 Y虚拟摄像机6 Y' i/ }% N8 o5 Z- j: v* ~
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:, |( Y- x% T9 ]5 p
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux, [7 i2 g I% g& y) l J
在Google Colab上体验
/ W) E) P. S3 b- I+ d2 `0 ? 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。8 j' L+ j8 ^! c, n$ m$ M4 U
1、图片背景替换体验地址:
* m# a* O6 p/ I3 ~8 d$ ^/ Q' bhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
8 G: E( a$ ]4 B2、视频背景替换体验地址:. l7 u% O+ ^- q2 [5 \! K; `
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
1 y. ?' X5 j, S2 w0 @& R6 P附上开发者提供的项目演示视频:0 r: n7 E3 e3 u/ x \3 f! U/ s& g
1 S# l: _- d3 z0 | A
|
|