SplitSR: An End-to-End Approach to Super-Resolution on Mobile Devices

SplitSR:在移动设备上实现超分辨率的端到端方法

代码:https://github.com/deepconsc/SplitSR

论文:https://arxiv.org/abs/2101.07996

目录

SplitSR: An End-to-End Approach to Super-Resolution on Mobile Devices

摘要

一:引言

二:相关工作

2.1超分辨率

2.2设备上的超分辨率

2.3轻质残余块

三:方法

3.1分流块设计(SplitSRBlock Design)

3.2 SplitSR Architecture Design

四:性能评估和结果

4.1 Implementation

4.2 Experimental Setup

4.3 Evaluation Procedure and Metrics

4.4 Reference Model Configurations

4.5 Hyperparameter Selection for SplitSR

五:用户研究USER STUDY

5.1 ZoomSR Design

5.2 协议

5.3 结果

六:讨论和限制

6.1TVM的重要性

6.2 SplitSR的未来应用

6.3收缩到缩放手势预测,降低延迟(Pinch-to-Zoom Gesture Prediction for Lower Latency)

6.4限制

七:结论


摘要

超分辨率(SR)是一种令人垂涎的图像处理技术,适用于从基本相机应用到移动健康的各种移动应用。现有的SR算法依赖于具有显著内存需求的深度学习模型,因此它们尚未部署在移动设备上,而是在云中运行以实现可行的推理时间。这一缺点阻碍了现有的服务请求方法在需要接近实时延迟的应用程序中使用。在这项工作中,我们使用一种称为SplitSR的新型混合架构和一种称为SplitSRBlock的新型轻量级残余块,展示了设备上超分辨率的最新延迟和精度。分割块支持信道分割,允许剩余块保留空间信息,同时减少信道维度的计算。SplitSR具有由标准卷积块和轻量级残差块组成的混合设计,允许人们根据计算预算调整SplitSR。我们在一个低端的ARM处理器上评估了我们的系统,显示出比以前的方法更高的准确性和高达5倍的推理速度。然后,我们在一个名为ZoomSR的应用程序中将我们的模型部署到智能手机上,以展示有史以来第一个基于设备深度学习的SR实例。我们对15名参与者进行了用户研究,让他们评估SplitSR后处理的图像的感知质量。相对于双线性插值(设备上SR的现有标准),参与者在同时查看图像(Z=-9.270,p<0.01)和文本(Z=-6.486,p<0.01)时表现出统计学上显著的偏好。

一:引言

图像超分辨率是从低分辨率输入重建高分辨率图像的任务。人工智能可能产生重大影响的一个领域是人机交互。例如,大多数智能手机依赖数字变焦,因为它们没有光学变焦镜头,因此当用户检查静态图像时,设备上的SR可以提供高分辨率图像[12]。随着用户调整相机的位置和缩放因子,低延迟的设备上SR还可以提高图像捕获期间的反馈质量。当用户拍摄文档照片时,他们可以确信他们以后能够阅读他们的文档,因为设备上的服务请求可以使单个字符更容易识别[8,32]。当用户希望通过计算机介导的通信向他人发送照片时,设备上的SR可以通过允许用户发送低分辨率图像来降低数据传输要求,这些图像随后会被上采样[7]。

设备上的服务请求将产生重大影响的另一个领域是医疗保健[13,36,44],尤其是在低端智能手机更为普遍的发展中国家。便携式超声波探头等即插即用智能手机配件支持医学成像,智能手机充当计算和通信中枢[2]。研究人员还开发了智能手机附件,增强了内置摄像头进行健康筛查的能力[11,40],包括用于识别屈光不正[30]和白内障[31]的封闭式光学组件。此外,移动健康研究人员已经开始利用未经改造的智能手机摄像头进行健康筛查。例如,Wadhawan等人[45]创建了一个智能手机应用程序,该应用程序可以分析皮肤病变的图像,以将其分为良性或恶性,而Mariakakis等人[28]提出了一个应用程序,该应用程序可以分析瞳孔放大的短视频,以识别创伤性脑损伤。在所有这些医疗保健应用中,低延迟设备上服务请求将确保在图像分析过程中不会忽略小细节,也不会影响用户体验。通过将计算保留在智能手机上,并绕过数据上传的需要,农村地区的连接变得不那么关键,敏感的患者信息可以得到保留。

深度卷积神经网络(CNNs)已经为SR [21,34,49]提供了最先进的精度,但是要实现这种性能,需要具有多层和跨层的大空间维度的网络架构。因此,这些模型通常有100-500万个参数,使得它们在资源受限的平台上直接部署不可行[17,49,51]。因此,此类模型通常部署在基于云的服务器上,这会导致数据上传和结果下载的延迟损失。模型本身的推理时间也不小,达不到设备上场景的要求[23]。低延迟设备服务请求将改变这种模式,消除实时应用中不必要的数据传输和功耗。

为了克服这些限制,我们提出了一种新的设备上服务请求架构,称为SplitSR。我们的关键见解是,由标准卷积和轻量级残差块组成的混合设计可用于最大限度地提高精度,同时满足有限的计算预算。我们将这一见解应用于扩展RCAN [51],这是一个最先进的SR模型,因此它可以在移动设备上运行。为了进一步拓展SplitSR的极限,我们还引入了一个新的轻量级剩余块,称为SplitSRBlock。该块利用标准2D卷积内的信道分裂来保留空间信息并降低计算成本。我们研究了SplitSR体系结构和SplitSRBlock的各种配置,以了解超参数如何影响推理延迟和准确性。我们还利用名为TVM [4]的现代深度学习编译器来实现所提出的系统,并生成高效的机器代码,从而在我们的目标嵌入式设备上加快推理速度。通过这样做,我们证明了与最先进的设备上SR模型相比,SplitSR实现了大约5倍的加速和卓越的精度。然后,我们在一个名为ZoomSR的安卓应用程序中部署了SplitSR,看看用户是否能注意到SplitSR和双线性插值在延迟和图像质量上的差异,双线性插值是设备上SR的现有标准。通过一项15人的用户研究,我们发现对于对象的图像(Z=-9.270,p<0.01)和文本(Z=-6.486,p<0.01),参与者更喜欢SplitSR而不是双线性插值。总之,我们的贡献包括

一个名为SplitSR的混合架构,结合了标准卷积块和轻量级残差块,在有限的计算预算内实现设备上的SR,

一个名为SplitSRBlock的轻量级残差块,将信道分割应用于标准2D卷积,以加速计算并重新训练高质量的空间转换,

一项综合分析,评估了我们的SplitSRBlock和我们的SplitSR模型相对于最先进的替代方案的优势,

ZoomSR是首个演示设备上深度学习型SR的智能手机应用,

ZoomSR的用户研究表明人们更喜欢

二:相关工作

在本节中,我们将概述单映像服务请求解决方案,包括为设备上系统设计的解决方案。然后我们描述SplitSR如何改进它的前身。

2.1超分辨率

从历史上看,研究人员探索了无数种方法来攻击超分辨率任务——从基于示例的策略到基于稀疏编码的方法[42,48–50]。然而,卷积神经网络(CNNs)已经迅速超越了这些方法,因为它们能够提取图像数据的高级表示。最近的研究已经证明了深度学习相对于替代方法的优越性。董等人[9]提出了深度学习的最早范例之一。Kim等人[18]后来改进了Dong等人的工作,使用更深的卷积神经网络(≥16层),使用残差学习来克服如此多层的挑战。这些工作的一个主要缺点是,在将低分辨率图像输入到网络之前,它们需要将低分辨率图像插值到高分辨率输入,这增加了计算复杂性,并且由于平滑效应,可能会丢失大量细节。通过在网络尾部训练一个单独的上采样器模块,Dong等人[10]引入了一个更快、更精确的网络。使用独立上采样模块的想法已经成为许多现代SR架构的常见选择。

为了进一步提高服务请求的准确性,进行了大量的改进。张等[51]增加了注意模块,创建了剩余通道注意网络()。据我们所知,的表现目前可与戴等人[6]的二阶注意网络(SAN)和刘等人[26]的分层反投影网络(HBPN)相媲美。然而,这些方法带来了巨大的计算成本,存储区域网络使用跨多个存储区域网络模型的自组装,而存储区域网络需要RGB和YUV图像作为输入。孙和陈[39]最近提出了一种称为内容自适应重采样器(CAR)的模型,该模型通过将常规SR网络与对高分辨率图像进行下采样的模型联合训练来提高其性能。像存储区域网络一样,由于需要联合架构,CAR会产生很高的计算成本,并且CAR还受到需要高分辨率图像进行推理的限制。这些模型必须大幅缩小,以适应移动设备有限的计算资源。然而,降低模型的复杂性通常会导致精度下降,尤其是在规模缩小的时候。在这项工作中,我们努力创建一个精确的服务请求模型,该模型足够高效,可以在移动设备上运行。SplitSR是一种混合架构,旨在针对特定的计算预算进行调整。为了更紧的预算,SplitSR以一种独特的方式用轻量级残差块代替标准卷积块,将延迟优先于准确性。我们将这一概念应用于RCAN [51]建筑,因为它在文献中更常用。

2.2设备上的超分辨率

先前的工作已经探索了几种利用定制硬件加速SR推理的方法。例如,Kim等人[19]在高度优化的基于FPGA的系统上演示了实时SR。尽管他们获得了从全高清(FHD)到4K超高清(4K UHD)的实时性能,但该算法部署在笨重的专用硬件上,无法灵活运行其他SR型号。Dasari等人[7]介绍了一种使用SR流式传输360度视频的系统。尽管他们的工作集中在网络延迟上,但他们没有给出他们的方法如何在普通2D图像数据集上工作的结果。

与我们自己的工作最相似的是李等人的MobiSR[23]。MobiSR是一个在异构移动处理器上运行的设备上SR系统,集成了CPU、GPU和数字信号处理器(DSP)。与以前的工作相比,MobiSR实现了显著的加速,但是该工作的作者无法在移动设备上实现他们的系统,因为需要多处理器负载平衡。SplitSR使用单个神经网络和单个CPU,在速度和准确性方面实现了最先进的移动SR性能,使其可以被许多现代智能手机访问。在这项工作中,我们将SplitSR部署在一个名为ZoomSR的安卓应用程序中,并评估用户是否注意到SplitSR处理的图像与双线性插值之间的差异。

2.3轻质残余块

标准卷积层是许多计算机视觉应用的基本构件。当许多卷积层堆叠在一起形成非常深的网络时,剩余连接可以用于在训练期间促进通过网络的梯度流。在某一点上,许多网络对于设备上的系统来说变得计算量太大,尤其是当特征映射的信道维度很大时。假设给定卷积层的输入和输出信道都是N,标准卷积层的计算复杂度是O(N^2).在本节中,我们将介绍卷积层的最新优化,这些优化试图在保持高精度的同时降低卷积计算复杂度。

2.3.1瓶颈块和洗牌块。Howard等人[15]提出使用深度可分离卷积来堆叠剩余块,并在精度和等待时间之间实现强平衡。这些操作也称为瓶颈块,由两部分组成:3×3深度方向的卷积和1×1点方向的卷积。深度方向卷积用于扩展特征,并在每个输入通道使用单个卷积滤波器来执行轻量级滤波,而点方向卷积通过计算输入通道的线性组合来构建新特征。由马等人[27]推出的ShuffleBlock是BottleneckBlock的高级版本,具有多项创新(图)。首先,ShuffleBlocks使用通道分割将输入通道均匀地分割成分支。只有一个分支用于计算,其中每个通道通过两个1×1逐点卷积和一个3×3深度卷积进行处理。然后将这些分支连接起来,之后对信道进行混洗,以允许信息在两个分支之间传递。

