掌桥专利:专业的专利平台
掌桥专利
首页

使用人工神经网络的图像处理方法及神经处理单元

文献发布时间:2024-04-18 20:01:55


使用人工神经网络的图像处理方法及神经处理单元

技术领域

本公开涉及使用人工神经网络的图像处理方法及神经处理单元。

背景技术

人类配备有可以执行识别、分类、推理、预测和控制/决策的智能。人工智能(AI)是指人工模仿人类智能。

人脑由许多称为神经元的神经细胞组成。每个神经元通过称为突触的连接而连接到数百个至数千个其他神经元。为了模仿人类智能,生物神经元的工作原理以及神经元之间的连接关系的建模被称为人工神经网络(ANN)模型。也就是说,ANN是一种对模仿层结构中的神经元的节点进行连接的系统。

此外,人工神经网络被配置为其中卷积通道和池化通道被重复的形式(例如,图1)。在卷积神经网络中,大部分的计算时间被卷积运算所占据。卷积神经网络通过由矩阵型内核提取每个通道的图像特征并且通过池化来提供诸如运动或失真之类的稳态来识别对象。在每个通道中,通过输入数据和内核的卷积来获得特征图。通过将诸如修正线性单元(ReLU)之类的激活函数应用于特征图来生成对应的通道的激活图。然后可以将池化应用于激活图。实际对图案进行分类的神经网络位于特征提取神经网络的后端处,并且被称为全连接层。在卷积神经网络的计算处理中,大多数计算是通过卷积或矩阵乘法来执行的。此时,从存储器读取必要内核的频率是相当频繁的。卷积神经网络的操作中的相当一部分需要时间来从存储器读取与每个通道相对应的内核。

近来,正在对通过将使用这种基于人工神经网络的模型或大数据的技术嫁接到配备有相机的装置来检测或识别从相机捕捉的图像中的对象进行研究。例如,基于AI的对象识别器可以应用于诸如自动驾驶车辆、监视相机或无人机之类的具有相机的装置。当这种基于AI的对象识别装置以高于预定水平的识别率来识别由相机捕捉的图像中的对象时,具有这种相机的装置和对象识别装置可以基于所识别的对象来提供诸如自动驾驶之类的服务。

已经描述了本公开的背景技术以使得本公开更容易理解。不应当理解为承认在本公开的背景技术中描述的事项作为现有技术存在。

发明内容

技术问题

如上所述,使用基于人工神经网络的模型的对象识别技术从存储器频繁地读取必要内核,并且因此需要大量功耗,这可能导致难以应用高性能通用处理器。

本公开的发明人已经认识到以下问题。

首先,可以通过使用基于人工神经网络的模型识别图像中的对象并且执行后处理来获得具有改进质量的图像。

更具体地,当提供被训练为对图像内的对象进行分类的模型并且使用被训练为根据通过对象分类模型分类的对象来处理图像的多个独立的基于人工神经网络的图像处理模型时,根据对象,可以获得具有改进质量的图像。

具体地,可以选择性地应用与每个对象(或者对象的类别)相对应的并且根据对象的特性来改进图像质量的多个人工神经网络模型。

也就是说,被训练为改进图像质量的模型的数量可以对应于所分类的对象的数量。

此外,可以根据对象或对象的类别来预先确定参数值。对应的对象或对象类别的参数是根据分类结果来选择的,并且可以选择性地应用于用于改进图像质量的模型。

另一方面,当处理被配置为对对象进行分类并且改进图像质量的基于人工神经网络的模型的推理时,神经处理单元(NPU)可以从存储器(例如,主存储器)频繁地读取基于人工神经网络的模型的每一层的节点和/或权重值。

此时,随着对片上存储器或NPU内部存储器的访问增加,而不是对主存储器的访问增加,NPU的处理速度可以上升并且能耗可以减少。

也就是说,当通过诸如NPU之类的内部存储器来读取基于人工神经网络的模型以执行对象识别或图像处理时,可以提高图像处理速度。

因此,要通过本公开解决的问题是提供一种图像处理方法和处理单元,其接收包括对象的图像,使用基于人工神经网络的模型对对象进行分类,并且根据所分类的对象来应用处理,从而提供具有改进的图像质量的图像。

技术方案

为了解决上述问题,提供了根据本公开的示例的图像处理方法。

所述方法可以包括如下步骤:接收包括对象的图像的步骤;使用基于人工神经网络的第一模型对所述图像中的至少一个对象进行分类的步骤,所述第一模型被配置为通过输入所述图像对所述至少一个对象进行分类;以及通过使用基于人工神经网络的多个第二模型当中的至少一个模型,通过输入所述至少一个对象被分类的所述图像而根据所述至少一个对象来获得质量改进的图像的步骤,所述第二模型被配置为通过输入所述图像来输出根据特定对象被施加特化处理的图像。

根据本公开,所述至少一个对象可以是具有从多个类别当中选择的一个类别的对象,所述多个第二模型可以是被配置为输入与所述多个类别中的每一者相对应的图像并且输出根据所述多个类别被施加特化处理的图像的多个模型。此时,方法还可以包括在对所述至少一个对象进行分类之后确定所述至少一个对象的类别的步骤。此外,获得质量改进的图像的步骤还可以包括通过使用所述多个第二模型中的与所述至少一个对象的类别相对应的一者来获得所述质量改进的图像的步骤。

根据本公开的另一示例,所述第一模型被配置为通过输入所述图像来输出所述至少一个对象的区域,并且所述方法还可以包括在所述接收步骤之后,通过使用所述第一模型确定所述图像中的所述至少一个对象的区域的步骤。此时,对所述至少一个对象进行分类的步骤可以包括使用所述第一模型基于所述至少一个对象的区域来对所述至少一个对象进行分类的步骤。

根据本公开的其他示例,获得所述质量改进的图像的步骤可以包括通过使用所述第二模型获得所述至少一个对象的区域的所述质量改进的图像的步骤。

根据本公开的其他示例,所述处理方法还可以包括从头戴式显示器(HMD)装置接收凝视数据的步骤。此时,确定所述至少一个对象的区域的步骤还可以包括基于所述凝视数据来确定所述至少一个对象的区域的步骤。

根据本公开的其他示例,所述第一模型可以包括输入层和由多个节点配置的输出层。所述第二模型的数量可以对应于所述第一模型的所述输出层的节点的数量。

根据本公开的其他示例,所述至少一个模型可以是以下各项中的至少一项:去噪声模型、去模糊模型、边缘增强模型、去马赛克模型、色调增强模型、白平衡模型、超分辨率模型、宽动态范围模型、高动态范围模型和解压缩模型。

根据本公开的其他示例,所述至少一个模型可以是其中从所述多个第二模型当中选择的至少两个模型被组合的集成模型。

为了解决上述问题,可以提供根据本公开的另一示例的图像处理方法。

所述方法可以包括以下步骤:接收包括具有从多个类别当中选择的一个类别的对象的图像的步骤;通过使用基于人工神经网络的第一模型确定所述图像中的所述对象的类别的步骤,所述第一模型被配置为通过输入所述图像对所述对象进行分类;以及将针对所述多个类别中的每一者预先确定的多个参数当中的与所分类的对象的类别相对应的参数应用于基于人工神经网络的第二模型的步骤,所述第二模型被配置为通过输入所述图像来输出根据所述对象被施加特化处理的图像;以及通过使用被应用所述相对应的参数的所述第二模型,通过输入对象的类别被确定的所述图像来根据所述对象的类别获得质量改进的图像的步骤。

为了解决上述问题,可以提供根据本公开的示例的图像处理单元。

所述神经处理单元可以包括:内部存储器,所述内部存储器被配置为存储包括对象的图像、第一模型和第二模型;以及处理元件(PE),所述PE被配置为访问所述内部存储器并且被配置为处理所述第一模型和所述第二模型的卷积;以及控制器,所述控制器可操作地联接到所述内部存储器和所述处理元件。此时,所述第一模型可以是被配置为通过输入所述图像来对所述对象进行分类的基于人工神经网络的模型,并且所述第二模型可以是被配置为通过输入所述图像来输出根据所述对象被施加特化处理的图像的多个基于人工神经网络的模型。此外,所述控制器可以被配置为使所述PE使用所述第一模型对所述图像中的所述对象进行分类,并且通过使用所述第二模型的多个模型当中的至少一个模型基于其中所述对象被分类的所述图像而根据所述对象获得质量改进的图像。

根据本公开,所述神经处理单元还可以包括被配置为存储所述第一模型和所述第二模型的主存储器。此时,所述内部存储器可以被配置为读取所述主存储器中的所述第一模型和所述第二模型。

根据本公开的另一示例,所述对象可以是具有从多个类别当中选择的一个类别的对象,并且所述第二模型可以是被配置为通过输入与所述多个类别中的每一者相对应的图像来输出被施加与所述多个类别中的每一者相对应的预定处理的经处理图像的多个模型。此时,所述控制器可以被配置为使所述PE确定所述对象的类别,并且通过使用所述第二模型的多个模型中的与所述对象的类别相对应的一者来获得所述质量改进的图像。

