CN114581879A - 图像识别方法、装置、电子设备以及存储介质 - Google Patents

图像识别方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN114581879A
CN114581879A CN202210118596.XA CN202210118596A CN114581879A CN 114581879 A CN114581879 A CN 114581879A CN 202210118596 A CN202210118596 A CN 202210118596A CN 114581879 A CN114581879 A CN 114581879A
Authority
CN
China
Prior art keywords
image data
data
image
processing
quantization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210118596.XA
Other languages
English (en)
Inventor
胡宇
熊恒昌
姬彬斐
刘嘉超
刘兰个川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Xiaopeng Autopilot Technology Co Ltd
Original Assignee
Guangzhou Xiaopeng Autopilot Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Xiaopeng Autopilot Technology Co Ltd filed Critical Guangzhou Xiaopeng Autopilot Technology Co Ltd
Priority to CN202210118596.XA priority Critical patent/CN114581879A/zh
Publication of CN114581879A publication Critical patent/CN114581879A/zh
Priority to PCT/CN2022/122438 priority patent/WO2023151285A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

本申请公开了一种图像识别方法、装置、电子设备以及存储介质,获取待识别图像;对待识别图像进行线性处理得到线性图像数据;其中,线性图像数据的数据类型为浮点类型;对线性图像数据进行预处理得到预处理图像数据;其中,预处理图像数据处于预处理阈值范围内;根据图像量化系数对预处理图像数据进行第一量化处理,得到第一图像数据;第一图像数据的数据类型为整数类型;对第一图像数据进行第二量化处理,得到第二图像数据;第二图像数据的数据类型为整数类型;对第二图像数据进行识别处理,得到待识别图像的识别结果。以此,在图像识别过程中,需处理的图像数据被转换为整数类型的数据,降低了处理难度,减小了计算量,从而有效提升神经网络模型处理效率,推动神经网络技术在计算机视觉领域的进一步应用。

Description

