【技术实现步骤摘要】
一种基于TensorRT的视频超分推理方法及装置
[0001]本专利技术属于计算机视觉中的视频超分领域,具体涉及一种使用
TensorRT
对视频超分方法进行推理的优化方案,可以降低模型的推理时间,降低显存占用,为视频超分落地提供有效解决方案
。
技术介绍
[0002]视频超分源于图像超分,其目的是从一个或多个低分辨率
(LR)
图像中恢复高分辨率
(HR)
图像
。
它们的区别也很明显,由于视频是由多个帧组成的,即前者通常利用帧间的信息来进行修复,这也带来了额外的挑战,即是信息量更大,需要更为复杂的网络结构,需要更多的模型参数,需要占用更多的显存等
。
这些挑战对于模型的落地以及实际场景的使用带来了非常大的困难
。
[0003]TensorRT
是英伟达公司出品的高性能的推理框架,专门应用与
GPU
设备以及嵌入式设备的推理
。TensorRT
包含了我们平时所见到了深度学习落地技术:模型量化
、
动态内存优化以及其他的一些优化技术,更主要的,其推理代码是直接利用
CUDA
语言在显卡上运行的,所有的代码库仅仅包括
C++
和
CUDA
,我们在利用这个优化库运行我们训练好的代码后,运行时间以及显存
、
内存的占用都能够大大减少
。
[0004]TensorRT
本身所支
【技术保护点】
【技术特征摘要】
1.
一种基于
TensorRT
的视频超分推理方法,其特征在于,包括以下步骤:步骤
(1)
对视频超分网络进行训练;步骤
(2)
对网络算子进行分析,对常用算子进行整理,对不支持算子进行编写,对于可优化算子做算子融合;步骤
(3)
对于完整的视频超分网络结构,使用
TensorRT
编写并生成序列化引擎进行推理
。2.
根据权利要求1所述的一种基于
TensorRT
的视频超分推理方法,其特征在于,步骤
(1)
具体实现如下;对选择的视频超分网络模型进行训练得到部署的模型,使用
Pytorch
深度学习训练框架;另外使用
mmediting
配置训练
Basicvsr
需要的模型参数以及训练数据集
。3.
根据权利要求1所述的一种基于
TensorRT
的视频超分推理方法,其特征在于,步骤
(2)
具体实现如下;常用算子需要对其进行整理,因为
TensorRT
的算子
API
与
Pytorch
的算子
API
不同,将两者算子进行对齐之后,便于后续的调用;
TensorRT
不支持的算子,需要进行编写;对于不支持的算子,需要自定义
TensorRT
的插件,需要继承
IPluginV2DynamicExt
以及
PluginCreator
类,并实现该类中的成员函数包括推理需要的
cuda
函数以及序列化函数;对于可优化的算子融合成为一个算子,这样在推理过程中减少访存的次数,加速整体的计算
。4.
根据权利要求3所述的一种基于
TensorRT
的视频超分推理方法,其特征在于,步骤
(3)
具体实现如下;根据使用的视频超分网络逐层进行添加对应的算子;然后生成引擎,在生成的过程中通过
TensorRT
进行编译优化,将自动去选择更合理更快速的算子实现方式;在构建完引擎之后,得到最优方案,进行推理的时候需要先反序列化引擎然后输入视频序列,在代码中将输入数据从
CPU
传输到
GPU
端,在
GPU
上执行推理计算,最后计算完成把数据从
GPU
端传回
CPU
端
。5.
根据权利要求1‑4任一所述的一种基于
TensorRT
的视频超分推理方法,其特征在于,所述的视频超分网络使用
Basicvsr。6.
根据权利要求3所述的一种基于
TensorRT
的视频超分推理方法,其特征在于,
TensorRT
不支持的算子
flow_warp
在
Pytorch
的执行流程中为:先创建网格,将光流与网格进行对应相加,然后将值归一化到
(
‑
1,1)
;紧接着调用
grid_sample
算子输入参数为输入
、
处理过的光流数据以及插值的模式;
grid_sample
算子在
Pytorch
里的执行流程是先去反归一化,然后找到输出对应的位置索引在光流上的值,用该值在输入上进行线性插值得到输出处结果;在使用
TensorRT
的自定义算子时,需要写
cuda
代码完成前述的在
Pytorch
上的前向执行过程;通过分析
flow_warp
算子在
Pytorch
...
【专利技术属性】
技术研发人员:颜成钢,张文豪,陈雨中,魏宇鑫,汪奇挺,傅晟,付莹,郭雨晨,赵思成,孙垚棋,朱尊杰,高宇涵,王鸿奎,赵治栋,殷海兵,王帅,张继勇,李宗鹏,丁贵广,
申请(专利权)人:杭州电子科技大学丽水研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。