React 前端导航

Propainter 搭建自己的图像处理工具

Propainter 是一款功能强大的图像处理工具,主要用于图像编辑和绘画。它提供了许多高级功能,可以帮助您创建精美的艺术作品或编辑现有的图像。

功能介绍

  • 绘画工具:Propainter 提供了各种绘画工具,包括画笔、铅笔、油漆刷、橡皮擦等,以满足不同创意和风格的需求。

  • 图层管理:您可以创建多个图层,每个图层可以独立编辑,然后叠加在一起以创建复杂的图像。这有助于更好地控制图像的组成部分。

  • 滤镜和特效:Propainter 提供了各种滤镜和特效,如模糊、锐化、色彩调整等,以改善图像外观或添加艺术效果。

  • 文本和标注:您可以轻松添加文本、标签和注释到图像中,以用于图形设计、漫画制作或说明目的。

  • 图像导入和导出:支持多种图像格式,您可以导入现有的图像并在 Propainter 中编辑,然后将其导出为所需格式。

快速开始

准备预训练模型

将我们的预训练模型从版本V0.1.0下载到weights文件夹。(所有预训练的模型也可以在第一次推理期间自动下载。)

目录结构如下:

weights
   |- ProPainter.pth
   |- recurrent_flow_completion.pth
   |- raft-things.pth
   |- i3d_rgb_imagenet.pt (for evaluating VFID metric)
   |- README.md

快速测试

我们在inputs文件夹中提供了一些示例。运行以下命令进行尝试:

# 第一个示例(对象删除)
python inference_propainter.py --video inputs/object_removal/bmx-trees --mask inputs/object_removal/bmx-trees_mask
=# 第二个示例(视频补全)
python inference_propainter.py --video inputs/video_completion/running_car.mp4 --mask inputs/video_completion/mask_square.png --height 240 --width 432

结果将保存在结果文件夹中。要测试您自己的视频,请准备输入mp4视频(或分割帧)和逐帧掩码。

如果要指定被处理的视频分辨率或要避免内存不足,可以设置--width和--height的视频大小:

# 处理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)来减少本地neighbors的数量。
  • 通过增加--ref_stride(默认值为10)来减少全局引用的数量。
  • 设置--resize_ratio(默认值为1.0)以调整处理视频的大小。
  • 通过指定--width和--height来设置较小的视频大小。
  • 将--fp16设置为在推理过程中使用fp16(半精度)。
  • 减少子视频的帧数——subvideo_length(默认值为80),有效地将GPU内存成本和视频长度解耦。

下面的表格展示了fp32/fp16精度的不同子视频长度的估计GPU内存需求:

Resolution 50 frames 80 frames
1280 x 720 28G / 19G OOM / 25G
720 x 480 11G / 7G 13G / 8G
640 x 480 10G / 6G 12G / 7G
320 x 240 3G / 2G 4G / 3G

数据集准备

数据集 YouTube-VOS DAVIS
描述 For training (3,471) and evaluation (508) For evaluation (50 in 90)
图片 [Official Link] (Download train and test all frames) [Official Link] (2017, 480p, TrainVal)
Masks [Google Drive] [Baidu Disk] (For reproducing paper results; provided in ProPainter paper)

训练和测试拆分文件在datasets/<dataset_name>中提供。对于每个数据集,应该将JPEGImages放置到datasets/<dataset_name>中。将所有视频帧的大小调整为432x240,以便进行训练。将下载的掩码文件解压缩到数据集。

数据集目录结如下:(注意:请仔细检查)

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(用于递归流完成网络)和train_propainter.json(用于propainter)中提供。

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

 # For training Recurrent Flow Completion Network
 python train.py -c configs/train_flowcomp.json
 # For training ProPainter
 python train.py -c configs/train_propainter.json

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

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

 # Compute optical flow for training dataset
 python scripts/compute_flow.py --root_path <dataset_root> --save_path <save_flow_root> --height 240 --width 432

评估

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

 # For evaluating flow completion model
 python scripts/evaluate_flow_completion.py --dataset <dataset_name> --video_root <video_root> --mask_root <mask_root> --save_results
 # For evaluating ProPainter model
 python scripts/evaluate_propainter.py --dataset <dataset_name> --video_root <video_root> --mask_root <mask_root> --save_results

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

声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。邮箱:farmerlzj@163.com。 本站原创内容未经允许不得转载,或转载时需注明出处: 内容转载自: React前端网:https://qianduan.shop/blogs/detail/203
想做或者在做副业的朋友欢迎加微信交流:farmerlzj,公众号:生财空间站。

#ProPainter教程#图像处理#视频修复#视频去水印#AI工具

相关推荐

推荐一系列 chrome 浏览器的 AI 工具插件

推荐一系列 chrome 浏览器的 AI 工具插件,用不了chatgpt 的,这些都可以平替,大厂出品,亲测好用,基本免费。