论文笔记——Cost-Efficient Super-Resolution Hardware(论文)


摘要:我们提出了一种新的 硬件友好的超分辨率(SR)算法,该算法采用计算简单的 特征提取和回归方法,即 局部二值模式(LBP)和线性映射 。 该方法对基于LBP特征的不同纹理类型的低分辨率(LR)图像块进行预行道专用线性映射核。在推理操作上,通过将LR图像补丁与线性映射内核相乘来重构高分辨率(HR)图像补丁,这是由相应LR补丁块的LBP特征类推断的 。由于LBP是用于局部纹理分类的高效特征提取运算符,因此我们的方法极其快速且高效,同时与基于最新的基于机器学习的SR技术相比,显示出具有竞争力的重建质量。 我们还提出了完整的流水线硬件架构及其对所建议的SR方法的实时操作的实现。 所提出的SR算法已在包括Xilinx KCU105的现场可编程门阵列(FPGA)平台上实现,该平台可以处理每秒63帧(fps)的速度,同时可以将全高清(FHD)图像转换为4K超高清晰图像。 清晰度(UHD)图像。 大量的实验结果表明,与最新的基于机器学习的SR方法相比,所提出的算法及其硬件实现可以实现 较高的重构性能,同时利用 最少的硬件资源,从而显着 降低了计算复杂度。 有时,最新的基于深度学习的SR方法提供了更高的重建质量,但与所建议的方法相比,它们需要大量的硬件资源。

I. INTRODUCTION

最近,采用UHD分辨率(3,840×2,160)显示器的电视(TV)和智能手机正迅速成为市场的主流。 但是,今天消耗的大多数视频内容都是以常规FHD分辨率(1,920×1,080)制作的。 为了在UHD显示器上再现这些LR图像,必须将LR图像放大到UHD分辨率[18]。

图像SR是一种放大技术,可将LR图像映射为HR图像,同时提高视觉质量[12],[28],[10],[11]。 通常,基于插值的放大方法(例如,双三次插值方法)被广泛用作SR方法[30]。 这是因为基于插值的放大方法在计算上非常有效且对硬件友好。 但是,它们通常会导致模糊或锯齿状的伪影,从而降低所得图像的质量[33]。

最近,提出了许多基于机器学习和深度学习的方法[30]。 但是,大多数这些基于学习的方法都需要大量的计算,这使其不适用于实时和低功耗应用。

为了克服基于学习的SR方法的巨大计算复杂性,采用LR图像[1]、[4]、[5]、[23]等方法,去除初始缩放方法,直接恢复SR输出。 在[1]中,提出了一种基于边缘定向(EO)的方法。 与传统的方法相比,它们删除了初始的向上缩放步骤,并在LR图像上应用重建,然后将3×3线性映射 补丁分为2×2个补丁,这些补丁是根据它们的梯度的大小和方向索引的。

本文提出了一种硬件友好的SR算法和硬件实现,实现了SCSR方法的可比重建质量[31]但仍然具有相似的计算COM 与双三次插值方法相比,它适合于实时应用。

我们的方法在映射步骤上有所不同,并通过提取具有LBP分类的局部图像结构来生成专用的线性SR映射。 在纹理分类任务中,LBP得到了广泛的应用 [19],但很少在SR中使用。据我们所知,本文是第一次证明LBP在线性映射方法中具有相当大的有效性。 此外,我们还强调 提出的SR硬件实现在FPGA上,用于需要实时HR图像世代的实际应用。 我们的实现可以处理63帧每秒(FPS)的情况下,FHD到 硬件资源极少的UHD转换。

我们的主要贡献如下:

  1. 我们提出了一种SR算法,它通过提取具有LBP分类的局部图像结构来生成专用的线性SR映射。
  2. 我们还开发了一个硬件友好的实现,可以处理63fps,在FHD到UHD转换的情况下,有限的硬件资源。
  3. 我们的软件和硬件实现的广泛实验 在多个数据集上验证了该方法在视觉质量和推理时间方面的优越性。

本文的其余部分安排如下:第二部分进一步描述了以前的SR方法及其硬件实现。 第三部分解释了基于LBP的SR方法的数学细节。 第四部分深入研究了提出的用于实时操作的SR算法的硬件实现。 第五节通过全面的实验,从重构质量和硬件实现效率两方面验证了该方法的有效性。 最后,第六节总结了论文。

II. RELATED WORKS

早期的SR方法被认为是传统的基于信号处理的方法,它依赖于基于插值的算法。 具体来说,它们利用各种插值核,如双线性或双三次核,从对应的LR图像中重建高分辨率图像。 它们很容易在硬件中实现,因为这些方法只需要几行缓冲区,而且很低 在计算复杂性方面。 [1]、[8]、[15]提出了许多基于插值的SR方法的修改版本。

然而,插值方法在放大的图像中引入伪像。 为了克服伪像问题,Wang等人 [29]提出了一种放大方法,与传统的插值方法相比,该方法动态地集成了清晰度过滤器以增强重建的HR图像的视觉质量。 它在保持相当高的清晰度的同时重建了HR图像,从而在视觉上改善了视觉质量。 但是,动态锐化过程的计算开销比插值过程大,尽管重建质量略有提高,但它却比传统插值方法慢了两到三倍。

另一方面,在基于机器学习的方法中,通过参考输入图像的预训练内核或内部/外部示例来恢复丢失的信息,而不是通过附近的像素值进行插值。杨等。提出了联合训练LR和HR字典对的ScSR [31]。为了进行推断,它解决了旨在从LR字典中找到最佳稀疏系数集的优化问题,并对稀疏系数集执行非线性映射到HR字典。最后,通过稀疏系数及其对应的HR词典原子的线性组合来重建HR图像。黄等。 [9]提出了一种基于自我示例的SR方法(SelfEx),该方法利用输入图像中的重复结构。首先,它会将输入的LR图像放大为HR图像,并从HR图像块中搜索LR图像中关于最小化重建误差的最佳图像块。为了找到最佳的自我图像补丁,SelfEx使用各种仿射变换对单个图像补丁执行广泛的搜索。尽管这些方法显示出更好的重建结果,但是由于解决了优化问题,它们具有过高的计算复杂度,这使得它们在实时应用中不切实际。

近年来,基于CNN的SR方法由于其复杂的特征表示能力而显示出令人鼓舞的结果。董等。 [3]提出了一种基于CNN的SR方法(SRCNN),该方法被认为是SR研究领域中的里程碑性工作。 SRCNN由三个卷积层组成,在其中学习卷积滤波器以最小化目标HR及其预测的HR图像之间的均方误差。但是,当卷积层数大于3时,SRCNN在训练过程中不会收敛。 [14]发现,用于SR的更深的卷积层会导致梯度爆炸/消失问题,这不允许基于CNN的SR方法在训练期间收敛。为了解决这个问题,他们应用了残差学习和梯度裁剪技术,这些技术可防止模型梯度爆炸/消失,并使梯度在训练过程中稳定地向后传播。结果,金等。他提出了一种非常深的基于神经网络的超分辨率方法(VDSR),该方法由20个卷积层组成,显示出令人印象深刻的重建性能。 Tai等。在DRRN [26]中提出了递归块,在MemNet [27]中提出了存储块。但是,这些方法需要首先将LR输入内插到所需的大小,这不可避免地导致信息丢失,而且
增加了计算负担。

对基于生成对抗网络(GAN)[6]的SR进行了一些尝试。 Ledig等 [17]提出了SR GAN,其中他们合并了感知损失[13]和真实感SR的GAN损失。 Sajjadi等[25]通过结合自动纹理合成和感知损失,引入了一个基于GAN的模型,称为EnhanceNet。 尽管SRGAN和EnhanceNet可以在一定程度上减轻模糊和平滑的伪影,但它们会产生重建图像中令人不快的伪影。

最近,张等人。 提出了一个残差密集网络(RDN)[34]和一个残差通道注意网络(RCAN)[35]。 RDN将密集连接封装在残差块内,而RCAN在残差块内采用通道注意机制,并使用残差结构中的残差加深网络架构。 但是,参数数量增加层数增加,从而增加了计算复杂度。 结果,即使基于CNN的SR方法具有很高的重建性能,但由于过高的计算成本,内存要求,硬件资源要求和功耗,其适用性受到了限制。

为了克服基于学习的SR方法的巨大计算负担,Kim等人。 [1]提出了一种基于EO(边缘方向)的线性映射SR方法,即超插值(SI)。 通过雇用 用SR优化的多线性映射核进行EO表征,它通过线性映射3×3LR贴片到2×2HR贴片进行因子为2的SR图像。 与其他学习基础相比 基于SI方法的硬件实现称为HSI,它需要更少的硬件资源,同时实现与SCSR[15]相似的性能。 但是,因为是我们 ES625线性映射核,硬件实现所需的块内存(BRAM)的大小相当大。 对于低成本的移动应用,这样的硬件资源需求是可以的 苛刻。 此外,边缘取向的程度应该量化,这限制了EO特征的表示能力,需要找到最优的量化步骤数。

为了实现超分辨率的硬件实现,已经采取了几个步骤。 Chen等人。 [8]提出了一种采用自适应clam实现双三次插值的硬件结构 平和锐化空间滤波器。 与双三次插值相比,它的质量有了很好的提高,但仍然远远落后于基于学习的方法。 Manabe等人。 [20]提议a 基于CNN的SR的FPGA实现和性能评估,实时处理运动图像。 他们没有采用扩大前的技术,而是使用水平和/或垂直翻转 网络输入图像,防止信息丢失。 稍后,Manabe等人。 [21]在以前的方法中加入了残留编号系统(RNS)[20]以减少资源利用率。 卓伦等人。 [ 7]提出了另一个基于FPGA的超分辨率系统,将每个帧分割成块,测量它们的总变异值,并相应地将它们发送到神经网络或插值 用于升级的模块。 该方法提供了资源利用率、可达到的帧速率和图像质量的平衡。

最近对稀疏信号表示的研究表明,高分辨率信号之间的线性关系可以从它们的低维投影[18]中准确地恢复[19]。 基于 基于上述事实,并通过后续[1],我们提出了一种新的硬件友好的SR方法,可以处理高重建质量的实时图像。 具体来说,我们利用线性 从[1]回归,但结合LBP而不是EO来表征局部图像结构。 LBP是纹理分类中最强大的操作符之一,它是第一个propo 奥贾拉等人的SED。 [24]。 它的工作方法是取3×3灰度图像贴片,并将中心像素的值与外部8个像素进行比较。 通过为具有更高值的像素和0的像素分配1 另外,我们得到了一个8位二进制向量,它表示中心像素的LBP特征。 这样,可以为图像中的每个像素提取LBP特征,而不包括边缘。 它的力量 在光照发生变化的情况下,GTH被揭示,因为每个特征都被一个相对阈值量化。 LBP在计算机视觉和计算机领域取得了巨大成就 RN识别。 LBP的另一个优点是它的数学简单性,它适合于实时和低功耗的硬件操作。

通过将LBP与线性映射技术相结合,将LBP的优点引入SR。 因为LBP是一种专门用于纹理分类的特性,在该领域表现出很好的性能 它很好地表征了局部图像结构。 我们的设计还利用了LBP和线性映射技术的硬件友好性。 虽然它显示出很好的人力资源重建质量 这种SR方法的硬件实现使用非常低的硬件资源。 此外,与SI方法相比,我们可以控制计算复杂度和Re之间的权衡 通过为均匀区域设置阈值旁路来实现构造性能。 因此,我们提出的方法显示出比SI方法更好的重建性能,同时具有较低的计算量 传统的复杂性。

