图像缩放的制作方法

文档序号:26940133发布日期:2021-10-12 15:33阅读:141来源:国知局
图像缩放的制作方法
图像缩放


背景技术:

1.图像缩放是处理数字图像时最常见的操作之一。一方面,随着互联网上大量高分辨率图像/视频的使用,图像缩小对于存储、传输和共享此类大尺寸数据是必不可少的,因为缩小的图像在保持相同语义信息的同时能够显著地节省存储空间并且高效地提高带宽利用率。另一方面,许多这样的图像缩小场景不可避免地对逆任务(也即,将缩小的图像放大到其原始大小)提出了很高的要求。
2.传统的图像缩小(也即,将高分辨率图像缩小成低分辨率图像)方案往往会导致高分辨率图像中高频信息的丢失。由于高频信息的缺失,传统的图像放大(也即,将低分辨率图像放大成高分辨率图像)方案往往无法从低分辨率图像中重建出高质量的高分辨率图像。


技术实现要素:

3.根据本公开的实现,提出了用于图像缩放的方案。根据该方案,具有第一分辨率的输入图像被获取。利用经训练的可逆神经网络,基于该输入图像来生成具有第二分辨率的输出图像和服从预定分布的高频信息,其中第一分辨率高于第二分辨率,并且输入图像和输出图像具有相同语义。此外,具有第二分辨率的另一输入图像被获取。利用该可逆神经网络的逆网络,基于另一输入图像和服从预定分布的高频信息来生成具有第一分辨率的另一输出图像,其中另一输入图像和另一输出图像具有相同语义。该方案能够将原始图像缩小为语义相同且视觉愉悦的低分辨率图像,并且能够从低分辨率图像重建出高质量的高分辨率图像。
4.提供发明内容部分是为了简化的形式来介绍对概念的选择,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
5.图1a示出了能够实施本公开的多个实现的计算设备的示意性框图;
6.图1b示出了根据本公开的实现的图像缩放模块的工作原理的示意图;
7.图2a示出了根据本公开的实现的可逆神经网络的示意性框图;
8.图2b示出了根据本公开的实现的示例可逆神经网络单元的示意图;
9.图3a示出了根据本公开的实现的可逆神经网络的逆网络的示意性框图;
10.图3b示出了根据本公开的实现的示例可逆神经网络单元的示意图;
11.图4示出了根据本公开的实现的用于图像缩放的示例方法的流程图;
12.图5示出了根据本公开的实现的用于图像缩放的示例方法的流程图;以及
13.图6示出了能够实施本公开的实现的示例系统的框图。
14.这些附图中,相同或相似参考符号用于表示相同或相似元素。
具体实施方式
15.现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本公开的范围的任何限制。
16.如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
17.如本文所使用的,“神经网络”能够处理输入并且提供相应输出,其通常包括输入层和输出层以及在输入层与输出层之间的一个或多个隐藏层。神经网络中的各个层按顺序相连,从而前一层的输出被提供作为后一层的输入,其中输入层接收神经网络模型的输入,而输出层的输出作为神经网络模型的最终输出。神经网络模型的每个层包括一个或多个节点(也称为处理节点或神经元),每个节点处理来自上一层的输入。在本文中,术语“神经网络”、“模型”、“网络”和“神经网络模型”可互换使用。
18.如上所述,图像缩放是处理数字图像时最常见的操作之一。然而,传统的图像缩小(也即,将高分辨率图像缩小成低分辨率图像)方案往往会导致高分辨率图像中高频信息的丢失。高频信息的缺失导致图像放大任务(也即,将低分辨率图像放大成高分辨率图像)非常具有挑战性,这意味着针对同一低分辨率(lr)图像可能存在多个与之对应的高分辨率(hr)图像(也称为图像放大过程的不适定性)。因此,传统方案往往无法从lr图像中重建出高质量的hr图像。
19.传统方案通常选择超分辨率(sr)方法来放大lr图像。目前的sr方法主要专注于通过基于示例的策略或深度学习模型来学习先验信息。明显地,如果目标lr图像是从对应的hr图像进行预缩小而得到的,则在图像放大过程中考虑图像缩小方法将有助于提高hr图像重建的质量。然而,目前的sr方法并未考虑到这一点。
20.传统的图像缩小方法采用基于频率的内核(诸如,双线性插值、双三次插值等)作为低通滤波器,将输入的hr图像二次采样为目标分辨率。因为抑制了高频信息,所以这些方法通常会导致图像被过度平滑。最近提出了几种保留细节或结构上相似的图像缩小方法。然而,这些以感知为导向的图像缩小方法均未考虑到图像缩小及其逆任务(即,图像放大)之间潜在的相互增强。
21.一些传统方案考虑到图像缩小及其逆任务(即,图像放大)之间潜在的相互增强,试图将图像缩小和图像放大建模为联合任务。例如,一些方案提出了基于自动编码器框架的图像缩小模型,其中编码器和解码器分别作为图像缩小和sr模型,使得图像缩小和图像放大过程作为统一任务被联合训练。一些方案提出使用卷积神经网络来估计经缩小的低分辨率图像,并且利用已学习或指定的sr模型进行hr图像重建。还有一些方案提出了基于内容自适应重采样器的图像缩小方法,该方法可以与任何现有的sr模型一起进行训练。尽管这些方案可以在一定程度上提高从缩小后的lr图像中恢复hr图像的质量,但是无法从根本上解决图像放大过程的不适定性问题,因此也无法从lr图像中重建出高质量的hr图像。
22.根据本公开的实现,提出了一种用于图像缩放的方案。在该方案中,利用可逆神经网络,将具有第一分辨率的输入图像缩放成具有第二分辨率的输出图像。此外,该神经网络
的逆网络能够将具有第二分辨率的输入图像缩放成具有第一分辨率的输出图像。具体而言,在进行图像缩小时,该神经网络能够将hr图像转换成lr图像和服从特定分布的高频信息。在进行图像放大时,该神经网络的逆网络能够将lr图像和服从该特定分布的高频信息转换成hr图像。由于利用可逆神经网络来对图像缩小和图像放大过程进行建模,该方案能够将原始图像缩小为视觉愉悦的低分辨率图像,并且极大地缓解图像放大过程的不适定性问题,从而能够从低分辨率图像重建出高质量的高分辨率图像。
23.以下进一步结合附图来详细描述该方案的各种示例实现。
24.图1a示出了能够实施本公开的多个实现的计算设备100的框图。应当理解,图1所示出的计算设备100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备100包括通用计算设备形式的计算设备100。计算设备100的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。
25.在一些实现中,计算设备100可以被实现为各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(pcs)设备、个人导航设备、个人数字助理(pda)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备100能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。
26.处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备100的并行处理能力。处理单元110也可以被称为中央处理单元(cpu)、微处理器、控制器、微控制器。
27.计算设备100通常包括多个计算机存储介质。这样的介质可以是计算设备100可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或其某种组合。
28.存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如内存、闪存驱动、磁盘或者任何其他介质,其能够用于存储信息和/或数据并且可以在计算设备100内被访问。计算设备100可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图1中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。
29.通信单元140实现通过通信介质与另外的计算设备进行通信。附加地,计算设备100的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备100可以使用与一个或多个其他服务器、个人计算机(pc)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。
30.输入设备150可以是一个或多个各种输入设备,例如鼠标、键盘、追踪球、语音输入设备等。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备100还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备100交互的设备进行通信,或者与使得计算设备100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。
31.在一些实现中,除了被集成在单个设备上之外,计算设备100的各个部件中的一些或所有部件还可以以云计算架构的形式被设置。在云计算架构中,这些部件可以被远程布置,并且可以一起工作以实现本公开所描述的功能。在一些实现中,云计算提供计算、软件、数据访问和存储服务,它们不需要终端用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实现中,云计算使用适当的协议通过广域网(诸如因特网)提供服务。例如,云计算提供商通过广域网提供应用,并且它们可以通过web浏览器或任何其他计算组件被访问。云计算架构的软件或组件以及相应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处被合并或者它们可以被分散。云计算基础设施可以通过共享数据中心提供服务,即使它们表现为针对用户的单一访问点。因此,可以使用云计算架构从远程位置处的服务提供商提供本文所描述的组件和功能。备选地,它们可以从常规服务器被提供,或者它们可以直接或以其他方式被安装在客户端设备上。
32.计算设备100可以用于实施根据本公开的多种实现的图像缩放。存储器120可以包括图像缩放模块122,其具有一个或多个程序指令,该模块可以由处理单元110访问和运行,以实现本文所描述的各种实现的功能。
33.在进行图像缩放时,计算设备100可以通过输入设备150接收输入图像170。在一些实现中,输入图像170例如可以是具有第一分辨率的图像。输入图像170可以被输入到存储器120中的图像缩放模块122。图像缩放模块122可以利用经训练的可逆神经网络,基于输入图像170来生成具有第二分辨率的输出图像180和服从特定分布的高频信息,其中第一分辨率高于第二分辨率,并且输入图像170和输出图像180的语义相同。在另一些实现中,输入图像170例如可以是具有第二分辨率的图像。输入图像170可以被输入到存储器120中的图像缩放模块122。图像缩放模块122可以利用该可逆神经网络的逆网络,基于输入图像170和服从特定分布的高频信息来生成具有第一分辨率的输出图像180,其中第一分辨率高于第二分辨率,并且输入图像170和输出图像180的语义相同。输出图像180可以经由输出设备160被输出。
34.在一些实现中,图像缩放模块122可以利用经训练的可逆神经网络进行图像缩小(也即,将hr图像转换成lr图像),并且图像缩放模块122可以利用该可逆神经网络的逆网络进行逆向放大(也即,将lr图像重建成hr图像)。图1b示出了根据本公开的实现的图像缩放模块122的工作原理的示意图。如图1b所示,图像缩放模块122可以利用可逆神经网络191(被表示为“f
θ”),基于具有高分辨率的输入图像170来生成具有低分辨率的输出图像180和服从预定分布的高频信息185。例如,高频信息185可以体现为与输入图像170的语义无关的高频噪声。图像缩放模块122可以利用可逆神经网络191的逆网络192(被表示为),基于具有低分辨率的输入图像170和服从预定分布的高频信息175来生成具有高分辨率的输出图像180。在此所述的“预定分布”可以包括但不限于高斯分布、均匀分布等,其可以在
可逆神经网络的训练过程中被指定。
35.可逆神经网络(inn)是生成模型中的一种流行的网络结构,其可以指定映射关系m=f
θ
(n)及其逆映射关系inn通常由至少一个可逆块组成。对于第l个块,输入h
l
沿通道轴被划分成和并且经历仿射(affine)变换:
[0036][0037][0038]
对应的输出为给定输出,其逆变换可以如下被计算:
[0039][0040][0041]
其中ρ和η可以是任意函数,

表示同或操作。
[0042]
在将inn应用于图像缩放任务时,基于具有高分辨率的输入图像x,inn不仅可以输出经缩小的低分辨率图像y,还输出服从特定分布的高频信息z,其例如体现为与图像的语义无关的高频噪声。这使得该inn的逆网络能够根据低分辨率图像y和噪声z来重建高质量的高分辨率图像x。也即,需要维护图像缩小过程中丢失的高频信息z来使图像缩放过程可逆,并且整个图像缩放过程可以利用映射关系(y,z)=f
θ
(x)和来表示。
[0043]
然而,在图像放大过程中,往往需要对任意的lr图像进行放大。因此,与输入的lr图像相对应的高频信息z通常是不存在的。发明人注意到,根据奈圭斯特香农(nyquist-shannon)采样定理,在图像缩小过程中丢失的信息相当于高频细节。假设与同一lr图像相对应的一组hr图像包括不同的高频细节,这些细节通常可以表现出一定的可变性和随机性。因此,z可以被表示为随机变量,其分布由inn表示z的方式(也即f
θ
输出z的方式)来决定。具体而言,可以训练inn以满足指定分布p(z)。以此方式,在图像缩小过程中,由可逆神经网络输出的高频噪声z无须被保存。此外,在图像放大过程中,可以基于低分辨率图像和该指定分布下的任意一个采样来重建高分辨图像。
[0044]
图2a示出了根据本公开的实现的可逆神经网络191的示意性框图。应当理解,如图2a所示的可逆神经网络191的结构仅是示例性的,而无意于限制本公开的范围。本公开的实现也适用于具有不同结构的可逆神经网络。
[0045]
如图2a所示,可逆神经网络191可以由一个或多个下采样模块210串联而成。出于简化目的,在图2a中示出一个下采样模块210。可逆神经网络191所支持的图像缩小的比例可以由每个下采样模块210所支持的图像缩小的比例以及所包含的下采样模块210的个数来决定。例如,假设每个下采样模块210支持将图像缩小2倍并且可逆神经网络191包括2个下采样模块210,则可逆神经网络191支持将图像缩小4倍。
[0046]
如图2a所示,例如,下采样模块210可以包括变换模块230和一个或多个inn单元220-1、220-2
……
220-m(统称为或单独称为“inn单元220”,其中m≥1)。
[0047]
变换模块230可以将具有高分辨的输入图像170分解成低频分量242和高频分量
241,其中低频分量242表示输入图像170的语义,并且高频分量241与该语义有关。在一些实现中,变换模块230可以被实现为小波变换模块,诸如haar变换模块。例如,当变换模块230被实现为haar变换模块时,下采样模块210可以支持将图像缩小2倍。具体而言,haar变换模块可以将具有长度h、宽度w和通道数为c的输入图像或一组特征图转换成输出张量输出张量中的第一个c切片可以近似为等效于双线性插值下采样的低通表示。剩下三组c切片分别包含在垂直方向、水平方向和对角线方向上的残余分量。这些残余分量基于原始hr图像中的高频信息。备选地,变换模块230也可以利用1
×
1可逆卷积块来实现,或者被实现为能够将输入图像170分解成低频分量和高频分量的任何已知或将来开发的变换模块。应当理解,当下采样模块210所支持的图像缩小比例不同时,变换模块230的实现可以是不同的。以此方式,低频信息242和高频信息241可以被馈送到随后的inn单元220-1。
[0048]
如上所述,每个inn单元220的结构应当是可逆的,从而保证神经网络191的网络结构可逆。inn单元220用于从输入的低频分量和高频分量中提取相应特征,并且将与图像语义有关的高频分量转换为服从预定分布且与图像语义无关的高频信息。
[0049]
图2b示出了根据本公开的实现的示例inn单元220的示意图。在此假设输入到inn单元220的低频分量和高频分量分别被表示为和如图2b所示,可以向低频分量应用如上述公式(1)所示的仿射变换,并且向高频分量应用如上述公式(2)所示的仿射变换。图2b中所示的变换函数η和ρ可以是任意函数。应当理解,如图2b所示的inn单元220仅出于示例的目的示出,而无意于限制本公开的范围。本公开的实现也适用于具有其他不同结构的inn单元。inn单元的示例包括但不限于可逆卷积块、可逆残差网络单元、可逆生成网络单元、深度可逆网络单元等等。
[0050]
图3a示出了图2a所示的可逆神经网络191的逆网络192的示意性框图。如图3a所示,网络192可以由一个或多个上采样模块310串联而成。出于简化目的,在图3a中示出一个上采样模块310。逆网络192所支持的图像放大的比例可以由每个上采样模块310所支持的图像放大的比例以及所包含的上采样模块310的个数来决定。例如,假设每个上采样模块310支持将图像放大2倍并且逆网络192包括2个上采样模块310,则逆网络192支持将图像放大4倍。
[0051]
如图3a所示,例如,上采样模块310可以包括变换模块330和一个或多个inn单元320-1、320-2
……
320-m(统称为或单独称为“inn单元320”,其中m≥1)。inn单元320的结构与如图2b所示的inn单元220的结构是互逆的,例如如图3b所示。以inn单元320-m为例,在此假设输入到inn单元320-m的具有低分辨率的输入图像170被表示为并且服从预定分布的高频信息175被表示为如图3b所示,可以向应用如上述公式(3)所示的仿射变换的逆变换,并且向应用如上述公式(4)所示的仿射变换的逆变换。图3b中所示的变换函数η和ρ可以是任意函数。应当理解,如图3b所示的inn单元320仅出于示例的目的示出,而无意于限制本公开的范围。本公开的实现也适用于具有其他不同结构的inn单
元。inn单元的示例包括但不限于可逆卷积块、可逆残差网络单元、可逆生成网络单元、深度可逆网络单元等等。
[0052]
如图3a所示,一个或多个inn单元320可以将具有低分辨率的输入图像170和服从预定分布的高频信息175转换成待合并的高频分量341和低频分量342。与如图2a所示的变换模块230相反,变换模块330可以将高频分量341和低频分量342合并成具有高分辨率的输出图像180。在一些实现中,当变换模块230被实现为小波变换模块时,变换模块330可以被实现为小波逆变换模块。例如,当变换模块230被实现为haar变换模块时,变换模块330可以被实现为haar逆变换模块。备选地,变换模块330也可以利用1
×
1可逆卷积块来实现,或者被实现为能够将低频分量和高频分量合并成图像的任何已知或将来开发的变换模块。
[0053]
以下将进一步详细描述可逆神经网络的训练过程。在下文中,出于简化的目的,将待训练的神经网络及其逆网络统称为“模型”。从以上描述能够看出,模型的训练目标是确定高分辨率图像x、低分辨率图像y以及指定分布p(z)之间的映射关系f
θ

[0054]
为了实现这一训练目标,在一些实现中,可以获取一组高分辨率图像(也称为“第一组训练图像”,其中n表示图像数目)和与之语义对应的一组低分辨率图像(也称为“第二组训练图像”)作为训练数据,以用于训练该模型。在一些实现中,具有低分辨率的第二组训练图像可以基于具有高分辨率的第一组训练图像来被生成。例如,可以利用插值法、或者任何已知或将要开发的方法来从高分辨率训练图像生成与之语义对应的低分辨率训练图像。本公开的范围在此不受限制。在一些实现中,可以基于第一组训练图像和第二组训练图像,生成用于训练该模型的目标函数。然后,通过使目标函数最小化,来确定该模型的参数。
[0055]
在一些实现中,可以基于低分辨率训练图像和由模型基于高分辨率训练图像而生成的低分辨率图像之间的差异来确定用于训练该模型的目标函数。例如,针对第一组训练图像中的高分辨率训练图像x
(n)
,假设由模型基于该高分辨率训练图像x
(n)
生成的低分辨率图像被表示为并且第二组训练图像中与高分辨率训练图像x
(n)
对应的低分辨率训练图像被表示为可以基于低分辨率训练图像与模型生成的低分辨率图像之间的差异来生成用于训练该可逆神经网络的目标函数(也称为“第一目标函数”或“低分辨率引导损失函数”)。例如,第一目标函数可以被表示为:
[0056][0057]
其中表示差异度量函数,例如l1损失函数或l2损失函数。
[0058]
附加地或备选地,在一些实现中,可以基于高分辨率训练图像和由模型基于低分辨率图像而重建的高分辨率图像之间的差异来确定用于训练该模型的目标函数。例如,针对第一组训练图像中的高分辨率训练图像x
(n)
,假设由模型基于该高分辨率训练图像x
(n)
生成的低分辨率图像被表示为由模型基于低分辨率图像而得到的高分
辨率重建图像被表示为其中z服从预定分布p(z)(即,z~p(z)),可以基于高分辨率训练图像x
(n)
与高分辨率重建图像z)之间的差异来生成用于训练该可逆神经网络的目标函数(也称为“第二目标函数”或“高分辨率重建损失函数”)。例如,第二目标函数可以被表示为:
[0059][0060]
其中度量高分辨率原始图像与重建图像之间的差异,表示在z服从预定分布p(z)的情况下的数据期望。
[0061]
附加地或备选地,模型训练的另一目标在于鼓励模型捕捉高分辨率训练图像的数据分布。在此假设,第一组训练数据上的数据分布被表示为q(x)。例如,针对第一组训练图像中的高分辨率训练图像x
(n)
,由模型重建的高分辨率图像被表示为其中表示模型将高分辨率训练图像x
(n)
缩小后得到的低分辨率图像,并且表示服从预定分布p(z)的随机变量。通过遍历第一组训练数据可以得到一组缩小后的低分辨率图像上的数据分布可以被表示为其表示经转换的随机变量的数据分布,其中原始随机变量x服从数据分布q(x),即x~q(x)。类似地,由模型重建的高分辨率图像可以被表示为其上的数据分布可以被表示为因为在一些实现中,可以基于原始数据分布q(x)和经模型重建的数据分布之间的差异来生成用于训练该可逆神经网络的目标函数(也称为“第三目标函数”或者“分布匹配损失函数”)。例如,第三目标函数可以被表示为:
[0062][0063]
其中用于度量两种数据分布之间的差异。
[0064]
在一些情况下,直接最小化如公式(6)所示的第三目标函数可能是困难的,因为两种分布均是高维度的并且可能具有未知的密度函数。在一些实现中,可以利用js散度来度量两种数据分布之间的差异。也即,第三目标函数还可以被表示为:
[0065][0066]
在一些实现中,可以基于第一目标函数、第二目标函数和第三目标函数的组合来生成用于训练模型的总目标函数。例如,总目标函数可以被表示为:
[0067]
l
total
:=λ1l
recon
+λ2l
guide
+λ3l
distr
ꢀꢀ
(8)
[0068]
其中,λ1、λ2和λ3是用于平衡不同损失项的系数。
[0069]
在一些实现中,为了提高模型训练的稳定度,在利用如公式(8)所示的总目标函数来训练模型之前,可以执行预训练过程。在预训练过程中,可以利用弱化但更稳定的分布匹配损失函数。例如,可以基于交叉熵损失函数来构建该分布匹配损失函数,以提高模型训练的稳定度。例如,基于交叉熵(ce)损失函数而构建的分布匹配损失函数(也称为“第四目标函数”)可以被表示为:
[0070][0071]
其中ce表示交叉熵损失函数。相应地,在预训练过程中使用的总目标函数可以被表示为:
[0072]
l
irn
:=λ1l
recon
+λ2l
guide
+λ3l

distr
ꢀꢀ
(10)
[0073]
其中,λ1、λ2和λ3是用于平衡不同损失项的系数。
[0074]
在一些实现中,在预训练之后,可以重新利用如公式(8)所示的总目标函数来对模型进行第二轮训练。备选地,在一些实现中,在预训练之后,可以利用如以下公式(11)所示的总目标函数来对模型进行第二轮训练:
[0075]
l
irn+
:=λ1l
recon
+λ2l
guide
+λ3l
distr
+λ4l
percp
ꢀꢀ
(11)
[0076]
其中感知损失函数l
percp
用于衡量原始高分辨率图像和经重建的高分辨率图像两者在语义特征上的差异。例如,原始高分辨率图像和经重建的高分辨率图像两者的语义特征可以由其他已知的基准模型提取,在此不再赘述。λ1、λ2、λ3和λ4是用于平衡不同损失项的系数。
[0077]
图4示出了根据本公开一些实现的用于图像缩放的方法400的流程图。方法400可以由计算设备100来实现,例如可以被实现在计算设备100的存储器120中的图像缩放模块122处。在框410处,计算设备100获取具有第一分辨率的输入图像。在框420处,计算设备100利用经训练的可逆神经网络,基于所述输入图像来生成具有第二分辨率的输出图像和服从预定分布的高频信息,其中所述第一分辨率高于所述第二分辨率并且所述输入图像和所述输出图像具有相同语义。
[0078]
在一些实现中,所述可逆神经网络包括变换模块和至少一个可逆网络单元,并且基于所述输入图像来生成所述输出图像和所述高频信息包括:利用所述变换模块,将所述输入图像分解成表示所述输入图像的语义的低频分量和与所述语义有关的高频分量;以及利用所述至少一个可逆网络单元,基于所述低频分量和所述高频分量来生成所述输出图像和与所述语义无关的所述高频信息。
[0079]
在一些实现中,所述变换模块包括以下任一项:小波变换模块;以及可逆卷积块。
[0080]
在一些实现中,方法400还包括:训练所述可逆神经网络,使得经训练的所述可逆神经网络能够基于所述第一分辨率的第一图像来生成具有所述第二分辨率的第二图像和服从所述预定分布的第一高频信息,并且经训练的所述可逆神经网络的逆网络能够基于所述第二分辨率的第三图像和服从所述预定分布的第二高频信息来生成具有所述第一分辨率的第四图像。
[0081]
在一些实现中,训练所述可逆神经网络包括:获取具有所述第一分辨率的第一组训练图像;获取与所述第一组训练图像的语义分别对应并且具有所述第二分辨率的第二组训练图像;以及基于所述第一组训练图像和所述第二组训练图像,训练所述可逆神经网络。
[0082]
在一些实现中,获取所述第二组训练图像包括:利用插值法,基于所述第一组训练图像来生成所述第二组训练图像。
[0083]
在一些实现中,训练所述可逆神经网络包括:基于所述第一组训练图像和所述第二组训练图像,确定多个目标函数;通过组合所述多个目标函数中的至少一部分目标函数,确定用于训练所述可逆神经网络的总目标函数;以及通过使所述总目标函数最小化,确定所述可逆神经网络的网络参数。
[0084]
在一些实现中,确定所述多个目标函数包括:利用所述可逆神经网络,基于所述第一组训练图像来生成具有所述第二分辨率的第三组训练图像和一组随机变量;以及基于所述第二组训练图像与所述第三组训练图像之间的差异,确定第一目标函数。
[0085]
在一些实现中,确定所述多个目标函数包括:利用所述可逆神经网络,基于所述第一组训练图像来生成具有所述第二分辨率的第三组训练图像和一组随机变量;利用所述逆网络,基于所述第三组训练图像和服从所述预定分布的高频信息来生成具有所述第一分辨率的第四组训练图像;以及基于所述第一组训练图像与所述第四组训练图像之间的差异,确定第二目标函数。
[0086]
在一些实现中,确定所述多个目标函数包括:确定所述第一组训练图像的第一数据分布;确定所述第四组训练图像的第二数据分布;以及基于所述第一数据分布和所述第二数据分布之间的差异,确定第三目标函数。
[0087]
在一些实现中,确定所述多个目标函数包括:确定所述一组随机变量的第三数据分布;以及基于所述第三数据分布和所述预定分布之间的差异,确定第四目标函数。
[0088]
图5示出了根据本公开一些实现的用于图像缩放的方法500的流程图。方法500可以由计算设备100来实现,例如可以被实现在计算设备100的存储器120中的图像缩放模块122处。在框510处,计算设备100获取具有第二分辨率的输入图像。在框520处,计算设备100利用经训练的可逆神经网络,基于所述输入图像和服从预定分布的高频信息来生成具有第一分辨率的输出图像,其中所述第一分辨率高于所述第二分辨率并且所述输入图像和所述输出图像具有相同语义。
[0089]
在一些实现中,所述可逆神经网络包括变换模块和至少一个可逆网络单元,并且基于所述输入图像和所述高频信息来生成所述输出图像包括:利用所述至少一个可逆网络单元,基于所述输入图像和所述高频信息来生成待合并的低频分量和高频分量,所述低频分量表示所述输入图像的语义并且所述高频分量与所述语义相关;以及利用所述变换模块,将所述低频分量和所述高频分量合并成所述输出图像。
[0090]
在一些实现中,所述变换模块包括以下任一项:小波逆变换模块;以及可逆卷积块。
[0091]
通过以上描述能够看出,本公开的实现提出了一种用于图像缩放的方案。在进行图像缩小时,可逆神经网络能够将hr图像转换成lr图像和服从特定分布的高频噪声。在进行图像放大时,该可逆神经网络的逆网络能够将lr图像和服从该特定分布的随机噪声转换成hr图像。由于利用可逆神经网络来对图像缩小和图像放大过程进行建模,该方案能够将
原始图像缩小为视觉愉悦的低分辨率图像,并且能够从低分辨率图像重建出高质量的高分辨率图像,从而极大地缓解图像放大过程的不适定性问题。此外,各项试验数据表明,与传统的图像缩放方案相比,本公开的实现能够实现更好的图像重建性能指标,例如更高的峰值信噪比(psnr)和/或结构相似性(ssim)。
[0092]
本公开的实现能够被广泛地应用于图像和/或视频处理领域。例如,在线视频流在我们的生活中起着至关重要的作用,诸如视频网站、直播网站、视频流移动应用程序等。高质量的在线视频流是令人期望的,例如具有丰富感知细节的高分辨率视频。高分辨率视频往往会占用大量网络带宽进行传输。因此,为了节省网络带宽,在将高分辨率视频发送到用户客户端时,通常会对高分辨率视频进行处理和压缩。这将导致在用户客户端处呈现的往往是质量低下的低分辨率视频。通过应用根据本公开的实现的图像缩放方案,能够解决上述问题。
[0093]
图6示出了能够实施本公开的实现的示例系统600的框图。如图6所示,系统600可以包括视频流服务提供商610、服务器620和客户端设备630。例如,视频流服务提供商610可以向服务器620提供客户端设备630所请求的视频数据,服务器620可以经由网络将来自视频流服务提供商610的视频数据发送给客户端设备630。
[0094]
如图6所示,在一些实现中,视频流服务提供商610可以向服务器620提供高分辨率视频流601,也称为高分辨率图像序列601。服务器620可以利用以上描述的可逆神经网络191将高分辨率图像序列601转换成低分辨率图像序列。在一些实现中,服务器620可以将得到的低分辨率图像序列作为低分辨率视频流602直接发送给客户端设备430。在此情况下,客户端设备630可以接收到低分辨率图像序列。附加地或备选地,在一些实现中,服务器620可以对低分辨率图像序列进行视频编码,以生成经编码的低分辨率视频流602,并且将经编码的低分辨率视频602经由网络发送给客户端设备430。在此情况下,客户端设备630可以对接收到的经编码的低分辨率视频602进行解码,以得到经解码的低分辨率图像序列。然后,客户端设备630可以利用以上描述的可逆神经网络191的逆网络192将得到的低分辨率图像序列重建为高分辨率视频流603。以此方式,在节省网络带宽的同时,客户能够获得高质量的视频流。
[0095]
除了图像和/或视频处理领域之外,本公开的实现还能够被应用于图像和/或视频存储领域。例如,在将高分辨的图像和/或视频存储到存储设备中时,可以利用以上描述的可逆神经网络191将高分辨的图像和/或视频转换成低分辨率的图像和/或视频以及服从预定分布的相应高频信息。然后,所得到的低分辨率的图像和/或视频可以被存储在存储设备中,而丢弃所得到的相应高频信息。当要访问存储设备中所存储的图像和/或视频时,可以首先从存储设备获取低分辨率的图像和/或视频,然后利用以上描述的可逆神经网络191的逆网络192基于所获取的图像和/或视频以及服从上述预定分布的随机噪声来重建高分辨率的图像和/或视频。以此方式,能够在不损失图像和/或视频质量的情况下节省用于存储图像和/或视频的存储空间。
[0096]
以下列出了本公开的一些示例实现方式。
[0097]
在第一方面,本公开提供了一种计算机实现的方法。所述方法包括:获取具有第一分辨率的输入图像;以及利用经训练的可逆神经网络,基于所述输入图像来生成具有第二分辨率的输出图像和服从预定分布的高频信息,其中所述第一分辨率高于所述第二分辨率
并且所述输入图像和所述输出图像具有相同语义。
[0098]
在一些实施例中,所述方法还包括:存储所述输出图像,而不存储所述高频信息。
[0099]
在一些实施例中,所述方法还包括:对输出图像进行编码;以及提供经编码的所述输出图像。
[0100]
在一些实现中,所述可逆神经网络包括变换模块和至少一个可逆网络单元,并且基于所述输入图像来生成所述输出图像和所述高频信息包括:利用所述变换模块,将所述输入图像分解成表示所述输入图像的语义的低频分量和与所述语义有关的高频分量;以及利用所述至少一个可逆网络单元,基于所述低频分量和所述高频分量来生成所述输出图像和与所述语义无关的所述高频信息。
[0101]
在一些实现中,所述变换模块包括以下任一项:小波变换模块;以及可逆卷积块。
[0102]
在一些实现中,所述方法还包括:训练所述可逆神经网络,使得经训练的所述可逆神经网络能够基于所述第一分辨率的第一图像来生成具有所述第二分辨率的第二图像和服从所述预定分布的第一高频信息,并且经训练的所述可逆神经网络的逆网络能够基于所述第二分辨率的第三图像和服从所述预定分布的第二高频信息来生成具有所述第一分辨率的第四图像。
[0103]
在一些实现中,训练所述可逆神经网络包括:获取具有所述第一分辨率的第一组训练图像;获取与所述第一组训练图像的语义分别对应并且具有所述第二分辨率的第二组训练图像;以及基于所述第一组训练图像和所述第二组训练图像,训练所述可逆神经网络。
[0104]
在一些实现中,获取所述第二组训练图像包括:利用插值法,基于所述第一组训练图像来生成所述第二组训练图像。
[0105]
在一些实现中,训练所述可逆神经网络包括:基于所述第一组训练图像和所述第二组训练图像,确定多个目标函数;通过组合所述多个目标函数中的至少一部分目标函数,确定用于训练所述可逆神经网络的总目标函数;以及通过使所述总目标函数最小化,确定所述可逆神经网络的网络参数。
[0106]
在一些实现中,确定所述多个目标函数包括:利用所述可逆神经网络,基于所述第一组训练图像来生成具有所述第二分辨率的第三组训练图像和一组随机变量;以及基于所述第二组训练图像与所述第三组训练图像之间的差异,确定第一目标函数。
[0107]
在一些实现中,确定所述多个目标函数包括:利用所述可逆神经网络,基于所述第一组训练图像来生成具有所述第二分辨率的第三组训练图像和一组随机变量;利用所述逆网络,基于所述第三组训练图像和服从所述预定分布的高频信息来生成具有所述第一分辨率的第四组训练图像;以及基于所述第一组训练图像与所述第四组训练图像之间的差异,确定第二目标函数。
[0108]
在一些实现中,确定所述多个目标函数包括:确定所述第一组训练图像的第一数据分布;确定所述第四组训练图像的第二数据分布;以及基于所述第一数据分布和所述第二数据分布之间的差异,确定第三目标函数。
[0109]
在一些实现中,确定所述多个目标函数包括:确定所述一组随机变量的第三数据分布;以及基于所述第三数据分布和所述预定分布之间的差异,确定第四目标函数。
[0110]
在第二方面,本公开提供了一种计算机实现的方法。所述方法包括:获取具有第二分辨率的输入图像;以及利用经训练的可逆神经网络,基于所述输入图像和服从预定分布
的高频信息来生成具有第一分辨率的输出图像,其中所述第一分辨率高于所述第二分辨率并且所述输入图像和所述输出图像具有相同语义。
[0111]
在一些实现中,获取所述输入图像包括:获取经编码的所述输入图像;以及对经编码的所述输入图像进行解码。
[0112]
在一些实现中,所述可逆神经网络包括变换模块和至少一个可逆网络单元,并且基于所述输入图像和所述高频信息来生成所述输出图像包括:利用所述至少一个可逆网络单元,基于所述输入图像和所述高频信息来生成待合并的低频分量和高频分量,所述低频分量表示所述输入图像的语义并且所述高频分量与所述语义相关;以及利用所述变换模块,将所述低频分量和所述高频分量合并成所述输出图像。
[0113]
在一些实现中,所述变换模块包括以下任一项:小波逆变换模块;以及可逆卷积块。
[0114]
在第三方面,本公开提供了一种电子设备。所述电子设备包括:处理单元;以及存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时,使得所述设备执行动作,所述动作包括:获取具有第一分辨率的输入图像;以及利用经训练的可逆神经网络,基于所述输入图像来生成具有第二分辨率的输出图像和服从预定分布的高频信息,其中所述第一分辨率高于所述第二分辨率并且所述输入图像和所述输出图像具有相同语义。
[0115]
在一些实施例中,所述动作还包括:存储所述输出图像,而不存储所述高频信息。
[0116]
在一些实施例中,所述动作还包括:对输出图像进行编码;以及提供经编码的所述输出图像。
[0117]
在一些实现中,所述可逆神经网络包括变换模块和至少一个可逆网络单元,并且基于所述输入图像来生成所述输出图像和所述高频信息包括:利用所述变换模块,将所述输入图像分解成表示所述输入图像的语义的低频分量和与所述语义有关的高频分量;以及利用所述至少一个可逆网络单元,基于所述低频分量和所述高频分量来生成所述输出图像和与所述语义无关的所述高频信息。
[0118]
在一些实现中,所述变换模块包括以下任一项:小波变换模块;以及可逆卷积块。
[0119]
在一些实现中,所述动作还包括:训练所述可逆神经网络,使得经训练的所述可逆神经网络能够基于所述第一分辨率的第一图像来生成具有所述第二分辨率的第二图像和服从所述预定分布的第一高频信息,并且经训练的所述可逆神经网络的逆网络能够基于所述第二分辨率的第三图像和服从所述预定分布的第二高频信息来生成具有所述第一分辨率的第四图像。
[0120]
在一些实现中,训练所述可逆神经网络包括:获取具有所述第一分辨率的第一组训练图像;获取与所述第一组训练图像的语义分别对应并且具有所述第二分辨率的第二组训练图像;以及基于所述第一组训练图像和所述第二组训练图像,训练所述可逆神经网络。
[0121]
在一些实现中,获取所述第二组训练图像包括:利用插值法,基于所述第一组训练图像来生成所述第二组训练图像。
[0122]
在一些实现中,训练所述可逆神经网络包括:基于所述第一组训练图像和所述第二组训练图像,确定多个目标函数;通过组合所述多个目标函数中的至少一部分目标函数,确定用于训练所述可逆神经网络的总目标函数;以及通过使所述总目标函数最小化,确定
所述可逆神经网络的网络参数。
[0123]
在一些实现中,确定所述多个目标函数包括:利用所述可逆神经网络,基于所述第一组训练图像来生成具有所述第二分辨率的第三组训练图像和一组随机变量;以及基于所述第二组训练图像与所述第三组训练图像之间的差异,确定第一目标函数。
[0124]
在一些实现中,确定所述多个目标函数包括:利用所述可逆神经网络,基于所述第一组训练图像来生成具有所述第二分辨率的第三组训练图像和一组随机变量;利用所述逆网络,基于所述第三组训练图像和服从所述预定分布的高频信息来生成具有所述第一分辨率的第四组训练图像;以及基于所述第一组训练图像与所述第四组训练图像之间的差异,确定第二目标函数。
[0125]
在一些实现中,确定所述多个目标函数包括:确定所述第一组训练图像的第一数据分布;确定所述第四组训练图像的第二数据分布;以及基于所述第一数据分布和所述第二数据分布之间的差异,确定第三目标函数。
[0126]
在一些实现中,确定所述多个目标函数包括:确定所述一组随机变量的第三数据分布;以及基于所述第三数据分布和所述预定分布之间的差异,确定第四目标函数。
[0127]
在第四方面,本公开提供了一种电子设备。所述电子设备包括:处理单元;以及存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时,使得所述设备执行动作,所述动作包括:获取具有第二分辨率的输入图像;以及利用经训练的可逆神经网络,基于所述输入图像和服从预定分布的高频信息来生成具有第一分辨率的输出图像,其中所述第一分辨率高于所述第二分辨率并且所述输入图像和所述输出图像具有相同语义。
[0128]
在一些实现中,获取所述输入图像包括:获取经编码的所述输入图像;以及对经编码的所述输入图像进行解码。
[0129]
在一些实现中,所述可逆神经网络包括变换模块和至少一个可逆网络单元,并且基于所述输入图像和所述高频信息来生成所述输出图像包括:利用所述至少一个可逆网络单元,基于所述输入图像和所述高频信息来生成待合并的低频分量和高频分量,所述低频分量表示所述输入图像的语义并且所述高频分量与所述语义相关;以及利用所述变换模块,将所述低频分量和所述高频分量合并成所述输出图像。
[0130]
在一些实现中,所述变换模块包括以下任一项:小波逆变换模块;以及可逆卷积块。
[0131]
在第五方面,本公开提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,机器可执行指令在由设备执行时使设备执行根据上述第一方面或第二方面所述的方法。
[0132]
在又一方面,本公开提供了一种计算机可读介质,其上存储有机器可执行指令,机器可执行指令在由设备执行时使设备执行根据上述第一方面或第二方面所述的方法。
[0133]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。
[0134]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来
编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0135]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0136]
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
[0137]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1