CN111524098B - 一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法 - Google Patents
一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法 Download PDFInfo
- Publication number
- CN111524098B CN111524098B CN202010265447.7A CN202010265447A CN111524098B CN 111524098 B CN111524098 B CN 111524098B CN 202010265447 A CN202010265447 A CN 202010265447A CN 111524098 B CN111524098 B CN 111524098B
- Authority
- CN
- China
- Prior art keywords
- layer
- clustering
- cluster
- template frame
- centers
- 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
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 16
- 238000012549 training Methods 0.000 claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 7
- 238000009826 distribution Methods 0.000 claims abstract description 7
- 239000013598 vector Substances 0.000 claims description 27
- 230000009191 jumping Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 4
- 238000013138 pruning Methods 0.000 claims description 4
- 238000009827 uniform distribution Methods 0.000 claims description 4
- 238000002372 labelling Methods 0.000 claims description 3
- 238000003062 neural network model Methods 0.000 claims description 3
- 229920000642 polymer Polymers 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 5
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000007123 defense Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003703 image analysis method Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,属于卷积神经网络的目标检测识别技术领域,特别提供了一种针对SSD算法的网络输出层裁剪及模板框尺寸确定方法。使用自组织聚类可以在不确定目标尺寸分布的情况下获得更好的聚类结果,使用聚类结果计算目标上限面积,确定输出层层数,删掉感受野过大、层数过深的输出层,减少网络深度和参数数量,降低模型训练的难度,加快模型收敛,提高模型泛化能力,减少计算耗时,提高计算效率。
Description
技术领域
本发明涉及一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,属于卷积神经网络的目标检测识别技术领域,特别提供了一种针对SSD算法的网络输出层裁剪及模板框尺寸确定方法。
背景技术
近年来卷积神经网络在图像目标检测识别领域展示出了远超传统图像分析方法的性能,在民用、国防、工业等领域产生了良好的使用效果。目前在学术界,卷积神经网络的主要研究方向以可见光图像大目标场景为主,在此类问题中目标尺寸大、特征丰富、训练样本丰富,需要更深层的网络为目标检测识别提供更好的非线性特性。
然而,在遥感、军事等某些特殊应用场景中,多以SAR、红外图像为主,成像分辨率偏低、目标种类有限、目标像素尺寸普遍偏小、训练样本数量有限,使用更深的网络往往导致训练过程难以收敛,训练结果容易过拟合,导致模型泛化性能较差,实用效果不佳。
为解决这一问题,部分方案采取减少网络深度,减少网络待训练参数数量的方式降低模型训练难度,但是这种减少网络深度的方法基本依靠人为经验调整,调整效果难以保证。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提出一种基于自组织聚类的神经网络输出层裁剪及模板框确定方法,该方法针对目标种类有限、目标像素尺寸普遍偏小、训练样本数量有限的场景下,过深的SSD网络会导致训练收敛困难、模型泛化能力差的问题,对使用自组织聚类算法对训练样本数据中的目标尺寸进行聚类,得到聚类中心个数和聚类中心;根据相应准则确定SSD网络输出层数和模板框(又称:default box)尺寸,去掉不必要的输出层,减少网络深度,降低网络复杂度,降低模型训练收敛难度。本方案针对上述问题,针对SSD算法提出了基于自组织聚类的输出层裁剪及模板框尺寸确定方法,通过对训练样本数据进行分析,提取样本尺寸分布,进而确定合适的网络输出层数和合理的模板框尺寸,对原有模型输出层进行裁剪并合理确定模板框尺寸,减少网络深度,降低网络复杂度,降低模型训练收敛难度和计算耗时。
本发明的解决方案是:
一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,该方法的步骤包括:
(1)将训练数据上的每个目标均用二维特征向量(w,h)表示,其中,w为目标像素宽度,h为目标像素高度,二维特征向量(w,h)的个数用N表示,以下二维特征向量(w,h)简称样本,样本用x表示。
(2)设定步骤(1)得到的N个样本的初始聚类中心个数为K、聚类中最少的样本数目为θN、聚类中样本距离分布的标准差为θS、两聚类中心之间的最小距离为θC、最大迭代运算次数为Imax。
(3)在N个样本中随机选取K个作为初始聚类中心,并令NC=K,NC表示当前聚类中心个数,每个聚类中心用Zj表示,j=1,2,…,NC,各聚类中心对应的类别用Sj表示,j=1,2,…,NC,类别Sj中的样本数量用Nj表示,j=1,2,…,NC,迭代运算次数用I表示,令I=1。
(4)遍历所有样本x,计算样本x与各聚类中心Zj之间的距离Dj,将样本x划归到与样本x距离最小的聚类中心对应的类别中。
(5)如果某类别Sj中样本数量Nj<θN,则取消该类别,令当前聚类中心个数NC减少1,并将该类别中的样本按照(4)中的最小距离准则划归到其他类别中;否则对类别Sj不做处理。
(6)对各类别Sj中的样本x取平均,得到的平均值即为修正后的聚类中心Zj,j=1,2,…,NC。
(9)判断类别Sj的***、合并及迭代运算。
1)如果迭代运算次数I≥Imax,即最后一次迭代,置θC=0,跳到步骤(13)。
2)如果θN≤K/2,即聚类中心的数目等于或不到规定值的一半,则进入步骤(10),将已有的聚类***。
3)如迭代运算的次数I是偶数,或NC≥2K,则不进行***处理,跳到步骤(13);如果I是奇数,且NC<2K,则进入步骤(10),进行***处理。
(10)计算每个类别Sj中各样本x到聚类中心Zj的标准差向量σj,j=1,2,…,NC。
(11)对(10)中计算得到的标准差向量σj提取最大分量,用σjmax表示,j=1,2,…,NC。
(12)最大分量集{σjmax},j=1,2,…,NC中,如有σjmax>θS,且满足如下两个条件中的任意一个:
(2)NC≤K/2;
则将Zj***为两个新的聚类中心,且令聚类中心个数NC加1。完成***运算后,跳回步骤(4),且令迭代运算次数I加1;否则不对聚类中心Zj进行操作,进入步骤(13)。
(13)计算NC个聚类中心两两之间的距离Dij=||Zi-Zj||,i=1,2,…,NC-1,j=i+1,2,…,NC。
(14)若距离最近的两个聚类中心之间的距离Dij<θC,则将这两个聚类中心合并为一个新的聚类中心,两个聚类中心对应的类别合并为一个类别,并令聚类中心个数NC减1;否则则不做处理。
(15)如果迭代运算次数I≥Imax,聚类运算结束,进入步骤(16),否则回到步骤(4)且令迭代运算次数I加1。
(18)SSD算法中共有6个输出层,分别为conv4_3,fc7,conv8_2,conv9_2,conv10_2,conv11_2。
若Lout=2则只保留conv4_3,fc7层,删掉fc7之后的卷积层;
若Lout=3则只保留conv4_3,fc7,conv8_2,删掉conv8_2之后的卷积层;
若Lout=4则只保留conv4_3,fc7,conv8_2,conv9_2,删掉conv9_2之后的卷积层;
若Lout=5则只保留conv4_3,fc7,conv8_2,conv9_2,conv10_2,删掉conv10_2之后的卷积层;
若Lout=6则不对SSD网络进行删减。
(19)对各聚类中心确定其相应的模板框所在输出层:
对NC个聚类中心Zj=(wj,hj)计算面积Aj=wj×hj,
若Aj>(300/3)2则在conv11_2层设计对应模板框;
若(300/5)2<Aj≤(300/3)2则在conv10_2层设计对应模板框;
若(300/10)2<Aj≤(300/5)2则在conv9_2层设计对应模板框;
若(300/19)2<Aj≤(300/10)2则在conv8_2层设计对应模板框;
若(300/38)2<Aj≤(300/19)2则在fc7层设计对应模板框;
若Aj≤(300/38)2则在conv4_3层设计对应模板框。
(20)对各聚类中心确定其相应的模板框尺寸:
NC个聚类中心Zj=(wj,hj)对应的模板框尺寸分别为:
max_size=max(wj,hj)
(21)若对所有聚类中心设计了对应的模板框之后仍有某输出层没有设计相应的模板框,则按照如下准则设计:
若某输出层没有设计相应的模板框,那么就采用距离它最近的层的min_size,max_size,aspect_ratio参数。若有两个输出层距离该层距离相同,浅层为LayerB,深层为LayerT,则该输出层参数aspect_ratio采用的LayerB的aspect_ratioB和LayerT的aspect_ratioT的并集。
(22)对所有输出层都添加aspect_ratio=1的模板框比例。
(23)对完成了输出层裁剪及模板框尺寸确定的卷积神经网络进行训练,得到层数更少,复杂度更低的,计算效率更高的神经网络模型。
上述方案在步骤(1)中,提取标注信息中的目标宽w、高h尺寸的具体方法为:读取xml中各<bndbox>节点中的<xmin>、<ymin>、<xmax>、<ymax>值,计算该目标的宽w=xmax-xmin+1,高h=ymax-ymin+1。
上述方案在步骤(3)中,随机选取K个样本的具体方法为:按照U(0,1)在0到1之间按均匀分布生成K一个随机数α1,α2,…,αK,取第ceil(aiN)个样本作为第i个初始聚类中心,其中ceil()为向上取整。
上述方案在步骤(4)中,样本x与聚类中心Zj之间距离的计算方法为:Dj=||x-Zj||。
上述方案在步骤(5)中,取消某类别的具体方法为:取消该聚类中心,令聚类中心个数NC减1,释放原本归属于该类别的样本,对释放出的样本计算其与其他聚类中心之间的距离,释放样本与哪个聚类中心之间的距离最近就将之归类于哪一个类别。
上述方案在步骤(6)中,修正各类别聚类中心Zj的具体方法为:
上述方案在步骤(10)中,计算每个类别Sj中各样本x=(xw,xh)到聚类中心Zj=(wj,hj)的标准差向量σj=(σw,j,σh,j)的具体方法为:
上述方案在步骤(11)中,提取各标准差向量中σj=(σw,j,σh,j)的最大分量σjmax的具体方法为:
σjmax=max(σw,j,σh,j)
上述方案在步骤(12)中,将Zj***为两个新的聚类中心的具体方法为:聚类Sj中各样本x到聚类中心Zj的标准差为σj=(σw,j,σh,j),若σw,j≥σh,j则令γ=(σw,j,0);若σw,j<σh,j则令γ=(0,σh,j)。Zj***出的两个新聚类中心分别为:Zj+kγ和Zj-kγ,其中0<k<1。
上述方案在步骤(14)中,聚类中心合并的具体方法为:若距离最近的两个聚类中心之间的距离Dij<θC,则将两个聚类中心对应的类别合并为一个类别,取消两个聚类中心的聚类中心地位,对这两类释放出的样本重新计算聚类中心并令聚类中心个数NC减1。
附图说明
图1为本发明的方法流程示意图;
图2为模板框尺寸的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
实施例
一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,该方法的步骤包括:
(1)将训练数据上的每个目标均用二维特征向量(w,h)表示,其中,w为目标像素宽度,h为目标像素高度,二维特征向量(w,h)的个数用N表示,以下二维特征向量(w,h)简称样本,样本用x表示。
(2)设定步骤(1)得到的N个样本的初始聚类中心个数为K、聚类中最少的样本数目为θN、聚类中样本距离分布的标准差为θS、两聚类中心之间的最小距离为θC、最大迭代运算次数为Imax。
(3)在N个样本中随机选取K个作为初始聚类中心,并令NC=K,NC表示当前聚类中心个数,每个聚类中心用Zj表示,j=1,2,…,NC,各聚类中心对应的类别用Sj表示,j=1,2,…,NC,类别Sj中的样本数量用Nj表示,j=1,2,…,NC,迭代运算次数用I表示,令I=1。
(4)遍历所有样本x,计算样本x与各聚类中心Zj之间的距离Dj,将样本x划归到与样本x距离最小的聚类中心对应的类别中。
(5)如果某类别Sj中样本数量Nj<θN,则取消该类别,令当前聚类中心个数NC减少1,并将该类别中的样本按照(4)中的最小距离准则划归到其他类别中;否则对类别Sj不做处理。
(6)对各类别Sj中的样本x取平均,得到的平均值即为修正后的聚类中心Zj,j=1,2,…,NC。
(9)判断类别Sj的***、合并及迭代运算。
1)如果迭代运算次数I≥Imax,即最后一次迭代,置θC=0,跳到步骤(13)。
2)如果θN≤K/2,即聚类中心的数目等于或不到规定值的一半,则进入步骤(10),将已有的聚类***。
3)如迭代运算的次数I是偶数,或NC≥2K,则不进行***处理,跳到步骤(13);如果I是奇数,且NC<2K,则进入步骤(10),进行***处理。
(10)计算每个类别Sj中各样本x到聚类中心Zj的标准差向量σj,j=1,2,…,NC。
(11)对(10)中计算得到的标准差向量σj提取最大分量,用σjmax表示,j=1,2,…,NC。
(12)最大分量集{σjmax},j=1,2,…,NC中,如有σjmax>θS,且满足如下两个条件中的任意一个:
(2) NC≤K/2;
则将Zj***为两个新的聚类中心,且令聚类中心个数NC加1。完成***运算后,跳回步骤(4),且令迭代运算次数I加1;否则不对聚类中心Zj进行操作,进入步骤(13)。
(13)计算NC个聚类中心两两之间的距离Dij=||Zi-Zj||,i=1,2,…,NC-1,j=i+1,2,…,NC。
(14)若距离最近的两个聚类中心之间的距离Dij<θC,则将这两个聚类中心合并为一个新的聚类中心,两个聚类中心对应的类别合并为一个类别,并令聚类中心个数NC减1;否则则不做处理。
(15)如果迭代运算次数I≥Imax,聚类运算结束,进入步骤(16),否则回到步骤(4)且令迭代运算次数I加1。
(18)SSD算法中共有6个输出层,分别为conv4_3,fc7,conv8_2,conv9_2,conv10_2,conv11_2。
若Lout=2则只保留conv4_3,fc7层,删掉fc7之后的卷积层;
若Lout=3则只保留conv4_3,fc7,conv8_2,删掉conv8_2之后的卷积层;
若Lout=4则只保留conv4_3,fc7,conv8_2,conv9_2,删掉conv9_2之后的卷积层;
若Lout=5则只保留conv4_3,fc7,conv8_2,conv9_2,conv10_2,删掉conv10_2之后的卷积层;
若Lout=6则不对SSD网络进行删减。
(19)对各聚类中心确定其相应的模板框所在输出层:
对NC个聚类中心Zj=(wj,hj)计算面积Aj=wj×hj,
若Aj>(300/3)2则在conv11_2层设计对应模板框;
若(300/5)2<Aj≤(300/3)2则在conv10_2层设计对应模板框;
若(300/10)2<Aj≤(300/5)2则在conv9_2层设计对应模板框;
若(300/19)2<Aj≤(300/10)2则在conv8_2层设计对应模板框;
若(300/38)2<Aj≤(300/19)2则在fc7层设计对应模板框;
若Aj≤(300/38)2则在conv4_3层设计对应模板框。
(20)对各聚类中心确定其相应的模板框尺寸:
NC个聚类中心Zj=(wj,hj)对应的模板框尺寸分别为:
max_size=max(wj,hj)
(21)若对所有聚类中心设计了对应的模板框之后仍有某输出层没有设计相应的模板框,则按照如下准则设计:
若某输出层没有设计相应的模板框,那么就采用距离它最近的层的min_size,max_size,aspect_ratio参数。若有两个输出层距离该层距离相同,浅层为LayerB,深层为LayerT,则该输出层参数aspect_ratio采用的LayerB的aspect_ratioB和LayerT的aspect_ratioT的并集。
(22)对所有输出层都添加aspect_ratio=1的模板框比例。
(23)对完成了输出层裁剪及模板框尺寸确定的卷积神经网络进行训练,得到层数更少,复杂度更低的,计算效率更高的神经网络模型。
上述方案在步骤(1)中,提取标注信息中的目标宽w、高h尺寸的具体方法为:读取xml中各<bndbox>节点中的<xmin>、<ymin>、<xmax>、<ymax>值,计算该目标的宽w=xmax-xmin+1,高h=ymax-ymin+1。
上述方案在步骤(3)中,随机选取K个样本的具体方法为:按照U(0,1)在0到1之间按均匀分布生成K一个随机数α1,α2,…,αK,取第ceil(aiN)个样本作为第i个初始聚类中心,其中ceil()为向上取整。
上述方案在步骤(4)中,样本x与聚类中心Zj之间距离的计算方法为:Dj=||x-Zj||。
上述方案在步骤(5)中,取消某类别的具体方法为:取消该聚类中心,令聚类中心个数NC减1,释放原本归属于该类别的样本,对释放出的样本计算其与其他聚类中心之间的距离,释放样本与哪个聚类中心之间的距离最近就将之归类于哪一个类别。
上述方案在步骤(6)中,修正各类别聚类中心Zj的具体方法为:
上述方案在步骤(10)中,计算每个类别Sj中各样本x=(xw,xh)到聚类中心Zj=(wj,hj)的标准差向量σj=(σw,j,σh,j)的具体方法为:
上述方案在步骤(11)中,提取各标准差向量中σj=(σw,j,σh,j)的最大分量σjmax的具体方法为:
σjmax=max(σw,j,σh,j)
上述方案在步骤(12)中,将Zj***为两个新的聚类中心的具体方法为:聚类Sj中各样本x到聚类中心Zj的标准差为σj=(σw,j,σh,j),若σw,j≥σh,j则令γ=(σw,j,0);若σw,j<σh,j则令γ=(0,σh,j)。Zj***出的两个新聚类中心分别为:Zj+kγ和Zj-kγ,其中0<k<1。
上述方案在步骤(14)中,聚类中心合并的具体方法为:若距离最近的两个聚类中心之间的距离Dij<θC,则将两个聚类中心对应的类别合并为一个类别,取消两个聚类中心的聚类中心地位,对这两类释放出的样本重新计算聚类中心并令聚类中心个数NC减1。
如图1所示是本方案提出的一种基于自组织聚类的SSD网络输出层裁剪及模板框尺寸确定方法的具体实施过程。
图1中“提取训练数据中目标宽、高作为特征向量样本”对应步骤(1):
全部训练数据共1000张图片,遍历全部图片中的所有目标,读取目标标注信息<bndbox>节点中的<xmin>、<ymin>、<xmax>、<ymax>值,计算该目标的宽w=xmax-xmin+1,高h=ymax-ymin+1,将(w,h)作为一个二维特征向量样本x记录下来,进入后续操作,本实施例中记录特征向量个数N=1858。
图1中“参数初始化”对应步骤(2):
本实施例中设定初始聚类中心个数K=6,聚类中最少的样本数目θN=80,聚类中样本距离分布的标准差θS=5,两聚类中心之间的最小距离θC=5,最大迭代运算次数Imax=100。
图1中“随机选取初始聚类中心”对应步骤(3):
在0到1之间按均匀分布生成K个随机数α1,α2,…,αK,取第ceil(aiN)个样本作为第i个初始聚类中心,其中ceil()为向上取整,令NC=K,迭代运算次数I=1。
图1中“样本按最小距离准则归类”对应步骤(4):
遍历所有样本x,计算其与聚类中心Zj之间的距离Dj=||x-Zj||,将样本x划归到与样本x距离最小的聚类中心对应的类别中。
图1中“取消样本数量过小的类别”对应步骤(5):
如果某类别Sj中样本数量Nj<θN,则取消该类别,令当前聚类中心个数NC减少1,释放原本归属于该类别的样本,对释放的样本计算其与其他聚类中心之间的距离,释放的样本与哪个聚类中心之间的距离最近就将之归类于哪一个类别;否则对类别Sj不做处理。
图1中“修正聚类中心”对应步骤(6):
图1中“计算各类中样本到聚类中心的平均距离”对应步骤(7):
图1中“计算全部类别样本与其相应聚类中心的总平均距离”对应步骤(8):
图1中“判断类别的***、合并及迭代运算”对应步骤(9):
判断类别的***、合并及迭代运算,判断当前状态是否需要进行***操作,若需要进行***操作则跳到步骤(10),若不需要进行***操作则跳到步骤(13),具体判断方法如下:
1)如果迭代运算次数I≥Imax,即最后一次迭代,置θC=0,跳到步骤(13)。
2)如果θN≤K/2,即聚类中心的数目等于或不到规定值的一半,则进入步骤(10),将已有的聚类***。
3)如迭代运算的次数I是偶次,或NC≥2K,则不进行***处理,跳到步骤(13);如果I是奇数,且NC<2K,则进入步骤(10),进行***处理。
图1中“计算各类别样本到聚类中心的标准差”对应步骤(10):
计算每个类别Sj中各样本x=(xw,xh)到聚类中心Zj的标准差向量σj=(σw,j,σh,j),具体方法为:
图1中所述“获取标准差中的最大分量”对应步骤(11):
提取各标准差向量中σj=(σw,j,σh,j)的最大分量σjmax=max(σw,j,σh,j)。
图1中所述“对满足***条件的类别进行类别***”对应步骤(12):
若各类别Sj中有σjmax>θS,且满足如下两个条件中的任意一个:
(2)NC≤K/2;
则将Zj***为两个新的聚类中心,类别Sj中各样本x到聚类中心Zj的标准差为σj=(σw,j,σh,j),若σw,j≥σh,j则令γ=(σw,j,0);若σw,j<σh,j则令γ=(0,σh,j)。Zj***出的两个新聚类中心分别为Zj+kγ和Zj-kγ,其中0<k<1,本实施例中k=0.5,并令聚类中心个数NC加1;否则不对聚类中心Zj进行操作,进入步骤(13)。
完成***运算后,令迭代运算次数I加1,并跳回步骤(4)。
图1中所述“计算各聚类中心两两之间的距离”对应步骤(13):
计算NC个聚类中心两两之间的距离Dij=||Zi-Zj||,i=1,2,…,NC-1,j=i+1,2,…,NC。
图1中所述“对满足合并条件的类别进行合并”对应步骤(14):
若距离最近的两个聚类中心之间的距离Dij<θC,则将两个聚类中心对应的类别合并为一个类别,将这两个聚类中心合并为一个新的聚类中心,取消两个聚类中心的聚类中心地位,对这两类释放出的样本重新计算聚类中心并令聚类中心个数NC减1。
图1中所述“判断迭代是否结束”对应步骤(15):
如果迭代运算次数I≥Imax,聚类运算结束,进入步骤(16),否则回到步骤(4)且迭代运算次数I加1。
图1中所述“计算聚类中心最大上限面积”对应步骤(16):
本实施例中,聚类结束时共获得聚类中心7个,分别为(10.9,28.7),(27.2,12.1),(9.8,4.5),(6.8,11.4),(13.9,21.7),(19.7,15.4),(11.9,10.2),计算可得各聚类中心上限面积 因此最大上限面积为
图1中所述“判断输出层层数”对应步骤(17):
图1中所述“对SSD网络进行删减”对应步骤(18):
SSD算法中共有6个输出层,分别为conv4_3,fc7,conv8_2,conv9_2,conv10_2,conv11_2。
若Lout=2则只保留conv4_3,fc7层,删掉fc7之后的卷积层;
若Lout=3则只保留conv4_3,fc7,conv8_2,删掉conv8_2之后的卷积层;
若Lout=4则只保留conv4_3,fc7,conv8_2,conv9_2,删掉conv9_2之后的卷积层;
若Lout=5则只保留conv4_3,fc7,conv8_2,conv9_2,conv10_2,删掉conv10_2之后的卷积层;
若Lout=6则不对SSD网络进行删减。
本实施例中Lout=3,因此只保留conv4_3,fc7,conv8_2输出层,删掉conv8_2之后的卷积层。
图1中所述“对各聚类中心确定其相应模板框所在输出层”对应步骤(19):
对各聚类中心Zj=(wj,hj)计算面积Aj=wj×hj,
若Aj>(300/3)2则在conv11_2层设计对应模板框;
若(300/5)2<Aj≤(300/3)2则在conv10_2层设计对应模板框;
若(300/10)2<Aj≤(300/5)2则在conv9_2层设计对应模板框;
若(300/19)2<Aj≤(300/10)2则在conv8_2层设计对应模板框;
若(300/38)2<Aj≤(300/19)2则在fc7层设计对应模板框;
若Aj≤(300/38)2则在conv4_3层设计对应模板框。
本实施例中各聚类中心为(10.9,28.7),(27.2,12.1),(9.8,4.5),(6.8,11.4),(13.9,21.7),(19.7,15.4),(11.9,10.2);各聚类中心面积分别为A1=312.83,A2=329.12,A3=44.10,A4=77.52,A5=301.63,A6=303.38,A7=121.38,对应的模板框所在层分别为conv8_2层,conv8_2层,conv4_3层,fc7层,conv8_2层,conv8_2层,fc7层。
图1中所述“对各聚类中心确定其相应模板框尺寸”对应步骤(20):
NC个聚类中心Zj=(wj,hj)对应的模板框尺寸为:
max_size=max(wj,hj)
本实用例中各聚类中心分别为(10.9,28.7),(27.2,12.1),(9.8,4.5),(6.8,11.4),(13.9,21.7),(19.7,15.4),(11.9,10.2)。计算得到各聚类中心对应的模板框尺寸分别为:
聚类中心1:min_size=17.7;max_size=28.7;aspect_ratio=2
聚类中心2:min_size=18.1;max_size=27.2;aspect_ratio=2
聚类中心3:min_size=6.6;max_size=9.8;aspect_ratio=2
聚类中心4:min_size=8.8;max_size=11.4;aspect_ratio=1
聚类中心5:min_size=17.3;max_size=21.7;aspect_ratio=1
聚类中心6:min_size=17.4;max_size=19.7;aspect_ratio=1
聚类中心7:min_size=11.0;max_size=11.9;aspect_ratio=1
图1中所述“对尚未设计模板框的输出层涉及模板框”对应步骤(21):
若某输出层没有设计相应的模板框,那么就采用距离它最近的层的min_size,max_size,aspect_ratio参数。若有两个输出层距离该层距离相同,浅层为LayerB,深层为LayerT,则该输出层参数aspect_ratio采用的LayerB的aspect_ratioB和LayerT的aspect_ratioT的并集。
在本实用例中conv4_3层,fc7层,conv8_2层输出层均有响应的模板框,因此没有进行本步骤操作。
conv4_3层:min_size=6.6;max_size=9.8;aspect_ratio=2
fc7层:min_size=8.8;max_size=11.4;aspect_ratio=1
min_size=11.0;max_size=11.9;aspect_ratio=1
conv8_2层:min_size=17.7;max_size=28.7;aspect_ratio=2
min_size=18.1;max_size=27.2;aspect_ratio=2
min_size=17.3;max_size=21.7;aspect_ratio=1
min_size=17.4;max_size=19.7;aspect_ratio=1
图1中所述“对所有输出层都添加aspect_ratio=1的模板框比例”对应步骤(22):
本实用例中conv4_3层没有aspect_ratio=1的模板框比例,因此添加aspect_ratio=1;fc7层和conv8_2层均有aspect_ratio=1的模板框比例因此不需要添加。
本方案结束时确定的网络结构为SSD网络保留conv4_3,fc7,conv8_2输出层,删掉conv8_2之后的卷积层,各输出层的模板框设计如下所示:
conv4_3层:
min_size=6.6
max_size=9.8
aspect_ratio=1,2
fc7层:
min_size=8.8,11.0
max_size=11.4,11.9
aspect_ratio=1
conv8_2层:
min_size=17.7,18.1,17.3,17.4
max_size=28.7,27.2,21.7,19.7
aspect_ratio=1,2
图2中所示为模板框尺寸的示意图。
对SSD网络进行改造前,网络收敛到MAP=0.9的需要迭代35000次,对SSD网络进行改造后网络收敛到MAP=0.9仅需要23000次,表明本方案能够去掉不必要的输出层,减少网络深度,降低网络复杂度,降低模型训练收敛难度。对SSD网络进行改造前,网络计算耗时为29ms,SSD网络改造后,网络计算耗时为20ms,提高了计算效率。
本发明使用自组织聚类算法对训练样本尺寸进行聚类分析,通过聚类结果确定SSD网络输出层个数,对网络进行裁剪。
使用自组织聚类可以在不确定目标尺寸分布的情况下获得更好的聚类结果,使用聚类结果计算目标上限面积,确定输出层层数,删掉感受野过大、层数过深的输出层,减少网络深度和参数数量,降低模型训练的难度,加快模型收敛,提高模型泛化能力,减少计算耗时,提高计算效率。
本发明使用自组织聚类算法对训练样本尺寸进行聚类分析,通过聚类结果确定模板框尺寸。
使用自组织聚类结果设计模板框尺寸,使模板框尺寸更接近目标真实尺寸,降低网络对目标位置偏差的回归难度,提高目标检测的准确率。
Claims (10)
1.一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于该方法的步骤包括:
(1)将训练数据上的每个目标均用二维特征向量(w,h)表示,其中,w为目标像素宽度,h为目标像素高度,二维特征向量(w,h)的个数用N表示,以下二维特征向量(w,h)简称样本,样本用x表示,
(2)设定步骤(1)得到的N个样本的初始聚类中心个数为K、聚类中最少的样本数目为θN、聚类中样本距离分布的标准差为θS、两聚类中心之间的最小距离为θC、最大迭代运算次数为Imax,
(3)在N个样本中随机选取K个作为初始聚类中心,并令NC=K,NC表示当前聚类中心个数,每个聚类中心用Zj表示,j=1,2,…,NC,各聚类中心对应的类别用Sj表示,j=1,2,…,NC,类别Sj中的样本数量用Nj表示,j=1,2,…,NC,迭代运算次数用I表示;
(4)遍历所有样本x,计算样本x与各聚类中心Zj之间的距离Dj,将样本x划归到与样本x距离最小的聚类中心对应的类别中;
(5)如果某类别Sj中样本数量Nj<θN,则取消该类别,令当前聚类中心个数NC减少1,并将该类别中的样本按照(4)中的最小距离准则划归到其他类别中;否则不对类别Sj做处理;
(6)对各类别Sj中的样本x取平均,得到的平均值即为修正后的聚类中心Zj,j=1,2,…,NC;
(7)对各类别Sj计算各类别中的样本到聚类中心的平均距离j=1,2,…,NC;
(8)计算全部类别样本与相应聚类中心的总平均距离
(9)判断类别Sj的***、合并及迭代运算;
1)如果迭代运算次数I≥Imax,即最后一次迭代,置θC=0,跳到步骤(13);
2)如果θN≤K/2,即聚类中心的数目等于或不到规定值的一半,则进入步骤(10),将已有的聚类***;
3)如迭代运算的次数I是偶数,或NC≥2K,则不进行***处理,跳到步骤(13);如果I是奇数,且NC<2K,则进入步骤(10),进行***处理;
(10)计算每个类别Sj中各样本x到聚类中心Zj的标准差向量σj,j=1,2,…,NC;
(11)对(10)中计算得到的标准差向量σj提取最大分量,用σjmax表示,j=1,2,…,NC;
(12)最大分量集{σjmax}中,j=1,2,…,NC,如有σjmax>θS,且满足如下两个条件中的任意一个:
(a)且Nj>(θN+1)*2;
(b)NC≤K/2;
则将Zj***为两个新的聚类中心,且令聚类中心个数NC加1,完成***运算后,跳回步骤(4),且令迭代运算次数I加1;否则不对聚类中心Zj进行操作,进入步骤(13);
(13)计算NC个聚类中心两两之间的距离Dij=||Zi-Zj||,i=1,2,…,NC-1,j=i+1,2,…,NC;
(14)若距离最近的两个聚类中心之间的距离Dij<θC,则将这两个聚类中心合并为一个新的聚类中心,两个聚类中心对应的类别合并为一个类别,并令聚类中心个数NC减1;否则不做处理;
(15)如果迭代运算次数I≥Imax,聚类运算结束,进入步骤(16),否则回到步骤(4)且令迭代运算次数I加1;
(16)对NC个聚类中心Zj=(wj,hj)计算上限面积对NC个进行从小到大排序,获得最大上限面积
(17)根据判断输出层层数Lout:
若则输出层数为Lout=6;
若则输出层数为Lout=5;
若则输出层数为Lout=4;
若则输出层数为Lout=3;
若则输出层数为Lout=2;
(18)SSD算法中共有6个输出层,分别为conv4_3,fc7,conv8_2,conv9_2,conv10_2,conv11_2;
若Lout=2则只保留conv4_3,fc7层,删掉fc7之后的卷积层;
若Lout=3则只保留conv4_3,fc7,conv8_2,删掉conv8_2之后的卷积层;
若Lout=4则只保留conv4_3,fc7,conv8_2,conv9_2,删掉conv9_2之后的卷积层;
若Lout=5则只保留conv4_3,fc7,conv8_2,conv9_2,conv10_2,删掉conv10_2之后的卷积层;
若Lout=6则不对SSD网络进行删减;
(19)对各聚类中心确定其相应的模板框所在输出层:
对NC个聚类中心Zj=(wj,hj)计算面积Aj=wj×hj,
若Aj>(300/3)2则在conv11_2层设计对应模板框;
若(300/5)2<Aj≤(300/3)2则在conv10_2层设计对应模板框;
若(300/10)2<Aj≤(300/5)2则在conv9_2层设计对应模板框;
若(300/19)2<Aj≤(300/10)2则在conv8_2层设计对应模板框;
若(300/38)2<Aj≤(300/19)2则在fc7层设计对应模板框;
若Aj≤(300/38)2则在conv4_3层设计对应模板框;
(20)对各聚类中心确定其相应的模板框尺寸:
NC个聚类中心Zj=(wj,hj)对应的模板框尺寸分别为:
max_size=max(wj,hj)
其中floor()为向下取整;
(21)若对所有聚类中心设计了对应的模板框之后仍有某输出层没有设计相应的模板框,则按照如下准则设计:
若某输出层没有设计相应的模板框,那么就采用距离它最近的层的min_size,max_size,aspect_ratio参数,若有两个输出层距离该层距离相同,浅层为LayerB,深层为LayerT,则该输出层参数 aspect_ratio采用的LayerB的aspect_ratioB和LayerT的aspect_ratioT的并集;
(22)对所有输出层都添加aspect_ratio=1的模板框比例;
(23)对完成了输出层裁剪及模板框尺寸确定的卷积神经网络进行训练,得到神经网络模型。
2.根据权利要求1所述的一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于:步骤(1)中,提取标注信息中的目标宽w、高h尺寸的具体方法为:读取xml中各<bndbox>节点中的<xmin>、<ymin>、<xmax>、<ymax>值,计算该目标的宽w=xmax-xmin+1,高h=ymax-ymin+1。
3.根据权利要求1所述的一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于:步骤(3)中,随机选取K个样本的具体方法为:按照U(0,1)在0到1之间按均匀分布生成K一个随机数α1,α2,…,αK,取第ceil(aiN)个样本作为第i个初始聚类中心,其中ceil()为向上取整。
4.根据权利要求1所述的一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于:步骤(4)中,样本x与聚类中心Zj之间距离的计算方法为:Dj=||x-Zj||,样本x的归类方法为:若则该样本x归于Sj类。
5.根据权利要求1所述的一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于:步骤(5)中,取消某类别的具体方法为:取消该聚类中心,令聚类中心个数NC减1,释放原本归属于该类别的样本,对释放出的样本计算其与其他聚类中心之间的距离,释放样本与哪个聚类中心之间的距离最近就将之归类于那一个类别。
6.根据权利要求1所述的一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于:步骤(6)中,修正各类别聚类中心Zj的具体方法为:
步骤(7)中,计算各类别Sj中的样本到聚类中心的平均距离的具体方法为:
步骤(8)中,计算全部类别样本与相应聚类中心的总平均距离的具体方法为:
7.根据权利要求1所述的一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于:步骤(10)中,计算每个类别Sj中各样本x=(xw,xh)到聚类中心Zj=(wj,hj)的标准差向量σj=(σw,j,σh,j)的具体方法为:
8.根据权利要求1所述的一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于:步骤(11)中,提取各标准差向量中σj=(σw,j,σh,j)的最大分量σjmax的具体方法为:
σjmax=max(σw,j,σh,j)。
9.根据权利要求1所述的一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于:步骤(12)中,将Zj***为两个新的聚类中心的具体方法为:聚类Sj中各样本x到聚类中心Zj的标准差为σj=(σw,j,σh,j),若σw,j≥σh,j则令γ=(σw,j,0);若σw,j<σh,j则令γ=(0,σh,j),Zj***出的两个新聚类中心分别为:Zj+kγ和Zj-kγ,其中0<k<1。
10.根据权利要求1所述的一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法,其特征在于:步骤(14)中,聚类中心合并的具体方法为:若距离最近的两个聚类中心之间的距离Dij<θC,则将两个聚类中心对应的类别合并为一个类别,取消两个聚类中心的聚类中心地位,对这两类释放出的样本重新计算聚类中心并令聚类中心个数NC减1;
步骤(16)中,获得最大面积的具体方法为:
其中,
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010265447.7A CN111524098B (zh) | 2020-04-07 | 2020-04-07 | 一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010265447.7A CN111524098B (zh) | 2020-04-07 | 2020-04-07 | 一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111524098A CN111524098A (zh) | 2020-08-11 |
CN111524098B true CN111524098B (zh) | 2023-05-12 |
Family
ID=71901605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010265447.7A Active CN111524098B (zh) | 2020-04-07 | 2020-04-07 | 一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111524098B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113095418B (zh) * | 2021-04-19 | 2022-02-18 | 航天新气象科技有限公司 | 一种目标检测方法及*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108898154A (zh) * | 2018-09-29 | 2018-11-27 | 华北电力大学 | 一种电力负荷som-fcm分层聚类方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550744A (zh) * | 2015-12-06 | 2016-05-04 | 北京工业大学 | 一种基于迭代的神经网络聚类方法 |
-
2020
- 2020-04-07 CN CN202010265447.7A patent/CN111524098B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108898154A (zh) * | 2018-09-29 | 2018-11-27 | 华北电力大学 | 一种电力负荷som-fcm分层聚类方法 |
Non-Patent Citations (1)
Title |
---|
刘绚 ; 文俊 ; 刘天琪.基于自组织神经网络的模糊聚类同调机群识别.电网技术.2010,第34卷(第7期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111524098A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110223324B (zh) | 一种基于鲁棒特征表示的孪生匹配网络的目标跟踪方法 | |
CN110443143B (zh) | 多分支卷积神经网络融合的遥感图像场景分类方法 | |
CN111460968B (zh) | 基于视频的无人机识别与跟踪方法及装置 | |
CN111950656B (zh) | 图像识别模型生成方法、装置、计算机设备和存储介质 | |
CN108230291B (zh) | 物体识别***训练方法、物体识别方法、装置和电子设备 | |
CN111860587B (zh) | 一种用于图片小目标的检测方法 | |
CN112215119B (zh) | 一种基于超分辨率重建的小目标识别方法、装置及介质 | |
CN111640138B (zh) | 一种目标跟踪方法、装置、设备及存储介质 | |
CN113591729B (zh) | 结合rgb-dsm图像和深度学习的城市森林单木树冠检测方法 | |
CN113255832A (zh) | 双分支多中心的长尾分布识别的方法 | |
CN112396042A (zh) | 实时更新的目标检测方法及***、计算机可读存储介质 | |
CN107680099A (zh) | 一种融合ifoa和f‑isodata的图像分割方法 | |
CN111524098B (zh) | 一种基于自组织聚类的神经网络输出层裁剪及模板框尺寸确定方法 | |
CN112926552A (zh) | 基于深度神经网络的遥感影像车辆目标识别模型及方法 | |
CN112419163B (zh) | 一种基于先验知识和深度学习的单张图像弱监督去雾方法 | |
CN116630828B (zh) | 基于地形环境适配的无人机遥感信息采集***及方法 | |
CN112541566A (zh) | 一种基于重构损失的图像翻译方法 | |
CN116664867A (zh) | 一种基于多证据融合选取训练样本的特征提取方法及装置 | |
CN116563205A (zh) | 基于小目标检测和改进YOLOv5的麦穗计数检测方法 | |
CN115630361A (zh) | 一种基于注意力蒸馏的联邦学习后门防御方法 | |
CN114140428A (zh) | 基于YOLOv5的落叶松毛虫虫害检测识别方法及*** | |
CN114202694A (zh) | 基于流形混合插值和对比学习的小样本遥感场景图像分类方法 | |
CN111553202A (zh) | 进行活体检测的神经网络的训练方法、检测方法及装置 | |
CN118153636A (zh) | 一种基于高斯先验指导的卷积神经网络结构优化的方法 | |
CN117541764B (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 |