2.3.2反转残余块和空闲块。反转残差块被设计成在深度卷积期间处理显著更多的空间信息。为此,这些块在开始处添加了额外的逐点图层,以将低维信息扩展到高维表示。经过深度卷积后,这些块使用另一个点状层将高维表示投影到原始低维空间。Sandler等人[38]首次提出这些区块作为其MobileNetV2工作的一部分,在ImageNet数据集上获得了相当大的性能提升性能。最近,徐等人[47]提出了将反向残差块与ShuffleBlock(没有信道混洗)相结合的想法,以修剪多余的连接。这个构造被称为空闲块(图1B)。徐等人[47]还研究了IdleBlock在各种混合动力配置中的使用,使用了两种不同的类型的轻量级残差块进行图像分类,并实现了相对于其他移动特定的神经网络的最先进的精度。

2.3.3 GhostBlock。中枢神经系统的特征图中经常包含冗余。韩等人[14]将这些冗余称为幽灵特征,认为这种低效率是优化的机会。他们提出了GhostBlock的概念(图1C),用于通过廉价的线性运算而不是普通的卷积来生成冗余特征图。在GhostBlock中,使用普通的卷积核来生成一些内在的特征映射。线性运算用于生成冗余特征图,然后将冗余特征图与固有特征图叠加,以生成块的输出。在GhostBlock的第一层使用逐点卷积,深度卷积用于廉价的线性运算。

我们从先前的工作中得到启发,提出了SplitSRBlock,它通过将信道分割应用于标准2D卷积来提高性能。我们将SplitSRBlock与前面提到的SplitSR体系结构中的轻量级剩余块进行了比较,使我们成为第一个在图像SR环境中评估这些块的人。

三:方法

在接下来的几节中,我们首先描述一种称为SplitSRBlock的新型轻量级残余块的设计。然后,我们描述了如何在一种称为SplitSR的新型混合架构中使用这种块,该架构将标准卷积块与轻量级残差块混合,以实现设备上的SR。

3.1分流块设计(SplitSRBlock Design)

频道方面的关注已经被用来帮助像RCAN [51]这样的服务请求网络关注信息特征(即频道)以提高准确性。因为某些通道通常比其他通道更重要,所以通道式关注的成功表明,并非每个通道都是生成最终高分辨率输出的关键。此外,信道分离可以像信道关注一样,通过反向传播在某些信道上提供更复杂的权重。因此,我们提出了一种轻量级残差块设计,该设计使用信道分割来减少计算,同时保持来自标准2D卷积的高质量空间变换以实现高精度。SplitSRBlock的结构受之前提出的轻量级剩余块的启发(图1),可以总结为三个阶段。首先,根据参数alpha.,具有N通道的张量沿着通道轴被分成两个分支其次,具有alpha × N通道的分支用于执行深度方向或点方向的卷积,而另一个分支保持空闲。例如,当alpha=0.5时,一个分支使用一半的信道进行计算,另一个分支通过网络传递剩余的信道。最后,这两个分支被连接起来以构建块的输出与输入通道数量相同。随着alpha减少,可以添加更多的层,同时保持相同数量的总网络参数。这种结构不仅计算效率高,而且能够在超分辨率中实现高精度,因为它能够仅使用输入通道的子集和反向传播来学习关于图像的足够信息。

图2。(一)SplitSRBlock是一种基于标准2D卷积的轻量级残差块,通过信道分割来保持空间变换的质量并降低计算成本。(二)SplitSR是一种混合架构,它利用了轻量级残差块(例如SplitSRBlock)和标准2D卷积的组合,因此人们可以优化延迟和性能之间的权衡,从而在有限的计算预算下实现SR。

现有的利用信道分裂的轻量级剩余块目前被设计用于像图像分类这样的区别性计算机视觉任务。然而,空间重建是一项生成性任务,通常需要大量的细粒度空间信息。当在信道分割阶段之后,少量信道参与计算时,深度方向和点方向的卷积牺牲了空间信息,在计算效率方面只有很小的好处。因此,我们专门为高效的空间重构提出了分割块(图2-A)。分割块在信道分割后使用标准2D卷积来保留空间变换,而不是深度卷积和点卷积。标准卷积通过具有感受野来保存空间信息,并且在信道分裂之后,这种运算的计算要求显著降低。与其他轻量级残差块一样,两个分支(已处理和未处理)的结果在末端连接,以保留相同数量的输出通道。然而,SplitSRBlock在输出端反转级联方向,使第一个alpha × N通道(用于卷积)成为输出端的最后一个alpha × N通道。通过这样做,在1/alpha块之后,每个单个信道都将参与计算。使用SplitSR可以获得的理论计算简化是alpha^2,其中alpha∈(0,1)。

3.2 SplitSR Architecture Design

大多数现代SR网络共享类似的四阶段结构[6,24,51]: (1)像单个2D卷积层一样的输入层,(2)具有大量2D卷积层的特征提取阶段,以提取图像的高维表示,(3)由卷积层和像素混洗层组成的上采样器阶段,以沿着深度维度将信息重新排列成空间信息块,以及(4)生成最终上缩放图像的输出层。过去试图使服务请求网络足够高效以在移动设备上运行,包括用轻量级剩余块替换所有标准卷积块[23]。现代SR体系结构通常具有大量的标准卷积块,但其中大多数在特征提取阶段被聚类。标准SR架构中的每个阶段都有不同的用途,因此,尽管在所有位置天真地替换标准卷积块会提高效率,但通常会对精度产生负面影响。

我们引入了一种称为SplitSR的混合架构,以帮助平衡设备上SR的准确性和延迟之间的权衡(图2-B)。SplitSR基于RCAN模型[51],尽管我们的混合方法可以应用于任何其他最先进的SR模型。RCAN在其卷积层和超过400层中使用64个特征图(输出通道)来实现高精度。SplitSR通过利用标准卷积层和轻量级残差块的组合来修改RCAN。由于输入和输出级会改变通道的数量,因此带有通道分割的轻量级残差块(例如SplitSRBlock)只能用于特征提取和上采样器级。随着更多轻量级残差块的引入,SplitSR变得更加高效,代价是牺牲模型复杂性和自由度。考虑到这一框架,我们引入四个参数作为我们建议的服务请求架构的潜在设计决策:

(1)信道分割比:每个块内用于计算的信道分数

(2)混合索引:由轻量级残差块替换的标准卷积块的数量

(3)混合模式:标准卷积块和轻量级残差块的排序(例如,标准轻量级,轻量级标准)

(4)替换位置:替换标准卷积块的阶段(例如,特征提取,上采样器)

四:性能评估和结果

4.1 Implementation

部署设备上深度学习模型的挑战之一是目标平台上高级图形优化和低级操作员优化之间的差距。不幸的是,很少有手动优化工具被设计来处理高度定制的神经网络架构。即使体系结构已经针对目标设备进行了手动优化,将该体系结构移动到新平台,甚至改变输入形状,都可能需要对优化后的内核进行完全重写。然而,最近出现了像TVM [4]和Halide[33]这样的深度学习编译器来简化优化过程这些编译器将函数定义与调度(即代码应该如何执行)分开。这种分离允许开发人员快速探索调度空间,而无需在每一步重写内核

在这项工作中,我们扩展了TVM,以支持2.3节中描述的SplitSRBlock和其他三个剩余块所需的操作。我们基于TVM的设备上随机共振系统直接转换张量流图形转换为中继表示[37],并使用LLVM将代码编译到多个目标设备。在我们提出的服务请求体系结构中,我们利用了TVM的调度原语进行核心操作(例如,像素混洗)。我们应用的调度原语总结如下:

平铺:将整个计算过程分割成小块,以更好地重用数据和利用缓存。因此,切片提高了计算效率并减少了内存流量。

打包:基于切片配置重新格式化输入张量,以更有效地利用内存并减少缓存未命中。

向量化:利用目标硬件中的单指令、多数据(SIMD)指令来实现同时多操作符计算。

展开:减少分支损失,减少访问内存和删除控制流操作时的延迟。

因为我们已经按照TVM的惯例实现了操作符,所以我们可以利用TVM的内置图形优化过程。这些包括死代码消除、公共子表达式消除、常数折叠和运算符融合

4.2 Experimental Setup

我们在一个名为Firefly-RK33991的开源嵌入式系统上部署了SplitSR。该板由双1.8千兆赫集群供电:一个具有两个大的Cortex-A72内核,另一个具有四个小的Cortex-A53内核。RK3399也有一个Mali-T860 MAP4移动GPU,但我们的工作重点是评估CPU上的性能。通过关注CPU,SplitSR系统可以推广到任何基于ARM的CPU移动引擎,这在当代移动设备中很常见。此外,图形处理器可以具有其他计算平台(如树莓皮、低端智能手机)所没有的独特架构。在评估过程中,我们使用单精度浮点运算(FP32)作为模型的精度。

我们在TensorFlow [1]和TVM [4]中实现了我们的系统。在训练过程中,从DIV2K数据集[41]中抽取96×96个裁剪的高分辨率图像和它们的低分辨率对应图像,每16个一批。随机水平翻转和90° ♀-间隔的随机旋转用于数据增强。Adam优化器[20]用于最小化L1损失,参数如下:初始学习速率=1e-4,​= 0.9,​= 0.999,​= 1e-7。网络被训练6×10^5步,每2×10^5次迭代学习衰减2倍。

在这项工作中,我们重点关注分辨率提高×4的模型。为了加速模型收敛,我们首先对模型进行预训练,通过30×10^5次迭代将分辨率提高×2。这个训练团在过去的SR工作中得到广泛应用[23,24,51]。

4.3 Evaluation Procedure and Metrics

为了评估我们部署的模型的性能,我们报告速度和准确性作为评估指标。为了提高速度,我们对每个模型运行了10次,并报告了以毫秒为单位的平均推理延迟。为了准确性,我们在训练中固定了随机种子,并报告了SR图像质量的标准指标:峰值信噪比(PSNR)和结构相似性(SSIM) [46]。PSNR是在YCbCr颜色空间的Y通道上计算的,对应于图像亮度。PSNR是对数度量;因此,看似递增的差异看似显著。SSIM是用于评估两幅图像之间的感知相似性的归一化度量(范围:0–1)。我们在常用于SR模型评估的四个数据集上进行实验:Set5 [3]、Set14 [50]、B100 [43]和Urban100 [16]。这些数据集分别包含5、14、100和100幅图像。

Firefly-RK3399 Six-core 64-bit Open Source Platform

4.4 Reference Model Configurations

我们将我们的混合设计和SplitSRBlock应用于RCAN [51]架构,这是一个最先进的SR模型。RCAN包括卷积运算的块,这些块聚集在一起形成具有短残差连接的残差组。通过引入信道分裂,我们的方法使我们能够显著扩展服务请求网络的深度,同时保持相同的推理延迟。由于RCAN的结构使用块簇作为组,我们调整了混合索引(HI)的定义来指代组而不是块。我们删除了RCAN的通道关注层,因为只有当每个卷积中的通道数量较高时,它才是有益的。使用我们的分离设计将每个块中处理的通道数量减少到alpha × N,从而减少了通道关注层的必要性。此外,SplitSRBlock中的通道分割为某些通道(经过卷积的特征映射子集)提供了一定程度的关注。由于SplitSR是一个可以根据计算预算进行调整的架构,因此我们创建了两个版本的模型:

注重准确性:7个剩余组,每个组有7个

剩余块注重延迟:5个剩余组,每个组有6个剩余块

注重准确性的网络配置旨在直接与MobiSR的参考模型相媲美。基于延迟的模型更适合移动应用,因为它比较浅,操作次数也比较少。我们专门设计了以延迟为中心的配置,平均推理时间约为500毫秒,我们认为这将展示更好的用户体验,对于低端智能手机来说更容易访问,更适用于更真实的应用。还值得注意的是,这些模型配置代表了准确性-延迟权衡的两个实例。残余组的数量和每个组的残余块的数量可以根据计算预算和目标应用程序的延迟精度进行调整。这同样可以应用于模型中的特征图(即卷积通道)的数量。

我们使用MobiSR [23]作为竞争基准,因为它也使用基于RCAN的设计。由于SplitSRBlock提供的信道分割,在相同的计算预算下,SplitSR能够容纳比MobiSR更多的剩余块。在我们的实验中,所有的模型都有16个特征图,以消除作为可能混杂因素的超参数。

