一种可动态增加的级联识别网络算法的制作方法

文档序号:19377212发布日期:2019-12-10 23:59阅读:344来源:国知局
一种可动态增加的级联识别网络算法的制作方法

本专利申请属于图像分类技术领域,更具体地说,是涉及一种可动态增加的级联识别网络算法。



背景技术:

在现实生活中的图像分类网络中,我们经常遇到的单个cnn分类网络,例如:vgg,resnet,inception等分类网络,在imagenet数据集上面最多的分类的类别是1000种,由于cnn网络模型的设计问题,一旦一个分类模型训练完成,想要重新添加分类的类别的时候,需要找出之前所训练的所有数据,添加上现在新的数据一起训练。这样的工作造成重复工作,一旦分类增多到一定数量之后,会造成分类不准确,同时分类多的时候,会造成训练数据过多而模型难以训练的问题。综上所述现在单模型分类的问题可以概括为:

1)虽然单模型分类器能够快速end2end地训练分类器,可是存在动态扩展性弱的问题。

2)单模型分类器在分类数量增加的时候,分类能力成直线下降趋势。



技术实现要素:

本发明需要解决的技术问题是提供一种可动态增加的级联识别网络算法,克服上述两个现有单模型分类器的缺点,并提出了动态增长的级联分类模型,能够很好地解决上述问题。

为了解决上述问题,本发明所采用的技术方案是:

一种可动态增加的级联识别网络算法,包括把需要分类的初始图像进行若干次逐级聚类,每一次聚类都生成若干个作为各级分类器的簇;然后从初始图像中逐个选图,依次进入各级分类器,输出最终分类结果。在需要增加新类时,将此新类的图片和聚类器融合,逐层遍历所有的簇,视该新类与各簇的距离远近,形成一个新簇或添加到某个簇的分类器中,完成新类的增加。

本发明技术方案的进一步改进在于:步骤如下:

步骤a、生成一级分类器,把将要分类的初始图像,找出具有代表性的图片放在一起进行聚类,根据聚类的信息,找出簇的数量,同时把每个簇所包含的图片放在一起看作一个类别,作为一级分类器的模型进行训练;一级分类器主要负责学习大的分类,例如:一级分类器更加关注概括性的特征,比如:瓶子类型,塑料包装类型,矩形,圆形等特征的物体。其中所使用dbscan聚类算法。

步骤b、生成二级分类器,在聚类分簇形成一级分类器后,将一级分类器中每一个簇的分类数据,再进行细分类,训练出多个二级分类器,根据上一级分类器生成的簇的多少,决定生成多少个下一级分类器,其中二级分类器的训练和普通的cnn分类器是一样的;

步骤c、生成n级分类器,在步骤b的基础上,继续对上一级分类器中的每一个簇进行细分类,动态增加至n级分类器直至不能再进行细分类,其中n≥2;

步骤d、预测阶段,在初始图像中随机挑选一张图,在该张图进入一级分类器之后,实现对该张图的大分类,然后再根据一级分类器的结果进入相对应的二级分类器中,再根据二级分类器的结果进入相对应的三级分类器中,以此类推,直至到n级分类器,从而输出最终分类结果;

步骤e、新类增加,在输出最终分类结果后,如果需要再增加一个分类,首先把这个类别的图片和聚类器融合,然后看这个类别和哪一个簇距离最接近,如果超出最大距离则形成一个新的簇,如果在其中一个簇内,则添加到该簇对应的分类器中进行整体训练,从而能够保证尽量少的动作进行添加新的分类。

本发明技术方案的进一步改进在于:使用dbscan聚类算法进行聚类,dbscan聚类算法的整体流程如下:

步骤a1、首先获取数据集d,将数据集d中的所有对象标记为未处理状态,遍历数据集d中每个对象p;

步骤a2、如果对象p已经归入某个簇或标记为噪声,则继续下一步骤;

步骤a3、如果对象p未被归入某个簇或未被标记为噪声,则检查对象p的eps邻域neps(p),如果neps(p)包含的对象数小于minpts,则标记对象p为边界点或噪声点,否则标记对象p为核心点,并建立新簇c,并将p邻域内所有点加入c;

步骤a4、遍历(neps(p)中所有尚未被处理的对象q,检查其eps邻域neps(q),若neps(q)包含至少minpts个对象,则将neps(q)中未归入任何一个簇的对象加入新簇c,直至程序结束。

本发明技术方案的进一步改进在于:minpts取值为3-10。

本发明技术方案的进一步改进在于:一级分类器关注概括性的特征,二级分类器及以后的分类器(三级分类器直至n级分类器)的训练和cnn分类器一样。

本发明技术方案的进一步改进在于:下一级分类器是上一级分类器数量的2-5倍。

由于采用了上述技术方案,本发明取得的有益效果是:本发明根据单个分类模型无法动态增长,同时在分类增多时,分类效果下降的问题,设计并实现了一种可以动态增长的级联分类器,具有较强的动态扩展性,同时在分类数量增加的时候,分类能力不受影响。

实验证明,将imagenet的数据集的1000种分类根据聚类形成20簇一级分类,然后二级分类平均50种,总体的效果跟单模型效果一样,top5达到97.8%,达到可以使用的级别,同时还可以动态增长网络,具有较高的推广应用价值。

附图说明

图1为本发明的级联分类器结构示意图;

图2为本发明的聚类效果图;

其中:1、初始图像,2、一级分类器,3、二级分类器,4、分类结果。

具体实施方式

下面结合实施例对本发明做进一步详细说明。

本发明公开了一种可动态增加的级联识别网络算法,包括把需要分类的初始图像1进行若干次逐级聚类,每一次聚类都生成若干个作为各级分类器的簇;然后从初始图像1中逐个选图,依次进入各级分类器,输出最终分类结果4。在需要增加新类时,将此新类的图片和聚类器融合,逐层遍历所有的簇,视该新类与各簇的距离远近,形成一个新簇或添加到某个簇的分类器中,完成新类的增加。

具体步骤如下:

步骤a、生成一级分类器,把将要分类的初始图像1,找出具有代表性的图片放在一起进行聚类,根据聚类的信息,找出簇的数量,同时把每个簇所包含的图片放在一起看作一个类别,作为一级分类器2的模型进行训练;一级分类器2主要负责学习大的分类,例如:一级分类器2更加关注概括性的特征,比如:瓶子类型,塑料包装类型,矩形,圆形等特征的物体。其中所使用dbscan聚类算法。

步骤b、生成二级分类器3,在聚类分簇形成一级分类器2后,将一级分类器2中每一个簇的分类数据,再进行细分类,训练出多个二级分类器3,其中二级分类器3的训练和普通的cnn分类器是一样的;

步骤c、生成n级分类器,在步骤b的基础上,继续对上一级分类器中的每一个簇进行细分类,动态增加至n级分类器直至不能再进行细分类,其中n≥2;

步骤d、预测阶段,在初始图像1中随机挑选一张图,在该张图进入一级分类器2之后,实现对该张图的大分类,然后再根据一级分类器2的结果进入相对应的二级分类器3中,再根据二级分类器3的结果进入相对应的三级分类器中,以此类推,直至到n级分类器,从而输出最终分类结果4;

步骤e、新类增加,在输出最终分类结果4后,如果需要再增加一个分类,首先把这个类别的图片和聚类器融合,然后看这个类别和哪一个簇距离最接近,如果超出最大距离则形成一个新的簇,如果在其中一个簇内,则添加到该簇对应的分类器中进行整体训练,从而能够保证尽量少的动作进行添加新的分类。

使用dbscan聚类算法进行聚类,dbscan聚类算法的整体流程如下:

步骤a1、首先获取数据集d,将数据集d中的所有对象标记为未处理状态,遍历数据集d中每个对象p;

步骤a2、如果对象p已经归入某个簇或标记为噪声,则继续下一步骤;

步骤a3、如果对象p未被归入某个簇或未被标记为噪声,则检查对象p的eps邻域neps(p),如果neps(p)包含的对象数小于minpts,则标记对象p为边界点或噪声点,否则标记对象p为核心点,并建立新簇c,并将p邻域内所有点加入c;

步骤a4、遍历(neps(p)中所有尚未被处理的对象q,检查其eps邻域neps(q),若neps(q)包含至少minpts个对象,则将neps(q)中未归入任何一个簇的对象加入新簇c,直至程序结束。minpts取值为3-10。

一级分类器2关注概括性的特征,二级分类器3及以后的分类器的训练和cnn分类器一样。下一级分类器是上一级分类器数量的2-5倍,视具体情况来定。

举例如下:

实施例一:只设置一级分类器2和二级分类器3。在实验中,将imagenet的数据集1000种分类根据聚类形成20簇一级分类器2,然后二级分类器3平均50种,总体的效果跟单模型效果一样,top5达到97.8%,达到可以使用的级别。同时还可以动态增长网络。

实施例二:设置了三级分类器,imagenet的数据集仍然为1000种,最终形成了5簇一级分类器2、10簇二级分类器3和20簇二级分类器3,分类更细,便于新类增加操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1