总之,通过利用插值、机器学习、特征提取和回归技术的优点,我们提出了一种与t相媲美的非常有效的SR方法 他最新的基于机器学习的SR方法。

III. PROPOSED ALGORITHM

a. 单图像超分辨率

SR问题可以用[32]来数学表示。
在这里插入图片描述
其中x是所需的SR图像,y是Eq中的输入LR图像。并且,k和ds分别是模糊核和下采样算子。 通过遵循以前的工作[15],我们假设双三次插值 ,离子作为下采样算子。 最后,n指加性噪声,通常考虑高斯噪声。

因为我们只知道LR图像,所以这个问题成为不适定的问题。 但是,基于学习的方法(例如[2] – [4])训练了CNN以完成此任务。 我们将在下一部分中说明我们提出的方法。 在这里,我们首先解释基于软件的SR,然后基于硬件的SR。

b.基于软件的SR

我们的方法主要来自文献[1]中现有的SR方法,并使用更有效的LBP运算符代替了SI的EO提取过程。 为了创建一种有效的从LR到HR的实时映射功能,该方法分为训练和推理两个阶段。

1) Training

第五部分中描述了生成训练数据的过程。该训练操作生成预训练的内核值,该内核值将在以后的阶段使用,即用于推理。 对于训练,首先,我们通过创建256个聚类从LR补丁中提取LBP特征值。 这些特征值的范围从0到255,每个都显示不同的纹理类别。 对于256个簇中的每个纹理类,我们通过使用以下公式训练每个纹理类的线性映射内核矩阵,从LR到HR构造一个简单的映射函数,以近似原始HR补丁。
在这里插入图片描述

其中MC表示每个纹理类C的映射内核矩阵。训练后的内核矩阵MC用于测试或推断阶段。 I是一个单位矩阵,Y是一组矢量化LR补丁的连接矩阵,X是纹理类C中相应的矢量化HR补丁矩阵。

在2中,λ常数充当正则化。 我们把λ设为1。 我们实验了从1到10的不同λ值,并观察到性能保持不变,这表明性能 我们的SR方法对λ不敏感。

2) Inference

推理步骤被设计为非常计算简单并且可以在低成本硬件中轻松实现进行实时放大。 为了更快地进行推断,我们使用3×3到2×2映射以将LR补丁映射到HR补丁
如图1所示。
FIGURE 1.
在N×M大小的图像中可以存在N − 2×M − 2个可能的LR补丁。因此,对于给定的LR图像,我们可以通过为每个LR补丁推断一个HR补丁来执行2×SR。 因此,生成的HR图像的大小为2N-4×2M-4。图1显示了3×3至2×2 SR操作。 首先,像素窗口从左上到右上扫描LR图像。 然后,在完成第一行之后,窗口从左到右扫描下一行。 继续此操作,直到它遇到图像的右下边缘为止,从而完成了图像的放大操作。 在我们的硬件实现中,边界像素使用最近邻居技术进行了放大。

对于内核乘法运算,将3×3 LR补丁展平为1×9矢量。 该LR向量与获得的预训练核MC相乘,MC是从LR补丁提取的LBP类的线性映射核。 这产生了重构的矢量化HR补丁y 1。 此过程如图2所示。推论运算中的内核乘法方程可显示为

在这里插入图片描述

其中xi,c表示从yi,C表示的HR重建,它表示LBP类C的LR输入的第i个色块。通过对LR图像中所有可能的LR色块执行推断操作,我们获得了HR图像的完全重建 输入的LR图像。
在这里插入图片描述

