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

用于神经图像压缩中的替代的动态学习率的方法和装置与流程

2023-03-02 15:00:11 来源:中国专利 TAG:

用于神经图像压缩中的替代的动态学习率的方法和装置


背景技术:

1.传统的混合视频编解码器很难从整体上进行优化。单个模块的改进可能不会产生整体性能的编码增益。最近,标准集团和公司一直在积极寻找未来视频编码技术标准化的潜在需求。这些标准集团和公司已经建立了jpeg-ai小组,专注于使用深度神经网络(deep neural networks,dnn)进行基于ai的端到端神经图像压缩。中国avs标准还已经成立了avs-ai专门小组来研究神经图像和视频压缩技术。最近方法的成功已经为先进的神经图像和视频压缩方法带来了越来越多的工业兴趣。


技术实现要素:

2.根据示例性实施方式,一种由至少一个处理器执行的使用神经网络的端到端(end-to-end,e2e)替代神经图像压缩(neural image compression,nic)的方法,包括:将输入图像接收到e2e nic框架,确定指示训练模型的学习率的输入图像的步长,基于训练模型来确定替代图像,对代替输入图像的替代图像进行编码以生成比特流,以及将替代图像映射到比特流以生成压缩表示。
3.根据示例性实施方式,一种用于使用神经网络的端到端(e2e)替代神经图像压缩(nic)的装置,该装置包括:被配置成存储程序代码的至少一个存储器;以及被配置成读取程序代码并按照程序代码的指示进行操作的至少一个处理器。程序代码包括:接收代码,所述接收代码被配置成使至少一个处理器将输入图像接收到e2e nic框架;步长确定代码,所述步长确定代码被配置成使至少一个处理器确定指示训练模型的学习率的输入图像的步长;第一确定代码,所述第一确定代码被配置成使至少一个处理器基于训练模型来确定替代图像;第一编码代码,所述第一编码代码被配置成使至少一个处理器对代替输入图像的替代图像进行编码以生成比特流;以及映射代码,所述映射代码被配置成使至少一个处理器将替代图像映射到比特流以生成压缩表示。
4.根据示例性实施方式,一种非暂态计算机可读介质,存储有指令,当所述指令被至少一个处理器执行以用于端到端(e2e)替代神经图像压缩(nic)时,使至少一个处理器:将输入图像接收到e2e nic框架;确定指示训练模型的学习率的输入图像的步长;基于训练模型来确定替代图像;对代替输入图像的替代图像进行编码以生成比特流;以及将替代图像映射到比特流以生成压缩表示。
附图说明
5.图1是根据实施方式的其中可以实现本文描述的方法、装置和系统的环境的图。
6.图2是图1的一个或更多个设备的示例部件的框图。
7.图3是根据实施方式的通用替代nic框架300的示例框图。
8.图4是示出基于学习的替代图像编码预处理模型(a substitutional learning-based image coding preprocessing model)的示例图。
9.图5是根据实施方式的端到端(e2e)替代神经图像压缩(nic)方法的流程图。
10.图6是根据实施方式的用于端到端(e2e)替代神经图像压缩(nic)的装置的框图。
具体实施方式
11.实施方式可以包括接收图片并且通过执行优化过程来确定图片的替代表示,以调谐图片的替代表示的元素进而基于端到端(e2e)优化框架来优化对图片的替代表示进行编码的率失真性能(rate-distortion performance)。e2e优化框架可以是经预训练的基于人工神经网络(ann)的图像或视频编码框架。可以对图片的替代表示进行编码以生成比特流。在基于人工神经网络的视频编码框架中,通过执行机器学习过程,不同模块可以从输入到输出进行联合优化以提高最终目的(例如,率失真性能),从而实现端到端(e2e)优化神经图像压缩(nic)。
12.图1是根据实施方式的其中可以实现本文描述的方法、装置和系统的环境100的图。
13.如图1所示,环境100可以包括用户设备110、平台120和网络130。环境100的各个设备可以经由有线连接、无线连接或者有线连接和无线连接的组合进行互连。
14.用户设备110包括能够接收、生成、存储、处理和/或提供与平台120相关联的信息的一个或更多个设备。例如,用户设备110可以包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,一副智能眼镜或智能手表)或者类似设备。在一些实现方式中,用户设备110可以从平台120接收信息以及/或者向平台120发送信息。
15.平台120包括如本文其他地方描述的一个或更多个设备。在一些实现方式中,平台120可以包括云服务器或云服务器组。在一些实现方式中,平台120可以被设计成模块化的,使得可以换入或换出软件部件。如此,可以针对不同用途容易地和/或快速地对平台120进行重新配置。
16.在一些实现方式中,如所示出的,平台120可以托管在云计算环境122中。值得注意的是,虽然本文描述的实现方式将平台120描述为托管在云计算环境122中,但是在一些实现方式中,平台120可以不是基于云的(即,可以在云计算环境之外实现)或者可以是部分基于云的。
17.云计算环境122包括托管平台120的环境。云计算环境122可以提供计算、软件、数据访问、存储等服务,这些服务不需要终端用户(例如,用户设备110)了解托管平台120的系统和/或设备的物理位置和配置。如所示出的,云计算环境122可以包括一组计算资源124(统称为“计算资源124”以及单独称为“计算资源124”)。
18.计算资源124包括一个或更多个个人计算机、工作站计算机、服务器设备或其他类型的计算和/或通信设备。在一些实现方式中,计算资源124可以托管平台120。云资源可以包括:在计算资源124中执行的计算实例、在计算资源124中提供的存储设备、由计算资源124提供的数据传送设备等。在一些实现方式中,计算资源124可以经由有线连接、无线连接或者有线连接和无线连接的组合与其他计算资源124通信。
19.如进一步在图1中示出的,计算资源124包括一组云资源,诸如一个或更多个应用(“application,app”)124-1、一个或更多个虚拟机(“virtual machine,vm”)124-2、虚拟化存储装置(“virtualized storage,vs”)124-3、一个或更多个管理程序(“hypervisor,
hyp”)124-4等。
20.应用124-1包括可以提供给用户设备110和/或平台120或者由用户设备110和/或平台120访问的一个或更多个软件应用。应用124-1可以消除在用户设备110上安装和执行软件应用的需求。例如,应用124-1可以包括与平台120相关联的软件以及/或者能够经由云计算环境122提供的任何其他软件。在一些实现方式中,一个应用124-1可以经由虚拟机124-2向一个或更多个其他应用124-1发送信息/从一个或更多个其他应用124-1接收信息。
21.虚拟机124-2包括像物理机一样执行程序的机器(例如,计算机)的软件实现方式。虚拟机124-2可以为系统虚拟机或进程虚拟机,这取决于虚拟机124-2对任何真实机的使用和对应程度。系统虚拟机可以提供支持完整操作系统(operating system,os)的执行的完整系统平台。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实现方式中,虚拟机124-2可以代表用户(例如,用户设备110)执行,并且可以管理云计算环境122的基础架构,诸如数据管理、同步或长持续时间数据传送。
22.虚拟化存储装置124-3包括在计算资源124的存储系统或设备内使用虚拟化技术的一个或更多个存储系统和/或一个或更多个装置。在一些实现方式中,在存储系统的上下文内,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以是指逻辑存储相对于物理存储的抽取(或分离),使得可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员在管理员如何管理针对终端用户的存储方面的灵活性。文件虚拟化可以消除以文件级别访问的数据与物理地存储文件的位置之间的依赖性。这可以使得能够优化存储使用、服务器整合和/或无中断文件迁移的性能。
23.管理程序124-4可以提供允许多个操作系统(例如,“客户操作系统”)在诸如计算资源124的主计算机上同时执行的硬件虚拟化技术。管理程序124-4可以向客户操作系统呈现虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。
24.网络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))、专用网络、自组织网络、内联网、因特网、基于光纤的网络等以及/或者这些或其他类型的网络的组合。
25.图1所示的设备和网络的数目和布置作为示例提供。实际上,与图1所示的设备和/或网络相比较,可以存在另外的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络或者不同地布置的设备和/或网络。此外,图1所示的两个或更多个设备可以在单个设备内实现,或者图1所示的单个设备可以实现为多个分布式设备。另外地或可替选地,环境100的一组设备(例如,一个或更多个设备)可以执行被描述为由环境100的另一组设备执行的一个或更多个功能。
26.图2是图1的一个或更多个设备的示例部件的框图。
27.设备200可以对应于用户设备110和/或平台120。如图2所示,设备200可以包括总
线210、处理器220、存储器230、存储部件240、输入部件250、输出部件260和通信接口270。
28.总线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使用的信息和/或指令的另一类型的动态或静态存储设备(例如,闪速存储器、磁存储器和/或光学存储器)。
29.存储部件240存储与设备200的操作和使用有关的信息和/或软件。例如,存储部件240可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、致密盘(compact disc,cd)、数字通用盘(digital versatile disc,dvd)、软盘、盒式磁带、磁带以及/或者另一类型的非暂态计算机可读介质以及对应的驱动器。
30.输入部件250包括允许设备200诸如经由用户输入接收信息的部件(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)。另外地或可替选地,输入部件250可以包括用于感测信息的传感器(例如,全球定位系统(global positioning system,gps)部件、加速计、陀螺仪和/或致动器)。输出部件260包括提供来自设备200的输出信息的部件(例如,显示器、扬声器和/或一个或更多个发光二极管(light-emitting diode,led))。
31.通信接口270包括使得设备200能够诸如经由有线连接、无线连接或者有线连接和无线连接的组合与其他设备通信的类似收发器的部件(例如,收发器以及/或者单独的接收器和发送器)。通信接口270可以允许设备200从另一设备接收信息和/或向另一设备提供信息。例如,通信接口270可以包括以太网接口、光学接口、同轴接口、红外接口、射频(radio frequency,rf)接口、通用串行总线(universal serial bus,usb)接口、wi-fi接口、蜂窝网络接口等。
32.设备200可以执行本文描述的一个或更多个处理。设备200可以响应于处理器220执行由非暂态计算机可读介质诸如存储器230和/或存储部件240存储的软件指令来执行这些处理。计算机可读介质在本文被限定为非暂态存储器设备。存储器设备包括单个物理存储设备内的存储空间或者分布在多个物理存储设备上的存储空间。
33.可以经由通信接口270将软件指令从另一计算机可读介质或从另一设备读取到存储器230和/或存储部件240中。存储在存储器230和/或存储部件240中的软件指令在被执行时可以使处理器220执行本文描述的一个或更多个处理。另外地或可替选地,可以使用硬连线电路系统来代替软件指令或与软件指令组合以执行本文描述的一个或更多个处理。因此,本文描述的实现方式不限于硬件电路和软件的任何特定组合。
34.图2所示的部件的数目和布置作为示例被提供。实际上,与图2所示的部件相比较,设备200可以包括另外的部件、更少的部件、不同的部件或者不同地布置的部件。另外地或可替选地,设备200的一组部件(例如,一个或更多个部件)可以执行被描述为由设备200的另一组部件执行的一个或更多个功能。
35.给定输入图像x,nic的目标是使用图像x作为dnn编码器的输入以计算压缩表示该压缩表示是紧凑的以用于存储和传输目的。然后,使用压缩表示作为dnn解码器的输入来重建图像一些nic方法可能采用变分自动编码器(variational autoencoder,vae)结构,其中dnn编码器直接使用整个图像x作为其输入,该图像通过像黑盒一样工作的一组网络层以计算输出表示(即压缩表示)。相应地,dnn解码器将整个压缩表示作为其输入,整个压缩表示通过像另一黑盒一样工作的另一组网络层以计算重建图像使用以下目标损耗函数来优化率失真(rate-distortion,r-d)损耗,以获得具有折衷超参数λ的重建图像的失真损耗与压缩表示的比特消耗r之间的折衷:
[0036][0037]
与预处理目的相关的实施方式提出:对于要压缩的每个输入图像,可以使用在线训练来找到最佳替代并且对该最佳替代进行压缩而不是对原始图像进行压缩。图3是根据实施方式的通用替代nic框架300的示例框图。如图3所示,通用替代nic框架300包括替代模块310、编码模块320和解码模块330。
[0038]
输入图像x通过替代模块310以根据方程式(1)生成具有最小目标损失的替代图像。通过使用这种替代,编码模块320可以获得更好的压缩性能。可以使用解码模块330对压缩图像进行解码以生成重构的输出z
t
。这种方法用作用于提高任何e2e nic框架的压缩性能的预处理步骤。它不需要对预训练的压缩模型本身或任何训练数据进行任何训练或微调。现在将描述根据一个或更多个实施方式的用于预处理模型的详细方法和装置。
[0039]
图4是示出替代的基于学习的图像编码预处理模型的示例图。
[0040]
基于学习的图像压缩可以看作是两步映射过程。如图4所示,高维空间中的原始图像x0被映射到长度为r(x0)的比特流(编码映射400),该比特流然后被映射回失真损失为的处的原始空间(解码映射410)。
[0041]
在示例实施方式中,如图4所示,如果存在替代图像x
′0,使得其被映射到长度为r(x
′0)的比特流,该比特流然后被映射到失真损失为的更接近原始图像x0的空间给定距离测量或损失函数,使用替代图像可以实现更好的压缩。根据方程式(1),在目标损失函数的全局最小值处实现了最佳压缩性能。在另一示例实施方式中,可以在ann的任何中间步骤中找到替代,以减少解码图像x1和原始图像x0之间的差异。
[0042]
与使用梯度来更新模型的参数的模型训练阶段不同,在预处理模型中,模型的参数是固定的并且梯度可以用于更新输入图像本身。通过用可微部分替代不可微部分(例如,用噪声注入替代量化),使整个模型可微(使得梯度可以反向传播)。因此,上述优化可以通过梯度下降来迭代求解。
[0043]
这种预处理模型中有两个关键的超参数:步长和步数。步长指示在线培训的“学习率”。具有不同类型内容的图像可能对应不同的步长,以获得最佳的优化结果。步数指示操作的更新的次数。超参数与目标损失函数一起用于学习过程。例如,步长可以用于在学习过程中执行的反向传播计算或梯度下降算法。迭代次数可以用作最大迭代次数的阈值,以控制何时可以终止学习过程。
[0044]
在示例实施方式中,在迭代的线训练期间,学习率(即步长)可以通过调度器在每
个步骤中改变。调度器决定学习率值,该学习率值可以增加或减少。对于在线培训的一个或更多个迭代,学习率也可以保持相同。
[0045]
根据实施方式,可以存在单个调度器或多个不同的调度器来决定用于不同输入图像的学习率。即,基于多个调度器来生成多个替代(substitutions)。为每个替代选择具有最佳压缩性能的调度器。此外,根据实施方式,可以通过分割成块(patches)来压缩图像。为此,可以为图像分配多个学习率调度以获得更好的压缩结果。
[0046]
图5是根据实施方式的端到端(e2e)替代神经图像压缩(nic)方法500的流程图。
[0047]
在一些实现方式中,图5的一个或更多个过程块可以由平台120执行。在一些实现方式中,图11的一个或更多个过程块可以由与平台120分离或包括平台120的另一设备或一组设备(诸如用户设备110)执行。
[0048]
如图5所示,在操作510中,方法500包括将输入图像接收到e2e nic框架。
[0049]
在操作520中,方法500包括确定指示训练模型的学习率的输入图像的步长。
[0050]
在操作530中,方法500包括基于训练模型来确定替代图像。替代图像可以通过训练模型的优化过程来确定。这是通过调整输入图像的元素以生成替代表示以及选择在输入图像与替代表示之间具有最小失真损失的元素用作替代图像来完成的。此外,可以基于所确定的步长、对输入图像的更新次数和失真损失来训练训练模型。对于训练模型的一个或更多个迭代,步长可以增加、减少或保持相同。可以基于不同的步长来生成一个或更多个替代图像。可以基于调度器来确定与不同步长相对应的步长值。选择基于导致更好的压缩性能的步长的替代图像。可替选地,输入图像可以被分割成块并且块中的每一个被分配不同的调度器。
[0051]
替代图像存在为使得其映射到输入图像,并且替代图像到输入图像的重建图像之间的距离短于通过距离测量或损失函数测量的替代图像到输入图像之间的距离。
[0052]
在操作540中,方法500包括对代替输入图像的替代图像进行编码以生成比特流。
[0053]
在操作550中,方法500包括将替代图像映射到比特流以生成压缩表示。在实施方式中,比特流或压缩表示中的一个或更多个可以被发送到例如解码器和/或接收装置。
[0054]
在输入图像被分割成块的情况下,根据操作530至550为每个块确定替代块并且对每个替代块进行编码和压缩。
[0055]
方法500可以使用基于预训练图像编码模型的人工神经网络,其中,人工神经网络的参数是固定的并且使用梯度来更新输入图像。
[0056]
尽管图5示出了该方法的示例块,但在一些实现方式中,与图5描述的相比,该方法可以包括附加的块、更少的块、不同的块或不同地布置的块。另外地或可替选地,该方法的块中的两个或更多个可以并行执行。
[0057]
图6是根据实施方式的端到端(e2e)替代神经图像压缩(nic)的装置600的框图。
[0058]
如图6所示,装置600包括接收代码610、步长确定代码620、确定代码630、编码代码640和映射代码650。
[0059]
接收代码610被配置成使至少一个处理器将输入图像接收到e2e nic框架。
[0060]
步长确定代码620被配置成使至少一个处理器确定指示训练模型的学习率的输入图像的步长。
[0061]
确定代码630被配置成使至少一个处理器基于训练模型来确定替代图像。
[0062]
编码代码640被配置成使至少一个处理器对代替输入图像的替代图像进行编码以生成比特流。
[0063]
映射代码650被配置成使至少一个处理器将替代图像映射到比特流以生成压缩表示。
[0064]
由确定代码620确定的替代图像可以通过训练模型的优化过程来确定。这是通过调整代码和选择代码来完成的,所述调整代码被配置成使至少一个处理器调整输入图像的元素以生成替代表示,所述选择代码被配置成使至少一个处理器选择在输入图像与替代表示之间具有最小失真损失的元素作为替代图像。此外,可以基于所确定的步长、对输入图像的更新次数和失真损失来训练训练模型。对于训练模型的一个或更多个迭代,步长可以增加、减少或保持相同。可以基于不同的步长来生成一个或更多个替代图像。基于多个调度器来确定与多个步长相对应的步长值。另外,输入图像可以被分割成块,其中每个块被分配不同的调度器并被编码。
[0065]
替代图像存在为使得其映射到输入图像,并且替代图像到输入图像的重建图像之间的距离短于通过距离测量或损失函数测量的替代图像到输入图像之间的距离。
[0066]
此外,设备600可以使用基于预训练图像编码模型的人工神经网络,其中,人工神经网络的参数是固定的并且使用梯度来更新输入图像。
[0067]
尽管图6示出了该装置的示例块,但在一些实现方式中,与图6所描绘的相比,该装置可以包括附加的块、更少的块、不同的块或不同地布置的块。另外地或可选地,可以组合该装置的块中的两个或更多个。
[0068]
本文的实施方式描述了e2e图像压缩方法。这些方法利用替代机制,通过使用适应各种类型的质量度量的灵活通用框架来提高nic编码效率。
[0069]
根据一个或更多个实施方式的e2e图像压缩方法可以单独使用或者以任何顺序组合使用。此外,方法(或实施方式)、编码器和解码器中的每一个可以通过处理电路系统(例如,一个或更多个处理器或者一个或更多个集成电路)来实现。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。
[0070]
前述公开内容提供了说明和描述,但是并非旨在穷举性的或将实现方式限制为所公开的精确形式。鉴于以上公开内容,可以进行修改和变型,或者可以从实现方式的实践中获取修改和变型。
[0071]
如本文所使用的,术语“部件”旨在被广义地解释为硬件、固件或者硬件和软件的组合。
[0072]
将明显的是,本文描述的系统和/或方法可以以不同形式的硬件、固件或者硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码并不限制实现方式。因此,本文在不参考特定软件代码的情况下描述了系统和/或方法的操作和行为——应当理解,可以基于本文的描述将软件和硬件设计成实现系统和/或方法。
[0073]
即使在权利要求书中记载和/或在说明书中公开了特征的组合,但是这些组合并不旨在限制可能的实现方式的公开内容。事实上,这些特征中的许多特征可以以权利要求书中未具体记载和/或说明书中未公开的方式组合。虽然下面列出的每个从属权利要求可能直接引用仅一个权利要求,但是可能的实现方式的公开内容包括与权利要求组中的每个其他权利要求组合的每个从属权利要求。
[0074]
除非明确地如此描述,否则本文使用的任何元素、动作或指令均不能被解释为关键的或必要的。此外,如本文所使用的,冠词“一种”和“一个”旨在包括一个或更多个项,并且可以与“一个或更多个”互换使用。此外,如本文所使用的,术语“组”旨在包括一个或更多个项(例如,相关项、不相关项、相关项和不相关项的组合等),并且可以与“一个或更多个”互换使用。在意指仅一个项的情况下,使用术语“一个”或类似语言。此外,如本文所使用的,术语“具有”、“有”、“带有”等旨在为开放式术语。此外,除非另有明确说明,否则短语“基于”旨在表示“至少部分地基于”。
再多了解一些

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

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

相关文献