视频插针调研

news2024/10/6 8:37:03

视频插针

  • 1、评估指标
  • 2、准确度
  • 3、实时
  • 4、视频流处理
  • 3、实时
  • RIFE视频插帧测试

1、评估指标

参考:https://blog.csdn.net/weixin_43478836/article/details/104159648
https://blog.csdn.net/weixin_43605641/article/details/118088814

PSNR和SSIM
PSNR数值越大表示失真越小。,因为数值越大代表MSE越小。MSE越小代表两张图片越接近,失真就越小。
SSIM≤1,SSIM 越大,两张图像越相似。

PSNR(峰值信噪比,Peak Signal-to-Noise Ratio),用于衡量两张图像之间差异,例如压缩图像与原始图像,评估压缩图像质量;复原图像与ground truth,评估复原算法性能等。
SSIM(结构相似性,Structural Similarity)基于人眼会提取图像中结构化信息的假设,比传统方式更符合人眼视觉感知。

但是 PSNR 和 SSIM 都只适合画面复杂度低或完全对齐的图像,例如下图是同一地点的不同时期卫星图像及其重叠显示,对人眼来说相似度高,但由于没对齐导致 SSIM 很低。

2、准确度

参考:https://github.com/zdyshine/Video-Frame-Interpolation-Summary/blob/main/2023_before.md
https://zhuanlan.zhihu.com/p/362525023

在这里插入图片描述
在这里插入图片描述

3、实时

RIFE
IFRNet:CVPR 2022|上海交大&腾讯优图提出IFRNet:视频插帧新范式&新SOTA

CAIN ncnn Vulkan - 只能用于 0.5 时刻点(两帧插一帧)的 AI 视频补帧算法
rife-ncnn-vulkan - 只能用于 0.5 时刻点(两帧插一帧)的 AI 视频补帧算法(速度较快,效果非常好)
DAIN ncnn Vulkan - 支持任意时刻点插帧的 AI 视频补帧算法(速度最慢,占用最高,效果非常好)

谷歌的FILM: Frame Interpolation for Large Motion
https://github.com/google-research/frame-interpolation?tab=readme-ov-file

4、视频流处理

OpenCV、Kafka 和 Spark 技术
所谓视频流,就是一种视频数据信息的传输方式,使用这种方式,用户可以在没有接到完整的数据信息前就能处理那些已接收的信息。这种一边接收,一边处理的方式,很好地解决了视频数据信息在网络上的传输问题。使用者可以不必等待太长的时间,就能收看到视频数据信息。并且在此之后一边播放,一边接收,根本不会感觉到文件没有传完。
视频流是指将视频内容以连续的流式方式传输或播放,而不需要等待整个视频文件下载完毕。视频流使用户能够实时观看视频,而无需等待全部内容下载到本地设备。这种流式传输方式适用于各种视频应用,包括在线视频播放、视频会议、实时转播和直播流等。
视频流:
实时观看:视频流允许用户实时观看视频内容,而不需要等待整个视频文件下载完毕。视频数据以连续的流式方式传输到观众设备,观众可以在数据传输的同时观看内容。
连续性:视频流是连续的数据流,它们通常分为小段,每个段都可以独立下载和播放。观众可以随时开始观看视频,并且可以在观看过程中继续下载后续段。
动态自适应:视频流通常支持动态自适应,可以根据观众的网络带宽和设备性能实时调整视频质量和码率,以提供更好的观看体验。

opencv-python视频流基本操作【视频流是由一帧一帧的图像构成的,我们对视频流的处理,本质上就是对图像的处理,因此这里我们只说明从相机中读取视频,从 …

5、预测视频的动态部分,生成i帧
视频预测是一项复杂的时间序列预测任务。

3、实时

RIFE
IFRNet:CVPR 2022|上海交大&腾讯优图提出IFRNet:视频插帧新范式&新SOTA
IFRNet
CAIN ncnn Vulkan - 只能用于 0.5 时刻点(两帧插一帧)的 AI 视频补帧算法
rife-ncnn-vulkan - 只能用于 0.5 时刻点(两帧插一帧)的 AI 视频补帧算法(速度较快,效果非常好)
DAIN ncnn Vulkan - 支持任意时刻点插帧的 AI 视频补帧算法(速度最慢,占用最高,效果非常好)

谷歌的FILM: Frame Interpolation for Large Motion (只有图片demo)效果可以
https://github.com/google-research/frame-interpolation?tab=readme-ov-file

EMA-VFI (只有图片demo)效果可以

VFIformer (要训练,只有图片)

集成工具
AaronFeng753/Waifu2x-Extension-GUI: Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Super Resolution VSR, SRMD, RealSR, Anime4K, RIFE, IFRNet, CAIN, DAIN, and ACNet. (github.com)

1、 实时插帧算法对比
实时插针算法主要有:RIFE、IFRNet、DAIN、CAIN,他们的性能对比如下:
在这里插入图片描述

