|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。
' o" [( ?+ r/ l7 |& z
2 I6 I3 n& i8 p5 c! \9 ~7 }
项目源码地址:5 `! M- b6 p9 a7 f9 S8 o
https://github.com/PeterL1n/BackgroundMattingV2
+ u9 d8 o& z5 ^0 ~8 T* Q项目依赖库:! [- x, B* \4 t: s5 k! g
kornia==0.4.1
3 ~% V8 ` ?0 `4 T tensorboard==2.3.0( g) l0 p( J2 x2 K- c- e
torchvision==0.8.1
X3 P0 \( |4 u* H. `6 Z* | tqdm==4.51.0* o5 U* z5 b* V! j/ P, Q: E
opencv-python==4.4.0.442 |! j; N2 y- m4 H# `& p/ f e( N
onnxruntime==1.6.0
, L& e% R+ E, G* M% r开发者提供的一些文件资源(国内需木弟子):
8 b' w" F* I0 h: L* L! t1、下载模型/权重文件0 W2 V3 H8 y6 {7 D3 H9 f
https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
$ ~8 O# h) @/ {2、用于练习的视频和图片文件
1 V! M# Z' d% e. x4 W5 OHD视频:& i6 ^* R/ b3 w' w5 ]) S
https://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq& q# r, |* s/ W3 M& R
4K视频和图片:: j. t! J& }3 g. i: {7 T
https://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
4 R! W, e8 d( ]; G项目demo脚本介绍:
! E2 S5 H. v! t1 e/ ninference_images.py:用于图片中的背景替换,用法如下:
' h" }' k: W @- spython inference_images.py: U$ }4 A" [' \+ S7 l
--model-type mattingrefine
0 S( ^; }0 }8 @& g--model-backbone resnet50
7 x( A5 a' T# m3 j4 h--model-backbone-scale 0.25" @& D' w7 \" r. J. C( ~, m" p j
--model-refine-mode sampling
+ ?5 V. l: P2 ]$ f--model-refine-sample-pixels 80000% T* V4 G4 }" N! O) o, B
--model-checkpoint "PATH_TO_CHECKPOINT"
! [5 p4 L/ C* B1 X2 e! j( k; _--images-src "PATH_TO_IMAGES_SRC_DIR"
2 c8 u3 K8 ?# p$ `% ?--images-bgr "PATH_TO_IMAGES_BGR_DIR"& d! Q" ^8 R* y4 Z8 l7 K7 i6 ?
--output-dir "PATH_TO_OUTPUT_DIR"8 [( u7 c$ M: h# ?. P6 H, M
--output-type com fgr pha8 H" S0 {& d2 k, g2 u) S
inference_video.py: 用于视频中的背景替换,用法如下:
5 Y. i. k& }) l+ \python inference_video.py
& |( m) _' D1 o* q/ g# y, _7 M4 I! ^--model-type mattingrefine ' |$ n8 b L; r; H
--model-backbone resnet50
5 v; r& b M" g2 f--model-backbone-scale 0.25
8 c Y; ^' Y" L- g- I--model-refine-mode sampling
1 [! m/ `6 k+ Z! P8 ]5 A f--model-refine-sample-pixels 80000
# q* {8 V; v; m& I0 T--model-checkpoint "PATH_TO_CHECKPOINT" " \% P# ]' J ?0 P( j" \# z2 F% r1 B
--video-src "PATH_TO_VIDEO_SRC"
' b1 H% e9 T5 c+ {( e! n$ x) ]& E& ^--video-bgr "PATH_TO_VIDEO_BGR" 9 |' ^+ v+ s0 w- n1 ~
--video-resize 1920 1080
/ Y# x) t! l% t, D--output-dir "PATH_TO_OUTPUT_DIR" , v& V6 I5 P$ W6 a0 t
--output-type com fgr pha err ref
+ A1 o5 w1 O. j% v- p' H# kinference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:
: U$ F# n. G& P3 b, E# Wpython inference_webcam.py 7 Q, i6 }. z }1 }8 r2 V( p
--model-type mattingrefine
9 o. L4 ]% Y! u; b$ Y& y9 [: W--model-backbone resnet50
/ L2 U$ s, t" u! Y. w; d--model-checkpoint "PATH_TO_CHECKPOINT" ! n3 C% H: s) o& X
--resolution 1280 7209 _" _3 p9 q5 M4 d
虚拟摄像机8 @6 @2 k4 y7 o
开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:; ] S# b3 Q" _% |$ `3 h
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux+ |! l9 O! F, ]% X4 F2 f5 [
在Google Colab上体验
/ j9 s, ^. I- F. V! ^! } 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。' l, \- R* B9 c' ]) Q' f
1、图片背景替换体验地址:
7 s/ n, q% `/ d+ @ p8 `' H* y7 h' Mhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing7 c. r1 e9 _9 ?' }( v2 Z
2、视频背景替换体验地址:8 _' g! c1 d6 H
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
, ]8 H K; O0 N( r( m* x附上开发者提供的项目演示视频:
* N( I( @ |8 B" ?; ~! ?5 l7 _0 h
: V4 u R) L5 m9 C1 P1 S |
|