CN111383157B - 图像处理方法、装置、车载运算平台、电子设备及*** - Google Patents
图像处理方法、装置、车载运算平台、电子设备及*** Download PDFInfo
- Publication number
- CN111383157B CN111383157B CN201811647408.2A CN201811647408A CN111383157B CN 111383157 B CN111383157 B CN 111383157B CN 201811647408 A CN201811647408 A CN 201811647408A CN 111383157 B CN111383157 B CN 111383157B
- Authority
- CN
- China
- Prior art keywords
- fixed
- point
- parameters
- neural network
- network
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 166
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 151
- 238000000034 method Methods 0.000 claims abstract description 86
- 230000008569 process Effects 0.000 claims abstract description 40
- 230000006870 function Effects 0.000 claims description 86
- 230000004807 localization Effects 0.000 claims description 84
- 238000013528 artificial neural network Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 13
- 238000012886 linear function Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000013459 approach Methods 0.000 description 10
- 238000012549 training Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
本发明实施例提供一种图像处理方法、装置、车载运算平台、电子设备及***,所述方法包括:根据运算单元的定点位宽硬件资源量对卷积神经网络使用浮点表示的网络参数进行定点化处理,其中,所述网络参数包括所述卷积神经网络的卷积参数以及层输出参数;获取待处理的图像;控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果。该方法实现了在硬件资源有限的平台上使用卷积神经网络进行高效的图像处理。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种图像处理方法、装置、车载运算平台、电子设备及***。
背景技术
卷积神经网络在涉及计算机视觉任务的领域中发挥着重要作用。例如,在智能驾驶领域,可以基于卷积神经网络进行车道线检测、车道拟合等。卷积神经网络在硬件资源有限的平台上运行之前,通常需要进行定点化操作。其中,定点化操作是指将用浮点数表示的卷积神经网络中的卷积参数和中间层结果定点化为用定点数表示。
发明内容
本发明实施例提供一种图像处理方法、装置、车载运算平台、电子设备及***,所述技术方案如下。
本发明实施例第一方面提供一种图像处理方法,包括:
根据运算单元的定点位宽硬件资源量对卷积神经网络使用浮点表示的网络参数进行定点化处理,其中,所述网络参数包括所述卷积神经网络的卷积参数以及层输出参数;
获取待处理的图像;
控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果。
进一步的,所述根据运算单元的定点位宽硬件资源量对卷积神经网络的网络参数进行定点化处理,包括:
对所述卷积神经网络中的层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果以及所述卷积神经网络中的卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
进一步的,所述根据运算单元的定点位宽硬件资源量对卷积神经网络的网络参数进行定点化处理,包括:
根据卷积神经网络的网络参数确定定点化参数,所述定点化参数用于标识所述网络参数对应的定点数的小数位数;
根据所述定点化参数、预设的定点化函数以及所述定点位宽硬件资源量对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,其中,所述定点化函数为具有预设斜率的一次函数,所述预设斜率大于0。
进一步的,还包括:
对所述第一定点化后的卷积神经网络中的所述层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果、所述第一定点化后的卷积神经网络中的所述卷积参数以及所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
进一步的,所述根据卷积神经网络的网络参数确定定点化参数,包括:
根据所述卷积参数的小数位数以及所述层输出参数的小数位数,确定所述定点化参数。
进一步的,所述根据所述卷积参数的位数以及所述层输出参数的位数,确定所述定点化参数,包括:
将所述卷积参数的小数位数和所述层输出参数的小数位数中的最大小数位数,作为所述定点化参数对应的小数位数。
进一步的,所述根据所述定点化参数、预设的定点化函数以及所述定点位宽硬件资源量对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,包括:
根据所述定点位宽硬件资源量的比特位数以及所述定点化参数,确定所述网络参数的定点化电平;
根据所述定点化电平以及所述定点化函数,对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络。
进一步的,所述根据所述定点化电平以及所述定点化函数,对所述网络参数进行第一定点化,包括:
确定所述网络参数的值与目标电平的差值,所述目标电平为与所述网络参数的值最接近的定点化电平;
将所述差值以及所述目标电平输入所述定点化函数中,得到对所述网络参数进行所述第一定点化的结果。
进一步的,所述进行聚类,得到预设数量的聚类结果,包括:
从所述层输出参数中选择所述预设数量的层输出参数作为初始聚类中心;
根据所述初始聚类中心进行聚类迭代处理,得到所述预设数量的聚类结果。
进一步的,所述进行第二定点化,包括:
确定所述聚类结果的聚类中心;
基于所述聚类中心以及所述卷积神经网络中的卷积参数,或者,基于所述聚类中心以及所述第一定点化后的卷积神经网络中的所述卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化结果,其中,所述第二定点化用于将所述聚类中心定点化为与所述聚类中心最接近的定点化电平。
进一步的,还包括:
响应于所述定点化函数与目标阶跃函数的差异大于预设差异,修正所述定点化函数的斜率;
根据修正后的斜率进行新的所述第一定点化。
进一步的,所述控制所述运算单元根据定点化处理后的网络参数处理所述图像,包括:
控制所述运算单元根据定点化处理后的网络参数对所述图像进行如下至少一项处理:
定点乘法运算、定点加法运算、移位运算。
进一步的,所述图像的处理结果包括如下至少一项:
特征提取结果、分割结果、分类结果、对象检测/跟踪结果。
本发明实施例第二方面提供一种图像处理装置,包括:
第一处理模块,用于根据运算单元的定点位宽硬件资源量对卷积神经网络使用浮点表示的网络参数进行定点化处理,其中,所述网络参数包括所述卷积神经网络的卷积参数以及层输出参数;
获取模块,用于获取待处理的图像;
第二处理模块,用于控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果。
进一步的,所述第一处理模块包括:
聚类单元,用于对所述卷积神经网络中的层输出参数进行聚类,得到预设数量的聚类结果;
第二定点化单元,用于根据所述聚类结果以及所述卷积神经网络中的卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
进一步的,所述第一处理模块还包括:
确定单元,用于根据卷积神经网络的网络参数确定定点化参数,所述定点化参数用于标识所述网络参数对应的定点数的小数位数;
第一定点化单元,用于根据所述定点化参数、预设的定点化函数以及所述定点位宽硬件资源量对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,其中,所述定点化函数为具有预设斜率的一次函数,所述预设斜率大于0。
进一步的,所述第一处理模块具体用于:
对所述第一定点化后的卷积神经网络中的所述层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果、所述第一定点化后的卷积神经网络中的所述卷积参数以及所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
进一步的,所述确定单元具体用于:
根据所述卷积参数的小数位数以及所述层输出参数的小数位数,确定所述定点化参数。
进一步的,所述确定单元具体用于:
将所述卷积参数的小数位数和所述层输出参数的小数位数中的最大小数位数,作为所述定点化参数对应的小数位数。
进一步的,所述第一定点化单元具体用于:
根据所述定点位宽硬件资源量的比特位数以及所述定点化参数,确定所述网络参数的定点化电平;
根据所述定点化电平以及所述定点化函数,对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络。
进一步的,所述第一定点化单元具体用于:
确定所述网络参数的值与所述目标电平的差值,所述目标电平为与所述网络参数的值最接近的定点化电平;以及,
将所述差值以及所述目标电平输入所述定点化函数中,得到对所述网络参数进行所述第一定点化的结果。
进一步的,所述第一处理模块具体用于:
从所述层输出参数中选择所述预设数量的层输出参数作为初始聚类中心;
根据所述初始聚类中心进行聚类迭代处理,得到所述预设数量的聚类结果。
进一步的,所述第一处理模块具体用于:
确定所述聚类结果的聚类中心;
基于所述聚类中心以及所述卷积神经网络中的卷积参数,或者,基于所述聚类中心以及所述第一定点化后的卷积神经网络中的所述卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化结果,其中,所述第二定点化用于将所述聚类中心定点化为与所述聚类中心最接近的定点化电平。
进一步的,还包括:
更新模块,用于在所述定点化函数与目标阶跃函数的差异大于预设差异时修正所述定点化函数的斜率;以及,根据修正后的斜率进行新的所述第一定点化。
进一步的,第二处理模块具体用于:
控制所述运算单元根据定点化处理后的网络参数对所述图像进行如下至少一项处理:
定点乘法运算、定点加法运算、移位运算。
进一步的,所述图像的处理结果包括如下至少一项:
特征提取结果、分割结果、分类结果、对象检测/跟踪结果。
本发明实施例第三方面提供一种基于现场可编程门阵列FPGA的车载运算平台,其特征在于,包括:处理器、外部存储器、内存和FPGA运算单元;
所述外部存储器中存储有卷积神经网络的定点化处理后的网络参数,所述网络参数包括所述卷积神经网络的卷积参数以及层输出参数;
所述处理器将所述卷积神经网络的定点化处理的网络参数读入所述内存,将所述内存上的数据和待处理的图像输入到所述FPGA运算单元;
所述FPGA运算单元根据所述待处理的图像和所述定点化处理的网络参数进行运算处理,得到所述图像的处理结果。
进一步的,所述处理器用于:
对所述卷积神经网络中的层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果以及所述卷积神经网络中的卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
进一步的,所述处理器用于:
根据卷积神经网络的网络参数确定定点化参数,所述定点化参数用于标识所述网络参数对应的定点数的小数位数;
根据所述定点化参数、预设的定点化函数以及所述定点位宽硬件资源量对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,其中,所述定点化函数为具有预设斜率的一次函数,所述预设斜率大于0。
进一步的,所述处理器用于:
对所述第一定点化后的卷积神经网络中的所述层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果、所述第一定点化后的卷积神经网络中的所述卷积参数以及所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
进一步的,所述处理器用于:
根据所述卷积参数的小数位数以及所述层输出参数的小数位数,确定所述定点化参数。
进一步的,所述处理器用于:
将所述卷积参数的小数位数和所述层输出参数的小数位数中的最大小数位数,作为所述定点化参数对应的小数位数。
进一步的,所述处理器用于:
根据所述定点位宽硬件资源量的比特位数以及所述定点化参数,确定所述网络参数的定点化电平;
根据所述定点化电平以及所述定点化函数,对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络。
进一步的,所述处理器用于:
确定所述网络参数的值与目标电平的差值,所述目标电平为与所述网络参数的值最接近的定点化电平;
将所述差值以及所述目标电平输入所述定点化函数中,得到对所述网络参数进行所述第一定点化的结果。
进一步的,所述处理器用于:
从所述层输出参数中选择所述预设数量的层输出参数作为初始聚类中心;
根据所述初始聚类中心进行聚类迭代处理,得到所述预设数量的聚类结果。
进一步的,所述处理器用于:
确定所述聚类结果的聚类中心;
基于所述聚类中心以及所述卷积神经网络中的卷积参数,或者,基于所述聚类中心以及所述第一定点化后的卷积神经网络中的所述卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化结果,其中,所述第二定点化用于将所述聚类中心定点化为与所述聚类中心最接近的定点化电平。
进一步的,所述处理器用于:
响应于所述定点化函数与目标阶跃函数的差异大于预设差异,修正所述定点化函数的斜率;
根据修正后的斜率进行新的所述第一定点化。
进一步的,所述处理器用于:
控制所述运算单元根据定点化处理后的网络参数对所述图像进行如下至少一项处理:
定点乘法运算、定点加法运算、移位运算。
进一步的,所述图像的处理结果包括如下至少一项:
特征提取结果、分割结果、分类结果、对象检测/跟踪结果。
本发明实施例第四方面提供一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行上述第一方面所述的方法步骤。
本发明实施例第五方面提供一种智能驾驶***,包括上述第四方面所述的电子设备。
本发明实施例第六方面提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行上述第一方面所述的方法。
本发明实施例所提供的图像处理方法、装置、车载运算平台、电子设备及***,首先根据运算单元的定点位宽硬件资源量对卷积神经网络进行定点化处理,并在获取到待处理的图像后,控制运算单元根据定点化处理后的网络参数处理图像,从而实现在硬件资源有限的平台上使用卷积神经网络进行高效的图像处理。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的图像处理方法实施例一的流程示意图;
图2为本发明实施例提供的图像处理方法实施例二的流程示意图;
图3为本发明实施例提供的图像处理方法实施例三的流程示意图;
图4为本发明实施例提供的图像处理方法实施例四的流程示意图;
图5为本发明实施例提供的图像处理方法实施例五的流程示意图;
图6为本发明实施例提供的图像处理方法实施例六的流程示意图;
图7为本发明实施例提供的图像处理方法实施例七的流程示意图;
图8为本发明实施例提供的一种图像处理装置实施例一的模块结构图;
图9为本发明实施例提供的一种图像处理装置实施例二的模块结构图;
图10为本发明实施例提供的一种图像处理装置实施例三的模块结构图;
图11为本发明实施例提供的一种图像处理装置实施例四的模块结构图;
图12为本发明实施例提供的基于FPGA的车载运算平台的结构示意图;
图13为本发明实施例提供的一种电子设备1300的实体框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所提供的图像处理方法,可以应用于各种使用卷积神经网络进行图像处理的场景中。示例性的,本发明实施例可以应用于智能驾驶领域中,例如自动驾驶和辅助驾驶技术中。在智能驾驶领域中可以基于卷积神经网络进行车道线检测、车道线拟合等,则对于智能驾驶领域中的卷积神经网络,可以使用本发明实施例所述的方法进行定点化操作。
图1为本发明实施例提供的图像处理方法实施例一的流程示意图,该方法的执行主体可以为进行图像处理的电子设备中的处理器,例如中央处理器(Central ProcessingUnit,简称CPU)。如图1所示,该方法包括:
S101、根据运算单元的定点位宽硬件资源量对卷积神经网络使用浮点表示的网络参数进行定点化处理,其中,该网络参数包括卷积神经网络的卷积参数以及层输出参数。
可选的,上述运算单元可以是支持定点运算的计算单元。以现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)为例,运算单元可以是FPGA中的数字信号处理器(Digital Signal Processor,简称DSP)。
卷积神经网络在硬件资源有限的平台上运行之前,需要进行定点化操作。示例性的,FPGA是一种廉价稳定的计算平台,可以在其上运行卷积神经网络。为了发挥FPGA等硬件平台低功耗、加速运算等方面的综合优势,运算单元的定点位宽硬件资源量通常较为有限。某些情形下,为了实现更低功耗往往会选择尽量小的定点位宽硬件资源量,比如8比特或4比特位甚至更少位宽硬件资源量来实现定点运算。然而,定点位宽硬件资源量少往往会影响运算速度,对于要求快速响应甚至是实时响应的平台,例如自动驾驶的车载运算平台等,则需要对卷积神经网络进行适配硬件定点位宽硬件资源量方面的优化,以实现在有限资源平台上的加速运算。出于上述的需求,当卷积神经网络在FPGA等硬件资源有限的平台上运行之前,可以首先进行定点化操作,以适配硬件定点位宽资源量,从而同时满足对于运算平台的低功耗以及快速响应的要求。具体的,是将卷积神经网络的卷积参数和中间层结果定点化为用定点数表示。经过定点化操作之后,浮点数的乘加可以转换为定点数的乘加。对于FPGA等平台,定点数的乘法、加法等运算可以直接使用DSP来执行,因此,对卷积神经网络的网络参数进行定点化操作,可以减少FPGA等平台的硬件消耗。
卷积神经网络可以应用于图像处理过程中,本发明实施例提出一种基于卷积神经网络的图像处理方法,首先根据运算单元的定点位宽硬件资源量对卷积神经网络进行定点化处理,并在获取到待处理的图像后,控制运算单元根据定点化处理后的网络参数处理图像,从而实现在硬件资源有限的平台上使用卷积神经网络进行高效的图像处理。
在上述运算单元中,使用定点位宽硬件资源量来进行数据处理。示例性的,FPGA的DSP的定点位宽硬件资源量可以是4比特-8比特,即FPGA的DSP可以支持4比特-8比特的定点数的计算。相应的,在进行定点化处理时,需要将浮点数定点化为4比特-8比特的定点数。
S102、获取待处理的图像。
示例性的,在车道线检测、车道线拟合等场景下,可以由智能驾驶车辆的摄像头采集路面图像,处理器可以获取摄像头所采集的路面图像,该路面图像即为待处理的图像。
S103、控制上述运算单元根据定点化处理后的网络参数处理上述图像,得到上述图像的处理结果。
可选的,处理上述图像的过程可以是定点乘法运算、定点加法运算、移动运算中的至少一项。
基于不同的场景,可以得到不同的图像处理结果。可以得到的图像的处理结果可以包括如下至少一项:
特征提取结果、分割结果、分类结果、对象检测/跟踪结果。
示例性的,上述对象检测结果可以是对车道线的检测结果。
本实施例中,首先根据运算单元的定点位宽硬件资源量对卷积神经网络进行定点化处理,并在获取到待处理的图像后,控制运算单元根据定点化处理后的网络参数处理图像,从而实现在硬件资源有限的平台上使用卷积神经网络进行高效的图像处理。通过对卷积神经网络进行定点化处理,能够实现在硬件资源有限的平台上实现加速运算,从而同时满足对于运算平台的低功耗以及快速响应的需求。
在上述步骤S101中进行定点化处理时,可以使用分阶段的逼近式定点化方式,或者,使用对卷积神经网络的层输出参数进行聚类的混合定点化方式,或者,使用上述二者结合的方式。
在上述使用分阶段的逼近式定点化方式中,首先根据卷积神经网络的网络参数确定定点化参数,进而,根据定点化参数、预设的定点化函数以及定点位宽硬件资源量对网络参数进行第一定点化,得到第一定点化后的卷积神经网络。
在上述对卷积神经网络的层输出参数进行聚类的混合定点化方式中,首先对卷积神经网络中的层输出参数进行聚类,得到预设数量的聚类结果,进而,根据聚类结果以及卷积神经网络中的卷积参数,根据定点位宽硬件资源量进行第二定点化,得到第二定点化后卷积神经网络。
在上述二者结合的方式中,可以进行分阶段的逼近式定点化,再对分阶段的逼近式定点化的结果进行上述混合定点化方式。
以下实施例分别进行说明。
图2为本发明实施例提供的图像处理方法实施例二的流程示意图,如图2所示,上述分阶段的逼近式定点化的过程包括:
S201、根据卷积神经网络的网络参数确定定点化参数,其中,该定点化参数用于标识该网络参数对应的定点数的小数位数。
可选的,本发明实施例的输入为全精度浮点卷积神经网络,即在执行本发明实施例的方法之前,卷积神经网络中的网络参数使用浮点数表示。
可选的,上述网络参数具体可以包括卷积参数和层输出参数。其中,层输出参数是指卷积神经网络的中间层输出结果,例如中间层特征图。
可选的,上述定点化参数用来标识上述网络参数对应的定点数的小数位数。在使用一次函数进行定点化之前,可以根据卷积神经网络中的网络参数确定定点化后的定点数的小数位数。
S202、根据上述定点化参数、预设的定点化函数以及上述定点位宽硬件资源量,对上述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,其中,该定点化函数为具有预设斜率的一次函数。
可选的,在确定出上述定点化参数之后,可以结合上述定点化参数、定点化函数以及运算单元的定点位宽硬件资源量进行第一定点化。
如下公式(1)为定点化函数的一个示例。
(xs=xq+a(x-xq) (1)
其中,a为斜率,当a=1.0时,xs=x,相当于没有进行定点化。当a=0时,xs=xq,相当于完全定点化,此时,定点化函数在函数局部为一个阶跃的形式。本实施例中,即通过分阶段的过程,使a不断从1.0变为0。需要说明的是,上述定点化函数仅为一种实现方式,本领域技术人员可根据实际需要确定具有预设斜率的一次函数作为该定点化函数。
可选的,在具体实施过程中,本步骤可以分阶段执行多次。在每个阶段中,可以首先为上述定点化函数分配一个斜率,并基于斜率进行第一定点化。当完成本阶段的第一定点化之后,可以对斜率进行修正,并基于该修正后的斜率进行新的第一定点化,依次类推,直至定点化函数的斜率逼近阶跃函数的斜率。例如,在卷积神经网络训练过程中,每次训练中,使用一个预设斜率进行第一定点化,在下一次训练时,判断定点化函数与目标阶跃函数的差异是否大于预设差异,例如斜率差值是否大于预设差值,若是,则使用新的斜率继续进行第一定点化,依次类推,直至定点化函数的斜率逼近阶跃函数的斜率。
示例性的,假设将阶跃函数看作是斜率为0的一次函数,则在具体实施过程中,初始阶段可以为定点化函数分配斜率为1,并基于该定点化函数对上述网络参数进行定点化。依次类推,在后续的阶段中逐渐减小斜率值,并分别基于每个阶段所分配的斜率进行定点化,直至斜率逼近0。
以在卷积神经网络的训练过程中执行定点化为例,在训练过程中进行定点化的过程为:
在初始阶段为定点化函数分配一个初始斜率,再基于该定点化函数对网络参数进行定点化,进而,基于定点化后的定点网络参数对卷积神经网络进行训练,当训练结果符合预期之后,再基于当前所得到的卷积神经网络,执行第二阶段的斜率分配、定点化以及神经网络训练,依次类推,直至斜率逼近0。通过该过程,使得定点化函数的结果可以分阶段逐渐逼近完全定点化的结果。
本实施例中,通过使用具有特定斜率的定点化函数对卷积神经网络的卷积参数和层输出参数进行定点化,从而使得定点化结果可以逐渐逼近完全定点化的结果,从而降低了定点化时的精度损失,减小了定点化的误差,提升了定点化的准确度。
以下说明对卷积神经网络的层输出参数进行聚类的混合定点化方式,并说明上述两种方式结合的过程。
图3为本发明实施例提供的图像处理方法实施例三的流程示意图,如图3所示,上述对卷积神经网络的层输出参数进行聚类的混合定点化方式包括:
S301、对卷积神经网络中的层输出参数进行聚类,得到预设数量的聚类结果。
如果使用上述两种方式结合的方式,则本步骤中所述的卷积神经网络是指进行上述第一定点化之后的卷积神经网络。
本实施例中以卷积神经网络为第一定点化后的卷积神经网络为例进行说明。
可选的,可以使用K均值聚类(Kmeans)方式对上述层输出参数进行聚类。
可选的,在经过上述第一定点化之后,所得到的上述层输出参数对应的小数位数为上述定点化参数所标识的小数位数。在此基础上,对这些层输出参数进行聚类。
示例性的,假设上述层输出参数为k+2比特的定点数,则可以使用Kmeans方式对上述层输出参数进行k比特的聚类。其中,k为大于0的整数。
S302、根据上述聚类结果以及上述卷积神经网络中的卷积参数,根据定点位宽硬件资源量进行第二定点化,得到第二定点化后的卷积神经网络。
如果使用上述两种方式结合的方式,则本步骤中所述的卷积神经网络是指进行上述第一定点化之后的卷积神经网络。
可选的,上述第二定点化可以为使用阶跃函数的定点化。
本实施例中,通过对卷积神经网络的层输出参数进行聚类,并对聚类结果进行第二定点化,可以使得在保证定点化精度的前提下降低定点化位宽,进而减少带宽占用。示例性的,当本发明实施例所涉及的卷积神经网络应用于FPGA时,对层输出参数进行聚类表示之后,层输出参数可以使用较低的比特数来表示,从而可以生成一个对应标。例如,用K均值聚类得到16个聚类的数,则每一个层输出参数可以用使用4比特来表示。进而,FPGA在读取数据时,可以仅读取4比特,即只需读取比聚类前更少的比特数,进而可以通过查表的方式得到真实数据,从而降低的FPGA的带宽。
在上述实施例的基础上,本实施例涉及根据卷积神经网络的网络参数确定定点化参数的过程。
可选的,上述步骤S201包括:
根据上述卷积参数的小数位数以及上述层输出参数的小数位数,确定上述定点化参数。
可选的,在执行本发明实施例的方法之前,上述卷积神经网络中的卷积参数和层输出参数分别为浮点数,针对这些浮点数,在本实施例中,可以根据这些浮点数对应的小数位数,确定上述定点化参数。
一种可选的实施方式,可以将上述卷积参数的小数位数和上述层输出参数的小数位数中的最大小数位数,作为上述定点化参数对应的小数位数。
示例性的,假设卷积神经网络中有一个卷积参数,值为1.1,有两个层输出参数,值分别为1.23和3.354,则最大小数位数为3,则可以确定上述定点化参数对应的小数位数为3。
另一种可选的实施方式中,可以将上述卷积参数的小数位数和上述层输出参数的小数位数中的占比最大的小数位数,作为上述定点化参数对应的小数位数。
示例性的,假设卷积神经网络中有两个卷积参数,值分别为1.1和1.2,有两个层输出参数,值分别为1.23和3.354,则占比最大的小数位数为1,则可以确定上述定点化参数对应的小数位数为1。
在上述实施例的基础上,本实施例涉及对上述网络参数进行第一定点化的过程。
图4为本发明实施例提供的图像处理方法实施例四的流程示意图,如图4所示,上述步骤S202包括:
S401、根据定点位宽硬件资源量的比特位数以及上述定点化参数,确定上述网络参数的定点化电平。
当经过上述的过程得到上述定点化参数之后,可以根据定点位宽硬件资源量的比特位数和上述定点化参数,确定上述网络参数的定点化电平。
示例性的,假设定点位宽硬件资源量的比特位数为2,经过上述过程确定定点化参数对应的小数位数为0,则可以确定上述网络参数的定点化电平包括-2,-1,0以及1。
S402、根据上述定点化电平以及上述定点化函数,对上述网络参数进行第一定点化,得到第一定点化后的卷积神经网络。
作为一种可选的实施方式,可以通过如下方式对上述网络参数进行第一定点化。
图5为本发明实施例提供的图像处理方法实施例五的流程示意图,如图5所示,上述步骤S402包括:
S501、确定上述网络参数的值与目标电平的差值,该目标电平为与上述网络参数的值最接近的定点化电平。
S502、将上述差值以及所述定点化电平输入上述定点化函数中,得到对上述网络参数进行上述第一定点化的结果。
可选的,在确定出网络参数的定点化电平之后,在本实施例中,以其中一个网络参数A为例,可以按照下述方式对该网络参数A进行第一定点化,其余网络参数进行第一定点化的方式均与该网络参数A相同:
假设上述网络参数A为一个卷积核参数,则首先确定与该卷积核参数最接近的定点化电平。可选的,可以通过计算该卷积核参数与定点化电平的差值来确定与该卷积核参数最接近的定点化电平。
示例性的,假设经过上述步骤确定出该卷积核参数的定点化电平为-2,-1,0以及1,该卷积核参数的值为-1.2,则通过计算该卷积核参数与定点化电平的差值,可以确定与该卷积核参数最接近的定点化电平为-1。
进而,将上述差值和目标电平输入到上述定点化函数中,得到对网络参数A进行第一定点化的结果。
可选的,假设上述定点化函数通过下述公式(2)表示。
L+S*k 公式(2)
其中,L为所目标电平,S为网络参数A与目标电平的差值,k为当前阶段对应的斜率,则将由上述过程确定出的目标电平以及差值输入上述公式(1)之后,即可得到网络参数A的第一定点化的结果。
需要说明的是,上述定点化函数仅为一种实现方式,本领域技术人员可根据实际需要确定与目标电平以及网络参数与目标电平的差值相关的函数作为该定点化函数。
在上述实施例的基础上,本实施例涉及对上述层输出参数进行聚类的过程。
图6为本发明实施例提供的图像处理方法实施例六的流程示意图,如图6所示,上述步骤S301中进行聚类的过程包括:
S601、从上述层输出参数中选择上述预设数量的层输出参数作为初始聚类中心。
S602、根据上述初始聚类中心进行聚类迭代处理,得到上述预设数量的聚类结果。
示例性的,假设上述预设的比特位数为6,即网络参数使用6比特表示,则本实施例中,可以对上述层输出参数进行4比特的聚类,该4比特可以标识16个数,因此上述预设数量可以为16个。
初始时,可以按照特定的原则从上述层输出参数中选择16个层输出参数,将该16个层输出参数作为初始聚类中心,进而,根据剩余层输出参数与这些初始聚类中心的相似程度,即差值(差值越小,相似程度越高),分别将剩余层输出函数分配给这些聚类中心,形成多个聚类。进而,计算每个聚类的新的聚类中心,并基于新的聚类中心继续进行聚类迭代处理,直至每个聚类中的层输出参数的差值满足收敛条件,从而得到16个聚类结果。
在上述实施例的基础上,本实施例涉及对上述聚类结果进行第二定点化的过程。
图7为本发明实施例提供的图像处理方法实施例七的流程示意图,如图7所示,上述步骤S302包括:
S701、确定上述聚类结果的聚类中心。
经过上述处理之后,可以得到多个聚类,对于其中的每个聚类,都可以按照本实施例S701-S703的过程确定的第二定点化结果。
假设多个聚类中的其中一个聚类为聚类1,则本步骤中,首先确定该聚类1的聚类中心。
可选的,该聚类中心可以为聚类1中所包括的多个层输出参数的平均值。
S702、对上述聚类中心进行第二定点化,得到上述聚类中心的第二定点化结果,其中,该第二定点化用于将上述聚类中心定点化为与上述聚类中心最接近的定点化电平。
当确定出上述聚类1的聚类中心,可以对该聚类中心进行第二定点化。其中,该第二定点化可以使用阶跃函数进行定点化,即通过阶跃函数,将该聚类中心定点化为与该聚类中心最接近的定点化电平。
示例性的,假设聚类1的聚类中心为1.2,使用阶跃函数进行第二定点化之后,可以将该聚类中心定点化为1。
S703、将上述聚类中心的第二定点化结果作为上述聚类结果的第二定点化结果。
在确定出聚类1的聚类中心的第二定点化结果之后,即可将该第二定点化结果作为聚类1中所包括的各层输出参数的第二定点化结果。
由于在进行聚类时,选择了小于输出层参数的表示位数的比特位(例如层输出参数使用6比特表示,则进行4比特的聚类)进行聚类,因此最终完成第二定点化之后,仅使用较少的位数就可以表示所有的层输出参数,因此,通过聚类使得在保证定点化精度的前提下降低了定点化位宽,从而实现了减少带宽占用的目的。
图8为本发明实施例提供的一种图像处理装置实施例一的模块结构图,如图8所示,该装置包括:
第一处理模块801,用于根据运算单元的定点位宽硬件资源量对卷积神经网络使用浮点表示的网络参数进行定点化处理,其中,所述网络参数包括所述卷积神经网络的卷积参数以及层输出参数。
获取模块802,用于获取待处理的图像。
第二处理模块803,用于控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果。
该装置用于实现前述方法实施例,其实现原理和技术效果类似,此处不再赘述。
图9为本发明实施例提供的一种图像处理装置实施例二的模块结构图,如图9所示,第一处理模块801包括:
聚类单元8011,用于对所述卷积神经网络中的层输出参数进行聚类,得到预设数量的聚类结果。
第二定点化单元8012,用于根据所述聚类结果以及所述卷积神经网络中的卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
图10为本发明实施例提供的一种图像处理装置实施例三的模块结构图,如图10所示,第一处理模块801还包括:
确定单元8013,用于根据卷积神经网络的网络参数确定定点化参数,所述定点化参数用于标识所述网络参数对应的定点数的小数位数;
第一定点化单元8014,用于根据所述定点化参数、预设的定点化函数以及所述定点位宽硬件资源量对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,其中,所述定点化函数为具有预设斜率的一次函数,所述预设斜率大于0。
另一实施例中,第一处理模块801具体用于:
对所述第一定点化后的卷积神经网络中的所述层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果、所述第一定点化后的卷积神经网络中的所述卷积参数以及所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
另一实施例中,确定单元8013具体用于:
根据所述卷积参数的小数位数以及所述层输出参数的小数位数,确定所述定点化参数。
另一实施例中,确定单元8013具体用于:
将所述卷积参数的小数位数和所述层输出参数的小数位数中的最大小数位数,作为所述定点化参数对应的小数位数。
另一实施例中,第一定点化单元8014具体用于:
根据所述定点位宽硬件资源量的比特位数以及所述定点化参数,确定所述网络参数的定点化电平。
根据所述定点化电平以及所述定点化函数,对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络。
另一实施例中,第一定点化单元8014具体用于:
确定所述网络参数的值与所述目标电平的差值,所述目标电平为与所述网络参数的值最接近的定点化电平;以及,
将所述差值以及所述目标电平输入所述定点化函数中,得到对所述网络参数进行所述第一定点化的结果。
另一实施例中,第一处理模块801具体用于:
从所述层输出参数中选择所述预设数量的层输出参数作为初始聚类中心;
根据所述初始聚类中心进行聚类迭代处理,得到所述预设数量的聚类结果。
另一实施例中,第一处理模块801具体用于:
确定所述聚类结果的聚类中心;
基于所述聚类中心以及所述卷积神经网络中的卷积参数,或者,基于所述聚类中心以及所述第一定点化后的卷积神经网络中的所述卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化结果,其中,所述第二定点化用于将所述聚类中心定点化为与所述聚类中心最接近的定点化电平。
图11为本发明实施例提供的一种图像处理装置实施例四的模块结构图,如图11所示,该装置还包括:
更新模块804,用于在所述定点化函数与目标阶跃函数的差异大于预设差异时修正所述定点化函数的斜率;以及,根据修正后的斜率进行新的所述第一定点化。
另一实施例中,第二处理模块803具体用于:
控制所述运算单元根据定点化处理后的网络参数对所述图像进行如下至少一项处理:
定点乘法运算、定点加法运算、移位运算。
另一实施例中,所述图像的处理结果包括如下至少一项:
特征提取结果、分割结果、分类结果、对象检测/跟踪结果。
图12为本发明实施例提供的基于FPGA的车载运算平台的结构示意图。如图12所示,基于FPGA的车载运算平台包括:处理器1201、外部存储器1202、内存1203和FPGA运算单元1204;其中,
外部存储器1202中存储有卷积神经网络的定点化处理后的网络参数,所述网络参数包括所述卷积神经网络的卷积参数以及层输出参数。
处理器1201将所述卷积神经网络的定点化处理的网络参数读入内存1203,将内存1203上的数据和待处理的图像输入到所述FPGA运算单元。
FPGA运算单元1204根据所述待处理的图像和所述定点化处理的网络参数进行运算处理,得到所述图像的处理结果。
处理器1201还可以执行上述方法实施例中的方法步骤,具体可以参照前述方法实施例,此处不再赘述。
图13为本发明实施例提供的一种电子设备1300的实体框图,如图13所示,该电子设备1300包括:
存储器1301,用于存储程序指令。
处理器1302,用于调用并执行存储器1301中的程序指令,执行上述方法实施例中的方法步骤。
本发明实施例还提供一种智能驾驶***,该智能驾驶***包括上述图13所述的电子设备。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (39)
1.一种图像处理方法,其特征在于,包括:
根据运算单元的定点位宽硬件资源量对卷积神经网络使用浮点表示的网络参数进行定点化处理,其中,所述网络参数包括所述卷积神经网络的卷积参数以及层输出参数;
获取待处理的图像;
控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果;
所述根据运算单元的定点位宽硬件资源量对卷积神经网络的网络参数进行定点化处理,包括:
根据卷积神经网络的网络参数确定定点化参数,所述定点化参数用于标识所述网络参数对应的定点数的小数位数;
根据所述定点化参数、预设的定点化函数以及所述定点位宽硬件资源量对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,其中,所述定点化函数为具有预设斜率的一次函数,所述预设斜率大于0。
2.根据权利要求1所述的方法,其特征在于,所述根据运算单元的定点位宽硬件资源量对卷积神经网络的网络参数进行定点化处理,包括:
对所述卷积神经网络中的层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果以及所述卷积神经网络中的卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
3.根据权利要求1所述的方法,其特征在于,还包括:
对所述第一定点化后的卷积神经网络中的所述层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果、所述第一定点化后的卷积神经网络中的所述卷积参数以及所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
4.根据权利要求1或3所述的方法,其特征在于,所述根据卷积神经网络的网络参数确定定点化参数,包括:
根据所述卷积参数的小数位数以及所述层输出参数的小数位数,确定所述定点化参数。
5.根据权利要求4所述的方法,其特征在于,所述根据所述卷积参数的位数以及所述层输出参数的位数,确定所述定点化参数,包括:
将所述卷积参数的小数位数和所述层输出参数的小数位数中的最大小数位数,作为所述定点化参数对应的小数位数。
6.根据权利要求1-3或5任一项所述的方法,其特征在于,所述根据所述定点化参数、预设的定点化函数以及所述定点位宽硬件资源量对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,包括:
根据所述定点位宽硬件资源量的比特位数以及所述定点化参数,确定所述网络参数的定点化电平;
根据所述定点化电平以及所述定点化函数,对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络。
7.根据权利要求6所述的方法,其特征在于,所述根据所述定点化电平以及所述定点化函数,对所述网络参数进行第一定点化,包括:
确定所述网络参数的值与目标电平的差值,所述目标电平为与所述网络参数的值最接近的定点化电平;
将所述差值以及所述目标电平输入所述定点化函数中,得到对所述网络参数进行所述第一定点化的结果。
8.根据权利要求2或3所述的方法,其特征在于,所述进行聚类,得到预设数量的聚类结果,包括:
从所述层输出参数中选择所述预设数量的层输出参数作为初始聚类中心;
根据所述初始聚类中心进行聚类迭代处理,得到所述预设数量的聚类结果。
9.根据权利要求2或3所述的方法,其特征在于,所述进行第二定点化,包括:
确定所述聚类结果的聚类中心;
基于所述聚类中心以及所述卷积神经网络中的卷积参数,或者,基于所述聚类中心以及第一定点化后的卷积神经网络中的所述卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化结果,其中,所述第二定点化用于将所述聚类中心定点化为与所述聚类中心最接近的定点化电平。
10.根据权利要求1-3、5或7任一项所述的方法,其特征在于,还包括:
响应于所述定点化函数与目标阶跃函数的差异大于预设差异,修正所述定点化函数的斜率;
根据修正后的斜率进行新的第一定点化。
11.根据权利要求1-3、5或7任一项所述的方法,其特征在于,所述控制所述运算单元根据定点化处理后的网络参数处理所述图像,包括:
控制所述运算单元根据定点化处理后的网络参数对所述图像进行如下至少一项处理:
定点乘法运算、定点加法运算、移位运算。
12.根据权利要求1-3、5或7任一项所述的方法,其特征在于,所述图像的处理结果包括如下至少一项:
特征提取结果、分割结果、分类结果、对象检测/跟踪结果。
13.一种图像处理装置,其特征在于,包括:
第一处理模块,用于根据运算单元的定点位宽硬件资源量对卷积神经网络使用浮点表示的网络参数进行定点化处理,其中,所述网络参数包括所述卷积神经网络的卷积参数以及层输出参数;
获取模块,用于获取待处理的图像;
第二处理模块,用于控制所述运算单元根据定点化处理后的网络参数处理所述图像,得到所述图像的处理结果;
所述第一处理模块还包括:
确定单元,用于根据卷积神经网络的网络参数确定定点化参数,所述定点化参数用于标识所述网络参数对应的定点数的小数位数;
第一定点化单元,用于根据所述定点化参数、预设的定点化函数以及所述定点位宽硬件资源量对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,其中,所述定点化函数为具有预设斜率的一次函数,所述预设斜率大于0。
14.根据权利要求13所述的装置,其特征在于,所述第一处理模块包括:
聚类单元,用于对所述卷积神经网络中的层输出参数进行聚类,得到预设数量的聚类结果;
第二定点化单元,用于根据所述聚类结果以及所述卷积神经网络中的卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
15.根据权利要求13所述的装置,其特征在于,所述第一处理模块具体用于:
对所述第一定点化后的卷积神经网络中的所述层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果、所述第一定点化后的卷积神经网络中的所述卷积参数以及所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
16.根据权利要求13或15所述的装置,其特征在于,所述确定单元具体用于:
根据所述卷积参数的小数位数以及所述层输出参数的小数位数,确定所述定点化参数。
17.根据权利要求16所述的装置,其特征在于,所述确定单元具体用于:
将所述卷积参数的小数位数和所述层输出参数的小数位数中的最大小数位数,作为所述定点化参数对应的小数位数。
18.根据权利要求13-15或17任一项所述的装置,其特征在于,所述第一定点化单元具体用于:
根据所述定点位宽硬件资源量的比特位数以及所述定点化参数,确定所述网络参数的定点化电平;
根据所述定点化电平以及所述定点化函数,对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络。
19.根据权利要求18所述的装置,其特征在于,所述第一定点化单元具体用于:
确定所述网络参数的值与目标电平的差值,所述目标电平为与所述网络参数的值最接近的定点化电平;以及,
将所述差值以及所述目标电平输入所述定点化函数中,得到对所述网络参数进行所述第一定点化的结果。
20.根据权利要求14或15所述的装置,其特征在于,所述第一处理模块具体用于:
从所述层输出参数中选择所述预设数量的层输出参数作为初始聚类中心;
根据所述初始聚类中心进行聚类迭代处理,得到所述预设数量的聚类结果。
21.根据权利要求14或15所述的装置,其特征在于,所述第一处理模块具体用于:
确定所述聚类结果的聚类中心;
基于所述聚类中心以及所述卷积神经网络中的卷积参数,或者,基于所述聚类中心以及第一定点化后的卷积神经网络中的所述卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化结果,其中,所述第二定点化用于将所述聚类中心定点化为与所述聚类中心最接近的定点化电平。
22.根据权利要求13-15、17或19任一项所述的装置,其特征在于,还包括:
更新模块,用于在所述定点化函数与目标阶跃函数的差异大于预设差异时修正所述定点化函数的斜率;以及,根据修正后的斜率进行新的第一定点化。
23.根据权利要求13-15、17或19任一项所述的装置,其特征在于,第二处理模块具体用于:
控制所述运算单元根据定点化处理后的网络参数对所述图像进行如下至少一项处理:
定点乘法运算、定点加法运算、移位运算。
24.根据权利要求13-15、17或19任一项所述的装置,其特征在于,所述图像的处理结果包括如下至少一项:
特征提取结果、分割结果、分类结果、对象检测/跟踪结果。
25.一种基于现场可编程门阵列FPGA的车载运算平台,其特征在于,包括:处理器、外部存储器、内存和FPGA运算单元;
所述外部存储器中存储有卷积神经网络的定点化处理后的网络参数,所述网络参数包括所述卷积神经网络的卷积参数以及层输出参数;
所述处理器将所述卷积神经网络的定点化处理的网络参数读入所述内存,将所述内存上的数据和待处理的图像输入到所述FPGA运算单元;
所述FPGA运算单元根据所述待处理的图像和所述定点化处理的网络参数进行运算处理,得到所述图像的处理结果;
所述处理器用于:
根据卷积神经网络的网络参数确定定点化参数,所述定点化参数用于标识所述网络参数对应的定点数的小数位数;
根据所述定点化参数、预设的定点化函数以及所述定点位宽硬件资源量对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络,其中,所述定点化函数为具有预设斜率的一次函数,所述预设斜率大于0。
26.根据权利要求25所述的平台,其特征在于,所述处理器用于:
对所述卷积神经网络中的层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果以及所述卷积神经网络中的卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
27.根据权利要求25所述的平台,其特征在于,所述处理器用于:
对所述第一定点化后的卷积神经网络中的所述层输出参数进行聚类,得到预设数量的聚类结果;
根据所述聚类结果、所述第一定点化后的卷积神经网络中的所述卷积参数以及所述定点位宽硬件资源量进行第二定点化,得到第二定点化后的所述卷积神经网络。
28.根据权利要求25或27所述的平台,其特征在于,所述处理器用于:
根据所述卷积参数的小数位数以及所述层输出参数的小数位数,确定所述定点化参数。
29.根据权利要求28所述的平台,其特征在于,所述处理器用于:
将所述卷积参数的小数位数和所述层输出参数的小数位数中的最大小数位数,作为所述定点化参数对应的小数位数。
30.根据权利要求25-27或29任一项所述的平台,其特征在于,所述处理器用于:
根据所述定点位宽硬件资源量的比特位数以及所述定点化参数,确定所述网络参数的定点化电平;
根据所述定点化电平以及所述定点化函数,对所述网络参数进行第一定点化,得到第一定点化后的卷积神经网络。
31.根据权利要求30所述的平台,其特征在于,所述处理器用于:
确定所述网络参数的值与目标电平的差值,所述目标电平为与所述网络参数的值最接近的定点化电平;
将所述差值以及所述目标电平输入所述定点化函数中,得到对所述网络参数进行所述第一定点化的结果。
32.根据权利要求26或27所述的平台,其特征在于,所述处理器用于:
从所述层输出参数中选择所述预设数量的层输出参数作为初始聚类中心;
根据所述初始聚类中心进行聚类迭代处理,得到所述预设数量的聚类结果。
33.根据权利要求26或27所述的平台,其特征在于,所述处理器用于:
确定所述聚类结果的聚类中心;
基于所述聚类中心以及所述卷积神经网络中的卷积参数,或者,基于所述聚类中心以及第一定点化后的卷积神经网络中的所述卷积参数,根据所述定点位宽硬件资源量进行第二定点化,得到第二定点化结果,其中,所述第二定点化用于将所述聚类中心定点化为与所述聚类中心最接近的定点化电平。
34.根据权利要求25-27、29或31任一项所述的平台,其特征在于,所述处理器用于:
响应于所述定点化函数与目标阶跃函数的差异大于预设差异,修正所述定点化函数的斜率;
根据修正后的斜率进行新的第一定点化。
35.根据权利要求25-27、29或31任一项所述的平台,其特征在于,所述处理器用于:
控制所述运算单元根据定点化处理后的网络参数对所述图像进行如下至少一项处理:
定点乘法运算、定点加法运算、移位运算。
36.根据权利要求25-27、29或31任一项所述的平台,其特征在于,所述图像的处理结果包括如下至少一项:
特征提取结果、分割结果、分类结果、对象检测/跟踪结果。
37.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行权利要求1-12任一项所述的方法步骤。
38.一种智能驾驶***,其特征在于,包括权利要求37所述的电子设备。
39.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1-12任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811647408.2A CN111383157B (zh) | 2018-12-29 | 2018-12-29 | 图像处理方法、装置、车载运算平台、电子设备及*** |
PCT/CN2019/128763 WO2020135601A1 (zh) | 2018-12-29 | 2019-12-26 | 图像处理方法、装置、车载运算平台、电子设备及*** |
JP2021533274A JP2022512211A (ja) | 2018-12-29 | 2019-12-26 | 画像処理方法、装置、車載演算プラットフォーム、電子機器及びシステム |
KR1020217018149A KR20210090249A (ko) | 2018-12-29 | 2019-12-26 | 이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811647408.2A CN111383157B (zh) | 2018-12-29 | 2018-12-29 | 图像处理方法、装置、车载运算平台、电子设备及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111383157A CN111383157A (zh) | 2020-07-07 |
CN111383157B true CN111383157B (zh) | 2023-04-14 |
Family
ID=71125717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811647408.2A Active CN111383157B (zh) | 2018-12-29 | 2018-12-29 | 图像处理方法、装置、车载运算平台、电子设备及*** |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP2022512211A (zh) |
KR (1) | KR20210090249A (zh) |
CN (1) | CN111383157B (zh) |
WO (1) | WO2020135601A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112308226B (zh) * | 2020-08-03 | 2024-05-24 | 北京沃东天骏信息技术有限公司 | 神经网络模型的量化、用于输出信息的方法和装置 |
CN117501300A (zh) * | 2021-06-28 | 2024-02-02 | 华为技术有限公司 | 图像处理方法和图像处理装置 |
CN114611685A (zh) * | 2022-03-08 | 2022-06-10 | 安谋科技(中国)有限公司 | 神经网络模型中的特征处理方法、介质、设备和程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885214A (zh) * | 2017-11-22 | 2018-04-06 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的加速自动驾驶视觉感知的方法及装置 |
US20180314671A1 (en) * | 2017-04-27 | 2018-11-01 | Falcon Computing | Systems And Methods For Systolic Array Design From A High-Level Program |
CN108734264A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | 深度神经网络模型压缩方法及装置、存储介质、终端 |
CN108830288A (zh) * | 2018-04-25 | 2018-11-16 | 北京市商汤科技开发有限公司 | 图像处理方法、神经网络的训练方法、装置、设备及介质 |
CN109002881A (zh) * | 2018-06-28 | 2018-12-14 | 郑州云海信息技术有限公司 | 基于fpga的深度神经网络的定点化计算方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
CN107689948B (zh) * | 2016-08-22 | 2020-09-01 | 赛灵思公司 | 应用于神经网络硬件加速***的高效数据访存管理装置 |
CN106611216A (zh) * | 2016-12-29 | 2017-05-03 | 北京旷视科技有限公司 | 基于神经网络的计算方法及装置 |
CN107480770B (zh) * | 2017-07-27 | 2020-07-28 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN108053028B (zh) * | 2017-12-21 | 2021-09-14 | 深圳励飞科技有限公司 | 数据定点化处理方法、装置、电子设备及计算机存储介质 |
-
2018
- 2018-12-29 CN CN201811647408.2A patent/CN111383157B/zh active Active
-
2019
- 2019-12-26 WO PCT/CN2019/128763 patent/WO2020135601A1/zh active Application Filing
- 2019-12-26 JP JP2021533274A patent/JP2022512211A/ja active Pending
- 2019-12-26 KR KR1020217018149A patent/KR20210090249A/ko not_active Application Discontinuation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734264A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | 深度神经网络模型压缩方法及装置、存储介质、终端 |
US20180314671A1 (en) * | 2017-04-27 | 2018-11-01 | Falcon Computing | Systems And Methods For Systolic Array Design From A High-Level Program |
CN107885214A (zh) * | 2017-11-22 | 2018-04-06 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的加速自动驾驶视觉感知的方法及装置 |
CN108830288A (zh) * | 2018-04-25 | 2018-11-16 | 北京市商汤科技开发有限公司 | 图像处理方法、神经网络的训练方法、装置、设备及介质 |
CN109002881A (zh) * | 2018-06-28 | 2018-12-14 | 郑州云海信息技术有限公司 | 基于fpga的深度神经网络的定点化计算方法及装置 |
Non-Patent Citations (2)
Title |
---|
FxpNet: Training a Deep Convolutional Neural Network in Fixed-Point Representation;Xi Chen 等;《2017 International Joint Conference on Neural Networks》;20170531;第2494-2501页 * |
卷积神经网络的定点化研究;陈俊保 等;《信息技术》;20180724(第7期);第94-96、102页 * |
Also Published As
Publication number | Publication date |
---|---|
JP2022512211A (ja) | 2022-02-02 |
WO2020135601A1 (zh) | 2020-07-02 |
KR20210090249A (ko) | 2021-07-19 |
CN111383157A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10929746B2 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
CN111383157B (zh) | 图像处理方法、装置、车载运算平台、电子设备及*** | |
CN108701250A (zh) | 数据定点化方法和装置 | |
CN109800865B (zh) | 神经网络生成及图像处理方法和装置、平台、电子设备 | |
CN110008952B (zh) | 一种目标识别方法及设备 | |
CN112785597A (zh) | 识别图像的方法和*** | |
KR102655950B1 (ko) | 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치 | |
CN113408715A (zh) | 一种神经网络的定点化方法、装置 | |
CN112990438B (zh) | 基于移位量化操作的全定点卷积计算方法、***及设备 | |
CN112488297B (zh) | 一种神经网络剪枝方法、模型生成方法及装置 | |
CN111967608A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112288087A (zh) | 一种神经网络剪枝方法、装置、电子设备及存储介质 | |
CN110874626B (zh) | 一种量化方法及装置 | |
CN115147598A (zh) | 目标检测分割方法、装置、智能终端及存储介质 | |
CN109325530B (zh) | 一种图像分类方法、存储装置和处理装置 | |
CN114418057A (zh) | 卷积神经网络的运算方法及相关设备 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
CN112819157A (zh) | 神经网络训练的方法及装置、智能行驶控制的方法及装置 | |
CN112949519A (zh) | 目标检测方法、装置、设备及存储介质 | |
CN110337636A (zh) | 数据转换方法和装置 | |
CN111091183A (zh) | 一种神经网络加速***和方法 | |
EP3798929A1 (en) | Information processing apparatus, information processing method, and information processing program | |
CN112183726A (zh) | 一种神经网络全量化方法及*** | |
CN115019150A (zh) | 目标检测定点模型建立方法、装置及可读存储介质 | |
CN111930670B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |