CN116403097A - 一种目标检测方法、装置、存储介质及电子设备 - Google Patents

一种目标检测方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116403097A
CN116403097A CN202310397030.XA CN202310397030A CN116403097A CN 116403097 A CN116403097 A CN 116403097A CN 202310397030 A CN202310397030 A CN 202310397030A CN 116403097 A CN116403097 A CN 116403097A
Authority
CN
China
Prior art keywords
neural network
network model
neuron
adjusted
model
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
CN202310397030.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.)
Zhejiang University ZJU
Zhejiang Lab
Original Assignee
Zhejiang University ZJU
Zhejiang Lab
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 Zhejiang University ZJU, Zhejiang Lab filed Critical Zhejiang University ZJU
Priority to CN202310397030.XA priority Critical patent/CN116403097A/zh
Publication of CN116403097A publication Critical patent/CN116403097A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • 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/048Activation functions
    • 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

本说明书公开了一种目标检测方法、装置、存储介质及电子设备,本说明书实施例中根据待转换的脉冲神经网络模型所需的运行时长,对原始人工神经网络模型中每个神经元的激活函数进行调整,得到调整后激活函数。将通过调整后激活函数训练得到的训练后模型参数迁移到脉冲神经网络模型中,得到初始脉冲神经网络模型。在此方法中,由于人工神经网络模型中调整后激活函数是通过脉冲神经网络模型的运行时长进行调整的,所以,将通过调整后激活函数训练得到的模型参数迁移到脉冲神经网络模型中,无需脉冲神经网络模型消耗额外的运行时长来达到与人工神经网络模型接近的性能,从而减少了脉冲神经网络模型运行的计算量和功耗。

Description

一种目标检测方法、装置、存储介质及电子设备
技术领域
本说明书涉及图像处理技术领域,尤其涉及一种目标检测方法、装置、存储介质及电子设备。
背景技术
图像处理技术中的目标检测是人工智能及计算机视觉领域比较重要的研究方向。随着深度学习的发展,相对于传统人工神经网络的深度学习技术,脉冲神经网络的深度学习技术引起人们的广泛关注。
目前,适用于目标检测任务的脉冲神经网络模型主要包括直接训练和间接转换两大类。其中,间接转换可以先对人工神经网络进行训练,得到训练后的人工神经网络,然后,在实现间接转换的过程中,对脉冲神经网络进行修改,以使修改后的脉冲神经网络能发放负脉冲。将训练后的人工神经网络的模型参数归一化后映射到脉冲神经网络中,为了使脉冲神经网络的性能接近传统人工神经网络,需要通过较长的时间步数运行脉冲神经网络,这样增加了脉冲神经网络的运行时长,并增加了运行脉冲神经网络所需的计算量以及功耗。
发明内容
本说明书实施例提供一种目标检测方法、装置、存储介质及电子设备,以部分解决上述现有技术存在的问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种目标检测方法,包括:
获取原始人工神经网络模型;
根据待转换的脉冲神经网络模型所需的运行时长,按照预设调整策略,对所述原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数;
根据所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型;
对所述调整后人工神经网络模型进行训练,以得到训练后模型;
将所述训练后模型的模型参数迁移到所述待转换的脉冲神经网络模型中,以确定出初始脉冲神经网络模型;
基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型;
在接收到目标检测任务请求后,将目标检测任务请求中携带的目标图像输入到所述最终脉冲神经网络模型中,以通过所述最终脉冲神经网络模型,对所述目标图像进行目标检测。
可选地,根据待转换的脉冲神经网络模型所需的运行时长,按照预设调整策略,对所述原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数,具体包括:
确定出用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值的可调参数;
根据所述可调参数以及所述待转换的脉冲神经网络模型所需的运行时长,确定出目标激活函数,作为目标激活函数;
按照预设调整策略,将所述原始人工神经网络模型中每个神经元的激活函数替换为所述目标激活函数,得到每个神经元的调整后激活函数。
可选地,根据所述可调参数以及所述待转换的脉冲神经网络模型所需的运行时长,确定出目标激活函数,具体包括:
确定出用于表示待输入值、所述运行时长以及所述可调参数之间的关联关系的第一函数;
确定出用于表示所述第一函数与所述运行时长之间的关联关系的第二函数;
根据所述第二函数以及所述可调参数,确定出目标激活函数。
可选地,根据所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型,具体包括:
将所述原始人工神经网络模型中的最大池化方式调整为平均池化方式;
根据所述平均池化方式以及所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型。
可选地,对所述调整后人工神经网络模型进行训练,以得到训练后模型,具体包括:
获取图像样本;
将所述图像样本输入到所述调整后人工神经网络模型中,以通过所述调整后人工神经网络模型输出针对所述图像样本的目标检测结果,其中,所述目标检测结果包括预测边界框的中心位置和尺寸大小、所述预测边界框是否锚定目标物以及所述目标物的分类结果;
以最小化所述目标检测结果与标签之间的差异为优化目标,对所述调整后人工神经网络模型中每个神经元的调整后激活函数中包含的可调参数进行调整,得到每个神经元的调整后参数;其中,所述可调参数用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值;
基于所述每个神经元的调整后参数,确定出对所述调整后人工神经网络模型进行训练后所得到的训练后模型。
可选地,将所述训练后模型的模型参数迁移到所述待转换的脉冲神经网络模型中,以确定出初始脉冲神经网络模型,具体包括:
针对所述训练后模型的每个神经元,根据预设调整量,对所述训练后模型中该神经元的模型参数包含的偏置参数进行调整,得到调整后偏置参数;
根据所述调整后偏置参数,确定出对所述训练后模型中该神经元的模型参数进行调整后所得到的调整后模型参数;
将所述调整后模型参数作为所述待转换的脉冲神经网络模型中该神经元的模型参数,将所述训练后模型中该神经元的调整后激活函数中包含的可调参数作为所述待转换的脉冲神经网络模型中该神经元发放脉冲所需达到的膜电位阈值;其中,所述训练后模型的模型结构与所述待转换的脉冲神经网络模型的模型结构相同;
根据所述待转换的脉冲神经网络模型中每个神经元的模型参数以及膜电位阈值,确定出初始脉冲神经网络模型。
可选地,基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型,具体包括:
获取各调整图像样本;
针对每个调整图像样本,将该调整图像样本输入到所述训练后模型中,以通过所述训练后模型得到该调整图像样本经过每个神经元的输出值;将该调整图像样本输入到所述初始脉冲神经网络模型中,以通过所述初始脉冲神经网络模型得到该调整图像样本经过每个神经元时每个神经元发放脉冲的频率值;
针对所述初始脉冲神经网络模型中的每个神经元,根据所述训练后模型中每个调整图像样本经过该神经元的输出值与所述初始脉冲神经网络模型中每个调整图像样本经过该神经元时该神经元发放脉冲的频率值之间的差异,以及所述初始脉冲神经网络模型中该神经元的运行时长,确定出每个调整图像样本针对该神经元的调整值;
根据每个调整图像样本针对该神经元的调整值,确定针对该神经元的平均调整值;
将所述初始脉冲神经网络模型中该神经元的初始膜电位调整为所述平均调整值,得到该神经元的调整后初始膜电位;
根据每个神经元的调整后初始膜电位,确定出最终脉冲神经网络模型。
可选地,基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型,具体包括:
获取调整图像样本;
将所述调整图像样本输入到所述训练后模型中,以通过所述训练后模型得到每个神经元的输出值;将该调整图像样本输入到所述初始脉冲神经网络模型中,以通过所述初始脉冲神经网络模型得到每个神经元发放脉冲的频率值;
针对所述初始脉冲神经网络模型中的每个神经元,基于所述训练后模型中该神经元的输出值以及所述初始脉冲神经网络模型中该神经元发放脉冲的频率值,确定所述训练后模型中该神经元的输出值与所述初始脉冲神经网络模型中该神经元发放脉冲的频率值之间的均方误差;
以所述均方误差最小化为目标,对所述初始脉冲神经网络模型中的该神经元的模型参数进行调整,得到最终脉冲神经网络模型。
本说明书提供的一种目标检测装置,包括:
获取模块,用于获取原始人工神经网络模型;
第一调整模块,用于根据待转换的脉冲神经网络模型所需的运行时长,按照预设调整策略,对所述原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数;
确定模块,用于根据所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型;
训练模块,用于对所述调整后人工神经网络模型进行训练,以得到训练后模型;
参数迁移模块,用于将所述训练后模型的模型参数迁移到所述待转换的脉冲神经网络模型中,以确定出初始脉冲神经网络模型;
第二调整模块,用于基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型;
目标检测模块,用于在接收到目标检测任务请求后,将目标检测任务请求中携带的目标图像输入到所述最终脉冲神经网络模型中,以通过所述最终脉冲神经网络模型,对所述目标图像进行目标检测。
可选地,所述第一调整模块,具体用于确定出用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值的可调参数;根据所述可调参数以及所述待转换的脉冲神经网络所需的运行时长,确定出目标激活函数,作为目标激活函数;按照预设调整策略,将所述原始人工神经网络模型中每个神经元的激活函数替换为所述目标激活函数,得到每个神经元的调整后激活函数。
可选地,所述确定模块,具体用于确定出用于表示待输入值、所述运行时长以及所述可调参数之间的关联关系的第一函数;确定出用于表示所述第一函数与所述运行时长之间的关联关系的第二函数;根据所述第二函数以及所述可调参数,确定出目标激活函数。
可选地,所述确定模块,具体用于将所述原始人工神经网络模型中的最大池化方式调整为平均池化方式;根据所述平均池化方式以及所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型。
可选地,所述训练模块,具体用于获取图像样本;将所述图像样本输入到所述调整后人工神经网络模型中,以通过所述调整后人工神经网络模型输出针对所述图像样本的目标检测结果,其中,所述目标检测结果包括预测边界框的中心位置和尺寸大小、预测边界框是否锚定目标物以及所述目标物的分类结果;以最小化所述目标检测结果与标签之间的差异为优化目标,对所述调整后人工神经网络模型中每个神经元的调整后激活函数中包含的可调参数进行调整,得到每个神经元的调整后参数;其中,所述可调参数用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值;基于所述每个神经元的调整后参数,确定出对所述调整后人工神经网络模型进行训练后所得到的训练后模型。
可选地,所述参数迁移模块,具体用于针对所述训练后模型的每个神经元,根据预设调整量,对所述训练后模型中该神经元的模型参数包含的偏置参数进行调整,得到调整后偏置参数;根据所述调整后偏置参数,确定出对所述训练后模型中该神经元的模型参数进行调整后所得到的调整后模型参数;将所述调整后模型参数作为所述待转换的脉冲神经网络模型中该神经元的模型参数,将所述训练后模型中该神经元的调整后激活函数中包含的可调参数作为所述待转换的脉冲神经网络模型中该神经元发放脉冲所需达到的膜电位阈值;其中,所述训练后模型的模型结构与所述待转换的脉冲神经网络模型的模型结构相同;根据所述待转换的脉冲神经网络模型中每个神经元的模型参数以及膜电位阈值,确定出初始脉冲神经网络模型。
本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的目标检测方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的目标检测方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书实施例中根据待转换的脉冲神经网络模型所需的运行时长,对原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数。对包含有调整后激活函数的调整后人工神经网络模型进行训练,得到训练后模型,将训练后模型的模型参数迁移到脉冲神经网络模型中,得到初始脉冲神经网络模型,并对初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型。在此方法中,由于是通过脉冲神经网络模型的运行时长,对人工神经网络模型的激活函数进行调整的,所以,将通过调整后激活函数训练得到的模型参数迁移到脉冲神经网络模型中,无需脉冲神经网络模型消耗额外的运行时长来达到与人工神经网络模型接近的性能,从而减少了脉冲神经网络模型运行的计算量和功耗。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书实施例提供的目标检测方法的流程示意图;
图2为本说明书实施例提供的g(x)与f(x)之间的差异示意图;
图3为本说明书实施例提供的f(x)与改写后的h(x)之间的差异示意图;
图4为本说明书实施例提供的目标检测装置结构示意图;
图5为本说明书实施例提供的电子设备的结构示意图。
具体实施方式
人工神经网络或脉冲神经网络可以是由各神经元相互联接所构成的,针对每个神经元,该神经元表示对输入该神经元的数据进行处理的方法,比如:对输入该神经元的数据进行卷积处理,得到卷积处理结果;通过激活函数对卷积处理结果进行激活,得到激活值等。对于某些神经元,除了上述的处理方法之外,还可能对激活值进行池化,得到池化结果,并将池化结果传输给下一层的神经元。
接下来,介绍一下人工神经网络模型和脉冲神经网络模型的前馈计算原理。
以YOLOv3-Tiny模型结构的人工神经网络模型为例,人工神经网络模型的前馈计算原理是:针对每个人工神经元,该人工神经元基于上一层的人工神经元的输出值、该人工神经元与上一层的人工神经元之间的权重以及该人工神经元的偏置参数,确定出一个卷积值,对这个卷积值进行激活处理,得到激活值。
具体的公式如下:
激活函数的公式为:
Figure SMS_1
Figure SMS_2
x为激活函数的输入值,leak为常数,通常为0.1。leak*min(0,x)部分用于保留负值。
激活函数的输入值的计算公式为:
Figure SMS_3
表示为第l-1层的第j个人工神经元与第l层的第i个人工神经元之间的权重,/>
Figure SMS_4
表示为第l层的第i个人工神经元的偏置参数。
以YOLOv3-Tiny模型结构的脉冲神经网络模型为例,传统的脉冲神经网络模型的前馈计算原理是:针对每个脉冲神经元,该脉冲神经元不断累积输入并增加膜电位,直到膜电位达到膜电位阈值时,该脉冲神经元发放脉冲,并将膜电位复位。
具体公式如下:
累积输入并增加膜电位的公式为:
Figure SMS_5
Figure SMS_6
表示为t时刻第l层第i个脉冲神经元的复位前累积增加的膜电位。/>
Figure SMS_7
表示为t-1时刻第l层第i个脉冲神经元的膜电位。/>
Figure SMS_8
表示为第l-1层的第j个脉冲神经元与第l层的第i个脉冲神经元之间的权重。/>
Figure SMS_9
表示为第l-1层的第j个脉冲神经元发放的脉冲值,/>
Figure SMS_10
表示为第l层的第i个脉冲神经元的偏置参数。
发放脉冲的脉冲值为:
Figure SMS_11
Figure SMS_12
为第l层的第i个脉冲神经元的膜电位阈值。
发放脉冲后复位公式为:
Figure SMS_13
表示为t时刻第l层第i个脉冲神经元的复位后的膜电位。
需要说明的是,传统的人工神经网络模型中神经元发放脉冲为固定值,即,1。
人工神经网络模型与脉冲神经网络模型通过间接转换方法实现相同或最接近的性能的原则是:人工神经网络模型每个神经元输出的激活值需要与脉冲神经网络模型每个神经元发放脉冲的频率值最接近或相等,而脉冲神经网络模型每个神经元发放脉冲的频率值与脉冲神经网络模型的运行时长有关。其中,计算每个神经元发放脉冲的频率值的公式为:
Figure SMS_15
Figure SMS_19
Figure SMS_23
可以表示第l层的第i个神经元发放脉冲的频率值,T可以表示运行时长,/>
Figure SMS_16
表示在t时刻第l层的第i个神经元发放的脉冲值,/>
Figure SMS_20
表示第l-1层的第j个神经元与第l层的第i个神经元之间的权重,
Figure SMS_21
表示第l-1层的第j个神经元发放脉冲的频率值,/>
Figure SMS_24
表示第l层的第i个神经元的偏置参数。/>
Figure SMS_14
表示脉冲神经网络中第l层的第i个神经元发放脉冲的频率值与人工神经网络中第l层的第i个神经元通过激活函数输出的激活值之间的误差,/>
Figure SMS_17
(T)表示脉冲神经网络中在T时刻第l层的第i个神经元发放脉冲复位后的膜电位,/>
Figure SMS_18
理论上不会随着运行时长的增加而改变,/>
Figure SMS_22
表示脉冲神经网络中第l层的第i个神经元的初始膜电位。
现有技术中实现间接转换的方式是将脉冲神经网络的性能向人工神经网络的性能靠近。因此,当人工神经网络的激活函数中包含有能够产生负值的函数时,为了使脉冲神经网络的性能向人工神经网络的性能靠近,需要对脉冲神经网络进行修改,使脉冲神经网络产生负脉冲,以拟合人工神经网络中通过激活函数计算出的负值。在对脉冲神经网络进行修改之后,为适应脉冲神经网络发放脉冲的脉冲值,可以将训练后的人工神经网络中每个神经元对应的权重进行归一化,并将归一化后的权重迁移到脉冲神经网络中对应神经元中。在将归一化后的权重迁移到脉冲神经网络之后,可以运行脉冲神经网络,为了使得脉冲神经网络中每个神经元发放脉冲的频率值与人工神经网络对应神经元通过激活函数输出的激活值相同或最接近,运行脉冲神经网络的时长会比较长,从而增加了运行脉冲神经网络所需的计算量和功耗。
由上述的
Figure SMS_25
公式可知,为了使脉冲神经网络中每个神经元发放脉冲的频率值与人工神经网络对应神经元通过激活函数输出的激活值相同或最接近,需要让/>
Figure SMS_26
尽可能小,即,需要增加运行脉冲神经网络的时长。运行时长越长,/>
Figure SMS_27
越小,发放脉冲的频率值越接近激活值。因此,现有技术中脉冲神经网络的运行时长的增加,造成脉冲神经网络的计算量的增加,从而增加功耗。
本说明书提供的目标检测方法旨在基于脉冲神经网络模型所需的运行时长,对人工神经网络模型中池化方式和每个神经元的激活函数进行调整,以使训练后的人工神经网络模型每个神经元输出的激活值与训练后的脉冲神经网络模型每个神经元发放脉冲的频率值最接近。
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书实施例提供的目标检测方法的流程示意图,该目标检测方法可以适用于服务器,包括:
S100:获取原始人工神经网络模型。
在本说明书实施例中,服务器可以接收到模型转换请求,其中,模型转换请求中携带有人工神经网络模型的模型结构、待转换的脉冲神经网络模型所需的运行时长等信息。待转换的脉冲神经网络模型所需的运行时长可以根据实际需求进行设置。
在本说明书中,人工神经网络模型的模型结构可以包括:YOLOv3-Tiny。
在接收到模型转换请求之后,可以基于模型转换请求中携带的模型结构,从用于存储人工神经网络模型的数据库中查找出满足该模型结构的人工神经网络模型,作为原始人工神经网络模型。其中,人工神经网络模型可以是预训练人工神经网络模型,人工神经网络模型中模型参数为预训练模型参数,模型参数可以包括:权重、偏置参数等参数。
此外,在查找到人工神经网络模型之后,可以先不将查找到的人工神经网络模型作为原始人工神经网络模型,而是,可以根据其他参数,对人工神经网络模型的输出维度进行调整,得到调整后输出维度。之后,可以将具有调整后输出维度的人工神经网络模型作为原始人工神经网络模型。其中,其他参数可以包括:检测类别数量、锚框数据等。锚框数据可以包括:锚框的数量、锚框的尺寸和中心位置坐标。
其中,调整后输出维度为(Batch,Height,Width,Channel)。Batch表示每次输入人工神经网络模型的样本批次大小,Height表示输出特征图的高度,Width表示输出特征图的宽度,Channel表示输出特征的通道数。
针对输出特征的通道数的具体计算公式为:Channel=numanchor*(numclass+4+1)。其中,numanchor表示不同尺寸的锚框数量;numclass表示检测类别数量;“4”表示输出的四元数据(x,y,w,h),(x,y)代表锚框的中心位置坐标,w表示锚框的宽,h表示锚框的高;最后一项“1”表示置信度。本实施例的输出特征图有两组宽高值,分别为(13,13)和(26,26),numanchor和numclass的值分别为3和20,即Channel的值为75。
S102:根据待转换的脉冲神经网络模型所需的运行时长,按照预设调整策略,对所述原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数。
在本说明书实施例中,在获取到原始人工神经网络模型之后,可以结合人工神经网络模型和脉冲神经网络模型中每个神经元的计算原理,对原始人工神经网络模型中的池化方式以及每个神经元对应的激活函数进行调整。
对激活函数进行调整:
在本说明书实施例中,可以根据待转换的脉冲神经网络模型所需的运行时长,按照预设调整策略,对原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数。其中,调整时的预设调整策略可以包括:替换。另外,待转换的脉冲神经网络模型与原始人工神经网络模型的模型结构相同。
具体的,可以从接收到的模型转换请求中获取待转换的脉冲神经网络模型所需的运行时长。同时,确定出用于表示待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值的可调参数。然后,可以根据可调参数以及待转换的脉冲神经网络模型所需的运行时长,确定出目标激活函数。最后,按照预设调整策略,将原始人工神经网络模型中每个神经元的激活函数替换为该目标激活函数,得到每个神经元的调整后激活函数。其中,可调参数可以在人工神经网络模型训练过程中进行调整。调整后激活函数实际上就是目标激活函数。目标激活函数可以对神经元中经过卷积层处理后所得到的数据进行量化处理。
在确定出目标激活函数时,可以确定出用于表示待输入值、运行时长以及可调参数之间的关联关系的第一函数。其中,待输入值、运行时长以及可调参数作为第一函数的输入参数。然后,可以确定出用于表示第一函数与运行时长之间的关联关系的第二函数。其中,第一函数和运行时长作为第二函数的输入参数。最后,根据第二函数以及可调参数,确定出目标激活函数。其中,待输入值可以是指待输入到目标激活函数的输入值,即,经过神经元中卷积层处理所得到的数据。
其中,目标激活函数的公式为:
Figure SMS_28
θ用于表示待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值,即,可调参数。θ可以在人工神经网络模型训练过程中进行调整。round(·)表示四舍五入取整函数,/>
Figure SMS_29
表示第一函数,x表示待输入值。clip(x′,0,1)表示裁剪函数,可以将x′裁剪到[0,1]内。
Figure SMS_30
可以将/>
Figure SMS_31
裁剪到[0,1]内,其中,/>
Figure SMS_32
表示第二函数。T表示待转换的脉冲神经网络模型所需的运行时长。h(x)为目标激活函数。
需要说明的是,以YOLOv3-Tiny结构的人工神经网络模型为例,这种模型结构的原始人工神经网络模型中除了最后两层用于输出结果的卷积层之外,之前的所有卷积层的输出值都需要通过激活函数进行处理,得到激活值。
S104:根据所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型。
在本说明书实施例中,在对原始人工神经网络模型中的激活函数进行调整得到调整后激活函数之后,可以根据每个神经元的调整后激活函数,确定出对原始人工神经网络模型进行调整后所得到的调整后人工神经网络模型。
在人工神经网络模型中,有些神经元还需要对激活值进行池化处理,而原始人工神经网络模型中对激活值采用的是最大池化方式,即,将池化区域内的最大激活值作为下一层神经元的输入。但是,由于脉冲神经网络模型采用的是离散的脉冲序列作为模型的输入输出,最大池化方式并不适用。因此,需要将原始人工神经网络模型中的最大池化方式改为平均池化方式,即,将池化区域内的平均激活值作为下一层神经元的输入。
所以,在对原始人工神经网络模型中的激活函数进行调整之后,可以将原始人工神经网络模型中的最大池化方式调整为平均池化方式。然后,根据平均池化方式以及每个神经元的调整后激活函数,确定出调整后人工神经网络模型。
S106:对所述调整后人工神经网络模型进行训练,以得到训练后模型。
在本说明书实施例中,在确定出调整后人工神经网络模型之后,可以对调整后人工神经网络模型进行训练,得到训练后的调整后人工神经网络模型,作为训练后模型。
在对调整后人工神经网络模型进行训练时,若调整后人工神经网络模型为预训练人工神经网络模型,则可以将调整后人工神经网络模型分为主干部分和输出部分。其中,主干部分的神经元用于提取图像中的特征,输出部分的神经元用于目标检测和目标分类。在这种情况下,在对调整后人工神经网络模型进行训练时,可以先固定主干部分的神经元的模型参数,对输出部分的神经元的模型参数进行训练,然后,对主干部分的神经元的模型参数以及输出部分的神经元的模型参数进行微调训练。若调整后人工神经网络模型不是预训练人工神经网络模型,直接对整个调整后人工神经网络模型进行训练。
不管调整后人工神经网络模型是否为预训练人工神经网络模型,对调整后人工神经网络模型的训练过程如下:
具体的,可以从开源的目标检测数据集中获取图像样本,其中,图像样本可以是多个。然后,将图像样本输入到调整后人工神经网络模型中,以通过调整后人工神经网络模型输出针对图像样本的目标检测结果。其中,目标检测结果包括预测边界框的中心位置和尺寸大小、该预测边界框是否锚定目标物以及目标物的分类结果。以最小化目标检测结果与标签之间的差异为优化目标,对调整后人工神经网络模型中每个神经元的调整后激活函数中包含的可调参数进行调整,得到每个神经元的调整后参数。最后,基于每个神经元的调整后参数,确定出对调整后人工神经网络模型进行训练后所得到的训练后模型。
在以最小化目标检测结果与标签之间的差异为优化目标,对调整后人工神经网络模型中每个神经元的调整后激活函数中包含的可调参数进行调整时,以最小化目标检测结果与标签之间的差异为优化目标,对调整后人工神经网络模型中每个神经元的模型参数以及每个神经元的调整后激活函数中包含的可调参数进行调整,得到每个神经元的调整后参数。其中,调整后参数可以包括:调整后的模型参数、调整后的可调参数中的至少一个。
其中,确定目标检测结果与标签之间的差异的方法可以包括:
确定出目标检测结果包含的预测边界框的中心位置与标签锚框的中心位置之间的差异,作为第一差异;确定出目标检测结果包含的预测边界框的尺寸大小与标签锚框的尺寸大小之间的差异,作为第二差异;根据第一差异和第二差异,确定出针对预测边界框的位置和尺寸的损失,作为第一损失。
其中,计算第一损失的公式为:
Figure SMS_33
Figure SMS_34
Figure SMS_35
λcoord为常数,S2表示网格大小,本说明中网格大小为13×13和26×26。B表示标签锚框的数量。/>
Figure SMS_36
表示如果在(i,j)处的边界框内有目标物,则值为1,否则为0。wi表示预测边界框的宽,hi表示预测边界框的高,(xij,yij)表示预测边界框的中心位置,即,中心坐标。/>
Figure SMS_37
表示标签锚框的中心坐标。/>
Figure SMS_38
表示为标签锚框的宽,/>
Figure SMS_39
表示为标签锚框的高。
根据目标检测结果包含的预测边界框中是否锚定目标物以及标签锚框是否锚定目标物,确定出针对预测边界框的预测置信度,作为第二损失。
计算第二损失的公式为:
Figure SMS_40
Figure SMS_41
λobj、λnoobj为常数,cij表示预测边界框是否锚定目标物,若有目标物,cij为1,反之,cij为0。/>
Figure SMS_42
表示标签锚框锚定目标物,/>
Figure SMS_43
为1。/>
Figure SMS_44
表示如果在(i,j)处的边界框内有目标物,则值为0,否则为1。
根据目标检测结果包含的目标物的分类结果与标签分类结果之间的差异,确定出针对目标分类的损失,作为第三损失。
计算第三损失的公式为:
Figure SMS_45
Figure SMS_46
λclass为常数,pij(c)表示在(i,j)处的预测边界框中目标物属于每种类别的概率,/>
Figure SMS_47
表示在(i,j)处的标签锚框中目标物属于每种类别的概率。
基于第一损失、第二损失以及第三损失,确定出综合损失。即,将第一损失、第二损失以及第三损失进行求和,得到求和结果,作综合损失。
计算综合损失的公式为:Loss=lossbox+losscls+lossobj
在以最小化目标检测结果与标签之间的差异为优化目标时,以最小化综合损失为优化目标,对调整后人工神经网络模型进行训练。即,以最小化综合损失为优化目标,对调整后人工神经网络模型中每个神经元的模型参数以及每个神经元的调整后激活函数中包含的可调参数进行调整,得到每个神经元的调整后参数。
反向传播时,可以采用直通估计器(Straight-Through Estimator,STE)计算目标激活函数中取整函数的反传梯度,具体计算为:
Figure SMS_48
Figure SMS_49
其中,Loss为综合损失。
S108:将所述训练后模型的模型参数迁移到所述待转换的脉冲神经网络模型中,以确定出初始脉冲神经网络模型。
在本说明书实施例中,在得到训练后模型之后,可以将训练后模型的模型参数迁移到待转换的脉冲神经网络模型中,以确定出初始脉冲神经网络模型。
在将原始人工神经网络模型的激活函数替换为目标激活函数的过程中,并不是任何函数都可以对原始人工神经网络模型的激活函数进行替换的,目标激活函数需要满足这两个条件中至少一个条件:第一个条件,通过目标激活函数输出的激活值与通过原始人工神经网络模型中的激活函数输出的激活值相同或最接近。第二个条件,针对每个神经元,通过该神经元的目标激活函数输出的激活值与脉冲神经网络模型中该神经元发放脉冲的频率值相同或最接近。
在确定目标激活函数的过程中,为了满足第一个条件,导致通过确定出的目标激活函数输出的激活值与脉冲神经网络模型发放脉冲的频率值无法完全等价,而是期望等价,为了使通过目标激活函数输出的激活值与脉冲神经网络模型发放脉冲的频率值完全等价,在将训练后模型迁移到待转换的脉冲神经网络模型的过程中,可以对训练后模型中的偏置参数进行调整,得到调整后偏置参数,并将调整后偏置参数作为初始脉冲神经网络模型的偏置参数。
具体的,针对训练后模型的每个神经元,根据预设调整量,对训练后模型中该神经元的模型参数包含的偏置参数进行调整,得到调整后偏置参数,然后,根据调整后偏置参数,确定出对训练后模型中该神经元的模型参数进行调整后所得到的调整后模型参数。其中,调整后模型参数可以包括:调整后偏置参数和训练后模型中神经元对应的权重。之后,将调整后模型参数作为待转换的脉冲神经网络模型中该神经元的模型参数。模型参数可以包括:权重、调整后偏置参数。同时,将训练后模型中该神经元的调整后激活函数中包含的可调参数作为待转换的脉冲神经网络模型中该神经元发放脉冲所需达到的膜电位阈值。其中,训练后模型中该神经元的调整后激活函数中包含的可调参数是对调整后人工神经网络模型进行训练后所得到的可调参数。然后,根据待转换的脉冲神经网络模型中每个神经元的模型参数以及膜电位阈值,确定出初始脉冲神经网络模型。其中,预设调整量为
Figure SMS_50
T表示为初始脉冲神经网络模型的运行时长,/>
Figure SMS_51
表示为初始脉冲神经网络模型中第l层的第i个神经元的膜电位阈值。
其中,训练后模型的模型结构与待转换的脉冲神经网络模型的模型结构相同。脉冲神经网络模型可以是指聚集-发放神经元模型(Integrate-and-Fire Model,IF)。
另外,根据脉冲神经网络模型的前馈计算原理,本说明书实施例中对传统的脉冲神经元发放脉冲的脉冲值进行调整,得到待转换的脉冲神经网络模型,以适用于目标检测任务。因为,目标检测任务需要输出精确的实数值以确定目标物的位置和大小,所以,人工神经网络模型每个神经元输出的激活值和脉冲神经网络模型中每个神经元发放脉冲的频率值也需相同或最接近,才可能达到相当的性能。而脉冲神经网络模型中不同神经元的最大频率值可能是不一样的,因此,在本说明书中将0/1脉冲调整为0/θ,以实现脉冲神经网络模型针对每个神经元发放脉冲的频率值的缩放。
将脉冲神经网络模型的前馈计算公式修改为:
累积输入并增加膜电位的公式为:
Figure SMS_52
Figure SMS_53
表示为t时刻第l层第i个脉冲神经元的复位前累积增加的膜电位。/>
Figure SMS_54
表示为t-1时刻第l层第i个脉冲神经元的膜电位。/>
Figure SMS_55
表示为第l-1层的第j个脉冲神经元与第l层的第i个脉冲神经元之间的权重。/>
Figure SMS_56
表示为第l-1层的第j个脉冲神经元发放的脉冲值,/>
Figure SMS_57
表示为第l层的第i个脉冲神经元的偏置参数。
发放脉冲的脉冲值为:
Figure SMS_58
Figure SMS_59
为第l层的第i个脉冲神经元的膜电位阈值。
发放脉冲后复位公式为:
Figure SMS_60
Figure SMS_61
表示为t时刻第l层第i个脉冲神经元的复位后的膜电位。
需要说明的是,虽然此处脉冲值变为实数值,但也可通过将该值吸入权重来实现0/1脉冲,以降低计算量。也就是,将脉冲值作为权重的一部分。即,
Figure SMS_62
其中,将/>
Figure SMS_63
重新确定为第l-1层的第j个脉冲神经元与第l层的第i个脉冲神经元之间的权重。
S110:基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型。
在本说明书实施例中,将训练后模型中的模型参数以及可调参数迁移到脉冲神经网络模型中之后,还需要对迁移后的脉冲神经网络模型(即,初始脉冲神经网络模型)进行微调,使训练后模型中每个神经元的输出值与初始脉冲神经网络模型中对应的神经元发放脉冲的频率值相等或最接近。需要说明的是,在调整初始脉冲神经网络模型的过程中无需在已有的运行时长的基础上额外增加运行时长。
具体的,基于训练后模型中每个神经元的输出值以及初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型。
在对初始脉冲神经网络模型进行调整时,可以对初始脉冲神经网络模型中每个神经元对应的初始膜电位以及包含有偏置参数和权重的模型参数中的至少一种进行调整。
对初始脉冲神经网络模型中神经元的初始膜电位进行调整:
以一个调整图像样本为例:
可以先获取用于调整初始脉冲神经网络模型的调整图像样本。然后,将该调整图像样本输入到训练后模型中,以通过训练后模型得到每个神经元的输出值。同时,将该调整图像样本输入到初始脉冲神经网络模型中,以通过初始脉冲神经网络模型得到每个神经元发放脉冲的频率值。
之后,针对初始脉冲神经网络模型中的每个神经元,根据训练后模型中该神经元的输出值与初始脉冲神经网络模型中该神经元发放脉冲的频率值之间的差异,以及初始脉冲神经网络模型中该神经元的运行时长,确定出对该神经元的初始膜电位进行调整的调整值。最后,将初始脉冲神经网络模型中该神经元的初始膜电位调整为该调整值,得到该神经元的调整后初始膜电位。根据每个神经元的调整后初始膜电位,确定出最终脉冲神经网络模型。其中,初始脉冲神经网络模型中该神经元的初始膜电位可以是0。
其中,计算调整值的公式为:
Figure SMS_64
Figure SMS_65
表示为训练后模型第l层的第i个神经元通过调整后激活函数所输出的输出值(即,激活值)。
Figure SMS_66
表示为初始脉冲神经网络模型中第l层的第i个神经元在初始膜电位为0的情况下发放脉冲的频率值。
当调整图像样本为多个时,针对同一神经元,可以将多个调整图像样本对应的调整值进行平均,以得到平均调整值。然后,将这个神经元的初始膜电位调整为该平均调整值。
具体的,先获取各调整图像样本。针对每个调整图像样本,将该调整图像样本输入到训练后模型中,以通过训练后模型得到该调整图像样本经过每个神经元的输出值;将该调整图像样本输入到初始脉冲神经网络模型中,以通过初始脉冲神经网络模型得到该调整图像样本经过每个神经元时每个神经元发放脉冲的频率值;
针对初始脉冲神经网络模型中的每个神经元,根据训练后模型中每个调整图像样本经过该神经元的输出值与初始脉冲神经网络模型中每个调整图像样本经过该神经元时该神经元发放脉冲的频率值之间的差异,以及初始脉冲神经网络模型中该神经元的运行时长,确定出每个调整图像样本针对该神经元的调整值。
根据每个调整图像样本针对该神经元的调整值,确定针对该神经元的平均调整值。将初始脉冲神经网络模型中该神经元的初始膜电位调整为平均调整值,得到该神经元的调整后初始膜电位。根据每个神经元的调整后初始膜电位,确定出最终脉冲神经网络模型。
其中,计算平均调整值的公式为:
Figure SMS_67
N为调整图像样本的数量。
对初始脉冲神经网络模型中神经元的模型参数进行调整(即,对初始脉冲神经网络模型进行训练):
先获取调整图像样本,将调整图像样本输入到训练后模型中,以通过训练后模型得到每个神经元的输出值。同时,将该调整图像样本输入到初始脉冲神经网络模型中,以通过初始脉冲神经网络模型得到每个神经元发放脉冲的频率值。其中,调整图像样本可以是多个。
针对初始脉冲神经网络模型中的每个神经元,基于训练后模型中该神经元的输出值以及初始脉冲神经网络模型中该神经元发放脉冲的频率值,确定训练后模型中该神经元的输出值与初始脉冲神经网络模型中该神经元发放脉冲的频率值之间的均方误差。其中,均方误差为训练初始脉冲神经网络模型的损失。
以均方误差最小化为目标,对初始脉冲神经网络模型中的该神经元的模型参数进行调整,得到最终脉冲神经网络模型。
其中,计算均方误差的公式为:
Figure SMS_68
N为调整图像样本的数量。/>
Figure SMS_69
表示第τ个调整图像样本在第l层第i个神经元处的输出值,/>
Figure SMS_70
表示第τ个调整图像样本在第l层第i个神经元处发放脉冲的频率值。
由于脉冲神经网络模型中每个神经元的输出函数的不可微分特性,训练过程中需要采用替代梯度以近似该函数的梯度,使其能够反向传播。近似梯度具体计算公式为:
Figure SMS_71
其中,|x|表示绝对值,float(x)表示将逻辑布尔值转换成可以计算的实数值(比如:逻辑“真”取值为1,逻辑“假”取值为0),α为与梯度大小有关的超参数,可根据需求设定为1、θ或其他值。
紧接着,可利用时空反向传播算法(Back-Propagation Through Time,BPTT)对初始脉冲神经网络模型的权重和偏置参数进行逐层训练。
S112:在接收到目标检测任务请求后,将目标检测任务请求中携带的目标图像输入到所述最终脉冲神经网络模型中,以通过所述最终脉冲神经网络模型,对所述目标图像进行目标检测。
在本说明书实施例中,服务器可以接收用户发送的目标检测任务请求,在接收到目标检测任务请求之后,可以将目标检测任务请求中携带的目标图像输入到最终脉冲神经网络模型中,以通过最终脉冲神经网络模型,对目标图像进行目标检测,得到针对目标图像的目标检测结果。然后,将针对目标图像的目标检测结果返回给用户使用的终端设备。其中,针对目标图像的目标检测结果可以包含有:目标图像中锚定目标物的边界框、目标图像中目标物的分类结果等。
需要说明的是,本申请中所有获取信号、信息或图像数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
通过上述图1所示的方法可见,本说明书根据待转换的脉冲神经网络模型所需的运行时长,对原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数。对包含有调整后激活函数的调整后人工神经网络模型进行训练,得到训练后模型,将训练后模型的模型参数迁移到脉冲神经网络模型中,得到初始脉冲神经网络模型,并对初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型。在此方法中,由于是通过脉冲神经网络模型的运行时长,对人工神经网络模型的激活函数进行调整的,所以,将通过调整后激活函数训练得到的模型参数迁移到脉冲神经网络模型中,无需脉冲神经网络模型消耗额外的运行时长来达到与人工神经网络模型接近的性能,从而减少了脉冲神经网络模型运行的计算量和功耗。
在本说明书中,对原始人工神经网络模型中神经元的激活函数能够调整为目标激活函数的原理,以及调整后人工神经网络模型通过目标激活函数输出的激活值与脉冲神经网络模型神经元发放脉冲的频率值进行完全等价的原理进行说明。
在本说明书实施例中,在运行时长内迭代计算待转换的脉冲神经网络模型的前馈计算公式,针对某个神经元,得到
Figure SMS_72
Figure SMS_73
T为运行时长。/>
Figure SMS_74
表示为第l层第i个神经元的初始膜电位。/>
Figure SMS_75
表示为第l-1层的第j个脉冲神经元与第l层的第i个脉冲神经元之间的权重。/>
Figure SMS_76
表示为第l-1层的第j个脉冲神经元发放的脉冲值,/>
Figure SMS_77
表示为第l层的第i个脉冲神经元的偏置参数。
Figure SMS_78
的等号两边同时除以T,得到/>
Figure SMS_79
假设
Figure SMS_80
即有/>
Figure SMS_81
这样的话,因为/>
Figure SMS_82
小于每个时间步发放一个脉冲的脉冲值,所以,无法改变神经元发放脉冲的频率,则/>
Figure SMS_83
Figure SMS_84
基于此,可以将脉冲神经网络模型的前馈计算公式描述为:
Figure SMS_85
Figure SMS_86
为了使σs(x)的输出值符合/>
Figure SMS_87
的取值范围,则可以通过σs(x)对
Figure SMS_88
进行量化,即,/>
Figure SMS_89
在人工神经网络模型中,每个神经元的输出值在实际计算中并不是无穷大的,肯定会存在最大值(假设为λ),因此,可以将
Figure SMS_90
Figure SMS_91
激活函数改写为σa(x)=f(x)=clip(x,0,λ)=min(λ,max(0,x))。λ可以设置为θ。
为了使原始人工神经网络模型通过激活函数的输出值与脉冲神经网络模型发放脉冲的频率值完全等价,这样,可以将原始人工神经网络模型中的f(x)替换为g(x)。即,调整后人工神经网络模型中的激活函数与脉冲神经网络模型中计算发放脉冲的频率值的公式完全等价。
若g(x)作为目标激活函数,虽然原始人工神经网络模型通过激活函数的输出值与脉冲神经网络模型发放脉冲的频率值完全等价,但是g(x)与f(x)之间的差异比较大。如图2所示。在图2中,假设T为20,θ为20,虚线表示g(x),实线表示f(x)。
为了使f(x)与g(x)之间的平均误差最小,可以对脉冲神经网络模型中神经元的偏置参数添加一个常量bshift来修改函数g(x),将修改后的g(x)作为h(x)。
Figure SMS_92
这样,可以将减小f(x)与g(x)之间的平均误差的问题转化为求当理论误差最小时偏置偏移量bshift的值,且满足0≤bshiftT<θ。
假设人工神经网络模型的输出值(或脉冲神经网络模型的频率值)落入每一阶段的概率均为p,则当
Figure SMS_93
即/>
Figure SMS_94
时,函数f(x)与h(x)的误差期望为0且平方误差的期望取得最小值。
将h(x)改写为:
Figure SMS_95
针对改写后的h(x)与f(x)的差异示意图,如图3所示。在图3中,假设T为20,θ为20,虚线表示改写后的h(x),实线表示f(x)。
这样,可以将原始人工神经网络模型中激活函数f(x)替换为改写后的h(x)。
由于在脉冲神经网络模型的计算发放脉冲的频率值的公式上加上了
Figure SMS_96
才使得f(x)与改写后的h(x)之间的误差最小,相当于将原始人工神经网络模型通过激活函数的输出值与脉冲神经网络模型发放脉冲的频率值完全等价改为期望等价。也就是,改写后的h(x)无法使调整后人工神经网络模型通过激活函数输出的激活值与脉冲神经网络模型发放脉冲的频率值相同。
在目标激活函数为改写后的h(x)的情况下,为了使调整后人工神经网络模型中的目标激活函数与脉冲神经网络模型中计算发放脉冲的频率值的公式完全相同,可以在将调整后人工神经网络模型转换为脉冲神经网络模型时,需要在脉冲神经网络模型的神经元的偏置项加上
Figure SMS_97
以实现人工神经网络模型与脉冲神经网络模型的完全等价,即最终脉冲神经网络模型的偏置为:/>
Figure SMS_98
需要说明的是,当T改变为T′时(例如采用更短的运行时长),改变为T′时的h(x)与f(x)同样满足误差期望为0且平方误差的期望取得最小值,因而不用从头训练人工神经网络模型即可实现几乎无损的转换,极大地节省了脉冲神经网络模型生成的成本。
以上为本说明书实施例提供的目标检测方法,基于同样的思路,本说明书还提供了相应的装置、存储介质和电子设备。
图4为本说明书实施例提供的一种目标检测装置的结构示意图,所述装置包括:
获取模块401,用于获取原始人工神经网络模型;
第一调整模块402,用于根据待转换的脉冲神经网络模型所需的运行时长,按照预设调整策略,对所述原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数;
确定模块403,用于根据所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型;
训练模块404,用于对所述调整后人工神经网络模型进行训练,以得到训练后模型;
参数迁移模块405,用于将所述训练后模型的模型参数迁移到所述待转换的脉冲神经网络模型中,以确定出初始脉冲神经网络模型;
第二调整模块406,用于基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型;
目标检测模块407,用于在接收到目标检测任务请求后,将目标检测任务请求中携带的目标图像输入到所述最终脉冲神经网络模型中,以通过所述最终脉冲神经网络模型,对所述目标图像进行目标检测。
可选地,所述第一调整模块402具体用于,确定出用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值的可调参数;根据所述可调参数以及所述待转换的脉冲神经网络模型所需的运行时长,确定出目标激活函数;按照预设调整策略,将所述原始人工神经网络模型中每个神经元的激活函数替换为所述目标激活函数,得到每个神经元的调整后激活函数。
可选地,所述第一调整模块402具体用于,确定出用于表示待输入值、所述运行时长以及所述可调参数之间的关联关系的第一函数;确定出用于表示所述第一函数与所述运行时长之间的关联关系的第二函数;根据所述第二函数以及所述可调参数,确定出目标激活函数。
可选地,所述确定模块403具体用于,将所述原始人工神经网络模型中的最大池化方式调整为平均池化方式;根据所述平均池化方式以及所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型。
可选地,所述训练模块404具体用于,获取图像样本;将所述图像样本输入到所述调整后人工神经网络模型中,以通过所述调整后人工神经网络模型输出针对所述图像样本的目标检测结果,其中,所述目标检测结果包括预测边界框的中心位置和尺寸大小、所述预测边界框是否锚定目标物以及所述目标物的分类结果;以最小化所述目标检测结果与标签之间的差异为优化目标,对所述调整后人工神经网络模型中每个神经元的调整后激活函数中包含的可调参数进行调整,得到每个神经元的调整后参数;其中,所述可调参数用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值;基于所述每个神经元的调整后参数,确定出对所述调整后人工神经网络模型进行训练后所得到的训练后模型。
可选地,所述参数迁移模块405具体用于,针对所述训练后模型的每个神经元,根据预设调整量,对所述训练后模型中该神经元的模型参数包含的偏置参数进行调整,得到调整后偏置参数;根据所述调整后偏置参数,确定出对所述训练后模型中该神经元的模型参数进行调整后所得到的调整后模型参数;将所述调整后模型参数作为所述待转换的脉冲神经网络模型中该神经元的模型参数,将所述训练后模型中该神经元的调整后激活函数中包含的可调参数作为所述待转换的脉冲神经网络模型中该神经元发放脉冲所需达到的膜电位阈值;其中,所述训练后模型的模型结构与所述待转换的脉冲神经网络模型的模型结构相同;根据所述待转换的脉冲神经网络模型中每个神经元的模型参数以及膜电位阈值,确定出初始脉冲神经网络模型。
可选地,所述第二调整模块406具体用于,获取各调整图像样本;针对每个调整图像样本,将该调整图像样本输入到所述训练后模型中,以通过所述训练后模型得到该调整图像样本经过每个神经元的输出值;将该调整图像样本输入到所述初始脉冲神经网络模型中,以通过所述初始脉冲神经网络模型得到该调整图像样本经过每个神经元时每个神经元发放脉冲的频率值;针对所述初始脉冲神经网络模型中的每个神经元,根据所述训练后模型中每个调整图像样本经过该神经元的输出值与所述初始脉冲神经网络模型中每个调整图像样本经过该神经元时该神经元发放脉冲的频率值之间的差异,以及所述初始脉冲神经网络模型中该神经元的运行时长,确定出每个调整图像样本针对该神经元的调整值;根据每个调整图像样本针对该神经元的调整值,确定针对该神经元的平均调整值;将所述初始脉冲神经网络模型中该神经元的初始膜电位调整为所述平均调整值,得到该神经元的调整后初始膜电位;根据每个神经元的调整后初始膜电位,确定出最终脉冲神经网络模型。
可选地,所述第二调整模块406具体用于,获取调整图像样本;将所述调整图像样本输入到所述训练后模型中,以通过所述训练后模型得到每个神经元的输出值;将该调整图像样本输入到所述初始脉冲神经网络模型中,以通过所述初始脉冲神经网络模型得到每个神经元发放脉冲的频率值;针对所述初始脉冲神经网络模型中的每个神经元,基于所述训练后模型中该神经元的输出值以及所述初始脉冲神经网络模型中该神经元发放脉冲的频率值,确定所述训练后模型中该神经元的输出值与所述初始脉冲神经网络模型中该神经元发放脉冲的频率值之间的均方误差;以所述均方误差最小化为目标,对所述初始脉冲神经网络模型中的该神经元的模型参数进行调整,得到最终脉冲神经网络模型。
本说明书还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可用于执行上述图1提供的目标检测方法。
基于图1所示的目标检测方法,本说明书实施例还提供了图5所示的电子设备的结构示意图。如图5,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的目标检测方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (16)

1.一种目标检测方法,其特征在于,包括:
获取原始人工神经网络模型;
根据待转换的脉冲神经网络模型所需的运行时长,按照预设调整策略,对所述原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数;
根据所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型;
对所述调整后人工神经网络模型进行训练,以得到训练后模型;
将所述训练后模型的模型参数迁移到所述待转换的脉冲神经网络模型中,以确定出初始脉冲神经网络模型;
基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型;
在接收到目标检测任务请求后,将目标检测任务请求中携带的目标图像输入到所述最终脉冲神经网络模型中,以通过所述最终脉冲神经网络模型,对所述目标图像进行目标检测。
2.如权利要求1所述的方法,其特征在于,根据待转换的脉冲神经网络模型所需的运行时长,按照预设调整策略,对所述原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数,具体包括:
确定用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值的可调参数;
根据所述可调参数以及所述待转换的脉冲神经网络模型所需的运行时长,确定出目标激活函数;
按照预设调整策略,将所述原始人工神经网络模型中每个神经元的激活函数替换为所述目标激活函数,得到每个神经元的调整后激活函数。
3.如权利要求2所述的方法,其特征在于,根据所述可调参数以及所述待转换的脉冲神经网络模型所需的运行时长,确定出目标激活函数,具体包括:
确定出用于表示待输入值、所述运行时长以及所述可调参数之间的关联关系的第一函数;
确定出用于表示所述第一函数与所述运行时长之间的关联关系的第二函数;
根据所述第二函数以及所述可调参数,确定出目标激活函数。
4.如权利要求1所述的方法,其特征在于,根据所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型,具体包括:
将所述原始人工神经网络模型中的最大池化方式调整为平均池化方式;
根据所述平均池化方式以及所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型。
5.如权利要求1所述的方法,其特征在于,对所述调整后人工神经网络模型进行训练,以得到训练后模型,具体包括:
获取图像样本;
将所述图像样本输入到所述调整后人工神经网络模型中,以通过所述调整后人工神经网络模型输出针对所述图像样本的目标检测结果,其中,所述目标检测结果包括预测边界框的中心位置和尺寸大小、所述预测边界框是否锚定目标物以及所述目标物的分类结果;
以最小化所述目标检测结果与标签之间的差异为优化目标,对所述调整后人工神经网络模型中每个神经元的调整后激活函数中包含的可调参数进行调整,得到每个神经元的调整后参数;其中,所述可调参数用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值;
基于所述每个神经元的调整后参数,确定出对所述调整后人工神经网络模型进行训练后所得到的训练后模型。
6.如权利要求1所述的方法,其特征在于,将所述训练后模型的模型参数迁移到所述待转换的脉冲神经网络模型中,以确定出初始脉冲神经网络模型,具体包括:
针对所述训练后模型的每个神经元,根据预设调整量,对所述训练后模型中该神经元的模型参数包含的偏置参数进行调整,得到调整后偏置参数;
根据所述调整后偏置参数,确定出对所述训练后模型中该神经元的模型参数进行调整后所得到的调整后模型参数;
将所述调整后模型参数作为所述待转换的脉冲神经网络模型中该神经元的模型参数,将所述训练后模型中该神经元的调整后激活函数中包含的可调参数作为所述待转换的脉冲神经网络模型中该神经元发放脉冲所需达到的膜电位阈值;其中,所述训练后模型的模型结构与所述待转换的脉冲神经网络模型的模型结构相同;
根据所述待转换的脉冲神经网络模型中每个神经元的模型参数以及膜电位阈值,确定出初始脉冲神经网络模型。
7.如权利要求1所述的方法,其特征在于,基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型,具体包括:
获取各调整图像样本;
针对每个调整图像样本,将该调整图像样本输入到所述训练后模型中,以通过所述训练后模型得到该调整图像样本经过每个神经元的输出值;将该调整图像样本输入到所述初始脉冲神经网络模型中,以通过所述初始脉冲神经网络模型得到该调整图像样本经过每个神经元时每个神经元发放脉冲的频率值;
针对所述初始脉冲神经网络模型中的每个神经元,根据所述训练后模型中每个调整图像样本经过该神经元的输出值与所述初始脉冲神经网络模型中每个调整图像样本经过该神经元时该神经元发放脉冲的频率值之间的差异,以及所述初始脉冲神经网络模型中该神经元的运行时长,确定出每个调整图像样本针对该神经元的调整值;
根据每个调整图像样本针对该神经元的调整值,确定针对该神经元的平均调整值;
将所述初始脉冲神经网络模型中该神经元的初始膜电位调整为所述平均调整值,得到该神经元的调整后初始膜电位;
根据每个神经元的调整后初始膜电位,确定出最终脉冲神经网络模型。
8.如权利要求1所述的方法,其特征在于,基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型,具体包括:
获取调整图像样本;
将所述调整图像样本输入到所述训练后模型中,以通过所述训练后模型得到每个神经元的输出值;将该调整图像样本输入到所述初始脉冲神经网络模型中,以通过所述初始脉冲神经网络模型得到每个神经元发放脉冲的频率值;
针对所述初始脉冲神经网络模型中的每个神经元,基于所述训练后模型中该神经元的输出值以及所述初始脉冲神经网络模型中该神经元发放脉冲的频率值,确定所述训练后模型中该神经元的输出值与所述初始脉冲神经网络模型中该神经元发放脉冲的频率值之间的均方误差;
以所述均方误差最小化为目标,对所述初始脉冲神经网络模型中的该神经元的模型参数进行调整,得到最终脉冲神经网络模型。
9.一种目标检测装置,其特征在于,包括:
获取模块,用于获取原始人工神经网络模型;
第一调整模块,用于根据待转换的脉冲神经网络模型所需的运行时长,按照预设调整策略,对所述原始人工神经网络模型中每个神经元的激活函数进行调整,得到每个神经元的调整后激活函数;
确定模块,用于根据所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型;
训练模块,用于对所述调整后人工神经网络模型进行训练,以得到训练后模型;
参数迁移模块,用于将所述训练后模型的模型参数迁移到所述待转换的脉冲神经网络模型中,以确定出初始脉冲神经网络模型;
第二调整模块,用于基于所述训练后模型中每个神经元的输出值以及所述初始脉冲神经网络模型中每个神经元发放脉冲的频率值,对所述初始脉冲神经网络模型进行调整,得到最终脉冲神经网络模型;
目标检测模块,用于在接收到目标检测任务请求后,将目标检测任务请求中携带的目标图像输入到所述最终脉冲神经网络模型中,以通过所述最终脉冲神经网络模型,对所述目标图像进行目标检测。
10.如权利要求9所述的装置,其特征在于,所述第一调整模块,具体用于确定出用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值的可调参数;根据所述可调参数以及所述待转换的脉冲神经网络所需的运行时长,确定出目标激活函数,作为目标激活函数;按照预设调整策略,将所述原始人工神经网络模型中每个神经元的激活函数替换为所述目标激活函数,得到每个神经元的调整后激活函数。
11.如权利要求10所述的装置,其特征在于,所述确定模块,具体用于确定出用于表示待输入值、所述运行时长以及所述可调参数之间的关联关系的第一函数;确定出用于表示所述第一函数与所述运行时长之间的关联关系的第二函数;根据所述第二函数以及所述可调参数,确定出目标激活函数。
12.如权利要求9所述的装置,其特征在于,所述确定模块,具体用于将所述原始人工神经网络模型中的最大池化方式调整为平均池化方式;根据所述平均池化方式以及所述每个神经元的调整后激活函数,确定出调整后人工神经网络模型。
13.如权利要求9所述的装置,其特征在于,所述训练模块,具体用于获取图像样本;将所述图像样本输入到所述调整后人工神经网络模型中,以通过所述调整后人工神经网络模型输出针对所述图像样本的目标检测结果,其中,所述目标检测结果包括预测边界框的中心位置和尺寸大小、所述预测边界框是否锚定目标物以及所述目标物的分类结果;以最小化所述目标检测结果与标签之间的差异为优化目标,对所述调整后人工神经网络模型中每个神经元的调整后激活函数中包含的可调参数进行调整,得到每个神经元的调整后参数;其中,所述可调参数用于表示所述待转换的脉冲神经网络模型每个神经元发放脉冲所需达到的膜电位阈值;基于所述每个神经元的调整后参数,确定出对所述调整后人工神经网络模型进行训练后所得到的训练后模型。
14.如权利要求9所述的装置,其特征在于,所述参数迁移模块,具体用于针对所述训练后模型的每个神经元,根据预设调整量,对所述训练后模型中该神经元的模型参数包含的偏置参数进行调整,得到调整后偏置参数;根据所述调整后偏置参数,确定出对所述训练后模型中该神经元的模型参数进行调整后所得到的调整后模型参数;将所述调整后模型参数作为所述待转换的脉冲神经网络模型中该神经元的模型参数,将所述训练后模型中该神经元的调整后激活函数中包含的可调参数作为所述待转换的脉冲神经网络模型中该神经元发放脉冲所需达到的膜电位阈值;其中,所述训练后模型的模型结构与所述待转换的脉冲神经网络模型的模型结构相同;根据所述待转换的脉冲神经网络模型中每个神经元的模型参数以及膜电位阈值,确定出初始脉冲神经网络模型。
15.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-8任一项所述的方法。
16.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-8任一项所述的方法。
CN202310397030.XA 2023-04-04 2023-04-04 一种目标检测方法、装置、存储介质及电子设备 Pending CN116403097A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310397030.XA CN116403097A (zh) 2023-04-04 2023-04-04 一种目标检测方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310397030.XA CN116403097A (zh) 2023-04-04 2023-04-04 一种目标检测方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN116403097A true CN116403097A (zh) 2023-07-07

