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

用于图像处理的方法和设备与流程

2022-03-19 12:32:52 来源:中国专利 TAG:

用于图像处理的方法和设备
1.本技术要求于2020年9月2日在韩国知识产权局提交的第10-2020-0111842号韩国专利申请的权益,该韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
2.下面的描述涉及具有图像处理的方法和设备。


背景技术:

3.通常,cnn具有识别器的结构,该识别器对多个概念的特征进行组合,同时与输入特征图相比减小输出特征图的尺寸。此外,在cnn的一个或多个层之后的最终输出的形式可以变化。放大输出特征图(例如,已经通过对输入特征图执行卷积而减小的特征图)的运算可以被实现在各种应用领域(例如,图像识别、对象检测或图像分割)中。


技术实现要素:

4.本发明内容被提供为以简化的形式介绍构思的选择,构思在下面的具体实施方式中被进一步描述。本发明内容既不意图确认要求保护的主题的关键特征或必要特征,也不意图在确定要求保护的主题的范围时用作帮助。
5.在一个总体方面,一种用于图像处理的方法,包括:获得待处理的原始图像;以及通过基于原始图像相应地执行神经网络的多个层的运算来执行所述神经网络,针对所述多个层中的至少一个层中的每个层:获得基于通过执行所述层的运算而生成的第一特征图的扩展比而确切地定义的内核,通过在第一特征图与所述内核之间执行转置卷积运算来将第一特征图上采样为第二特征图,以及将第二特征图输出到所述多个层中的所述层的下一层。
6.所述方法还可以包括在原始图像被输入到所述神经网络的多个层之前:获得基于原始图像的扩展比而确切地定义的内核,通过在原始图像与所述内核之间执行转置卷积运算来对原始图像进行上采样,以及将上采样后的原始图像输出到所述神经网络。
7.在一个总体方面,一种用于图像处理的设备,包括:一个或多个处理器,被配置为:获得待处理的原始图像;以及通过基于原始图像相应地执行神经网络的多个层的运算来执行所述神经网络,针对所述多个层中的至少一个层中的每个层:获得基于通过执行所述层的运算而生成的第一特征图的扩展比而确切地定义的内核,通过在第一特征图与所述内核之间执行转置卷积运算来将第一特征图上采样为第二特征图,以及将第二特征图输出到所述多个层中的所述层的下一层。
8.在一个总体方面,一种用于图像处理的设备,包括:一个或多个处理器,包括cpu、gpu和神经处理器,其中,神经处理器被配置为:获得待处理的原始图像;以及通过基于原始图像相应地执行神经网络的多个卷积层来实施所述神经网络,针对所述多个卷积层中的至少一个卷积层中的每个卷积层:获得基于由所述卷积层生成的第一特征图的扩展比而确切地定义的内核,通过在第一特征图与所述内核之间执行转置卷积运算来将第一特征图上采
样为第二特征图,以及将第二特征图输出到所述多个卷积层中的所述卷积层的下一卷积层。
9.在一个总体方面,一种图像处理方法包括:获得基于第一特征图的扩展比而确切地定义的内核;通过在第一特征图与所述内核之间执行转置卷积运算来将第一特征图上采样为第二特征图;以及输出第二特征图。
10.输出第二特征图的步骤可以包括将第二特征图输入到被配置为在第二特征图与选择的内核之间执行另一转置卷积运算的神经网络层,所述选择的内核基于第二特征图的扩展比而被确切地定义。
11.所述图像处理方法可以是图像处理装置的方法,图像处理装置包括神经处理单元,神经处理单元在不使用外部信息提供器执行插值的情况下执行第一特征图到第二特征图的上采样。
12.所述内核可以包括根据所述内核的中心像素与邻近中心像素的像素之间的距离而变化的权重。
13.权重可以同中心像素与邻近像素之间的距离成反比。
14.所述内核可以具有比第一特征图大的尺寸。
15.所述内核的尺寸、转置卷积运算的步幅参数和转置卷积运算的填充参数可以基于扩展比被确定。
16.所述内核的尺寸、转置卷积运算的步幅参数和填充参数可以是内核参数,执行转置卷积运算的步骤可以包括:使用根据内核参数被配置的且被输入第一特征图的神经网络层执行转置卷积运算。
17.所述内核的尺寸、转置卷积运算的步幅参数和转置卷积运算的填充参数可以基于插值方案以及扩展比被确定。
18.所述方法还可以包括选择性地执行以下两者之一:获得所述内核并且通过执行转置卷积来进行上采样;以及使用外部信息提供器根据插值方案执行插值以生成第二特征图。
19.第二特征图的像素对齐信息可以被预先确定,所述方法还可以包括基于第二特征图的像素对齐信息确定第一特征图与第二特征图之间是否将存在像素对齐,并且所述方法又可以包括根据确定是否将存在像素对齐的结果而选择性地执行以下两者之一:获得所述内核并且通过执行转置卷积来进行上采样;以及使用外部信息提供器根据插值方案执行插值以生成第二特征图。
20.第一特征图可以包括多个通道,转置卷积运算可以是所述多个通道与所述内核之间的逐深度转置卷积运算。
21.第一特征图可以包括量化的激活值,所述内核可以包括量化的权重。
22.所述内核可以包括用于将第一特征图的第一像素的第一值转换为第二特征图的与第一像素的位置对应的第二像素的第二值的转置卷积内核矩阵,转置卷积内核矩阵经由通过量化来将与第一值相乘的权重转换为参数被获得。
23.扩展比可以被确定为使得第一特征图的尺寸和第二特征图的尺寸满足预定整数比。
24.第一特征图可以是被输入原始图像的神经网络中的先前卷积神经网络层的输出
特征图或者所述神经网络中的先前层中的转置卷积神经网络层的输出的上采样的特征图。
25.在一个总体方面,实施例包括非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储指令,所述指令在被处理器执行时,使得处理器执行在此描述的一个或多个或所有操作(运算)和方法。
26.在一个总体方面,一种图像处理设备包括一个或多个处理器,所述一个或多个处理器被配置为:获得基于第一特征图的扩展比而确切地定义的内核;以及通过在第一特征图与所述内核之间执行转置卷积运算来将第一特征图上采样为第二特征图。
27.所述一个或多个处理器可以被配置为使用被输入第一特征图的神经网络层执行转置卷积运算,所述神经网络层根据所述内核和内核参数被配置。
28.所述内核参数可以包括所述内核的尺寸、转置卷积运算的步幅参数和填充参数。
29.所述一个或多个处理器可以包括神经处理单元,神经处理单元被配置为在不使用外部信息提供器执行插值的情况下执行第一特征图到第二特征图的上采样。
30.所述内核可以包括根据所述内核的中心像素与邻近中心像素的像素之间的距离而变化的权重。
31.权重可以同中心像素与邻近像素之间的距离成反比。
32.所述内核可以具有比第一特征图大的尺寸。
33.所述内核的尺寸、转置卷积运算的步幅参数和转置卷积运算的填充参数可以基于扩展比被确定。
34.所述内核的尺寸、转置卷积运算的步幅参数和填充参数可以是内核参数,所述一个或多个处理器可以被配置为使用根据内核参数被配置的且被输入第一特征图的神经网络层执行转置卷积运算。
35.所述内核的尺寸、转置卷积运算的步幅参数和转置卷积运算的填充参数可以基于插值方案以及扩展比被确定。
36.第二特征图的像素对齐信息可以被预先确定,所述一个或多个处理器还可以被配置为基于第二特征图的像素对齐信息确定第一特征图与第二特征图之间是否将存在像素对齐,并且根据确定是否将存在像素对齐的结果,所述一个或多个处理器可以使用神经网络层执行转置卷积或者可以根据插值方案执行插值以生成第二特征图。
37.第一特征图可以包括多个通道,转置卷积运算可以是所述多个通道与所述内核之间的逐深度转置卷积运算。
38.第一特征图可以包括量化的激活值,所述内核可以包括量化的权重。
39.所述内核可以包括用于将第一特征图的第一像素的第一值转换为第二特征图的与第一像素的位置对应的第二像素的第二值的转置卷积内核矩阵,转置卷积内核矩阵经由通过量化将与第一值相乘的权重转换为参数被获得。
40.扩展比可以被确定为使得第一特征图的尺寸和第二特征图的尺寸满足预定整数比。
41.第一特征图可以是被输入原始图像的神经网络中的先前卷积神经网络层的输出特征图或者所述神经网络中的先前层中的转置卷积神经网络层的输出的上采样的特征图。
42.所述设备还可以包括:硬件加速器,被配置为基于扩展比动态地生成所述内核。
43.所述图像处理设备可以是平视显示器(hud)装置、三维(3d)数字信息显示器
(did)、导航装置、3d移动装置、智能电话、智能电视机(tv)或智能车辆。
44.在一个总体方面,一种设备包括一个或多个处理器,所述一个或多个处理器包括cpu、gpu和神经处理器,其中,神经处理器被配置为:通过相应地执行多个卷积层来实施神经网络;获得基于由所述多个卷积层中的一个卷积层生成的第一特征图的扩展比而确切地定义的内核;通过在第一特征图与所述内核之间执行转置卷积运算来将第一特征图上采样为第二特征图。
45.所述设备还可以包括:硬件加速器,被配置为基于扩展比动态地生成所述内核并将所述内核提供给神经处理器。
46.神经网络可以包括被输入第二特征图的神经网络层。
47.通过下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
48.图1示出了用于放大特征图的插值运算的示例。
49.图2示出了图像处理方法的示例。
50.图3和图4示出了双线性插值运算和转置卷积运算的示例。
51.图5a至图5d示出了使用与第一特征图的通道对应的内核执行转置卷积运算的处理的示例。
52.图6示出了内核的示例。
53.图7示出了将从编码器输出的第一特征图上采样为将要输入到解码器的第二特征图的处理的示例。
54.图8示出了设备生成执行文件以允许图像处理设备将第一特征图上采样为第二特征图的处理的示例。
55.图9示出了图像处理设备的示例。
56.贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可以不按比例绘制,附图中的元件的相对尺寸、比例和描绘可以出于清楚、说明和方便的目的而被夸大。
具体实施方式
57.提供下面的详细描述以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本技术的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作(运算)的顺序仅是示例,并且不限于在此阐述的顺序,而是除了必须以特定次序发生的操作(运算)之外,可以如在理解本技术的公开之后将清楚的那样被改变。此外,为了更清楚和简洁,本领域中已知的特征的描述可以被省略。
58.在此描述的特征可以以不同的形式来实施,并且将不被解释为局限于在此描述的示例。相反,在此描述的示例仅被提供为说明实现在此描述的方法、设备和/或系统的在理解本技术的公开之后将清楚的许多可行方式中的一些可行方式。
59.在下文中,将参照附图详细地描述示例。示例的范围不限于本说明书中提供的描述。示例不被解释为局限于公开,而是应被理解为包括公开的思想和技术范围内的所有改
变、等同物和替代物。
60.在此使用的术语仅是出于描述具体示例的目的,并且将不成为示例的限制。如在此使用的,除非上下文另外清楚地指出,否则单数形式“一”、“一个(种/者)”和“所述/该”也意图包括复数形式。还将理解的是,术语“包括”和/或“包含”当在此被使用时,说明存在所陈述的特征、整体、操作(运算)、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、操作(运算)、元件、组件以及/或者它们的组或组合。在此,对于示例或实施例的术语“可以”的使用(例如,如对于示例或实施例所可以包括或实现什么)意味着至少一个示例或实施例在这样的特征被包括或实现的情况下存在,同时所有的示例不限于此。
61.除非另外定义,否则在此使用的术语(包括技术术语或科学术语)具有与本公开所属领域的普通技术人员在理解本公开之后以及与本公开的理解相一致地通常理解相同的含义。除非在此明确地如此定义,否则术语(诸如在通用字典中定义的术语)将被解释为具有与它们在相关领域和本公开的上下文中的含义一致的含义,并且将不以理想化的或过于形式化的含义来解释。
62.当参照附图描述示例时,同样的参考标号表示同样的构成元件,并且与其相关的重复描述将被省略。此外,在示例实施例的描述中,当认为在理解本技术的公开之后因而已知的结构或功能的详细描述可能导致示例实施例的模糊解释时,这样的描述将被省略。将参照附图详细地描述示例,在附图中,同样的参考标号始终表示同样的元件。
63.此外,术语“第一”、“第二”、“a”、“b”、“(a)”、“(b)”等可以在此用于描述根据示例的组件。这些术语中的每个术语不用于限定对应的组件的本质、次序或顺序,而是仅用于将对应的组件与其他一个或多个组件区分开。应注意的是,如果在说明书中描述了一个组件“连接”、“结合”或“接合”到另一组件,则尽管第一组件可以“直接”连接、“直接”结合或“直接”接合到第二组件,但第三组件可以“连接”、“结合”或“接合”在第一组件与第二组件之间。
64.除非另外描述,否则一个示例中的组件、特征或其他方面以及所做出或给出的对应描述可以适用于、被应用于或被包括于另一示例,因此,解释该组件、特征或其他方面的重复的详细描述可以被省略。
65.图1示出了用于放大特征图的插值运算的示例。图1示出了作为插值运算的示例的双线性插值(bi)运算的构思。
66.作为非限制性示例,卷积神经网络(cnn或convnet)可以用在深度学习中,深度学习是一种类型的机器学习,通过该机器学习,神经网络模型被训练为或已经学会对例如作为非限制性示例的图像、视频、文本或声音进行直接过滤或分类。cnn可以使用卷积运算,并且可以对找到例如用于从图像识别对象或脸部或场景的模式是有用的。
67.在一个示例中,cnn可以通过过滤器(filter)以例如规律间隔遍历输入图像的数据或像素来执行卷积运算以提取图像的特征,并且可以基于卷积运算的结果生成特征图(feature map)或激活图(activation map)。例如,过滤器还可以被称为内核,并且包括用于从图像提取特征的公共参数或权重参数。过滤器可以被称为下面将描述的“内核”。当过滤器被应用于输入图像时,过滤器以其进行移动或遍历输入图像的数据或像素的示例规律间隔可以被称为“步幅(stride)”。例如,当这样的遍历的步幅为“2”时,卷积运算可以通过以每两个信息步伐(steps of information)(或者,每两个信息单元)将过滤器应用于输入
图像的数据或像素而被执行,这可以被表述为“步幅参数=2”。
68.例如,在cnn示例的情况下,cnn的一个或多个层中的每个层的输出可以被分别称为“特征图”。特征图还可以表示通过卷积运算对原始图像的信息进行过滤或压缩的结果。cnn的这样的输出或cnn的各个层的这样的输出可以以例如作为非限制性示例的向量、矩阵或体(volume)的形式被表示。这样的输出还可以表示作为通过将激活函数应用于卷积的结果而获得的结果的激活图。换言之,在cnn中执行卷积运算的卷积层的各个最终输出结果还可以被称为激活图。
69.例如,来自cnn的层的输出或cnn的最终输出可能依赖于例如应用的过滤器或内核的不同尺寸、那些应用的不同步幅、填充是否已经被应用和/或可在cnn中执行的最大池化的不同尺寸。在卷积层中,生成的特征图的尺寸可能由于过滤器或内核尺寸及对应的步幅而小于输入数据的尺寸。
70.术语“填充”可以被解释为利用与指定的像素的数量(例如,2)相同数量的预定值对数据的外部进行填补或添加。例如,当填充被设置为“2”时,具有32
×
32的原始尺寸的数据的上侧外部、下侧外部、左侧外部和右侧外部可以利用预定值(例如,“0”)被填补或添加两个像素。因此,当填充被设置为“2”时,可被输入到示例卷积层的最终数据可以具有36
×
36的尺寸。该示例可以被表述为“填充参数=2”。如这里所示并且如上所述,卷积层的输出数据的尺寸也可以通过填充被调整。
71.在下面的描述中,术语“尺寸”可以对应于以像素为单位的尺寸,并且除非另外特别提及,否则术语“尺寸”可以被解释为以像素为单位的尺寸。
72.例如,当填充没有针对输入数据被使用时,每当相应的输入数据穿过卷积层,生成的特征数据的空间尺寸可相较于输入数据的空间尺寸而减小,因此,数据的边缘的信息可能消失。填充可以用于防止数据的边缘的信息消失,或者用于将卷积层的输出的空间尺寸设置为等于输入数据的空间尺寸。
73.例如,当信息通过穿过一个或多个卷积层而被减小、过滤或压缩时(例如,当图像分割使用cnn被执行时),插值运算可以用于对减小、过滤或压缩的信息进行放大。例如,插值运算可以被解释为这样的运算:通过分析存在的邻近像素(例如,由示例卷积层输出的第一尺寸的图像或特征图中的相邻像素,该相邻像素可在插值的后续执行中被单独地布置在较大的第二尺寸的图像或特征图中,这可以然后对孔像素(hole pixel)(即,已经布置在较大的第二尺寸的图像或特征图中的该邻近像素之间的各个新生成的像素)的像素值进行插值)来生成新像素值。
74.作为插值运算的示例,双线性插值运算可以是这样的运算:将孔像素的值计算为布置在较大的第二尺寸的图像或特征图中的最靠近孔像素的邻近像素的值的几何平均值。
75.例如,(x,y)处的目标(“孔”)像素t的像素值可以通过以该目标像素t处的示例四个邻近像素a、b、c和d的各个像素值的基于距离的影响的几何平均值为基础而在图1的矩形中进行插值被确定。
76.例如,如下面的等式1所示,靠近目标像素t的邻近像素a、b、c和d的值(即,f(x1,y1)、f(x1,y2)、f(x2,y2)和f(x2,y1))可以均被乘以同目标像素t与邻近像素a、b、c和d中的相应的邻近像素之间的距离成反比的相应的权重,例如,目标像素t的值f(x,y)为各个乘法的乘积的求和结果。因此,目标像素t的插值值f(x,y)可以被确定或近似地确定。
77.等式1:
[0078][0079]
例如,当图1的其中可以存在目标像素t的矩形的最大空间的面积为“(x
2-x1)
×
(y
2-y1)”时,与该面积中的除了基于目标像素t与邻近像素a、b、c和d中的相应的一个邻近像素之间的距离而被占据的空间之外的空间对应的几何平均值可以被分配为同目标像素t与邻近像素a、b、c和d中的相应的一个邻近像素之间的距离对应的权重。换言之,同目标像素t与邻近像素a、b、c和d中的相应的一个邻近像素之间的距离对应的权重可被确定为对应于该面积中的基于目标像素t与距所述相应的一个邻近像素的距离最远的邻近像素之间的距离而被占据的空间。例如,同目标像素t与邻近像素a之间的距离对应的权重可被确定为对应于该面积中的基于目标像素t与距邻近像素a的距离最远的邻近像素c之间的距离而被占据的空间。随着每个目标像素t与邻近像素a、b、c和d中的一个或多个之间的各个距离减小,将要针对一个或多个邻近像素的影响而分配的对应的权重可以增大。同样地,随着每个目标像素t与邻近像素a、b、c和d中的一个或多个之间的各个距离增大,将要针对一个或多个邻近像素的影响而分配的对应的权重可以减小。通过该处理,所有的目标(或“孔”)像素的各个像素值可以被确定,因此,插值结果将包括邻近像素a、b、c和d中的每个以及分别确定的目标像素。在图1的示例中,在图1的示出了插值的特征图的最大空间的矩形下方,图1还示出了目标像素t的像素值基于邻近像素a、b、c和d的像素值中的每个的加权或影响的示例(例如,示出了目标像素t的值将最依赖于邻近像素b的值,并且受邻近像素a的值的影响较小,受邻近像素c的值的影响更小,受邻近像素d的值的影响最低)。
[0080]
因为这样的双线性插值运算不通过在cnn的卷积层中执行的卷积或矩阵乘法运算被执行,所以双线性插值运算将无法有效地使用对应的基于专用硬件cnn的处理单元(例如,可被配置为例如执行许多独立的乘积累加(mac)运算的神经处理器(例如,神经处理单元(npu))或其他硬件加速器)被执行。
[0081]
例如,在被指示或分配任务以执行一个或多个卷积运算的基于cnn的处理单元的示例中,当双线性插值运算被执行(例如,以在第一神经网络层的输出特征图被输入到第二神经网络层之前对第一神经网络层的输出特征图进行上采样)时,典型的基于cnn的处理单元必须使用外部信息提供器(ip)(例如,图形处理器(gpu)或中央处理器(cpu))来实现对应的双线性插值运算,因此,由于到外部ip的数据传输,可能发生开销,或者处理速度可能减小。
[0082]
在一个或多个示例中,一个或多个实施例的作为非限制性示例的示例基于cnn的
处理单元或其他硬件加速器可以通过实现第一神经网络层来生成输出特征图,然后将输出特征图提供给所实现的被配置为执行转置卷积运算以生成上采样的输出特征图的神经网络层,上采样的输出特征图然后被输入到第二神经网络层,因此,例如,因为这种上采样不需要使用外部信息提供器(ip)的双线性插值运算,所以对应的cnn的执行可以例如不遭受这样的开销或处理速度的减小。例如,被配置为执行图1的仅具有邻近像素a、b、c和d的示例输出特征图的转置卷积运算的神经网络(或者,神经网络层)可以使用具有权重的内核以及参数(例如,内核的尺寸以及步幅参数和/或填充参数)来实现该神经网络(或者,神经网络层),具有权重的内核以及参数针对输入特征图被确定并且依赖于由该神经网络(或者,神经网络层)输出的期望的上采样的特征图的信息,所述期望的上采样的特征图具有所有目标像素t的所有结果值。
[0083]
图2示出了根据一个或多个实施例的图像处理方法的示例。参照图2,在操作210中,图像处理设备接收第一特征图。例如,第一特征图可以是通过神经网络的先前层中的卷积运算对原始图像的信息进行压缩或过滤而获得的特征图、或者是通过神经网络的先前层中的转置卷积运算而上采样的特征图。在一个示例中,在操作210之前,图像处理设备可获得待处理的原始图像,并且通过基于原始图像相应地执行神经网络的多个层的运算来执行该神经网络。在这种情况下,针对多个层中的至少一个层中的每个层,在操作210中,图像处理设备可接收通过执行该层的运算而生成的第一特征图。神经网络可以是例如cnn,层可以是例如执行卷积运算的卷积层。第一特征图可以包括量化的激活值。例如,当输入图像是彩色图像时,特征图的每个像素可以具有与用于表示自然色的三种颜色(即,红色(r)、绿色(g)和蓝色(b))中的每种对应的值,因此,第一特征图可以包括三个通道,每种颜色一个通道。在另一示例中,当输入图像是黑白图像或灰度图像时以及当特征图仅表示对比度或强度时,第一特征图可以包括单个通道。
[0084]
在操作220中,图像处理设备获得基于在操作210中接收的第一特征图的扩展比(extension ratio)而确切地定义的内核。在扩展比对应于第二特征图的尺寸与第一特征图的尺寸的比率的情况下,扩展比也可以被称为“尺寸比”。扩展比可以被确定为使得第一特征图的尺寸与第二特征图的尺寸之间的尺寸比可以满足预定整数比。
[0085]“基于第一特征图的扩展比而确切地定义内核”可以被解释为:当扩展比被确定或预先确定时,定义、生成或选择与第一特征图的扩展比对应的内核。
[0086]
内核可以包括量化的权重。例如,内核可以包括用于将第一特征图的第一像素的第一值转换为第二特征图的与第一像素的位置对应的第二像素的第二值的转置卷积内核矩阵,转置卷积内核矩阵经由通过量化而将与第一值相乘的权重转换为量化值(例如,小于或等于1的值)被获得。
[0087]
例如,如图5a至图5d的内核610中所示,内核可以包括权重,权重依赖于内核的中心像素与邻近中心像素的像素(例如,所有的剩余像素)之间的各个距离。在该示例中,中心像素可以与位于内核610的中心部分中的像素(例如,内核610的(4,4)处的像素)对应,邻近像素可以与内核610中的除了中心像素之外的像素对应。权重可以同中心像素与邻近像素之间的距离成反比。例如,当中心像素的权重被设置为“1”时并且当中心像素与邻近像素之间的距离增大时(例如,当距离值增大时),对应的邻近像素的权重可以逐渐减小为例如“0.75”、“0.5”或“0.25”。
[0088]
在操作230中,图像处理设备通过在第一特征图与在操作220中获得的内核之间执行转置卷积运算,来将第一特征图上采样为第二特征图。转置卷积运算可以与例如对通过将内核与第一特征图的每个像素的值相乘而计算出的值进行累加的运算对应。内核可以执行转置卷积运算,同时以指定间隔遍历第一特征图。在该示例中,指定间隔可以对应于上述“步幅”。例如,当步幅被设置为“2”时,内核可以执行转置卷积运算,同时在第一特征图中移动两个像素。
[0089]
在操作230中,当第一特征图包括多个通道时,图像处理设备可以通过在内核与多个通道中的每个之间执行逐深度(depth-wise)转置卷积运算或组(group)转置卷积运算,以将第一特征图上采样为第二特征图。下面将参照图3至图5d进一步描述图像处理设备执行转置卷积运算的示例。
[0090]
在操作240中,图像处理设备输出在操作230中获得的第二特征图。例如,图像处理设备可将在操作230中获得的第二特征图输出到神经网络的多个层中的该层的下一层。在一个示例中,在原始图像被输入到神经网络的多个层之前,图像处理设备可在操作220中获得基于原始图像的扩展比而确切地定义的内核,在操作230中通过在原始图像与内核之间执行转置卷积运算来对原始图像进行上采样,并且在操作240中将上采样后的原始图像输出到神经网络。
[0091]
图3和图4示出了双线性插值运算和转置卷积运算的示例。对于图3,尺寸是输入特征图310的尺寸的四倍(4x)的输出特征图330(具体地讲,“(输出特征图330的尺寸-1)/(输入特征图310的尺寸-1)=4”,例如,当输入特征图310的尺寸被表示为1x时,输出特征图330的尺寸被表示为4x)可以通过双线性插值运算(例如,四倍(4x)双线性插值运算)而针对输入特征图310被生成,如下面进一步解释的,输出特征图330还可以通过示例转置卷积运算被实现。在图3的示例中,假设步幅参数是“4”,填充参数是“3”,扩展比是“4”。
[0092]
根据示例步幅“4”,输入特征图310中的与1、2、5、6对应的四个像素311可以如输出特征图330的块331中一样被布置。此外,根据该步幅,输入特征图310中的与2、3、6、7对应的四个像素313可以如输出特征图330的块333中一样被布置,输入特征图310中的与3、4、7、8对应的四个像素315可以如输出特征图330的块335中一样被布置。
[0093]
为了填补输出特征图330的孔像素,除了上述的双线性插值(bi)之外,各种其他插值方案中的任一种可以被实现为填补输出特征图330的孔像素,例如,最邻近插值(nearest-neighbor interpolation)方案、平均值插值(mean value interpolation)方案或双三次插值(bicubic interpolation)方案。
[0094]
在一个示例中,最邻近插值方案可以通过在x轴方向上执行孔像素的值的插值并然后在y轴方向上执行孔像素的值的插值而利用孔像素的值来填补直接邻近该孔像素的孔像素(例如,该孔像素的左像素或右像素)。在一个示例中,平均值插值方案可以使用邻近像素的平均值作为孔像素的值来填补孔像素。在一个示例中,当输入与输出之间的几何信息由于图像的改变(例如,旋转或放大)而改变时,双三次插值方案可以从输入中的相邻像素计算输出的任意位置处的数据,并且利用该数据作为孔像素的值来填补孔像素。
[0095]
尽管使用双线性插值方案来描述填补输出特征图330的孔像素的空间的示例,但双线性插值方案的描述仅为了便于解释被给出,而实施例不限于此。示例包括除了正在使用的双线性插值方案之外的各种插值方案。
[0096]
在几何平均值针对双线性插值的执行而如上所述地被使用的示例中,当输入特征图310的像素和输出特征图330的像素被准确地对齐时(即,当输入特征图310与输出特征图330之间的尺寸比满足预定整数比时),与像素中的每个的值相乘的权重可以被重复。在该示例中,输入特征图310与输出特征图330之间的尺寸比是否满足预定整数比可以基于输入特征图310与输出特征图330之间的尺寸比是否满足例如下面示出的等式2被确定。
[0097]
等式2:
[0098]
输出尺寸={输入尺寸}
×
{扩展比(整数)}-[{扩展比}-1]
[0099]
等式2可以被简化为:
[0100]
输出尺寸=(输入尺寸-1)
×
扩展比 1
[0101]
例如,在图3中,输入特征图310具有“4”的尺寸,扩展比是“4”,输出特征图330具有“13”的尺寸。因此,输入特征图310与输出特征图330之间的尺寸比可以根据等式2的示例而满足“13=4
×
4-[4-1]”。
[0102]
在一个示例中,当输入特征图310与输出特征图330之间的尺寸比满足等式2时,与输入特征图310的像素的值相乘的权重可以被均匀地重复。
[0103]
考虑这种均匀的重复,例如,使用神经网络的转置卷积运算在此被示出为也实现相同的结果,但通过不同的卷积处理并且具有较大的速度和效率。此外,上面的等式2还可以用于考虑输入特征图与输出特征图之间是否存在像素对齐,使得底层的设备选择是执行转置卷积运算还是执行双线性插值,选择是执行转置卷积运算还是执行双线性插值包括:当等式2被满足时选择仅执行转置卷积运算,并且当等式2未被满足时选择仅执行双线性插值运算。在一个示例中,作为非限制性示例的编码器/解码器神经网络系统的解码器级(decoder stage)的所有上采样可以被预先确定为满足等式2,因此,在一个示例中,仅转置卷积运算被执行,而像素的对齐的确定可以不被执行。
[0104]
如上面解释的,因为输入特征图310的像素和输出特征图330的像素被准确地对齐,所以具有通过“扩展比
×
2-1”而获得的内核尺寸和具备扩展比的值的步幅参数和填充参数的逐深度转置卷积层可以代替双线性插值运算被实现。
[0105]
在一个示例中,用于转置卷积运算的内核的权重可以通过例如下面示出的表1中描述的代码被生成。
[0106]
表1:
[0107][0108]
转置卷积运算还可以代替可选的插值方案(例如,最邻近插值运算)被相似地实现。
[0109]
例如,对于最邻近插值方案,当扩展比对应于偶数倍数时,用于生成内核的权重和上述参数的代码可以被改变为如例如下面的表2所示。在该示例中,内核尺寸可以通过“扩展比 1”被获得,步幅参数可以具有扩展比的值,填充参数可以具有通过“扩展比/2”而获得的值。
[0110]
表2:
[0111][0112]
上面的结果还被示出在图4的示例中,在图4的示例中,输入特征图410具有“2”的尺寸,扩展比是“4”,输出特征图430具有“5”的尺寸,并且如等式2中一样满足“5=2
×
4-[4-1]”。因此,尽管示例包括(例如,针对不满足等式2的那些上采样)执行最邻近插值,但转置卷积运算可以代替最邻近插值方案被执行。
[0113]
因此,利用该转置卷积运算,内核的与输入特征图410的每个像素的值相乘的各个权重可以随着到中心像素的距离减小而逐渐减小为“0.75”、“0.5”和“0.25”。因此,像素a对输出特征图430的第一行中的邻近像素a的像素的影响(即,与像素a的值相乘以获得邻近像素的值中的与像素a对应的累加部分的权重)可以逐渐减小为“0.75”、“0.5”和“0.25”。
[0114]
如图4中所示,中心像素的像素值通过对将输入特征图410的每个像素(即,像素a、b、c和d)的值与权重“0.25”相乘的结果进行累加被确定。此外,再次使用像素a作为示例,对于输出特征图430中的超过中心像素并进一步远离输出特征图430的左上角(像素a在输出特征图430的左上角处具有最大的影响)的那些像素,像素a的影响将进一步减小。
[0115]
在一个示例中,内核的尺寸、转置卷积运算的步幅参数和转置卷积运算的填充参
数可以基于扩展比被确定。在另一示例中,当转置卷积运算针对例如等式2未被满足的那些情况而被选择为不被实现时,内核的尺寸、转置卷积运算的步幅参数和转置卷积运算的填充参数可以基于扩展比被确定,并且依赖于哪种示例插值方案被可选地实现(例如,双线性插值(bi)方案、最邻近插值方案、平均值插值方案或双三次插值方案)。
[0116]
例如,当输入特征图包括多个通道时,上述转置卷积运算可以针对每个通道而被独立地执行。因此,图像处理设备可以生成数量与输入特征图的通道的数量相同数量的内核,并且在各个内核与相应的通道之间执行逐深度转置卷积运算或组转置卷积运算。
[0117]
在一个示例中,内核的权重可以使用专用硬件(例如,硬件加速器)被自动生成。例如,图像处理设备可以从专用硬件接收内核或者内核的由上面在表1和表2中描述的代码生成的权重,并且可以使用权重来执行转置卷积运算。
[0118]
图5a至图5d示出了使用与第一特征图600的通道对应的内核610执行转置卷积运算的处理的示例。
[0119]
图5a至图5d示出了经由对通过将同一内核610与第一特征图600的标量相乘所获得的值进行顺序地累加而获得的如在第二特征图620、630、640和650中那样的结果。
[0120]
在图5a至图5d中,第一特征图600可以具有2
×
2的尺寸,第二特征图620至650可以具有5
×
5的尺寸,第一特征图600的扩展比可以是“4”。内核610的尺寸可以是通过公式“扩展比
×
2-1”的结果而获得的“7”,步幅参数和填充参数可以是等于扩展比的“4”。内核610可以包括分配给内核610的中心像素619的权重“1”,分配给在行方向和列方向上邻近中心像素的像素的示例权重“0.75”、“0.5”和“0.25”与到中心像素的距离成反比(即,随着该距离增大,权重减小)。
[0121]
参照图5a,通过将内核610与第一特征图600的像素601的标量值“a”相乘而获得的结果被累加在第二特征图620的像素中。
[0122]
例如,当内核610的中心像素619被允许对应于第二特征图620的块625的最左上方的像素时,通过将像素601的标量值“a”与内核610的基于内核610的中心像素619的右下部611中的值相乘而获得的值可以被累加在第二特征图620的块625中。
[0123]
在该示例中,响应于右下部611遍历像素601,通过将像素601的标量值“a”与内核610的右下部611中的值相乘而获得的结果可以被计算为例如a
×
1、a
×
0.75、a
×
0.5和a
×
0.25,并且可以如第二特征图620的块625中那样从第二特征图620的最左上方的像素被顺序地累加。上面的计算可以被执行,直到整个右下部611遍历像素601。
[0124]
当内核610的左下部613遍历第一特征图600的像素603时,内核610与第一特征图600的像素603之间的运算可以如图5b中所示被执行,注意的是,示例不限于这样的顺序执行。
[0125]
参照图5b,通过将内核610与第一特征图600的像素603的标量值“b”相乘而获得的结果被累加在第二特征图630的像素中。
[0126]
例如,当内核610的中心像素619被允许对应于第二特征图630的块635的最右上方的像素时,通过将像素603的标量值“b”与内核610的基于中心像素619的左下部613中的值相乘而获得的值可以被累加在第二特征图630的块635中。
[0127]
在该示例中,响应于左下部613遍历像素603,通过将像素603的标量值“b”与内核610的左下部613中的值相乘而获得的结果可以被计算为例如b
×
1、b
×
0.75、b
×
0.5和b
×
0.25。计算的结果可以从第二特征图630的最右上方的像素被顺序地累加,因此,通过b
×
1、a
×
0.25 b
×
0.75、a
×
0.5 b
×
0.5和a
×
0.75 b
×
0.25而获得的值可以在第二特征图630的块635的第一行中从最右方的像素被顺序地累加。上面的计算可以被执行,直到整个左下部613遍历像素603。
[0128]
参照图5c,通过将内核610与第一特征图600的像素605的标量值“c”相乘而获得的结果被累加在第二特征图640的像素中。
[0129]
例如,当内核610的中心像素619被允许对应于第二特征图640的块645的最左下方的像素时,通过将像素605的标量值“c”与内核610的基于中心像素619的右上部615中的值相乘而获得的值可以被累加在第二特征图640的块645中。
[0130]
在该示例中,响应于右上部615遍历像素605,通过将像素605的标量值“c”与内核610的右上部615中的值相乘而获得的结果可以被计算为例如c
×
1、c
×
0.75、c
×
0.5和c
×
0.25。计算的结果可以从第二特征图640的最左下方的像素被顺序地累加,因此,通过c
×
1、c
×
0.75、c
×
0.5和c
×
0.25而获得的值可以在第二特征图640的块645的最后的行中从最左方的像素被顺序地累加。上面的计算可以被执行,直到整个右上部615遍历像素605。
[0131]
参照图5d,通过将内核610与第一特征图600的像素607的标量值“d”相乘而获得的结果被累加在第二特征图650的像素中。
[0132]
例如,当内核610的中心像素619被允许对应于第二特征图650的块655的最右下方的像素时,通过将像素607的标量值“d”与内核610的基于中心像素619的左上部617中的值相乘而获得的值可以被累加在第二特征图650的块655中。
[0133]
在该示例中,响应于左上部617遍历像素607,通过将像素607的标量值“d”与内核610的左上部617中的值相乘而获得的结果可以被计算为例如d
×
1、d
×
0.75、d
×
0.5和d
×
0.25。计算的结果可以从第二特征图650的最右下方的像素被顺序地累加,因此,通过d
×
1、c
×
0.25 d
×
0.75、c
×
0.5 d
×
0.5和c
×
0.75 d
×
0.25而获得的值可以在第二特征图650的块655的最后的行中从最右方的像素被顺序地累加。上面的计算可以被执行,直到整个左上部617遍历像素607。
[0134]
如上所述,转置卷积运算可以代替通常必须由另一处理器执行的双线性插值运算被执行,所述另一处理器位于被设计为加速卷积运算或被另外设计为用于矩阵乘法运算的硬件的外部。当转置卷积运算被执行时,输出特征图的值可以通过将内核(例如,内核610)与输入特征图(例如,第一特征图600)的每个像素的标量值相乘并针对输出特征图的每个像素的值进行累加被获得。
[0135]
图6示出了内核710和730的示例。图6示出了用于将第一特征图上采样为第二特征图的包括在示例转置卷积运算中遍历第一特征图的像素的权重的内核710和730。
[0136]
内核的尺寸可以通过“扩展比
×
2-1”被确定。例如,如上面参照图5a至图5d所述,当扩展比是“4”时,内核的尺寸可以是通过“扩展比(“4”)
×
2-1”而获得的“7”,因此,内核710和730可以具有7
×
7的尺寸。
[0137]
包括在内核710和730中的每个中的值(权重)可以包括随着距内核710和730中的每个的中心点的距离增大而减小的加权且归一化的值。例如,当内核710的具有4/4
×
4/4权重的中心像素与邻近像素之间的距离增大时,内核710的值(权重)可以减小为例如4/4
×
3/4、4/4
×
2/4、4/4
×
1/4或者3/4
×
4/4、2/4
×
4/4、1/4
×
4/4。如上所述,内核可以包括同内核
的中心像素与邻近中心像素的像素之间的距离成反比的权重。
[0138]
当所有的通道被假设为具有相同的内核值时,内核710和730中的每个的值可以例如如下面的表3中所示被确定。
[0139]
表3:
[0140][0141]
包括在内核710和730中的每个中的权重可以通过量化被转换为参数,并且被表示为转置卷积内核矩阵。
[0142]
图7示出了将从示例编码器输出的第一特征图上采样为输入到示例解码器的第二特征图的处理的示例。例如,图7示出了编码器801和解码器803中的每个的操作。
[0143]
例如,具有513
×
513的示例尺寸的图像可以被输入到编码器801。在该示例中,通过经由编码器801的卷积层的各个卷积运算,具有513
×
513的尺寸的图像的信息可以以257
×
257的尺寸、129
×
129的尺寸、65
×
65的尺寸和33
×
33的尺寸的相应次序被渐进地(incrementally)过滤、减小或压缩。因此,编码器801可以输出具有33
×
33的尺寸的特征图810。
[0144]
当具有33
×
33的尺寸的特征图810被输入到解码器803时,解码器803可以将具有33
×
33的尺寸的特征图810上采样为图像的原始尺寸的尺寸或者基于示例的另一尺寸。因此,在图7的该示例中,解码器803可以实现用于上述转置卷积运算的第一卷积层,以将具有33
×
33的尺寸的特征图810放大至四倍,从而获得具有129
×
129的尺寸的特征图830,然后,解码器803可以实现用于上述转置卷积运算的第二卷积层,以将具有129
×
129的尺寸的特征图830放大四倍,从而获得具有513
×
513的尺寸的特征图850。这里,尽管用于生成特征图830的上采样和用于生成特征图850的上采样两者也可以通过前述的双线性插值被执行,但如下面所讨论的,因为每个上采样满足等式2,所以转置卷积运算可以替代地被执行。
[0145]
在该示例中,由对原始图像的信息进行过滤、减小或压缩的多个卷积神经网络层或其他神经网络运算的顺序实现而得到的特征图810可以最终具有33
×
33的尺寸。然而,解码器803的神经网络层可以将输入的特征图810上采样为具有129
×
129的尺寸(其中,扩展比可以是“4”)的特征图830。例如,因为“129”可以通过“33
×
4-(4-1)”被获得,所以等式2被满足,因此,解码器803的神经网络层可以实现上述转置卷积运算以将33
×
33的特征图810上采样为129
×
129的特征图,例如,而不是执行通常将需要通过另一处理器在解码器803的外部执行以从输入的特征图810对特征图830进行插值的双线性插值(bi)运算。
[0146]
此外,已经经由在解码器803的神经网络中的先前层中通过转置卷积运算进行上采样而获得的特征图830可以具有129
×
129的尺寸,解码器的附加神经网络层可以通过另一转置卷积运算执行特征图830的上采样,以生成例如将最终被解码器803输出的具有513
×
513的尺寸(其中,扩展比可以是“4”)的特征图850。例如,因为“513”可以通过“129
×
4-(4-1)”被获得,所以等式2被满足,因此,解码器803的附加神经网络层可以实现上述转置卷积运算,以将129
×
129的特征图830上采样为513
×
513的特征图850,例如,而不是执行通常将需要通过另一处理器在解码器803的外部执行的用于从特征图830对特征图850进行插值的双线性插值运算。在一个示例中,解码器803可以通过执行逐深度转置卷积运算来将具有129
×
129的尺寸的特征图830上采样为具有513
×
513的尺寸的特征图850。
[0147]
在一个示例中,图像处理方法可以包括(例如,通过一个或多个卷积运算而在尺寸上被减小的)特征图可以如上面所讨论一样使用cnn被放大的示例。图像处理方法还可以(或可选地)包括将特征图的尺寸从1
×
1增大到33
×
33,并且将33
×
33的特征图复制到存储器。对于将这样的33
×
33的特征图复制到存储器的操作,示例图像处理设备可以使用利用权重“1”填补的33
×
33的内核,并且通过利用33
×
33的内核来实现1
×
1的特征图的逐深度转置卷积运算,图像处理设备可以将33
×
33的特征图存储到存储器。
[0148]
图8示出了设备(例如,作为非限制性示例的包括一个或多个处理器和神经处理单元(npu)或加速器的服务器或其他装置)生成执行文件以允许或实现第一特征图到第二特征图的上采样的处理的示例。在一个示例中,示例服务器可以为例如单独的图像处理设备生成这样的执行文件。可选地,图像处理设备可以生成执行文件。参照图8,在操作910中,设备可以启动对输入特征图的插值运算的执行,以通过对输入特征图进行上采样来生成输出特征图。输入特征图可以对应于上述输入特征图和第一特征图中的任何一个,输出特征图可以对应于上述输出特征图和第二特征图中的任何一个。
[0149]
在操作920中,设备基于输入特征图与输出特征图之间的尺寸比来确定输入特征图和输出特征图的对齐。在操作920中,当输入特征图与输出特征图之间的尺寸比满足上述等式2时,输入特征图的像素和输出特征图的像素可以准确地对齐。
[0150]
例如,在操作930中,设备基于操作920的结果来确定像素是否准确地对齐。当像素在操作930中被确定为准确地对齐时,设备执行操作940。在操作940中,设备可以生成或获得具有权重的内核和神经网络层的内核参数,并且使用被提供输入特征图的神经网络层执行转置卷积运算以将第一特征图上采样为第二特征图。神经网络层可以包括内核参数(例如,内核尺寸、内核的/针对内核的步幅参数以及/或者填充参数)。因此,在一个示例中,上采样的输出特征图可以被生成,而不必使用设备的外部ip来执行传统的双线性插值运算。因此,设备可以基于像素是否被确定为准确地对齐而选择性地执行转置卷积运算和双线性插值运算中的一个。
[0151]
在一个示例中,当像素在操作930中被确定为准确地对齐时,设备可以使用例如逐深度转置卷积层执行上采样,逐深度转置卷积层具有根据等式“扩展比
×
2-1”而获得的内核尺寸以及具备扩展比的值的步幅参数和填充参数。例如,逐深度转置卷积层可以通过设备的npu或其他硬件加速器被执行。
[0152]
例如,设备可以如上面的表1中所示一样生成内核的权重,并且可以生成并实现逐深度转置卷积层以生成上采样的输出特征图。在一个示例中,上采样的输出特征图可以与作为在双线性插值运算针对输入特征图被执行的情况下的结果相同。
[0153]
在另一示例中,在操作950中,当像素在操作930中被确定为未准确地对齐时,设备可以使用设备的外部ip来处理输入特征图。例如,在操作950中,设备可以通过对输入特征
图执行双线性插值运算来将输入特征图上采样为输出特征图。在该示例中,外部ip可以包括例如被执行为通过包括浮点运算的双线性插值运算将输入特征图上采样为输出特征图的gpu和/或cpu。这里,尽管提供了双线性插值被选择性地执行的示例,但可选示例包括在操作950中替代双线性插值而实现的最邻近插值方案、平均值插值方案或双三次插值方案。
[0154]
在操作960中,设备可以获得操作940或操作950中的双线性插值运算的结果。在操作960中,示例服务器可以生成执行文件以允许图像处理设备例如通过合并来将输入特征图上采样为输出特征图,并且可以将执行文件发送到图像处理设备。执行文件可以具有例如包括预定义内核的二进制可执行代码的形式。
[0155]
当执行文件从服务器被接收时,图像处理设备可以包括基于输入特征图与输出特征图之间的尺寸比而确切地定义的内核、内核的权重、步幅参数以及填充参数。
[0156]
在一个示例中,图像处理设备可以被配置为实现神经网络(诸如,相对于图7而讨论的神经网络编码器/解码器系统),并且可以根据神经网络的训练参数并基于第一特征图(例如,由神经网络针对输入或捕获的图像而生成的特征图,或者第一特征图是输入或捕获的图像)的扩展比来控制神经网络的训练目标的正向推断操作(forward inference operation)的实现。因此,在该示例中,图像处理设备(例如,用户终端(诸如,智能电话))可以执行正向推断操作,该正向推断操作包括例如在生成或指示正向推断操作的结果之前在图像处理设备的神经处理单元或加速器中对第一特征图进行上采样。
[0157]
图9示出了图像处理设备1000的示例。参照图9,图像处理设备1000包括通信接口1010和处理器1030。图像处理设备1000还可以包括存储器1050和硬件加速器1070。通信接口1010、处理器1030、存储器1050和硬件加速器1070可以经由通信总线1005彼此连接。
[0158]
通信接口1010可以接收第一特征图。例如,第一特征图可以是经由在神经网络的先前层中通过卷积运算对原始图像的信息进行压缩而获得的特征图,或者在神经网络的先前层中通过转置卷积运算而上采样的特征图,但不限于此。第一特征图可以包括量化的激活值。此外,通信接口1010可以输出经由通过处理器1030对第一特征图进行上采样而获得的第二特征图。
[0159]
处理器1030表示被配置为控制图像处理设备1000的操作(诸如,存储在存储器1050中的应用和其他指令)的多个处理器(诸如,微处理器、cpu、gpu、处理器核、多核处理器、多处理器等)。处理器1030还表示可以获得基于第一特征图的扩展比而确切地定义的内核的另一处理器(诸如,可以被配置为用于使用乘积累加(mac)运算的卷积运算的神经处理单元(npu))。例如,内核可以包括同内核的中心像素与邻近中心像素的像素之间的距离成反比的权重。内核可以包括量化的权重。例如,神经处理单元可以通过在第一特征图与内核之间执行转置卷积运算来将第一特征图上采样为第二特征图。神经处理单元还可以被配置为对捕获的图像执行一个或多个卷积运算,以提取尺寸比捕获的图像的尺寸小的第一特征图,神经处理单元可以在神经处理单元内执行第一特征图的上采样,而无需图像处理设备1000使用外部信息提供器(ip)(例如,gpu或cpu)执行双线性插值以生成上采样的特征图。
[0160]
因此,处理器1030可以执行上面参照图1至图8描述的一个或多个或所有操作(运算)和方法。处理器1030可以是硬件实现的数据处理装置,该硬件实现的数据处理装置具有被物理地构造为执行期望的操作(运算)的电路。例如,期望的操作(运算)可以包括包含在软件中的代码或指令。硬件实现的数据处理装置可以包括例如微处理器、cpu、gpu、处理器
核、多核处理器、多处理器、专用集成电路(asic)、现场可编程门阵列(fpga)和神经处理单元(npu)。
[0161]
处理器1030还可以执行存储在存储器1050中的指令,以控制图像处理设备1000。
[0162]
存储器1050可以存储由通信接口1010接收的第一特征图和/或由处理器1030输出的第二特征图。此外,存储器1050可以存储内核、与内核相关联的各种信息(例如,内核的尺寸和/或权重)和/或神经网络层的参数(例如,转置卷积运算的步幅参数和转置卷积运算的填充参数)以及神经网络的用于神经网络的推断操作的训练目标的所有剩余训练参数。
[0163]
如上所述,存储器1050可以存储在处理器1030的处理过程中生成的各种信息。此外,存储器1050可以存储各种数据和程序。存储器1050可以包括例如易失性存储器或非易失性存储器。存储器1050包括大容量存储介质(诸如,硬盘)以存储各种数据。
[0164]
硬件加速器1070可以基于第一特征图的扩展比动态地生成内核。根据示例,硬件加速器1070可以基于第一特征图的扩展比从多个预先生成的内核中选择一个内核,而不是动态地生成内核。
[0165]
图像处理设备1000可以包括但不限于例如平视显示器(hud)装置、3d数字信息显示器(did)、导航装置、3d移动装置、智能电话、智能电视机(tv)和智能车辆。3d移动设备可以被解释为包括头戴式显示器(hmd)、面戴式显示器(fmd)或者用于显示例如增强现实(ar)、虚拟现实(vr)或混合现实(mr)的显示装置。
[0166]
在此参照图1至图9描述的设备、服务器、图像处理设备1000、通信接口1010、处理器1030、存储器1050、硬件加速器1070、通信总线1005、编码器801、解码器803、神经处理单元(npu)以及其他设备、单元、模块、装置和其他组件由硬件组件实现。可以被用于执行本技术中描述的操作(运算)的硬件组件的示例在适当的情况下包括控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行本技术中描述的操作(运算)的任何其他电子组件。在其他示例中,执行本技术中描述的操作(运算)的硬件组件中的一个或多个由计算硬件(例如,由一个或多个处理器或计算机)实现。处理器或计算机可以由一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或者被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可以执行指令或软件(诸如,操作系统(os)和运行在os上的一个或多个软件应用),以执行本技术中描述的操作(运算)。硬件组件还可以响应于指令或软件的执行而访问、操纵、处理、创建和存储数据。为简单起见,单数术语“处理器”或“计算机”可以被使用在本技术中描述的示例的描述中,但在其他示例中,多个处理器或计算机可以被使用,或者处理器或计算机可以包括多个处理元件、或多种类型的处理元件、或两者。例如,单个硬件组件、或者两个或更多个硬件组件可以由单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可以由一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其它硬件组件可以由一个或多个其它处理器、或者另一处理器和另一控制器来实现。一个或多个处理器、或者处理器和控制器可以实现单个硬件组件、或者两个或更多个硬件组件。硬件组件可以具有不同的处理配置中的任何一种或多种,处理配置的示例包括单处
理器、独立处理器、并行处理器、单指令单数据(single-instruction single-data,sisd)多处理、单指令多数据(single-instruction multiple-data,simd)多处理、多指令单数据(multiple-instruction single-data,misd)多处理和多指令多数据(multiple-instruction multiple-data,mimd)多处理。
[0167]
图1至图9中示出的执行本技术中描述的操作(运算)的方法可以通过被实现为上述执行指令或软件以执行本技术中描述的由所述方法执行的操作(运算)的计算硬件(例如,通过一个或多个处理器或计算机)来执行。例如,单个操作(运算)、或者两个或更多个操作(运算)可以由单个处理器、或者两个或更多个处理器、或者处理器和控制器执行。一个或多个操作(运算)可以由一个或多个处理器、或者处理器和控制器执行,一个或多个其他操作(运算)可以由一个或多个其他处理器、或者另一处理器和另一控制器执行。一个或多个处理器、或者处理器或控制器可以执行单个操作(运算)、或者两个或更多个操作(运算)。
[0168]
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可以被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机作为机器或专用计算机操作进行操作以执行由如上所述的硬件组件和方法执行的操作(运算)。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的更高级的代码。指令或软件可以基于附图中示出的框图和流程图以及在此使用的对应的描述而使用任何编程语言来编写,附图中示出的框图和流程图以及在此使用的对应的描述公开了用于执行由如上所述的硬件组件和方法执行的操作(运算)的算法。
[0169]
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可以被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括只读存储器(rom)、随机存取可编程只读存储器(prom)、电可擦除可编程只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd-rom、cd-r、cd r、cd-rw、cd rw、dvd-rom、dvd-r、dvd r、dvd-rw、dvd rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、蓝光或光盘存储装置、硬盘驱动器(hdd)、固态驱动器(ssd)、卡型存储器(诸如,多媒体卡或微型卡(例如,安全数字(sd)卡或极限数字(xd)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及被配置为以非暂时性方式存储指令或软件及任何相关联的数据、数据文件和数据结构并将指令或软件及任何相关联的数据、数据文件提供给一个或多个处理器或计算机以使一个或多个处理器或计算机能够执行指令或软件的任何其他装置。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构可以被分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构被一个或多个处理器或计算机以分布式方式存储、访问和执行。
[0170]
尽管本公开包括特定示例,但在理解本技术的公开之后将清楚的是,在不脱离权利要求和它们的等同物的精神和范围的情况下,可以在这些示例中做出形式上和细节上的各种改变。在此描述的示例将仅以描述性的含义来考虑,而不是出于限制的目的。每个示例
中的特征或方面的描述将被认为适用于其他示例中的相似的特征或方面。如果描述的技术以不同的次序被执行,并且/或者如果描述的系统、架构、装置或电路中的组件以不同的方式被组合和/或被其他组件或它们的等同物代替或补充,则合适的结果可以被实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献