openAI维基百科 openAI维基百科
  • 首页
  • 语言
    • LLaMA
    • ChatGPT
      • 基础教程
      • Prompt训练
      • API编程指南
      • ChatGPT拓展
    • 其它模型
  • 图像
    • 风格化
    • 画质增强
    • 图像识别
    • 视觉交互
    • 扩展填充
  • 绘画
    • Midjourney
    • Stable Diffusion
      • LoRA
      • ControlNet
      • Fooocus
      • ComfyUI
    • 其它模型
  • 音频
    • 人声模拟
    • 音频识别
    • 音频分离
    • 智能编曲
  • 视频
    • AI换脸
    • AI补帧
    • 视频抠图
    • 视频动漫化
    • 文本生成视频
  • 3D
    • 文本生成模型
  • 教程
    • 基础知识
    • 微软AI学习
    • 深度学习笔记
    • 交互式了解AI
  • 问答
  • 资源
首页 › 视频 › 视频补全抠像去水印|ProPainter

视频补全抠像去水印|ProPainter

PhiltreX
2 年前
视频补全抠像去水印|ProPainter-openAI维基百科

开源免费AI视频自动补全抠像去水印工具ProPainter

今天本站交流群里有人咨询关于ProPainter的部署,其实这个项目的部署过程非常简单,所以站长之前没打算写,既然有人问,那就在这里补充一下吧。

该项目用于将视频中的人物或水印移除,总的来说效果还是不错的,但美中不足的是,需要自己对视频需要处理的主体进行抠像,如果将视频转换成序列帧,然后在Photoshop中逐帧来处理显示是不现实的,工程量极大。所以这里可以使用本站之前给出的一些关于视频AI自动抠像的教程啦。

项目仓库

GitHub:sczhou/ProPainter

关于项目

更新日志

  • 2023.09.24: 我们正式移除了去水印演示,以防止我们的工作被用于不道德的目的。
  • 2023.09.21: 添加了内存高效推断的功能。请查看我们的 GPU 内存要求。
  • 2023.09.07: 我们的代码和模型现已公开。
  • 2023.09.01: 创建了此仓库。

更新计划

  • 创建一个交互式的 Gradio 演示。
  • 创建一个 Colab 演示。
  • 更新内存高效推断的功能。

前置条件

在执行项目安装之前,我们还需要安装Git和Conda,如果您的电脑还未安装这两款软件,请先根据本站所给出的教程安装。

Windows系统安装Git请参阅此文章:

Git|Windows安装教程

Windows系统安装Conda请参阅此文章:

Anaconda|Miniconda|Windows安装教程

网络问题

在安装过程中,你可能即便开启了魔法上网也无法下载一些编程依赖库,关于魔法上网的相关配置问题不方便在站内讲解,请自行查看【魔法上网】的教程内容。

安装教程

如果您是初学者,对于命令行不太理解,那么请按下键盘上的Win键+R键后,在弹出的新窗口内输入CMD并按下回车键,在CMD窗口中按顺序执行如下的每一条命令。

首先我们需要确认一个工作目录,用来存放该项目的相关环境依赖文件。本站所选择的目录为D盘的根目录下openai.wiki文件夹,完整路径为:D:\openai.wiki。

在CMD中执行如下命令,这将会自动检测D盘是否在openai.wiki文件夹,没有则自动创建该文件夹。

if not exist D:\openai.wiki mkdir D:\openai.wiki

继续执行如下命令,在CMD中强制切换当前工作路径为D盘的openai.wiki文件夹。

cd /d D:\openai.wiki

拉取该项目的Github仓库文件,将其下载至openai.wiki文件夹内。

git clone https://github.com/sczhou/ProPainter.git

如果您无法完成此步骤,执行后报错或者无法下载,可以下载该文件将其解压至D:\openai.wiki即可。

环境部署

在CMD中执行如下命令,强制切换至ProPainter的项目目录。

cd /d D:\openai.wiki\ProPainter

在CMD中执行下面的命令行,创建Conda虚拟环境至该项目的目录中,方便日后重装系统也能够正常使用,无需重新部署环境。

conda create -y -p D:\openai.wiki\ProPainter\ENV python=3.8

初始化Conda环境,防止后续操作可能存在报错等问题。

conda init cmd.exe

激活已创建的Conda环境,这样可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate D:\openai.wiki\ProPainter\ENV

执行如下命令,安装该项目的相关模块依赖库。

pip install -r requirements.txt

模型下载

模型存放结构如下:

weights
   |- ProPainter.pth
   |- recurrent_flow_completion.pth
   |- raft-things.pth
   |- i3d_rgb_imagenet.pt (用于评估VFID指标)
   |- README.md

官方下载

Releases · sczhou/ProPainter (github.com)

网盘下载

关于此项目的模型,本站已为您下载并整理好。如果你不方便通过官网下载,可以使用本站所提供的网盘下载地址。

weights
下载
类型: RAR 大小: 222.15MB

模型安装

在您下载完成模型之后,将该模型解压后移动至项目根目录下的weights文件夹即可。

运行方式

在以后每次运行该项目时,只需要先激活我们刚刚所创建的Conda虚拟Python环境,然后通过命令行运行。

在CMD中执行如下命令,强制切换至项目目录文件夹。

cd /d D:\openai.wiki\ProPainter

激活已创建的Conda环境,这样才可以正常使用该项目,否则将会自动调用系统中的默认Python。

conda activate D:\openai.wiki\ProPainter\ENV

使用教程

自定义素材

ProPainter不支持自动对视频抠像,如果你想使用自己上传的素材,那么需要对视频进行抠像,下面是一些本站之前写的关于AI视频抠像的教程,大家可以根据自身情况选择性使用。

关于人物视频抠像可以查看如下这篇文章,安装部署以及使用都比较简单。

cv_effnetv2_video-human-matting|视频人像抠图

如果你对抠像要求比较高,可以参数如下这篇教程,虽然是对图片抠像,但可以通过批量功能对序列帧进行抠像处理,上手难度较大。

Segment-Anything|万物分割

对象移除

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

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

视频补全抠像去水印|ProPainter-openAI维基百科
视频补全抠像去水印|ProPainter-openAI维基百科

我们通过在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遮罩。

注意:不用理会绿色,那只是抠象的示意,如果你想使用自己的视频素材,只需要黑白图像就可以了。

视频补全

这个功能就是将已有被遮挡的部分进行二创补全,大家可以用这个来处理马赛克水印。

假如视频中的水印位置是固定的,那么我们在给出遮罩时,可以给一张黑白图像,该项目将会自动补全白色部分。

视频补全抠像去水印|ProPainter-openAI维基百科
视频补全抠像去水印|ProPainter-openAI维基百科

如果你的视频过大,硬件内存不足等问题,可以在通过使用--width和--height来指定视频宽高,这样可以达到节省内在的目的。

python inference_propainter.py --video inputs/video_completion/running_car.mp4 --mask inputs/video_completion/mask_square.png --height 240 --width 432

半精度推理

处理一个576x320的视频;设置--fp16在推断期间使用fp16(半精度)。

python inference_propainter.py --video inputs/video_completion/running_car.mp4 --mask inputs/video_completion/mask_square.png --height 320 --width 576 --fp16

内存高效推断

视频修复通常需要大量的GPU内存。在这里,我们提供了各种功能,以便进行内存高效推断,有效避免了内存不足(OOM)错误。您可以使用以下选项进一步减少内存使用:

  • 通过减少--neighbor_length(默认值为 10)来减少本地邻居的数量。
  • 通过增加--ref_stride(默认值为 10)来减少全局引用的数量。
  • 设置--resize_ratio(默认值为 1.0)以调整处理视频的大小。
  • 通过指定--width和--height来设置较小的视频大小。
  • 设置--fp16在推断期间使用 fp16(半精度)。
  • 减少子视频的帧数--subvideo_length(默认值为 80),这有效地解耦了 GPU 内存成本和视频长度。

下面显示了不同子视频长度的 fp32/fp16 精度的预估 GPU 内存要求:

分辨率50 帧80 帧
1280 x 72028G / 19GOOM / 25G
720 x 48011G / 7G13G / 8G
640 x 48010G / 6G12G / 7G
320 x 2403G / 2G4G / 3G

数据集准备

以下内容用于训练,如果你只是简单的使用,可以忽略下面的内容。


数据集YouTube-VOSDAVIS
描述用于训练(3,471)和评估(508)用于评估(90中的50)
图像[官方链接](下载训练和测试所有帧)[官方链接](2017,480p,TrainVal)
遮罩[谷歌云盘] [百度网盘](为了复现论文结果而提供;在 ProPainter 论文中提供)

训练和测试分割文件提供在 datasets/<dataset_name> 中。对于每个数据集,您应将 JPEGImages 放置到 datasets/<dataset_name>。

将所有视频帧的大小调整为 432×240 以进行训练。将下载的掩码文件解压缩到 datasets。

数据集目录结构将被安排如下:(注意:请仔细检查)

datasets
   |- davis
      |- JPEGImages_432_240
         |- <video_name>
            |- 00000.jpg
            |- 00001.jpg
      |- test_masks
         |- <video_name>
            |- 00000.png
            |- 00001.png   
      |- train.json
      |- test.json
   |- youtube-vos
      |- JPEGImages_432_240
         |- <video_name>
            |- 00000.jpg
            |- 00001.jpg
      |- test_masks
         |- <video_name>
            |- 00000.png
            |- 00001.png
      |- train.json
      |- test.json

训练

我们在train_flowcomp.json(用于 Recurrent Flow Completion Network)和train_propainter.json(用于 ProPainter)中提供了训练配置。

运行以下命令之一以进行训练:

用于训练 Recurrent Flow Completion Network

python train.py -c configs/train_flowcomp.json

用于训练 ProPainter

python train.py -c configs/train_propainter.json

您可以运行相同的命令以恢复训练。

为了加速训练过程,您可以使用以下命令为训练数据集预计算光流:

为训练数据集计算光流

python scripts/compute_flow.py --root_path <dataset_root> --save_path <save_flow_root> --height 240 --width 432

评估

运行以下命令之一以进行评估:

用于评估流完成模型

python scripts/evaluate_flow_completion.py --dataset <dataset_name> --video_root <video_root> --mask_root <mask_root> --save_results

用于评估 ProPainter 模型

python scripts/evaluate_propainter.py --dataset <dataset_name> --video_root <video_root> --mask_root <mask_root> --save_results

分数和结果也将保存在 results_eval 文件夹中。请使用 –save_results 以进一步评估时间扭曲错误。

引用

如果您发现我们的存储库对您的研究有用,请考虑引用我们的论文:

@inproceedings{zhou2023propainter,
   title={{ProPainter}: Improving Propagation and Transformer for Video Inpainting},
   author={Zhou, Shangchen and Li, Chongyi and Chan, Kelvin C.K and Loy, Chen Change},
   booktitle={Proceedings of IEEE International Conference on Computer Vision (ICCV)},
   year={2023}
}

许可

该项目根据 NTU S-Lab License 1.0 获得许可。重分配和使用应遵循此许可证。

致谢

此代码基于 E2FGVI 和 STTN。一些代码来自 BasicVSR++。感谢他们出色的工作。

总结

真的越来越智能了,其实只要不用来训练,使用起来还是非常简单的。

训练这一块,站长电脑硬件跑不动,暂时不讲了。

版权申明:本文所有内容源自openai.wiki网站,转载务必注明出处。
AI视频
28
2
StableVideo|稳定扩散视频生成
上一篇

评论 (2)

取消
  • 14x6dy

    cloab快速部署
    https://github.com/camenduru/ProPainter-colab.git

    2 年前 未知地区 回复
  • why

    为啥不更新了呀大大

    1 年前 湖南 回复

猜你喜欢

  • CoDeF|无闪烁视频AI风格转换
  • StableVideo|稳定扩散视频生成
  • AnimateDiff|文本生成视频

论坛公告

为方便大家交流,交换资源等。

本站论坛限量开放注册中,免费答疑。

欢迎大家踊跃注册,关闭注册时间待定。

论坛地址:https://bbs.openai.wiki

增值服务

本站无广告|无会员|免注册

  1. 提供有偿远程帮助服务
  2. 提供POE会员代充代售
  3. 提供ChatGPT代充代售
  4. 提供Midjourney代充服务

商务合作

关于合作请点此联系

  • 首页
  • 语言
  • 图像
  • 绘画
  • 音频
  • 视频
  • 3D
  • 教程
  • 问答
  • 资源
Copyright © 20221212-2025 openAI维基百科. Designed by nicetheme. 京公网安备 11010502051430号 京ICP备2021019752号-5
  • 首页
  • 语言
    • LLaMA
    • ChatGPT
      • 基础教程
      • Prompt训练
      • API编程指南
      • ChatGPT拓展
    • 其它模型
  • 图像
    • 风格化
    • 画质增强
    • 图像识别
    • 视觉交互
    • 扩展填充
  • 绘画
    • Midjourney
    • Stable Diffusion
      • LoRA
      • ControlNet
      • Fooocus
      • ComfyUI
    • 其它模型
  • 音频
    • 人声模拟
    • 音频识别
    • 音频分离
    • 智能编曲
  • 视频
    • AI换脸
    • AI补帧
    • 视频抠图
    • 视频动漫化
    • 文本生成视频
  • 3D
    • 文本生成模型
  • 教程
    • 基础知识
    • 微软AI学习
    • 深度学习笔记
    • 交互式了解AI
  • 问答
  • 资源