Skip to content

Latest commit

 

History

History
101 lines (65 loc) · 2.86 KB

README_zh_Hans.md

File metadata and controls

101 lines (65 loc) · 2.86 KB

A Real-Time Video Portrait Matting Method Based on Large-Kernel Convolution

Teaser

English | 中文

论文 A Real-Time Video Portrait Matting Method Based on Large-Kernel Convolution的 GitHub 库。LKM 为高精度实时人像视频抠像设计。本文提出了一种基于大核卷积设计的视频人像抠图网络,通过使用大核卷积、小波变换和重参数化等技术,实现了端到端的高精度实时视频人像抠图。网络中使用了大核卷积,以提升对图像特征的编解码能力。同时,通过小波变换将图像的信息传递给解码网络,提供更多的有用信息。最后,采用重参数化技术将大卷积核并行的多个卷积分支进行融合,有效减少了计算负担,加快了推理速度。模型可以在Nvidia GTX 3090 GPU上实现HD 103 fps4K 94 fps的处理速度,实现实时视频抠图。


更新



环境配置

  1. 解压包并创建虚拟环境:
unzip LKM-main.zip
cd LKM-main
conda create -n LKM python=3.7
conda activate LKM
  1. 安装相应cuda版本的Pytorch,这里使用了cuda11.1版本:
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
  1. 安装使用unireplknet需要的库文件:
pip install -U openmim
mim install mmcv-full==1.5.0
mim install mmsegmentation==0.27.0
pip install timm==0.6.11 mmdet==2.28.1
  1. 安装其他库文件:
pip install -r requirements.txt

训练和评估

请参照训练文档(英文)


Demo

视频:

python inference.py \
  --variant unireplknet \
  --checkpoint "./pretrained/rep_model.pth" \
  --device cuda \
  --input-source "input.mp4" \
  --output-type video \
  --output-composition "out_com.mp4" \
  --output-alpha "out_pha.mp4" \
  --output-foreground "out_fgr.mp4" \
  --output-video-mbps 4 \
  --seq-chunk 12

摄像头:

python inference_wecab.py

速度

速度用 inference_speed_test.py 测量以供参考。

GPU dType HD (1920x1080) 4K (3840x2160)
RTX 3090 FP16 103 FPS 94 FPS
  • 注释1:HD 使用 downsample_ratio=0.25,4K 使用 downsample_ratio=0.125。 所有测试都使用 batch size 1 和 frame chunk 1。
  • 注释2:我们参照rvm测试速度的方法,只测量张量吞吐量(tensor throughput)。 直接使用摄像头进行测试速度会降低,但仍能保持较快的处理速度,实现实时推理。使用视频硬件编解码技术可能会进一步改善推理速度,详细请参考 PyNvCodec