Family

ID=87019648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310397030.XA Pending CN116403097A (zh) 2023-04-04 2023-04-04 一种目标检测方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116403097A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117252239A (zh) * 2023-09-18 2023-12-19 北京邮电大学 一种对脉冲信号进行目标检测的方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117252239A (zh) * 2023-09-18 2023-12-19 北京邮电大学 一种对脉冲信号进行目标检测的方法及系统

Similar Documents

Publication Publication Date Title
CN116304720B (zh) 一种代价模型训练的方法、装置、存储介质及电子设备
CN116432778B (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN114936085A (zh) 基于深度学习算法的etl调度方法及装置
CN117423445B (zh) 基于用户集群感知的智能指环控制方法及装置
CN116403097A (zh) 一种目标检测方法、装置、存储介质及电子设备
CN116167461B (zh) 一种模型训练的方法、装置、存储介质及电子设备
CN111639745B (zh) 一种数据处理方法及装置
CN110991496B (zh) 一种训练模型的方法及装置
CN117075918A (zh) 一种模型部署方法、装置、存储介质及电子设备
CN117953258A (zh) 对象分类模型的训练方法、对象分类方法及装置
CN115543945B (zh) 一种模型压缩的方法、装置、存储介质及电子设备
CN116363418A (zh) 一种训练分类模型的方法、装置、存储介质及电子设备
CN118414621A (zh) 使用预算感知的贝叶斯优化的超参数选择
CN117576522B (zh) 一种基于拟态结构动态防御的模型训练方法及装置
CN114268965B (zh) 一种基于深度学习的移动通信网络覆盖率计算方法及装置
CN118468045B (zh) 一种模型训练加速方法、装置及存储介质
CN114972909B (zh) 一种模型训练的方法、构建地图的方法及装置
CN118673959B (zh) 一种混合精度量化方法、装置、介质及设备
CN117058525B (zh) 一种模型的训练方法、装置、存储介质及电子设备
CN118379605B (zh) 一种图像识别大模型的部署方法、装置及存储介质
CN117036869B (zh) 一种基于多样性和随机策略的模型训练方法及装置
CN117786417B (zh) 一种模型训练方法、瞬变源的识别方法、装置及电子设备
CN118397435B (zh) 基于图像识别模型的任务执行方法、装置、介质及设备
CN117952182B (zh) 一种基于数据质量的混合精度模型训练方法及装置
CN116721316A (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