4.5 Hyperparameter Selection for SplitSR

SplitSR有许多超参数可以调整,以平衡精度和性能。下面,我们描述其中一些超参数对我们的延迟聚焦模型的影响。

4.5.1通道分流比。表1显示了不同值对信道分割ratio훼.的性能影响As훼增加,更多的通道用于计算。这创建了一个更复杂的模型,能够生成更高阶的数据表示,从而获得更高的精度。然而,增加훼也会导致更高的延迟。alpha = 0.25时的延迟非常接近alpha = 0.125时的延迟,同时为所有数据集产生更好的峰值信噪比。虽然alpha = 0.5和alpha = 1提供了更好的准确性,但它们需要更长的时间来推断。为了在延迟和准确性之间建立良好的平衡,我们在剩下的评估中使用了alpha =0.25

4.5.2混合指数。表2显示了混合指数不同值的性能当HI增加时,更多的标准2D卷积组被轻量级残差组取代,导致更低的延迟和准确性;尽管如此,混合标准和轻量级卷积可能会导致准确性和延迟的最佳点。HI=3和HI=4之间的精度差距远大于HI=2和HI=3之间的精度差距。同时,这些对之间的延迟差异实际上是相等的。出于这些原因,我们使用HI=3进行未来评估。

表4。不同轻量级数据块放置在我们延迟集中的SplitSR模型上的性能比较(alpha = 0.25,HI = 3,混合模式=前端)。

4.5.3混合模式。表3显示了不同混合动力模式的性能影响。我们检验了三种不同的混合模式:(1)前:替换第一个HI剩余组(2)后:替换最后一个HI剩余组(3)混合:用规则的间距替换HI剩余组因为在这个实验中HI是固定的(HI=3),模型复杂度保持不变;在不同的混合模式中,只有操作顺序会发生变化。因此,推理延迟在所有三种混合模式中都是相同的。“前端”配置在精度方面优于其他两种模式,因此我们将该设置用于未来的评估。

图3。残差块选择对PSNR森林(左上角)集合5 [3]、(右上角)集合14 [50]、(左下角)B100 [43]、(右下角)和城市100 [16]影响。

4.5.4更换位置。表4显示了在RCAN体系结构中使用轻量级残差块来替换标准卷积块的性能含义。如第3.2节所述,利用轻量级残差块最有意义的两个主要阶段是特征提取和上采样阶段。然而,标准卷积块也可以在每个残差组的输出端和特征提取级的输出端被替换。我们研究了以下替换策略:

(1)仅特征提取:卷积仅在特征提取阶段被替换

(2)特征提取+上采样:卷积在特征提取和上采样阶段都被替换

(3)自始至终:卷积在特征提取阶段、上采样阶段、在每个残差组的末端以及特征提取阶段的输出中被替换额外的策略可以包括仅在上采样阶段或其他非主要阶段替换卷积, 但是这些阶段比主要特征提取阶段小得多,因此不会显著影响网络性能。 我们发现,在特征提取阶段之外替换卷积会降低准确性,而不会带来相应的延迟好处,因此我们只在特征提取阶段替换卷积,以备将来研究

4.5.5轻质残余砌块类型。我们比较了四种轻量级剩余块设计带来的性能:混合块[27]、空闲块[47]、GhostBlock [14]和我们提出的分割块。图4展示了RCAN在四个验证数据集的各种轻量级残差块上取得的性能。SplitSRBlock在延迟和准确性方面都优于其他块。在这两项指标上,ShuffleBlock都是明显的亚军。空闲块导致最差的准确性,而GhostBlock产生最差的延迟。空闲块和GhostBlock都扩展了要素地图接近它们的输入,而ShuffleBlcok和SplitSRBlock没有。我们的实证结果表明,扩张并不能提高服务请求的性能

图3扩展了验证数据集中各种模型的准确性。我们提出的分割块在所有数据集上都超过了其他三个剩余块,并且每个数据集对于不同的块表现出相同的排名。这些发现验证了我们的假设,即利用传统2D卷积分割设计实现了精度和速度的卓越平衡。

4.6 SplitSR的整体性能我们还将SplitSR与当前最先进的移动SR系统MobiSR进行了比较[23]。在该工作中,Lee等人评估了三种不同的配置:(1) MobiSR:这是具有正常卷积的最标准的网络,但是层数更少,因此它们的模型可以在移动设备上运行(2) MobiSR w/ Shuffle:在该模型中,标准卷积块被ShuffleBlocks代替,因为在Lee等人的实验中,这些被确定为性能最好的轻量级剩余块。(3) MobiSR双模型:在这个模型中,MobiSR被分成两个模型,运行在异构移动处理器上,集成了CPU、GPU和数字信号处理器(DSP)。重型模型在数字信号处理器上运行,而轻型模型在中央处理器/图形处理器上运行。为了利用这些模型,MobiSR将原始图像分割成小块(90×160),并将其输入负载平衡单元,以评估其难度“硬”补丁发送到DSP,“易”patches发送到CPU/GPU进行SR推断。

为了测试MobiSR的性能,Lee等人使用了一个数字信号处理器和一个八核中央处理器,其中四个大的定制ARM A75内核和四个A55内核的时钟速度高达2.8千兆赫(高通骁龙845 SoC2)。相比之下,我们在具有四个A72内核和两个A53内核的CPU上评估SplitSR内核的时钟速度只能达到1.8千兆赫,与老得多的高通骁龙650相当

表5显示了两种SplitSR配置(以延迟和精度为重点)相对于上述MobiSR配置的性能。我们还包括双线性插值的性能,这是设备上SR的现有标准。请注意,Lee等人没有在所有可能的数据集上评估他们的所有三种配置;从而在我们的比较中留下空白。我们发现,与使用单处理器的标准MobiSR模型相比,SplitSR的速度快了4.78倍,并且在每个验证数据集上都达到了更高的精度。当我们将我们注重延迟的模型与MobiSR和shuffle进行比较时,我们证明了Urban100数据集的卓越准确性以及33%的CPU延迟加速。当我们将SplitSR与MobiSR的双模型配置进行比较时,我们基于精度的模型不仅实现了更高的精度,而且还实现了alpha~34%的加速比。

Snapdragon 845 Mobile Platform | Qualcomm Snapdragon 650 Mobile Platform | Qualcomm

总之,尽管MobiSR使用更高性能的硬件和复杂的系统来最大限度地提高性能,但SplitSR仍能实现更高的精度和高达4.8倍的推理加速。通过利用专门用于深度学习的编译器来完成生成视觉任务,如SR,我们的结果表明,人们应该将轻量级剩余块和深度学习编译器集成到他们的重型移动计算系统中,以获得显著的加速。此外,我们提出的SplitSRBlock相对于先前工作提出的替代方案表现出优越的性能,表明深度可分离卷积对于新的轻量级残差块并不总是必要的。

五:用户研究USER STUDY

为了将我们的离线评估结果放在上下文中,我们进一步在智能手机上部署了SplitSR,并调查个人是否能够注意到SplitSR提供的图像质量与现有双线性插值标准的差异。我们首先描述了我们实现SplitSR的方式,作为一个名为ZoomSR的标准图库应用程序的一部分,以提供尽可能无缝的体验。然后我们描述参与者被要求执行的两项任务以及相关的发现。

5.1 ZoomSR Design

在我们的研究中,我们开发了ZoomSR作为一个图像图库应用程序,用于查看保存在智能手机上的图像。我们在谷歌Pixel 4上部署了这个应用,它有一个5.7英寸的有机发光二极管触摸屏,分辨率为2280×1080,处理器是高通骁龙855。加载到ZoomSR中的图像显示在1742×1080像素的区域中,屏幕的其余部分保留给指令和界面控制。每当用户将图像加载到屏幕上时,ZoomSR都会在缩放过程中随机选择SplitSR或双线性插值进行上采样。使用屏幕底部的按钮,用户可以看到由备用SR方法后处理的相同图像。

如今,人们在智能手机上看到的大多数图像都比我们用来评估技术的数据集中的图像具有更高的分辨率,处理更大的图像会导致更长的延迟。双线性插值能够相对容易地处理这样的图像,但是我们必须智能地利用SplitSR来实现可容忍的处理时间。在ZoomSR中,我们使用延迟集中的SplitSR模型进行向上采样256×256 px补丁至4×。如果用户想要的缩放级别低于2×,ZoomSR只需使用双线性上采样来处理补丁。如果所需的缩放级别在2–4倍之间,ZoomSR会将面片推过模型,以4倍的因子对它们进行上采样,然后将结果下采样到所需的分辨率。如果所需的缩放级别大于4×,ZoomSR仍然会将面片推过SplitSR模型,但随后会对结果应用双线性插值来进一步上采样。我们将研究的最大变焦级别限制为5倍。我们优先处理最接近用户启动其“捏改缩放”手势的位置的补丁,以确保首先完成图像的最重要部分。用户最终图像视图之外的补丁仍然被处理,因为用户仍然应该被允许在缩放手势期间或之后浏览图像的其余部分

图5。图片任务截图来自ZoomSR:(A–C)一张汽车图片,(D–F)一张动物图片。截图显示了使用SplitSR上采样后的(A,D)原始图像,(B,E)图像,以及使用双线性插值上采样后的(C,F)图像。请注意,SplitSR和双线性插值的呈现顺序是随机的,以减轻排序影响。

5.2 协议

我们对15名参与者(8名男性,7名女性)进行了用户研究,以评估用户对SplitSR产生的图像质量的看法。这项研究被分成两部分——图像任务和阅读任务——因为人们可以分别关注物体和文本的不同特征。对于图像任务,参与者被要求依次检查10幅随机排序的受试者图像,如动物、人和自然(见图5)。参与者可以随意平移和缩放图像。当他们使用两种不同的SR方法(SplitSR和双线性插值)检查同一张图像时,参与者被要求对每种版本的图像质量进行评分。参与者被要求根据图像的呈现方式(例如,分辨率、焦点、模糊度)而不是内容对图像进行评分。评级是按照7分李克特等级(1:最低质量,7:最高质量)进行的。 在阅读任务中,参与者被要求依次检查在远处黑板上拍摄的10幅文本图像(见图6)。黑板在2米之外,文本大约有60-70个字符,所以参与者必须放大才能分辨字符。文本每次也被放在黑板上不同的位置,以防止参与者随着时间的推移学习相同的缩放模式。参与者被要求阅读文本,并按照7分李克特量表(1:非常容易,7:非常难)对他们阅读文本的难易程度进行评分。与前一个任务不同,参与者只看到每张图片无论是SplitSR还是双线性插值(均匀分布),因为两次看到相同的图像会使后者更容易阅读。

图6。截图取自ZoomSR的阅读任务。截图显示了(A,C)原始图像,(B)使用双线性插值进行上采样后的图像,以及(D)使用SplitSR进行上采样后的图像。请注意,SplitSR和双线性插值的呈现顺序是随机的,以减轻排序影响。

5.3 结果

两项研究的参与者都没有报告注意到SplitSR与双线性插值相比产生的额外延迟。从捏到缩放手势平均需要大约1000毫秒,而延迟聚焦SplitSR配置的处理时间平均需要629毫秒。一有手势,ZoomSR就开始对图像进行上采样这意味着SplitSR通常会在人们完成手势并返回检查图像细节之前完成图像处理

5.3.1第1部分:图像任务。图7A总结了图像任务的李克特分数分布。根据Wilcoxon符号秩检验,双线性插值和SplitSR的李克特得分之间存在统计学显著差异(Z= 9.270,p < 0.01)。SplitSR获得的中值分数比双线性插值高2分(6比4)。这个结果在一个随机效应模型中得到支持,该模型考虑了不同条件下的图像ID、参与者ID和呈现顺序(F = 285,p < 0.01)。在150个成对比较中(15名参与者× 10幅图像),参与者发现SplitSR在85.3%的图像中比双线性插值提高了图像质量。参与者只在4.7%的时间里更喜欢双线性插值的图像,其余的病例根据参与者没有可察觉的差异。

5.3.2第二部分:阅读任务。在这个分析中,我们使用曼恩-惠特尼U检验来比较李克特得分,因为测量值不成对。图7B展示了阅读任务的李克特分数分布。和以前一样,发现有利于SplitSR的统计学显著差异(Z= 6.486,p < 0.01)。SplitSR的李克特得分中位数比双线性插值高1分(5比4)。这一结果在一个随机效应模型中得到了证实,该模型考虑了不同条件下的图像ID、参与者ID和呈现顺序(F = 155,p < 0.01)。

六:讨论和限制

在这项工作中,我们使用我们的SplitSR架构在移动设备上演示了第一个基于深度学习的SR实例。我们的SplitSRBlock的信道分割设计通过产生优于现有方法的精度,同时实现更快的推理速度,使这一目标得以实现。这些创新不仅使在设备上执行服务请求成为可能,而且还显著提高了最终用户的图像质量。在这一部分,我们描述了未来工作的潜在途径和我们发现的局限性。

6.1TVM的重要性

如第4.1节所述,在移动设备等平台上部署深度学习模型的挑战之一是目标平台上高级图形优化和低级操作员优化之间的差距。TVM通过为深度学习模型自动生成高效的机器可读代码来解决这个问题,这就是为什么我们使用它来开发SplitSR和ZoomSR。为了量化可归因于我们与TVM集成的性能提升,我们还使用基于桌面的Tensorflow部署了SplitSR,而不使用TVM。请注意,基于桌面的TensorFlow不是为基于ARM的平台设计的,我们无法使用TensorFlow Lite,因为它不支持我们实现SplitSR所需的一些操作。SplitSR注重准确性的配置平均需要2560毫秒来推断所有基准数据集,而注重延迟的配置需要1802毫秒,这突出表明优化对于设备上的部署至关重要。这些结果并没有使前面给出的结果无效,因为先前的文献也利用深度学习优化来实现它们的结果。我们的性能基线,MobiSR [23]。用骁龙神经处理引擎优化深度学习架构的操作。MobiSR还使用了骁龙845,它的硬件规格优于我们在评估中使用的Firefly-RK3399。

我们认为,将SplitSR和TVM与MobiSR论文中给出的结果(以及它自己的优化)进行比较是最诚实的比较,因为MobiSR的源代码不可用,我们无法重现它们的结果。然而,我们进行了一项额外的评估,将SplitSR和MobiSR与标准化硬件和作为编译器的TVM进行了比较(表6)。为了产生与MobiSR论文中显示的结果相当的结果,我们部署了他们的单模型架构,带有一个非简化的上采样器模块,在170k个参数中增加了20k个参数。将该模型与精确聚焦的SplitSR模型进行比较,我们发现在所有四个验证数据集上,SplitSR的性能平均比MobiSR高0.05 dB,同时实现了相似的推理延迟。我们还将注重延迟的SplitSR模型与轻量级版本的MobiSR进行了比较,每个组中有6个剩余块,而不是10个剩余块。我们发现SplitSR在该评估中也优于MobiSR,在Urban100数据集上提供了0.13 dB的显著精度提升。

6.2 SplitSR的未来应用

在本文中,我们的模型架构基于RCAN [51],但是我们的混合架构和channelsplitting的使用可以扩展到其他现代SR架构。我们还假设,可能有机会将SplitSRBlock应用于设备内音频SR [22]的类似任务,这将提高音频频谱图的分辨率,以实现更高质量的音频。总的来说,我们鼓励研究人员探索在通常使用标准卷积来支持不同硬件平台上的设备上计算的地方集成我们的SplitSRBlock的新方法。

我们预计,除了我们的ZoomSR应用程序之外,还有许多潜在的应用程序可以从设备上的服务请求中受益。研究表明,SR可以在医学成像中发挥重要作用[13,35]。随着医疗设备变得越来越普遍,尤其是在中低收入地区,在不需要数据连接的情况下运行临床评估的能力将变得越来越重要。移动健康也将从SR中受益。例如,刘等人[25]最近证明智能手机可以用于远程生理测试(即光电容积描记法),McDuff [29]表明SR提高了此类技术的准确性。另一个将从SR中受益的应用是瞳孔筛查[28],这是一种创伤性脑损伤的筛查工具,利用智能手机的摄像头来测量瞳孔光反射。因为摄像机被用来测量一个人的瞳孔大小,视频分辨率直接影响到瞳孔屏幕的精度和诊断准确性。虽然这两个应用程序的计算都可以在云上完成,但绕过数据上传的需要将有助于维护受保护健康信息的隐私。

6.3收缩到缩放手势预测,降低延迟(Pinch-to-Zoom Gesture Prediction for Lower Latency)

无论模型离线时的性能如何,模型集成到用户体验中的方式都会对延迟(以及感知性能)产生重大影响。对于我们的研究应用程序,我们使用单个SplitSR模型将图像放大4倍,然后根据最终的缩放级别调整图像。这一决定是一种妥协,对需要在较低和较高变焦水平下进行上采样的图像产生了影响。对于必须向上采样超过4倍的图像,我们使用了具有更快延迟的较小模型,以确保ZoomSR响应迅速,但这导致了图像质量的牺牲。对于不必上采样那么高的图像,我们实现了可能的最大图像质量,但是模型比需要的大,因此ZoomSR处理图像花费的时间比使用较小模型所需的时间多。这些缺点可以通过同时运行一小组模型来减轻,这些模型将图像向上采样到不同的比例(即2×、3×、4×)。然而,即使有我们最先进的延迟,这也是有问题的这些模型的内存占用也带来了自身的挑战。我们认为,在某些情况下,可以通过观察一个人在触摸屏上执行从捏到缩放手势的方式来预测最终的缩放级别,较大的手势表示较高的上采样。了解这些信息后,调度程序可以使用最接近的比例因子对模型进行优先排序,从而最大限度地减少所需的后处理量。研究这种预测机制并确定优化延迟的理想模型数量仍然是未来研究的主题。

6.4限制