根据本公开的其他示例,还可以包括被配置为选择所述第二模型的多个模型当中的至少一个模型的选择模块。

根据本公开的其他示例,所述第一模型还可以被配置为通过输入所述图像来输出所述对象的区域。所述控制器还可以被配置为使所述PE使用所述第一模型确定所述图像中的所述对象的区域,并且使用所述第一模型基于所述对象的区域来对所述对象进行分类。

根据本公开的其他示例,所述控制器还可以被配置为使所述PE通过使用所述第二模型来获得所述对象的区域的所述质量改进的图像。

根据本公开的其他示例,所述内部存储器还可以存储来自头戴式显示器(HMD)装置的凝视数据,并且所述控制器还可以被配置为使所述PE基于所述凝视数据来确定所述对象的区域。

根据本公开的其他示例,所述第一模型可以包括输入层和由多个节点配置的输出层,并且所述第二模型的数量可以对应于所述第一模型的所述输出层的节点的数量。

根据本公开的其他示例,所述至少一个模型可以是以下各项中的至少一项:去噪声模型、去模糊模型、边缘增强模型、去马赛克模型、色调增强模型、白平衡模型、超分辨率模型、宽动态范围模型、高动态范围模型和解压缩模型。

根据本公开的其他示例,所述至少一个模型可以是其中从所述多个第二模型当中选择的至少两个模型被组合的集成模型。

根据本公开的其他示例,所述神经处理单元还可以被配置为将经过所述第二模型中的每一者处理的区域进行组合,以输出所述质量改进的图像。

根据本公开的其他示例,所述第一模型和所述第二模型中的每一者可以包括参数。此时,所述内部存储器可以被配置为基于所述内部存储器的容量从所述主存储器读取被切片成预定尺寸的所述第一模型的参数或所述第二模型的参数。

根据本公开的其他示例,其中,所述第一模型和所述第二模型中的每一者包括参数,并且所述内部存储器可以被配置为包括所述第一模型的参数,并且从所述主存储器选择性地读取所述第二模型的参数。

根据本公开的其他示例,所述第二模型包括参数,所述图像是多个图像,并且当由所述第一模型针对所述多个图像当中的所选择的图像的对象的分类结果与针对前一个图像的对象的分类结果相同时,所述内部存储器可以包括与所述前一个图像的对象的分类结果相对应的所述第二模型的参数。

为了解决上述问题,可以提供根据本公开的其他示例的处理单元。

神经处理单元包括:内部存储器,所述内部存储器被配置为存储包括具有从多个类别当中选择的一个类别的对象的图像、第一模型和第二模型;处理元件(PE),所述PE被配置为访问所述内部存储器并且被配置为处理所述第一模型和所述第二模型的卷积;以及控制器,所述控制器可操作地联接到所述内部存储器和所述处理元件。此时,所述第一模型是被配置为通过输入所述图像来对所述对象进行分类的基于人工神经网络的模型,并且所述第二模型是被配置为通过输入所述图像来输出根据所述对象被施加特化处理的图像的基于人工神经网络的模型。此外,所述控制器可以使所述PE使用所述第一模型在所述图像中对所述对象进行分类。所述控制器可以被配置为将针对所分类的对象中的每一者预先确定的多个参数当中与所述所分类的对象的类别相对应的参数应用于所述第二模型,并且使用被应用所述相对应的参数的所述第二模型,通过输入所述类别被分类的所述图像而根据所述对象的类别来获得质量改进的图像。

根据本公开,还可以包括被配置为选择所述多个参数的选择模块。

【本发明的效果】

根据本公开,通过提供被训练为对图像中的对象进行分类的模型和被训练为根据所分类的对象来处理图像的模型的独立的基于神经网络的模型,可以根据对象来提供具有改进质量的图像。

尤其,根据本公开,通过提供被训练为对图像内的对象进行分类的模型和被训练为根据所分类的对象来处理图像的模型的多个独立的基于神经网络的模型,可以根据对象的特性获得具有改进质量的图像。

根据本公开,可以提供一种考虑被配置为对对象进行分类并且改进图像质量的基于人工神经网络的模型的推理运算的基于神经处理单元(NPU)的处理单元。

因此,由于通过诸如NPU之类的内部存储器来进行在基于人工神经网络的模型的基础上的处理,因此可以提高用于获得具有改进质量的图像的处理速度。

附图说明

图1是例示示例性基于人工神经网络的模型的示意性概念图。

图2是例示根据本公开的示例的包括神经处理单元的设备的示意性概念图。

图3是例示根据本公开的示例的神经处理单元的示意性概念图。

图4是例示可以应用于本公开的处理元件阵列中的一个处理元件的示意性概念图。

图5是例示根据本公开的示例的基于神经处理单元的图像处理方法的示例性流程图。

图6和图7是例示在根据本公开的示例的神经处理单元中使用第一模型和第二模型的具有改进质量的图像输出过程的示例性示意图。

图8a至图8d是例示根据本公开的示例的神经处理单元中的第二模型的结构的示意性概念图。

图9是例示根据本公开的另一示例的基于神经处理单元的图像处理方法的示例性流程图。

图10和图11是例示在根据本公开的另一示例的神经处理单元中使用第一模型和第二模型的具有改进质量的图像输出过程的示例性示意图。

图12是根据本公开的示例的基于神经处理单元的车牌识别系统的示例性图。

图13是根据本公开的各种示例的图像处理方法的示例性实现图。

具体实施方式

本说明书或本申请中公开的根据本公开的构思的实施方式的具体结构或逐步描述仅仅是出于描述根据本公开的构思的实施方式的目的而示出的。

根据本公开的构思的实施方式可以以各种形式实施。根据本公开的构思的实施方式可以以各种形式实施。不应将其解释为限于本说明书或本申请中描述的实施方式。

根据本公开的构思的实施方式可以具有各种变化并且可以具有各种形式。因此,具体实施方式在附图中示出,并且将在本说明书或本申请中详细描述。然而,这并不旨在相对于具体公开形式来限制根据本公开的构思的实施方式,并且应当理解为包括本公开的思想和范围中所包含的所有变更、等同物和替代物。

诸如第一和/或第二之类的术语可以用于描述各种元件,但是元件不应受到这些术语的限制。

例如,在不脱离根据本公开的构思的范围的情况下,以上术语仅用于将一个元件与另一元件区分开,并且第一元件可以被称为第二元件,类似地,第二元件也可以被称为第一元件。

当元件被称为“连接”另一个元件或“接触至”另一个元件时,应当理解,该元件可以直接连接到另一个元件或与另一个元件接触,或者其他元件可以设置在其间。另一方面,当提到某个元件“直接连接”另一个元件或“直接接触至”另一个元件时,应当理解,在它们之间不存在其他元件。

描述元件之间的关系的诸如“在...之间”和“直接在...之间”或“与...相邻”和“与...直接相邻”等之类的其他表达应当被类似地解释。

在本公开中,诸如“A或B”、“A或/和B中的至少一者”或“A或/和B中的一个或更多个”之类的表达可以包括其所有可能的组合。例如,“A或B”、“A和B中的至少一者”或“A或B中的至少一者”可以指(1)包括至少一个A,(2)包括至少一个B,或(3)包括至少一个A和至少一个B两者。

如本文所使用的,诸如“第一”、“第二”“第一或第二”之类的表达可以修饰各种元件,而不表示顺序和/或重要性如何,并且其仅用于将一个元件与其他元件区分开,并且不限制元件。例如,第一用户设备和第二用户设备可以表示不同的用户设备,而不表示顺序或重要性如何。例如,在不脱离本公开中描述的权限的范围的情况下,第一元件可以被命名为第二元件,并且类似地,第二元件也可以被重新命名为第一元件。

本文档中使用的术语仅用于描述特定实施方式,并且可能不旨在限制其他示例的范围。

除非上下文另有明确指示,否则单数表达可以包括复数表达。本文使用的包括技术术语或科学术语的术语可以具有与本文档中描述的本领域普通技术人员通常理解的相同的含义。

在本公开中使用的术语当中,在通用字典中定义的术语可以被解释为具有与相关技术的上下文中的含义相同或相似的含义。此外,除非在本文档中明确定义,否则其不应被解释为理想的或过于正式的含义。在一些情况下,甚至本公开中定义的术语也不能被解释为排除本公开的实施方式。

本文使用的术语仅用于描述具体实施方式,并且不旨在限制本公开。

除非上下文另有明确指示,否则单数表达可以包括复数表达。应当理解,如本文所使用的,诸如“包括”或“具有”之类的术语旨在表示存在所陈述的特征、数量、步骤、动作、元件、部分或其组合,但是其不排除添加或存在至少一个其他特征或数量、步骤、操作、元件、部分或其组合的可能性。

除非另有定义,否则本文使用的包括技术术语或科学术语的所有术语具有与本公开所属领域的普通技术人员通常理解的相同的含义。除非在本说明书中明确定义,否则诸如在常用词典中定义的术语之类的术语应当被解释为具有与相关技术的上下文中的含义相一致的含义,并且不应被解释为理想的或过于正式的含义。

本公开的各种示例的特征中的每一者可以部分地或全部地组合或彼此组合,如本领域技术人员可以完全地理解的,技术上的各种联动和驱动是可能的,并且每个示例可以彼此独立地实现,或者可以以相关关系一起实现。

在描述实施方式时,可以省略对在本公开所属技术领域中周知的并且与本公开不直接相关的技术内容的描述。这是为了通过省略不必要的描述来更清楚地传达本公开的主旨而不模糊本公开的主旨。

<术语的定义>

在下文中,为了帮助理解本说明书中提出的公开内容,将简要地概述在本说明书中使用的术语。

第一模型:可以指代被训练为通过接收包括对象的图像作为输入来对对象进行分类的模型。

第一模型可以是用于分割图像中的对象的区域的模型。

第一模型可以是能够对图像中的对象进行分类的基于人工神经网络的分类器。

第一模型可以是能够对图像中的对象进行检测的基于人工神经网络的对象检测器。

第一模型可以是用于识别和/或感测对象的基于人工神经网络的模型,但不限于此。例如,第一模型可以是被训练为基于图像中的像素值对对象区域进行分割的Segnet、Unet、更快的RCNN、FCN、基于Voxnet的图像分割模型、支持向量机(SVM)、决策树、随机森林、自适应提升(AdaBoost)、或基于惩罚逻辑回归(PLR)的分类器。

第二模型:可以指代被训练为通过输入图像来输出根据所分类的对象被施加预定处理的图像的模型。也就是说,第二模型可以是被训练为改进由第一模型分类的每个对象的图像质量的多个模型。换言之,第二模型的数量可以对应于第一模型的输出节点的数量。另一方面,第二模型可以是去噪声模型、去模糊模型、边缘增强模型、去马赛克模型、色调增强模型、白平衡模型、超分辨率模型、宽动态范围模型、高动态范围模型和解压缩模型中的至少一者。

例如,第二模型可以以下图像处理模型当中的至少一个图像处理模型:第一对象模型,其针对输入图像提供超分辨率(S/R)处理;第二对象模型,其被训练为针对输入图像提供去噪声,也就是说,去噪声处理;第三对象模型,其被训练为对输入图像提供去除模糊现象的去模糊处理;第四对象模型,其被训练为针对输入图像提供边缘增强处理;第五对象模型,其被训练为针对输入图像提供用于重建全色彩图像的去马赛克处理;第六对象模型,其被训练为针对输入图像提供色调增强处理;第七对象模型,其被训练为针对输入图像提供白平衡处理;以及第八对象模型,其被训练为对输入图像提供用于去除压缩的解压缩处理。每个对象模型可以是各自使用根据特定处理功能准备的每个训练数据集来训练的深度学习训练模型。

此外,第二模型是针对图像的每个类别提供质量改进的模型,并且可以是被训练为输出改进质量的并且根据图像的类别而特化的图像的多个模型,诸如:食物图像模型,其被训练为针对食物图像提供改进质量的图像;天气图像模型,其被训练为针对天气图像提供改进质量的图像;动物及昆虫图像模型,其被训练为针对动物及昆虫图像提供改进质量的图像;景观图像模型,其被训练为针对景观图像提供改进质量的图像;体育图像模型,其被训练为针对体育图像提供改进质量的图像;服装图像模型,其被训练为针对服装图像提供改进质量的图像;人类及情绪图像模型,其被训练为针对人类及情绪图像提供改进质量的图像;以及交通图像模型,其被训练为针对交通图像提供改进质量的图像。每个对象模型可以是使用根据特定图像质量改进准备的每个训练数据集训练的深度学习训练模型。

然而,不限于此,并且第二模型可以是集成了各种对象模型的组合的用于改进图像质量的模型。此外,第二模型可以是多个对象模型并行或串行连接的模型。

此外,第二模型可以作为单个模型存在。例如,可以将多个对象的预设参数应用于单个第二模型,并且可以根据所分类的对象来提供具有改进质量的最佳图像。这里,图像质量改进可以是由人类在视觉上感觉到的质量上的改进,但不限于此。这里,参数可以是应用于每个模型的每一层的权重以及内核的值。可以根据每个对象模型来训练每个参数。具体地,在本说明书中,图像质量改进可以指机器学习模型的对象识别率的改进。对人类可见的质量上的改进并不总是导致机器学习模型中的对象识别率的改进。例如,道路图像中的图像质量改进可以是基于人类的美学改进或能够增加机器学习模型中的识别率的质量改进。

NPU:神经处理单元(NPU)的缩写,其可以指与中央处理单元(CPU)分开的、专门用于基于人工神经网络的模型的计算的处理器。也可以将其称为人工神经网络加速器。

Controller:控制器,尤其是NPU控制器,可以指控制NPU的整体任务的模块。为了使控制器在NPU中运行,编译器分析ANN模型的数据局部性,并且接收经编译的ANN模型的运算序列信息以确定NPU的任务处理序列。控制器可以基于内部存储器(也就是说,NPU的存储器大小和处理元件阵列的性能)来存储ANN模型的每一层的切片信息。此外,控制器可以根据NPU存储器容量来控制NPU从外部主存储器向内部存储器读取第一模型和/或第二模型。此外,控制器可以通过使用寄存器映射来控制NPU的整体任务。控制器可以包括在NPU中或可以位于NPU外部。

ANN:人工神经网络的缩写。为了模仿人类智能,其可以指一种其中节点被连接为层结构以通过模仿人脑中的通过突触连接的那些神经元来模仿人类智能的网络。

DNN:深度神经网络的缩写,这可以意指人工神经网络的隐藏层的数量增加,以便实施更高的人工智能。

CNN:卷积神经网络的缩写,与人类大脑的视觉皮层中的图像处理类似地运行的神经网络。已知卷积神经网络适于图像处理,并且已知易于提取输入数据的特征并识别特征的图案。CNN中的权重可以指大小为N×M的内核。

在下文中,将参照附图通过描述本公开的实施方式来详细描述本公开。在下文中,将参照附图详细描述本公开的实施方式。

首先,将参照图1描述作为人工神经网络当中的深度神经网络(DNN)的类型的卷积神经网络(CNN)。

图1是例示根据本公开的卷积神经网络的示例性概念图。

参照图1,卷积神经网络包括至少一个卷积层、至少一个池化层和至少一个全连接层。

例如,卷积可以由以下两个主要参数来定义:输入数据的大小(通常为1×1、3×3或5×5矩阵)和输出特征图的深度(内核的数量)。这些关键参数可以通过卷积来计算。这些卷积可以在深度32处开始,延续到深度64,并且在深度128或256处结束。卷积运算可以是指如下运算:在作为输入数据的输入图像矩阵上方滑动大小为3x3或5x5的内核,将内核的每个元素和输入图像矩阵的彼此堆叠的每个元素相乘,并且然后将它们全部相加。这里,输入图像矩阵是3D分片(patch),并且内核意指被称为权重的被训练的权重矩阵,它们是相同的。也就是说,人工神经网络的权重可以是能够执行特定人工神经网络的特定功能的参数。

换言之,卷积是指如下操作:3D分片通过与学习权重矩阵的张量积而被转换为1D向量,并且将向量在空间上重组为3D输出特征图。输出特征图的所有空间位置可以对应于输入特征图的相同位置。

卷积层可以在输入数据和在学习过程期间经过梯度更新的多次迭代来训练的内核(即,权重矩阵)之间执行卷积。如果(m,n)是内核大小,并且W被设置为权重值,则卷积层可以通过计算点积来执行输入数据和权重矩阵的卷积。

内核滑动跨过输入数据的步进大小被称为步幅(stride),并且内核面积(m×n)可以被称为感受野(receptive field)。跨过输入的不同位置来应用相同的卷积内核,这减少了被训练的内核的数量。这还实现了位置不变学习,其中,如果输入中存在重要图案,则卷积滤波器(即,内核)可以学习该图案,而不管序列的位置如何。

激活函数可以应用于如上所述生成的输出特征图,以最终输出激活图。此外,可以通过卷积将当前层中使用的权重传输到下一层。池化层可以通过对输出数据(即,激活图)进行下采样来执行池化运算以减小特征图的大小。例如,池化运算可以包括但不限于最大池化和/或平均池化。最大池化运算使用内核,并且通过滑动特征图和内核来输出特征图的与内核交叠的区域中的最大值。平均池化运算通过滑动特征图和内核来输出特征图的与内核交叠的区域内的平均值。由此,由于通过池化运算减小了特征图的大小,因此也减少了特征图的权重的数量。

全连接层可以将通过池化层输出的数据分类为多个类别(即,估计值),并且可以输出经分类的类别及其分数。通过池化层输出的数据形成三维特征图,并且该三维特征图可以转换为一维向量,并且作为全连接层来输入。

卷积神经网络可以被调整或训练为使得输入数据导致特定的推理输出值。换言之,可以基于输出推理值和实测值(ground truth)之间的比较,使用反向传播来调谐卷积神经网络,直到输出推理值逐渐匹配或接近实测值为止。

可以通过基于实测值数据与实际输出之间的差调整神经元之间的权重来训练卷积神经网络。经训练的权重可以用作特定的人工神经网络的参数。

图2是例示根据本公开的示例的包括神经处理单元的设备的示意性概念图。

参照图2,包括NPU 1000的设备B包括片上区域A。主存储器4000可以被包括在片上区域之外。主存储器4000例如可以是诸如DRAM之类的系统存储器。尽管未示出,但是包括ROM的存储单元可以被包括在片上区域A之外。

在片上区域A中,设置有诸如中央处理单元(CPU)2000之类的通用处理单元、片上存储器3000和NPU 1000。CPU 2000可操作地连接到NPU 1000、片上存储器3000和主存储器4000。

然而,本公开不限于此,并且还可以将NPU 1000配置为包括在CPU 2000中。

片上存储器3000是安装在半导体管芯上的存储器,并且可以是与主存储器4000访问分开的用于缓存的存储器。

例如,片上存储器3000可以是被配置为由其他片上半导体访问的存储器。例如,片上存储器3000可以是缓存存储器或缓冲存储器。

NPU 1000包括内部存储器200,并且内部存储器200可以包括例如SRAM。内部存储器200可以是仅用于NPU 1000中的操作的存储器。内部存储器200可以被称为NPU内部存储器。这里,术语基本上可以意味着数据,例如被配置为将与由NPU 1000处理的人工神经网络相关的、用于识别和分类图像中的对象的第一模型的参数和根据对象来提供经特化的图像处理的第二模型的参数存储在内部存储器200中的数据。这里,参数可以包括寄存器映射、权重、内核、输入特征图、输出特征图等。

例如,内部存储器200可以是被配置为存储NPU 1000运算所需的权重、内核和/或特征图的缓冲存储器和/或缓存存储器。然而,不限于此。

例如,内部存储器200可以被配置为比主存储器4000相对更快地读取和写入SRAM、MRAM、寄存器文件等的存储器装置。然而,不限于此。

包括NPU 1000的设备B包括内部存储器200、片上存储器3000和主存储器4000中的至少一者。

下面描述的术语“至少一个存储器”旨在包括内部存储器200和片上存储器3000中的至少一者。

此外,片上存储器3000的描述可能旨在包括NPU 2000的内部存储器200或在NPU2000外部但在片上区域A中的存储器。

然而,还可以基于存储器的带宽而不是位置特性来将指代至少一个存储器的内部存储器200和/或片上存储器3000与主存储器4000区分开。

通常,主存储器4000是指易于存储大量数据、具有相对低的存储器带宽、并且消耗相对大量的功率的存储器。

通常,内部存储器200和片上存储器3000是指具有相对高的存储器带宽和相对低的功耗的存储器,但是对于存储大量数据而言是低效率的。在本公开中,“内部存储器200”可以与“NPU存储器”互换使用。

包括NPU 1000的设备B的每个元件可以经由总线5000进行通信。可以存在设备B的至少一个总线5000。总线5000可以被称为通信总线、和/或系统总线等。

NPU 1000的内部存储器200和片上存储器3000还可以包括单独的专用总线,以便保证比特定带宽更多的带宽以用于处理基于人工神经网络的第一模型和第二模型的权重和特征图。

还可以在片上存储器3000和主存储器4000之间进一步包括单独的专用总线,以便保证比特定带宽更多的带宽。可以基于NPU 1000的处理元件阵列的处理性能来确定特定带宽。

在NPU 1000的内部存储器200和主存储器4000之间,还可以进一步包括单独的专用总线以确保多于特定带宽。可以基于NPU 1000的处理元件阵列的处理性能来确定特定带宽。

具有NPU 1000的设备B可以被配置为还包括直接存储器访问(DMA)模块,以便直接地控制内部存储器200、片上存储器3000和/或主存储器4000。

例如,DMA模块可以被配置为通过直接地控制总线5000来直接地控制NPU 2000和片上存储器3000的数据传输。

例如,DMA模块可以被配置为通过直接地控制总线5000来直接地控制片上存储器3000和主存储器4000之间的数据传输。

例如,DMA模块可以被配置为通过直接地控制总线5000来直接地控制内部存储器200和主存储器4000之间的数据传输。

神经处理单元(NPU)1000是专门用于执行人工神经网络的操作的处理器。NPU1000可以被称为AI加速器。

人工神经网络是指在接收到多个输入或刺激时乘以并加上权重,并且通过激活函数变换和传输通过添加附加偏差而获得的值的人工神经元的网络。以此方式训练的人工神经网络可以用于从输入数据输出推理结果。

NPU 1000可以是被实施为电气/电子电路的半导体。电气/电子电路可以意味着包括多个电子部件(例如,晶体管、电容器)。NPU 1000可以包括处理元件(PE)阵列、NPU内部存储器200、NPU调度器和NPU接口。处理单元阵列、NPU内部存储器200、NPU调度器和NPU接口中的每一者可以是与多个晶体管连接的半导体电路。

因此,它们中的一些可能难以用肉眼识别和区分,并且可以仅通过操作来识别。例如,任意电路可以作为处理元件阵列来操作,或者可以作为NPU调度器来操作。

NPU 1000可以包括:处理元件阵列;NPU内部存储器200,其被配置为存储可以在处理元件阵列中推理的基于神经网络的第一模型和第二模型的至少一部分;以及NPU控制器(或者调度器),其被配置为根据基于人工神经网络的第一模型和第二模型的数据局部性信息或根据与基于人工神经网络的第一模型和第二模型的结构有关的信息来控制处理元件阵列和NPU内部存储器200。

基于人工神经网络的第一模型和第二模型可以包括与基于人工神经网络的模型的数据局部性有关的信息或与基于人工神经网络的模型的结构有关的信息。

处理元件阵列可以执行用于人工神经网络的操作。例如,当输入包括对象的图像的输入数据时,处理元件阵列可以针对第一模型对对象进行分类并且可以使用第二模型针对所分类的对象执行训练以处理图像。在完成学习之后,当输入数据被输入时,处理元件阵列可以执行通过经训练的基于人工神经网络的第一模型和第二模型来针对每种类型的对象生成并导出具有改进质量的图像的操作。处理元件阵列还可以以至少一个处理元件的变型来体现。

在该情况下,NPU 1000可以通过NPU接口向NPU内部存储器200加载存储在主存储器4000中的基于人工神经网络的第一模型和第二模型的数据,即参数。NPU接口可以通过总线5000与主存储器4000通信。

NPU控制器被配置为控制用于NPU 1000的推理运算的处理元件阵列的运算、以及NPU内部存储器200的读取和写入序列。NPU控制器还被配置为调整通道的至少一部分的大小。

NPU控制器可以分析基于人工神经网络的第一模型和第二模型的结构,或者可以被提供基于人工神经网络的第一模型和第二模型的结构。接下来,NPU控制器可以顺序地确定每一层的运算序列。也就是说,当基于人工神经网络的第一模型和第二模型的结构被确定时,可以确定每一层的运算序列。根据基于人工神经网络的第一模型和第二模型的结构的运算的序列或数据流的序列可以被定义为基于人工神经网络的第一模型和第二模型在算法层级的数据局部性。

NPU控制器通过反映基于人工神经网络的第一模型和第二模型的结构来顺序地确定每一层的运算序列。也就是说,当基于人工神经网络的第一模型和第二模型的结构被确定时,可以确定每一层的运算序列。此种根据基于人工神经网络的第一模型和第二模型的结构的运算顺序或数据流顺序可以被定义为基于人工神经网络的第一模型和第二模型在算法层级的数据局部性。

基于人工神经网络的第一模型和第二模型的数据局部性可以考虑每个模型的结构、层的数量、通道的数量和NPU结构来确定。

当编译器对基于人工神经网络的第一模型和第二模型进行编译使得基于人工神经网络的第一模型和第二模型在NPU 1000中被执行时,基于人工神经网络的第一模型和第二模型的人工神经网络数据局部性可以在神经处理单元-存储器层级被重建。例如,编译器可以由CPU 2000来执行。

也就是说,可以根据编译器,可以确定应用于基于人工神经网络的第一模型和第二模型的算法、NPU 1000的操作特性、权重的大小和特征图的大小、加载到内部存储器中的权重值和通道的大小。

例如,即使在相同的第一模型和第二模型的情况下,可以根据其中NPU 1000计算对应的第一模型和第二模型的方法(例如,权重切片、特征图切片)、处理元件的固定技术、NPU 1000的处理元件的数量、NPU 1000的内部存储器容量、NPU 1000内的存储器层级关系、用于调度用于处理第一模型和第二模型的NPU 1000的运算顺序的编译器的算法特性等来配置要处理的第一模型和第二模型的数据局部性。当通过编译器来调度用于处理第一模型和第二模型的NPU 1000的运算序列时,控制器可以通过所确定的调度来控制NPU 1000的每个元件。

在下文中,将参照图3详细描述在本公开的各种实施方式中使用的神经处理单元。

图3是例示根据本公开的示例的神经处理单元的示意性概念图。

神经处理单元(NPU)1000可以包括处理元件阵列100、内部存储器200、控制器300和特殊功能单元(SFU)。

更具体地,处理元件阵列100被配置为包括多个处理元件(PE1...)110,其被配置为计算人工神经网络的节点数据和连接网络的权重数据。每个处理元件可以包括乘法和累加(MAC)运算器和/或算术逻辑单元(ALU)运算器。然而,根据本公开的示例不限于此。

尽管在所呈现的实施方式中示出了多个处理元件(PE1...)110,但是通过在一个处理元件中替换MAC,也可以将实施为多个乘法器和加法器树的运算器配置为并行地布置。在这种情况下,处理元件阵列100也可以被称为包括多个运算器的至少一个处理元件。

所呈现的实施方式中的多个处理元件(PE1...)110仅是为了便于描述的示例,并且多个处理元件(PE1...)110的数量不受限制。处理元件阵列的大小或数量可以由多个处理元件(PE1...)110的数量来确定。处理元件阵列的大小可以以N×M矩阵的形式来实现。其中,N和M是大于零的整数。因此,处理元件阵列100可以包括N×M个处理元件。也就是说,可以存在多于一个的处理元件。

此外,处理元件阵列100可以由多个子模块构成。因此,处理元件阵列100可以包括由N×M×L个子模块构成的处理元件。更详细地,L是处理元件阵列的子模块的数量,并且可以被称为核心、引擎或线程。

可以考虑NPU 1000在其中运行的第一模型和第二模型的特性来设计处理元件阵列100的大小。更详细地,可以考虑要操作的第一模型和第二模型的参数的大小、所需的操作速度、所需的功耗等来确定处理元件的数量。可以根据第一模型和第二模型的层数以及每一层的权重的大小来确定第一模型和第二模型的参数的大小。

因此,根据本公开的示例的处理元件阵列100的大小不受限制。随着处理元件阵列100的处理元件(PE1...)110的数量增加,尽管操作第一模型和第二模型的并行计算功率增加,但是NPU 1000的制造成本和物理大小可能增加。

处理元件阵列100被配置为执行人工神经网络操作所需的诸如加法、乘法和累加之类的功能。换言之,处理元件阵列100可以被配置为执行乘法和累加(MAC)运算。也就是说,处理元件阵列100可以被称为多个MAC运算器。

在所呈现的实施方式中,除了多个处理元件(PE1...)之外,处理元件阵列100还可以包括与处理元件(PE1...)中的每一个相对应的相应寄存器文件(RF1...)120。此时,图3中所示的多个处理元件(PE1...)和多个寄存器文件(RF1...)仅仅是为了便于描述的示例,并且多个处理元件(PE1...)和多个寄存器文件(RF1...)的数量不受限制。

也就是说,处理元件阵列100可以执行人工神经网络的操作。例如,当输入包括对象的图像的输入数据时,处理元件阵列100可以针对第一模型对对象进行分类,并且使用第二模型针对所分类的对象来处理图像。

处理元件阵列可以通过经训练的基于人工神经网络的第一模型和第二模型来执行针对每种类型的对象生成并导出具有改进质量的图像的操作。

另一方面,不限于此,并且处理元件阵列100可以通过使用NPU内部存储器200中的第一模型210和第二模型220来对输入图像中的对象进行分类并且根据对象执行特化处理。

选择性地,NPU 1000可以通过NPU接口向NPU内部存储器200加载存储在主存储器4000中的第一模型210’和第二模型220’的数据,并且处理元件阵列100可以使用加载到内部存储器200中的第一模型210’和第二模型220’的数据对输入图像中的对象进行分类,并且可以根据对象来执行特化处理。

根据本公开的示例,NPU 1000可以执行根据NPU内部存储器200的容量从主存储器4000读取被切片成预定尺寸的第一模型的参数或第二模型的参数的处理。

例如,当NPU内部存储器200的容量小时,NPU 1000可以将主存储器4000中的第一模型和第二模型交替地读取到NPU内部存储器200。

根据本公开的另一示例,第一模型的参数被存储在NPU内部存储器200中,并且可以根据可用容量来选择性地执行从主存储器4000中读取第二模型的参数的处理。

根据本公开的另一示例,当通过第一模型的图像的对象分类结果与前一个图像的对象分类结果相同时,NPU 1000可以将第二模型的与前一个图像的对象分类结果相对应的参数保留在NPU内部存储器200中。

也就是说,如果对象识别结果与前一个图像结果相同,则NPU 1000可以被配置为复用存储在NPU内部存储器200中的第一模型的参数。也就是说,根据NPU 1000的存储器的容量,第一模型210、210’和第二模型220和220’可以存在于NPU 1000中或外部(例如,主存储器)。

此外,内部存储器200可以是易失性存储器。易失性存储器可以是其中仅在供电时存储数据并且所存储的数据在电源切断时丢失的存储器。易失性存储器可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。内部存储器200可以优选地是SRAM,但不限于此。

根据本公开的其他示例,NPU 1000可以被配置为通过对由多个第二模型中的每一者处理的区域进行组合来输出改进质量的图像。也就是说,可以通过对由多个第二模型处理的对象图像的像素进行组合来生成一个输出图像。

接下来,NPU控制器300可以被配置为考虑第一模型和第二模型的参数(例如,权重值的大小、特征图的大小以及权重值和特征图的计算序列等)来控制处理元件阵列100和NPU内部存储器200。

NPU控制器300可以控制以使至少一个处理元件使用第一模型对图像中的对象进行分类,并且使用多个第二模型当中的至少一个模型基于其中对象被分类的图像根据对象来生成改进的图像质量。

NPU控制器300可以控制以使至少一个处理元件对对象进行分类并且使用第一模型来确定图像中的对象的类别,使用第二模型针对多个类别中的每一者应用多个预定参数当中与所分类的对象的类别相对应的参数,并且通过输入所分类的图像而根据对象的类别来生成改进的图像质量。

另一方面,NPU控制器300可以接收要在处理元件阵列100中计算的权重值的大小和特征图的大小、权重值和特征图的计算序列等。在该情况下,人工神经网络的数据可以包括每一层的节点数据或特征图、以及连接每一层的节点的每个连接网络的权重数据。人工神经网络的至少一些数据或参数可以存储在被设置在NPU控制器300内部的存储器或NPU内部存储器200中。

在人工神经网络的参数当中,特征图可以被配置为批量通道。这里,多个批量通道例如可以是由多个图像传感器在基本上相同的时段期间(例如,在10ms或100ms内)捕捉的对象图像。

不限于以上描述,NPU控制器300可以控制用于各种卷积运算的处理元件阵列100和内部存储器200以用于图像中的对象分类和图像处理。

此外,特殊功能单元(SFU)例如可以包括用于池化或应用诸如ReLU之类的激活函数的运算单元,并且不限于此,并且可以包括用于除了卷积运算之外的各种运算的单元。

根据本公开,NPU 1000还可以包括选择模块(未示出),其被配置为从多个第二模型220和220’当中选择与对象(或对象的类别)相对应的模型,或者根据第一模型210和210’的对象分类结果来选择适用于单个第二模型220和220’的多个参数。

在该情况下,选择模块可以包括在控制器300或特殊功能单元400中。

此外,控制器300还可以被配置为控制选择模块。

在下文中,将参照图4详细描述处理元件阵列100的一个处理元件。

图4是例示可以应用于本公开的处理元件阵列的一个处理元件的示意性概念图。

参照图4,第一处理元件PE1110可以包括乘法器111、加法器112和累加器113。然而,根据本公开的示例不限于此,并且可以考虑人工神经网络的计算特性来修改处理元件阵列100。

乘法器111将所接收的N比特数据和M比特数据相乘。乘法器111的运算值被输出为(N+M)比特数据。其中,N和M是大于零的整数。接收N比特数据的第一输入单元可以被配置为接收特征图,并且接收M比特数据的第二输入单元可以被配置为接收权重。

由于特征图的值针对每个帧而改变,因此其可以被设置为可变值。完成训练的权重可以被设置为恒定值,因为除非执行附加学习,否则该值不会改变。

也就是说,乘法器111可以被配置为接收一个变量和一个常数。更详细地,输入到第一输入单元的变量值可以是人工神经网络的输入特征图。输入到第二输入单元的常数值可以是人工神经网络的权重。

此外,当将零值输入到乘法器111的第一输入单元和第二输入单元中的一者时,由于即使不执行操作,第一处理元件PE1 110也识别出操作结果为零,因此乘法器111的操作可以被限制为使得不执行操作。

例如,当将零输入到乘法器111的第一输入单元和第二输入单元中的一者时,乘法器111可以被配置为以零跳过的方式操作。

输入到乘法器111的第一输入单元和第二输入单元的数据的比特宽可以根据每个特征图的量化和人工神经网络模型的权重来确定。例如,当第一层的特征图被量化为5比特并且第一层的权重被量化为7比特时,第一输入单元可以被配置为接收5比特宽的数据,并且第二输入单元可以被配置为接收7比特宽的数据。

加法器112将乘法器111的计算值和累加器113的计算值相加。当(L)循环为零时,由于没有累加的数据,因此加法器112的运算值可以与乘法器111的运算值相同。当(L)循环为1时,通过将乘法器111的运算值与累加器113的运算值相加而获得的值可以是加法器的运算值。

累加器113临时地存储从加法器112的输出单元输出的数据,使得加法器112的运算值和乘法器111的运算值按照L循环的次数进行累加。具体地,从加法器112的输出单元输出的加法器112的计算值被输入到累加器113的输入单元,输入到累加器113的运算值被临时地存储在累加器113中并且从累加器113的输出单元输出。输出运算值通过循环而被输入到加法器112的输入单元。此时,从乘法器111的输出单元新输出的运算值被输入到加法器112的输入单元。也就是说,累加器113的运算值和乘法器111的新运算值被输入到加法器112的输入单元,并且这些值通过加法器112相加并且通过加法器112的输出单元来输出。从加法器112的输出单元输出的数据(也就是说,加法器112的新运算值)被输入到累加器113的输入单元,并且执行后续操作的次数与上述操作的循环次数基本上相同。

由此,由于累加器113临时地存储从加法器112的输出单元输出的数据,以便将乘法器111的运算值和加法器112的运算值按照循环的次数进行累加,所以输入到累加器113的输入单元的数据和从输出单元输出的数据可以具有与从加法器112的输出单元输出的数据相同的(N+M+log2(L))比特的比特宽。其中,L是大于零的整数。

当完成累加时,累加器113可以接收初始化复位以将存储在累加器113中的数据初始化为零。然而,根据本公开的示例不限于此。

累加器113的输出数据(N+M+log2(L))比特可以是输出特征图。

在下文中,将参照图5至图8来描述根据本公开的各种实施方式的图像处理方法。

图5是例示根据本公开的示例的基于神经处理单元的图像处理方法的示例性流程图。图6和图7是例示在根据本公开的示例的神经处理单元中使用第一模型和第二模型的具有改进质量的图像输出过程的示例性示意图。图8A至图8D是例示根据本公开的示例的神经处理单元中的第二模型的结构的示例性概念图。

首先,参照图5,接收包括对象的图像S510。接下来,通过第一模型在图像中对对象进行分类S520。然后,通过使用多个第二模型当中的一个所选模型而根据所分类的对象来获得改进质量的图像S530。然后,提供改进质量的图像S540。

首先,在接收包括对象的图像的步骤S510中,可以接收包括与诸如食物、天气、动物、昆虫、景观、自然、体育、服装、人类、情绪、节目和交通工具之类的类别相对应的对象的图像。这里,可以有至少一个对象。

也就是说,在接收包括对象的图像的步骤S510中,可以预先确定要改进的图像的类别。在该情况下,图像中的对象可以匹配到多个类别。也就是说,一个实体可以对应于两个类别。

接下来,通过第一模型在图像中对对象进行分类S520。对象可以是至少一个对象。

更具体地,在图像中对对象进行分类的步骤S520中,可以通过被训练为通过输入图像作为输入来对对象进行分类的第一模型来对对象进行分类。第一模型可以是被训练为对与预设类别相对应的对象进行分类的模型。因此,第一模型的参数(例如,经训练的权重)可以是被训练为对多个类别中的与对象相对应的至少一个类别进行分类的权重。

根据本公开,在图像中对对象进行分类的步骤S520之后,还可以执行确定所分类的对象的类别的步骤。然而,不限于此,并且可以直接地确定由第一模型输入的图像的类别。

也就是说,第一模型可以包括包含与对象的名称或对象的对应类别相对应的多个节点的输出层以及被输入有图像的输入层。

例如,参照图6,在接收包括对象的图像的步骤S510中接收的与动物类别相匹配的猫图像10被接收。在图像中对对象进行分类的步骤S520中,图像10被输入到第一模型210。结果,可以通过第一模型210将图像10中的对象确定为“猫”。此外,可以通过由第一模型210训练的参数将图像10的类别确定为“动物”或“哺乳动物”。

然而,对象分类过程不限于此。

例如,参照图7,在接收包括对象的图像的步骤S510中,所接收的图像10被输入到第一模型210,并且之后,与对象区域相对应的感兴趣区域(ROI)12被划分。之后,可以再次将ROI 12输入到第一模型210,并且可以针对所划分的ROI 12对对象进行分类。也就是说,第一模型210可以由区域划分单元和分类器构成,区域划分单元通过接收图像来划分区域,分类器被配置为通过接收图像(或区域)作为输入来对对象进行分类。

ROI 12可以是矩形。然而,本发明不限于此,并且可以是三角形、五边形、六边形、多边形、圆形、卵形等。

在该情况下,可以基于从头戴式显示器(HMD)装置接收的用户的凝视数据来执行对作为对象区域的ROI 12的确定。例如,可以将用户的凝视停留比其他区域更长的时间的区域确定为ROI。

返回参照图5,根据对象的改进质量的图像是通过使用多个第二模型当中的至少一个模型来获得的S530。

更具体地,在获得根据对象的改进质量的图像的步骤S530中,可以确定多个第二模型当中的至少一个模型,并且可以通过第二模型来生成(输出)根据对象的改进质量的图像。

例如,参照图6,在获得根据对象的改进质量的图像的步骤S530中,根据由第一模型210分类的对象来确定包括第一对象模型220(a)、第二对象模型220(b)、第三对象模型220(c)、…的多个第二模型220中的至少一者。接下来,在图像10被输入到至少一个所确定的模型之后,在所确定的至少一个模型中输出经过图像处理的图像20。因此,可以获得根据对象或对象的类别的在质量上改进的图像20。在该情况下,对多个模型当中的与对象相对应的第二模型220的选择可以不作为单独的步骤来执行,而是可以由选择模块(未示出)来自动地执行。

根据本公开,第二模型可以是多个模型,其被配置为接收与多个类别中的每一者相对应的图像作为输入并且输出根据多个类别被施加特化处理的图像。

例如,一起参照图8A,第二模型220可以是被训练为输出根据图像的类别而被特化的改进质量的图像的多个模型,其包括:第一对象模型220(a),其被训练为提供针对食物图像的改进质量的图像;第二对象模型220(b),其被训练为提供针对天气图像的改进质量的图像;第三对象模型220(c),其被训练为提供针对动物及昆虫图像的改进质量的图像;第四对象模型220(d),其被训练为提供针对景观图像的改进质量的图像;第五对象模型220(e),其被训练为提供针对体育图像的改进质量的图像;第六对象模型220(f),其被训练为提供针对服装的图像的改进质量的图像;第七对象模型220(g),其被训练为提供针对人类及情绪图像的改进质量的图像;以及第八对象模型220(h),其被训练为提供针对交通图像的改进质量的图像。每个模型具有特化的权重,即参数。

例如,在第一对象模型220(a)被训练为提供针对食物图像的改进质量的图像的情况下,其可以是被训练为改进饱和度,改进锐度并且根据食物的类型来将图像的色温修改为暖或冷的模型。

根据本公开,第二模型可以是去噪声模型、去模糊模型、边缘增强模型、去马赛克模型、色调增强模型、白平衡模型、超分辨率模型、宽动态范围模型、高动态范围模型和解压缩模型当中的至少一种图像处理模型。

例如,参照图8b,第二模型220″可以是多个模型,其被训练为对以下模型的图像执行不同的处理:第一对象模型220″(a),其针对输入图像提供超分辨率(S/R)处理;第二对象模型220″(b),其被训练为针对输入图像提供去噪声,即去噪声处理;第三对象模型220″(c),其被训练为提供去除输入图像上的模糊现象的去模糊处理;第四对象模型220″(d),其被训练为针对输入图像提供边缘增强处理;第五对象模型220″(e),其被训练为针对输入图像提供去马赛克处理;第六对象模型220″(f),其被训练为针对输入图像提供色调增强处理;第七对象模型220″(g),其被训练为针对输入图像提供白平衡处理;以及第八对象模型220″(h),其被训练为提供去除输入图像上的压缩的解压缩处理。

然而,不限于此,并且第二模型可以是被训练为删除或模糊对象图像中的不想要的特定区域(例如,除对象之外的区域)的图像处理模型。

根据本公开,第二模型可以是其中组合了多个模型的集成模型。

例如,参照图8c,由第一分类模型(未示出)分类为“天气”类别或“雨”或“雨伞”的图像30被输入到集成模型610。此时,集成模型610是根据“天气”类别或“雨”和“雨伞”的对象(或类别)特化的模型,并且可以是其中用于天气的第二对象模型220(b)和用于边缘增强的第四对象模型220″(d)并行连接的模型。也就是说,输入图像30由第二对象模型220(b)和第四对象模型220″(d)中的每一者处理,并且两个经处理结果可以被集成以输出经处理图像40。在该情况下,质量上改进的图像40可以是通过对由两个模型处理的对象图像的像素进行组合而生成的图像。

然而,不限于上述特征,并且第二模型可以是其中多个对象模型串行连接的模型。

例如,进一步参照图8d,由第一分类模型(未示出)分类为“食物”类别或“寿司”或“日本食物”的图像40被输入到第二模型220″′。此时,第二模型220″′是根据“食物”类别或“寿司”和“日本食物”的对象(或类别)特化的模型,并且可以是被训练为改进输入图像的色调的第六对象模型220″(f)和被训练为改进输入图像的锐度的第九对象模型220″(i)串行连接的模型。也就是说,输入图像40被输入到第六对象模型220″(f)并且被输出为色调增强图像45。色调增强图像45再次被输入到第九对象模型220″(i),使得可以最终输出色调和锐度增强的图像50。此外,在第二模型中,可以根据旨在改进质量的对象的类型或对象的类别而在组合或顺序方面不同地选择对象模型的串行连接。

然而,不限于此,并且在获得根据对象的改进质量的图像的步骤S530中,可以针对预定对象区域来生成改进质量的图像。

例如,参照图7,在获得根据对象的改进质量的图像的步骤S530中,根据由第一模型210针对ROI 12分类的结果来确定包括第一对象模型220(a)、第二对象模型220(b)和第三对象模型220(c)、…的多个第二模型220中的至少一者。接下来,在图像10被输入到至少一个模型之后,其上图像被处理的图像20被输出。在该情况下,质量改进的图像20可以包括其中针对ROI 12处理了图像的对象区域22,也就是说,质量得以改进。换言之,可以通过第二模型220仅对图像10中的对象区域12执行质量改进。

返回参照图5,提供改进质量的图像S540。也就是说,在提供具有改进质量的图像的步骤S540中,可以根据对象(或者对象的类别)来提供具有最佳质量的图像。

也就是说,根据本公开的图像处理方法可以通过使用被训练为对图像内的对象进行分类的模型和被训练为根据所分类的对象来处理图像的模型的多个独立的基于神经网络的模型而根据对象的特性来提供具有最佳质量的图像。

此外,根据各种公开内容的第二模型是单个模型,并且可以应用根据对象的特性预设的多个参数当中的至少一个参数,从而可以根据对象的特性来提供具有改进质量的图像。这里,单个模型可以意指其中人工神经网络的层结构、通道的数量、输入数据的大小和输出数据的大小相同的模型。更详细地,当仅替换单个模型的经训练的权重时,单个模型可以根据替换的参数来执行特定图像处理功能。

在下文中,将参照图9至图11描述根据本公开的各种实施方式的图像处理方法。

图9是例示根据本公开的另一示例的基于神经处理单元的图像处理方法的示例性流程图。图10和图11是例示在根据本公开的另一示例的神经处理单元中使用第一模型和第二模型处理图像的图像输出过程的示例性示意图。

首先,参照图9,为了根据本公开的另一示例的基于神经处理单元的图像处理,接收包括具有多个类别当中的一个所选类别的对象的图像S910。然后,通过第一模型在图像中对对象进行分类S920。接下来,确定对象的类别S930。然后,将与对象的类别相对应的参数应用于第二模型S940。然后,通过第二模型根据对象的类别来获得改进质量的图像S950。最后,提供改进质量的图像S960。

另一方面,接收包括对象的图像的步骤S910和在图像中对对象进行分类的步骤S920可以以与以上在图5、图6和图7中描述的接收包括对象的图像的步骤S510和在图像中对对象进行分类的步骤S520相同的方式执行。

在确定对象的类别的步骤S930中,通过在图像中对对象进行分类的步骤步骤S920来确定所分类的对象的类别。

接下来,在将与类别相对应的参数应用于第二模型的步骤S940中,可以将根据对象的类别预先确定的参数应用于第二模型。

根据本公开的示例,在将与类别相对应的参数应用于第二模型的步骤S940中,其可以由包括多个对象参数的参数选择模块来执行。

例如,一并参照图10和11,在将与类别相对应的参数应用于第二模型的步骤S940中,可以根据图像10的类别或ROI 12来确定第一对象参数2200(a)、第二对象参数2200(b)、第三对象参数2200(c)、以及……当中的至少一个参数。在该情况下,可以通过第二模型参数选择模块2200根据所分类的对象的类别来自动地设置参数。然后,由第二模型参数选择模块2200确定的对象参数可以应用于第二模型220。

返回参照图9,通过两个模型来获得改进质量的图像S950,并且提供质量上改进的图像S960。此时,将省略对获得改进质量的图像的步骤S950和提供改进质量的图像的步骤S960的描述,如以上在图5、图6和图7中所描述的,步骤S950和步骤S960可以按照与获得改进质量的图像的步骤S530和提供改进质量的图像的步骤S540相同的过程来执行。也就是说,在根据本公开的图像处理方法中,可以针对单个第二模型根据对象来不同地应用预定训练的参数的对象参数,从而可以提供通过反映对象的特性而具有改进的质量的图像。

在下文中,将参照图12描述根据本公开的各种示例的基于神经处理单元的车牌识别系统。

图12是根据本公开的示例的基于神经处理单元的车牌识别系统的示例性图。

参照图12,在基于神经处理单元的车牌识别系统C中,车辆图像被输入到第一模型210,并且图像中的对象可以被分类为“车牌”。然而,不限于此,并且第一模型210可以被配置为根据使用图像的目的来将车辆图像分类为“汽车”、“号码”等。在该情况下,可以在确定对象图像之后执行对象分类,即分类为车牌。然后,其中对象(或类别)被分类的图像可以被输入到与对象相对应的第二模型220,并且可以输出其中仅强调了车牌区域的图像。此时,第二模型可以是用于车牌识别的特化模型,其已经被训练为不仅强调车牌区域,而且还删除或模糊其中将发生其他隐私问题的区域。

也就是说,基于神经处理单元的车牌识别系统C可以被设计为调制或删除某些不需要的信息。

在下文中,将参照图13描述根据本公开的各种示例的图像处理方法的实现形式。

图13是根据本公开的各种示例的图像处理方法的示例性实现图。

更具体地,参照图13(a),根据本公开的各种示例的图像处理方法可以被实现为编码器的软件。也就是说,当视频文件被输入到编码器时,可以输出经图像处理的视频文件。在该情况下,输入数据可以是视频文件(具有诸如AVI、MOV等之类的扩展名的文件)或图像文件(具有诸如RGB、JPEG、JPG等之类的扩展名的文件),但不限于此。

参照图13(b),根据本公开的各种示例的图像处理方法可以实现为TV。更具体地,在包括NPU的TV的系统板中,当视频文件被输入到NPU时,输出经图像处理的视频文件,并且可以在显示器上显示经图像处理的视频。在该情况下,输入数据可以是视频文件(具有诸如AVI、MOV等之类的扩展名的文件)或图像文件(具有诸如RGB、JPEG、JPG等之类的扩展名的文件),但不限于此。

参照图13(c),根据本公开的各种示例的图像处理方法可以实现为AR/VR。更具体地,当眼睛跟踪信息与视频文件一起输入到所提供的NPU时,输出经图像处理的视频文件,并且可以在显示器上显示经图像处理的视频。

根据该实现方法,可以以低计算功率等减小计算量。

根据本公开的示例的图像处理方法可以包括如下步骤:接收包括对象的图像的步骤;使用基于人工神经网络的第一模型对所述图像中的至少一个对象进行分类的步骤,所述第一模型被配置为通过输入所述图像对所述至少一个对象进行分类;以及通过使用基于人工神经网络的多个第二模型当中的至少一个模型,通过输入所述至少一个对象被分类的所述图像而根据所述至少一个对象来获得质量改进的图像的步骤,所述第二模型被配置为通过输入所述图像来输出根据特定对象被施加特化处理的图像。

所述至少一个对象可以是具有从多个类别当中选择的一个类别的对象,所述多个第二模型可以是被配置为输入与所述多个类别中的每一者相对应的图像并且输出根据所述多个类别被施加特化处理的图像的多个模型。此时,方法还可以包括在对所述至少一个对象进行分类之后确定所述至少一个对象的类别的步骤。此外,获得质量改进的图像的步骤还可以包括通过使用所述多个第二模型中的与所述至少一个对象的类别相对应的一者来获得所述质量改进的图像的步骤。

所述第一模型被配置为通过输入所述图像来输出所述至少一个对象的区域,并且处理方法还可以包括在所述接收步骤之后,通过使用所述第一模型在所述图像中确定所述至少一个对象的区域的步骤。此时,对所述至少一个对象进行分类的步骤可以包括使用所述第一模型基于所述至少一个对象的区域来对所述至少一个对象进行分类的步骤。

获得所述质量改进的图像的步骤可以包括通过使用所述第二模型获得所述至少一个对象的区域的所述质量改进的图像的步骤。

处理方法还可以包括从头戴式显示器(HMD)装置接收凝视数据的步骤。此时,确定所述至少一个对象的区域的步骤还可以包括基于所述凝视数据来确定所述至少一个对象的区域的步骤。

所述第一模型可以包括输入层和由多个节点配置的输出层。所述第二模型的数量可以对应于所述第一模型的所述输出层的节点的数量。

所述至少一个模型可以是以下各项中的至少一项:去噪声模型、去模糊模型、边缘增强模型、去马赛克模型、色调增强模型、白平衡模型、超分辨率模型、宽动态范围模型、高动态范围模型和解压缩模型。

所述至少一个模型可以是其中从所述多个第二模型当中选择的至少两个模型被组合的集成模型。