然而,用基于LBP的线性映射将所有LR斑块映射到HR可以产生不必要的尖锐或高频结果。 因此,我们提出了一个旁路操作的LR补丁简单的同质 美国的纹理。 这种操作在保持良好的重建性能的同时,大大有助于降低所提出的SR方法的计算成本。 本操作在章节3-c中作了充分的描述。

C. THE LBP CLASSIFICATION AND BYPASS OPERATION

为Y通道LR补丁提取LBP特征以对它们的局部纹理特征(例如,边缘方向)进行分类。 图3显示了从给定的LR补丁中查找LBP类号的操作。 首先,中心像素值iC减去3×3 LR色块的所有周围像素值(i [1…8])。 然后,根据每个相减结果的符号,将8位二进制矢量的第i位分配给负数0或给定1。 该结果二进制值表示给定补丁的LBP类编号。

为了最大化我们的SR方法的效率并控制计算成本和重建性能之间的平衡,我们提出了旁路操作。 我们还发现,对于同质纹理补丁,与基于LBP的线性映射方法相比,使用双线性插值进行的放大操作可以显示出更好的重建结果。 为了确定斑块在质地上是否均匀,针对每个斑块计算差值,计算方法如下:
在这里插入图片描述

其中Diff是差值,Dn是逐元素减去的差的绝对值,如图3所示。

在这里插入图片描述
该阈值是在训练阶段中预定义的。 值得注意的是,可以在旁路操作中使用阈值来调整计算成本和重建性能之间的权衡。 我们进行了全面的实验,以查看阈值的有效性,如第V节中的图8所示。通过计算每个不同阈值的测试集推断结果的平均PSNR值,我们可以选择达到最高质量的值。 有关测试方法和结果的详细信息,请参见第五节。

IV. PROPOSED HARDWARE

提出的硬件体系结构旨在实现在1080p(1,920×1,080)的60 fps下实时转换为4K(3,840×2,160)SR操作。输入和输出图像流由每个Y通道,Cb通道和Cr通道组成。 Y分量的放大操作通过专用于基于LBP的SR方法的流水线。将Cb和Cr组分送入管道以进行双三次插值。由于Y分量对人眼的感知更为敏锐,因此使用较便宜的按比例放大方法(即三次三次插值法)适用于Cb和Cr分量[1]。由于双三次插值只需要对一小组常数进行乘法运算(在硬件实现中,使用可变操作数和常数进行乘法运算就可以通过多个加法器实现),因此Cb和Cr通道管线块不需要实际的乘法器,大大降低了硬件利用率。即使在行或帧之间没有任何消隐时间,我们的设计也能够处理连续的视频数据流。

在这里插入图片描述

亮度通道SR的硬件管道包括帧读取器,LBP分类器,权重提取器,矩阵乘法器和帧写入器,如图4所示。在一个时钟周期中,一个8位LR亮度像素为 馈电,并产生四个8位HR亮度像素。 管道使用三态有限状态机(FSM)进行操作。 当送入LR图像的第一行或最后两行之一时,FSM中的状态变为“边界”。 当插入除顶部和底部边界以外的任何一行时,状态将变为“中间”。 在水平垂直消隐时,它变为“空闲”状态。
在这里插入图片描述

帧读取器模块如图5所示。 该模块包括两个行缓冲器和一个由9个8位寄存器组成的3×3像素窗口。 每个线路缓冲区都是用双端口BRAM实现的 。 输入当前LR像素的输入缓冲区在每一行增量上被切换。 当FSM处于“边界”状态时,两个输入行缓冲区直接填充输入 LR像素。 在“中间”状态下,输入LR图像的每一部分都用3×3像素窗口进行扫描。像素窗口的工作方式如下。 在每个时钟上,所有寄存器中的数据都移至下一列。 LR像素数据被写入第三行的输入。 从两个输入缓冲器中提取来自最后两行的相同水平位置的像素数据,并将其馈送到像素窗口的顶部两行的输入。 包含较旧行数据的行缓冲区将使用来自像素窗口第三行输出的新像素数据进行更新。 然后将3×3补丁发送到LBP分类器和矩阵乘法器以进行进一步的计算。 由于无法提取图像边界的LBP特征,因此使用最近邻居算法将边界像素放大。 因此,将从帧读取器模块读取的边界像素直接转发到帧写入器模块。
在这里插入图片描述

