视频插针调研

视频插针

  • 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.mzph.cn/news/804023.shtml

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

相关文章

Opencv驱动摄像头

Opencv驱动摄像头&#xff0c;此段代码只能驱动电脑自带摄像头&#xff0c;目前没有分析出为何不能驱动另外连接的相机&#xff01; #include<iostream> #include<opencv2\core.hpp> #include<opencv2\highgui.hpp> #include<opencv2\imgproc.hpp> #i…

ubuntu下NTFS分区无法访问挂载-解决办法!

Ubuntu系统下&#xff0c;有的时候发现&#xff0c;挂载的NTFS文件系统硬盘无法访问。点击弹出类似问题&#xff1a; Error mounting /dev/sda1 at /media/root/新加卷: Command-line mount -t "ntfs" -o "uhelperudisks2,nodev,nosuid,uid0,gid0" "/…

【攻防世界】mfw(.git文件泄露)

首先进入题目环境&#xff0c;检查页面、页面源代码、以及URL&#xff1a; 发现页面无异常。 使用 dirsearch 扫描网站&#xff0c;检查是否存在可访问的文件或者文件泄露&#xff1a; 发现 可访问界面/templates/ 以及 .git文件泄露&#xff0c;故使用 GItHack 来查看泄露的 …

状态模式(行为型)

目录 一、前言 二、状态模式 三、总结 一、前言 状态模式(State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许一个对象在其内部状态改变时改变它的行为。对象看起来好像修改了它的类&#xff0c;但实际上&#xff0c;由于状态模式的引入&#xff0c;行为的变…

Python单元测试pytest捕获日志输出

使用pytest进行单元测试时&#xff0c;遇到了需要测试日志输出的情况&#xff0c;查看了文档 https://docs.pytest.org/en/latest/how-to/capture-stdout-stderr.html https://docs.pytest.org/en/latest/how-to/logging.html 然后试了一下&#xff0c;捕捉logger.info可以用…

大语言模型及提示工程在日志分析任务中的应用 | 顶会IWQoS23 ICPC24论文分享

本文是根据华为技术专家陶仕敏先生在2023 CCF国际AIOps挑战赛决赛暨“大模型时代的AIOps”研讨会闪电论文分享环节上的演讲整理成文。 BigLog&#xff1a;面向统一日志表示的无监督大规模预训练方法 BigLog: Unsupervised Large-scale Pre-training for a Unified Log Represen…

【azure笔记 1】容器实例管理python sdk封装

容器实例管理python sdk封装 测试结果 说明 这是根据我的需求写的&#xff0c;所以有些参数是写死的&#xff0c;比如cpu核数和内存&#xff0c;你可以根据你的需要自行修改。前置条件&#xff1a; 当前环境已安装python3.8以上版本和azure cli并且已经登陆到你的账户 依赖安…

RocketMQ之Topic和Tag最佳实践

一、Topic是什么&#xff1f;它的作用&#xff1f; Topic即主题&#xff0c;是消息队列中用于对消息进行分类和组织的一种机制&#xff0c;它有以下三种作用&#xff1a; 标识消息分类&#xff1a;RocketMQ的主题用于对消息进行分类和组织。通过为不同类型的消息分配不同的主题…

Python八股文:基础知识Part1

1. 不用中间变量交换 a 和 b 这是python非常方便的一个功能可以这样直接交换两个值 2. 可变数据类型字典在for 循环中进行修改 这道题在这里就是让我们去回答输出的内容&#xff0c;这里看似我们是在for循环中每一次加入了都在list中加入了一个字典&#xff0c;然后字典的键值…

本地项目提交 Github

工具 GitIdeaGithub 账号 步骤 使用注册好的 Github 账号&#xff0c;登陆 Github&#xff1b; 创建 Repositories (存储库)&#xff0c;注意填写图上的红框标注&#xff1b; 创建完成之后&#xff0c;找到存储库的 ssh 地址或 https 地址&#xff0c;这取决于你自己的配置…

TiDB 组件 GC 原理及常见问题

本文详细介绍了 TiDB 的 Garbage Collection&#xff08;GC&#xff09;机制及其在 TiDB 组件中的实现原理和常见问题排查方法。 TiDB 底层使用单机存储引擎 RocksDB&#xff0c;并通过 MVCC 机制&#xff0c;基于 RocksDB 实现了分布式存储引擎 TiKV&#xff0c;以支持高可用分…

跨框架探索:React Redux 和 Vuex 对比分析快速掌握React Redux

React Redux 和 Vuex 都是前端状态管理库&#xff0c;分别用于 React 和 Vue.js 框架。 它们都提供了一套规范的状态管理机制&#xff0c;帮助开发者更好地组织和管理应用状态。下面是它们的一些异同点&#xff1a; 相同点&#xff1a; 中心化状态管理&#xff1a;两者都提…

tailwindcss+vue3+vite+preline项目搭建

最近原子化样式比较火&#xff0c;用了一下确实还不错&#xff0c;也确实是用一些标准的样式能够使网页看起来比较统一&#xff0c;而且能够极大的减轻起名字的压力&#xff0c;有利有弊&#xff0c;就不一一细说了。 之前开发都是习惯于使用vitevue3来开发的&#xff0c;此次搭…

Rocky(Centos)数据库等高并发或高io应用,linux应调优系统

一、系统参数优化 默认的最大打开文件数是1024.不满足生产环境的要求。按照如下配置&#xff1a; 1、修改 systemctl管理的 servie 资源限制 编辑/etc/systemd/system.conf # 全局的打开文件数 DefaultLimitNOFILE2097152 # 全局打开进程数 DefaultLimitNPROC655352、调整系…

Windows下编译boost库

官网&#xff1a;https://www.boost.org/ 使用git bash运行bootstrap.sh 运行b2.exe,会生成bin.v2文件夹 Cmake引入

【springboot开发】MVC和SSM

前言&#xff1a;关于MVC和SSM基本内容的梳理&#xff0c;以及两者之间的关系。 文章目录 1. 三层架构2. MVC3. SSM 1. 三层架构 三层架构是指&#xff1a; 视图层view&#xff08;表现层&#xff09;: 用于显示数据和接收用户输入的数据&#xff0c;为用户提供一种交互式操作…

CADMap3D2024 2023下载地址及安装教程

CAD Map 3D是由Autodesk开发的一款专业的地图制作和GIS&#xff08;地理信息系统&#xff09;软件。它是AutoCAD系列软件的一个扩展&#xff0c;提供了一系列特定于地理数据的工具和功能。 CAD Map 3D主要用于处理和管理与地理空间相关的数据&#xff0c;在地图制作、城市规划…

stackqueuepriority_queue容器适配器仿函数反向迭代器

文章目录 容器适配器适配器STL标准库中stack和queue的底层结构 dequedeque原理介绍deque的缺陷为什么选择deque作为stack和queue的底层默认容器 stackstack介绍stack的使用stack模拟实现 queuequeue的介绍queue的使用queue的模拟实现 priority_queue&#xff08;优先队列&#…

【算法刷题】八大排序算法总结(冒泡、选择、插入、二分插入、归并、快速、希尔、堆排序)

文章目录 八大排序算法总结1.冒泡排序2.选择排序3.插入排序4.二分插入排序5.归并排序6.快速排序7.希尔排序8.堆排序 八大排序算法总结 排序排序方法平均情况最好情况最坏情况空间稳定性1冒泡排序O(n2)O(n)O(n2)O(1)稳定2选择排序O(n2)O(n2)O(n2)O(1)不稳定3插入排序O(n2)O(n)O…

windows wireshark抓包rtmp推流出现TCP Retransmission

解决办法&#xff1a;tcp.port1935 && !(tcp.analysis.retransmission)