|
BackgroundMattingV2 是华盛顿大学几位研究员提出的一种实时、高分辨率的背景替换技术,能保留头发细节,效果惊人,是基于 Python 实现的。在 4K 分辨率下,该技术的运行速度为 30fps,在现代 GPU 上,高清的运行速度为 60fps。该技术是基于背景抠图,其中一帧额外的背景被捕获并用于恢复前景蒙版和前景层。" w9 z! V9 [2 B" {9 W$ U
$ e5 X9 X: b9 l- V. X项目源码地址:
# Y1 W4 r* f1 Xhttps://github.com/PeterL1n/BackgroundMattingV24 R6 S; y i/ ?0 D
项目依赖库:6 s* H& a9 U$ z% K- t: w, Q/ p7 [
kornia==0.4.1
1 ^2 `, A/ s% u( F, X tensorboard==2.3.0
. j5 r4 e3 z* H: V torchvision==0.8.1# T( Z7 _$ u& L
tqdm==4.51.0
6 \) |. X: U9 y2 v7 n+ \* O opencv-python==4.4.0.44& v) A( ]1 y& b9 e4 E/ ]) E
onnxruntime==1.6.08 w: U. W( i! e5 h6 d) Z( e, b2 I( J
开发者提供的一些文件资源(国内需木弟子):
+ q' V7 e) ?* I2 h7 ]9 ?4 ]- z1、下载模型/权重文件
a) w6 V( m {: ^https://drive.google.com/drive/folders/1cbetlrKREitIgjnIikG1HdM4x72FtgBh?usp=sharing
2 o$ J4 f8 H ^% y* F2、用于练习的视频和图片文件
( E: c5 z1 ~2 l- J1 t) x9 ?* g# G( KHD视频:
) W$ v# Y. D4 [ d( Mhttps://drive.google.com/drive/folders/1j3BMrRFhFpfzJAe6P2WDtfanoeSCLPiq8 K4 j/ Y9 S: O' z( _2 L" l
4K视频和图片:
8 f% k! S0 Y5 Xhttps://drive.google.com/drive/folders/16H6Vz3294J-DEzauw06j4IUARRqYGgRD?usp=sharing
& S# W: U9 B" X$ C项目demo脚本介绍:
9 K# D+ j9 t& f$ _) Qinference_images.py:用于图片中的背景替换,用法如下:$ W N W# c0 D3 Y. a& _! \
python inference_images.py
% G# b1 D$ p, A$ j--model-type mattingrefine1 a& k' X' D" u0 V) K# G
--model-backbone resnet50
5 i6 v8 W" U# v& t--model-backbone-scale 0.253 B* i4 }- M& y- p% P4 H
--model-refine-mode sampling
+ F) E+ a% v b0 X! k% R" n--model-refine-sample-pixels 800004 Z6 y( e P9 `: r! h& n
--model-checkpoint "PATH_TO_CHECKPOINT"3 M* ^) D) ` [8 [
--images-src "PATH_TO_IMAGES_SRC_DIR"
2 j Z8 T3 v8 X" F--images-bgr "PATH_TO_IMAGES_BGR_DIR"
( q( C! d& _! B# y \- ]! S, F--output-dir "PATH_TO_OUTPUT_DIR"- D, H; O. z8 f Z, k
--output-type com fgr pha
4 d( n* A, p9 F. N" _inference_video.py: 用于视频中的背景替换,用法如下:. P" A# v* @. ~. A$ @" `; V! E
python inference_video.py
) w& d5 a& J- c" z4 J--model-type mattingrefine
- g" C9 a8 T( R- E1 k/ o/ v, ~--model-backbone resnet50 * [! {: M3 {0 y C! A# T
--model-backbone-scale 0.25
) W1 _2 o9 x; O* P--model-refine-mode sampling
1 I* T8 F; `8 V5 @) i--model-refine-sample-pixels 80000
+ N2 g) l5 e& l( k, A/ h--model-checkpoint "PATH_TO_CHECKPOINT" $ g' T1 f! k! y, U2 z5 b
--video-src "PATH_TO_VIDEO_SRC"
$ X8 B7 O4 `: V--video-bgr "PATH_TO_VIDEO_BGR" , a# D( \& `% y0 C* B; d& z; }
--video-resize 1920 1080
9 p% h S3 T+ f) Y Y: w--output-dir "PATH_TO_OUTPUT_DIR" ; Z( y5 N2 Q) z# P. c
--output-type com fgr pha err ref
8 k4 e1 ?, l( {7 d4 @inference_webcam.py:用于使用网络摄像头下的交互式背景替换,用法如下:% X4 }3 [' f* C$ A! N5 N
python inference_webcam.py 5 B! Y% X/ N: e4 s$ S
--model-type mattingrefine
2 j3 h- E# M& y4 O' n+ C$ o--model-backbone resnet50
F9 `' l7 \4 X' {. i! n/ b3 [2 q--model-checkpoint "PATH_TO_CHECKPOINT" 7 h! y( ~- \9 O* [8 H
--resolution 1280 720, l& F. n# `* H3 Y% P, g/ V2 R
虚拟摄像机
4 O. l- I' ]$ U7 o 开发者提供了一个应用插件,通过他们的模型将网络摄像头视频输送到一个虚拟摄像头。该插件仅适用于Linux系统,可以在Zoom视频会议软件中使用。更多详情请查看:8 k4 H; K& E" f' x/ C- w" k
https://github.com/andreyryabtsev/BGMv2-webcam-plugin-linux- b5 @" W" l% ^
在Google Colab上体验
. m. X2 v0 w' w4 l, ^0 H 另外,开发者还提供了Google Colab的体验地址(国内需要木弟子),可以体验替换图片和视频中的背景。- B, w; G1 Q" ^3 \: G9 o6 m$ _
1、图片背景替换体验地址:
9 h z9 h, C* W1 X' \) _# Qhttps://colab.research.google.com/drive/1cTxFq1YuoJ5QPqaTcnskwlHDolnjBkB9?usp=sharing5 j0 y& ~: _# g, N: J2 G
2、视频背景替换体验地址:: K$ W' {+ R* [. `
https://colab.research.google.com/drive/1Y9zWfULc8-DDTSsCH-pX6Utw8skiJG5s?usp=sharing
7 g5 ~' I4 v$ G5 I5 S附上开发者提供的项目演示视频:
# F7 e/ k2 J. B4 I s# v
6 v* U: ]$ A7 {/ E6 L; L |
|