GitHub:sczhou/ProPainter

一、介绍:

该项目用于将视频中的人物或水印移除,总的来说效果还是不错的,但美中不足的是,需要自己对视频需要处理的主体进行抠像,如果将视频转换成序列帧,然后在Photoshop中逐帧来处理显示是不现实的,工程量极大。

文章百度链接提供

二、配置环境

conda create -n propainter python=3.8
conda activate propainter
pip install torch-1.10.0+cu113-cp38-cp38-win_amd64.whl
pip install torchvision-0.11.0+cu113-cp38-cp38-win_amd64.whl
pip install opencv-python -i https://mirror.baidu.com/pypi/simple
pip install einops -i https://mirror.baidu.com/pypi/simple
pip install yapf -i https://mirror.baidu.com/pypi/simple
pip install av -i https://mirror.baidu.com/pypi/simple
pip install addict -i https://mirror.baidu.com/pypi/simple
pip install einops -i https://mirror.baidu.com/pypi/simple
pip install future -i https://mirror.baidu.com/pypi/simple
pip install numpy -i https://mirror.baidu.com/pypi/simple
pip install scipy -i https://mirror.baidu.com/pypi/simple
pip install matplotlib -i https://mirror.baidu.com/pypi/simple
pip install scikit-image -i https://mirror.baidu.com/pypi/simple

三、使用教程

对象移除

在我们想要移除视频中某个对象之前,我们需要先将这个视频转换为序列帧,也就是一张张图像。然后将这些图像进行抠像,得到主体遮罩(Mask)。

官方案例中给了一些示例文件,左侧是.\ProPainter\inputs\object_removal\bmx-trees文件夹的视频序列帧文件,右侧是.\ProPainter\inputs\object_removal\bmx-trees_mask文件夹的视频遮罩序列帧文件。

我们通过在CMD中执行如下命令就可以得到想要的内容啦。

python inference_propainter.py --video inputs/object_removal/bmx-trees --mask inputs/object_removal/bmx-trees_mask

这个命令行的内容非常简单,下面做一下解释。

python inference_propainter.py --video 视频序列帧文件夹路径 --mask 视频遮罩序列帧文件夹路径

处理完成后的视频将保存在results文件夹中,如果你要测试自己上传的视频,请准备mp4格式的视频(或拆分帧)和逐帧Mask遮罩。

四、效果展示