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

用于具有质量输入的环路滤波器的掩蔽神经网络的模型共享的制作方法

2022-12-09 23:22:30 来源:中国专利 TAG:

用于具有质量输入的环路滤波器的掩蔽神经网络的模型共享
1.相关申请的交叉引用
2.本技术基于并要求于2021年1月14日提交的、申请号为63/137,291的美国临时专利申请、以及于2021年9月27日提交的、申请号为17/486,239的美国专利的优先权,其公开内容通过引用整体并入本文。


背景技术:

3.传统的视频编解码标准,例如h.264/高级视频编解码(h.264/avc)/高效视频编解码(hevc)和通用视频编解码(vvc),共享类似的(递归的)基于块的混合预测/变换框架,其中单个编码工具(如帧内/帧间预测、整数变换和上下文自适应熵编码)被集中手工制作,以优化整体效率。时空像素邻域被用来预测信号构造,以获得相应的残差,用于后续变换、量化和熵编码。另一方面,神经网络(nn)的本质是通过分析来自相邻像素的感受野(receptive field)的时空信息来提取不同层次的时空刺激(stimuli)。探索高度非线性和非局部时空相关性的能力为大幅提高压缩质量提供了良好的机会。
4.在有损视频压缩中,压缩视频不可避免地会受到压缩伪像的影响,这严重降低了体验质量(qoe)。在实践中,容许的失真量取决于应用,而且通常压缩比越高,失真越大。有很多方法可以控制压缩质量。例如,量化参数(qp)确定量化步长。qp值越大,量化步长越大,失真越大。为了适应用户的不同要求,视频编解码方法需要能够压缩具有不同压缩质量的视频。例如,vvc允许qp值在0至63之间变化。
5.已经开发了基于深度神经网络(dnn)的方法,以成功地提高压缩视频的视觉质量,例如视频去噪、超分辨率、去模糊、去块等。然而,基于nn的质量增强方法要适应多个qp,这一直是一个具有挑战性的问题。传统上,每个qp值都被视为一个单独任务,并且要为每个qp值训练和部署一个nn模型实例。此外,不同的输入信道可以使用不同的qp值。例如,基于现有的vvc设计,允许亮度分量和色度分量使用不同的qp值。在这种情况下,可以有组合数量(combinatorial number)的模型实例。降低由多个qp值引起的存储和计算成本至关重要。
6.给定一组p个qp值qp1,

qp
p
,一种解决方案是将所有p值视为一个集合而不区分它们,因此通过组合不同qp值的训练数据,为所有p值训练一个nn模型实例。一种改进的解决方案是使用qp值qpi作为nn模型的附加输入,并使用不同qp值的组合训练数据训练一个nn模型实例。在不同输入信道使用不同qp值的情况下,可以分别使用不同输入信道的相应qp值为不同输入信道生成不同的qp映射,并且可以将不同的qp映射组合起来馈送到nn模型中。通过直接使用qp信息作为输入信号,人们希望nn模型实例自动地学习以组织其参数,以便隐式建模数据样本子群的分布,每个qp设置对应于一个数据样本子群。
7.本公开提出了一种使用基于微结构化参数共享的多任务神经网络(mtnn)的多质量环路滤波器(mqlf)机制。允许每个输入信道使用其单独的qp值,并且使用一个mtnn模型实例来适应该输入信道的多个qp设置。对于每个qp设置,使用二进制微结构化掩模(msm)来明确指导用于具有该qp设置的输入的mtnn的推理计算。


技术实现要素:

8.根据实施例,一种使用多质量环路滤波器进行视频压缩的方法,所述多质量环路滤波器使用基于微结构参数共享的掩蔽多任务神经网络,所述方法由至少一个处理器执行,并包括:根据输入中的多个量化参数生成多个模型id;选择第一组掩模,所述第一组掩模中的每个掩模与所述生成的多个模型id中的一个相对应;对第一组神经网络层的多个第一权重和所述选择的第一组掩模执行卷积,以获得第一掩蔽的权重;根据所述多个量化参数选择第二组神经网络层和多个第二权重。所述方法进一步包括:根据所述多个量化参数生成量化参数值;以及根据所述第一掩蔽的权重和所述多个第二权重,使用所述生成的量化参数值来计算推理输出。
9.根据实施例,一种使用多质量环路滤波器进行视频压缩的装置,所述多质量环路滤波器使用基于微结构参数共享的掩蔽多任务神经网络,所述装置包括:至少一个存储器,被配置为存储程序代码;以及至少一个处理器,被配置为读取所述程序代码并按照所述程序代码的指示操作,所述程序代码包括:模型id代码,被配置为使所述至少一个处理器根据输入中的多个量化参数生成多个模型id;第一选择代码,被配置为使所述至少一个处理器选择第一组掩模,所述第一组掩模中的每个掩模与所述生成的多个模型id中的一个相对应;执行代码,被配置为使所述至少一个处理器对第一组神经网络层的多个第一权重和所述选择的第一组掩模执行卷积,以获得第一掩蔽的权重;第二选择代码,被配置为使所述至少一个处理器根据所述多个量化参数从选择第二组神经网络层和多个第二权重。所述程序代码进一步包括生成代码,被配置为使所述至少一个处理器根据所述多个量化参数生成量化参数值;以及计算代码,被配置为使所述至少一个处理器根据所述第一掩蔽的权重和所述多个第二权重,使用所述生成的量化参数值来计算推理输出。
10.根据实施例,一种非易失性计算机可读介质,用于存储指令,当所述指令由用于使用多多质量环路滤波器处理视频的至少一个处理器执行时,所述多质量环路滤波器使用多任务神经网络,使所述至少一个处理器:根据输入中的多个量化参数生成多个模型id;选择第一组掩模,所述第一组掩模中的每个掩模与所述生成的多个模型id中的一个相对应;对第一组神经网络层的多个第一权重和所述选择的第一组掩模执行卷积,以获得第一掩蔽的权重;根据所述多个量化参数从所述神经网络选择第二组层和多个第二权重。当所述指令由所述至少一个处理器执行时,进一步使所述至少一个处理器根据所述多个量化参数生成量化参数值;以及根据所述第一掩蔽的权重和所述多个第二权重,使用所述生成的量化参数值来计算推理输出。
附图说明
11.图1是根据实施例的可以实现本文所述的方法、装置和系统的环境的示意图。
12.图2是图1的一个或多个设备的示例组件的框图。
13.图3是根据实施例的多任务神经网络(mtnn)的推理的框图,用于在测试阶段使用微结构化掩模进行视频压缩的多质量环路滤波器(mqlf)方法。
14.图4是根据实施例的用于在训练阶段通过微结构化掩模进行多任务神经网络视频压缩的训练装置的框图。
15.图5是根据实施例的图4中的训练装置的权重填充模块在训练阶段的详细框图。
16.图6是根据实施例的图4中的训练装置的微结构化修剪模块的详细框图。
17.图7是根据实施例的使用mqlf进行视频压缩的方法的流程图,所述mqlf使用具有共享多任务层、任务特定层和微结构化掩模的mtnn。
18.图8是根据实施例的使用mqlf进行视频压缩的装置的框图,所述mqlf使用具有共享多任务层、任务特定层和微结构化掩模的mtnn。
具体实施方式
19.本公开描述了一种使用多质量环路滤波器(mqlf)机制来处理已解码视频的方法和装置,以减少一种或多种类型的伪像(例如噪声、模糊及块状效应)。提出了一种基于微结构化参数共享的多任务神经网络(mtnn),其中使用一个mtnn模型实例来适应多个量化参数(qp)值,为每个qp值分配一个微结构化掩模(msm),以明确指导用于该qp值的mtnn的推理计算。
20.图1是根据实施例的可以实现本文所述的方法、装置和系统的环境100的示意图。
21.如图1所示,环境100可以包括用户设备110、平台120和网络130。环境100的设备可以通过有线连接、无线连接或有线和无线连接的组合进行互连。
22.用户设备110包括一个或多个设备,该一个或多个设备能够接收、生成、存储、处理和/或提供与平台120相关的信息。例如,用户设备110可以包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,智能眼镜或智能手表)或相似设备。在一些实施方式中,用户设备110可以从平台120接收信息和/或向平台120发送信息。
23.平台120包括一个或多个设备,如本文中其它地方所描述的。在一些实施方式中,平台120可以包括云服务器或云服务器组。在一些实施方式中,平台120可以被设计成模块化的,使得软件组件可以被换入或换出。这样,可以容易地和/或快速地重新配置平台120以用于不同的用途。
24.在一些实施方式中,如图所示,平台120可以被托管(hosted)在云计算环境122中。值得注意的是,虽然本文所述的实施方式将平台120描述为托管在云计算环境122中,但是在一些实施方式中,平台120可以不是基于云的(即,可以在云计算环境外部实现)或者可以是部分基于云的。
25.云计算环境122包括托管平台120的环境。云计算环境122可以提供计算、软件、数据访问、存储等服务,这些服务不需要终端用户(例如,用户设备110)了解托管平台120的系统和/或设备的物理位置和配置。如图所示,云计算环境122可以包括一组计算资源124(统称为“计算资源(computing resources)124”并分别称为“计算资源(computing resource)124”)。
26.计算资源124包括一个或多个个人计算机、工作站计算机、服务器设备或其它类型的计算和/或通信设备。在一些实施方式中,计算资源124可以托管平台120。云资源可以包括在计算资源124中执行的计算实例、在计算资源124中提供的存储设备、由计算资源124提供的数据传输设备等。在一些实施方式中,计算资源124可以通过有线连接、无线连接或有线和无线连接的组合与其它计算资源124通信。
27.如图1进一步所示,计算资源124包括一组云资源,例如一个或多个应用程序
(“app”)124-1、一个或多个虚拟机(“vm”)124-2、虚拟化存储(“vs”)124-3、一个或多个管理程序(“hyp”)124-4等。
28.应用程序124-1包括一个或多个软件应用程序,其可以提供给用户设备110和/或平台120或由用户设备110和/或平台120访问。应用程序124-1可以消除在用户设备110上安装和执行软件应用程序的需要。例如,应用程序124-1可以包括与平台120相关的软件和/或能够通过云计算环境122提供的任何其它软件。在一些实施方式中,一个应用程序124-1可以通过虚拟机124-2向/从一个或多个其它应用程序124-1发送/接收信息。
29.虚拟机124-2包括机器(例如,计算机)的软件实现,该机器执行程序,类似于物理机。虚拟机124-2可以是系统虚拟机,也可以是进程虚拟机,这取决于虚拟机124-2对任何真实机的使用和对应程度。系统虚拟机可以提供完整系统平台,其支持完整操作系统(“os”)的执行。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实施方式中,虚拟机124-2可以代表用户(例如,用户设备110)执行,并且可以管理云计算环境122的基础架构,例如数据管理、同步或长期数据传输。
30.虚拟化存储124-3包括一个或多个存储系统和/或一个或多个设备,该一个或多个设备在计算资源124的存储系统或设备内使用虚拟化技术。在一些实施方式中,在存储系统的上下文内,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以指逻辑存储从物理存储的抽象(或分离),以便可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员灵活地管理终端用户的存储。文件虚拟化可以消除在文件级别存取的数据与物理存储文件的位置之间的依赖性。这可以优化存储使用、服务器整合和/或无中断文件迁移的性能。
31.管理程序(hypervisor)124-4可以提供硬件虚拟化技术,其允许多个操作系统(例如,“客户操作系统”)在诸如计算资源124的主计算机上同时执行。管理程序124-4可以向客户操作系统提供虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。
32.网络130包括一个或多个有线和/或无线网络。例如,网络130可以包括蜂窝网络(例如,第五代(5g)网络、长期演进(lte)网络、第三代(3g)网络、码分多址(cdma)网络等)、公共陆地移动网络(plmn)、局域网(lan)、广域网(wan)、城域网(man)、电话网络(例如,公共交换电话网络(pstn))、专用网络、自组织网络、内联网、互联网、基于光纤的网络等,和/或这些或其它类型的网络的组合。
33.图1所示的设备和网络的数量和排列被作为示例来提供。实际上,与图1所示的设备和/或网络相比,可以有更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或排列不同的设备和/或网络。此外,图1所示的两个或更多个设备可以在单个设备内实现,或者图1所示的单个设备可以实现为多个分布式设备。另外或可替代地,环境100的一组设备(例如,一个或多个设备)可以执行被描述为由环境100的另一组设备执行的一个或多个功能。
34.图2是图1的一个或多个设备的示例组件的框图。
35.设备200可以对应于用户设备110和/或平台120。如图2所示,设备200可以包括总线210、处理器220、存储器230、存储组件240、输入组件250、输出组件260和通信接口270。
36.总线210包括允许设备200的组件之间进行通信的组件。处理器220以硬件、固件或
硬件和软件的组合来实现。处理器220是中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)、微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)或另一类型的处理组件。在一些实施方式中,处理器220包括一个或多个能够被编程以执行功能的处理器。存储器230包括随机存取存储器(ram)、只读存储器(rom)和/或另一类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器),其存储供处理器220使用的信息和/或指令。
37.存储组件240存储与设备200的操作和使用相关的信息和/或软件。例如,存储组件240可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、光盘(cd)、数字通用盘(dvd)、软盘、盒式磁带、磁带和/或另一类型的非易失性计算机可读介质,以及相应的驱动器。
38.输入组件250包括允许设备200例如通过用户输入接收信息的组件,例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风。另外或可替代地,输入组件250可以包括用于感测信息的传感器(例如,全球定位系统(gps)组件、加速计、陀螺仪和/或致动器)。输出组件260包括提供来自设备200的输出信息的组件,例如,显示器、扬声器和/或一个或多个发光二极管(led)。
39.通信接口270包括类似收发器的组件(例如,收发器和/或单独的接收器和发送器),该组件使设备200能够例如通过有线连接、无线连接或有线和无线连接的组合与其它设备通信。通信接口270可以允许设备200从另一设备接收信息和/或向另一设备提供信息。例如,通信接口270可以包括以太网接口、光接口、同轴接口、红外接口、射频(rf)接口、通用串行总线(usb)接口、wi-fi接口、蜂窝网络接口等。
40.设备200可以执行本文中所描述的一个或多个过程。设备200可以响应于处理器220执行由非易失性计算机可读介质(例如存储器230和/或存储组件240)存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非易失性存储器设备。存储器设备包括单个物理存储设备内的存储空间或分布在多个物理存储设备上的存储空间。
41.软件指令可以通过通信接口270从另一计算机可读介质或从另一设备读入存储器230和/或存储组件240。当被执行时,存储在存储器230和/或存储组件240中的软件指令可以使处理器220执行本文中所描述的一个或多个过程。另外或可替代地,可以使用硬连线电路来代替软件指令或与软件指令结合以执行本文中所描述的一个或多个过程。因此,本文中所描述的实施方式不限于硬件电路和软件的任何特定组合。
42.图2所示的组件的数量和排列被作为示例来提供。实际上,与图2所示的组件相比,设备200可能包括更多的组件、更少的组件、不同的组件或排列不同的组件。另外或可替代地,设备200的一组组件(例如,一个或多个组件)可以执行被描述为由设备200的另一组组件执行的一个或多个功能。
43.现在将详细描述使用基于微结构化参数共享的掩蔽多任务神经网络进行多质量环路滤波器视频压缩的方法和装置。
44.典型的视频压缩框架可以描述如下。假设输入视频x包括多个图像输入x1,

,x
t
,其中每个输入xi可以是一个完整帧或图像帧中的微块,例如ctu。在第一运动估计步骤中,输入可以进一步划分成多个空间块,每个块反复地划分成更小的块,并且为每个块计算当前输入x
t
与一组先前重建输入之间的一组运动矢量m
t
。应注意,下标t表示当前第t个
编码周期,这可能与图像输入的时间戳不匹配。此外,先前重建输入包含来自多个先前编码周期的重建输入。换句话说,先前重建输入中的输入之间的时间差可以任意变化。然后,在第二运动补偿步骤中,通过基于运动矢量m
t
、和原始输入x
t
与预测输入之间的残差r
t
,复制先前重建输入的对应像素,获得预测输入在第三步骤中,对残差r
t
进行量化(通常在像离散余弦变换(dct)这样的变换之后,其中对r
t
的dct系数进行量化以获得更好的量化性能)。量化步骤产生量化图像通过熵编码将运动矢量m
t
和量化图像编码为比特流,将比特流发送给解码器。然后,在解码器侧,对量化图像进行反量化(通常通过逆变换,如具有反量化系数的离散余弦逆变换(idct)),以获得恢复的残差然后,将恢复的残差加回到预测输入以获得重建输入
45.进一步使用附加组件来提高重建输入的视觉质量。可以选择以下增强模块中的一个或多个来处理重建输入包括:去块滤波器(df)、样本自适应偏移(sao)、自适应环路滤波器(alf)、跨分量自适应环路滤波器(ccalf)等。所选模块的处理顺序不限于此,可以更改。
46.本公开提出了一种mqlf,用于增强视频编解码系统的重建输入的视觉质量。目标是减少重建输入中的噪声、模糊、块状效应等伪像,从而产生高质量图像具体地,mtnn用于计算高质量图像其中,一个模型实例可以适应多个qp设置。二进制msm用于每个qp设置,以指导用于该qp设置的mtnn的推理计算。
47.所提出的mqlf可以与先前提到的附加组件(即,df、sao、alf、ccalf等)中的一个或多个结合使用,以提高重建输入的视觉质量。例如,重建输入可以首先经过df,然后经过mqlf、再然后经过sao和alf。这些组件的使用顺序可以任意改变。在一个实施例中,所提出的方法还可以作为所有其它组件的替代单独使用,以增强重建输入的视觉质量。
48.mqlf可以结合上述附加组件(例如,df、sao、alf、ccalf等)中的一个或多个在帧、图块、切片、ctu和/或cu级别上运行。换句话说,当被馈送到mqlf中时,重建输入可以是一个完整帧。当被馈送到mqlf中时,重建输入也可以是一个块,例如图块、切片、ctu或cu。对于计算重建输入的特定视频压缩方法(例如,hevc、vvc)没有限制。
49.图3是根据实施例的多质量环路滤波器(mqlf)装置300的多任务神经网络(mtnn)的推理的框图,用于在测试阶段使用微结构化掩模进行视频压缩。
50.如图3所示,测试装置300包括生成模型id模块310、mtnn推理模块320和输入转换模块330。
51.给定一个大小为(h,w,c)的输入其中,h、w、c分别是信道的高度、宽度和数量,第k个信道的信号用表示,mqlf的推理工作流的测试阶段可以描述如下。
52.mqlf使用mtnn,该mtnn被分为两部分:一组共享多任务层(smtl)和一组任务特定层(tsl)。smtl的模型参数在不同的qp设置之间共享(即,对于不同的qp值相同)。tsl的模型参数分别用于每个qp设置。第k个信道的qp值用表示。假设qp设置的n种可能组合按
顺序(例如,按输入的重建质量从低到高的顺序)排序。每个qp设置对应一个由模型id id(1≤id≤n)索引的单个任务,对于该任务,在传统方法中,将使用一个单独的基于神经网络的环路滤波器(nnlf)模型实例。表示smtl的一组权重参数,其中每个是第j层的权重参数。表示与模型id id的qp设置相对应的一组二进制掩模,其中每个二进制掩模具有与第j层的权重参数相同的形状。二进制掩模的每个条目为1或0,表示权重参数中的相应权重条目是否参与模型id id的qp设置的推理计算。表示与模型id id的qp设置相对应的tsl的一组权重参数,其中是第j层的权重参数。本公开对层的类型(例如,卷积、归一化、全连接等)以及smtl和tsl中层的位置没有任何限制。例如,可以交织stml和tsl的层以形成mtnn。整个stml也可以放置在tsl之前或之后,以形成mtnn。在一些实施例中,n个qp设置的总数可以分组为子群,其中qp设置的每个子群共享相同的mtnn模型实例。
53.权重参数或中的每一个是大小为(c1,k1,k2,k3,c2)的通用5维(5d)张量。相应层的输入是大小为(h1,w1,d1,c1)的4维(4d)张量a,输出是大小为(h2,w2,d2,c2)的4d张量b。大小c1、k1、k2、k3、c2、h1、w1、d1、h2、w2、d2是大于或等于1的整数。当大小c1、k1、k2、k3、c2、h1、w1、d1、h2、w2、d2中的任何一个等于1时,相应的张量减小到较低的维数。每个张量中的每一项是一个浮点数。参数h1、w1和d1是输入a的高度、权重和深度。类似地,参数h2、w2和d2是输出b的高度、权重和深度。参数c1是输入a中的输入信道的数量。类似地,参数c2是输出b中的输出信道的数量。参数k1、k2和k3是分别对应高度、权重和深度轴的卷积核的大小。根据输入a、权重参数或以及掩模(如果可用),通过卷积运算

计算输出b。应注意,对于权重参数掩模也可以与之相关联,并且掩模的所有条目都设置为1。从这个角度来看,将模型id id作为单个任务来为每个单独的qp设置训练单独模型实例的传统方法可以视为本公开中所提出方法的特例,其中smtl没有层或掩模,而tsl具有nn的所有层。另一方面,以前使用qp映射作为输入的方法为所有qp设置训练一个模型实例。这也可以视为本公开中所提出方法的特例,其中tsl没有层,而smtl包括nn的所有层,并且用于所有qp设置的掩模的条目设置为1。
54.输出b可以通过将输入a与掩蔽的权重进行卷积来获得:
[0055][0056]
其中,
·
是逐元素(element-wise)乘法,n个qp设置共享一个mtnn模型实例。
[0057]
参考图3,给定上述学习的权重参数和掩模以及不同信道的输入和相关联的目标qp值,生成模型id模块310根据当前qp设置生成模型id id,1≤id≤n。然后,选择相应的掩模以根据等式(1)生成smtl的掩蔽的权重参数并使用权重
参数来选择用于模型id id的qp设置的tsl的相应子网。然后,mtnn推理模块320使用用于smtl推理的掩蔽的权重参数和用于tsl推理的权重参数计算推理输出该推理输出是增强的高质量结果。mtnn推理模块320的输入包括输入转换模块330生成的输入和附加qp输入qp输入基于不同信道的qp值例如,可以根据每个信道的qp值为其生成qp映射,并且可以将不同信道的所有qp映射与输入的每个对应信道串联。串联输入可以用作mtnn的输入。在一些实施例中,可以省略qp输入,因此也可以省略整个输入转换模块330。在这种情况下,只有输入用作mtnn的输入。对于qp值如何转换以及如何与作为mtnn的输入的输入组合没有任何限制。
[0058]
每个权重参数的形状都可以改变,对应于重塑输入和重塑的卷积以获得相同的输出。类似地,每个掩模的形状也可以改变。每个权重参数的形状可以采用两种配置。首先,将5d权重张量重塑为大小为(c
′1,c
′2,k)的3d张量,其中,c
′1×c′2×
k=c1×
c2×
k1×
k2×
k3。例如,配置为c
′1=c1、c
′2=c2,k=k1×
k2×
k3。其次,将5d权重张量重塑为大小为(c
′1,c
′2)的2d矩阵,其中,c
′1×c′2=c1×
c2×
k1×
k2×
k3。例如,一些配置包括c
′1=c1、c
′2=c2×
k1×
k2×
k3,或c
′2=c2、c
′1=c1×
k1×
k2×
k3。
[0059]
本文支持其它重塑的1d、2d、3d、4d或5d形状。在实施例中,2d和3d配置在以下描述中用于说明目的。
[0060]
在实施例中,逐块微结构用于3d重塑的权重张量或2d重塑的权重矩阵中的每一层的掩模(即,掩蔽的权重参数)。具体地,对于重塑的3d权重张量,块被划分成大小为(g
′1,g
′2,gk)的块。对于重塑的2d权重矩阵,块被划分成大小为(g
′1,g
′2)的块。当g
′1、g
′2、gk中的任何一个采用大小1时,相应的块减小到较低的维数。掩模的块中的所有项具有相同的二进制值,1或0。也就是说,以逐块微结构化方式掩蔽权重参数。
[0061]
现在将描述实施例中的nn模型的训练过程。图4示出了所提出的多阶段训练框架的总体工作流。本实施例的该训练阶段的目标是学习mtnn模型实例,其具有权重参数和以及一组微结构化掩模每个掩模和权重参数针对模型id id的每个qp设置。可以使用渐进的多阶段训练框架来实现这一目标。
[0062]
图4是根据实施例的训练装置400的框图,用于在训练阶段通过微结构化掩模进行多任务神经网络视频压缩。
[0063]
如图4所示,训练装置400包括权重填充模块410和微结构化修剪模块420。
[0064]
假设当前任务是训练针对模型id idi的qp设置的掩模,当前模型实例具有权重和相应的掩模其中,id
i-1
是qp设置的最后学习的模型id,i是学习周期的索引。此外,对于模型id idi的当前qp设置,使相应tsl具有要学习的权重参数换句话说,目标是获得掩模和更新的权重参数以及新的权重参数
[0065]
首先,权重填充模块410固定或设置由掩模掩蔽的权重参数例如,权重参数对应的中的掩模条目为1。然后,进行学习过程,以填充smtl的中剩余的未固定权重和tsl的权重这将生成一组更新的权重参数和
[0066]
然后,微结构化修剪模块420基于该组更新的权重参数和进行微结构化修剪,以获得修剪的模型实例和掩模进行微结构化修剪,以获得修剪的模型实例和掩模
[0067]
图5是根据实施例的图4的权重填充模块410的工作流。
[0068]
如图5所示,权重填充模块410包括mtnn推理模块320、权重固定和填充模块510、计算损失模块520、计算附加损失模块530以及反向传播和权重更新模块540。
[0069]
给定当前权重和对应的掩模中由掩蔽的权重参数在权重固定和填充模块510中被固定。然后,重新初始化中的剩余权重参数。例如,这可以通过将它们设置为一些随机初始值或使用先前学习的全模型(例如具有权重}的第一全模型)的相应权重来完成。这给出了smtl的权重参数tsl的权重参数也被初始化(例如,通过将它们设置为一些随机初始值或使用一些先前学习的全模型(例如为具有模型id idi的当前qp设置训练的单个全模型)的相应权重)。此后,训练输入通过mtnn,以在mtnn推理模块320中使用用于stml推理的权重参数和用于tsl推理的权重参数来计算输出
[0070]
出于训练的目的,每个训练输入具有用于模型id idi的qp设置的对应的真值(ground-truth)例如,训练输入是从真值的压缩版本重建的,该压缩版本是通过使用模型id idi的qp设置的视频压缩方法生成的。训练的总体目标是使真值与估计输出之间的失真最小化。可以在计算损失模块520中计算失真损失以测量该失真,例如真值与估计输出之间的均方误差(mse)或结构相似度指数(ssim)。在一些实施例中,也可以在计算附加损失模块530中计算其它损失,以帮助调整训练过程。例如,可以使用感知损失,其中通过将真值或估计输出作为输入传递到类似vgg的特征提取nn中,可以计算特征映射,并测量由真值和估计输出计算的特征映射之间的差,对该差进行加权并与失真损失组合。此外,可以使用对抗损失,其中鉴别器可以尝试对真值或估计输出是原始输入还是由mtnn生成的输入进行分类。分类损失可以用作对抗损失,可以被加权并与失真损失
组合。反向传播和权重更新模块540计算该组合损失(或者如果不使用其它损失的话则是的梯度,并更新smtl的未固定权重参数和tsl的权重参数在该反向传播和权重更新模块540中可以进行多次迭代(例如,直到达到最大迭代次数或者直到损失收敛)。
[0071]
图6是根据实施例的图4的微结构化修剪模块420的详细工作流。
[0072]
如图6所示,微结构化修剪模块420包括mtnn推理模块320、计算修剪掩模模块610、计算损失模块520、计算附加损失模块530以及反向传播和权重更新模块540。
[0073]
首先,给定来自权重填充模块410的smtl的更新的权重和tsl的权重以及当前掩模计算修剪掩模模块610计算修剪掩模具体地,由掩蔽的更新的权重参数和中剩余的未固定权重参数被固定,并且如上所述,为每个微结构化块b计算修剪损失l
p
(b)(例如,块中的权重的l1或l2范数)。计算修剪掩模模块610根据微结构化块的修剪损失l
p
(b)按升序对微结构化块进行排序,并根据排序后的列表中从上到下对这些块进行修剪(即,通过将修剪后的块中的相应权重设置为0),直到达到停止标准。例如,给定验证数据集s
val
,具有权重参数和的mtnn模型生成失真损失l
val
为:
[0074][0075]
随着越来越多的微块被修剪,该失真损失l
val
逐渐增加。停止标准可以是允许失真损失l
val
增加的可容许百分比阈值。停止标准也可以是要修剪的微结构化块的简单百分比(例如,50%)。可以生成一组二进制修剪掩模其中掩模中的条目为1表示中的对应权重参数被修剪。然后,在反向传播和权重更新模块540中,权重idi)(idii)中在修剪时被掩模掩蔽的附加未固定权重被固定,对中未被或掩蔽的剩余权重进行更新,并通过常规反向传播对权重进行更新,以优化训练数据上的组合损失(或者,如果不使用其他损失则为失真损失可以进行多次迭代,例如直到达到最大迭代次数或直到损失收敛。
[0076]
相应的掩模可以被计算为:
[0077][0078]
也就是说,中未在中被掩蔽的未修剪条目被额外设置为1,作为在中被掩蔽的条目。此外,上述微结构化权重修剪过程输出更新的权重和应注意,上述微结构化修剪过程还可以可选地应用于权重
以进一步减小模型大小和推理计算。也就是说,计算修剪掩模模块610还可以重塑tsl的权重并将其划分成微结构,计算这些微结构的修剪损失,并修剪修剪损失较小的排序靠前的微结构。可选地,它还可以选择这样做,以平衡mtnn重建质量、存储和计算。
[0079]
最后,最后更新的权重参数是用于mqlf的学习的mtnn模型实例的smtl的最终输出权重
[0080]
图7是根据实施例的使用mqlf进行视频压缩的方法700的流程图,所述mqlf使用具有共享多任务层、任务特定层和微结构化掩模的mtnn。
[0081]
在一些实施方式中,图7的一个或多个过程框可以由平台120执行。在一些实施方式中,图7的一个或多个过程框可以由与平台120分离或包括平台120的另一设备或一组设备执行,例如用户设备110。
[0082]
如图7中所示,在操作710中,方法700包括根据重建输入中的多个量化参数生成多个模型id。
[0083]
在操作720中,方法700包括选择第一组掩模,所述第一组掩模中的每个掩模与所述生成的多个模型id中的一个相对应。
[0084]
在操作730中,方法700包括对第一组神经网络层的多个第一权重和所述选择的第一组掩模执行卷积,以获得第一掩蔽的权重。
[0085]
在操作740中,方法700包括根据所述多个量化参数选择第二组神经网络层和多个第二权重。
[0086]
在操作750中,方法700包括根据所述多个量化参数生成量化参数值。
[0087]
在操作760中,方法700包括根据所述第一掩蔽的权重和所述多个第二权重,使用所述生成的量化参数值来计算推理输出。
[0088]
虽然图7示出了该方法的示例框,但是在一些实施方式中,该方法可以包括比图7所描述的更多的框、更少的框、不同的框或不同排列的框。另外或可替代地,该方法的两个或更多个框可以并行执行。
[0089]
图8是根据实施例的使用mqlf进行视频压缩的装置800的框图,所述mqlf使用具有共享多任务层、任务特定层和微结构化掩模的mtnn。
[0090]
如图8中所示,装置800包括模型id代码810、第一选择代码820、执行代码830、第二选择代码840、生成代码850和计算代码860。
[0091]
模型id代码810被配置为使至少一个处理器根据输入中的多个量化参数生成多个模型id。
[0092]
第一选择代码820被配置为使至少一个处理器选择第一组掩模,所述第一组掩模中的每个掩模与所述生成的多个模型id中的一个相对应。
[0093]
执行代码830被配置为使至少一个处理器对第一组神经网络层的多个第一权重和所述选择的第一组掩模执行卷积,以获得第一掩蔽的权重。
[0094]
第二选择代码840被配置为使至少一个处理器根据所述多个量化参数选择第二组神经网络层和多个第二权重。
[0095]
生成代码850被配置为使至少一个处理器根据所述多个量化参数生成量化参数值;以及
[0096]
计算代码860被配置为使至少一个处理器根据所述第一掩蔽的权重和所述多个第二权重,使用所述生成的量化参数值来计算推理输出。
[0097]
虽然图8示出了该装置的示例框,但是在一些实施方式中,该装置可以包括比图8所描述的更多的框、更少的框、不同的框或不同排列的框。另外或可替代地,该装置的两个或更多个框可以组合。
[0098]
关于图7和图8,神经网络可以被分割成第一组神经网络层和第二组神经网络层。第一组神经网络层的模型参数是在不同的量化参数之间共享的共享层,这些量化参数对于共享层中的每一个具有多个第一权重中的对应一个权重。第二组神经网络层的模型参数是对于量化参数中的每一个都不同的任务特定层,这些量化参数对于任务特定层中的每一个具有多个第二权重中的对应一个权重。
[0099]
神经网络可以通过以下方式来训练:更新多个第一权重中未被第一组掩模分别掩蔽的一个或多个权重,以最小化根据输入、推理输出和相应模型id的相应量化参数确定的失真损失。
[0100]
神经网络可以进一步通过以下方式来训练:修剪多个第一权重中的未被第一组掩模分别掩蔽的更新的一个或多个权重,以获得二进制修剪掩模,所述二进制修剪掩模指示多个第一权重中的哪些权重被修剪;以及更新多个第一权重中未被第一组掩模分别掩蔽的至少一个权重和获得的二进制修剪掩模,以最小化失真损失。
[0101]
在图7和图8中,第一组掩模中的掩模条目可以是二进制数0或1,指示是否使用多个第一权重中的相应一个权重来计算相应模型id的量化参数。此外,可以选择与多个第二权重相对应的第二组掩模。
[0102]
在图7和图8中,可以将输入的量化参数分组成子群,其中每个子群共享相同的神经网络模型实例。
[0103]
与传统的环路滤波或基于nn的环路滤波方法相比,这些实施例描述了使用一个mtnn模型实例通过使用多个二进制掩模来适应多个qp设置的压缩。逐块微结构化掩模还保留了单个qp设置的压缩性能,并可以减少推理计算。该方法大大减少了使用多个qp设置进行压缩的部署存储。它还提供了一个灵活且通用的框架,该框架适应各种类型的底层nnlf方法和模型架构、各种形状的微结构化块、不同类型的输入(例如,帧级或块级),以及使用qp作为附加输入或不使用qp作为附加输入的不同输入信道的不同qp值。
[0104]
所提出的方法可以单独使用或以任何顺序组合使用。此外,方法(或实施例)中的每一个可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,该一个或多个处理器执行存储在非易失性计算机可读介质中的程序。
[0105]
前述的公开内容提供了说明和描述,但并不旨在穷举或将实施方式限制为所公开的精确形式。根据上述的公开内容,可以进行修改和变化,或者可以从实施方式的实践中获得修改和变化。
[0106]
如本文所使用的,术语“组件”旨在广泛地解释为硬件、固件或硬件和软件的组合。
[0107]
很明显,本文中所述的系统和/或方法可以以硬件、固件或硬件和软件的组合的不同形式来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码并不限制实施方式。因此,本文描述了系统和/或方法的操作和行为,而没有参考特定的软件代码——应当理解,可以基于本文中的描述对软件和硬件进行设计以实现该系统和/或方法。
[0108]
即使特征的具体组合在权利要求中叙述和/或在说明书中公开,这些组合也不旨在限制可能的实施方式的公开。实际上,这些特征中的许多特征可以以在权利要求中没有具体叙述和/或在说明书中没有公开的方式组合。虽然下面列出的每个从属权利要求可能直接依赖于仅一个权利要求,但是可能的实施方式的公开包括权利要求集中的每个从属权利要求与每个其它权利要求的组合。
[0109]
除非明确说明,否则本文中使用的元件、动作或指令不应被解释为关键的或必需的。此外,如本文中所使用的,冠词“一个(a)”和“一个(an)”旨在包括一个或多个项,并且可以与“一个或多个(one or more)”互换使用。此外,如本文中所使用的,术语“集”旨在包括一个或多个项(例如,相关项、不相关项、相关项和不相关项的组合等),并且可以与“一个或多个(one or more)”互换使用。在仅意指一个项的情况下,使用术语“一个(one)”或类似的语言。此外,如本文中所使用的,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在为开放式术语。此外,短语“基于”旨在表示“至少部分地基于”,除非另有明确说明。
再多了解一些

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

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

相关文献