Python图片视频超分模型RealBasicVSR的使用教程

目录
  • 前言
  • 安装
    • 1、虚拟环境创建
    • 2、安装pytorch
    • 3、安装openmim
    • 4、安装mmcv-full
    • 5、安装mmedit
    • 6、安装scipy
    • 7、模型下载
  • 使用
    • 图片超分
    • 视频超分
    • 压缩图片为对比视频样例
  • 总结

前言

很久没更新这个专栏了,最近比较忙。前段时间看到了这个模型觉着很有意思,弄下来自己玩了玩,但是没时间写文章,一直搁置到现在。

废话不多说,先上Github地址: RealBasicVSR地址

从给出的效果来看,还是很不错的,左侧是超分后的画面,右边是原画质,得到明显提升。下面我说一下我的安装过程,还有一些使用中的踩坑,让大家去测试项目的时候可以提前规避。

安装

项目拉下来之后,我们先打开README,看看说明。

安装的步骤不多,但是还是有一些坑的,下面是我的安装步骤,如果你们自己安装的有问题的话,可以参考一下我的步骤。

1、虚拟环境创建

作者没有给出需要的python版本,这里我用的python3.8

conda create -n real python=3.8
conda activate real

2、安装pytorch

这里本来我以为我现在的最新版本可以跑的,后面发现不行,所以老老实实的按照作者的版本安装。

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch

3、安装openmim

这里没什么好说的,装就完了。

pip install openmim -i https://pypi.douban.com/simple

4、安装mmcv-full

同上

mim install mmcv-full

5、安装mmedit

同上

pip install mmedit -i https://pypi.douban.com/simple

6、安装scipy

这个作者没写,但是要装。

pip install scipy -i https://pypi.douban.com/simple

7、模型下载

嗯,在外网比较难下,我下好了,放到我的百度云盘。

链接 提取码:1234

在项目中创建文件夹checkpoints,把下载的文件放进去。如下图

使用

ok,环境装好了,我们看看怎么使用。

作者提供了图片文件夹处理方式和视频处理方式,我们挨个测一下。

图片超分

我就不准备用作者提供的demo图了,我自己找了一张,如下图。

图片尺寸

放置目录如下

执行命令如下

python inference_realbasicvsr.py configs/realbasicvsr_x4.py checkpoints/RealBasicVSR_x4.pth data/demo_001 results/demo_001

执行结果

2022-05-08 10:57:06,303 - mmedit - INFO - load checkpoint from torchvision path: torchvision://vgg19
load checkpoint from local path: checkpoints/RealBasicVSR_x4.pth
/home/zhangmaolin/.local/lib/python3.7/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at  ../aten/src/ATen/native/TensorShape.cpp:2157.)
  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]

结果图如下

可以看出明显的清楚了很多。

结果图尺寸

视频超分

然后我们看看视频超分的情况,这部分是有一些坑的,后面会说到。

首先我准备了一个视频,视频分别率如下。

可以看到视频分辨率540p。

执行命令如下,里面有作者给出样例没有的参数,我后面注意里面会解释。

python inference_realbasicvsr.py configs/realbasicvsr_x4.py checkpoints/RealBasicVSR_x4.pth data/12345.mp4 results/demo_123.mp4 --fps=25 --max_seq_len=2

执行结果

2022-05-08 11:02:01,023 - mmedit - INFO - load checkpoint from torchvision path: torchvision://vgg19
load checkpoint from local path: checkpoints/RealBasicVSR_x4.pth
/home/zhangmaolin/.local/lib/python3.7/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at  ../aten/src/ATen/native/TensorShape.cpp:2157.)
  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]

最终视频分辨率情况 

注意

1、首先,视频原长度是2分钟的,我截取到5s的视频进行超分处理的。不然会显存溢出。

2、--max_seq_len=2参数也是为了避免显存溢出,总的来看,这个模型不太适合直接跑视频,最好的方式还是跑图片序列,然后最后压缩图片为视频比较好。

