CN116434035A - 一种二值神经网络模型的目标检测方法及其硬件加速方法 - Google Patents
一种二值神经网络模型的目标检测方法及其硬件加速方法 Download PDFInfo
- Publication number
- CN116434035A CN116434035A CN202310343231.1A CN202310343231A CN116434035A CN 116434035 A CN116434035 A CN 116434035A CN 202310343231 A CN202310343231 A CN 202310343231A CN 116434035 A CN116434035 A CN 116434035A
- Authority
- CN
- China
- Prior art keywords
- neural network
- time information
- binary
- model
- convolution
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000003062 neural network model Methods 0.000 title claims abstract description 31
- 230000001133 acceleration Effects 0.000 title claims abstract description 24
- 238000013528 artificial neural network Methods 0.000 claims abstract description 84
- 230000004927 fusion Effects 0.000 claims abstract description 52
- 210000002569 neuron Anatomy 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims abstract description 20
- 230000004913 activation Effects 0.000 claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims description 34
- 238000010606 normalization Methods 0.000 claims description 34
- 238000009825 accumulation Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 19
- 239000000872 buffer Substances 0.000 claims description 9
- 238000000605 extraction Methods 0.000 claims description 7
- 238000012549 training Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 230000002123 temporal effect Effects 0.000 claims description 4
- 230000008054 signal transmission Effects 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 2
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000012528 membrane Substances 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002407 reforming Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/048—Activation functions
-
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/62—Extraction of image or video features relating to a temporal dimension, e.g. time-based feature extraction; Pattern tracking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing 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/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/806—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
-
- 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)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本发明公布了一种二值神经网络模型的目标检测方法及其硬件加速方法,基于脉冲神经网络构建一种具备时间信息的二值神经网络检测模型,其中将脉冲神经网络的激活函数采用阶跃函数,且使用单帧的卷积结果进行阈值判断,再在二值神经网络增加时间信息融合层;模型输出目标检测框信息;并对所构建模型的时间信息融合层设计硬件加速模块;包括:加载模块,累积模块,计算模块,输出模块;通过加载模块和累积模块完成神经元的累积过程,通过计算模块完成归一化和卷积过程,同时采用先进行卷积运算后进行归一化过程。采用本发明方法,可提高目标检测速度,且减小了存储资源消耗。
Description
技术领域
本发明属于图像处理技术领域,涉及目标检测及加速技术,尤其涉及一种二值神经网络模型的目标检测方法及其硬件加速方法。
背景技术
近年来,自动驾驶、可穿戴设备的高速发展,神经网络模型(CNN)在目标检测领域的应用愈加广泛,其中卷积神经网络模型是应用最为广泛的。但是,将卷积神经网络应用于目标检测,由于其庞大的计算量,很难用于低功耗设备上。
为了降低神经网络模型计算的功耗,当下脉冲神经网络模型开始被用于目标检测技术领域。由于脉冲神经网络本身的稀疏化特性带来了极低的功耗,其被誉为第三代神经网络模型。但是,由于脉冲神经元要不断进行维护其本身的膜电压的特性,在硬件实现方面带来了极大的存储资源消耗,给硬件加速带来了极大的带宽压力,而现有技术难以解决降低脉冲神经网络膜电压带来的资源消耗问题。
另一方面,现有研究对CNN网络进行压缩处理提出了二值神经网络(BNN网络),即使用单比特的权重或者特征进行参数或者信息传递。现有传统的二值神经网络对计算资源消耗较少,但是,因为相比脉冲神经网络,二值神经网络不携带时间信息,故其进行目标检测的精度效果远远不如脉冲神经网络,只能将二值神经网络用于相对简单的图像分类场景,难以应用于目标检测技术领域。
综上,一方面,脉冲神经网络因为其始终要维护膜电压的特性而在硬件加速中存在极大的存储资源浪费或者带来极大的带宽压力的不足。另一方面,现有传统的二值神经网络BNN网络模型比较小,资源消耗较少,但因为其不携带时间信息,很难用于进行目标检测。
发明内容
为了克服上述现有技术的不足,本发明提供一种二值神经网络模型的目标检测方法及其硬件加速方法,基于脉冲神经网络提出了一种具备时间信息的二值神经网络模型并用于目标检测,使得构建的二值神经网络目标检测模型在具有脉冲神经网络低功耗的同时,携带时间信息,相对于现有大多数的二值神经网络提高了目标检测精度。进一步地,本发明提出了在FPGA(现场可编程门阵列)上对其硬件加速的方法,验证了所构建的二值神经网络目标检测模型的硬件实现效果。
本发明提供的技术方案是:
一种二值神经网络模型的目标检测方法,基于脉冲神经网络构建一种具备时间信息的二值神经网络检测模型,其中将脉冲神经网络的激活函数采用阶跃函数,且使用单帧的卷积结果进行阈值判断;再在二值神经网络增加时间信息融合层;还设计了时间信息融合层的硬件加速结构;包括如下步骤:
1)获取多帧用于目标检测的图像数据,可采用通过摄像头拍摄的带有人,车等目标的图像,通过频率编码的方式对图像进行二值化操作,得到多帧二值化图像,作为输入模型的待检测图像。
2)构建基于脉冲神经网络的具备二值时间信息的二值神经网络目标检测模型,包括特征提取层、时间信息融合层和检测层;包括:
21)对脉冲神经网络的神经元进行改造;
具体是将脉冲神经网络模型(具体实施时采用YOLO(You Only Look Once)的神经元进行改造,脉冲神经网络(特征提取层)的神经元需要累加之前帧的神经元膜电压之后才能进行判断是否激活,改造后只用当前帧图像识别的结果进行阈值比较后判断是否激活(将本帧卷积计算的结果与参考激活阈值进行比较,大于激活阈值进行发放(输出)1(1代表激活该层神经元),小于阈值发放0(不激活该层神经元)),同时在模型的最后层累积之前帧的时间信息,再进行归一化后进行卷积,由此,所构建的网络模型既保留部分时间信息,同时又具有单比特信号传递的特性;脉冲神经网络的神经元采用阶跃函数;改造后的脉冲神经网络神经元表示为:
其中,y是脉冲神经网络神经元的输出图像,x为输入的待检测图像;w为模型权重;x*w是脉冲神经网络的当前层卷积的中间结果,TH是激活阈值。通过上述神经元改造后,在硬件实现过程中不需要存储之前的图像信息,大大节约了片上存储资源的使用。
22)添加时间信息融合层;时间信息融合层包括时间信息归一化模块和卷积模块。
具体实施时,将时间信息融合层置于YOLO神经网络的yolo层也就是检测层前部(即表1中的第16层和第24层);第16层和第24层之前的卷积层用于每一帧图像的特征提取;
特征提取完毕后,在时间信息融合层进行特征融合;时间信息融合层相比较正常的卷积,多出了N帧信息累积和归一化的操作,同时时间信息融合层的激活函数采用RELU函数;归一化即用累积信息(前面时间步长(step)帧的1的个数X)除以时间步长step;上述归一化是时间维度的归一化。
3)对构建的二值神经网络目标检测模型进行训练,通过目标检测模型的检测层,得出目标检测框的准确信息;
具体实施时,训练数据集采用MS COCO图像数据集,检测框具体是由x,y,w,h四个坐标表示矩形框,(x,y)是矩形框的中心点坐标,(w,h)是矩形框的长和宽。
具体实施时,经过上述特征融合后输出通道深度为85,其中4个通道为检测框的中心点坐标和检测框的长高,1个通道是边框的置信度,剩余80通道是目标的类别置信度,通过yolo层对85个通道的信息进行统计处理,得出目标检测框的准确信息,包括检测框的中心点坐标,和检测框的长高。
具体实施时,将待检测的图像输入训练好的二值神经网络目标检测模型,输出目标检测框信息,由此实现对目标的检测。
进一步地,本发明还设计了所构建模型的时间信息融合层的硬件加速模块及方法;
时间信息融合层主要分为时间信息归一化模块和卷积模块,其中时间归一化模块包括之前帧神经元激活累积的过程和归一化过程,归一化后进行卷积;在构建时间信息融合层相应的硬件加速模块包括了加载模块,累积模块,计算模块,输出模块,其中,通过加载模块和累积模块完成神经元的累积过程,通过计算模块完成归一化和卷积过程,同时为了使硬件能够更容易的实现,采用先进行卷积运算后进行归一化过程。
41)时间信息融合层的加载模块:包括状态1~4,使得加载和计算所需的存储互不冲突;
包括4行缓冲,以特征图的0、1、2、3行为例,其中三行缓冲存储0、1、2行用于(卷积)计算,一行用于第3行的加载;
42)时间信息融合层的累积模块即通过BRAM(block RAM,块存储器)构建一个时间窗口,帧运算的结果在时间窗口内累加,不断地把窗口内累积的数值与新输入的下一帧图像数据进行累加,同时把时间窗口旧的数据丢弃。
43)计算模块采用先进行卷积运算后进行归一化的方法;
具体实施时,计算模块中两个乘累加单元的计算表示为:
其中,式子左侧表示了算法的运算过程,其中X1,X2分别是不同乘累加单元累积的数值,step为时间步长,W1、W2分别为卷积核的权重,归一化后的累计值与权重进行对应位置相乘后累积即卷积运算。优化后按照式子右侧先进行卷积运算后进行归一化。
计算模块包括多个乘累加单元。对于输入的长、宽和通道三个维度的图像,计算模块首先通过N个乘累加单元将权重与特征进行卷积运算,每多一个乘累加单元,计算速度便会提升,乘累加结束后,将每个通道(二维图像)卷积的结果进行累加求和,之后判断输入通道是否卷积完毕,如果没有完毕则重复上述操作,如果输入通道全部累积完,将结果进行归一化,即除法,在FPGA中可用移位实现,归一化后的结果加上偏置即完成时间信息融合层的计算。将卷积计算的结果通过比较器与0进行比较,如果大于0则输出计算的结果,如果小于0,则输出0,即是时间信息融合层的RELU激活函数的硬件实现。
通过上述步骤,即可实现二值神经网络模型的目标检测及硬件加速。
与现有技术相比,本发明的有益效果是:
本发明提供一种二值神经网络模型的目标检测方法及其硬件加速方法,基于脉冲神经网络构建一种具备时间信息的二值神经网络模型并用于目标检测,其中脉冲神经网络的神经元采用阶跃函数,使用本帧的卷积结果进行阈值判断,将脉冲神经网络转换为二值神经网络;再在二值神经网络增加时间信息融合层,由此构建具备时间信息的BNN。此外,为例提高目标检测的计算速度设计了时间信息融合层的硬件加速结构。采用本发明提供的具备二值时间信息的BNN神经网络检测方法,经训练,在COCO数据集(Common Objects inContext,是一个可用来进行图像识别的数据集)上能达到MAP(mean average precision全类平均正确率)0.2,同时实现了其对应的FPGA硬件加速方案,提高了检测速度,且使用带时间信息的BNN网络做硬件加速相比较原本的脉冲神经网络做硬件加速,减小了22.5MB的存储资源消耗。
附图说明
图1为本发明提供的具备时间信息的二值神经网络检测模型的结构框图。
图2为本发明构建模型的时间信息融合层的操作流程框图。
图3为时间信息融合层硬件实现的结构框图。
图4为时间信息融合层硬件加速的加载模块四个状态的示意图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种新型的二值神经网络模型的目标检测方法及其硬件加速方法,可以针对含有目标的灰度图像,经过神经网络的推理过程,得到目标的检测框,检测框通过框中心点的坐标和框的长宽进行描述。通过改进脉冲神经网络,提出了一种具备二值时间信息的BNN神经网络检测模型算法,经训练在COCO图像数据集上能达到MAP0.2,同时实现了其对应的FPGA硬件加速方案,相比较原本的脉冲神经网络,减小了22.5MB的存储资源消耗。
现有研究对CNN网络进行压缩处理提出了BNN网络,即使用单比特的权重或者特征进行参数或者信息传递,本发明基于现有的脉冲神经网络进行改进,提出了一种具备二值时间信息的BNN神经网络检测模型。表1详细列出了模型各层的参数信息脉冲神经网络相比卷积神经网络有两个极大的区别,一个是时间信息的携带,因此脉冲神经网络存储了之前帧图像识别的时间信息,通过本帧图像和之前帧图像共同作用来进行目标检测;第二个区别则和二值神经网络相似,网络间信息的传递使用单比特的脉冲信号。但是现有的对于脉冲神经网络的硬件实现过程中,因为脉冲神经网络每层都会保存之前帧的信息,导致需要存储的信息太大,而FPGA的片上存储资源不多,从而造成极大的资源浪费。本发明提出对脉冲神经网络的神经元进行改造,去除了神经元模型累积的过程,只用单帧图像识别的结果进行阈值比较后进行发放,同时在模型的最后层累积之前帧的时间信息,再进行归一化后进行常规卷积,由此,本发明构建的网络模型既能保留部分时间信息,同时又具有单比特信号传递的特性,形成一种独特的BNN网络模型。
表1模型各层的详细信息
本发明提供的具备二值时间信息的BNN神经网络检测方法在算法层面主要进行的改进包括,一是脉冲神经网络的神经元采用阶跃函数,直接拿单帧卷积计算的结果与参考阈值进行比较,大于阈值进行发放1,小于阈值发放0,下列公式列出了改造过后的神经元。其中y是脉冲神经网络神经元的输出,x*w是脉冲神经网络的当前层卷积的结果,TH是阈值。通过上述神经元改造后,在硬件实现过程中不需要存储之前的图像信息,大大节约了片上存储资源的使用。经计算,可以节省22.5Mbit的存储资源占用。
通过上述替换后,脉冲神经网络的时间特性被去掉了,从而对检测精度造成极大影响。本发明添加时间信息融合层进行弥补。参照图1,去掉时间特性后的神经网络,便是一个正常的YOLO神经网络,将YOLO神经网络的RELU激活函数改为阶跃函数后,便形成了一个BNN网络。本发明添加的时间信息融合层置于YOLO神经网络的yolo层的前部即表一种的第16和24层,可以认为时间信息融合层之前的所有层是单帧的图像特征提取过程,特征提取完毕后,在时间信息融合层进行特征融合。关于时间信息融合层参照图2,相比较正常的卷积,时间信息融合层多出了N帧信息累积和归一化的操作,同时时间信息融合层的激活函数采用的是正常神经网络的RELU函数,我们以第16层的时间信息融合层为例因为第15层传来的信号是单比特的1和0,所以累积信息其实就是判断前面N帧的1的个数X,归一化即用X除以时间步长N,值得注意的是上述归一化与正常神经网络的批归一化不同,批归一化是空间上通道的归一化,上述归一化是时间维度的归一化。
图3列出了本发明的时间信息融合层的硬件加速方案。时间信息融合层主要分为加载,累积,计算,输出四个模块。其中加载模块参照图4,包括状态1~4。一个3*3的卷积过程需要3行的输出特征用于计算,因此,加载模块主要分为4行的缓冲,我们以特征的0、1、2、3、4、5、6行为例其中灰色的缓冲用于下一行的加载,剩余三行用于本次计算,通过四个状态可以实现将加载模块的时钟隐藏在计算模块中,参照图4,状态1时第二、三、四个缓冲器中存储第0、1、2行的数据用于计算,第一个缓冲器用于加载第3行的数据,在状态2时,由于第二个缓冲器内存储的第0行数据已经被计算完成,之后的计算也不需要复用此行的数据,所以第二个缓冲器便可以用于存储加载第4行的数据,第一个行缓冲器此时已经存储完了第3行数据,因此此时第一三四个缓冲器中存储的第1、2、3行数据便能用于计算。同理第三个状态时234行计算加载第5行,第四个状态时345行计算,加载第6行,四个状态便能实现加载与计算的并行总共四个状态就可以实现加载和计算所需的存储互不冲突。
时间信息融合层的累积模块即通过BRAM构建一个时间窗口,不断地把窗口内累积的数值与新输入的下一帧的数据进行累加,同时把旧的窗口数据丢弃。计算模块是核心。本发明将累积完以后的数据先进行归一化后再进行卷积运算,而归一化是一个除法运算,除法运算势必带来浮点数,使用浮点数进行卷积对于硬件资源的消耗比使用普通数据进行卷积对于硬件资源的消耗大的多,因此,本发明在计算模块采用先进行卷积运算后进行归一化的方法。下式说明了进行该方法的合理性,卷积本质是在进行乘累加运算,下式左侧表示了算法的运算过程,其中X1,X2是累积的值,STEP为时间步长,W1、W2均为卷积核的权重,归一化后的累计值与权重进行对应位置相乘后累积即卷积运算,我们把公因子N提出来,先去进行卷积,再进行归一化,通过下式可以看出运算结果是一样的。
时间信息融合层的硬件加速方法包括,计算模块首先通过N个乘累加单元将权重与特征进行卷积运算,每多一个乘累加单元,计算速度便会提升,乘累加结束后,将每个通道卷积的结果进行累加求和,之后判断输入通道是否卷积完毕,如果没有完毕则重复上述操作,如果输入通道全部累积完,将结果进行归一化,即除法,在FPGA中可用移位实现,归一化后的结果加上偏置后,本次卷积计算便已经结束了。将卷积计算的结果通过比较器与0进行比较,如果大于0则输出计算的结果,如果小于0,则输出0,即是时间信息融合层的RELU激活函数的硬件实现。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (10)
1.一种二值神经网络模型的目标检测方法,其特征是,基于脉冲神经网络构建一种具备时间信息的二值神经网络检测模型,其中将脉冲神经网络的激活函数采用阶跃函数,且使用单帧的卷积结果进行阈值判断,再在二值神经网络增加时间信息融合层;模型输出目标检测框信息;包括如下步骤:
1)获取多帧用于目标检测的图像数据,对图像进行二值化操作,得到多帧二值化图像,作为输入模型的待检测图像;
2)构建基于脉冲神经网络的具备二值时间信息的二值神经网络目标检测模型,包括特征提取层、时间信息融合层和检测层;特征提取层即检测层前部之前的卷积层,用于每一帧图像的特征提取;时间信息融合层置于脉冲神经网络的检测层前部,用于进行特征融合;
21)对脉冲神经网络的神经元进行改造;
将脉冲神经网络模型的神经元改造成只用当前帧图像识别的结果进行阈值比较后判断是否激活,同时在模型的最后层累积之前帧的时间信息,再进行归一化后进行卷积,由此构建的基于脉冲神经网络的具备二值时间信息的二值神经网络目标检测模型既保留部分时间信息,同时又具有单比特信号传递特性;二值神经网络目标检测模型的神经元采用阶跃函数;改造后的网络模型神经元表示为:
其中,y是网络模型神经元的输出图像,x为输入的待检测图像;w为模型权重;x*w是脉冲神经网络的当前层卷积的中间结果,TH是激活阈值;神经元改造后,在硬件实现过程中不存储之前的图像信息,从而节约片上存储资源的使用;
22)添加时间信息融合层;时间信息融合层包括时间信息归一化模块和卷积模块;
时间信息融合层比卷积多出N帧信息累积和归一化的操作,同时时间信息融合层的激活函数采用RELU函数;
3)对构建的二值神经网络目标检测模型,利用图像数据集进行训练,通过训练好的目标检测模型的检测层得出目标检测框的准确信息;由此实现对目标的检测。
2.如权利要求1所述二值神经网络模型的目标检测方法,其特征是,步骤1)获取多帧用于目标检测的图像数据,具体是采用通过摄像头拍摄的带有检测目标的图像,通过频率编码的方式对图像进行二值化操作,得到多帧二值化图像。
3.如权利要求1所述二值神经网络模型的目标检测方法,其特征是,脉冲神经网络模型具体是采用YOLO神经网络模型。
4.如权利要求1所述二值神经网络模型的目标检测方法,其特征是,步骤22)中,时间步长帧为1的个数即为累积信息;归一化是时间维度的归一化,归一化即用累积信息除以时间步长。
5.如权利要求1所述二值神经网络模型的目标检测方法,其特征是,步骤3)中,训练数据集具体是采用MS COCO图像数据集。
6.如权利要求5所述二值神经网络模型的目标检测方法,其特征是,检测框具体是由x,y,w,h四个坐标表示矩形框,其中(x,y)是矩形框的中心点坐标,(w,h)是矩形框的长和宽。
7.如权利要求1所述二值神经网络模型的目标检测方法,其特征是,对所构建模型的时间信息融合层设计硬件加速模块;包括:加载模块,累积模块,计算模块,输出模块;通过加载模块和累积模块完成神经元的累积过程,通过计算模块完成归一化和卷积过程,同时采用先进行卷积运算后进行归一化过程。
8.如权利要求7所述二值神经网络模型的目标检测方法,其特征是,时间信息融合层的加载模块包括四种状态,使得加载和计算所需的存储互不冲突;
时间信息融合层的累积模块即通过块存储器构建一个时间窗口,帧运算的结果在时间窗口内累加,不断地把窗口内累积的数值与新输入的下一帧图像数据进行累加,同时把时间窗口旧的数据丢弃;
计算模块包括多个乘累加单元;采用先进行卷积运算后进行归一化;在FPGA中用移位实现,归一化后的结果加上偏置即完成时间信息融合层的计算;
将卷积计算的结果通过比较器进行比较,如果大于0则输出计算的结果,如果小于0,则输出0,即完成时间信息融合层的RELU激活函数的硬件实现,实现二值神经网络模型的目标检测硬件加速。
9.如权利要求8所述二值神经网络模型的目标检测方法,其特征是,时间信息融合层的加载模块包括四行缓冲,其中三行缓冲用于存储和卷积计算,余下一行用于第三行的加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310343231.1A CN116434035A (zh) | 2023-04-03 | 2023-04-03 | 一种二值神经网络模型的目标检测方法及其硬件加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310343231.1A CN116434035A (zh) | 2023-04-03 | 2023-04-03 | 一种二值神经网络模型的目标检测方法及其硬件加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116434035A true CN116434035A (zh) | 2023-07-14 |
Family
ID=87080927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310343231.1A Pending CN116434035A (zh) | 2023-04-03 | 2023-04-03 | 一种二值神经网络模型的目标检测方法及其硬件加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116434035A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116863490A (zh) * | 2023-09-04 | 2023-10-10 | 之江实验室 | 面向FeFET存储阵列的数字识别方法及硬件加速器 |
-
2023
- 2023-04-03 CN CN202310343231.1A patent/CN116434035A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116863490A (zh) * | 2023-09-04 | 2023-10-10 | 之江实验室 | 面向FeFET存储阵列的数字识别方法及硬件加速器 |
CN116863490B (zh) * | 2023-09-04 | 2023-12-12 | 之江实验室 | 面向FeFET存储阵列的数字识别方法及硬件加速器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022036777A1 (zh) | 基于卷积神经网络的人体动作姿态智能估计方法及装置 | |
CN110232394B (zh) | 一种多尺度图像语义分割方法 | |
CN111144329B (zh) | 一种基于多标签的轻量快速人群计数方法 | |
CN107545889B (zh) | 适用于模式识别的模型的优化方法、装置及终端设备 | |
CN111860693A (zh) | 一种轻量级视觉目标检测方法及系统 | |
CN113326930B (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
CN109214353B (zh) | 一种基于剪枝模型的人脸图像快速检测训练方法和装置 | |
CN111488985B (zh) | 深度神经网络模型压缩训练方法、装置、设备、介质 | |
CN105787867A (zh) | 基于神经网络算法的处理视频图像的方法和装置 | |
CN111240746B (zh) | 一种浮点数据反量化及量化的方法和设备 | |
CN110135460B (zh) | 基于vlad卷积模块的图像信息强化方法 | |
CN111861925A (zh) | 一种基于注意力机制与门控循环单元的图像去雨方法 | |
CN116434035A (zh) | 一种二值神经网络模型的目标检测方法及其硬件加速方法 | |
CN111709516A (zh) | 神经网络模型的压缩方法及压缩装置、存储介质、设备 | |
CN110782430A (zh) | 一种小目标的检测方法、装置、电子设备及存储介质 | |
CN115423081A (zh) | 一种基于fpga的cnn_lstm算法的神经网络加速器 | |
CN111833386A (zh) | 一种基于多尺度信息和注意力机制的金字塔双目立体匹配方法 | |
CN110782001B (zh) | 一种基于组卷积神经网络使用共享卷积核的改进方法 | |
CN112528077B (zh) | 基于视频嵌入的视频人脸检索方法及系统 | |
CN110942106B (zh) | 一种基于平方平均的池化卷积神经网络图像分类方法 | |
CN112380919A (zh) | 一种车辆类别统计方法 | |
CN116434039A (zh) | 一种基于多尺度拆分注意力机制的目标检测方法 | |
CN104394412B (zh) | 一种基于转换压缩的最大误差图像压缩方法 | |
CN114494284B (zh) | 一种基于显式监督区域关系的场景解析模型及方法 | |
CN114219757B (zh) | 一种基于改进Mask R-CNN的车辆智能定损方法 |
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 |