我们研究了SplitSR系统中的五个超参数:信道分裂比(alpha)、混合指数、混合模式、替换位置和块类型。在我们的实验中,我们改变了单个超参数,同时保持其他参数不变,从而允许我们报告每个参数对自身的影响。我们假设,在所有可能的超参数上进行完整的网格搜索可能会导致更优化的配置和更好的性能,但我们怀疑我们为SplitSR系统呈现的配置接近该目标。由创建TVM的同一研究人员制作的autovm[5]提供了支持自动超参数搜索的附加功能,我们预计这对于识别最佳补丁调度原语(例如,补丁大小)以获得更低的延迟特别有用。我们评估的其他局限性在于,我们只测试了SplitSR的一种部署配置:在谷歌Pixel 4上的一个图像库应用程序,该应用程序具有将图像向上采样4倍的单一模型。我们选择在安卓上部署ZoomSR,而不是iOS,因为TVM与安卓的兼容性更强,我们选择了4倍的缩放因子,以便与Lee等人的MobiSR工作进行最公平的比较[23]。然而,SplitSR可以在各种不同配置的平台上使用,我们将这一探索留给未来的工作。

七:结论

在本文中,我们提出了一种新颖的端到端移动超分辨率系统,称为SplitSR。通过在现代SR架构中引入分离设计,并利用现代深度学习编译器来执行低级运算符优化,我们实现了高达5倍的推理加速,同时与以前最先进的系统相比,精度更高。我们还开发并测试了ZoomSR,这是首个使用深度学习的设备上SR智能手机应用。我们相信,我们提出的方法将支持许多未来的设备上服务请求应用,尤其是在云连接和设备上计算能力有限的低资源环境中的医疗应用。我们希望其他研究人员将来将我们的发现应用到这个领域和其他领域。

SplitSR: An End-to-End Approach to Super-Resolution on Mobile Devices相关推荐

  1. 论文翻译:2019_Speech Super Resolution Generative Adversarial Network

    博客作者:凌逆战 论文地址:基于GAN的音频超分辨率 博客地址:https://www.cnblogs.com/LXP-Never/p/10874993.html 论文作者:Sefik Emre Es ...

  2. 论文翻译:Speech Super Resolution Generative Adversarial Network

    博客作者:凌逆战 论文地址:https://ieeexplore.ieee.org/document/8682215 博客地址:https://www.cnblogs.com/LXP-Never/p/ ...

  3. Google Pixel 超分辨率--Super Resolution Zoom

    Google Pixel 超分辨率–Super Resolution Zoom Google 的Super Res Zoom技术,主要用于在zoom时增强画面细节以及提升在夜景下的效果. 文章的主要贡 ...

  4. CV之SR:超分辨率(Super resolution)的简介、使用方法、案例应用之详细攻略

    CV之SR:超分辨率(Super resolution)的简介.使用方法.案例应用之详细攻略 目录 超分辨率(Super resolution)的简介 超分辨率(Super resolution)的使 ...

  5. 【Super Resolution】超分辨率——SRCNN

    SRCNN 01 闲聊--图像的超分辨率 02 SRCNN--超分和DL的结合 02-1 双三次插值 02-2 SRCNN的网络结构 02-3 Training 训练阶段 03 EXPERIMENTS ...

  6. Wavelet-SRNet: A Wavelet-based CNN for Multi-scale Face Super Resolution

    Wavelet-SRNet: A Wavelet-based CNN for Multi-scale Face Super Resolution 2017 ICCV 1.引言 2.网络结构 3.损失函 ...

  7. Unfolding the Alternating Optimization for Blind Super Resolution

    Unfolding the Alternating Optimization for Blind Super Resolution 论文信息 Paper: [NeurIPS2020] Unfoldin ...

  8. (NIPS2020)Unfolding the Alternating Optimization for Blind Super Resolution 笔记

    (NIPS2020)Unfolding the Alternating Optimization for Blind Super Resolution https://github.com/great ...

  9. 漫谈深度学习在Super Resolution(超分辨率)领域上的应用

    1.前言 清晨,师兄推荐给我一篇文章,关于利用DeepLearning思想进行图像超分辨恢复的.超分辨这个话题几年之前还是比较火爆的,无论是BiCube.SP.A*都给出了令人振奋的结果.但是细节恢复 ...

最新文章

  1. LVS(13)——DR模型准备工作及ip地址冲突问题
  2. 网络安全:图片防盗链的实现原理
  3. 软件工程---4.需求工程
  4. 产品部门四大角色——PM/PD/UE/UI
  5. 客户端通过网口启动可过去的ip_西安交通大学16年3月课程考试《网络组网技术综合训练》作业考核试题...
  6. 判断用户Input输入的事件来进行登陆
  7. 中小企业上ERP项目不可回避的9个基本问题
  8. (转)淘淘商城系列——商品搜索功能测试
  9. tps波动很大的原因_期货揭秘:价格的波动规律(2)
  10. android 取出list第一页数据_Android传递ListObject的用法
  11. huawei交换机普通远程登陆配置
  12. cmw500综合测试仪使用_辽宁优质继电器综合测试仪供应商-广州炫通电气科技
  13. ResourceBundle
  14. UA MATH524 复变函数4 复级数与复变函数的积分基础
  15. 一根网线两台电脑传输文件
  16. 夜神模拟器Nox.exe支持命令行参数列表
  17. 自己动手写CPU之第九阶段(2)——载入存储指令说明2(lwl、lwr)
  18. 获取中国节假日信息api
  19. 免费的天气API接口
  20. 【CS231n】斯坦福大学李飞飞视觉识别课程笔记(十九):卷积神经网络笔记(下)

热门文章

  1. linux获取当前日期yyyymmdd,获取当前的日期
  2. neo4j的搭建和实例使用
  3. mendix费用价格
  4. 如何通过QA质量管理提高软件质量?
  5. 繁易MQTT简单操作说明
  6. atoi()函数的实现
  7. LC振荡电路以及考虑寄生参数时MOS管开通关断分析
  8. 最好用的免费的UML工具软件
  9. 【PBR系列三】BRDF方程及渲染方程
  10. 何隆昌 帆软报表主要步骤