压缩图片为对比视频样例

作者给了一个demo程序可以将输出的图片压缩为前后对比视频,如下图说明。

我测试了一下,代码这里需要改动一下,代码框出的部分需要把注释取消。

对比视频如下图,左边为超分后效果,右边为原图效果。

总结

总的来说,该模型处理图片还是效果很好的,可以稍微改造一下

以上就是Python图片视频超分模型RealBasicVSR的使用教程的详细内容,更多关于Python RealBasicVSR的资料请关注我们其它相关文章!

(0)

相关推荐

  • 基于Python制作图像完美超分处理工具

    目录 前言 安装 使用 图片超分 视频超分 项目说明 代码说明 总结 前言 很久没更新这个专栏了,最近比较忙.前段时间看到了这个模型觉着很有意思,弄下来自己玩了玩,但是没时间写文章,一直搁置到现在. 废话不多说,先上Github地址: RealBasicVSR地址 从给出的效果来看,还是很不错的,左侧是超分后的画面,右边是原画质,得到明显提升.下面我说一下我的安装过程,还有一些使用中的踩坑,让大家去测试项目的时候可以提前规避. 安装 项目拉下来之后,我们先打开README,看看说明. 安装的步骤

  • Python 如何利用ffmpeg 处理视频素材

    目录 前言 一.安装 二.subprocess调用 三.ffmpy3 转码 解复用 复用 拆分成图片 四.最后 前言 第一次处理视频素材可以手动用剪映来处理,然后再用代码进行自动化处理,不然连朝哪个方向自动化处理可能都不知道 那清楚处理流程之后,怎么用Python来处理视频素材呢? ffmpeg! ffmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序 使用这个神器,便可以处理各种视频素材内容,极度舒适 下面一行来分享一下如何使用这个神器 一.安装 首先需要在ffm

  • python 实现图片特效处理

    目录 一.黑白特效 二.流年特效 三.旧电影特效 四.反色特效 前言: 对于 ​图片处理​,在日常生活中我们常常能够看到. 比如发个朋友圈之前,我们需要给自己的​照片加个滤镜​:在上传头像时候,需要​对照片进行裁剪​,这些都是图片的处理. 待处理的原图: 一.黑白特效 将图片处理后,变为黑白颜色 把像素的R,G,B三个通道数值都置为:​​r*0.299+g*0.587+b*0.114​​ 效果 黑白特效: 代码:  #!/usr/bin/env python # encoding: utf-8

  • Python Opencv实现图片切割处理

    本文实例为大家分享了Python Opencv实现图片的切割处理,供大家参考,具体内容如下 Opencv对图片的切割: 方法一: import os from PIL import Image def splitimage(src, rownum, colnum, dstpath):     img = Image.open(src)     w, h = img.size     if rownum <= h and colnum <= w:         print('Original

  • Python调用ffmpeg开源视频处理库,批量处理视频

    代码示例 # coding=utf-8 import os import subprocess import datetime import json, pprint import re, time import threading import random import shutil class FFmpeg: def __init__(self, editvdo, addlogo=None, addmusic=None, addvdohead=None, addvdotail=None):

  • Python图片视频超分模型RealBasicVSR的使用教程

    目录 前言 安装 1.虚拟环境创建 2.安装pytorch 3.安装openmim 4.安装mmcv-full 5.安装mmedit 6.安装scipy 7.模型下载 使用 图片超分 视频超分 压缩图片为对比视频样例 总结 前言 很久没更新这个专栏了,最近比较忙.前段时间看到了这个模型觉着很有意思,弄下来自己玩了玩,但是没时间写文章,一直搁置到现在. 废话不多说,先上Github地址: RealBasicVSR地址 从给出的效果来看,还是很不错的,左侧是超分后的画面,右边是原画质,得到明显提升.

  • Python 图片视频模糊化实现案例

    目录 前言 环境依赖 代码 前言 本文主要分享一个可以将图片或者视频模糊化的工具代码.技术路线主要是使用ffmpeg滤镜. 环境依赖 ffmpeg环境部署,依赖包下载,给大家介绍一个调用ffmpeg比较好的库ffmpy.安装命令: pip install ffmpy -i https://pypi.douban.com/simple 代码 不废话上代码. #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/11/18 0:06

  • Python 音视频剪辑快速入门教程

    目录 一.引言 二.Moviepy 简介 三.Moviepy 安装 四.音视频的加载和保存 五.音视频数据的访问 六.音视频变换 1.Clip 的 fl 方法 2.Clip 的 fl_time 方法 3.剪辑颜色变换 4.剪辑大小变换 5.剪辑内容变换 七.剪辑合成 1.概述 2.将多个剪辑拼接 3.多个剪辑同屏播放 4.将一系列图像构造成视频 5.其他几种生成视频方法简介 八.小结 一.引言 在这个短视频和自媒体大行其道的年代,音视频剪辑成为了大佬们的必备工具,现在有很多音视频剪辑的软件,如剪

  • python实现视频分帧效果

    本文实例为大家分享了python实现视频分帧的具体代码,供大家参考,具体内容如下 import cv2 vidcap = cv2.VideoCapture('005.avi') success,image = vidcap.read() count = 0 success = True while success: success,image = vidcap.read() cv2.imwrite("frame%d.jpg" % count, image) # save frame a

  • Python实现随机森林RF模型超参数的优化详解

    目录 1 代码分段讲解 1.1 数据与模型准备 1.2 超参数范围给定 1.3 超参数随机匹配择优 1.4 超参数遍历匹配择优 1.5 模型运行与精度评定 2 完整代码 本文介绍基于Python的随机森林(Random Forest,RF)回归代码,以及模型超参数(包括决策树个数与最大深度.最小分离样本数.最小叶子节点样本数.最大分离特征数等)自动优化的代码. 本文是在上一篇文章Python实现随机森林RF并对比自变量的重要性的基础上完成的,因此本次仅对随机森林模型超参数自动择优部分的代码加以详

  • 使用python将图片按标签分入不同文件夹的方法

    给定图像集如下,所有类别的图片均在一个文件夹内: 给定与图片名相匹配的表格,声明每张图片对应的类别(共有20个类别): 那么,如何根据表格中所给的类别将图片分入对应的文件夹内呢?以我的情况为例,我想将图片分为20类(CATEGORY_ID有0-19共20类),可利用下面的代码进行分类(经细心网友指正,代码已做出修改). #引入相关库 import pandas as pd import os import shutil #用于移动文件 #打开表格文件并读取 f=open("list.csv&qu

  • Python将视频或者动态图gif逐帧保存为图片的方法

    本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像读取完成时,抛出EOFError异常.我们可以使用seek()与tell()函数完成图像帧的读取. 本代码的前部分是对文件的读取.数据集文件结构如下: |--datasets |--action1 action1_1.gif action1_2.gif ...... |--action2 actio

  • python实现视频读取和转化图片

    1)视频读取 import cv2 cap = cv2.VideoCapture('E:\\Video\\20000105_224116.dav') #地址 while(True): ret,frame = cap.read() if(ret): # gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) cv2.imshow('input',frame) else: break if cv2.waitKey(1)==27: break cap.release

  • Python提取视频中图片的示例(按帧、按秒)

    一.按帧提取 #coding=utf-8 import os import cv2 def save_img(): #提取视频中图片 按照每帧提取 video_path = r'D:\\test\\' #视频所在的路径 f_save_path = 'D:\\aaa\\' #保存图片的上级目录 videos = os.listdir(video_path) #返回指定路径下的文件和文件夹列表. for video_name in videos: #依次读取视频文件 file_name = vide

随机推荐