评估指标:PSNR、SSIM和FPS
PSNR(峰值信噪比,Peak Signal-to-Noise Ratio),用于衡量两张图像之间差异,例如压缩图像与原始图像,评估压缩图像质量;复原图像与ground truth,评估复原算法性能等。PSNR数值越大表示失真越小。,因为数值越大代表MSE越小。MSE越小代表两张图片越接近,失真就越小。
SSIM(结构相似性,Structural Similarity)基于人眼会提取图像中结构化信息的假设,比传统方式更符合人眼视觉感知。SSIM≤1,SSIM 越大,两张图像越相似。
FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数

2、 设备要求
2GB 以上显存, 4GB 左右的空余运行内存以及4GB+的磁盘剩余空间

3、 测试结果
RIFE
视频分辨率1280x720
1.没量化
在这里插入图片描述
2.开启fp16量化
在这里插入图片描述

3.开启scale=0.5
在这里插入图片描述

显卡v100占用
在这里插入图片描述
参考:
https://zhuanlan.zhihu.com/p/362525023
https://github.com/zdyshine/Video-Frame-Interpolation-Summary/blob/main/2023_before.md

RIFE视频插帧测试

1、环境部署
#拉取镜像
docker pull nvcr.io/nvidia/pytorch:23.12-py3
#创建docker
docker run --gpus all --cpus 48 --shm-size 16G --memory 500gb --privileged=true -itd --name rife_test
#git拉取源码
git clone https://github.com/megvii-research/ECCV2022-RIFE.git
#安装运行相关包
cd ECCV2022-RIFE
pip3 install -r requirements.txt

2、运行推理
插帧命令
插一帧:python3 inference_video.py --exp=1 --video=video.mp4
插两帧:python3 inference_video.py --exp=2 --video=video.mp4
参数说明:
python3 inference_video.py --exp=2 --video=video.mp4 --fps=60 --scale=0.5
exp:插多少帧
video:输入视频路径
fp16:是否使用半精度
scale:压缩视频质量(如果您的视频具有非常高的分辨率,例如 4K,我们建议设置 --scale=0.5(默认为 1.0)。如果您在视频上生成无序模式,请尝试设置 --scale=2.0。此参数控制光流模型的过程分辨率)

3、对比展示
对比方法:
对比方法:对比视频的流畅度,用ffmpeg将多个视频拼接在一起对比(会有压缩),高帧率的硬件不支持(测试设备最高支持60Hz)
横向2个视频排列命令:ffmpeg -i 0.mp4 -i 1.mp4 -filter_complex “[0:v]pad=iw2:ih1[a];[a][1:v]overlay=w” out.mp4
4个视频排列命令:ffmpeg -i 0.mp4 -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex “[0:v]pad=iw2:ih2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h” out.mp4

展示效果如下:

4、速度对比
对比方法:
1、同一显卡不同参数推理速度对比
2、不同显卡推理速度对比
V100显卡不同参数测试如下图:
1.没量化,推理速度20fps左右
2.开启fp16量化,推理速度25fps左右
3.开启scale=0.5,推理速度28fps左右

4.显卡占用,1G显存左右
2080TiV100显卡不同参数测试如下图:
1.没量化,推理速度17fps左右

2.fp16量化,推理速度22fps左右

3.scale=0.5量化,推理速度31fps左右
测试结论:V100和2080ti显卡的算力差不多,推理需要显存1G左右,在没有量化 的情况下推理速度最高20fps左右,量化情况下推理速度最高30fps。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1581459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【CSS】MDN

一、CSS构建 1.1 CSS选择器 1.1.1 元素选择器 标签不区分大小写 示例: span {background-color: yellow; }1.1.2 通用选择器 选择文档中所有内容,重置样式表中使用较多 鉴于div:first-child(代表所有的div元素,并且是第一个…

IT行业网络安全守护者-行云管家云堡垒机

IT行业即信息技术行业,是一个涵盖广泛的行业领域,主要涉及与信息的处理、存储、传输和应用相关的技术。对于IT行业而言,保障数据安全以及网络安全至关重要,一不小心就容易造成数据泄露事件。今天我们小编就给大家介绍一下IT行业网…

Docker 搭建私有镜像仓库

一、镜像仓库简介 Docker的镜像仓库是一个用于存储和管理Docker镜像的中央位置。镜像仓库的主要作用是提供一个集中的地方,让用户可以上传、下载、删除和共享Docker镜像。镜像仓库又可以分为公共镜像仓库和私有仓库镜像仓库: 公共镜像仓库 Docker Hub 是…

ZStack Cloud 5.0.0正式发布——Vhost主存储、隔离PVLAN网络、云平台报警优化、灰度升级增强四大亮点简析

近日,ZStack Cloud 5.0.0正式发布,推出了包含Vhost主存储、隔离PVLAN网络、云平台报警优化、灰度升级增强在内的一系列重要功能。云主机管理、物理机运维、密评合规、灾备服务等诸多使用场景和功能模块均有更新,为您带来更完善的平台服务、更…

OJ 进制转换 判断进制【C】

进制转换 好久没写C,太生疏了,记一下我卡住的几个点 1.C没有字符串这种数据类型,要实现读入一个未知长度的字符串比较简单的方法 建立一个一定比这个字符串长的数组,而字符串在数组中的存储是会自动以\0结尾的,所以遍…

macOS制作C/C++ app

C/C制作macOS .app 一、 .app APP其实是一个文件夹结构,只不过mac的界面中让它看起来像一个单独的文件。 在shell终端或者右键查看包结构即可看到APP的目录结构。 通常的app目录结构如下: _CodeSignature, CodeResources 一般为Mac APP Store上架程序…

三极管结构难?——秒了

前边我们已经学完了PN结,二极管,在分析了二极管后,我们对这些东西有了一定深度的了解,但是只给我们一个二极管去研究,这玩意好像真的没啥大用,其实我们追求的是用半导体材料去代替电子管的放大作用&#xf…

51单片机入门_江协科技_21.2_74HC595 在Proteus中模拟8x8点阵屏环境搭建

1. 为了在proteus中模拟学习江协科技51单片机教程,需要在proteus中搭建74HC595驱动8x8点阵屏的仿真环境; 1.1. 因为连接单片机P0口作为点阵屏负极(行选),所以需要先在P0口上接上上拉电阻RESPACK 8,1k欧姆阻…

K8S哲学 - kubectl

Kubectl is the Kubernetes cli version of a swiss army knife, and can do many things. Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit k8s production-ready. 概念 kubectl 和 Kubernetes API 区别

【前端】学习路线

1、基础 1.1 HTML 菜鸟教程-主页:https://www.runoob.com/ 可以学习:HTML、CSS、Bootstrap等 1.2 CSS 《通用 CSS 笔记、建议与指导》 1.3 JavaScript 1)入门:JavaScript 的基本语法 2)进阶:现代 …

react-静态组件,动态组件

react09- 组件 静态组件 动态组件 静态组件: 函数组件,在第一次渲染完成后,组件中的内容,不会根据组件内的某些操作再次进行更新,页面并不会跟着改变 过程: 第一次渲染时,执行函数方法&#x…

二、Docker部署Jenckins(详细步骤)

Docker部署Jenckins、初始化(详细步骤) 一、拉取镜像二、启动Jenkins三、访问Jenkins四、安装插件1.配置源2.插件安装 一、拉取镜像 docker安装教程:https://qingsi.blog.csdn.net/article/details/131270071 - 查询镜像 docker search jen…

【配电网故障定位】基于二进制蝗虫优化算法的配电网故障定位 12节点配电系统故障定位【Matlab代码#75】

文章目录 【获取资源请见文章第5节:资源获取】1. 配电网故障定位2. 二进制蝗虫优化算法3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节:资源获取】 1. 配电网故障定位 配电系统故障定位,即在配电网络发生故障的时候&am…

python基础——python包【创建和导入,下载第三方包】

📝前言: 在上一篇文章python基础——模块中,我们讲解了有关python模块的相关知识,这篇文章我们进一步讲解用于储存多个模块文件的python包: 1,什么是python包 2,如何创建和导入python包 3&#…

Windows系统上运行appium连接iOS真机自动化测试

步骤: 1、windows安装tidevice工具 2、Mac系统打包安装WebDriverAgent(WDA)工具 3、安装Appium 4、连接iOS手机 iOS自动化的实现和执行都依赖Mac系统,因为需要通过Xcodebuild编译安装WDA (WebDriverAgent)到iOS设备中,通过WDA实现对被测应用进行操作。而Windows系统无…

【LAMMPS学习】八、基本知识的讨论(1.8)键的断裂

8. 基本知识的讨论 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和…

FreeRtos入门-10 裸机程序的不足

裸机的程序的框架 1) 经典单片机程序 // 经典单片机程序 void main() {while (1){任务1();任务2();} } 缺点:任务1和任务2之间的互相影响 2)前后台结构,前台:中断处理函数,后台main函数 void main()//后…

【oracle数据库安装篇一】Linux5.6基于LVM安装oracle10gR2单机

说明 本篇文章主要介绍了Linux5.6基于LVM安装oracle10gR2单机的配置过程,比较详细,基本上每一个配置部分的步骤都提供了完整的脚本,安装部分都提供了简单的说明和截图,帮助你100%安装成功oracle数据库。 安装过程有不明白的地方…

VBA 实现outlook 当邮件设置category: red 即触发自动创建jira issue

1. 打开: Outlook VBA(Visual Basic for Applications) 方法一: 在邮件直接搜索:Visual Basic editor 方法二: File -> Options -> Customize Ribbon-> 打钩 如下图: 2.设置运行VBA 脚本: File -> Options -> Trust center -> Trus…

Input DropDown 拼接成 select组件(基于antd和react)

前言:为什么不直接用select,还要舍近求远搞inputdropdown这种缝合怪,是因为antd的select不支持选中项再编辑,效果如图 选中的closed文案变成了placeholder不能再编辑了 封装此组件虽然比较简单,但还是有弊端的&#x…