|
|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
' W( k# T$ N4 L9 _' k
& }# |! W2 j) ]* v! { g
项目源码地址:4 ~" ^# v/ b ^/ j x4 N
https://github.com/PeterL1n/BackgroundMattingV2
( _# Y: [- ~" e项目依赖库:
1 h2 o6 c4 `7 F8 I7 x. }2 W kornia==0.4.1( t" s0 l- U/ J8 r4 U
tensorboard==2.3.0. ]+ h- ` c$ P) ?
torchvision==0.8.1
0 {, j# @/ Q! [/ I9 Z tqdm==4.51.0' [9 d9 u9 c: r% n
opencv-python==4.4.0.443 J8 U& G7 u* ?( c
onnxruntime==1.6.07 a' v# l ^# P1 ?
开发者提供的一些文件资源(国内需木弟子):
: `/ w+ |) o& x" B! c" B8 S1、下载模型/权重文件
1 j' ]% X- [; e9 D8 d3 f0 Y0 Qhttps://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing7 i# Z; H1 J' z$ S
2、用于练习的视频和图片文件
) [& Y ]/ I9 LHD视频:
6 t" }: X& R6 U0 J* rhttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq
7 _+ L9 @2 r# ]7 ]2 H3 [) P* ^" F4K视频和图片:2 `. y: l$ t2 Z" E7 V/ ^
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
" L8 r: F; V' x0 ]5 d1 e项目demo脚本介绍:
/ W" W6 R. G/ ^) B5 c+ d) Iinference_images.py:用于图片中的背景替换,用法如下:3 Y7 _% G1 a- `5 \2 ?
python inference_images.py' ]- ~9 U1 H3 n
--model-type mattingrefine5 X- O5 Z: ]7 n6 W" ^
--model-backbone resnet50
7 a; [4 B* b( t--model-backbone-scale 0.25
" y0 f. g& L7 Y--model-refine-mode sampling& R2 i' s4 C. B5 M: {
--model-refine-sample-pixels 800007 n" T. C9 c! h3 S9 t. b2 b
--model-checkpoint "PATH_TO_CHECKPOINT"
3 F" D% \# n8 R( g--images-src "PATH_TO_IMAGES_SRC_DIR"0 G. E' L$ O5 Y% |2 I7 M
--images-bgr "PATH_TO_IMAGES_BGR_DIR"9 a3 q# |& y) K" z( g/ t5 Q
--output-dir "PATH_TO_OUTPUT_DIR"
/ n. H9 d9 L1 ~: F0 _$ L5 }/ G/ H- a--output-type com fgr pha
' I1 h9 a8 a& c$ G+ A# Sinference_video.py: 用于视频中的背景替换,用法如下:
* X$ q" A: e: J0 Y# kpython inference_video.py 3 V& D% R9 D1 [9 m2 V2 f
--model-type mattingrefine
$ ?% b# I# L* \; v e3 v% w9 J) A& o--model-backbone resnet50 # w' o1 Q% u$ d. `8 @! n
--model-backbone-scale 0.25 . X- ]: Z) ]9 h) w3 x) f
--model-refine-mode sampling
; ~4 l, \8 m8 t. p1 i7 `--model-refine-sample-pixels 80000
/ e, M8 y+ z$ B% D+ p8 \- F--model-checkpoint "PATH_TO_CHECKPOINT" 6 ~# U0 S( ^$ l
--video-src "PATH_TO_VIDEO_SRC" 7 p7 e# Y* Z1 W& f3 b3 u
--video-bgr "PATH_TO_VIDEO_BGR"
4 T: R0 {( [# R; n+ U6 x8 \--video-resize 1920 1080
& X1 J8 Y' E4 s3 g4 p* m--output-dir "PATH_TO_OUTPUT_DIR" 4 K5 Y3 N2 K. v5 j% Z+ N
--output-type com fgr pha err ref3 _: a! M) H$ E) y/ b* e
inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
2 |+ A/ C/ o& y" `% x6 L. R3 X3 {python inference_webcam.py |7 A: ]% G- S# F3 x5 R1 L/ g
--model-type mattingrefine " m% @$ l5 F; V( |$ g
--model-backbone resnet50 9 p3 D( P& G/ c) G* x
--model-checkpoint "PATH_TO_CHECKPOINT" ( b, Y7 J- y( m( N6 G- T. [# H
--resolution 1280 720
$ a: p: t4 ^4 F3 h5 `虚拟摄像机
- Y+ L& i( Q$ z7 A( _" {; Y0 ] 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:6 Q ^7 c+ }, N* d* y7 c. H
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux" {- P4 L8 L+ A
在Google Colab上体验' @4 o) j; T( P/ z
另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。( _$ I+ J) N( G' ^/ f+ Q
1、图片背景替换体验地址:
h) L2 c7 p# { bhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing
- k7 i3 G" \/ ^( o" p, a' A- o2 d2、视频背景替换体验地址:
7 a( {7 `3 D9 Q0 Z2 Qhttps://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
9 A Z. d- {3 `7 ^附上开发者提供的项目演示视频:
5 z: w" J9 E/ |3 P+ e P% k7 ^% j/ `7 ?% \
|
|