图像识别方法、装置、电子设备以及存储介质
技术领域
本申请涉及图像处理技术领域,更具体地,涉及一种图像识别方法、装置、电子设备以及存储介质。
背景技术
随着人工智能技术的发展,神经网络模型在计算机视觉领域得到了广泛的研究,在自动驾驶等领域,神经网络模型可以用于图像识别,以辅助车辆进行路况识别、车位识别等,并发挥着越来越重要的作用。
然而,随着对图像识别目标检测、目标分类等精度的要求越来越高,神经网络模型的结构也愈加复杂,神经网络模型进行数据处理的难度也随之加大,严重影响神经网络模型的处理速度,限制了神经网络模型在计算机视觉领域的进一步应用。
发明内容
鉴于上述问题,本发明提出了一种图像识别方法、装置、电子设备以及存储介质,以改善上述问题。
第一方面,本申请实施例提供了一种图像识别方法,该方法包括:获取待识别图像;对待识别图像进行线性处理得到线性图像数据;线性图像数据的数据类型为浮点类型;对线性图像数据进行预处理得到预处理图像数据;预处理图像数据处于预处理阈值范围内;根据图像量化系数对预处理图像数据进行第一量化处理,得到第一图像数据;第一图像数据的数据类型为整数类型;对第一图像数据进行第二量化处理,得到第二图像数据;第二图像数据的数据类型为整数类型;对第二图像数据进行识别处理,得到待识别图像的识别结果。
第二方面,本申请实施例还提供了一种图像识别装置,该装置包括:图像获取模块、线性处理模块、预处理模块、第一量化模块以及第二量化模块。其中,图像获取模块用于获取待识别图像;线性处理模块用于对待识别图像进行线性处理得到线性图像数据;线性图像数据的数据类型为浮点类型;预处理模块用于对线性图像数据进行预处理得到预处理图像数据;预处理图像数据处于预处理阈值范围内;第一量化模块用于根据图像量化系数对预处理图像数据进行第一量化处理,得到第一图像数据;第一图像数据的数据类型为整数类型;第二量化模块用于对第一图像数据进行第二量化处理,得到第二图像数据;第二图像数据的数据类型为整数类型;识别模块用于对第二图像数据进行识别处理,得到待识别图像的识别结果。
第三方面,本申请实施例还提供了一种电子设备,包括一个或多个处理器、存储器以及一个或多个应用程序。其中,一个或多个程序被存储在存储器中并被配置为由处理器执行以实现上述的图像识别方法。
第四方面,本申请实施例还提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,其中,在程序代码被处理器运行时执行上述的图像识别方法。
本发明提供的技术方案,通过获取待识别图像;对待识别图像进行线性处理得到线性图像数据;线性图像数据的数据类型为浮点类型;对线性图像数据进行预处理得到预处理图像数据;预处理图像数据处于预处理阈值范围内;根据图像量化系数对预处理图像数据进行第一量化处理,得到第一图像数据;第一图像数据的数据类型为整数类型;对第一图像数据进行第二量化处理,得到第二图像数据;第二图像数据的数据类型为整数类型;对第二图像数据进行识别处理,得到待识别图像的识别结果。以此,在图像识别过程中,需处理的图像数据被转换为整数类型的数据,降低了处理难度,减小了计算量,从而有效提升神经网络模型的处理效率,推动了神经网络技术在计算机视觉领域的进一步应用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,而不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例及附图,都属于本发明保护的范围。
图1示出了本申请实施例提出的一种图像识别方法的流程示意图。
图2示出了本申请实施例提出的一种图像识别装置的结构框图。
图3示出了本申请实施例提出的一种电子设备的结构框图。
图4示出了本申请实施例提出的一种计算机可读取存储介质的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着人工智能技术的发展,神经网络模型在计算机视觉领域得到了广泛的研究,在自动驾驶等领域,神经网络模型可以用于图像识别,以辅助车辆进行路况识别、车位识别等,并发挥着越来越重要的作用。
然而,随着对图像识别目标检测、目标分类等精度的要求越来越高,神经网络模型的结构也愈加复杂,神经网络模型进行数据处理的难度也随之加大,神经网络模型涉及到的都是浮点类型的数值计算,且需要进行大量计算量多且复杂的计算,严重影响神经网络模型的处理速度,限制了神经网络模型在计算机视觉领域的进一步应用
为了改善上述问题,本申请的发明人提出了本申请提供的图像识别方法、装置、电子设备以及存储介质,通过获取待识别图像;对待识别图像进行线性处理得到线性图像数据;线性图像数据的数据类型为浮点类型;对线性图像数据进行预处理得到预处理图像数据;预处理数据处于预处理阈值范围内;根据图像量化系数对预处理图像数据进行第一量化处理,得到第一图像数据;第一图像数据的数据类型为整数类型;对第一图像数据进行第二量化处理,得到第二图像数据;第二图像数据的数据类型为整数类型;对第二图像数据进行识别处理,得到待识别图像的识别结果。以此,在图像识别过程中,需处理的数据被转换为整数类型的数据,降低了处理难度,减小了计算量,从而有效提升神经网络模型处理效率,推动神经网络技术的进一步应用。
下面将结合附图具体描述本申请的各实施例。
请参阅图1,本申请一实施例提供了一种图像识别方法,可应用于电子设备,本实施例描述的是计算机设备侧的步骤流程,该方法可以包括步骤S110至步骤S160。
步骤S110、获取待识别图像。
在本申请的实施例中,电子设备可以获取需要进行识别的待识别图像。待识别图像可以是车辆工作过程中获取的图像,例如包含路况、停车位等元素的图像。电子设备通过对待识别图像进行图像识别,以对待识别图像中的路况、停车位等进行识别,从而辅助车辆进行自动驾驶。
在一些实施方式中,电子设备可以是服务器或者终端,电子设备具有运算能力。电子设备可以包括存储单元、处理器等。
步骤S120、对待识别图像进行线性处理得到线性图像数据。
在本申请的实施例中,电子设备可以通过神经网络模型对待识别图像进行图像识别。神经网络模块可以包括线性结构,以通过线性结构对待识别图像进行线性处理得到线性图像数据。其中,线性图像数据的数据类型为浮点类型。
在一些实施方式中,线性图像数据的类型可以为float16、float32以及float64等中的其中一种。本申请实施例以待处理数据的类型为float32为例进行说明。
在一些实施方式中,线性结构可以包括卷积层、归一化层、池化层等。例如,卷积层可以用于提取待识别图像中图像识别所需的关键特征,如车位角点特征等。具体可以根据实际使用需要进行设置,本申请对此不作限制。
步骤S130、对线性图像数据进行预处理得到预处理图像数据。
在本申请的实施例中,为了解决线性结构表达能力不足的缺陷,需要通过激活结构对线性图像数据进行激活处理,以增加非线性因素,提升神经网络模型学习、理解复杂和非线性的函数的能力。
然而,激活结构所占内存较大,计算量较多,导致推理速度较慢,以激活结构采用GELU激活函数为例进行说明,GELU激活函数为神经网络模型中的激活函数结构,相较于其它激活结构,GELU激活函数能够显著提高神经网络模型在目标检测和目标分类上的精度。特别是在计算机视觉领域,以Transformer模块为主要模块的神经网络模型,通常采用GELU激活函数作为激活结构。
然而,GELU激活函数本质是在RELU激活函数的基础上增加了随机正则的思想,具体是将神经元的输入进行线性激活后,乘以一个高斯正态分布影响因子。关于GELU激活函数的具体公式如公式一。
xP(X≤x)=xφ(x) (公式一)
其中,φ(x)表示以x的高斯正态分布的概率分布函数。将φ(x)完整展开如公式二。
Figure BDA0003497572010000051
其中,化简公式二得到公式三。
Figure BDA0003497572010000052
在上述公式一~公式三中,x表示GELU激活函数所接受到的上一层的神经元的输入。由于φ(x)是服从正态分布的,因此φ(x)的取值范围在[0,1]之间。当φ(x)的值趋近于0,xφ(x)的值(即GELU激活函数的输出)越趋近于0。当φ(x)的值趋近于0,xφ(x)的值越趋近于x,即GELU激活函数对应的激活结构的输出结果越可能将x的值保留。
由上述公式可以知道,GELU激活函数中由于φ(x)的取值范围在[0,1]之间,因此涉及到的都是浮点类型的数值计算,并且φ(x)中高斯分布的计算中包含积分、开方、平方等复杂计算,计算量多且复杂,严重影响推理速度,限制了神经网络技术的在计算机视觉领域的进一步应用。
在本申请的实施例中,线性图像数据的类型为浮点类型,如果直接通过现有的激活结构进行处理,计算复杂、处理效率低。因此,可以通过本申请实施例提供的图像识别方法对线性图像数据进行处理以提升神经网络模型的运行速度。
下面,将以激活结构采用GELU激活函数为例对本申请实施例提供的图像识别方法的具体过程进行说明。
为了减小误差,本申请的实施例中,对线性图像数据进行预处理得到预处理图像数据,以将线性图像数据的数值大小限制在预处理阈值范围内,从而确保运算精度。
在一些实施方式中,预处理阈值范围的最小值为第一处理值,预处理阈值范围的最大值为第二处理值。
在一些实施方式中,为了对线性图像数据进行预处理,步骤S130可以包括下述步骤。
(1)若线性图像数据在预设处理阈值范围内,则将线性图像数据作为预处理图像数据。
(2)否则,若线性图像数据小于第一处理值,则将预处理图像数据的值设置为第一处理值。
(3)若线性图像数据大于第二处理值,则将预处理图像数据的值设置为第二处理值。
可以理解的是,预处理阈值范围可以根据实际使用需要进行设置,具体可以根据后续所需整数类型(后续将数据的类型由浮点类型转换为整数类型)进行确定,本申请对此不作限制,例如在后续所需整数类型为Int8类型时,预处理阈值范围可以为-2.93~2.93。
以预处理阈值范围为-2.93~2.93为例进行说明,即第一处理值为-2.93,第二处理值为2.93。若线性图像数据为2,即线性图像数据2处于预处理阈值范围内,则线性图像数据2对应的预处理图像数据为2;若线性图像数据为-3,即线性图像数据-3小于第一处理值-2.93,则线性图像数据-3对应的预处理图像数据为-2.93;若线性图像数据为3,即线性图像数据3大于第二处理值2.93,则线性图像数据3对应的预处理图像数据为2.93。
步骤S140、根据图像量化系数对预处理图像数据进行第一量化处理,得到第一图像数据。
在本申请的实施例中,电子设备根据图像量化系数对预处理图像数据进行第一量化处理,以将预处理图像数据转变为整数类型的第一图像数据,以减少后续进一步计算的复杂度。
在一些实施方式中,整数类型可以是int8、int10、int16、bf16等中的一种,本申请实施例以整数类型为int8进行说明。
在本申请的实施例中,图像量化系数用于将线性图像数据由浮点类型转换为整数类型。
在一些实施方式中,图像量化系数可以是指定值,即根据实际使用需要进行设置。
在一些实施方式中,在步骤S140之前,图像量化系数也可以通过如下步骤计算得到。
(1)确定线性图像数据的绝对值,得到过程图像数据;其中,线性图像数据的数量为至少一个。
(2)将过程图像数据中数值最大的数据作为目标过程图像数据。
(3)根据预设阈值和目标过程图像数据确定图像量化比例系数,其中,图像量化比例系数不大于预设阈值。
在本申请的实施例中,线性图像数据的数量为一个或多个。当线性图像数据的数量为多个时,逐个确定每个线性图像数据的绝对值,以得到每个线性图像数据对应的过程图像数据。
其中,本申请实施例设置了预设阈值,以将线性图像数据限制在预设阈值以内,从而可以使浮点类型的线性图像数据能够均匀的划分在预设数量个数据空间内,以避免因为数据分布太大导致数据不均匀导致的误差,
在本申请的实施例中,预设阈值的取值范围可以为4.5~5.5。可选地,预设阈值可以设置为4.5、5、5.5等,具体可以根据实际需要进行设置。为了获得更高的精度,优选地,预设阈值可以取值为5,即预设阈值量化为整型,从而本申请实施例的图像识别方法可以取得更高的精度。
在一些实施方式中,若过程图像数据小于预设阈值,则将过程图像数据作为预设阈值。
在一些实施方式中,若过程图像数据大于或等于预设阈值,则将预设阈值作为图像量化系数。
在一些实施方式中,若存在指定的图像量化系数,则根据指定的图像量化系数进行后续的计算。
在一些实施方式中,若确定无指定的图像量化系数,则根据上述方法确定图像量化系数。
在一些实施方式中,为了对预处理图像数据进行第一量化处理,步骤S140包括下述步骤。
(1)根据图像量化系数确定量化阈值范围。
在本申请的实施例中,根据图像量化比例系数a_max(a_max>0),可以确定量化阈值范围为-a_max~a_max。其中,第一量化值为-a_max,第二量化值为a_max。
(2)根据预处理图像数据和量化阈值范围确定第一数据;其中,第一数据处于量化阈值范围内。
在本申请的实施例中,为了提高计算精度,需要将预处理图像数据限制在量化阈值范围内。
在一些实施方式中,若预处理图像数据处于量化阈值范围内,则将预处理图像数据作为第一数据。
在一些实施方式中,若预处理图像数据小于第一量化值,则将第一量化值作为第一数据。
在一些实施方式中,若预处理图像数据大于第二量化值,则将第二量化值作为第一数据。
(3)根据第一数据和规模系数得到第二数据。
在本申请的实施例中,规模系数可以根据图像量化系数以及后续所需整数类型进行确定。
以所需整数类型为int8为例进行说明,由于int8占据1个字节(byte),也就是8个二进制位(bit),每个二进制位可以存储0和1两个数,8个二进制位可以有28=256种组合,即可以存储256个数,则规模系数sclae可以由如下公式四获得。
Figure BDA0003497572010000081
其中,sclae表示规模系数,a_max表示量化比例系数;Int表示整数系数。
在本申请的实施例中,为了将第一数据划分在整数类型对应的数据空间中,可以将第一数据除以规模系数得到第二数据。以整数类型为int8为例,int8类型对应有256个数据空间,则Int为256。同理,若整数类型为int10,则int10类型对应有1024个数据空间,则Int为1024,其它整理类型的情况类似,在此不再赘述。
(4)将第二数据进行裁剪处理得到第三数据,其中,第三数据处于裁剪阈值范围内。
其中,裁剪阈值范围可以根据所需整数类型进行确定,例如,所需整数类型为int8类型,由于int8整数类型对应有256个数据空间,即可以对应256个数值,从而可以根据对应的256个数据设置裁剪阈值范围,以将第二数据限制在256个数据的范围内。
示例性地,256个数据可以分为-128~127,其中包括128个负整数、0以及127个正整数,则裁剪阈值范围可以设置为-128~127,其中第一裁剪值为-128,第二裁剪值为127。可以理解的是,在其它实施方式中,裁剪阈值范围也可以设置为其它范围,例如-127~128等。
在一些实施方式中,若第二数据处于裁剪阈值范围内,则将第二数据作为第三数据。
在一些实施方式中,若第二数据小于第一裁剪值,则将第一裁剪值作为第三数据。
在一些实施方式中,若第二数据大于第二裁剪值,则将第二裁剪值作为第三数据。
示例性地,以裁剪阈值范围为-128~127为例,则第一裁剪值为-128,第二裁剪值为127。若第二数据为10,即第二数据10处于裁剪阈值范围内,则第二数据10对应的第三数据为10;若第二数据为-130,即第二数据10小于第一裁剪值-128,则第二数据-130对应的第三数据为-128;若第二数据为130,即第二数据130大于第二裁剪值127,则第二数据130对应的第三数据为127。
(5)将第三数据进行取整处理得到第一图像数据。
在本申请的实施例中,进一步通过取整处理,将第三数据转换为整数类型的第一图像数据。其中,第一图像数据处于裁剪阈值范围内。
可选地,可以将第三数据的小数部分舍弃得到第一图像数据。例如,第三数据为10.02,则第三数据10.02对应的第一量化数据为10。
可选地,可以将第三数进行四舍五入得到第一图像数据。例如,第三数据为120.6,则第三数据120.6对应的第一图像数据为121。又如,第三数据为120.1,则第三数据120.1对应的第一图像数据为120。
步骤S150、将第一图像数据进行第二量化处理,得到第二图像数据。
在本申请的实施例中,为了获得线性图像数据激活处理后的数据,可以将第一图像数据进行第二量化处理,以得到第二图像数据,其中,第一图像数据、第二图像数据的类型为整数类型。整数类型可以例如是int8、int10、int16等中的一种,本申请实施例以整数类型为int8进行说明。
在一些实施方式中,为了对第一图像数据进行第二量化处理,步骤S150可以包括下述步骤。
(1)根据第一图像数据和预设首地址,确定输出地址。
(2)根据输出地址和预设存储空间,查找预设地址对应表中与输出地址对应的数据作为第二图像数据。
在本申请的实施例中,以所需整数类型为int8类型进行说明,则第一图像数据可以根据公式六~七获得。
Figure BDA0003497572010000101
Figure BDA0003497572010000102
其中,qi表示第一图像数据,qi为整数,qi处于裁剪阈值范围内;Resulti表示qi对应的第二图像数据;1≤i≤Int,i为整数;scale_lut表示激活系数;a_max表示量化比例系数;Int表示整数系数;Round函数用于对数据进行四舍五入操作。
在本申请的实施例中,当整数类型为Int8时,Int为256,整数类型为Int10时,Int为1024,具体可以根据所需的整数类型进行设置,本申请对此不作限制。
在本申请的实施例中,裁剪阈值范围可以根据整数类型进行设置,例如整数类型为Int8时,裁剪阈值范围可以设置为-128~127。
通过公式六和七,可以确定裁剪阈值范围内每个取值对应的第二图像数据,如表一所示。
q<sub>i</sub> Result<sub>i</sub>
q<sub>1</sub>=-128 0
q<sub>129</sub>=0 129
…… ……
q<sub>256</sub>=127 256
表一
为了提高运算速度,可以预先在电子设备的内存中分配一个连续的预设地址空间,以整数类型为int8为例,则预设地址空间的大小为256,并确定该地址空间的预设首地址offset。将表一中裁剪阈值范围内每个第一图像数据qi对应的第二图像数据Resulti依次存储于预设地址空间中,其中每个第二图像数据Resulti对应的存储地址为Qi,如表二所示。
q<sub>i</sub> Q<sub>i</sub>=offset+q<sub>i</sub> Result<sub>i</sub>
q<sub>1</sub>=-128 offset-128 0
q<sub>129</sub>=0 offset 129
…… …… ……
q<sub>256</sub>=127 offset+127 256
表二
从而,可以根据第一图像数据和预设首地址确定输出地址,具体地,可以根据公式八确定输出地址。
Qi=qi+offset (公式八)
其中,qi表示第一图像数据,offset表示预设首地址,Qi表示输出地址。
示例性地,若第一图像数据为-127,预设首地址为Ox2127,则对应的输出地址为Ox2000。进而可以查找预设地址对应表中与输出地址对应的数据作为第二图像数据,从而可以有效减少运算量,提升运算效率。可以理解的是,预设首地址可以根据实际需要进行设置,此处仅作示例,本申请对此不作限制。
步骤S160、对第二图像数据进行识别处理,得到待识别图像的识别结果。
在本申请的实施例中,神经网络模型基于第二图像数据进行识别处理,得到待识别图像对应的识别结果,例如,识别结果可以包括但不限于车位关键点的坐标、红绿灯状态、障碍物等,进而车辆可以根据识别结果辅助进行自动驾驶。
经过上述实施例,本申请实施例提供的图像识别方法可以实现对神经网络模型中的线性图像数据进行加速处理,以提升运算效率,由于上述实施例中,涉及到线性图像数据的类型由浮点类型转换为整数类型,转换过程由于量化误差可能会导致处理结果存在误差。
为了减少转换过程所带来的误差,在一些实施方式中,本申请实施例的图像识别方法还可以包括:将第二图像数据进行反量化处理,以得到第三图像数据,其中,第三图像数据的类型为浮点类型。
在一些实施方式中,以整数类型为int8为例进行说明,第三图像数据可以通过下面的公式九进行确定。
Figure BDA0003497572010000121
其中,dequanti表示第三图像数据;Resulti表示第二图像数据,dea_min表示第一反量化比例系数;dea_max表示第二反量化比例系数;Int表示整数系数。
在本申请的实施例中,第一反量化比例系数可以设置为0,第二反量化比例系数可以设置为1。
在本申请的实施例中,通过第二图像数据进行反量化处理,第三图像数据参与神经网络模型的训练,使神经网络模型训练过程中可以执行traininig aware quantization(训练时量化)的操作,以使神经网络模型可以学习到量化转换过程导致的量化损失,使得最终训练好的神经网络模型上整型数据精度与浮点型数据精度保持一致。
为了更好的说明本申请实施例的硬件加速方法的效果,下面将随机获取多组线性图像数据,将线性图像数据采用传统的激活结构(如激活函数采用GELU函数)得到的第一结果,与线性图像数据采用本申请实施例的图像识别方法得出的第二结果,通过确定两者的相似度(例如采用余弦相似度方法等)以比较两者的处理效果,如下表三所示。
待处理数据 相似度
[435,1,2048] 0.99
[1,435,2048] 1.00
[2048,435,1] 1.00
[100,50,2048] 1.00
[3,224,224] 1.00
表三
应当说明的是,相似度越接近于1,说明第一结果和第二结果的相似度越高,即代表本申请实施例的图像识别精度越高。由表三可以知道,本申请实施例采用的图像识别方法相较于传统的激活结构,计算结果相似度较高,也就是说,本申请实施例所采用的图像识别方法由于量化转换所产生的量化误差对结果的影响较小,进而证明本申请实施例所采用的图像识别方法具有较高的精度。
本申请实施例提供的一种硬件加速方法,通过获取待识别图像;对待识别图像进行线性处理得到线性图像数据;其中,线性图像数据的数据类型为浮点类型;对线性图像数据进行预处理得到预处理图像数据;其中,预处理图像数据处于预处理阈值范围内;根据图像量化系数对预处理图像数据进行第一量化处理,得到第一图像数据;第一图像数据的数据类型为整数类型;对第一图像数据进行第二量化处理,得到第二图像数据;第二图像数据的数据类型为整数类型;对第二图像数据进行识别处理,得到待识别图像的识别结果。以此,在图像识别过程中,需处理的数据被转换为整数类型的数据,降低了处理难度,减小了计算量,从而有效提升神经网络模型处理效率,推动神经网络技术的进一步应用。
请参阅图2,其示出了本发明一个实施例提供的图像识别装置200,该图像识别装置200包括:图像获取模块210、线性处理模块220、预处理模块230、第一量化模块240、第二量化模块250以及识别模块260。
其中,数据获取模块210用于获取待识别图像。
线性处理模块220用于对待识别图像进行线性处理得到线性图像数据;其中,线性图像数据的数据类型为浮点类型。
预处理模块230用于对线性图像数据数据进行预处理得到预处理图像数据,预处理图像数据处于预处理阈值范围内。
第一量化模块240用于根据图像量化系数对预处理图像数据进行第一量化处理,得到第一图像数据。其中,第一图像数据的类型为整数类型。
第二量化模块250用于将第一图像数据进行第二量化处理,得到第二图像数据;其中,第二图像数据的类型为整数类型。
在一些实施方式中,图像识别装置200还包括反量化模块,反量化模块用于将第二图像数据进行反量化处理,以得到第三图像数据。其中,第三图像数据的类型为浮点类型。
在一些实施方式中,预处理阈值范围的最小值为第一处理值,预处理阈值范围的最大值为第二处理值。其中,预处理模块220还用于若线性图像数据在预设处理阈值范围内,则将线性图像数据作为预处理图像数据,否则,若线性图像数据小于第一处理值,则将第一处理值作为预处理图像数据;若待处理数据大于第二处理值,则将第二处理值作为预处理图像数据。
在一些实施方式中,第一量化模块230包括量化阈值确定单元、第一数据确定单元、第二数据确定单元、第三数据确定单元以及第一量化单元。
其中,量化阈值确定单元用于根据图像量化系数确定量化阈值范围。
第一数据确定单元用于根据预处理图像数据和量化阈值范围确定第一数据;其中,第一数据处于量化阈值范围内。
第二数据确定单元用于根据第一数据和规模系数得到第二数据。
第三数据确定单元用于将第二数据进行裁剪处理得到第三数据,其中,第三数据处于裁剪阈值范围内。
第一量化单元用于将第三数据进行取整处理得到第一图像数据。
在一些实施方式中,第二量化模块240包括输出地址确定单元以及第二量化单元。
其中,输出地址确定单元用于根据所述第一图像数据和预设首地址,确定输出地址。
第二量化单元用于根据输出地址和预设存储空间,查找预设地址对应表中与输出地址对应的数据作为第二图像数据。
在一些实施方式中,图像识别装置200还包括:绝对值确定模块、目标确定模块以及图像量化系数确定模块。
其中,绝对值确定模块用于确定线性图像数据的绝对值,得到过程图像数据。其中,线性图像数据的数量为至少一个。
目标确定模块用于将过程图像数据中数值最大的数据作为目标过程图像数据。
图像量化系数确定模块用于根据预设阈值和目标过程图像数据确定图像量化系数,其中,图像量化系数不大于预设阈值。
在一些实施方式中,绝对值确定模块用于若确定无指定的量化比例系数,则确定线性图像数据的绝对值。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。对于方法实施例中的所描述的任意的处理方式,在装置实施例中均可以通过相应的处理模块实现,装置实施例中不再一一赘述。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现
请参阅图3,基于上述的硬件加速方法,本申请实施例还提供的另一种包括可以执行前述硬件加速方法的处理器310的电子设备300,电子设备300还包括一个或多个处理器310、存储器320以及一个或多个应用程序。其中,该存储器320中存储有可以执行前述实施例中内容的程序,而处理器310可以执行该存储器320中存储的程序。
其中,处理器310可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器310利用各种接口和线路连接整个电子设备300内的各个部分,通过运行或执行存储在存储器320内的指令、程序、代码集或指令集,以及调用存储在存储器320内的数据,执行电子设备300的各种功能和处理数据。可选地,处理器310可以采用数字信号处理(DigitalSignal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器310可集成中央处理器310(Central Processing Unit,CPU)、图像处理器310(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器310中,单独通过一块通信芯片进行实现。
存储器320可以包括随机存储器320(Random Access Memory,RAM),也可以包括只读存储器320(Read-Only Memory)。存储器320可用于存储指令、程序、代码、代码集或指令集。存储器320可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端在使用中所创建的数据(比如线性图像数据、预处理图像数据、第一图像数据、第二图像数据)等。
请参考图4,其示出了本申请实施例提供的一种计算机可读取存储介质400的结构框图。该计算机可读存储介质中存储有程序代码410,所述程序代码410可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读取存储介质400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码410可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码410可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种图像识别方法,其特征在于,所述方法包括:
获取待识别图像;
对所述待识别图像进行线性处理得到线性图像数据;所述线性图像数据的数据类型为浮点类型;
对所述线性图像数据进行预处理得到预处理图像数据;所述预处理图像数据处于预处理阈值范围内;
根据图像量化系数对所述预处理图像数据进行第一量化处理,得到第一图像数据;所述第一图像数据的数据类型为整数类型;
对所述第一图像数据进行第二量化处理,得到第二图像数据;所述第二图像数据的数据类型为整数类型;
对所述第二图像数据进行识别处理,得到所述待识别图像的识别结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述第二图像数据进行识别处理,得到所述待识别图像的识别结果,包括:
对所述第二图像数据进行反量化处理,得到第三图像数据,其中,所述第三图像数据的数据类型为浮点类型;
对所述第三图像数据进行识别处理,得到所述待识别图像的识别结果。
3.根据权利要求1所述的方法,其特征在于,所述预处理阈值范围的最小值为第一处理值,所述预处理阈值范围的最大值为第二处理值;
所述对所述线性图像数据进行预处理得到预处理图像数据,包括:
若所述线性图像数据在所述预设处理阈值范围内,则将所述线性图像数据作为预处理图像数据;
否则,若所述线性图像数据小于所述第一处理值,则将预处理图像数据的值设置为所述第一处理值;
若所述线性图像数据大于所述第二处理值,则将预处理图像数据的值设置为所述第二处理值。
4.根据权利要求1所述的方法,其特征在于,所述根据图像量化系数对所述预处理图像数据进行第一量化处理,得到第一图像数据,包括:
根据所述图像量化系数确定量化阈值范围;
根据所述预处理图像数据和所述量化阈值范围确定第一数据;其中,所述第一数据处于所述量化阈值范围内;
根据所述第一数据和规模系数得到第二数据;
将所述第二数据进行裁剪处理得到第三数据,其中,所述第三数据处于裁剪阈值范围内;
将所述第三数据进行取整处理得到第一图像数据。
5.根据权利要求1所述的方法,其特征在于,所述对所述第一图像数据进行第二量化处理,得到第二图像数据,包括:
根据所述第一图像数据和预设首地址,确定输出地址;
根据输出地址和预设存储空间,查找所述预设存储空间中与所述输出地址对应的数据作为第二图像数据。
6.根据权利要求1所述的方法,其特征在于,在所述根据图像量化系数对所述预处理图像数据进行第一量化处理,得到第一图像数据之前,所述方法还包括:
确定所述线性图像数据的绝对值,得到过程图像数据;其中,所述线性图像数据的数量为至少一个;
在所述过程图像数据中确定最大的过程图像数据作为目标过程图像数据;
根据预设阈值和所述目标过程图像数据确定图像量化比例系数,其中,所述图像量化比例系数不大于所述预设阈值。
7.根据权利要求6所述的方法,其特征在于,所述确定所述待处理图像数据的绝对值,包括:
若确定无指定的图像量化系数,则确定所述待处理数据的绝对值。
8.一种图像识别装置,其特征在于,所述装置包括:
图像获取模块,用于获取待识别图像;
线性处理模块,用于对所述待识别图像进行线性处理得到线性图像数据;所述线性图像数据的数据类型为浮点类型;
预处理模块,用于对所述线性图像数据进行预处理得到预处理图像数据;所述预处理图像数据处于预处理阈值范围内;
第一量化模块,用于根据图像量化系数对所述预处理图像数据进行第一量化处理,得到第一图像数据;所述第一图像数据的数据类型为整数类型;
第二量化模块,用于对所述第一图像数据进行第二量化处理,得到第二图像数据;所述第二图像数据的数据类型为整数类型;
识别模块,用于对所述第二图像数据进行识别处理,得到所述待识别图像的识别结果。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行如权利要求1-7任一项所述的图像识别方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的图像识别方法。
CN202210118596.XA 2022-02-08 2022-02-08 图像识别方法、装置、电子设备以及存储介质 Pending CN114581879A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210118596.XA CN114581879A (zh) 2022-02-08 2022-02-08 图像识别方法、装置、电子设备以及存储介质
PCT/CN2022/122438 WO2023151285A1 (zh) 2022-02-08 2022-09-29 图像识别方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210118596.XA CN114581879A (zh) 2022-02-08 2022-02-08 图像识别方法、装置、电子设备以及存储介质

Publications (1)

Publication Number Publication Date
CN114581879A true CN114581879A (zh) 2022-06-03

Family

ID=81773019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210118596.XA Pending CN114581879A (zh) 2022-02-08 2022-02-08 图像识别方法、装置、电子设备以及存储介质

Country Status (2)

Country Link
CN (1) CN114581879A (zh)
WO (1) WO2023151285A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023151285A1 (zh) * 2022-02-08 2023-08-17 广州小鹏自动驾驶科技有限公司 图像识别方法、装置、电子设备以及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595927B (zh) * 2018-04-04 2023-09-19 北京市商汤科技开发有限公司 身份认证、解锁及支付方法、装置、存储介质、产品和设备
CN111783642B (zh) * 2020-06-30 2023-10-13 北京百度网讯科技有限公司 一种图像识别方法、装置、电子设备及存储介质
CN112269595A (zh) * 2020-10-28 2021-01-26 清华大学 图像处理方法、装置、计算机设备及存储介质
CN112308096A (zh) * 2020-11-02 2021-02-02 得遇科技(杭州)有限责任公司 图像识别方法、装置、计算机设备和存储介质
CN114581879A (zh) * 2022-02-08 2022-06-03 广州小鹏自动驾驶科技有限公司 图像识别方法、装置、电子设备以及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023151285A1 (zh) * 2022-02-08 2023-08-17 广州小鹏自动驾驶科技有限公司 图像识别方法、装置、电子设备以及存储介质

Also Published As

Publication number Publication date
WO2023151285A1 (zh) 2023-08-17

Similar Documents

Publication Publication Date Title
US11488002B2 (en) Binary neural network accelerator engine methods and systems
CN111488985B (zh) 深度神经网络模型压缩训练方法、装置、设备、介质
CN110880038A (zh) 基于fpga的加速卷积计算的系统、卷积神经网络
CN107944545B (zh) 应用于神经网络的计算方法及计算装置
CN107395211B (zh) 一种基于卷积神经网络模型的数据处理方法及装置
CN110780923A (zh) 应用于二值化卷积神经网络的硬件加速器及其数据处理方法
CN111967608A (zh) 数据处理方法、装置、设备及存储介质
CN114581879A (zh) 图像识别方法、装置、电子设备以及存储介质
CN110782001B (zh) 一种基于组卷积神经网络使用共享卷积核的改进方法
CN112613604A (zh) 神经网络的量化方法及装置
CN112183744A (zh) 一种神经网络剪枝方法及装置
CN111814618A (zh) 行人重识别方法、步态识别网络训练方法及相关装置
CN116306879A (zh) 数据处理方法、装置、电子设备以及存储介质
CN117348837A (zh) 浮点精度模型的量化方法、装置、电子设备以及存储介质
CN115526310A (zh) 一种网络模型的量化方法、装置及设备
US20200327182A1 (en) Method for processing numerical data, device, and computer readable storage medium
CN109165097B (zh) 一种数据处理方法以及数据处理装置
CN113159297A (zh) 一种神经网络压缩方法、装置、计算机设备及存储介质
CN111815658B (zh) 一种图像识别方法及装置
CN114139678A (zh) 卷积神经网络量化方法、装置、电子设备和存储介质
CN111797984A (zh) 一种用于多任务神经网络的量化和硬件加速方法及装置
CN113128660A (zh) 深度学习模型压缩方法及相关设备
CN115482422B (zh) 深度学习模型的训练方法、图像处理方法和装置
CN113408696B (zh) 深度学习模型的定点量化方法及装置
CN117556273B (zh) 一种通过多图形处理器计算对比损失的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination