Nothing Special   »   [go: up one dir, main page]

CN113743602B - 一种提高模型后处理速度的方法 - Google Patents

一种提高模型后处理速度的方法 Download PDF

Info

Publication number
CN113743602B
CN113743602B CN202010460920.7A CN202010460920A CN113743602B CN 113743602 B CN113743602 B CN 113743602B CN 202010460920 A CN202010460920 A CN 202010460920A CN 113743602 B CN113743602 B CN 113743602B
Authority
CN
China
Prior art keywords
confidence
confidences
post
last layer
total
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
Application number
CN202010460920.7A
Other languages
English (en)
Other versions
CN113743602A (zh
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.)
Hefei Ingenic Technology Co ltd
Original Assignee
Hefei Ingenic 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 Hefei Ingenic Technology Co ltd filed Critical Hefei Ingenic Technology Co ltd
Priority to CN202010460920.7A priority Critical patent/CN113743602B/zh
Publication of CN113743602A publication Critical patent/CN113743602A/zh
Application granted granted Critical
Publication of CN113743602B publication Critical patent/CN113743602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • 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/045Combinations of networks

Landscapes

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

Abstract

本发明提供一种提高模型后处理速度的方法,所述方法对于检测模型的后处理部分采用通道重排,提高了CPU CACHE的命中率,减少了读取数据的时间,利用SIMD技术同时完成对8个数据点的计算,提高了计算效率,减少检测模型的后处理时间,从而提高检测模型的整体运行效率。

Description

一种提高模型后处理速度的方法
技术领域
本发明涉及卷积神经网络加速领域,特别涉及一种提高模型后处理速度的方法。
背景技术
随着计算机技术的快速发展,基于卷积神经网络的算法成功应用于各个识别领域。近年来,随着科技的飞速发展,大数据时代也已经到来。深度学习以深度神经网络(DNN)作为模型,在许多人工智能的关键领域取得了十分显著的成果,如图像识别、增强学习、语义分析等。卷积神经网络(CNN)作为一种典型的DNN结构,能有效提取出图像的隐层特征,并对图像进行准确分类,在近几年的图像识别和检测领域得到了广泛的应用。目前现有的技术都是通过依次遍历数据来进行相应的计算,从而完成获得最终的目标框。
现有技术中由于是通过依次遍历数据来进行相应的计算,基于预设anchor(锚点)的检测模型(yoloV3)最后一层卷积的通道分布一般为(x,y,w,h,confidence,pred_class)*anchores_num,在计算最终结果时,首先计算confidence的得分,如果大于预设的得分再计算相应的坐标,由于confidence(置信)的分布比较离散,所以计算时效率很低下,从而拖慢整个检测模型的效率。
此外,现有技术中常用的技术术语如下:
卷积神经网络(Convolutional Neural Networks,CNN):是一类包含卷积计算且具有深度结构的前馈神经网络。
检测模型后处理:由于目前有的检测模型训练时,以真实的边框位置相对于预设边框的偏移来训练模型的,在推理模型时也需要根据预设的边框来求出预测的边框位置。
batch size(批尺寸)是卷积网络里的重要参数。
feature map:在每个卷积层,数据以三维形式存在。可以看成多个二维图片重叠在一起,其中每一个称为一个feature map。在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般就是3个feature map(红绿蓝)。层与层之间会有若干个卷积核(kernel),上一层和每个feature map跟每个卷积核做卷积,都会产生下一层的一个feature map。
SIMD单指令流多数据流(SingleInstruction Multiple Data,SIMD)是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。
发明内容
为了解决现有技术中的问题,本发明的目的在于:为了提高检测模型后处理的效率,优化模型后处理计算的流程减少计算检测框的时间。解决现有方案中检测模型后处理对于系统资源利用不充分计算流程可优化的问题。
具体地,本发明提供一种提高模型后处理速度的方法,所述方法包括以下步骤:
S1,对于后处理部分做以下操作:
最后一层输出的结果是:[N,H,W,C],其中N为batch size的大小,
H,W为FeatureMap的长宽,C为通道数,通道的分布为
[x,y,w,h,confidence,classess1,classess2]总共有9个通道,即9个anchors;
总共有9个anchors每个anchor的通道分布为
[x,y,w,h,confidence1,classess1,classess2],总共有7*9=63个通道数;
S2,进行通道重排,将S1后处理部分操作的最后一层中,将表示每一个数据点的每一个anchor的confidence的通道放在一起,使得最里面的循环的取数是连续的;每个anchor的通道分布为[x,y,w,h,confidence1,classess1,classess2],将每个anchor的confidence取出来放到一起连续排列即[confidence1,confidence2...confidence9];
S3,利用SIMD进行优化,通过统计最后一层卷积的输出得到规律,根据Sigmoid函数的特性,将原有sigmoid(confidence)与0.5的比较直接转化为confidence与0比较;又因为scale是大于0的,所以最终转化为confidence+bias与0比较;由于最后一层卷积的输出结果是用16bit保存的,所以能够同时比较8个confidence,如果8个confidence都小于0就直接跳过,当不满足时,再依次对这8个confidence做比较。
所述的S1中由于检测模型的损失函数部分采用的YOLOV3的损失函数,所以对于后处理部分采用和YOLOV3损失函数相同的操作。
所述的S1中最后一层输出的数据分布,每一个数据点的每一个anchor的confidence是不连续的,每一次运算都需要从内存中读取数据。
所述的S1中,假设检测模型的输入图像的分辨率为1920x1080,模型的输出为240x135x63,降采样3次,每次stride为2,其中有240x135x9个数据需要与0.5比较。
所述的S3中,所述的统计最后一层卷积的输出得到规律如下:
a)confidence小于0的数目占confidence总数的99.75%;
b)特征点的所有confidence都小于0的占总特征点的98.95%。
步骤S3还进一步包括:由于总共有9个confidence,所以还需要额外的做一次判断。
由此,本申请的优势在于:对于检测模型的后处理部分采用通道重排,提高了CPUCACHE的命中率,减少了读取数据的时间,利用SIMD技术同时完成对8个数据点的计算,提高了计算效率,减少检测模型的后处理时间,从而提高检测模型的整体运行效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1是本发明方法的流程示意图。
图2是现有技术中Sigmoid函数的S曲线。
具体实施方式
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
如图1所示,本发明涉及一种提高模型后处理速度的方法,所述方法包括以下步骤:
S1,对于后处理部分做以下操作:
最后一层输出的结果是:[N,H,W,C],其中N为batch size的大小,
H,W为FeatureMap的长宽,C为通道数,通道的分布为
[x,y,w,h,confidence,classess1,classess2]总共有9个通道,即9个anchors;
总共有9个anchors每个anchor的通道分布为
[x,y,w,h,confidence1,classess1,classess2],总共有7*9=63个通道数;
S2,进行通道重排,将S1后处理部分操作的最后一层中,将表示每一个数据点的每一个anchor的confidence的通道放在一起,使得最里面的循环的取数是连续的;每个anchor的通道分布为[x,y,w,h,confidence1,classess1,classess2],将每个anchor的confidence取出来放到一起连续排列即[confidence1,confidence2...confidence9];
S3,利用SIMD进行优化,通过统计最后一层卷积的输出得到规律,根据Sigmoid函数的特性,将原有sigmoid(confidence)与0.5的比较直接转化为confidence与0比较;又因为scale是大于0的,所以最终转化为confidence+bias与0比较;由于最后一层卷积的输出结果是用16bit保存的,所以能够同时比较8个confidence,如果8个confidence都小于0就直接跳过,当不满足时,再依次对这8个confidence做比较。
本发明还可以解释为以下内容:
1.后处理部分具体操作:
由于检测模型的损失函数部分采用的YOLOV3的损失函数,所以对于后处理部分采用和YOLOV3相同的操作,对于后处理部分主要需要做以下操作:
最后一层输出的结果是:[N,H,W,C],其中N为batch size的大小,H,W为FeatureMap的长宽,C为通道数,通道的分布为[x,y,w,h,confidence,classess1,classess2]总共有9个通道,即9个anchors;
2.具体优化细节:
观察最后一层输出的数据分布可以发现,每一个数据点的每一个anchor的confidence是不连续的,这样直接做运算的话大大降低了CPU的cache命中率,几乎每一次运算都需要从内存中读取数据。假设检测模型的输入图像的分辨率为1920x1080,模型的输出为240x135x63(降采样3次,每次stride为2),其中大概有240x135x9个数据需要与0.5比较这一块将成为优化的瓶颈。
针对上述问题提出以下优化方案:
将表示每个anchor的confidence的通道放在一起,这样最里面的循环的取数是连续的从而可以提高CPU的cache命中率,从而提高运算效率。
通过统计最后一层卷积的输出发现如下规律(输入图片中平均有55个目标):
a)confidence小于0的数目占confidence总数的99.75%(290871/(240*135*9))
b)特征点的所有confidence都小于0的占总特征点的98.95%(32059/(240*135))
由于Sigmoid函数的特性,与0.5的比较可以直接转化为confidence与0比较(从而避免了指数运算),又因为scale是大于0的,所以最终可以转化为confidence+bias与0比较,对此我们还可以在之前的基础上利用SIMD进一步优化,由于最后一层卷积的输出结果是用16bit保存的,所以我们可以同时比较8个confidence,如果8个confidence都小于0就直接跳过,当不满足时,再依次对这8个confidence做比较,(由于总共有9个confidence,所以我们还需要额外的做一次判断)。
通过利用通道重排和SIMD优化,后处理时间由之前的78ms降到20m左右。
此外,Sigmoid函数由下列公式定义:
其对x的导数可以用自身表示:
Sigmoid函数的图形如S曲线,如图2所示。可以看到在趋于正无穷或负无穷时,函数趋近平滑状态,sigmoid函数因为输出范围(0,1),所以二分类的概率常常用这个函数,事实上logisti回归采用这个函数有以下几个优点:
1值域在0和1之间
2函数具有非常好的对称性
因此,函数对输入超过一定范围就会不敏感。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种提高模型后处理速度的方法,其特征在于,所述方法包括以下步骤:
S1,对于后处理部分做以下操作:
最后一层输出的结果是:[N,H,W,C],其中N为batch size的大小,H,W为FeatureMap的长宽,C为通道数,通道的分布为[x,y,w,h, confidence,classes1,classes2]总共有9个通道,即9个anchors;总共有9个anchors每个anchor的通道分布为[x,y,w,h,confidence1,classes1,classes2],总共有7*9=63个通道数;具体操作过程如下:
第一步:判断h的取值是否在0到H的范围中,若是则执行第二步;
第二步:判断w的取值是否在0到W的范围中,若是则执行第三步;
第三步:判断tag的取值是否在0到anchorNum的范围中,若是则执行第四步;
第四步:将FeatureMap[0,h,w,tag×7+4]赋值给变量confidence,执行第五步;
第五步:基于第四步求得的confidence计算confidence+bias并赋值给变量confidence,执行第六步;
第六步:基于第五步求得的confidence计算confidence×scale并赋值给变量confidence,执行第七步;
第七步:将第六步求得的confidence输入到函数sigmoid中,若sigmoid(confidence)>0.5,求解坐标;
S2,进行通道重排,将S1后处理部分操作的最后一层中,将表示每一个数据点的每一个anchor的confidence的通道放在一起,使得最里面的循环的取数是连续的;每个anchor的通道分布为[x,y,w,h,confidence1,classes1,classes2],将每个anchor的confidence取出来放到一起连续排列即[confidence1,confidence2...confidence9];
S3,利用SIMD进行优化,通过统计最后一层卷积的输出得到规律,根据Sigmoid函数的特性,将原有sigmoid(confidence)与0.5的比较直接转化为confidence与0比较;又因为scale是大于0的,所以最终转化为confidence+bias与0比较;由于最后一层卷积的输出结果是用16bit保存的,所以能够同时比较8个confidence,如果8个confidence都小于0就直接跳过,当不满足时,再依次对这8个confidence做比较,所述的S1中由于检测模型的损失函数部分采用的YOLOV3的损失函数,所以对于后处理部分采用和YOLOV3损失函数相同的操作,所述的S1中最后一层输出的数据分布,每一个数据点的每一个anchor的confidence是不连续的,每一次运算都需要从内存中读取数据,所述的S1中,检测模型的输入图像的分辨率为1920x1080,模型的输出为240x135x63,降采样3次,每次stride为2,其中有240x135x9个数据需要与0.5比较,所述的S3中,所述的统计最后一层卷积的输出得到规律如下:
a)confidence小于0的数目占confidence总数的99.75%;
b)特征点的所有confidence都小于0的占总特征点的98.95%。
2.根据权利要求1所述的一种提高模型后处理速度的方法,其特征在于,所述方法,S3还进一步包括:由于总共有9个confidence,所以还需要额外的做一次判断。
CN202010460920.7A 2020-05-27 2020-05-27 一种提高模型后处理速度的方法 Active CN113743602B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010460920.7A CN113743602B (zh) 2020-05-27 2020-05-27 一种提高模型后处理速度的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010460920.7A CN113743602B (zh) 2020-05-27 2020-05-27 一种提高模型后处理速度的方法

Publications (2)

Publication Number Publication Date
CN113743602A CN113743602A (zh) 2021-12-03
CN113743602B true CN113743602B (zh) 2024-05-03

Family

ID=78723690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010460920.7A Active CN113743602B (zh) 2020-05-27 2020-05-27 一种提高模型后处理速度的方法

Country Status (1)

Country Link
CN (1) CN113743602B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109685208A (zh) * 2018-12-24 2019-04-26 合肥君正科技有限公司 一种用于神经网络处理器数据稀梳化加速的方法及装置
WO2019079895A1 (en) * 2017-10-24 2019-05-02 Modiface Inc. SYSTEM AND METHOD FOR IMAGE PROCESSING THROUGH DEEP NEURAL NETWORKS
CN109859190A (zh) * 2019-01-31 2019-06-07 北京工业大学 一种基于深度学习的目标区域检测方法
CN110060248A (zh) * 2019-04-22 2019-07-26 哈尔滨工程大学 基于深度学习的声呐图像水下管道检测方法
CN110147252A (zh) * 2019-04-28 2019-08-20 深兰科技(上海)有限公司 一种卷积神经网络的并行计算方法及装置
CN110544282A (zh) * 2019-08-30 2019-12-06 清华大学 基于神经网络的三维多能谱ct重建方法和设备及存储介质
CN110807170A (zh) * 2019-10-21 2020-02-18 中国人民解放军国防科技大学 多样本多通道卷积神经网络Same卷积向量化实现方法
CN111160111A (zh) * 2019-12-09 2020-05-15 电子科技大学 一种基于深度学习的人体关键点检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936913B2 (en) * 2018-03-20 2021-03-02 The Regents Of The University Of Michigan Automatic filter pruning technique for convolutional neural networks

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019079895A1 (en) * 2017-10-24 2019-05-02 Modiface Inc. SYSTEM AND METHOD FOR IMAGE PROCESSING THROUGH DEEP NEURAL NETWORKS
CN109685208A (zh) * 2018-12-24 2019-04-26 合肥君正科技有限公司 一种用于神经网络处理器数据稀梳化加速的方法及装置
CN109859190A (zh) * 2019-01-31 2019-06-07 北京工业大学 一种基于深度学习的目标区域检测方法
CN110060248A (zh) * 2019-04-22 2019-07-26 哈尔滨工程大学 基于深度学习的声呐图像水下管道检测方法
CN110147252A (zh) * 2019-04-28 2019-08-20 深兰科技(上海)有限公司 一种卷积神经网络的并行计算方法及装置
CN110544282A (zh) * 2019-08-30 2019-12-06 清华大学 基于神经网络的三维多能谱ct重建方法和设备及存储介质
CN110807170A (zh) * 2019-10-21 2020-02-18 中国人民解放军国防科技大学 多样本多通道卷积神经网络Same卷积向量化实现方法
CN111160111A (zh) * 2019-12-09 2020-05-15 电子科技大学 一种基于深度学习的人体关键点检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mini-YOLOv3: Real-Time Object Detector for Embedded Applications;Qi-Chao Mao 等;《IEEE Access》;第7卷;全文 *
一种基于通道重排的轻量级目标检测网络;徐晗智 等;《计算机与现代化》(第2期);全文 *

Also Published As

Publication number Publication date
CN113743602A (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
US11775836B2 (en) Hand pose estimation
CN109447034B (zh) 基于YOLOv3网络的自动驾驶中交通标识检测方法
CN107229904B (zh) 一种基于深度学习的目标检测与识别方法
WO2022052601A1 (zh) 神经网络模型的训练方法、图像处理方法及装置
CN111079674B (zh) 一种基于全局和局部信息融合的目标检测方法
CN112749626A (zh) 一种面向dsp平台的快速人脸检测与识别方法
CN113449573A (zh) 一种动态手势识别方法及设备
CN110263855B (zh) 一种利用共基胶囊投影进行图像分类的方法
CN112036475A (zh) 融合模块和多尺度特征融合卷积神经网络及图像识别方法
CN114005028B (zh) 一种抗干扰的遥感图像目标检测轻量系统及其方法
WO2022156475A1 (zh) 神经网络模型的训练方法、数据处理方法及装置
Mahaur et al. An improved lightweight small object detection framework applied to real-time autonomous driving
KR102143034B1 (ko) 객체의 미래 움직임 예측을 통한 동영상에서의 객체 추적을 위한 방법 및 시스템
CN115908908A (zh) 基于图注意力网络的遥感图像聚集型目标识别方法及装置
CN111291713A (zh) 一种基于骨架的手势识别方法及系统
CN111931572B (zh) 一种遥感影像的目标检测方法
EP4024343A1 (en) Viewpoint image processing method and related device
CN113743602B (zh) 一种提高模型后处理速度的方法
CN117036931A (zh) 一种基于卷积神经网络的生态景观工程小目标害虫检测方法
CN116452599A (zh) 基于轮廓的图像实例分割方法及系统
CN110135224B (zh) 一种监控视频的前景目标提取方法及系统、存储介质及终端
US20210216868A1 (en) Systems and methods for reducing memory requirements in neural networks
CN112487927B (zh) 一种基于物体关联注意力的室内场景识别实现方法及系统
Zho et al. A RMB optical character recognition system using FPGA
TWI722383B (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