首页 / 分类模型构建方法、分类模型及物体识别方法

分类模型构建方法、分类模型及物体识别方法有效专利 发明

技术领域

[0001] 本发明实施例涉及深度学习技术领域,特别涉及一种分类模型构建方法、分类模型及物体识别方法。

相关背景技术

[0002] 近年来,基于深度学习的分类方法相较于传统的分类方法,在分类效果上具有显著的突破,且分类准确度较高,随着ResNet,DenseNet等深度学习网络不断地被提出,基于深度学习的分类方法逐渐成为分类应用的主要潮流。
[0003] 然而,发明人发现现有技术中至少存在如下问题:现有在训练分类模型时,通常将所有类别放置于同一层级来训练分类模型,得到的分类模型只有一个层级,分类性能不高。

具体实施方式

[0021] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
[0022] 本发明的第一实施方式涉及一种分类模型构建方法,本实施方式的核心在于提供了一种分类模型构建方法,包括:获取N个类别的已知图像中每个类别的特征向量;根据特征向量将N个类别进行聚类形成多层分类层级树;将多层分类层级树的内节点作为分类模型的节点。本实施方式中对N个类别采用聚类方法形成多层分类层级树,使得同一层级的不同类别之间的相似度相对更加均匀,训练出的分类器性能更好,从而得到具有多层分类层级树的高性能的分类模型。
[0023] 下面对本实施方式的分类模型构建方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
[0024] 本实施方式中的分类模型构建方法的流程示意图如图1所示:
[0025] 步骤101:获取N个类别的已知图像中每个类别的特征向量。
[0026] 具体地说,获取N个类别的图像,并计算能够代表每一个类别的特征向量。优选地,每一个类别的图像为多个,求取每一个类别的图像中每个图像的特征向量,并计算该类别中所有图像的特征向量的平均值,以所述平均值作为该类别的特征向量。
[0027] 步骤102:判断是否存在已划分好的层级树。若不存在,则进入步骤103;若存在,则进入步骤104。
[0028] 具体地说,在构建分类模型之前,判断是否存在已经划分好的层级树,若存在,则进入步骤103只需将N个类别整合到已划分好的层级树中即可;若不存在,则进入步骤104,需要根据N个类别形成多层分类层级树以得到分类模型。
[0029] 步骤103:根据特征向量对N个类别进行聚类层级划分得到多层分类层级树。
[0030] 具体地如图3所示,步骤103具体包括步骤S11至步骤S18。
[0031] S11:从N个类别中选择一个类别。
[0032] S12:计算选择的类别与其他所有类别之间的距离。
[0033] 针对上述步骤S11至步骤S12,具体地说,若不存在已划分好层级的分类树,则需要直接根据N个类别形成分类层级树。从N个类别中随机选择一个类别,并计算选择的类别与其他所有类别之间的距离,之后,根据得到的距离求取距离阈值及聚类终止阈值。其中,选择的类别与其他所有类别之间的距离的方法与上述求取距离的方法相同,在此不再赘述。
[0034] S13:依据得到的距离求取距离阈值及聚类终止阈值。
[0035] 步骤S13具体包括:依据得到的距离绘制曲线,并利用多项式方程拟合曲线的拐点;曲线的拐点处的值作为距离阈值;求取距离的平均值以及标准差;依据平均值和标准差求取聚类终止阈值。
[0036] 具体地说,在依据得到的距离求取距离阈值时,首先求取的距离从小到大排序并绘制曲线,则与该类相似的类和与该类不相似的类之间的相似度在总体上会有一个比较明显的区别,也就是绘制的曲线会存在一个拐点,我们就将该拐点处的值设置为第一次聚类时的距离阈值。其中,该曲线可以通过多项式方程如三次方程来进行拟合,可以通过求取多项式方程的拐点来获取距离阈值。在依据得到的距离求取聚类终止阈值时,聚类终止阈值λ的大小设置为λ=μ+θ*δ,其中,μ表示选择的类别到其他所有类别的距离的平均值,δ表示选择的类别到其他所有类别的距离的标准差,θ通为经验值,θ的取值范围为0-1。
[0037] S14:判断距离阈值是否小于所述聚类终止阈值;
[0038] S15:若距离阈值小于聚类终止阈值,则求取N个类别中所有类别两两之间的距离。
[0039] S16:将小于或等于距离阈值的类别合并为一新类。
[0040] S17:将新类与其他大于所述距离阈值的类别归为同一层级。
[0041] S18:从新类以及其他大于距离阈值的类别中选取一个类别。
[0042] S19:重新执行步骤S12至步骤S17,直至距离阈值大于聚类终止阈值。
[0043] 针对上述步骤S14至步骤S18具体地说,当距离阈值小于聚类终止阈值时,求取N个类别中所有类别两两之间的距离,将小于或等于该距离阈值的类别合并为一个新类,新类中合并的类别处于同一个层级,所有新类和其他未进行合并的类别处于同一个层级,并从新类以及其他大于距离阈值的类别中选取一个类别,继续进行下一次聚类。当距离阈值大于聚类终止阈值时,聚类终止,自动得到聚类形成的多层分类层级树;
[0044] 步骤104:根据特征向量将N个类别与已划分好的层级树进行整合得到多层分类层级树。
[0045] 具体地,如图2所示,步骤104具体包括步骤S21至步骤S29。
[0046] S21:求取已划分好的层级树中每一层级的大类中两两类别之间的距离,并求取与每一层级对应的聚类阈值。
[0047] 具体地说,由于已知一个已划分好的层级树,假设已知的已经划分好的层级树为D层树,那么在聚类这N个类别时,首先考虑这N个类别是否可以合并到D层树的某一层级的某一类中。首先,求取已划分好的层级树中每一层级的大类中两两类别之间的距离,并取该大类中两两类别之间的距离的最大值作为该大类的距离阈值,对比该层级的所有大类的距离阈值,将最大的距离阈值作为该层级的聚类阈值。其中,求取已划分好的层级树中每一层级的大类中两两类别之间的距离,该“距离”代表两两类别之间的相似度,两两类别之间的相似度越高,该“距离”越小;两两类别之间的相似度越低,该“距离”越大。关于如何根据两两类别的“特征向量”求取两两类别之间的距离属于现有技术,本实施方式中不作过多说明。
[0048] S22:计算N个类别中每一个类别与已划分好的层级树中最后一层级的各类别之间的距离。
[0049] S23:判断N个类别中是否存在至少一个距离小于最后一层级的聚类阈值的可聚类类别。
[0050] S24:若存在可聚类类别,则将可聚类类别并入已划分好的层级树中的最后一层级。
[0051] S25:将N个类别中除可聚类类别外其他类别与已划分好的层级树的其他层级依次进行合并。
[0052] S26:判断N个类别是否全部并入已划分好的层级树中。
[0053] S27:若N个类别未全部并入已划分好的层级树中,则对N个类别中未并入已划分好的层级树的类别以及已划分好的层级树,进行聚类层级划分形成多层分类层级树。
[0054] S28:若N个类别全部并入已划分好的层级树中,则将合并后的已划分好的层级树作为多层分类层级树。
[0055] S29:若不存在可聚类类别,则对N个类别以及已划分好的层级树,进行聚类层级划分形成多层分类层级树。
[0056] 针对上述步骤S22至步骤S28具体地说,由于已划分好的层级树中的最后一层级必然存在多个类别,因此分别计算N个类别与已划分好的层级树中的最后一层级的各类别之间的距离,必然存在多个距离,若存在N个类别中存在至少一个距离小于最后一层级的聚类阈值的可聚类类别,则将该可聚类类别合并入已划分好的层级树中最后一层级中相近的类别中;并将N个类别中除所述可聚类类别外的其他类别与所述已划分好的层级树的其他层级依次进行合并,即就是说,计算其他未合并的类别与已划分好的层级树中的上一层级中的各个类别之间的距离,并与上一层级的聚类阈值进行比较,具体实现与步骤S21至步骤S23相同,只是对应的层级以及类别发生变化。若不存在,对N个类别以及已划分好的层级树,进行聚类层级划分形成多层分类层级树。
[0057] 在将N个类别中除可聚类类别外其他类别与已划分好的层级树的其他层级依次进行合并之后,判断N个类别是否全部合并至已划分好的层级树中,如果N个类别全部合并至已划分好的层级树中,则直接将合并后的已划分好的层级树作为多层分类层级树;如果N个类别中还存在未合并入已划分好的层级树的类别,则将剩余的类别和已划分好的层级树置于同一层级,对所述N个类别以及所述已划分好的层级树进行聚类层级划分形成所述多层分类层级树。
[0058] 步骤105:将多层分类层级树的内节点作为分类模型的节点,对每个节点训练得到分类模型。
[0059] 具体地说,将多层分类层级树的内节点作为分类模型的节点,对每个节点分别训练一个分类器,训练完成后得到分类模型。
[0060] 与现有技术相比,本实施方式中对N个类别采用聚类方法形成多层分类层级树,使得同一层级的不同类别之间的相似度相对更加均匀,训练出的分类器性能更好,从而得到具有多层分类层级树的高性能的分类模型。
[0061] 本发明的第二实施方式涉及一种分类模型构建方法。第二实施方式与第一施方式大致相同,主要区别之处在于:本实施方式中给出了训练分类模型的具体实现方式。
[0062] 本实施方式中的分类模型构建方法如图3所示,具体包括:
[0063] 步骤201:获取N个类别的已知图像中每个类别的特征向量。
[0064] 步骤202:判断是否存在已划分好的层级树。若存在,则进入步骤203;若不存在,则进入步骤204。
[0065] 步骤203:根据特征向量将N个类别与已划分好的层级树进行整合得到多层分类层级树。
[0066] 步骤204:根据特征向量对N个类别进行聚类层级划分得到多层分类层级树。
[0067] 步骤201至步骤204分别与第一实施方式中步骤101至步骤104大致相同,为避免重复,在此不再一一赘述。
[0068] 步骤205:获取包含每个节点的类别的训练样本图像和测试图像。
[0069] 步骤206:将训练样本图像输入多层分类层级树,对多层分类层级树的每个层级的内节点进行训练。
[0070] 步骤207:将测试图像输入训练后的多层分类层级树,得到测试精度值。
[0071] 步骤208:对多层分类层级树的每个层级的内节点进行训练直至测试精度值的变化幅度处于预设范围内。
[0072] 步骤209:将训练完成的多层分类层级树作为分类模型。
[0073] 针对上述步骤205至步骤209具体地说,获取包含多层分类层级树的每个内节点的类别的训练样本图像和测试图像,将训练样本图像输入多层分类层级树,利用该训练样本图像对多层分类层级树的每个层级的内节点进行训练;训练一定时长后,利用测试图像对训练后的多层分类层级树进行测试,求取测试精度值(例如:分类准确率);继续使用训练样本图像对多层分类层级树进行训练直至测试精度值的变化幅度处于预设范围内,该预设范围可由用户自行设置,表征该测试精度值仅发生小幅度的变化,不再发生明显变化。此时,可视为训练结束,将训练完成后的多层分类层级树作为分类模型。
[0074] 与现有技术相比,本发明实施方式提供了一种分类模型构建方法,将多层分类层级树的内节点作为分类模型的节点,对每个节点训练得到分类模型,具体包括:获取包含每个节点的类别的训练样本图像和测试图像;将训练样本图像输入多层分类层级树,对多层分类层级树的每个层级的内节点进行训练;将测试图像输入训练后的多层分类层级树,得到测试精度值;对多层分类层级树的每个层级的内节点进行训练直至测试精度值的变化幅度处于预设范围内;将训练完成的多层分类层级树作为分类模型,本实施方式中给出了训练分类模型的具体实现方式。
[0075] 上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
[0076] 本发明的第三实施方式涉及一种分类模型,分类模型利用上述第一或第二实施方式中的分类模型构建方法构建得到。
[0077] 本发明的第四实施方式还提供了一种物体识别方法,包括:将待识别物体的图像输入第三实施方式中的分类模型得到识别结果和识别结果的置信度,由于经过第一或第二实施方式构建的分类模型具备多个层级,因此,使用该分类模型识别的物体时,识别结果将更加准确。
[0078] 本实施方式中识别结果的置信度通过以下步骤得到:预测分类模型的多层分类层级树的每个层级中每个内节点的置信度值;将每个层级中的置信度最大值作为该层级的父类置信度,并将识别结果所在内节点的所有父类置信度的乘积作为识别结果的置信度。
[0079] 具体地说,为了得到更加准确的识别结果,使用了多层级依次识别的方法来输出最终的识别结果,置信度采用逐层推算的方法得到。
[0080] 假设形成的多层分类层级树为K层分类树,那么对于K层分类树的每一层级的每个内节点,分别训练一个分类器,Lk表示每一层的分类器个数,M表示分类器的总个数,其中L1= 1,M与Lk的关系如下公式(1)所示:
[0081] M=L1+L2+…+Lk  (1)
[0082] 输入待识别物体的图像,使用每一层的分类器逐层对该图像进行分类,直到最后一层获取最终分类结果。关于最终识别结果的置信度,采用逐层推算的方法。首先使用第一层分类器M1进行预测,得出第一层中每个内节点的置信度分别为P21、P22和P23,假设第一层中的置信度最大值为P21`;那么,第二层中L2个分类器预测得出的置信度最大值要和该层的父类置信度相乘才是本层的置信度结果,第二层的每个内节点的置信度P31、P32、P33等,假设第二层中的置信度最大值为P31,则该层的父类置信度P31`=P21`*P31。每一层以此类推,直到第K层,假设第K层的置信度最大值为PK1,第K-12层的父类置信度为P(K-1)1`,则得到的最终识别结果的置信度值PK1`=P(K-1)1`*PK1,即最后一层某个节点的置信度为该节点的置信度和该节点所有父类置信度的乘积。
[0083] 本实施方式中采用逐层推算的方法,将识别结果所在节点的所有父类置信度的乘积作为识别结果的置信度,使得待识别物体的图像的最终识别结果的置信度更加可信。
[0084] 本发明的第五实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现第一或第二实施方式中的分类模型构建方法。
[0085] 即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0086] 本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页 第1页 第2页 第3页