CN108765282B - 基于fpga的实时超分辨方法及系统 - Google Patents
基于fpga的实时超分辨方法及系统 Download PDFInfo
- Publication number
- CN108765282B CN108765282B CN201810398028.3A CN201810398028A CN108765282B CN 108765282 B CN108765282 B CN 108765282B CN 201810398028 A CN201810398028 A CN 201810398028A CN 108765282 B CN108765282 B CN 108765282B
- Authority
- CN
- China
- Prior art keywords
- resolution
- fpga
- image
- real
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013528 artificial neural network Methods 0.000 claims abstract description 46
- 239000000872 buffer Substances 0.000 claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 12
- 239000007853 buffer solution Substances 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 8
- 239000013598 vector Substances 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 240000004760 Pimpinella anisum Species 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims description 3
- 230000004913 activation Effects 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 230000000873 masking effect Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000007493 shaping process Methods 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 238000012549 training Methods 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 6
- 235000019800 disodium phosphate Nutrition 0.000 description 6
- 238000009826 distribution Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000005429 filling process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/10—Image enhancement or restoration using non-spatial domain filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本发明公布了一种基于FPGA的实时超分辨方法及系统,涉及图像处理技术领域;将较低分辨率的媒体中的每帧图像拆分成子图像进行超分辨处理,并根据当前帧子图像的特征值分配处理模块:若特征值较高,则由神经网络模块计算;若特征值较低,则由插值模块计算。输出缓冲区将计算得到的高分辨率子图像输出并重组成高分辨率图像,用户便可以观看到实时的超高清晰度画面。
Description
技术领域
本发明涉及图像处理技术领域,具体涉及一种基于现场可编程门阵列(FPGA)的实时超分辨方法及系统。
背景技术
超高清(UHD)技术正在显著地改变着媒体行业,目前高分辨显示器占据了市场主导地位。然而,超高清媒体资源供应有限,并且由于网络带宽不足导致访问困难,用户 实际体验仍然一般。因此,将1920×1080的传统高清(2K FHD)视频高效地升级到4K 超高清分辨率(3940×2160)意义重大。从低分辨率输入估算细粒度分辨率图像/视频的 技术通常被称为超分辨,在图像处理和计算机视觉领域,这个基本问题非常具有吸引力。
基于现场可编程门阵列(FPGA)的神经网络加速器由于具有比GPU更高的能效, 和比专用集成电路(ASIC)更短的开发周期而逐渐受到广泛关注。由于卷积运算经常占 据神经网络总操作的很大比例,以往的大部分工作都集中在优化卷积上。许多加速器专 注于提高计算效率,通过提高并行度,计算序列(流水线)和基于循环展开和循环优化 等技术实现的计算-通信平衡。人们还在努力减少计算需求,通过频域加速,二值化/变 形网络和网络压缩,还提出了硬件抽象和端到端自动化框架等方法。
已有的基于迭代反投影算法的实时超分辨率技术结合并修改了基于模型的超分辨 率算法,假设帧之间具有相同的模糊效果(用于计算效率),以及使用L1最小化的迭 代算法。该方法使用固定点精度,并为实时提出了高度流水线的架构。
目前,超分辨最直接的实现方法是插值算法,包括最近邻、双线性、双三次以及Lanczos算法。这些算法通常运行速度快且易于实现,但也不可避免地会产生模糊的结 果。基于模型的方法旨在根据观测模型和先验(正则化)来恢复高分辨率场景,现有技 术大多假定已知的模糊核和噪声水平,但实际情况中模糊核和噪声水平可以是任意的, 假定已知给实际应用造成了困难,效果不佳。基于神经网络的超分辨往往运算代价大, 在对视频实时处理时往往会面临输出帧率不足的问题。
发明内容
为了克服上述现有技术的不足,本发明提供了一种基于FPGA的实时超分辨方法及系统,将较低分辨率的媒体中的每帧图像拆分成子图像,并根据其特征值,将当前帧子 图像分配:若特征值较高,则由神经网络模块计算;若特征值较低,则由插值模块计算。 输出缓冲区将计算得到的高分辨率图像输出并重组成高分辨率图像,用户便可以观看到 实时的超高分辨率画面。
本发明的技术方案是:
一种基于FPGA的实时超分辨方法,可全部或部分在FPGA上实现,包括如下步骤:
1)首先将当前帧图像按步长拆分成子图像,通过测量函数计算每个的特征值;
优选地,特征值由全变分(TV)值判定。
具体地,将当前帧图像裁剪成N×N像素的子图像,对于每个子图像,通过测量函数M:RN×N→R计算其特征值;
采用全变分(Total Variation,TV)分类方法作为掩蔽测量M。为了简化计算,采用具有各向异性的TV值。将N×N子图像视为Z中的二维矩阵,其中Z是欧几里得空间RN×N。 为了定义离散的TV,引入了离散(线性)梯度算子Z→Z×Z。如果x∈Z,是Z×Z 中的一个向量,它由式1给出:
其中:
其中i,j=1,2,…,N.
则总的TV值J(x)被定义为式2:
其中||y||=|y1|+|y2|,对于y=(y1,y2)∈R2。
计算得到的TV值,与提前设定的阈值比较,用于处理当前子图像模块的分配。
本发明采用微体系结构将访存与计算解耦,访存包括TV计算公式中所有变量值的获取和更新,计算包括变量值之间的运算(做差、取范数等)。微体系结构主要包含配 备内存控制器和数据互连的缓冲系统。在不同的数组中没有数据重用的机会,所以缓冲 系统彼此独立。在每个缓冲系统中,FIFO提供的存储与常规数据复用缓冲区相同,而 FIFO之间的数据路径分离器和滤波器则用作内存控制器和数据互连。每个缓冲系统接收 一个数据流而无需额外的外部存储器访问。在计算开始之前,控制器首先读入数据并将FIFO填充N个周期。然后在每个时钟周期中,滤波器将所需数据发送到计算内核,内核 消耗所有数据以生成一个输出,控制器将所有缓冲数据向前移动。以这种方式,缓冲系 统继续进行,直到迭代域结束。
2)并将当前帧子图像进行分配:设定阈值,若特征值高于设定的阈值,则由神经网络模块计算;若特征值低于设定的阈值,则由插值模块计算;得到高分辨率图像;
具体实施时,神经网络计算或插值计算可采用多种实现方式;
3)输出缓冲区将经过步骤2)由神经网络模块或由插值模块计算得到的高分辨率图 像输出并根据拆分顺序重新组合成高分辨率图像;
通过上述步骤,实现基于FPGA的实时超分辨。
优选地,步骤1)~3)全部在FPGA上实现,或选其中FPGA可容纳部分在FPGA 上实现。步骤1)~3)可通过FPGA综合工具以流水线的形式配置成FPGA的计算电路, 每一步骤为流水线的一个阶段;这样充分利用了FPGA的可重构性和并行性,将串行的 算法流水化,可以增加系统的吞吐率和处理延迟;或者可以只将算法中的一个或几个步 骤通过FPGA综合工具配置成FPGA的计算电路,进行局部的加速。
优选地,步骤2)采用沙漏形卷积神经网络,即FSRCNN-s。该神经网络可以学习原始LR和目标HR图像之间的端到端映射,无需预处理。FSRCNN-s具有如下特征:将 卷积层表示为Conv(ci,fi,ni),将反卷积层表示为DeConv(ci,fi,ni),其中变量ci,fi和 ni分别代表信道数量,滤波器尺寸和滤波器数量。FSRCNN-s可以分解为以下五个阶段 (层)。
1)特征提取Conv(1,5,32)使用大小为5×5的滤波器从原始LR图像中提取32个特征映射。
2)缩小Conv(32,1,5)使用大小为1×1的滤波器将LR特征维度从32减少到5。
3)映射Conv(5,3,5)使用大小为3×3的滤波器非线性地将LR特征映射到HR特征上。
4)扩展Conv(5,1,32)使用大小为1×1的滤波器将HR特征维度从5扩展到32。
5)反卷积DeConv(32,9,1)使用大小为9×9的滤波器上采样并聚合先前的特征。
基于FPGA的重构性,这些卷积层和反卷积层既可以在FPGA上以流水线的形式统一实现(每个层为流水线一个阶段),也可以将一个或几个层在FPGA上单独实现,因此基 于FPGA的系统较串行实现可以获得很高的加速比,且具有很高的灵活性。
FSRCNN-s在每个卷积层之后使用参数整形线性单元(PReLU)。激活函数定义为式3:
f(xi)=max(xi,0)+aimin(xi,0) (式3)
其中,xi是第i个信道上激活f的输入信号,ai是负数部分的系数。与将参数ai固 定为零的ReLU不同,该参数在PReLU中可以学习。
FSRCNN-s采用均方误差(MSE)作为成本函数。优化目标表示为式4:
优选地,步骤2)所述神经网络模块为流水线架构,可以产生较高分辨率内容。
优选地,步骤2)所述插值模块应具有较低的运算代价。
本发明还提供了一种基于FPGA的实时超分辨系统,包括以下模块:输入模块、调度模块、计算模块、输出模块(输出缓冲区);其中,计算模块包括神经网络模块和插 值模块;各模块具体为:
调度模块,决定当前帧子图的分配;
神经网络模块,计算具有高特征值的图像,结果精确;
插值模块,计算具有低特征值的图像,速度较高;
输出缓冲区,将计算得到的高分辨率图像输出。
优选地,所述实时超分辨系统的核心运算部分可以包括两个或多个可独立工作的模 块,即神经网络模块、插值模块,或其余基于模型的方法或基于数据的方法进行超分辨的模块,并且根据当前处理图像的特征来选取并调用其中一个工作。
优选地,所述神经网络模块为流水线架构,可以产生较高分辨率内容。
优选地,所述插值模块应具有较低的运算代价。
与现有技术相比,本发明的有益效果是:
本发明提供了一种基于FPGA的实时超分辨方法及系统,将较低分辨率的媒体中的每帧图像拆分成子图像,并根据其特征值,将当前帧子图像分配:若特征值较高,则由 神经网络模块计算;若特征值较低,则由插值模块计算。输出缓冲区将计算得到的高分 辨率图像输出并重组成高分辨率图像,用户便可以观看到实时的超高分辨率画面。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明 的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明提供的基于FPGA的实时超分辨系统的结构框图。
图2是全变分计算的访问模式,深色图块影响梯度偏置;
其中,1是当前像素点,2是右侧像素点,3是下方像素点。
图3是本发明采用的全变分计算的微体系结构示意图;
其中,s1,s2,s3是分配器,f1,f2,f3是滤波器;(5)是卷积输入,(6)是卷积计 算,(7)是卷积输出;
控制器(分配器)首先读入数据并将FIFO填充N个周期;然后在每个时钟周期中,滤波器将所需数据发送到计算内核,内核消耗所有数据以生成一个输出,分配器将所有 缓冲数据向前移动;以这种方式,缓冲系统继续进行,直到迭代域结束。
图4是本发明实施例采用的神经网络的卷积层的结构示意图,包括fi×fi的滑动窗口,fi为第i层的滤波器维度;
其中,4是卷积滑动窗口,5是卷积输入,6是卷积计算,7是卷积输出。
图5是本发明实施例采用的神经网络的反卷积层的结构示意图,包括fi×fi的滑动窗口,fi为第i层的滤波器维度:
其中,8是反卷积输入,9是反卷积计算,10是反卷积输出,11是反卷积滑动窗口。
图6是本发明实施例中六种不同配置方式的输出截图;
其中,(a)是无分配/直接插值输出,(b)是无分配/神经网络输出,(c)是调度 /直接插值输出,(d)是调度/神经网络输出,(e)是调度/随机混合输出,(f)是调度 /TV值混合输出。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下, 本申请中的实施例及实施例中的特征可以相互组合。
本实施例提供了一种基于FPGA的实时超分辨技术与设备,图1是根据本发明实施例的结 构框图,它将神经网络和基于插值的方法结合起来。
步骤1,给定一个低分辨率(LR)图像X,首先将其裁剪成N×N像素的子图像,步长为k。
步骤2,对于每个子图像,通过测量函数M:RN×N→R计算其特征值。
步骤3,具有高特征值的子图像使用神经网络放大,而其余的仅通过插值放大。
步骤4,将放大的子图像组合成高分辨率(HR)图像Y。
上述用于超分辨率的算法的伪代码如下:
Input:LR image X,upscaling factor n,threshold T
Output:HR image Y
优选地,采用全变分(Total Variation,TV)分类方法作为算法1中的掩蔽测量M。注意, TV的各向异性版本被用于更简单的计算。将N×N子图像视为Z中的二维矩阵,其中Z是欧几里 得空间RN×N。为了定义离散的TV,引入了离散(线性)梯度算子Z→Z×Z。如果x∈Z,是Z×Z中的一个向量,它由式1给出:
其中:
其中i,j=1,2,…,N.
则总的TV值被定义为式2:
其中||y||=|y1|+|y2|,对于y=(y1,y2)∈R2
优选地,选择TV(Total Variation)作为分类方法,原因如下:1)TV值显示图像 块的高频强度。高TV值带有更多高频信息,如边缘和纹理,这些信息无法通过插值方 法很好地恢复。2)自然图像块的TV值分布接近瑞利分布。因此,可以通过设置合理的 阈值,筛选出一部分区块。3)TV值很容易计算。
优选地,采用沙漏形卷积神经网络,即FSRCNN-s。该神经网络可以学习原始LR和目标HR图像之间的端到端映射,无需预处理。FSRCNN-s具有如下特征:将卷积层表 示为Conv(ci,fi,ni),将反卷积层表示为DeConv(ci,fi,ni),其中变量ci,fi和ni分别 代表信道数量,滤波器尺寸和滤波器数量。FSRCNN-s可以分解为以下五个阶段(层)。
1)特征提取Conv(1,5,32)使用大小为5×5的滤波器从原始LR图像中提取32个特征映射。
2)缩小Conv(32,1,5)使用大小为1×1的滤波器将LR特征维度从32减少到5。
3)映射Conv(5,3,5)使用大小为3×3的滤波器非线性地将LR特征映射到HR特征上。
4)扩展Conv(5,1,32)使用大小为1×1的滤波器将HR特征维度从5扩展到32。
5)反卷积DeConv(32,9,1)使用大小为9×9的滤波器上采样并聚合先前的特征。
FSRCNN-s在每个卷积层之后使用参数整形线性单元(PReLU)。激活函数定义为式3:
f(xi)=max(xi,0)+aimin(xi,0) (式3)
其中,xi是第i个信道上激活f的输入信号,ai是负数部分的系数。与将参数ai固 定为零的ReLU不同,该参数在PReLU中可以学习。
FSRCNN-s采用均方误差(MSE)作为成本函数。优化目标表示为式4:
优选实施例一:由三个主要部分组成:
·调度模块:根据前文中提到的等式计算每个块的TV值。然后将其TV值大于预先确定的阈值的块分配给神经网络,而将其他值分配给插值模块。
·流水线神经网络:FSRCNN-s是在流水线阶段实现的流水线结构。每个阶段的乘法 器数量也被配置为实现阶段的均衡吞吐量。
·插值模块:简单且快速的插值模块,处理TV值低于阈值的模块。双线性算法能够以较低的运算成本和较好的性能提高图像质量。最后,从网络或内插组件输出的数据块 进行组合以生成最终输出的高分辨率图像。
在基于TV的掩膜中,像素的垂直和水平梯度分别依赖于它本身、它之下和右侧的像素。计算模式可以被认为是模板计算,即,每个点作为其值和其相邻元素处的值的函 数被更新(迭代)。图2描述了计算的访问模式。要计算某一像素x[offset]处的渐变, 必须访问图中深色的像素,包括该像素本身(x[offset]),该像素右侧的像素(x[right]) 和该像素下方的像素(x[down])。
当迭代计算完全流水线化时,计算内核需要从一个阵列在一个时钟周期内中加载多 个元素,所以内存分区是必要的,以避免存储器端口争用。本发明采用微体系结构来将访存与计算解耦。如图3所示,微架构主要包含配备内存控制器和数据互连的缓冲系统。 在不同的数组中没有数据重用的机会,所以缓冲系统彼此独立。在每个缓冲系统中,FIFO 提供的存储与常规数据复用缓冲区相同,而FIFO之间的数据路径分离器和滤波器则用 作内存控制器和数据互连。每个缓冲系统接收一个数据流而无需额外的外部存储器访问。 在计算开始之前,控制器首先读入数据并将FIFO填充N个周期。然后在每个时钟周期 中,滤波器将所需数据发送到计算内核,内核消耗所有数据以生成一个输出,控制器将 所有缓冲数据向前移动。以这种方式,缓冲系统继续进行,直到迭代域结束。表1显示 了缓冲系统的填充过程。
表1缓冲系统的填充过程
为了提高系统吞吐量,本发明实例将整个神经网络组织为流水线结构,每个网络层 都作为流水线阶段。所有的特征图和权重,以及偏向量和PReLU参数都存储在BRAM 中。可以保留芯片上的数据,主要是因为神经网络尺寸较小和分块算法导致小特征映射。 表2提供了以下各节中使用的符号。
表2所用符号含义说明
本实施例中采用的神经网络具有如下要点:
1)卷积层:每个卷积层Conv(ci,fi,ni)包括大小为fi×fi的ci×ni个滤波器,产生ni个 输出。使用了并行计算的ci×ni处理单元(PE),即每个过滤器有一个PE。处理过程中 有三个主要步骤:1.输入在每个输入特征映射上的fi×fi滑动窗口生成f2个元素的输入向量。2.计算相应的PE计算输入向量和滤波器的内积。3.输出部分和被累加并存储在目标 像素中。这三个步骤以流水线方式执行。图4是卷积层架构示意图。
2)反卷积层:神经网络中的反卷积可以看作是卷积的结构逆过程。反卷积层DeConv(ci,fi,ni)使用尺寸为fi×fi的的ci×ni个滤波器取样,并综合先前的ci映射图。由于存储器端口限制和中间数据的重用,滑动窗口也应用于反卷积层。滑动窗口保留部分 结果并更新。该层还具有三级流水线:1.输入,输入像素是从最后一个卷积层的输出特 征映射中获得的。2.计算,输出像素使用输入像素和滤波器进行计算。3.输出,滑动窗口 每次更新目标特征映射上的列。值得注意的是其余的fi-s列保留在窗口中以供进一步重 用,并且新的s列像素被初始化为零。图5描绘了反卷积层架构。
3)流水线平衡:资源分配也被考虑,以平衡整个流水线。在卷积阶段Conv(ci,fi,ni) 中,有次乘法运算(参数符号含义见表2),需注意Ni+1是该层输出特征映射的维数。为了平衡每个阶段的吞吐量,应该在阶段中分配每个阶段中乘法器数量(DSP)的数量,使其与阶段中的乘法次数成比例,同时保持总体利用率超过可用DSP 总量。表3显示了每一层和相关数据的乘数分配。根据乘法器的乘法数成比例地分配乘 法器,来获得理想的每个DSP的数量1(理想#DSP)。然后相应地计算理想的II。需要 手动设置每层的II(从而实现必要的性能),并获得实现这种II的所需数量的DSP。
表3资源分配与相关数据
本发明实施例中使用双线性插值方法作为神经网络方法的替代(即算法1中的CheapUpscale)。从输出的角度来看,双线性插值与反卷积过程非常相似。例如,在2倍 放大的情况下,输入像素Xi,j将其值扩展到以反卷积核的输出,以Y2i,2j为中心的3×3窗 口:同样,这种结构可以使用滑动窗口来避免大量的加载/存储寻址。 该方法还解释了为什么可以采用去卷积来放大而不是预放大。
应该考虑步长/步幅k的几个约束条件:
1)I/O带宽约束。由于每个子图像必须用额外的像素进行放大才能进行卷积,因此小跨度会带来大的边框与块的比率,这会导致I/O带宽的低效利用。为了满足I/O 带宽限制,有:
2)存储容量限制。高步长会造成大尺寸的特征映射,这使得将所有特征地图存储在 芯片上变得困难。为了满足存储容量限制,有:
3)缩放性能约束。通过使用相应数据求解联立以上三个方程和不等式,可以得到2≤k≤57。
在赛灵思Xilinx ZC706评估板上测试上述系统,XC7Z045 FFG900-2 AP SoC具有350个逻辑单元,19.1Mb Block RAM,900个DSP片,360个最大I/O引脚和16个最 大收发器数。将其工作频率设置为100MHz,并使用16位固定数据类型。设计由赛灵 思SDSoC开发环境v2016.3实现。在具有20核英特尔至强CPU E52630 v3@2.30GHz 和64GB主内存的服务器上运行设计流程。使用来自SJTU Media Lab的超高分辨率4K 视频序列,其是YUV 4:2:0颜色采样,每个样本8位,帧率为30fps。原始的4K图 像被用作地面实况,2K LR图像通过下采样获得。本专利实施例提出的超分辨率系统可 生成重建的4K HR图像。
为了评估系统性能,使用峰值信噪比(PSNR)和结构相似度(SSIM),这两者都是 定量评估图像分辨率质量的广泛使用的指标。这些指标测量重建的HR图像与相应的基 本事实之间的差异。使用以下公式计算PSNR:
其中R是输入图像数据类型中的最大波动。例如,当图像使用8位无符号整数数据类型进行编码,因此R为255.MSE表示均方根误差,其计算公式如下:
其中H和W是输入图像的高度和宽度,并且I1(i,j)和I2(i,j)是两个图像的对应像素 值。SSIM质量评估指标基于三个参数的计算,即亮度参数,对比参数和结构参数。总 体指标是三者的乘积:
SSIM(X,Y)=[l(X,Y)]α·[c(X,Y)]β·[s(X,Y)]γ
其中:
其中,μX,μY,σX,σY,和σXY分别是图像X和Y的局部均值,标准差,协方差。 对于其他常量,通常设定α=β=γ=1,C1=(K1×L)2,C2=(K2×L)2,C3=C2/2,其 中K1=0.01,K2=0.03,L=255。值得注意的是,人眼对亮度信息最为敏感,因此只在 YCbCr图像中处理和测量强度通道。
不同TV阈值和块大小的性能之间的关系需要通过实验得到。这两个因素非常关键, 因为不同的阈值会改变每个处理模块的工作负载,从而影响性能(速度和质量)。同时,块大小决定了实现的资源利用率。实验可以帮助进一步确定FPGA系统实施中的设计参 数,可以分为以下几种但不限于:
1)不同子图中的TV值之间差别很大,并且可能与原始图像的视觉属性有关。实验发现TV分布遵循瑞利分布。在本实施例中,选择50作为基准值,根据统计数据,其中 比例为25.3%。
2)具有相同块大小的不同TV阈值:在这组实验中,选择30作为块大小并且将TV 值阈值从30增加到70,步幅为10。测试每个块的平均值以评估性能,当阈值越高时, 性能越优。显然,当选择更高的阈值时,更多的块将用神经网络处理,这通常导致更好 的结果。
3)与对应的TV值阈值不同的块大小:在这组实验中,将块大小从10增加到50, 步幅为10,并根据块区域设置相应的阈值。使用30的块大小和50的TV阈值作为对照 组。结果,选择精细的块可以获得更高的重建质量。但是,这是以更高的计算复杂度为 代价的。
4)总体比较:在这组实验中,对比了表4中不同配置的六种解决方案。考虑预处理方法(分块/无)和放大方法(神经网络/插值),测试了所有四种可能的组合。第五和第 六种解决方案都使用分块和混合放大方法,其中25.3%的块通过根据神经网络放大,其 余块通过插值放大。作为对照,第五个解决方案为每个块随机选择两种方法,而第六个 解决方案使用总变化门限进行调度。图6显示了六种配置的示例输出。
表4六种不同方式比较
根据结果可以得出如下结论:
1)神经网络比插值算法明显显示出更好的质量(+3.04dB),运算代价则高出两倍数量级。
2)使用适当的填充后,将图像裁剪成小块子图可以达到与不裁剪几乎相同的质量。
3)根据TV阈值调度块比随机调度更好(+1.26dB)。
4)与全神经网络方法相比,混合方法节省了约75%的乘法成本,质量降低在可接受的范围内(-1.19dB)。
对于全高清1920×1080输入到超高清3940×2160输出的超分辨,本发明实施例中的系统可以达到的平均帧速率为23.9fps,29.3fps和31.7fps,分别对应使用了一个,两 个和三个插值器。
上述实施例提供的技术方案,可以实时对较低分辨率的媒体提升分辨率,具有如下 优点:
1)将准确但复杂的神经网络与快速但简单的插值算法相结合,可以为大尺寸输入产 生高速和高质量的输出。
2)提出了一个用于分析和优化的定量模型,以平衡有限硬件资源的利用率,可获得 的帧速率和视觉性能。
3)本专利实施例提出的超分辨率系统产生比现有文献报道的更高分辨率的视频,即 在嵌入式FPGA板上以大约30fps的帧速率从1920×1080FHD源产生的3940×2160 UHD视频。
显然,本领域的技术人员应该明白,上述的本发明的FPGA系统设置方式可以用Verilog,C,C++等语言来实现;神经网络、插值模块均可以采用不同的原理与类型;调 度模块可以用片内或片外处理来实现,各模块可以集中在单个的计算装置上,或者分布 在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实 现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们中的某个或多个 模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和 软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术 人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于FPGA的实时超分辨方法,包括如下步骤:
1)将当前帧图像按步长拆分成子图像,通过测量函数计算每个子图像的特征值;每个子图像的特征值由全变分TV值判定,采用全变分TV分类方法作为掩蔽测量M;具体将当前帧图像裁剪成N×N像素的子图像,对于每个子图像,通过测量函数M:RN×N→R计算特征值;
2)设定特征值阈值,将当前帧子图像进行分配,通过计算得到高分辨率图像:
若特征值高于设定的阈值,则通过神经网络进行计算;否则采用插值方法进行计算;
3)将经过步骤2)由神经网络或由插值方法计算得到的高分辨率图像输出,并根据步骤1)的拆分顺序重新组合成高分辨率图像;
4)上述步骤1)~3)中的全部或部分在FPGA上实现:通过FPGA综合工具以流水线的形式配置成FPGA的计算电路,每一步骤为流水线的一个阶段;或将其中一个或多个步骤通过FPGA综合工具配置成FPGA的计算电路,进行局部的加速;
由此实现基于FPGA的实时超分辨。
2.如权利要求1所述基于FPGA的实时超分辨方法,其特征是,步骤1)具体采用具有各向异性的全变分TV值;具体将N×N子图像视为Z中的二维矩阵,其中Z是欧几里得空间RN×N;引入离散梯度算子Z→Z×Z定义离散的TV;如果x∈Z,是Z×Z中的一个向量,由式1表示:
其中:
其中i,j=1,2,...,N;
总的TV值被定义为式2:
其中,||y||1=|y1|+|y2|,对于y=(y1,y2)∈R2;
具体采用微体系结构将访存与计算解耦;访存包括TV计算中所有变量值的获取和更新;计算包括变量值之间的运算;微体系结构包括配备内存控制器和数据互连的缓冲系统;缓冲系统彼此独立;在每个缓冲系统中,FIFO提供的存储与常规数据复用缓冲区相同,FIFO之间的数据路径分离器和滤波器用作内存控制器和数据互连;每个缓冲系统接收一个数据流,无需额外的外部存储器访问;
在计算开始之前,控制器首先读入数据并将FIFO填充多个时钟周期;然后在每个时钟周期中,滤波器将所需数据发送到计算内核,内核消耗所有数据以生成一个输出,控制器将所有缓冲数据向前移动;直到迭代域结束。
3.如权利要求1所述基于FPGA的实时超分辨方法,其特征是,步骤2)神经网络采用沙漏形卷积神经网络FSRCNN-s;
将FSRCNN-s的卷积层表示为Conv(ci,fi,ni),将反卷积层表示为DeConv(ci,fi,ni),其中变量ci,fi和ni分别代表信道数量,滤波器尺寸和滤波器数量;将FSRCNN-s分解为多个阶段/层;
所述卷积层和反卷积层可在FPGA上以流水线的形式统一实现,每个层为流水线一个阶段;或将一个或多个卷积层和反卷积层在FPGA上单独实现。
4.如权利要求3所述基于FPGA的实时超分辨方法,其特征是,将FSRCNN-s分解为五个阶段/层,包括:
a1)特征提取Conv(1,5,32):使用大小为5×5的滤波器从原始LR图像中提取32个特征映射;
a2)缩小Conv(32,1,5):使用大小为1×1的滤波器将LR特征维度从32减少到5;
a3)映射Conv(5,3,5):使用大小为3×3的滤波器非线性地将LR特征映射到HR特征上;
a4)扩展Conv(5,1,32):使用大小为1×1的滤波器将HR特征维度从5扩展到32;
a5)反卷积DeConv(32,9,1):使用大小为9×9的滤波器上采样并聚合先前的特征。
6.如权利要求1所述基于FPGA的实时超分辨方法,其特征是,步骤2)所述神经网络采用流水线架构。
7.如权利要求1所述基于FPGA的实时超分辨方法,其特征是,步骤2)所述插值方法具有较低的运算代价;所述插值方法采用双线性插值方法。
8.一种实现权利要求1~7任一项所述基于FPGA的实时超分辨方法的基于FPGA的实时超分辨系统,包括:输入模块、调度模块、计算模块、输出缓冲区;其中,计算模块为可独立工作的模块,包括神经网络模块和/或插值模块;各模块具体为:
调度模块用于决定当前帧子图的分配;若当前帧子图的特征值高于设定的阈值,则通过神经网络进行计算;否则采用插值方法进行计算;
神经网络模块用于计算具有高特征值的图像;
插值模块用于计算具有低特征值的图像;
输出缓冲区用于将计算得到的高分辨率图像输出。
9.如权利要求8所述基于FPGA的实时超分辨系统,其特征是,所述实时超分辨系统的核心运算部分包括神经网络模块、插值模块和其他能实现超分辨的模块中的两个或多个,并根据当前处理图像的特征值选取并调用其中一个模块进行计算;所述神经网络模块为可产生较高分辨率内容的流水线架构;所述插值模块具有较低的运算代价。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810398028.3A CN108765282B (zh) | 2018-04-28 | 2018-04-28 | 基于fpga的实时超分辨方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810398028.3A CN108765282B (zh) | 2018-04-28 | 2018-04-28 | 基于fpga的实时超分辨方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108765282A CN108765282A (zh) | 2018-11-06 |
CN108765282B true CN108765282B (zh) | 2020-10-09 |
Family
ID=64012256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810398028.3A Active CN108765282B (zh) | 2018-04-28 | 2018-04-28 | 基于fpga的实时超分辨方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108765282B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020118608A1 (zh) * | 2018-12-13 | 2020-06-18 | 深圳鲲云信息科技有限公司 | 一种反卷积神经网络的硬件加速方法、装置和电子设备 |
CN110009577B (zh) * | 2019-03-11 | 2023-09-22 | 中山大学 | 一种基于fpga的色调映射系统 |
CN110599427A (zh) * | 2019-09-20 | 2019-12-20 | 普联技术有限公司 | 鱼眼图像矫正方法、装置及终端设备 |
CN112749778B (zh) * | 2019-10-29 | 2023-11-28 | 北京灵汐科技有限公司 | 一种强同步下的神经网络映射方法及装置 |
CN112950465A (zh) * | 2021-01-26 | 2021-06-11 | 北京小米移动软件有限公司 | 视频超分处理方法、视频超分处理装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886978A (zh) * | 2017-02-16 | 2017-06-23 | 清华大学深圳研究生院 | 一种图像的超分辨率重建方法 |
CN107967669A (zh) * | 2017-11-24 | 2018-04-27 | 腾讯科技(深圳)有限公司 | 图片处理的方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10547873B2 (en) * | 2016-05-23 | 2020-01-28 | Massachusetts Institute Of Technology | System and method for providing real-time super-resolution for compressed videos |
-
2018
- 2018-04-28 CN CN201810398028.3A patent/CN108765282B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886978A (zh) * | 2017-02-16 | 2017-06-23 | 清华大学深圳研究生院 | 一种图像的超分辨率重建方法 |
CN107967669A (zh) * | 2017-11-24 | 2018-04-27 | 腾讯科技(深圳)有限公司 | 图片处理的方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
Optimizing FPGA-based convolutional neural networks accelerator for image super-resolution;Chang J W ET AL;《2018 23rd Asia and South Pacific Design Automation Conference》;20180222;第343-348页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108765282A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108765282B (zh) | 基于fpga的实时超分辨方法及系统 | |
Mahmoud et al. | Diffy: A Déjà vu-free differential deep neural network accelerator | |
Xue et al. | Wavelet-based residual attention network for image super-resolution | |
CN110648334A (zh) | 一种基于注意力机制的多特征循环卷积显著性目标检测方法 | |
Huang et al. | Interpretable detail-fidelity attention network for single image super-resolution | |
DE102018117813A1 (de) | Zeitlich stabile Datenrekonstruktion mit einem externen rekurrenten neuronalen Netzwerk | |
EP2374107B1 (en) | Devices and methods for processing images using scale space | |
CN108241854B (zh) | 一种基于运动和记忆信息的深度视频显著性检测方法 | |
Chen et al. | Multi-attention augmented network for single image super-resolution | |
CN109509149A (zh) | 一种基于双通道卷积网络特征融合的超分辨率重建方法 | |
He et al. | FPGA-based real-time super-resolution system for ultra high definition videos | |
CN110136067B (zh) | 一种针对超分辨率b超影像的实时影像生成方法 | |
Hui et al. | Lightweight image super-resolution with feature enhancement residual network | |
Aguilar-González et al. | An FPGA 2D-convolution unit based on the CAPH language | |
Zhang et al. | A GPU-accelerated real-time single image de-hazing method using pixel-level optimal de-hazing criterion | |
Chudasama et al. | RSRGAN: computationally efficient real-world single image super-resolution using generative adversarial network | |
Wang et al. | Joint depth map super-resolution method via deep hybrid-cross guidance filter | |
He et al. | Super-resolving and composing building dataset using a momentum spatial-channel attention residual feature aggregation network | |
CN114626984A (zh) | 中文文本图像的超分辨率重建方法 | |
CN113920378A (zh) | 基于注意力机制的柴胡种子识别方法 | |
Han et al. | VCNet: A generative model for volume completion | |
Esmaeilzehi et al. | MuRNet: A deep recursive network for super resolution of bicubically interpolated images | |
Gao et al. | Multi-branch aware module with channel shuffle pixel-wise attention for lightweight image super-resolution | |
CN109741313A (zh) | 独立成分分析和卷积神经网络的无参考图像质量评价方法 | |
DE102018127265A1 (de) | Multi-einzelbild-videointerpolation mit optischem fluss |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |