Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

论文链接:http://arxiv.org/abs/2108.08910

用神经网络结构和剪枝搜索实现移动实时超分辨率

目录

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

摘要

一:引言

二:背景及相关工作

2.1.基于深度学习的SR初探

2.2.DNN模型修剪

2.3.移动设备上的DNN加速框架

2.4.动机

三:框架概述

四:超网结构

4.1.使用延迟模型确定单元数

4.2.超网训练

五:架构和剪枝搜索

5.1.候选代

5.2.候选评估

六.剪枝率的确定

七.实验

7.1.数据集

7.2.与最新技术的比较

7.3.在手机上搜索实时SR的结果

八:结论


Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

摘要

        尽管近年来随着深度神经网络(DNN)的蓬勃发展,单图像超分辨率(SISR)任务取得了显著进展,但深度学习方法在实际应用中面临着计算和内存消耗问题,特别是对于资源有限的平台,如移动设备。为了克服这一挑战并便于在移动设备上实时部署SISR任务,我们将神经结构搜索与剪枝搜索相结合,提出了一种自动搜索框架,该框架在满足实时推理要求的同时,导出具有高图像质量的稀疏超分辨率(SR)模型。为了降低搜索成本,我们通过引入超网来利用权重共享策略,并将搜索问题分解为三个阶段,包括超网构造、编译器感知体系结构和剪枝搜索以及编译器感知剪枝比率搜索。利用所提出的框架,我们是第一个实现实时SR推断(每帧仅数十毫秒)的公司,用于在移动平台(三星Galaxy S20)上实现720p分辨率和具有竞争力的图像质量(PSNR和SSIM)。

一:引言

        近年来,人们对图像处理的要求越来越高,从而导致了超分辨率技术的迅速发展。一般来说,超分辨率技术的原理是将低分辨率图像转换成细节更清晰、信息更丰富的高分辨率图像。它已被用于各种应用,如犯罪现场分析以识别不明显的证据,或用于更准确诊断的医学图像处理。

        随着流媒体直播和视频录制的快速发展,视频内容受到了广泛的欢迎。然而,由于通信带宽有限或显示器分辨率较高,视频的分辨率通常较低。此外,直播通常有实时要求,即每帧的延迟不应超过阈值。因此,期望在本地实现视频的实时SR。

        与用于提高图像或视频分辨率的经典插值算法相比,基于深度学习的SR可以通过学习外部数据集从低分辨率图像到高分辨率图像的映射来提供更高的视觉质量。尽管其优越的视觉性能,但基于深度学习的SR通常更昂贵,计算量大,功耗大(在强大的GPU上通常为数百瓦)[19,17,53],这给实时实现带来了困难。此外,在实践中,由于移动电话的广泛传播,SR通常部署在边缘设备(如移动电话)上用于实时流媒体或视频捕获,因此边缘设备上有限的内存和计算资源使得实现实时SR变得更加困难。

        通常采用权重剪枝[60,22,26]来去除DNN中的冗余,以减少资源需求并加速推理。有多种修剪方案,包括非结构化修剪[23,22,20,44]、粗粒度结构化修剪[50,71,70,47,42]和细粒度结构化修剪[45,18,21]。非结构化修剪移除任意权重,导致不规则的修剪权重矩阵和有限的硬件并行性。结构化剪枝维护剩余权重的完整矩阵格式,以便剪枝后的模型与GPU推理加速兼容。近年来,人们提出了细粒度结构化剪枝,包括基于模式的剪枝和基于块的剪枝,以提供更细的剪枝粒度,从而在表现出更高精度的同时提高剪枝精度

        我们认为,将目标设定在100毫秒以下可以合理地称为实时[49],我们要求实时实施速度超过50毫秒。某些规则可以通过编译器优化以提高硬件并行性。为了实现SR模型的推理加速,我们重点研究了传统的结构化剪枝和细粒度结构化剪枝。

        以前的工作通常对整个模型使用固定剪枝方案。由于不同的剪枝方案可以获得不同的SR和加速性能,因此引入了一个新的优化维度来为每一层而不是整个模型寻找最合适的剪枝配置。此外,由于剪枝的性能取决于原始的未运行模型,因此搜索具有高SR性能的未运行起始模型也很重要

                在本文中,为了便于在边缘设备上实时部署SR,我们提出了一个结合架构和修剪搜索的框架,以找到最合适的小区SR块配置和分层修剪配置。我们的实现可以在移动设备上实现具有竞争性SR性能的实时SR推断。我们将我们的贡献总结如下:

  1. 我们提出了一个架构和剪枝搜索框架,以自动找到每个小区中SR块的最佳配置和每个层的剪枝方案,从而在具有高图像质量的移动设备上实现实时SR

  2. 在架构和修剪搜索之前,我们训练超网为每个超网单元中的SR块的所有可能组合提供训练有素的未运行模型。因此,不需要为具有多个时代的每个组合训练单独的未运行模型,从而节省了大量的训练工作。

  3. 与以往所有层的固定剪枝方案或所有单元的固定SR块不同,我们自动为每个单元搜索最适合的SR块,并为每个层搜索剪枝方案。为了降低复杂度,我们将剪枝率搜索解耦,并采用贝叶斯优化(BO)加速SR块和剪枝方案搜索

  4. 利用所提出的方法,我们是第一个在移动平台(三星Galaxy S20)上实现实时SR推断(每帧仅数十毫秒)以实现720p分辨率和具有竞争力的图像质量(PSNR和SSIM)。我们的成就促进了实时要求的各种实际应用,如实时流媒体或视频通信。

二:背景及相关工作

2.1.基于深度学习的SR初探

        SISR旨在从低分辨率版本生成高分辨率图像。SRCNN[16]首次提出将DNN用于SR任务,随后的工作试图通过更大的网络[33,41,68,67,14]来改善放大特性和图像质量。然而,SR模型是资源密集型的,这是因为维护或扩大了各层要素地图的空间维度。因此,乘法累加(MAC)操作的数量通常以千兆位为单位,在功能强大的GPU上会导致较高的推断延迟(每幅图像秒数)。

        为实际应用设计轻量级SR模型进行了多次尝试,包括在网络末端使用上采样算子[17,53],采用信道分割[31],以及使用更广泛的激活[64]。具体而言,工作[64]提出了WDSR-A和WDSRB块,这是两种具有高图像质量的最先进的SR构建块。此外,受神经架构搜索(NAS)成功的启发,最新的SR工作试图通过利用NAS方法建立更高效、更轻量级的SR模型[12,54,37,13]。但是提出的模型仍然太大,需要大量的资源。此外,他们不考虑实际的移动部署与有限的硬件资源。对于移动部署,PIRM挑战[57]和MobiSR[38]的获胜者是为数不多的在移动设备上的SR推断方面取得进展的工作。但是延迟仍然远远不是实时的,每帧需要将近1秒的时间。

2.2.DNN模型修剪

        权重修剪减少了DNN中的冗余,从而减少了存储和计算。现有的剪枝方案可分为非结构化剪枝、粗粒度结构化剪枝和细粒度结构化剪枝。

        非结构化修剪允许移除任意位置的权重[22,20,15],如图1(a)所示。尽管精度很高,但其不规则权重矩阵与GPU加速度不兼容。粗粒度结构化修剪[60,27,26,65,28]保持剩余权重的结构化规则性,例如通道修剪修剪整个通道,如图1(b)所示。其主要优点是保持了完整的矩阵格式,从而促进了硬件加速。然而,粗粒度结构化修剪通常会导致不可忽略的精度降低[59]。

                细粒度结构化修剪包括基于块的修剪[18]和基于模式的修剪[51,45,21]。它们结合了细粒度修剪的优点,同时维护了可以在编译器帮助下用于硬件加速的结构。基于块的修剪将DNN层的权重矩阵划分为多个大小相等的块,并将结构化修剪独立应用于每个块,如图1(c)所示。基于模式的修剪是内核模式修剪和连接修剪的组合,如图1(d)所示。内核模式修剪通过强制内核中的剩余权重形成特定的内核模式来移除权重。连接性修剪去除了整个冗余内核,是内核模式修剪的补充,以获得更高的压缩率。通过适当的修剪规则度,可以利用编译器级代码生成来实现高硬件并行性。

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

图1。(a) 非结构化修剪;(b) 粗粒度结构化修剪(通道);(c) 细粒度结构化修剪(基于块);(d)细粒度结构化稀疏性(基于模式)。

2.3.移动设备上的DNN加速框架

        关于移动DNN的推断引起了工业界和学术界的许多兴趣[35,36,61,32,63,25]。具有代表性的DNN加速框架,包括Tensorflow Lite[1]、Alibaba MNN[2]、Pytorch Mobile[3]和TVM[10],旨在支持移动设备上的推理加速。这些框架中使用了几种图形优化技术,包括层融合、常数折叠和移动CPU和GPU上的运行时优化。但缺少的一点是,不支持用于进一步加速的稀疏(修剪)模型。最近,通过基于编译器的优化来加速移动设备上基于模式的修剪模型[51,45]。但当推广到DNN层而不是3层时,它们会遇到困难×3个卷积(CONV)层。

But they suffer difficulties when generalized to DNN layers other than 3×3 convolutional (CONV) layers.

2.4.动机

        最先进的SR方法利用巨大的DNN来追求高图像质量,导致极高的计算成本。因此,即使在功能强大的GPU上也很难实现实时SR,更不用说资源有限的移动设备了。但是,由于手机的普及以及视频通信和流媒体直播应用对高分辨率的要求,人们希望在手机上实现高图像质量的实时SR。SR模型通常由几个级联的SR块组成。不同的块具有不同的延迟性能,而不同的组合可以形成具有不同图像质量的各种SR模型与此同时权重剪枝对于加速,每层可能更喜欢不同的剪枝方案,导致不同的精度和加速性能例如,图2显示了在给定的3个树上不同修剪方案的加速曲线3*3 CONV层。因此,需要找到最适合的SR块组合和每层修剪方案和比率,以在满足实时执行要求的同时获得高图像质量

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

        找到满意的网络架构和修剪配置太复杂,无法手动解决。因此,需要一种自动架构和修剪搜索方法[58]。然而,直接在大空间中搜索是昂贵的,包括块数(深度)、块类型、每层修剪方案和每层修剪比率。因此,我们将搜索分解为几个阶段并分别求解

三:框架概述

        其目标是将架构搜索与剪枝搜索相结合,以找到稀疏SR模型,从而促进各种实际应用,如实时流媒体或视频通信。稀疏SR模型应满足实时推断要求(每帧仅数十毫秒),以获得高放大分辨率,如720p(1280)×720)在移动设备上,通过最先进的方法获得具有竞争力的图像质量。

        搜索问题包括确定堆叠单元的数量、每个单元中所选块的类型以及SR网络每层的修剪方案和修剪比率。在这样的高维搜索空间中直接搜索在计算上是昂贵的。为了在时间和计算方面降低搜索成本,我们通过引入超网来利用权重共享策略,并将搜索问题分解为三个阶段:1)超网构造,2)编译器感知体系结构和剪枝搜索,以及3)编译器感知剪枝比率确定Supernet构造包括确定堆叠单元数量的Supernet初始化,以及为以下两个步骤提供良好起点的Supernet训练。然后,结合块确定和对每个层执行修剪方案选择。目标是通过编译器优化,在满足目标的同时,找到可设计的结构,使图像质量达到最大。具体来说,当50ms,目标延迟满足实时性要求。以下步骤是使用重加权动态正则化方法自动确定修剪比率。我们在图3中展示了整个框架。

四:超网结构

        在架构和剪枝搜索中,剪枝后模型(架构)的准确性在很大程度上取决于未运行的起始模型的准确性。为了获得各种体系结构的经过良好训练且具有满意SR性能的起始模型,最简单的方法是对每个新体系结构进行训练,这通常需要花费大量的训练工作。我们不需要分别训练单独的模型,而是训练一个超网,这样,对于任何新模型,我们都可以激活超网中相应的路径,立即导出训练有素的未运行模型,而无需进一步努力从头训练每个新模型。因此,超级网可以显著减少未运行模型的训练时间,从而加快搜索速度

        超级网的架构如图3(a)所示。我们用一个超级网对架构搜索空间a进行编码,表示为S(a,W),其中W表示权重集合。超级网由N个堆叠的单元组成,每个单元包含K 个SR块选择。在我们的工作中,我们采用WDSR-A和WDSR-B作为块选择,它们是两个具有高图像质量的高效SR块。注意,我们的框架不受WDSR块的限制,可以推广到不同类型的SR剩余块。每个SR block k in cell n 的输出与下一个cell n +1中的所有SR块连接。我们为每个超级网单元定义一个SR块(WDSR-A或WDSRB)的选择作为一个路径段,路径段的所有可能组合形成大小为k^N的架构搜索空间A。然后,一条路径是所有单元的路径段的集合,表示一个SR候选模型。在超级网计算期间,只有一条路径被激活,而其他未选择的SR块不参与计算

        要构建超级网,有两个必要的步骤:1)确定超级网的堆叠单元数并初始化超级网;2)对超级网进行全面训练,为以下SR候选网搜索提供高图像质量和低开销的良好起点

4.1.使用延迟模型确定单元数

                超级网的堆叠单元数量应事先确定,以确保SR候选模型具有满足目标移动设备的潜力。SR中几种广泛使用的技术,如像素洗牌(也称为亚像素卷积)和全局剩余路径,通常难以优化和加速,导致固定的延迟开销。此外,单元块中的跳过(标识)连接结构导致难以减少的特定执行开销,并且该开销随着堆叠块的数量而累积。

        为了确定堆叠单元的数量,我们建立了一个延迟模型,能够快速准确地估计目标设备(例如三星S20智能手机)上的整体模型推断延迟。延迟模型包含SR模型中使用的不同类型的层(例如,1)的推断延迟的查找表×1 CONV,3×3 CONV,5×5 CONV、跳过连接和亚像素卷积)。对于每种图层类型,都会考虑几种不同的设置,包括过滤器的数量以及输入和输出要素贴图的大小。我们的延迟模型是CompilerWare,它是通过测量目标设备上的真实推理延迟并结合编译器优化而构建的。关于编译器优化技术的更多细节见附录A。延迟模型构建时间可以忽略,因为不涉及任何训练过程,并且构建过程可以与supernet训练并行进行。我们只为特定设备构建一次。此外,在我们的延迟模型中,我们还包括了不同剪枝方案和剪枝比率下不同类型层的稀疏推理延迟,这将在剪枝搜索阶段使用(更多讨论见第5.1节)。

(e.g., 1×1 CONV , 3×3 CONV ,5×5 CONV , skip connection, and sub-pixel convolution).

        因此,可以通过累积从延迟模型查询的每层延迟来估计目标设备上的总体推断延迟。通过SR候选模型的目标延迟,可以确定合适的堆叠单元数。此外,将超网深度确定与候选SR模型的搜索空间解耦可以大大降低搜索复杂度

4.2.超网训练

        在超级网初始化之后,下一步是训练它的权重sw以最小化损失函数l(A,W)。训练有素的超级网为以下网络体系结构和修剪搜索提供了良好的起点,因为候选网络体系结构直接从超级网中的路径w(a)继承权重。请注意,超级网的权重应该以一种方式进行优化,即所有候选架构a2a和权重sw(a)都应该同时优化。然而,联合优化架构参数a和模型参数SW(a)通常会带来额外的复杂性。此外,它可能导致图中的一些节点训练良好,而其他节点训练较差,从而导致对超网中不同成熟度的路径进行不公平的比较。

        为了缓解这一问题,我们采用了单路径采样&训练策略来加速超网训练的收敛。具体而言,对于每个培训批次,我们仅激活和训练一条随机路径,而跳过其他未选择的SR块。这样,架构选择和模型权重更新就解耦了。该策略是超参数*的,每条路径都是SR模型,为以下体系结构和修剪搜索提供了训练有素的未运行起点。

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

图3。框架概述。该框架由三个阶段组成,以降低搜索成本:(a)第1阶段:超级网构建,(b)第2阶段:架构和修剪搜索,以及(c)第3阶段:修剪比率确定。

五:架构和剪枝搜索

        我们定义了每个体系结构和剪枝候选结构,为每个超级网单元选择一个SR块,并为每个层选择剪枝方案。架构和剪枝搜索的目的是找到最佳的单元式SR块选择和层式剪枝方案配置,即。E具有最高图像质量且满足目标延迟的候选对象。搜索包括两个主要步骤:1)候选生成和2)候选评估。在每个迭代中,候选生成对体系结构和修剪候选进行采样,并在候选评估过程中对其进行进一步评估。为了提高搜索效率,我们在候选体生成中采用基于进化的候选体更新,在候选体评估中采用BO来获得最佳候选体

5.1.候选代

5.1.1候选人抽样

        候选生成示例体系结构和从搜索空间修剪候选项。每个候选图都是一个有向无环图,表示按单元的SR块选择和按层剪枝方案选择。对于每个supernet单元中的SR块选择,我们可以从WDSRA块或WDSR-B块中进行选择。对于修剪方案,我们可以为每一层选择通道修剪[60]、基于模式的修剪[45]或基于块的修剪[18]。不同于以前对所有层使用固定剪枝方案的工作,我们可以为不同的层选择不同的剪枝方案,这也是我们的编译器代码生成所支持的。请注意,候选分类和候选网络体系结构之间的差异包括层间剪枝方案选择。我们通过为每个可能的单元级块选择层级剪枝方案选择分配一个二进制特征来用一个二进制向量对每个候选进行编码,指示是否采用块或剪枝方案

        解耦剪枝率搜索。为了修剪模型,我们还需要配置对应于每个修剪方案的分层修剪比率。由于搜索每层的连续修剪比率值非常昂贵,在这一步中,我们只需将分层修剪比率设置为满足目标延迟的最小值。因此,我们可以首先关注剪枝方案搜索。为了确定最小剪枝率,我们可以估计未运行模型t0和目标延迟YT的延迟,并获得整个模型所需的最小加速比,即t0/t。为了满足整体的加速比,我们只需要每一层达到这个最小的加速比0/t2。然后,根据延迟模型(详见第4.1节)和分层加速,我们可以得到对应于每个剪枝方案的分层最小剪枝率。

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

5.1.2候选人更新

        在每次迭代中,我们需要生成一个新候选池。为了提高候选更新的效率,采用了基于进化的候选更新方法。我们记录所有被评估的候选人及其评估表现。为了产生新的候选,我们通过随机改变一个随机单元的一个SR块或一个随机层的一个剪枝方案来变异记录中具有最佳评估性能的候选。具体来说,我们首先选择具有最高评估性能的H个候选方案,并对每个候选方案进行迭代变异,直到衍生出新的C个方案。

        我们发现SR模型中的每一层都有相似的计算量。因此,对每层采用相同的加速比是合理的。

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

5.2.候选评估

        由于对每个候选模型进行修剪和重新训练会产生很高的时间成本,因此采用BO[11]来加快候选评估。使用生成的candidates,我们首先使用BO来选择具有潜在更好性能的B(B<C)表现可能更好的候选人。然后对选定的候选对象进行评估,以获得准确的SR性能,而不对未选定的候选对象进行评估。通过这种方式减少了实际评估的候选人数量

        BO包括两个主要部分,即:。E训练神经预测器集合,并根据预测器集合启用的采集函数值选择候选对象。为了利用BO,神经预测器的集成为每个不可见的候选对象提供平均SR预测及其相应的不确定性估计。然后,BO能够选择使捕获函数最大化的候选对象。我们在Algorithm1中展示了完整的算法,并在下面指定了BO。

5.2.1带神经预测器的贝叶斯优化神经预测器。

        神经预测器是一种神经网络,根据当前被评估候选人的评估表现,对其进行反复训练,以预测未看到候选人的奖励。它是一个神经网络,由Adam优化器以0的学习率训练,具有8个连续的全连接层,宽度为40。1对于训练神经预测器的损失函数,采用平均绝对百分比误差(MAPE),因为它可以为具有较高评价性能的候选人赋予更高的权重

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

        其中,m(i)pred和m(i)true分别是批次中第i个候选人的奖励的预测值和真实值,mubis是最大真实奖励的全局上界。注意,由于预测器的结构简单,因此其训练不会花费太多精力。

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

        神经预测器的集合。为了纳入BO,还需要对预测进行不确定性估计。因此,我们采用一组神经预测器来提供不确定性估计。更具体地说,我们使用不同的随机权重初始化和训练数据顺序来训练神经预测器。然后,对于任何候选项,我们都可以获得批准的平均值和标准偏差。形式上,我们训练一个预测因子集合,{fp}Pp=1,其中fp(g)为候选项提供预测奖励。平均预测值及其偏差如下所示:

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

5.2.2基于幅度的剪枝评估

        在从库中选择候选对象后,我们需要测量所选候选对象的性能,以更新神经预测因子。为了更快地评估,采用基于震级的修剪框架[23](包括修剪和再培训两个步骤)对候选数据进行实际修剪,以获得其评估性能。请注意,可以并行评估多个候选项。一旦评估完成,他们的实际表现将被记录下来作为参考,以便候选人生成可以对更好的候选人进行抽样。

六.剪枝率的确定

        在找到每个单元的最佳SR块配置和每个层的剪枝方案后,我们采用剪枝率确定过程来推导合适的分层剪枝率。与之前的工作(例如,组Lasso正则化[60,27,43]或交替方向乘数法(ADMM)[66,52,39])不同,这些工作会遭受严重的精度损失或复杂的修剪比率调整,我们采用重加权组Lasso[9,46]方法自动确定分层修剪比率。基本思想是为每个权重或修剪模式分配一个惩罚,并动态地重新加权惩罚。更具体地说,在训练(修剪)过程中,重新加权的方法减少了对更大幅度权重的惩罚,从而扩大了更关键的权重,并增加对较小量级重量的惩罚,从而减少可忽略的重量。收敛后,自动确定每个层所需的修剪比率。对于不同的修剪方案和层类型,可以采用重加权方法。我们在附录B中给出了详细的加权剪枝算法

七.实验

7.1.数据集

        所有SR模型均在DIV2K[4]数据集的训练集上进行训练,共有800张训练图像。为了进行评估,使用四个基准数据集Set5[6]、Set14[62]、B100[48]和Urban100[29]作为测试集,并在YCbCr颜色空间的亮度通道(也称为Y通道)上计算PSNR和SSIM指数。评估平台和运行配置:培训代码使用PyTorch API实现。8个Nvidia TITAN RTX GPU用于执行架构和修剪搜索。我们训练了20个预测因子的集合,并在每个步骤中并行评估了8个模型。因为我们从一个训练有素的超级网开始,所以我们为每个经过一次修剪的候选模型重新训练了2个时代,以便进行快速评估。搜索过程需要6个GPU天。延迟是在现成的三星Galaxy S20智能手机的GPU上测量的,该智能手机具有高通Snapdragon 865移动平台、高通Kryo 585八核CPU和高通Adreno 650 GPU。每个测试在不同的输入上运行50次,CPU上有8个线程,GPU上有所有管道。由于不同的运行不会有很大差异,因此仅报告可读性的平均时间。

7.2.与最新技术的比较

        表1显示了通过建议的框架获得的SR模型与最新技术方法的比较。一些超大型号[68,67,14]可能需要几秒钟才能在大型GPU上放大一幅图像。因此,这些结果不包括在表1中。采用峰值信噪比(PSNR)和SSIM作为评价图像质量的指标。评估针对不同规模的任务进行,包括×2.×三,及×4.为了公平比较,我们从不同的低分辨率输入开始,但输出具有相同的高分辨率(720p–1280)×720). 为了进行全面的研究,我们为每个量表设定了不同的目标值。特别是,由于实时执行通常至少需要每秒20帧(FPS),因此我们采用t=50ms作为×2和×3个放大任务,t=40ms×4放大任务以获得满足实时推理要求的模型。如表1所示,当目标延迟YT=450ms时,我们的模型优于CARN-M和FALSR-C,具有更高的PSNR/SSIM,使用更少的MAC进行测试×2upscaling。在t=150ms时,我们的模型比FSRCNN、MOREMNAS-C和TPSR-NOGAN具有更好的PSNR/SSIM,具有类似或更少的MAC。此外,与SRCNN和LapSRN相比,我们针对两种不同目标延迟情况的两种模型在更少MAC的情况下实现了更高的PSNR/SSIM。与ESRN-V、EDSR和WDSR相比,我们的模型在保持高PSNR/SSIM的同时,大大节省了MAC。特别是,我们甚至通过设置t=50ms获得了满足实时性要求的超轻模型,并且该模型仍然保持令人满意的PSNR/SSIM。至于×4缩放任务,在四个数据集上,我们以目标延迟YT=120ms获得的模型优于MACs、PSNR和SSIM的SRCNN、FSRCNN和FEQE-P。在目标latencyt=170ms的情况下,我们的模型在PSNR/SSIM方面优于基于DI和CARN-M的模型,具有类似或更少的MAC。此外,当t=40ms时,我们的模型在保持PSNR/SSIM竞争力的同时实现了实时推理。

7.3.在手机上搜索实时SR的结果

        我们进一步检查了SR模型在基于编译器的优化的帮助下的实时性能。如图5所示,与其他加速框架(包括MNN[2]和PyTorch Mobile[3])的实现相比,使用所提出的方法导出的SR模型相同,我们的编译器优化方法在各种规模下实现了最高的FPS。通过设置t=50ms获得模型×2和×3和t=40ms×4.从图5可以看出,我们提出的方法能够满足实时性要求,FPS高于20秒×2和×3,并且对于×4.MobiSR和FEQE-P也在移动设备上进行SR推断。他们实现了2792ms和912ms的推理分别在移动GPU上的延迟,这与实时性要求相差甚远。我们强调,我们是第一个实现实时SR推断的公司(在以下情况下高于20 FPS)×2和×3人,25人×4) 用于在移动平台(三星Galaxy S20)上实现720p分辨率的放大和具有竞争力的图像质量(PSNR)。

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

图4。上与其他SR模型的视觉比较×4比例尺。模型参数和MAC列在模型名称下。更多结果见附录D。

Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

 Achieving on-Mobile Real-Time Super-Resolution with Neural Architecture and Pruning Search

        7.4.在本研究中,我们分别研究了架构搜索和剪枝搜索的影响。对于×2扩大规模,架构搜索只实现37。Set5的峰值信噪比为84,略高于我们的。但由于剪枝并没有减少计算量,因此推理速度很低(1.82 FPS)。从WDSR块开始,仅在t=150ms时修剪搜索将达到6。8fps,峰值信噪比较低(Set5为37.40)。因此,我们可以看到剪枝搜索显著提高了速度性能,而架构搜索有助于减轻由于剪枝而导致的SR性能损失。为了提高再现性并使用相同的框架评估加速,我们还使用开源MNN框架实现了我们的衍生模型和其他基线模型,包括CARN-M[31]和FSRCNN[17]。我们比较了它们的PSNR和FPS性能,发现我们可以获得比基线更高的FPS和PSNR。更多详情见附录E。

八:结论

        我们将架构搜索与剪枝搜索相结合,提出了一种自动搜索框架,该框架可以在具有竞争性图像质量的移动设备上导出满足实时执行要求的稀疏SR模型。

上一篇:Python——字典操作


下一篇:openh264-当前是否编I帧