所述方法可以包括以下步骤:接收包括具有从多个类别当中选择的一个类别的对象的图像的步骤;通过使用基于人工神经网络的第一模型确定所述图像中的所述对象的类别的步骤,所述第一模型被配置为通过输入所述图像对所述对象进行分类;以及将针对所述多个类别中的每一者预先确定的多个参数当中的与所分类的对象的类别相对应的参数应用于基于人工神经网络的第二模型的步骤,所述第二模型被配置为通过输入所述图像来输出根据所述对象被施加特化处理的图像;以及通过使用被应用所述相对应的参数的所述第二模型,通过输入对象的类别被确定的所述图像来根据所述对象的类别获得质量改进的图像的步骤。

处理单元可以包括:内部存储器,所述内部存储器被配置为存储包括对象的图像、第一模型和第二模型;以及处理元件(PE),所述PE被配置为访问所述内部存储器并且被配置为处理所述第一模型和所述第二模型的卷积;以及控制器,所述控制器可操作地联接到所述内部存储器和所述处理元件。此时,所述第一模型可以是被配置为通过输入所述图像来对所述对象进行分类的基于人工神经网络的模型,并且所述第二模型可以是被配置为通过输入所述图像来输出根据所述对象被施加特化处理的图像的多个基于人工神经网络的模型。此外,所述控制器可以被配置为使所述PE使用所述第一模型对所述图像中的所述对象进行分类,并且通过使用所述第二模型的多个模型当中的至少一个模型基于其中所述对象被分类的所述图像而根据所述对象获得质量改进的图像。

所述处理单元还可以包括被配置为存储所述第一模型和所述第二模型的主存储器。此时,所述内部存储器可以被配置为读取所述主存储器中的所述第一模型和所述第二模型。

所述对象可以是具有从多个类别当中选择的一个类别的对象,并且所述第二模型可以是被配置为通过输入与所述多个类别中的每一者相对应的图像来输出被施加与所述多个类别中的每一者相对应的预定处理的经处理图像的多个模型。此时,所述控制器可以被配置为使所述PE确定所述对象的类别,并且通过使用所述第二模型的多个模型中的与所述对象的类别相对应的一者来获得所述质量改进的图像。

还可以包括被配置为选择所述第二模型的多个模型当中的至少一个模型的选择模块。

所述第一模型还可以被配置为通过输入所述图像来输出所述对象的区域。所述控制器还可以被配置为使所述PE使用所述第一模型确定所述图像中的所述对象的区域,并且使用所述第一模型基于所述对象的区域来对所述对象进行分类。

所述控制器还可以被配置为使所述PE通过使用所述第二模型来获得所述对象的区域的所述质量改进的图像。

所述内部存储器还可以存储来自头戴式显示器(HMD)装置的凝视数据,并且所述控制器还可以被配置为使所述PE基于所述凝视数据来确定所述对象的区域。

所述第一模型可以包括输入层和由多个节点配置的输出层,并且所述第二模型的数量可以对应于所述第一模型的所述输出层的节点的数量。

所述至少一个模型可以是以下各项中的至少一项:去噪声模型、去模糊模型、边缘增强模型、去马赛克模型、色调增强模型、白平衡模型、超分辨率模型、宽动态范围模型、高动态范围模型和解压缩模型。

所述至少一个模型可以是其中从所述多个第二模型当中选择的至少两个模型被组合的集成模型。

所述神经处理单元还可以被配置为将经过所述第二模型中的每一者处理的区域进行组合,以输出所述质量改进的图像。

所述第一模型和所述第二模型中的每一者可以包括参数。此时,所述内部存储器可以被配置为基于所述内部存储器的容量从所述主存储器读取被切片成预定尺寸的所述第一模型的参数或所述第二模型的参数。

所述第一模型和所述第二模型中的每一者包括参数,并且所述内部存储器可以被配置为包括所述第一模型的参数,并且从所述主存储器选择性地读取所述第二模型的参数。

所述第二模型包括参数,所述图像是多个图像,并且当由所述第一模型针对所述多个图像当中的所选择的图像的对象的分类结果与针对前一个图像的对象的分类结果相同时,所述内部存储器可以包括与所述前一个图像的对象的分类结果相对应的所述第二模型的参数。

所述处理单元包括:内部存储器,所述内部存储器被配置为存储包括具有从多个类别当中选择的一个类别的对象的图像、第一模型和第二模型;处理元件(PE),所述PE被配置为访问所述内部存储器并且被配置为处理所述第一模型和所述第二模型的卷积;以及控制器,所述控制器可操作地联接到所述内部存储器和所述处理元件。此时,所述第一模型是被配置为通过输入所述图像来对所述对象进行分类的基于人工神经网络的模型,并且所述第二模型是被配置为通过输入所述图像来输出根据所述对象被施加特化处理的图像的基于人工神经网络的模型。此外,所述控制器可以使所述PE使用所述第一模型在所述图像中对所述对象进行分类。所述控制器可以被配置为将针对所分类的对象中的每一者预先确定的多个参数当中与所述所分类的对象的类别相对应的参数应用于所述第二模型,并且使用被应用所述相对应的参数的所述第二模型,通过输入所述类别被分类的所述图像而根据所述对象的类别来获得质量改进的图像。

还可以包括被配置为选择所述多个参数的选择模块。

所述图像处理方法包括以下步骤:接收输入图像的步骤;对所述输入图像的至少一个对象进行分类的步骤;应用与所分类的对象相对应的人工神经网络模型的步骤;以及利用所选择的人工神经网络模型对所述输入图像进行图像处理的步骤。

对所述输入图像的至少一个对象进行分类的步骤可以由被训练为对所述输入图像的至少一个对象进行分类的第一模型来执行。

第一模型可以被训练为确定所述至少一个对象的区域。

确定所述至少一个对象的区域的方法可以是对象检测或语义分割。

应用与所述所分类的对象相对应的模型的步骤可以由所述第二模型的选择模块来执行。

所述第二模型可以包括与所述第一模型的对象分类的数量相对应的多个对象模型。每个对象模型可以是由将特定图像处理应用于特定对象的训练数据集训练的对象图像处理模型。

一种人工神经网络图像处理方法,其中,所述第二模型包括与所述第一模型的对象分类的数量相对应的对象参数。

设备可以包括:第一模型,所述第一模型被训练为对输入图像的至少一个对象进行分类;以及第二模型,所述第二模型被训练为执行与所述至少一个对象的分类相对应的图像处理。

所述设备还可以包括被配置为处理所述第一模型和所述第二模型的神经处理单元。

所述设备可以被配置为设定所述输入图像的感兴趣区域(ROI),并且所述图像处理可以被配置为至少处理所述ROI中的超分辨率。

所述第二模型可以被训练为进行去噪声、去模糊、边缘增强模型、去马赛克、色调增强、白平衡、超分辨率、超分辨率和解压缩中的至少一种图像处理。

神经处理单元可以包括:NPU内部存储器,所述NPU内部存储器被配置为存储所述第一模型和所述第二模型中的至少一者的至少一部分;以及处理元件阵列,所述处理元件阵列与所述NPU内部存储器进行通信,并且被配置为处理所述第一模型和所述第二模型中的至少一者的卷积。

所述设备还包括主存储器,所述主存储器被配置为存储所述第一模型和所述第二模型,所述NPU内部存储器可以被选择性地配置为从所述主存储器读取所述第一模型和所述第二模型。

所述神经处理单元可以被配置为利用所述第一模型执行对象识别操作。

所述神经处理单元可以被配置为利用所述第二模型执行图像处理操作。

所述至少一个处理元件可以被配置为处理所述第二模型的与在所述第一模型中分类的对象的数量相对应的对象图像处理模型。

所述神经处理单元可以被配置为通过在所述对象图像处理模型中的每一者中组合经图像处理的区域来生成经图像处理的输出图像。

基于所述NPU内部存储器的存储器大小,所述NPU内部存储器可以被配置为从所述主存储器接收被切片成特定尺寸的所述第一模型和所述第二模型的每个参数的至少一部分。

所述第一模型的参数的至少一部分驻留在所述NPU内部存储器中,并且所述第二模型的参数当中的与所述第一模型的所述对象识别结果相对应的所述第二模型的参数的至少一部分可以被切换到所述NPU内部存储器。

当所述第一模型的所述对象识别结果与前一帧相同时,所述第二模型的至少一些参数可以驻留在所述NPU内部存储器中。

在本说明书和附图中公开的本公开的示例仅仅是为了容易地解释本公开的技术内容并且有助于理解本公开的具体示例,并不旨在限制本公开的范围。对于本公开所属领域的普通技术人员而言将显而易见的是,除了本文中所描述的示例之外,还可以实现基于本发明的技术思想的其它修改的示例。

[支持本发明的国家R&D项目]

[项目唯一编号]1711126253

[任务编号]2020-0-01297-002

[部名称]科学和ICT部

[任务管理(专属)机构的名称]信息和通信规划与评估研究院

[研究项目名称]下一代智能半导体技术开发(设计)(R&D)

[研究标题]用于高级数据复用和超低功率边缘的深度学习处理器

技术发展

[贡献率]1/1

[项目执行组织的名称]DeepX有限公司

[研究周期]2021.01.01-2021.12.31

技术分类

06120116566576