一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于通过元学习进行率控制的自适应神经图像压缩的方法和装置与流程

2022-11-14 03:28:38 来源:中国专利 TAG:

用于通过元学习进行率控制的自适应神经图像压缩的方法和装置
相关申请的交叉引用
1.本技术基于2021年1月19日提交的美国临时专利申请第63/139,156号以及于2021年7月1日提交的美国专利申请第17/365,371号并要求其优先权,上述两件美国专利申请的公开内容通过引用整体并入本文中。


背景技术:

2.iso/iec mpeg(jtc 1/sc 29/wg 11)一直在积极寻找对未来视频编码技术标准化的潜在需求。iso/iec jpeg已经成立了jpeg-ai小组,专注于使用神经网络(neural network,nn)进行基于ai的端到端神经图像压缩(neural image compression,nic)。最新方法的成功引发了对先进的神经图像和视频压缩方法的越来越多的工业兴趣。
3.尽管现有技术已经显示出有前景的性能,但是灵活的比特率控制对于先前的nic方法仍然是具有挑战性的问题。传统上,可能需要单独地训练多个模型实例,以用于比特率与失真(压缩图像的质量)之间的每个期望的权衡。所有这些多个模型实例可能在解码器侧存储和部署,以根据不同的比特率重建图像。此外,由于难以针对每个可能的目标比特率训练和存储无限数目的模型实例,因此这些模型实例不能提供任意平滑比特率控制。现有技术已经研究了多率nic,其中训练一个模型实例以实现多个预定义比特率的压缩。然而,任意平滑比特率控制仍然是未探索的开放问题。


技术实现要素:

4.根据实施方式,一种通过元学习进行率控制的自适应神经图像压缩的方法由至少一个处理器执行并且包括:接收输入图像和超参数;以及使用编码神经网络,基于接收的超参数对接收的输入图像进行编码,以生成压缩表示。编码包括:使用具有第一共享编码参数的第一共享编码层对接收的输入图像执行第一共享编码;使用具有第一自适应编码参数的第一自适应编码层对接收的输入图像执行第一自适应编码;组合经第一共享编码的输入图像和经第一自适应编码的输入图像,以生成第一组合输出;以及使用具有第二共享编码参数的第二共享编码层对第一组合输出执行第二共享编码。
5.根据实施方式,一种用于通过元学习进行率控制的自适应神经图像压缩的装置包括:至少一个存储器,其被配置成存储程序代码;以及至少一个处理器,其被配置成读取程序代码,并且按照程序代码所指示的进行操作。程序代码包括:第一接收代码,其被配置成使至少一个处理器接收输入图像和超参数;以及编码代码,其被配置成使至少一个处理器使用编码神经网络基于接收的超参数对接收的输入图像进行编码,以生成压缩表示。编码代码还被配置成使至少一个处理器进行以下操作:使用具有第一共享编码参数的第一共享编码层对接收的输入图像执行第一共享编码;使用具有第一自适应编码参数的第一自适应编码层对接收的输入图像执行第一自适应编码;组合经第一共享编码的输入图像和经第一自适应编码的输入图像,以生成第一组合输出;以及使用具有第二共享编码参数的第二共
享编码层对第一组合输出执行第二共享编码。
6.根据实施方式,一种非暂态计算机可读介质,其存储指令,该指令在由至少一个处理器执行以通过元学习进行率控制的自适应神经图像压缩时使至少一个处理器进行以下操作:接收输入图像和超参数;以及使用编码神经网络,基于接收的超参数对接收的输入图像进行编码,以生成压缩表示。指令在由至少一个处理器执行时还使至少一个处理器进行以下操作:使用具有第一共享编码参数的第一共享编码层对接收的输入图像执行第一共享编码;使用具有第一自适应编码参数的第一自适应编码层对接收的输入图像执行第一自适应编码;组合经第一共享编码的输入图像和经第一自适应编码的输入图像,以生成第一组合输出;以及使用具有第二共享编码参数的第二共享编码层对第一组合输出执行第二共享编码。
附图说明
7.图1是根据实施方式的可以实现本文中描述的方法、装置和系统的环境的图。
8.图2是图1的一个或更多个设备的示例部件的框图。
9.图3a和图3b是根据实施方式的用于通过元学习进行率控制的自适应神经图像压缩的meta-nic架构的框图。
10.图4a是根据实施方式的用于在测试阶段期间通过元学习进行率控制的自适应神经图像压缩的装置的框图。
11.图4b是图4a中示出的装置的meta-nic编码器的框图。
12.图4c是图4a中示出的装置的meta-nic解码器的框图。
13.图5是根据实施方式的用于在训练阶段期间通过元学习进行率控制的自适应神经图像压缩的训练装置的框图。
14.图6是根据实施方式的通过元学习进行率控制的自适应神经图像压缩的方法的流程图。
15.图7是根据实施方式的用于通过元学习进行率控制的自适应神经图像压缩的装置的框图。
具体实施方式
16.本公开内容描述了用于nic中的平滑比特率控制的元神经图像压缩(meta neural image compression,meta-nic)框架的方法和装置。使用元学习机制基于当前输入图像和目标比特率来自适应地计算底层nic模型的率自适应权重参数,使得单个meta-nic模型实例可以通过任意平滑的不同比特率实现图像压缩。
17.图1是根据实施方式的可以实现本文中描述的方法、装置和系统的环境100的图。
18.如图1所示,环境100可以包括用户设备110、平台120和网络130。环境100的设备可以经由有线连接、无线连接或者有线连接和无线连接的组合进行互连。
19.用户设备110包括能够接收、生成、存储、处理和/或提供与平台120相关联的信息的一个或更多个设备。例如,用户设备110可以包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,智能眼镜或智能手表)或类似的设备。在一些实现方式中,用户
设备110可以从平台120接收信息以及/或者向平台120发送信息。
20.平台120包括如本文其他地方描述的一个或更多个设备。在一些实现方式中,平台120可以包括云服务器或云服务器组。在一些实现方式中,平台120可以被设计成模块化的,使得软件部件可以被换入或换出。如此,可以针对不同用途容易地和/或快速地对平台120进行重新配置。
21.在一些实现方式中,如所示出的,平台120可以托管在云计算环境122中。值得注意的是,虽然本文中描述的实现方式将平台120描述为托管在云计算环境122中,但是在一些实现方式中,平台120可以不是基于云的(即,可以在云计算环境的外部实现)或者可以是部分基于云的。
22.云计算环境122包括托管平台120的环境。云计算环境122可以提供计算、软件、数据访问、存储等服务,这些服务不需要终端用户(例如,用户设备110)知道托管平台120的系统和/或设备的物理位置和配置。如所示出的,云计算环境122可以包括一组计算资源124(统称为“计算资源124”并且单独称为“计算资源124”)。
23.计算资源124包括一个或更多个个人计算机、工作站计算机、服务器设备或其他类型的计算和/或通信设备。在一些实现方式中,计算资源124可以托管平台120。云资源可以包括:在计算资源124中执行的计算实例、在计算资源124中提供的存储设备、由计算资源124提供的数据传送设备等。在一些实现方式中,计算资源124可以经由有线连接、无线连接或者有线连接和无线连接的组合与其他计算资源124通信。
24.如图1中进一步示出的,计算资源124包括一组云资源,例如一个或更多个应用(“application,app”)124-1、一个或更多个虚拟机(“virtual machine,vm”)124-2、虚拟化存储(“virtualized storage,vs”)124-3、一个或更多个管理程序(“hypervisor,hyp”)124-4等。
25.应用124-1包括可以提供给用户设备110和/或平台120或者由用户设备110和/或平台120访问的一个或更多个软件应用。应用124-1可以消除在用户设备110上安装和执行软件应用的需求。例如,应用124-1可以包括与平台120相关联的软件以及/或者能够经由云计算环境122提供的任何其他软件。在一些实现方式中,一个应用124-1可以经由虚拟机124-2向一个或更多个其他应用124-1发送信息/从一个或更多个其他应用124-1接收信息。
26.虚拟机124-2包括像物理机一样执行程序的机器(例如,计算机)的软件实现方式。虚拟机124-2可以是系统虚拟机或过程虚拟机,这取决于虚拟机124-2对任何真实机的使用和对应程度。系统虚拟机可以提供支持完整操作系统(“operating system,os”)的执行的完整系统平台。过程虚拟机可以执行单个程序,并且可以支持单个过程。在一些实现方式中,虚拟机124-2可以代表用户(例如,用户设备110)执行,并且可以管理云计算环境122的基础架构,例如数据管理、同步或长持续时间数据传送。
27.虚拟化存储124-3包括在计算资源124的存储系统或设备内使用虚拟化技术的一个或更多个存储系统和/或一个或更多个设备。在一些实现方式中,在存储系统的上下文内,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以是指逻辑存储从物理存储的抽象(或分离),使得可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员在管理员管理针对终端用户的存储方面的灵活性。文件虚拟化可以消除在文件级别访问的数据与物理地存储文件的位置之间的依赖性。这可以使得能够
优化存储使用、服务器整合和/或无中断文件迁移的性能。
28.管理程序124-4可以提供允许多个操作系统(例如,“客户操作系统”)在诸如计算资源124的主计算机上同时执行的硬件虚拟化技术。管理程序124-4可以向客户操作系统呈现虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。
29.网络130包括一个或更多个有线网络和/或无线网络。例如,网络130可以包括蜂窝网络(例如,第五代(fifth generation,5g)网络、长期演进(long-term evolution,lte)网络、第三代(third generation,3g)网络、码分多址(code division multiple access,cdma)网络等)、公共陆地移动网络(public land mobile network,plmn)、局域网(local area network,lan)、广域网(wide area network,wan)、城域网(metropolitan area network,man)、电话网络(例如,公共交换电话网络(public switched telephone network,pstn))、专用网络、自组织(ad hoc)网络、内联网、因特网、基于光纤的网络等以及/或者这些或其他类型的网络的组合。
30.图1中示出的设备和网络的数目和布置被作为示例提供。实践中,与图1中示出的设备和/或网络相比,可以存在另外的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或者不同地布置的设备和/或网络。此外,图1中示出的两个或更多个设备可以在单个设备内实现,或者图1中示出的单个设备可以实现为多个分布式设备。另外地或替选地,环境100的一组设备(例如,一个或更多个设备)可以执行被描述为由环境100的另一组设备执行的一个或更多个功能。
31.图2是图1的一个或更多个设备的示例部件的框图。
32.设备200可以对应于用户设备110和/或平台120。如图2所示,设备200可以包括总线210、处理器220、存储器230、存储部件240、输入部件250、输出部件260和通信接口270。
33.总线210包括允许设备200的部件之间的通信的部件。处理器220以硬件、固件、或者硬件和软件的组合来实现。处理器220是中央处理单元(central processing unit,cpu)、图形处理单元(graphics processing unit,gpu)、加速处理单元(accelerated processing unit,apu)、微处理器、微控制器、数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、专用集成电路(application-specific integrated circuit,asic)或者另一类型的处理部件。在一些实现方式中,处理器220包括能够被编程以执行功能的一个或更多个处理器。存储器230包括随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)以及/或者存储供处理器220使用的信息和/或指令的另一类型的动态或静态存储设备(例如,闪速存储器、磁存储器和/或光学存储器)。
34.存储部件240存储与设备200的操作和使用有关的信息和/或软件。例如,存储部件240可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、致密盘(compact disc,cd)、数字通用盘(digital versatile disc,dvd)、软盘、盒式存储器、磁带和/或另一类型的非暂态计算机可读介质以及对应的驱动器。
35.输入部件250包括允许设备200例如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)接收信息的部件。另外地或替选地,输入部件250可以包括用于感测信息的传感器(例如,全球定位系统(global positioning system,gps)部
件、加速计、陀螺仪和/或致动器)。输出部件260包括提供来自设备200的输出信息的部件(例如,显示器、扬声器和/或一个或更多个发光二极管(light-emitting diode,led))。
36.通信接口270包括使得设备200能够例如经由有线连接、无线连接或者有线连接和无线连接的组合与其他设备通信的类似收发器的部件(例如,收发器和/或单独的接收器和发送器)。通信接口270可以允许设备200从另一设备接收信息和/或向另一设备提供信息。例如,通信接口270可以包括以太网接口、光学接口、同轴接口、红外接口、射频(radio frequency,rf)接口、通用串行总线(universal serial bus,usb)接口、wi-fi接口、蜂窝网络接口等。
37.设备200可以执行本文中描述的一个或更多个处理。设备200可以响应于处理器220执行由非暂态计算机可读介质(例如,存储器230和/或存储部件240)存储的软件指令来执行这些处理。计算机可读介质在本文中被限定为非暂态存储器设备。存储器设备包括单个物理存储设备内的存储器空间或者分布在多个物理存储设备上的存储器空间。
38.可以经由通信接口270从另一计算机可读介质或从另一设备将软件指令读入存储器230和/或存储部件240中。存储在存储器230和/或存储部件240中的软件指令在被执行时可以使处理器220执行本文中描述的一个或更多个处理。另外地或替选地,可以使用硬连线电路系统来代替软件指令或与软件指令结合以执行本文中描述的一个或更多个处理。因此,本文中描述的实现方式不限于硬件电路系统和软件的任何特定组合。
39.图2中示出的部件的数目和布置被作为示例提供。实践中,与图2中示出的部件相比,设备200可以包括另外的部件、更少的部件、不同的部件或不同地布置的部件。另外地或替选地,设备200的一组部件(例如,一个或更多个部件)可以执行被描述为由设备200的另一组部件执行的一个或更多个功能。
40.现在将详细描述用于通过元学习进行率控制的自适应神经图像压缩的方法和装置。
41.本公开内容提出了支持任意平滑比特率控制的meta-nic框架。使用元学习机制基于当前输入图像和目标比特率来自适应地计算底层nic模型的率自适应权重参数,使得单个meta-nic模型实例可以实现任意平滑不同比特率的图像压缩。
42.给定大小为(h,w,c)的输入图像x,其中h、w、c分别是高度、宽度和通道数目,nic工作流的测试阶段的目标可以描述如下。计算对于存储和传输是紧凑的压缩表示然后,基于压缩表示重建输出图像并且重建的输出图像可能与原始输入图像x类似。使用失真损失来测量重建误差,例如峰值信噪比(peak signal-to-noise ratio,psnr)或结构相似性指数测量(structural similarity index measure,ssim)。计算率损失以测量压缩表示的比特消耗。使用权衡超参数λ来形成联合率失真(rate-distortion,r-d)损失:
[0043][0044]
利用大的超参数λ进行训练产生具有较小失真但较多比特消耗的压缩模型,而利用小的超参数λ进行训练产生具有较大失真但较少比特消耗的压缩模型。传统上,对于每个预定义的超参数λ,将对nic模型实例进行训练,这将不适用于超参数λ的其他值。因此,为了
实现压缩流的多个比特率,传统方法可能需要训练和存储多个模型实例。此外,由于在实践中难以针对超参数λ的每个可能值来训练模型,因此传统方法不能实现任意平滑比特率控制。
[0045]
图3a和图3b是根据实施方式的用于通过元学习进行率控制的自适应神经图像压缩的meta-nic架构300a和300b的框图。
[0046]
如图3a所示,meta-nic架构300a包括共享编码nn 305、自适应编码nn 310、共享解码nn 315和自适应解码nn 320。
[0047]
如图3b所示,meta-nic架构300b包括共享编码层325和330、自适应编码层335和340、共享解码层345和350、以及自适应解码层355和360。
[0048]
在本公开内容中,底层nic编码器和底层nic解码器的模型参数被分成这4个部分,分别表示共享编码参数(shared encoding parameter,sep)、自适应编码参数(adaptive encoding parameter,aep)、共享解码参数(shared decoding parameter,sdp)和自适应解码参数(adaptive decoding parameter,adp)。图3a和图3b示出了nic网络架构的两个实施方式。
[0049]
在图3a中,sep、sdp、aep和adp是分离的单独nn模块,并且这些单独的模块彼此顺序地连接以用于网络前向计算。这里,图3a示出了连接这些单独nn模块的相继顺序。这里可以使用其他顺序。
[0050]
在图3b中,在nn层内对参数进行分割。令分别针对nic编码器的第i层和nic解码器的第j层表示sep、aep、sdp和adp。网络将分别基于sep和aep(或sdp和adp)的对应输入来计算推理输出,并且这些输出将被组合(例如,通过加法、级联、乘法等)并且然后被发送至下一层。
[0051]
图3a的实施方式可以被看作图1b的情况,其中共享编码nn 305中的层为空,自适应编码nn 310中的层为空,共享解码nn 315中的层为空,并且自适应解码nn 320中的层为空。因此,在其他实施方式中,图3a和图3b的网络结构可以被组合,其中nic架构包括以下两者:纯共享编码/解码层和/或纯自适应编码/解码层,以及具有部分共享编码/解码参数和部分自适应编码/解码参数的混合层。
[0052]
图4a是根据实施方式的用于在测试阶段期间通过元学习进行率控制的自适应神经图像压缩的装置400的框图。
[0053]
如图4a所示,装置400包括meta-nic编码器410和meta-nic解码器420。
[0054]
图4a示出了meta-nic框架的测试阶段的总体工作流。令和分别表示meta-nic编码器410的第i层的sep和aep。这是示例符号,因为对于完全共享的层,为空。对于完全自适应的层,为空。换言之,该符号可以用于图3a的实施方式和图3b的实施方式两者。
[0055]
给定输入图像x,并且给定目标权衡超参数λ,meta-nic编码器410计算压缩表示在meta-nic编码器410中,输入图像x通过meta-nic编码nn。令f(i)和f(i 1)表示第i层
的输入张量和输出张量。
[0056]
图4b是图4a中示出的装置400的meta-nic编码器410的框图。
[0057]
如图4b所示,meta-nic编码器410包括sep推理部412、aep预测部414和aep推理部416。
[0058]
图4b给出了第i层的meta-nic编码器410的推理工作流的示例实施方式。基于当前输入f(i)和sepsep推理部412基于共享推理函数来计算共享特征g(i),该共享推理函数是使用第i层中的sep通过前向计算来建模的。基于当前输入f(i)、共享特征g(i)、aep和超参数λ,aep预测部414计算第i层的估计aepaep预测部414可以是例如包括卷积和完全连接层的nn,其基于原始aep当前输入f(i)和目标超参数λ来预测更新的估计aep在一些实施方式中,当前输入f(i)被用作aep预测部414的输入。在一些其他实施方式中,使用共享特征g(i)而不是当前输入f(i)。在其他实施方式中,可以基于共享特征g(i)来计算sep损失,并且损失的梯度被用作aep预测部414的输入。基于估计aep和共享特征g(i),aep推理部416基于aep推理函数来计算输出张量f(i 1),该aep推理函数是使用第i层中的估计aep通过前向计算来建模的。
[0059]
注意,图4b中描述的工作流是示例符号。对于aep为空的完全共享的层,可以省略aep相关模块和f(i 1)=g(i)。对于sep为空的完全自适应的层,可以省略sep相关模块和g(i)=f(i)。
[0060]
假设meta-nic编码器410总共有n层,最后一层的输出是压缩表示其被发送至meta-nic解码器420(例如,在通过量化和熵编码被进一步压缩成紧凑比特流之后)。
[0061]
再次参照图4a,在解码器侧,令和分别表示meta-nic解码器420的第j层的sdp和adp。类似于meta-nic编码器410,这是示例符号,因为对于完全共享的层,为空,并且对于完全自适应的层,为空。
[0062]
在解码器侧,通过熵解码和去量化从自meta-nic编码器410发送的比特流获得恢复的压缩表示基于恢复的压缩表示和目标权衡超参数λ,meta-nic解码器420计算重建的输出图像在meta-nic解码器420中,恢复的压缩表示通过meta-nic解码nn。令f(j)和f(j 1)表示第j层的输入张量和输出张量。
[0063]
图4c是图4a中示出的装置400的meta-nic解码器420的框图。
[0064]
如图4c所示,meta-nic解码器420包括sdp推理部422、adp预测部424和adp推理部426。
[0065]
图4c给出了对于第j层的meta-nic解码器420的推理工作流的示例实施方式。基于当前输入f(j)和sdpsdp推理部422基于共享推理函数来计算共享
特征g(i),该共享推理函数是使用第j层的sdp通过网络前向计算来建模的。基于当前输入f(j)、共享特征g(i)、adp和超参数λ,adp预测部424计算第j层的估计adpadp预测部424可以是例如具有卷积和完全连接层的nn,其基于原始adp当前输入f(j)和目标超参数λ来预测更新的估计在一些实施方式中,当前输入f(j)被用作adp预测部424的输入。在一些其他实施方式中,使用共享特征g(i)而不是当前输入f(j)。在其他实施方式中,基于共享特征g(i)来计算sdp损失,并且损失的梯度被用作adp预测部424的输入。基于估计adp和共享特征g(i),adp推理部426基于adp推理函数来计算输出张量f(j 1),该adp推理函数是使用第j层中的估计adp通过网络前向计算来建模的。
[0066]
注意,图4c中描述的工作流是示例符号。对于adp为空的完全共享的层,可以省略adp相关模块和f(j 1)=g(j)。对于sdp为空的完全自适应的层,可以省略sdp相关模块和g(j)=f(j)。
[0067]
假设meta-nic解码器420总共有m层,最后一层的输出是重建图像输出
[0068]
注意,meta-nic框架允许任意平滑权衡超参数λ,并且处理工作流将计算压缩表示和重建输出图像以拟合目标超参数λ。
[0069]
在一些实施方式中,权衡超参数λ对于编码器和解码器是相同的。在一些其他实施方式中,超参数λ对于meta-nic编码器410和meta-nic解码器420可以是不同的。在这样的情况下,meta-nic解码器420尝试使压缩表示适于与原始编码目标质量不同的目标质量。
[0070]
在一种情况下,当aep预测部414和adp预测部424在考虑/不考虑输入f(i)或f(j)的情况下仅在预定义的一组权衡超参数上执行预测时,meta-nic模型简化为多率nic模型,该多率nic模型使用一个模型实例来适应多个预定义比特率的压缩效果。
[0071]
图5是根据实施方式的用于在训练阶段期间通过元学习进行率控制的自适应神经图像压缩的训练装置500的框图。
[0072]
如图5所示,训练装置500包括任务采样器510、内环损失生成器520、内环更新部530、元损失生成器540、元更新部550和权重更新部560。
[0073]
训练过程旨在学习用于图4a的meta-nic编码器410的sep和aepi=1,

,n,以及用于图4a的meta-nic解码器420的sdp和adpj=1,

,m,以及aep预测nn(表示为φe的模型参数)和adp预测nn(表示为φd的模型参数)。
[0074]
在实施方式中,与模型无关的元学习(model-agnostic meta-learning,maml)机制被用于训练目的。图5给出了元训练框架的示例工作流。这里可以使用其他元训练算法。
[0075]
对于训练,存在一组训练数据d
tr
(λi),i=1,

,k,其中,每个d
tr
(λi)对应于训练权衡超参数λi,并且总共有k个训练权衡超参数(因此k个训练数据集)。另外,存在一组验证数据d
val
(λj),j=1,

,p,其中每个d
val
(λj)对应于验证权衡超参数λj,并且总共有p个验证权衡超参数。验证权衡超参数包括与训练集不同的超参数。验证权衡超参数还可以包括来自
训练集的那些超参数。
[0076]
总体训练目标是学习meta-nic模型,使得在具有目标权衡超参数的nic任务从任务分布p(λ)中提取的假设下,meta-nic模型可以广泛地应用于所有(包括训练和未来未见的)权衡超参数。为了实现这一点,在所有训练权衡超参数上,在所有训练数据集上最小化学习meta-nic模型的损失。
[0077]
令包括sep和sdp中的所有共享参数,并且令包括sep和sdp中的所有共享参数,并且令包括aep和adp中的所有自适应参数。maml训练过程可以具有用于基于梯度的参数更新的外环和内环。对于每个外环迭代,任务采样器510首先对一组k

训练权衡超参数(k

≤k)进行采样。然后,对于每个采样的训练权衡超参数λi,任务采样器510从一组训练数据dtr(λi)对一组训练数据进行采样。此外,任务采样器510对一组p

(p

≤p)验证权衡超参数进行采样,并且针对每个采样的验证超参数λi,从一组验证数据d
val
(λj)对一组验证数据进行采样。然后,对于每个采样的数据基于当前参数θs、θa、φe和φd来进行meta-nic前向计算,并且内环损失生成器520然后计算累积内环损失
[0078][0079]
损失函数l(x,θs,θa,φe,φd,λi)可以包括等式(1)的r-d损失和另一正则化损失(例如,以不同权衡为目标区分中间网络输出的辅助损失)。然后,基于内环损失给定步长α
si
和α
ai
作为λi的超参数,内环更新部530计算更新的任务特定参数更新:
[0080]
以及
[0081][0082]
累积内环损失的梯度和梯度被分别用于计算自适应参数和的更新版本。
[0083]
然后,元损失生成器540在所有采样的验证超参数上计算外部元目标或损失:
[0084]
以及
[0085][0086]
其中,是使用参数φs、φa基于meta-nic前向计算针对输入x计算的损失。给定步长β
aj
和β
sj
作为λi的超参数,元更新部550将模型参数更新为:
[0087]
以及
[0088][0089]
在一些实施方式中,θs在内环中不被更新,即α
si
=0,这可以帮助稳定训练过程。
[0090]
对于aep预测nn和adp预测nn的参数φe、φd,权重更新部560以常规训练方式更新它们。即,根据训练和验证数据d
tr
(λi),i=1,

,k、d
val
(λj),j=1,

,p,基于当前参数θs、θa、φe和φd,计算所有样本x∈d
tr
(λi)的损失l(x,θs,θa,φe,φd,λi)和所有样本x∈d
val
(λj)的损失l(x,θs,θa,φe,φd,λj)。可以累积(例如,累加)所有这些损失的梯度以通过常规反向传播在φe和φd上执行参数更新。
[0091]
注意,本公开内容没有对用于更新这些模型参数的优化算法或损失函数施加任何限制。
[0092]
对于图4b的aep预测部414和meta-nic模型的adp预测部424仅在预定义的一组训练权衡超参数上执行预测的情况,验证权衡超参数将与训练权衡超参数相同。相同的maml训练过程可以用于训练该简化的meta-nic模型(即多率nic模型,其使用一个模型实例以适应多个预定义比特率的压缩效果)。
[0093]
本文中描述的实施方式允许仅使用一个meta-nic模型实例来实现通过使用元学习进行任意平滑比特率控制的图像压缩的能力。方法和装置可以用于使用单个模型的多率压缩和平滑比特率控制两者。实施方式提供了适应各种底层nic模型和元学习方法的灵活框架。
[0094]
图6是根据实施方式的通过元学习进行率控制的自适应神经图像压缩的方法的流程图。
[0095]
在一些实现方式中,图6的一个或更多个过程块可以由平台120执行。在一些实现方式中,图6的一个或更多个过程块可以由与平台120分离或者包括平台120的另一设备或一组设备(例如用户设备110)来执行。
[0096]
如图6所示,在操作610中,方法600包括接收输入图像和超参数。
[0097]
在操作620中,方法600包括使用编码神经网络基于接收的超参数对接收的输入图像进行编码,以生成压缩表示。
[0098]
编码包括:使用具有第一共享编码参数的第一共享编码层,对接收的输入图像执行第一共享编码;使用具有第一自适应编码参数的第一自适应编码层,对接收的输入图像执行第一自适应编码;组合第一共享编码输入图像和第一自适应编码输入图像,以生成第一组合输出;以及使用具有第二共享编码参数的第二共享编码层,对第一组合输出执行第二共享编码。编码还可以包括使用具有第二自适应编码参数的第二自适应编码层对第一组合输出执行第二自适应编码。
[0099]
在操作630中,方法600包括接收恢复的压缩表示和超参数。
[0100]
在操作640中,方法600包括使用解码神经网络基于接收的超参数对接收的恢复的压缩表示进行解码,以重建输出图像。
[0101]
解码包括:使用具有第一共享解码参数的第一共享解码层,对接收的恢复的压缩表示执行第一共享解码;使用具有第一自适应解码参数的第一自适应解码层,对接收的恢复的压缩表示执行第一自适应解码;组合第一共享解码恢复压缩表示和第一自适应解码恢复压缩表示,以生成第二组合输出;使用具有第二共享解码参数的第二共享解码层,对第二组合输出执行第二共享解码;以及使用具有第二自适应解码参数的第二自适应解码层,对第二组合输出执行第二自适应解码。
[0102]
编码可以包括:基于接收的输入图像和第一共享编码参数来生成共享特征;基于接收的输入图像、第一自适应编码参数、生成的共享特征和接收的超参数中的一个或更多个、使用预测神经网络生成估计的自适应编码参数;以及基于估计的自适应编码参数和接收的超参数来生成压缩表示。
[0103]
可以通过以下来训练预测神经网络:基于接收的超参数、第一共享编码参数、第一自适应编码参数、第一共享解码参数、第一自适应解码参数和预测神经网络的预测参数,生成与接收的超参数对应的训练数据的第一损失和与接收的超参数对应的验证数据的第二损失;以及基于生成的第一损失和生成的第二损失的梯度来更新预测参数。
[0104]
解码可以包括:使用预测神经网络,基于接收的输入图像和第一共享解码参数来生成共享特征;基于接收的输入图像、第一自适应解码参数、生成的共享特征和接收的超参数中的一个或更多个生成估计的自适应解码参数;以及基于估计的自适应解码参数和接收的超参数来重建输出图像。
[0105]
可以通过以下来训练预测神经网络:基于接收的超参数、第一共享编码参数、第一自适应编码参数、第一共享解码参数、第一自适应解码参数和预测神经网络的预测参数,生成与接收的超参数对应的训练数据的第一损失和与接收的超参数对应的验证数据的第二损失;以及基于生成的第一损失和生成的第二损失的梯度来更新预测参数。
[0106]
可以通过以下来训练编码神经网络和解码神经网络:基于接收的超参数、第一共享编码参数、第一自适应编码参数、第一共享解码参数和第一自适应解码参数,生成与接收的超参数对应的训练数据的内环损失;基于生成的内环损失的梯度,对第一共享编码参数、第一自适应编码参数、第一共享解码参数和第一自适应解码参数进行第一更新;基于接收的超参数、第一更新的第一共享编码参数、第一更新的第一自适应编码参数、第一更新的第一共享解码参数和第一更新的第一自适应解码参数,生成与接收的超参数对应的验证数据的元损失;以及基于生成的元损失的梯度对第一更新的第一共享编码参数、第一更新的第一自适应编码参数、第一更新的第一共享解码参数和第一更新的第一自适应解码参数进行第二更新。
[0107]
尽管图6示出了方法600的示例块,但是在一些实现方式中,与图6中描绘的这些块相比,方法600可以包括附加的块、更少的块、不同的块或不同地布置的块。另外地或替选地,方法600的块中的两个或更多个可以并行执行。
[0108]
图7是根据实施方式的用于神经图像压缩的任务自适应预处理的装置700的框图。
[0109]
如图7所示,装置700包括第一接收代码710、编码代码720、第二接收代码730和解码代码740。
[0110]
第一接收代码710被配置成使至少一个处理器接收输入图像和超参数。
[0111]
编码代码720被配置成使至少一个处理器基于接收的超参数、使用编码神经网络
对接收的输入图像进行编码,以生成压缩表示。
[0112]
编码代码720还被配置成使至少一个处理器:使用具有第一共享编码参数的第一共享编码层,对接收的输入图像执行第一共享编码;使用具有第一自适应编码参数的第一自适应编码层,对接收的输入图像执行第一自适应编码;组合第一共享编码输入图像和第一自适应编码输入图像,以生成第一组合输出;以及使用具有第二共享编码参数的第二共享编码层,对第一组合输出执行第二共享编码。编码代码720还被配置成使至少一个处理器使用具有第二自适应编码参数的第二自适应编码层对第一组合输出执行第二自适应编码。
[0113]
第二接收代码730被配置成使至少一个处理器接收恢复的压缩表示和超参数。
[0114]
解码代码740被配置成使至少一个处理器:使用解码神经网络,基于接收的超参数对所接收的恢复的压缩表示进行解码,以重建输出图像。
[0115]
解码代码740还被配置成使至少一个处理器:使用具有第一共享解码参数的第一共享解码层,对所接收的恢复的压缩表示执行第一共享解码;使用具有第一自适应解码参数的第一自适应解码层,对所接收的恢复的压缩表示执行第一自适应解码;组合第一共享解码恢复压缩表示和第一自适应解码恢复压缩表示,以生成第二组合输出;使用具有第二共享解码参数的第二共享解码层,对第二组合输出执行第二共享解码;以及使用具有第二自适应解码参数的第二自适应解码层,对第二组合输出执行第二自适应解码。
[0116]
编码代码720还被配置成使至少一个处理器:基于接收的输入图像和第一共享编码参数来生成共享特征;使用预测神经网络,基于接收的输入图像、第一自适应编码参数、生成的共享特征和接收的超参数中的一个或更多个生成估计的自适应编码参数;以及基于估计的自适应编码参数和接收的超参数来生成压缩表示。
[0117]
可以通过以下来训练预测神经网络:基于接收的超参数、第一共享编码参数、第一自适应编码参数、第一共享解码参数、第一自适应解码参数和预测神经网络的预测参数,生成与接收的超参数对应的训练数据的第一损失和与接收的超参数对应的验证数据的第二损失;以及基于生成的第一损失和生成的第二损失的梯度来更新预测参数。
[0118]
解码代码740还被配置成使至少一个处理器:基于接收的输入图像和第一共享解码参数来生成共享特征;使用预测神经网络,基于接收的输入图像、第一自适应解码参数、生成的共享特征和接收的超参数中的一个或更多个生成估计的自适应解码参数;以及基于估计的自适应解码参数和接收的超参数来重建输出图像。
[0119]
可以通过以下来训练预测神经网络:基于接收的超参数、第一共享编码参数、第一自适应编码参数、第一共享解码参数、第一自适应解码参数和预测神经网络的预测参数,生成与接收的超参数对应的训练数据的第一损失和与接收的超参数对应的验证数据的第二损失;以及基于生成的第一损失和生成的第二损失的梯度来更新预测参数。
[0120]
可以通过以下来训练编码神经网络和解码神经网络:基于接收的超参数、第一共享编码参数、第一自适应编码参数、第一共享解码参数和第一自适应解码参数,生成与接收的超参数对应的训练数据的内环损失;基于生成的内环损失的梯度,对第一共享编码参数、第一自适应编码参数、第一共享解码参数和第一自适应解码参数进行第一更新;基于接收的超参数、第一更新的第一共享编码参数、第一更新的第一自适应编码参数、第一更新的第一共享解码参数和第一更新的第一自适应解码参数,生成与接收的超参数对应的验证数据的元损失;以及基于生成的元损失的梯度,对第一更新的第一共享编码参数、第一更新的第
一自适应编码参数、第一更新的第一共享解码参数和第一更新的第一自适应解码参数进行第二更新。
[0121]
所提出的方法可以单独使用或以任何顺序组合使用。此外,方法(或实施方式)、编码器和解码器中的每一个可以通过处理电路系统(例如,一个或更多个处理器或一个或更多个集成电路)来实现。在一个示例中,一个或更多个处理器执行被存储在非暂态计算机可读介质中的程序。
[0122]
前述公开内容提供了说明和描述,但是并非旨在穷举性的或者将实现方式限制为所公开的确切形式。根据以上公开内容,可以进行修改和变型,或者可以从实现方式的实践中获取修改和变型。
[0123]
如本文所使用的,术语“部件”旨在被广义地解释为硬件、固件或硬件和软件的组合。
[0124]
将明显的是,本文所描述的系统和/或方法可以以不同形式的硬件、固件、或者硬件和软件的组合来实现。用于实施这些系统和/或方法的实际专用控制硬件或软件代码不限制实现方式。因此,本文中描述了系统和/或方法的操作和行为,而没有参考特定的软件代码——应当理解,软件和硬件可以被设计成基于本文中的描述来实现系统和/或方法。
[0125]
即使在权利要求中记载和/或在说明书中公开了特征的组合,这些组合也并非旨在限制可能的实现方式的公开内容。实际上,这些特征中的许多特征可以以未在权利要求中具体记载和/或未在说明书中公开的方式进行组合。尽管下面列出的每个从属权利要求可能直接引用仅一个权利要求,但是可能的实现方式的公开内容包括与权利要求组中的每个其他权利要求组合的每个从属权利要求。
[0126]
本文所使用的任何元素、动作或指令均不应当被解释为关键的或必要的,除非明确地如此描述。此外,如本文所使用的,无量词修饰的项(“(a)”和“(an)”)旨在包括一个或更多个项,并且可以与“一个或更多个”互换使用。此外,如本文所使用的,术语“组”旨在包括一个或更多个项(例如相关项、不相关项、相关项和不相关项的组合等),并且可以与“一个或更多个”互换使用。在仅意指一个项的情况下,使用术语“一个(one)”或类似的语言。此外,如本文所使用的,术语“具有”、“有”、“带有”等旨在为开放式术语。此外,除非另有明确说明,否则短语“基于”旨在意指“至少部分基于”。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献