LBP分类器模块如图6所示。此模块基于来自像素窗口的3×3面片生成LBP特征类索引。 为3×3色块中的每个边界像素放置一个加法器,以获取其自身与中心像素之间的差值。 它还通过将八个绝对差值的总和与给定阈值进行比较来确定SR旁路标志的值。 如果总和小于阈值,则将SR旁路标志设置为1。当该标志上升时,矩阵乘法器模块将对相应的补丁执行线性插值,而不是乘以线性映射内核。

权重提取器模块由一个查找表(LUT)组成,该表包含预训练的线性映射内核。 LUT中有256个内核条目,每个LBP类都映射到一个内核。 因此,LBP特征类是8位二进制向量。 另外,每个内核是一个由36个元素组成的9×4矩阵(每个元素的位宽为11位)。 为了实现LUT,一种简单的方法可以在FPGA BRAM中设计具有256个条目的396位宽度在FPGA中需要6个BRAM。 为了将BRAM硬件资源保存在FPGA中,我们将每个内核值(396位)拆分为两个198位值,并在FPGA BRAM中将LUT设计为198位宽和512个条目。 然后,我们将两倍的高时钟频率(与流水线的其余部分相比)插入到包含LUT的BRAM中,以便流水线设计可以在单个时钟中读取396位内核值
周期。 这样,我们可以将一半的BRAM(从6到3个BRAM)用于线性映射内核。

矩阵乘法器模块将3个×3个像素的补丁与相应的内核相乘。 它还对亚阈值补丁执行线性插值。 如果旁路标志低,则结果为 产生高矩阵乘法,而如果旁路标志高,则产生线性插值结果。 该模块中使用的乘法器是由FPGA中的36个DSP组成。 这些DSP块分3个阶段流水线,以提高性能和降低功耗。

然后将矩阵乘法器模块的HR结果发送到帧编写模块,其中结果被写入一对两行缓冲区。 这些缓冲区存储两行输出视频数据 并互换每一行增量。 当正在编写一对输出缓冲区时,其他缓冲区将被读取以获得输出。

A. CHROMINANCE CHANNEL PIPELINE( 色度通道管道)

色度通道放大流水线由帧读取器,矩阵乘法器和帧写入器组成。 帧读取器模块由2个行缓冲器和4×4像素窗口组成。 该模块的操作与亮度通道管线的帧读取器非常相似。 来自像素窗口的4×4色块被发送到矩阵乘法器模块,在该模块中应用了三次三次插值内核。 由于内核是由7个常数组成的7×7矩阵,因此不需要实际的乘法器或DSP块即可实现硬件。 帧写入器模块接收HR结果,并将其写入2×2输出行缓冲区。

V. EXPERIMENTAL RESULTS

VI. CONCLUSION

我们提出了一种新的硬件友好的SR算法,它集成了基于LBP的线性映射方法。 由于该方法的高效性和硬件友好性,已显示出良好的性能 与最新的基于学习的SR模型相比,E具有很低的计算复杂度。 我们还为基于LBP的SR算法开发了一个专用的硬件实现,并对其进行了验证 一个XilinxKCU105FPGA板。 所实现的硬件架构能够每秒处理63帧,即在将FHD转换为4K UHD SR操作时进行实时处理。 因为这个 所提出的SR算法具有硬件友好的特点,硬件资源利用率明显低。 考虑到高重建性能和显着低参考 所提出的基于软件和硬件的实现方法CE时间可以是低功耗和低成本消费显示设备(如智能手机、平板电脑)的最佳选择, 电视和显示器。

REFERENCES