一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据标注方法和装置和精细粒度识别方法和装置与流程

2021-11-24 20:48:00 来源:中国专利 TAG:


1.本技术涉及模式识别与图像处理技术领域,特别是指数据标注方法和装置、精细粒度识别模型的训练方法和装置、精细粒度识别方法和装置,计算设备及介质。


背景技术:

2.细粒度图像识别任务广泛的存在于工业及日常生活中,例如自动驾驶的车辆识别,通过摄像头拍摄的图像识别出车辆的制造商、款式及生产年代等信息,以此辅助自动驾驶的决策;交通标志通常是有简单的线条来表示信息,同样也是一个细粒度分类任务,为自动驾驶汽车的行为提供准则;另外,在手机应用中也是非常广泛,比如花、鸟、狗、食物等万物识别。因此,解决细粒度图像识别是非常有必要的,无论对工业或生活中都具有重要意义。
3.精细粒度图像识别是对同一基础类别下的不同子类进行划分,比如车的款式、鸟的种类、狗的品种等,相对于通用图像任务的区别在于其图像所属类别更为精细,目前在工业界以及生活中有广泛应用场景。
4.目前,学术上对于细粒度分类任务识别的技术多种多样,包括基于细粒度特征学习的方法、基于视觉注意力机制的方法以及基于目标快检测的方法。以上方法促进了细粒度分类任务的发展,但是仍存在一些问题,例如存在数据标注困难、从而使得标注样本少带来的细粒度图像识别模型训练时过拟合而使得获得的模型识别的准确率欠佳的问题。
5.因此,在此背景下,如何能解决数据标注的问题,增加标注样本,以减少细粒度图像识别模型训练时过拟合的问题,提高识别准确率是有待解决的技术问题。


技术实现要素:

6.有鉴于此,本技术的主要目的在于提供一种数据标注方法和装置、精细粒度识别模型的训练方法和装置、精细粒度识别方法和装置,计算设备及介质,以实现自动标注数据,并可以进一步将过程中的标注好的数据去训练相应的分类模型,有效地减小识别过程中的由于样本数据少导致的过拟合的产生,据此解决了因数据标注困难、标注样本少带来的分类模型训练时过拟合而使得获得的模型识别的准确率欠佳的问题,提高了识别准确率。
7.本技术提供的一种数据标注方法,包括:
8.采用至少两个结构不同的分类模型,以及
9.使用具有目标标注类型标签的目标数据集预训练其中之一分类模型,且将待标注的源数据集中的数据通过该预训练后的分类模型标注标签;
10.控制各所述分类模型执行一定次数的交替训练与数据标注,其中,所述预训练后的分类模型和通过该预训练后的分类模型标注标签的数据作为进行所述交替训练与数据标注中的初始分类模型和标注标签的初始数据;
11.所述交替训练与数据标注过程中,当前所训练的分类模型所进行的当前训练与当
前数据标注的步骤包括:获取前一训练的分类模型所重新标注标签的数据,并从中选择一部分数据训练当前分类模型,通过经训练后的当前分类模型对未被选择的另一部分数据重新标注标签。
12.由上,本技术采用各个分类模型交替训练和交替标注,实现渐进式的标签的自动标注,以及同时对分类模型的交替训练。通过该渐进式的迭代协同训练机制,可以通过在迭代过程中将自动标注后的大量标注数据引入分类模型训练过程,有效减小训练过程中的由于样本数据少导致的过拟合的产生,提升了识别性能。并且,在迭代协同训练过程中各个分类模型所输入的训练数据是不同的,因此也有效的避免了各个分类模型被训练的“近似”,从而有效避免了标注数据标签的同质化。且本技术通过使用具有目标标注类型标签的目标数据集预训练分类模型,可以使得该预训练后模型性能更高,且在后续迭代训练时速度更快地为源数据标注目标类型标签。
13.可选的,所述选择是根据各数据的标注的稳定度进行所述选择。
14.由上,可以保留数据标注的稳定度高的标签对应的数据作为训练集,去训练分类模型,使得训练效果较佳。
15.可选的,所述稳定度以信息熵进行衡量时,所述选择一部分数据包括:
16.根据每个数据上标注的各个标签计算每个数据的数据标注的信息熵,并根据该信息熵值的排序进行选择;其中,所述信息熵值的大小与数据标注的稳定度的高低成类反比关系。
17.由上,计算数据标注的稳定度的方式并不唯一,可以根据需要选择信息熵的方式来衡量该数据标注的稳定度。也可以是将数据进行聚类,将能表达数据所在类族的标签重要性的标签使其数据标注的稳定度相对较高
18.可选的,所述源数据和目标数据具有同一基础分类的标签;所述目标标注类型标签是在基础分类下的进一步精细粒度分类的标签。
19.由上,当预训练采用具有精细粒度分类标签标注数据作为训练集时,本技术可用于将大量的一般类别标签数据集生成精细粒度标签,并且结合上面的技术方案,即使具有精细粒度分类标签标注数据作为训练集不多,也能有效减少精细粒度识别的过拟合问题。
20.本技术还提供一种数据标注方法,包括:
21.采用至少两个结构不同的分类模型,以及
22.控制各所述分类模型执行一定次数的交替训练与数据标注,其中,进行所述交替训练与数据标注中,训练初始分类模型使用的数据中,部分数据具有目标标注类型标签;
23.其中,所述交替训练与数据标注过程中,当前所训练的分类模型所进行的当前训练与当前数据标注的步骤包括:获取前一训练的分类模型所重新标注标签的数据,并从中选择一部分数据训练当前分类模型,通过经训练后的当前分类模型对未被选择的另一部分数据重新标注标签。
24.由上,本技术采用各个分类模型交替训练和交替标注,实现渐进式的标签的自动标注,以及同时对分类模型的交替训练。通过该渐进式的迭代协同训练机制,可以通过在迭代过程中将自动标注后的大量标注数据引入分类模型训练过程,有效减小训练过程中的由于样本数据少导致的过拟合的产生,提升了识别性能。并且,在迭代协同训练过程中各个分类模型所输入的训练数据是不同的,因此也有效的避免了各个分类模型被训练的“近似”,
从而有效避免了标注数据标签的同质化。
25.可选的,进行所述交替训练与数据标注之前,还包括:通过具有目标标注类型标签标注数据的目标数据集预训练所述初始分类模型。
26.由上,通过对该分类模型的预训练,使其具有一定特性,通过使用具有目标标注类型标签的目标数据集预训练分类模型,可以使得该预训练后模型性能更高,且在后续迭代训练时速度更快地为源数据标注目标类型标签。
27.可选的,所述选择是根据各数据的标注的稳定度进行所述选择。
28.由上,可以保留数据标注的稳定度高的标签对应的数据作为训练集,去训练分类模型,使得训练效果较佳。
29.可选的,所述稳定度以信息熵进行衡量时,所述选择一部分数据包括:根据每个数据上标注的各个标签计算每个数据的数据标注的信息熵,并根据该信息熵值的排序进行选择;其中,所述信息熵值的大小与数据标注的稳定度的高低成类反比关系。
30.由上,计算数据标注的稳定度的方式并不唯一,可以根据需要选择信息熵的方式来衡量该数据标注的稳定度。
31.可选的,所述训练初始分类模型使用的数据具有同一基础分类的标签;所述目标标注类型标签是在基础分类下的进一步精细粒度分类的标签。
32.由上,当预训练采用具有精细粒度分类标签标注数据作为训练集时,本技术可用于将大量的一般类别标签数据集生成精细粒度标签,并且结合上面的技术方案,即使具有精细粒度分类标签标注数据作为训练集不多,也能有效减少精细粒度识别的过拟合问题。
33.本技术还提供了一种数据标注装置,包括:
34.调用模块,用于调用至少两个结构不同的分类模型;
35.第一预训练模块,用于使用具有目标标注类型标签的目标数据集预训练其中之一分类模型;
36.首次标注模块,用于将待标注的源数据集中的数据通过该预训练后的分类模型标注标签;
37.控制模块,用于控制各所述分类模型执行一定次数的交替训练与数据标注,其中,所述预训练后的分类模型和通过该预训练后的分类模型标注标签的数据作为进行所述交替训练与数据标注中的初始分类模型和标注标签的初始数据;其中,所述交替训练与数据标注过程中,当前所训练的分类模型所进行的当前训练与当前数据标注的步骤包括:获取前一训练的分类模型所重新标注标签的数据,并从中选择一部分数据训练当前分类模型,通过经训练后的当前分类模型对未被选择的另一部分数据重新标注标签。
38.由上,本技术采用各个分类模型交替训练和交替标注,实现渐进式的标签的标注以及同时对分类模型的训练。通过该渐进式的迭代协同训练机制,可以通过在迭代过程中将自动标注后的大量标注数据引入分类模型训练过程,有效减小识别过程中的由于样本数据少导致的过拟合的产生,提升了识别性能。且本技术通过使用预训练模块将具有目标标注类型标签的目标数据集预训练分类模型,可以使得该预训练后模型性能更高,且在后续迭代训练时速度更快地为源数据标注目标类型标签。并且,在迭代协同训练过程中各个分类模型所输入的训练数据是不同的,因此也有效的避免了各个分类模型被训练的“近似”,从而有效避免了标注数据标签的同质化。
39.可选的,所述选择是根据各数据的标注的稳定度进行所述选择。
40.由上,可以保留数据标注的稳定度高的标签对应的数据作为训练集,去训练分类模型,使得训练效果较佳。
41.可选的,所述稳定度以信息熵进行衡量时,所述选择一部分数据包括:
42.根据每个数据上标注的各个标签计算每个数据的数据标注的信息熵,并根据该信息熵值的排序进行选择;其中,所述信息熵值的大小与数据标注的稳定度的高低成类反比关系。
43.由上,计算数据标注的稳定度的方式并不唯一,可以根据需要选择信息熵的方式来衡量该数据标注的稳定度。
44.可选的,所述源数据和目标数据具有同一基础分类的标签;所述目标标注类型标签是在基础分类下的进一步精细粒度分类的标签。
45.由上,当预训练采用具有精细粒度分类标签标注数据作为训练集时,本技术可用于将大量的一般类别标签数据集生成精细粒度标签,并且结合上面的技术方案,即使具有精细粒度分类标签标注数据作为训练集不多,也能有效减少精细粒度识别的过拟合问题。
46.本技术还提供了另一种数据标注装置,包括:
47.调用模块,用于调用至少两个结构不同的分类模型;
48.控制模块,用于控制各所述分类模型执行一定次数的交替训练与数据标注,其中,进行所述交替训练与数据标注中,训练初始分类模型使用的数据中,部分数据具有目标标注类型标签;其中,所述交替训练与数据标注过程中,当前所训练的分类模型所进行的当前训练与当前数据标注的步骤包括:获取前一训练的分类模型所重新标注标签的数据,并从中选择一部分数据训练当前分类模型,通过经训练后的当前分类模型对未被选择的另一部分数据重新标注标签。
49.由上,本技术采用各个分类模型交替训练和交替标注,实现渐进式的标签的自动标注,以及同时对分类模型的交替训练。通过该渐进式的迭代协同训练机制,可以通过在迭代过程中将自动标注后的大量标注数据引入分类模型训练过程,有效减小识别过程中的由于样本数据少导致的过拟合的产生,提升了识别性能。并且,在迭代协同训练过程中各个分类模型所输入的训练数据是不同的,因此也有效的避免了各个分类模型被训练的“近似”,从而有效避免了标注数据标签的同质化。
50.可选的,还包括:第二预训练模块,用于通过具有目标标注类型标签标注数据的目标数据集预训练所述初始分类模型。
51.由上,本技术通过使用具有目标标注类型标签的目标数据集预训练分类模型,可以使得该预训练后模型性能更高,且在后续迭代训练时速度更快地为源数据标注目标类型标签。
52.可选的,所述选择是根据各数据的标注的稳定度进行所述选择。
53.由上,可以保留数据标注的稳定度高的标签对应的数据作为训练集,去训练分类模型,使得训练效果较佳。
54.可选的,所述稳定度以信息熵进行衡量时,所述选择一部分数据包括:根据每个数据上标注的各个标签计算每个数据的数据标注的信息熵,并根据该信息熵值的排序进行选择;其中,所述信息熵值的大小与数据标注的稳定度的高低成类反比关系。
55.由上,计算数据标注的稳定度的方式并不唯一,可以根据需要选择信息熵的方式来衡量该数据标注的稳定度。
56.可选的,所述初始分类模型使用的数据具有同一基础分类的标签;所述目标标注类型标签是在基础分类下的进一步精细粒度分类的标签。
57.由上,当预训练采用具有精细粒度分类标签标注数据作为训练集时,本技术可用于将大量的一般类别标签数据集生成精细粒度标签,并且结合上面的技术方案,即使具有精细粒度分类标签标注数据作为训练集不多,也能有效减少精细粒度识别的过拟合问题。
58.本技术还提供了一种精细粒度识别模型的训练方法,包括:
59.获取根据上述技术方案任一方法进行标注的具有精细粒度分类标签的源数据集;
60.使用标注有精细粒度分类标签的源数据集训练一分类模型,以获取训练后的具有精细粒度识别的分类模型。
61.可选的,还包括:获取标注有精细粒度分类标签的目标数据集,并用其再次训练所述分类模型。
62.由上,通过使用标注有精细粒度分类标签的目标数据集再次训练所述分类模型,即对其进行微调,可以提供该分类模型的精度。
63.本技术还提供了一种精细粒度识别模型的训练装置,包括:
64.第一获取模块,用于获取根据上述技术方案任一方法进行标注的具有精细粒度分类标签的源数据集;
65.第一训练模块,用于使用标注有精细粒度分类标签的源数据集训练一分类模型,以获取训练后的具有精细粒度识别的分类模型。
66.可选的,还包括:
67.第二获取模块,用于获取标注有精细粒度分类标签的目标数据集;
68.第二训练模块,用于使用该目标数据集再次训练所述分类模型。
69.由上,通过使用标注有精细粒度分类标签的目标数据集再次训练所述分类模型,即对其进行微调,可以提供该分类模型的精度。
70.本技术还提供了一种精细粒度识别方法,包括:
71.获取待识别的目标图像;
72.将所述待识别的目标图像输入至使用上述技术方案任一所述方法训练的分类模型中,通过所述分类模型对所述目标图像进行精细粒度识别。
73.可选的,该方法应用于以下之一:车辆自动驾驶系统中对所采集的图像的识别;移动终端对采集的图像的识别。
74.本技术还提供了一种精细粒度识别装置,包括:
75.图像获取模块,用于获取待识别的目标图像;
76.输入模块,用于将所述待识别的目标图像输入至使用上述技术方案任一所述方法训练的具有精细粒度识别的分类模型中,通过所述分类模型对所述目标图像进行精细粒度识别。
77.本技术还提供了一种计算设备,包括:
78.总线;
79.通信接口,其与所述总线连接;
80.至少一个处理器,其与所述总线连接;以及
81.至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行上述技术方案任一所述的方法。
82.本技术还提供了一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行上述技术方案任一所述的方法。
83.综上,除了上述所解决的技术问题外,本技术相对于具体实施方式中描述的现有技术来说,可以解决现有技术中的下述问题:
84.本技术相对于具体实施方式中描述的现有技术一,未采用双线性网络模型,因此可以实现低标注成本的自动标注数据。
85.本技术具体实施方式中描述的现有技术二,实现了通过较低的通过大量自动标注数据的引入,即迭代训练过程中所优选的标注标签对于的数据,有效减少因训练样本少导致的识别的过拟合的问题,提升了识别性能。尤其适用于对于精细粒度图像的识别过程的训练及其应用。
86.本技术具体实施方式中描述的现有技术三,未采用基于目标块检测方法进行自动识别的训练,不需要人对关键位置的标注,因此分类比较准确,且运算速度不受人的影响。
附图说明
87.图1为基于双线性卷积神经网络模型的示意图。
88.图2为基于注意力机制的神经网络模型的示意图。
89.图3为表示注意力机制定位关键区域的示意图。
90.图4为基于目标块检测方法的示意图。
91.图5a为数据标注方法的第一实施例的流程图。
92.图5b为数据标注方法的第二实施例的流程图。
93.图6为数据标注方法的具体实施方式的流程图。
94.图7为数据标注方法的流程图。
95.图8a为数据标注装置的第一实施例的示意图。
96.图8b为数据标注装置的第二实施例的示意图。
97.图9a为精细粒度识别模型的训练方法的流程图。
98.图9b为精细粒度分类标签标注以及利用标注后的数据训练获取精细粒度识别模型,并进一步地对训练后的模型进行微调的整体流程图。
99.图10为精细粒度识别模型的训练装置的示意图。
100.图11为精细粒度识别方法的流程图。
101.图12为精细粒度识别装置的示意图。
102.图13为计算设备的结构性示意性图。
具体实施方式
103.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
104.在以下的描述中,所涉及的术语“第一\第二\第三等”或模块a、模块b、模块c等,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
105.在以下的描述中,所涉及的表示步骤的标号,如s110、s120
……
等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
106.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
107.对本技术具体实施方式进行进一步详细说明之前,对本技术实施例中涉及的名词和术语,以及其在本技术中相应的用途\作用\功能等进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
108.精细粒度图像识别(fine grained visual classification,fgvc),指对一基础类别进行更进一步的区分。目前方法主要有以下两类:(1)基于图像重要区域定位的方法:该方法集中探讨如何利用弱监督的信息自动找到图像中有判别力的区域,从而达到精细化分类的目的。(2)基于图像精细化特征表达的方法:该方法提出使用高维度的图像特征(如:bilinear vector)对图像信息进行高阶编码,以达到准确分类的目的。
109.卷积神经网络(convolutional neural networks,cnn),是一类包含卷积计算且具有深度结构的前馈神经网络(feedforward neural networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(shift-invariant artificial neural networks,siann)”。常用的卷积神经网络包括vgg、resnet、iception、efficient net等。
110.精细粒度识别:指对一基础类别进行更进一步的区分。
[0111]“一般类别标签”:指具有基础分类的标签;“精细粒度分类标签”是指在基础分类下的进一步精细粒度分类的标签(为了更方便描述该精细粒度分类的标签在本技术中也称之为软标签);其中,例如,一般类别标签是指“车”,“精细粒度分类标签”为进一步地对车的精细粒度分类,例如,“车的品牌”。
[0112]
域迁移:指将一领域获得的信息作用到另一领域并产生增益。例如,本技术中将通过数据标注方法标注后的具有精细粒度识别的数据集作为训练集输入至分类模型中训练获取得到用于精细粒度识别的模型。
[0113]
外积:矩阵乘法。
[0114]
信息熵:信息熵是信息论中用于度量信息量的概念,一个系统越是有序,不确定性越小,信息熵越低;反之,一个系统越是混乱,不确定性越大,信息熵越高。具体地,在本技术中由于同一个数据可能会被标注多个不同的标签,因此通过计算对当前数据的数据标注的信息熵,以据此判断当前数据的数据标注的稳定度。信息熵的值大小代表了在当前该数据上的数据标注的稳定性程度,其值越小,代表标注不确定性程度低,在该数据的数据标注比较稳定,则可认为该数据标注的稳定度很高。相反,其值越大,表示当前数据的数据标注不
确定性高,在该数据的标注比较混乱,则可认为该数据的数据标注的稳定度较低。
[0115]
过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少。
[0116]
下面将结合附图,对本技术中的技术方案进行描述。
[0117]
现有技术一:如图1所示,为现有技术一的细粒度图像识别所应用的双线性卷积神经网络示意图。
[0118]
该方法的基本思路是,将两个分类模型(例如vgg16卷积神经网络)输出的特征图进行外积来提取高阶特征,这种高阶特征被证明了对于细粒度图像的分类是关键的,在vgg16卷积神经网络的基础上对于数据集cub-200-2011有将近10%的提升。
[0119]
该基于双线性卷积神经网络进行细粒度图像识别的工作流程为:
[0120]
第一步、输入图片:一般以摄像机拍摄的物体图像作为网络输入。
[0121]
第二步、提取图像特征:具体地将图像分别输入到两个vgg16卷积神经网络中训练,通过堆积的卷积、池化等操作提取图像的多通道特征。将两个vgg16卷积神经网络提取的特征进行外积得到图像的高阶特征。
[0122]
第三步、分类:具体地将模型得到的高阶图像特征通过全连接层降维,将softmax层的输出作为分类结果。
[0123]
现有技术一存在的缺陷:双线性网络模型能够挖掘到图像信息的高阶特征,这些高阶特征能够对细粒度分类任务产生很大的增益。但是由于两个网络输出的特征图维度很高,大量增加了模型参数,计算外积会耗费非常大的计算资源,这也是双线性模型非常大的弊端之一。
[0124]
现有技术二:如图2所示为现有技术二的细粒度图像识别所应用的具有注意力机制的分类模型的示意图。该现有技术二的方案是基于视觉注意力机制的方法,该方法是常用于细粒度分类任务的方法之一。一般来说,人类识别不同的物体都会首先观察物体间具有区分性的区域,以此来辨别不同的种类。视觉注意力机制由人类的视觉启发,将网络模型的注意力逐渐定位到具有关键区分性信息的区域,然后对其提取特征并用于分类,目前比较有代表性的模型如图2所示的分类模型的示意图。
[0125]
现有技术二的算法与传统跟踪算法的明显区别在于增加了视觉注意力机制这一模块,首先模型经过卷积、池化提取图像的多通道信息,然后经过由全局平均池化、全连接层等构成的注意力机制模块来定位到图像的关键位置,如图3示出了表示注意力机制定位关键区域的示意图。然后将提取的多个关键区域的特征进行比较并分类,最后得到图像的具体类别。
[0126]
现有技术二存在的缺陷:细粒度图像数据集因为标注困难导致训练样本较少,非常容易产生过拟合。在这种情况下视觉注意力机制可能不能够完全挖掘出具有关键信息的区域,反而定位到噪声部分,影响分类准确度。其次视觉注意力模块的设计参差不齐,同样存在增加模型复杂度的问题,在自动驾驶等对实时性要求较高的场景不适用。
[0127]
现有技术三:现有技术三的技术方案采用了基于目标块检测的方法,该方法也是常用于细粒度分类任务的方法之一,此方法基于检测,首先检测出目标整体的位置,然后再检测关键性区域位置并提取信息用于分类,与视觉注意力机制不同的是需要关键区域的标
注信息。该算法利用二维检测的方法准确的定位到目标体以及关键位置,如图4所示,二维框a是模型检测出鸟的位置,二维框b是检测出的背部以及头部,然后提取这些目标块的特征并作为分类层的输入得到最后的类别信息。
[0128]
part-based r-cnn就是利用以上思想对细粒度图像进行物体级别(例如鸟类)与其局部区域(头、身体等部位)的检测。该算法首先使用选择性搜索(selective search)在细粒度图像中产生目标或目标可能出现的候选框。然后使用类似r-cnn目标检测的流程,利用细粒度数据集中的目标(object)标注和部分(part)标注训练出三个检测模型。一个对应目标头部,一个对应目标背部,一个对应目标整体的检测。接下来将得到的目标块作为分类模型的输入,提取目标及部位的特征用于最后的分类。
[0129]
现有技术三存在的缺陷:首先,基于目标块检测的方法属于检测方法,模型的训练需要二维框的标注信息。对于细粒度分类任务来说,普通人对关键位置的标注是比较困难的,没有专业背景的情况下很难确定哪些位置是具有区分性的。另外模型的检测准确度是非常重要的一个方面,利用自底向上的区域产生方法会产生大量的无关区域,这会在很大程度上影响算法的运行速度,如果检测不准定位到噪声或者背景区域对于最后的分类影响非常大,造成分类的不准确。
[0130]
基于现有技术所存在的缺陷,例如,由于分类更加精细,非专家很难去辨别目标种类,数据标注困难,人工标注成本高,而使得数据标注样本过少,细粒度识别中因细粒度图像识别模型训练时由于数据标注样本少会造成训练后的模型在进行图像识别时过拟合,而使得识别的准确率欠佳的问题。因此,本技术提供了一种数据标注方法。具体地,本技术首次提出利用一般类别标签的领域迁移技术,使用低标注成本的一般类别标签增强精细粒度识别任务的性能,提出一种渐进式的迭代协同训练机制为大量的一般类别标签数据集生成精细粒度软标签,通过大量自动标注数据的引入有效减少精细粒度识别的过拟合的问题,提升了识别性能。下面对本技术进行介绍。
[0131]
数据标注方法的第一实施例:
[0132]
下面,参见图5a示出的流程图,对本技术的数据标注方法的第一实施例进行说明,包括以下步骤:
[0133]
s510a,采用至少两个结构不同的分类模型,以及使用具有目标标注类型标签的目标数据集预训练其中之一分类模型,且将待标注的源数据集中的数据通过该预训练后的分类模型标注标签。该步骤可选的使用图6中的s610至s611所描述的方式来实现。其中,所述源数据和目标数据具有同一基础分类的标签;所述目标数据的目标标注类型标签为:在基础分类下的进一步精细粒度分类的标签。
[0134]
其中,这里的分类模型可以采用多层神经网络(mlp)、循环神经网络(rnn)、卷积神经网络(cnn)等都可以用于进行数据的标签的标注(即分类)的模型,也可以采用决策树,集成树模型,贝叶斯分类器。其中,对于本技术所采用的各个分类模型,最好采用模型结构不同的分类模型,以避免自标注数据标签的同质化。例如一个采用rnn,一个采用cnn。又如都采用cnn,一个采用efficient net模型,另一个采用resnet模型。又如,还可以通过使各自的卷积层和池化层交迭的次数不同,或者池化层的池化方式不同(如一个采用平均池化方式,一个采用最大值的池化方式)来实现模型的不同。
[0135]
其中,所述使用具有目标标注类型标签的目标数据集训练其中之一分类模型,此
处的目标标注类型标签可以是在基础分类下的进一步精细粒度分类的标签。其中具有精细粒度分类标签标注数据作为训练集,是为了实现精细粒度分类标签的标注。而通过对该分类模型的预训练,可以使得该预训练后模型性能更高,且在后续训练时速度更快。
[0136]
s520a,控制各所述分类模型执行一定次数的交替训练与数据标注,其中,所述预训练后的分类模型和通过该预训练后的分类模型标注标签的数据作为进行所述交替训练与数据标注中的初始分类模型和标注标签的初始数据;
[0137]
其中,所述交替训练与数据标注过程中,当前所训练的分类模型所进行的当前训练与当前数据标注的步骤包括:获取前一训练的分类模型所重新标注标签的数据,并从中选择一部分数据训练当前分类模型,通过经训练后的当前分类模型对未被选择的另一部分数据重新标注标签。该步骤可选的使用图6中的s612至s618所描述的方式来实现。
[0138]
该步骤将在具体实施方式中再进一步说明。通过本步骤,来实现各个分类模型交替训练和交替标注,实现渐进式的标签的标注。当分类模型数量为两个时,则该两个分类模型上交替运行。当为两个以上时,可以有规律的交替运行实现本技术所述的交替训练和交替生成标签,例如依次且构成循环(如cnn1-cnn2-cnn3-cnn1),或者依次往返(cnn1-cnn2-cnn3-cnn2-cnn1),也可以无规律交替运行。通过该渐进式的迭代协同训练机制,可以通过在迭代过程中大量自动标注数据的引入,有效减小识别过程中的过拟合。尤其当用于为大量的一般类别标签数据集生成精细粒度软标签时,能有效减少精细粒度识别的过拟合,提升了识别性能。其中交替训练与数据标注的次数可以灵活设置,次数可以为经验值,使既不影响对当前分类模型的效果的训练,又不会导致迭代次数过多。
[0139]
其中,所述选择是根据各数据的标注的稳定度进行所述选择。其中,稳定度可以以信息熵进行衡量,并根据该信息熵的熵值的大小选择一定数量的所述上次标注标签的数据;还可以进一步结合其他方式确定每个数据的数据标注的稳定度,例如将源数据集中的数据进行聚类,将能表达数据所在类族的标签重要性的标签使其数据标注的稳定度相对较高。
[0140]
其中,所述稳定度以信息熵进行衡量时,所述选择一部分数据包括:根据每个数据上标注的各个标签计算每个数据的数据标注的信息熵,并根据该信息熵值的排序进行选择;其中,所述信息熵值的大小与数据标注的稳定度的高低成类反比关系。
[0141]
其中,关于信息熵的计算公式为:
[0142][0143]
其中,x表示当前数据;xi表示当前数据的第i个标签;p(xi)表示当前数据x属于第i个标签的概率;n表示当前数据的标注的标签总数;h(x)表示当前数据的数据标注的不确定性程度。其值越小,代表当前数据的数据标注的稳定性程度越高。相反,其值越大,代表当前数据的数据标注的稳定性程度越低。
[0144]
其中,根据信息熵值排序由小到大排序后,选择的数据的数量,可以一定值,如前100个,也可以为一比例值,如:源数据中数据的数量/n,其中,n根据经验设定,n的值≥(数据标注过程中所应用的不同结构的分类模型的数量 1)。例如,当数据标注过程中用到的不同结构的分类模型的数量为2时,n可以是3,或者是根据经验设定的大于3的值。
[0145]
其中,还可以通过设定信息熵值的阈值进行数据的选择,例如选择低于某一设定
阈值的数据及其对应被标注的标签。
[0146]
该选择的数据的数量值是一个平衡之后的值,既不影响对当前分类模型的效果的训练,又不会导致迭代次数过多。
[0147]
数据标注方法的第二实施例:
[0148]
下面,参见图5b示出的流程图,对本技术的数据标注方法的第二实施例进行说明,包括以下步骤:
[0149]
s520b,采用至少两个结构不同的分类模型,以及控制各所述分类模型执行一定次数的交替训练与数据标注,其中,进行所述交替训练与数据标注中,训练初始分类模型使用的数据(相当于实施例一中的源数据集),部分数据具有目标标注类型标签;所述初始分类模型使用的数据具有同一基础分类的标签;所述初始分类模型使用的数据中的部分数据还包括目标标注类型标签为:在基础分类下的进一步精细粒度分类的标签。
[0150]
其中,所述交替训练与数据标注过程中,当前所训练的分类模型所进行的当前训练与当前数据标注的步骤包括:获取前一训练的分类模型所重新标注标签的数据,并从中选择一部分数据训练当前分类模型,通过经训练后的当前分类模型对未被选择的另一部分数据重新标注标签。
[0151]
其中,分类模型的说明如前一实施例所述,此处不再赘述。
[0152]
由上,当如实施例一中的源数据集中具有部分目标标注类型标签的数据时,当通过上述方式交替训练时,该具有部分目标标注类型标签的数据会在首次或前几次交替训练时,被择优选择去训练对应的分类模型。此处的目标标注类型标签可以是在基础分类下的进一步精细粒度分类的标签。其中,所述使用具有目标标注类型标签的目标数据集训练其中之一分类模型其中具有精细粒度分类标签标注数据作为训练集,是为了实现精细粒度分类标签的标注。
[0153]
当然也可以选择一些具有目标标注类型标签的目标数据集对分类模型进行预训练。而通过对该分类模型的预训练,可以使得该预训练后模型性能更高,且在后续训练时速度更快。
[0154]
通过本步骤,来实现各个分类模型交替训练和交替标注,实现渐进式的标签的标注。当分类模型数量为两个时,则该两个分类模型上交替运行。当为两个以上时,可以有规律的交替运行实现本技术所述的交替训练和交替生成标签,例如依次且构成循环(如cnn1-cnn2-cnn3-cnn1),或者依次往返(cnn1-cnn2-cnn3-cnn2-cnn1),也可以无规律交替运行。通过该渐进式的迭代协同训练机制,可以通过在迭代过程中大量自动标注数据的引入,有效减小识别过程中的过拟合。尤其当用于为大量的一般类别标签数据集生成精细粒度软标签时,能有效减少精细粒度识别的过拟合,提升了识别性能。
[0155]
其中,所述选择是根据各数据的标注的稳定度进行所述选择,具体可参见数据标注方法的第一实施例中的描述,不再赘述。
[0156]
数据标注方法的第一具体实施方式:
[0157]
下面参照图6所示的流程图,对本技术提供的一种数据标注方法的第一具体实施方式进行介绍,其包括以下步骤:
[0158]
s610,首先选择一卷积神经网络(分类模型),为了描述方便将其称之为第一卷积神经网络(后述简称为cnn1),将目标数据集作为训练集输入至该cnn1上对该cnn1进行预训
练。
[0159]
具体地,所选择的卷积神经网络(cnn)包括有可用于提取特征的卷积层和池化层,还包括有用于训练分类的全连接层和分类器层。其中,卷积层和池化层可交迭连接,全连接层的输入端与池化层的输出端连接,全连接层的输出端与分类器层连接。在选择一cnn1后,还需构建用于预训练该cnn1的目标数据集,在本实施例中目标数据集为图像样本集。其中需要说明的是,考虑到cnn对识别任务的差异,构建的图像样本集应于其识别任务匹配。举例来说,当cnn1用于识别各车辆特征为车辆图片标注标签时,该图像样本集应包括有大量的不同的车的图像;当cnn1用于识别交通标志图像时,该图像样本集应包括有不同的交通标志图像;也就是说,当cnn1用于识别物品时,该图像样本集应包括有具备物品影像的图像。同时,这些图像的获取方式可采用多种形式,例如,通过数据库或者网络渠道直接获取标准标注的图像信息,也可采用拍摄终端或采集设备直接拍摄或采集获取;当然,在获得到这些图像信息之后,采用人工标注和智能标注的方式获取这些图像信息对应的分类标注,以便形成可用于对cnn1进行预训练的图像样本集。
[0160]
其中,预训练的好处是预训练后模型性能更高,且在后续的训练过程中训练速度更快。其中,由于目标数据集包括的图片的类别越多,所预训练出的cnn1在后续识别待识别的图片时,所能够支持识别的图片的所包含的类别也越多,所以目标数据集为已经标注好的在一般分类的基础上还具有更精细的分类标注(为了更方便描述该更精细的分类标注在本技术中也称之为软标签)的数据集,通常来说目标数据集的数据量可使用的相对较少,例如本文在后述的实验数据及效果示出的测试数据中,目标数据集(即训练集)使用了不到一万张的图片样本。
[0161]
s611,将源数据集输入至预训练后的cnn1中,为源数据集中的各个数据分别生成各自对应的各个软标签。
[0162]
其中,本实施例中的源数据集使用了具有基础分类的一般类别标签的数据集,其不具有更精细的分类标注,该源数据集的数据量可使用的较多。
[0163]
其中,源数据集的各数据可通过网络渠道直接获取图像信息,也可采用拍摄终端或采集设备直接拍摄或采集获取。
[0164]
由于训练后的cnn1具备对源数据进行标注软标签的能力,因此源数据集的各数据输入至预训练后的cnn1中,cnn1会为源数据集的各个数据生成软标签。
[0165]
另外,源数据的各数据也可以不具有一般类别标签,而经由cnn1为源数据集生成软标签时同时生成一般类别标签,但该源数据的各数据需要与目标数据集中的数据属于一个基础类别。
[0166]
s612,根据上一步中的源数据集的各个数据的软标签的信息计算各数据的数据标注的信息熵,根据信息熵的熵值从小到大排序并根据排序的顺序从前往后选择指定数量的标注有各个软标签的数据。
[0167]
其中,所述指定数量可以为:(源数据中数据的数量)/n,其中,n根据经验设定,n的值≥(数据标注过程中所应用的不同结构的卷积神经网络的数量 1)。
[0168]
其中,关于信息熵的计算公式为:
[0169]
[0170]
其中,x表示当前数据;x
i
表示当前数据的第i个标签;p(x
i
)表示当前数据x属于第i个标签的概率;n表示当前数据的标注的标签总数;h(x)表示当前数据的数据标注的不确定性程度。其值越小,代表当前数据的数据标注的稳定性程度越高。相反,其值越大,代表当前数据的数据标注的稳定性程度越低。
[0171]
下面对数据x属于第i个标签的概率p(x
i
)的获得方式进一步说明如下,其中以步骤s611中的源数据集中的一个数据为例进行说明:在步骤s611中,当该数据输入预训练后的cnn1,cnn1会在其输出层(如图1示出的softmax层)生成对应各个软标签的概率,即上述p(x
i
)。
[0172]
另外,还可以结合其他方式,例如将源数据集中的数据进行聚类,将能表达数据所在类族的标签重要性的标签使其数据标注的稳定度相对较高。
[0173]
s613,选择第二卷积神经网络(分类模型,后述简称为cnn2),将上一步选择的标注有各个软标签的数据作为训练集输入至cnn2中训练所述cnn2。
[0174]
其中,可选的,cnn2与cnn1使用不同模型的cnn,以避免自标注数据标签的同质化。例如,cnn1采用efficient net时,cnn2可以采用resnet或其他模型。又如,当cnn2与cnn1都采用efficient net时,则可以通过使各自的卷积层和池化层交迭的次数不同,或者池化层的池化方式不同(如一个采用平均池化方式,一个采用最大值的池化方式)来实现模型的不同。
[0175]
s614,将当前余下未被选择的数据输入至经上一步训练后的cnn2中,由cnn2为当前余下未选择的各个数据分别更新软标签。
[0176]
其中,这里的更新软标签即为各个数据更新替换为最新的分类标注。其中,更新后的软标签也同样包括各个软标签所对应的概率。
[0177]
s615,计算上一步中余下未被选择的数据更新的软标签的信息熵,从小到大排序并根据排序的顺序从前往后选择指定数量的标注有各个软标签的数据。
[0178]
该步骤具体可参见s612,不再赘述。
[0179]
s616,将上一步中选择的标注有各个软标签的数据作为训练集输入至cnn1上训练,以对cnn1再次训练。
[0180]
s617,将当前余下未被选择的数据输入至经上一步再次训练后的cnn1中,以为当前余下未被选择的各个数据分别更新软标签。
[0181]
该步骤可参见s614,不再赘述。
[0182]
s618,计算当前余下未被选择的数据更新的软标签的信息熵,从小到大排序并根据排序的顺序从前往后选择指定数量的标注有各个软标签的数据,并返回执行s613。
[0183]
需要说明的是,在上述步骤执行过程中,例如在s615、s618排序并选择指定数量的标注有各个软标签的数据的过程中,当无指定数量可选时,即表示对源数据集中的各个数据均已经完成软标签的标注,不再存在未有软标签的数据,则可以结束本次流程。
[0184]
数据标注方法的第二具体实施方式:
[0185]
上述第一具体实施方式以两个cnn为例对本技术方法进行说明。还可以设置多个不同的cnn来实现本技术,下面以三个cnn为例进行说明,简化起见,主要描述不同之处,且下述各个步骤中的详细步骤可参见数据标注方法第一具体实施方式。参见图7示出的流程图,采用三个cnn时,数据标注方法包括以下步骤:
[0186]
s710-s715,与s610-s615对应步骤相同。
[0187]
s716,将上一步中选择的标注有各个软标签的数据作为训练集输入至第三卷积神经网络(后述简称为cnn3)上对cnn3进行训练。
[0188]
s717,将当前余下未被选择的数据输入至经上一步训练后的cnn3中,以为当前余下未被选择的各个数据分别更新软标签。
[0189]
s718,计算当前余下未被选择的数据更新的软标签的信息熵,从小到大排序并根据排序的顺序从前往后选择指定数量的标注有各个软标签的数据,并执行下一步。
[0190]
s719-s721,与s616-s618对应步骤相同。
[0191]
需要说明的是,在上述步骤执行过程中,例如在s715、s718、s721排序并选择指定数量的标注有各个软标签的数据的过程中,当无指定数量可选时,即表示对源数据集中的各个数据均已经完成软标签的标注,则可以结束本次流程。
[0192]
由上,当将s713-s715作为cnn2的一组处理,将s716-s718作为cnn3的一组处理,将s719-s721作为cnn1的一组处理,可以看出,该数据标注方法第二具体实施方式中,三个cnn依次交替并构成循环的方式实现所述数据标注的处理,即cnn2-cnn3-cnn1-cnn2的顺序。而实际上,执行顺序并没有特定要求,例如从cnn1执行后也可以经逆次序交替,如cnn2-cnn3-cnn1-cnn3-cnn2的顺序。
[0193]
对应本技术的数据标注方法,本技术还相应的提供了数据标注装置,该装置所包含的各个模块的功能或用途的实现方式,以及有益效果,可参见数据标注方法的各个实施例,故在介绍该装置时不再赘述。
[0194]
数据标注装置的第一实施例:
[0195]
参见如图8a示出的装置的示意图,第一实施例中本技术的数据标注装置包括:
[0196]
调用模块840a,用于调用至少两个结构不同的分类模型;
[0197]
第一预训练模块810a,用于使用具有目标标注类型标签的目标数据集预训练其中之一分类模型;其中,所述目标标注类型标签包括:在基础分类下的具有精细粒度分类的标签。
[0198]
首次标注模块820a,用于将待标注的源数据集中的数据通过该预训练后的分类模型标注标签;
[0199]
控制模块830a,用于控制各所述分类模型执行一定次数的交替训练与数据标注,其中,所述预训练后的分类模型和通过该预训练后的分类模型标注标签的数据作为进行所述交替训练与数据标注中的初始分类模型和标注标签的初始数据;其中,所述交替训练与数据标注过程中,当前所训练的分类模型所进行的当前训练与当前数据标注的步骤包括:获取前一训练的分类模型所重新标注标签的数据,并从中选择一部分数据训练当前分类模型,通过经训练后的当前分类模型对未被选择的另一部分数据重新标注标签。
[0200]
其中,所述选择是根据各数据的标注的稳定度进行所述选择。
[0201]
其中,所述稳定度以信息熵进行衡量时,所述选择一部分数据包括:根据每个数据上标注的各个标签计算每个数据的数据标注的信息熵,并根据该信息熵值的排序进行选择;其中,所述信息熵值的大小与数据标注的稳定度的高低成类反比关系。
[0202]
其中,所述源数据和目标数据具有同一基础分类的标签;所述目标数据还包括目标标注类型标签,所述目标标注类型标签是在基础分类下的进一步精细粒度分类的标签。
[0203]
数据标注装置的第二实施例
[0204]
参见如图8b示出的装置的示意图,第二实施例中本技术的数据标注装置包括:
[0205]
调用模块840b,用于调用至少两个结构不同的分类模型;
[0206]
控制模块830b,用于控制各所述分类模型执行一定次数的交替训练与数据标注,其中,进行所述交替训练与数据标注中,训练初始分类模型使用的数据中,部分数据具有目标标注类型标签;
[0207]
其中,所述交替训练与数据标注过程中,当前所训练的分类模型所进行的当前训练与当前数据标注的步骤包括:获取前一训练的分类模型所重新标注标签的数据,并从中选择一部分数据训练当前分类模型,通过经训练后的当前分类模型对未被选择的另一部分数据重新标注标签。
[0208]
其中,所述装置还包括:第二预训练模块810b,用于通过具有目标标注类型标签标注数据的目标数据集预训练所述初始分类模型。
[0209]
其中,所述选择是根据各数据的标注的稳定度进行所述选择。
[0210]
其中,所述根据标签计算获得的各数据的标注的稳定度进行所述选择包括:根据每个数据上标注的各个标签计算每个数据的数据标注的信息熵,并根据该信息熵的熵值的排序选择一部分的前一训练的分类模型所重新标注标签的数据;其中,所述信息熵的值的大小与数据标注的稳定度的高低成类反比关系。
[0211]
其中,所述初始分类模型使用的数据具有同一基础分类的标签;所述目标标注类型标签是在基础分类下的进一步精细粒度分类的标签。
[0212]
精细粒度识别模型的训练方法的实施例:
[0213]
参见如图9a示出的流程图,本技术的精细粒度识别模型的训练方法,包括:
[0214]
s910,获取根据前述的数据标注方法进行标注的具有精细粒度分类标签的源数据集。
[0215]
s920,使用标注有精细粒度分类标签的源数据集训练一分类模型,以获取训练后的具有精细粒度识别的分类模型。
[0216]
s930,为了提高模型的精度,还增设本步骤,包括:获取标注有精细粒度分类标签的目标数据集,并用其再次训练所述分类模型。以对所述分类模型进行微调。
[0217]
如图9b所示,包含了对源数据的软标签(精细粒度分类标签)的标注过程,以及利用标注好的数据进行精细粒度识别模型的训练,以及进一步地通过目标数据集继续微调的整体的流程。具体地,如图9b中的使用至少两个结构不同的分类模型卷积神经网路efficient net b5和卷积神经网路efficient net b7,使用具有目标标注类型标签的目标数据集预训练其中之一分类模型,且将待标注的源数据集中的数据通过该预训练后的分类模型标注标签;并通过交替训练获取标注有软标签的源数据集。以及进一步的对应s920使用标注有软标签的源数据集训练一分类模型(如图9b中resnet101),以获取训练后的具有精细粒度识别的分类模型。以及进一步的对应s930使用对目标数据集微调训练后的具有精细粒度识别的分类模型。
[0218]
精细粒度识别模型的训练装置的实施例:
[0219]
参见如图10示出的装置示意图,本技术精细粒度识别模型的训练装置,包括:
[0220]
第一获取模块1010,用于获取根据前述数据标注方法进行标注的具有精细粒度分
类标签的源数据集。
[0221]
第一训练模块1020,用于使用标注有精细粒度分类标签的源数据集训练一分类模型,以获取训练后的具有精细粒度识别的分类模型。
[0222]
进一步地,为了提高模型的精度,还包括:
[0223]
第二获取模块1030,用于获取标注有精细粒度分类标签的目标数据集;
[0224]
第二训练模块1040,用于使用该目标数据集再次训练所述分类模型。
[0225]
精细粒度识别方法的实施例:
[0226]
参见如图11示出的精细粒度识别方法的流程图,本技术精细粒度识别方法包括:
[0227]
s1110、获取待识别的目标图像。
[0228]
s1120、将所述待识别的目标图像输入至前述训练的分类模型中,通过所述分类模型对所述目标图像进行精细粒度识别。
[0229]
精细粒度识别装置的实施例:
[0230]
参见如图12示出的示意图,本技术的精细粒度识别装置包括:
[0231]
图像获取模块1210,用于获取待识别的目标图像;
[0232]
输入模块1220,用于将所述待识别的目标图像输入前述训练的分类模型中,通过所述分类模型对所述目标图像进行精细粒度识别。
[0233]
下面结合具体地应用场景说明本技术的数据标注方法及装置;精细粒度识别模型的训练方法及装置;精细粒度识别方法的应用,例如:
[0234]
应用场景1:车辆识别
[0235]
车辆自动驾驶系统的目标识别,自动驾驶是当前非常热门的研究方向。随着经济的发展,全球汽车数量不断增加,交通拥堵、车位难寻、打车困难、事故多发的现象越来越多。因此,为了解决以上问题,自动驾驶应运而生。
[0236]
自动驾驶系统主要包括视频读取、目标检测、目标跟踪、视觉测距、多传感器融合以及规控六个部分。本技术主要作用于目标检测阶段,通过对目标检测模型检测出的目标进行细粒度识别。在自动驾驶行为中通常存在对于车辆的检测,包括2d以及3d检测,对于车辆的精细粒度识别有助于2d框或者3d框的回归,提高车辆检测的准确度。但是现有的精细粒度识别的模型由于在模型训练时,训练集缺少精细粒度标注的样本,从而导致训练后的精细粒度识别的模型在进行识别时出现过拟合,从而影响识别的精确度。并且,当收集训练用的数据后,也需要进行大量的数据标注,如果全部都由人工标注的话成本会很高,对于3d标注来说非常困难。本技术提出的数据标注方法及装置技术能够为数据生成标注信息,从而减少人工标注成本,减少标注的错误率。且标注后的具有精细粒度标注的样本作为训练集用于训练一分类模型,从而获取得到具有更优的分类效果的精细粒度识别的模型。进一步地将待识别的图像输入至该模型中,则可以获取该图像的精细粒度的识别。
[0237]
具体地,例如,当需要对车辆进行精细粒度的识别时,精细粒度的识别例如车标识别、车辆的制造商、款式及生产年代等信息的识别,上述的精细粒度的识别可以是同时识别,为了方便说明,本实施例仅以车标识别为例,当需要对车辆进行车标识别时,需要使用具有车标识别的精细粒度识别的模型,该模型需要通过大量的标注有车标的数据的作为训练集训练一分类模型(其中该分类模型可以是现有的但是识别效果不佳的一车标识别模型),其中,前述的大量的标注有车标的数据的获取可以通过本技术的数据标注的方法获
取,具体地,例如:
[0238]
s1,首先选择一卷积神经网络cnn1,以及选择一由标注有车标的数据组成的目标数据集(目标数据集的数据量可使用的相对较少),将该目标数据集作为训练集输入至该cnn1上对该cnn1进行预训练。
[0239]
s2,选择待标注的源数据集,该源数据集中的数据具有同一基础分类标签-车-标签标注(源数据集的数据量可使用的较多),将该源数据集输入至预训练后的cnn1中,为源数据集中的各个数据分别生成各自对应的各个车标标签。由于训练后的cnn1具备对源数据进行标注车标标签的能力,因此源数据集的各数据输入至预训练后的cnn1中,cnn1会为源数据集的各个数据生成各个车标标签。
[0240]
s3,根据s2中的源数据集的各个数据的各个车标标签的信息,计算各数据的数据标注的信息熵,根据信息熵的熵值从小到大排序并根据排序的顺序从前往后选择指定数量的标注有各个车标标签的数据。
[0241]
其中,所述指定数量可以为:源数据中的数据的数量/n,其中,n根据经验设定,n的值≥(数据标注过程中所应用的不同结构的卷积神经网络的数量 1)。例如,本实施例中在进行数据标注的过程中要用到2个不同的卷积神经网络。所述n的值可以是3,或者根据经验值进行设定的大于3的值。
[0242]
其中,关于s3中信息熵的计算公式为:
[0243][0244]
其中,x表示当前数据;x
i
表示当前数据的第i个标签;p(x
i
)表示当前数据x属于第i个标签的概率;n表示当前数据的标注的标签总数;h(x)表示当前数据的数据标注的不确定性程度。其值越小,代表当前数据的数据标注的稳定性程度越高。相反,其值越大,代表当前数据的数据标注的稳定性程度越低。
[0245]
另外,还可以结合其他方式,例如将源数据集中的数据进行聚类,将能表达数据所在类族的标签重要性的标签使其数据标注的稳定度相对较高。
[0246]
s4,选择第二卷积神经网络cnn2,将s3选择的标注有各个车标标签的数据作为训练集输入至cnn2中训练所述cnn2。
[0247]
其中,可选的,cnn2与cnn1使用不同模型的cnn,以避免自标注数据标签的同质化。例如,cnn1采用efficient net时,cnn2可以采用resnet或其他模型。又如,当cnn2与cnn1都采用efficient net时,则可以通过使各自的卷积层和池化层交迭的次数不同,或者池化层的池化方式不同(如一个采用平均池化方式,一个采用最大值的池化方式)来实现模型的不同。
[0248]
s5,将当前余下未被选择的数据输入至经s4训练后的cnn2中,由cnn2为当前余下未选择的各个数据分别更新车标标签。
[0249]
其中,这里的更新车标标签即为各个数据更新替换为最新的分类标注。其中,更新后的车标标签也同样包括各个车标标签所对应的概率。
[0250]
s6,计算s5中余下未被选择的数据的更新的车标标签的信息熵,从小到大排序并根据排序的顺序从前往后选择指定数量的标注有各个车标标签的数据(此处以及之后每次选择的指定数量都与s3中的数量相同)。
[0251]
s7,将s6中选择的标注有各个车标标签的数据作为训练集输入至cnn1上训练,以对cnn1再次训练。
[0252]
s8,将s6余下未被选择的数据输入至经s7再次训练后的cnn1中,以为s6余下未被选择的各个数据分别更新车标标签。当n值设定为3时,则结束车标标签标注流程。当n值设定为其他大于3的值时,则执行s9。
[0253]
s9,计算s8余下未被选择的数据的更新的车标标签的信息熵,从小到大排序并根据排序的顺序从前往后选择指定数量的标注有各个车标标签的数据,并返回执行s8。
[0254]
需要说明的是,在上述步骤执行过程中,排序并选择指定数量的标注有各个车标标签的数据的过程中,当无指定数量可选时,即表示对源数据集中的各个数据均已经完成车标标签的标注,则可以结束车标标签标注流程。
[0255]
在获取得到上述的标注有车标标注的数据后,利用该数据作为训练集训练一分类模型(其中该分类模型可以是现有的但是识别效果不佳的一车标识别模型)以获取具有车标识别的精细粒度识别的模型,进一步地,为了提高模型的精度,还可以增设本步骤,包括:将标注有车标标注分类标签的目标数据集,再次训练所述分类模型,以对所述分类模型进行微调。再将待识别的车辆的图片输入至该具有车标识别的精细粒度识别的模型中进行车标识别。
[0256]
本技术可以获取大量的车标标注数据用于训练获取具有车标识别的精细粒度识别的模型,从而避免了现有的精细粒度识别的模型由于在模型训练时,训练集缺少精细粒度标注的样本,从而导致训练后的精细粒度识别的模型在进行识别时出现过拟合,从而影响识别的精确度的问题。
[0257]
应用场景2:手机终端
[0258]
随着国民经济的快速增长、社会的迅速进步和国力的不断增强,人们对于日常生活娱乐有了更多的要求,手机摄像功能日益增多。本技术能够显著提升手机终端摄像识别物体的准确率,比如摄像头下的食物、花、鸟、狗等基础类别下,再进一步地进行食物类别,花的类别、鸟的类别、狗的类别等细粒度识别,可以解决因为外观、颜色等特征相似导致物体识别困难的问题。
[0259]
现有的精细粒度识别的模型(食物类别,花的类别、鸟的类别、狗的类别等细粒度识别模型)由于在模型训练时,训练集缺少精细粒度标注的样本,从而导致训练后的精细粒度识别的模型在进行识别时出现过拟合,从而影响识别的精确度。
[0260]
因此,可以通过本技术的数据标注,扩充训练样本,例如对应分别扩充食物类别,花的类别、鸟的类别、狗的类别的数据标注样本,然后将大量的标注后的数据用于分别训练精细粒度识别的模型,并将分别训练获取的精细粒度识别的模型分别用于食物类别,花的类别、鸟的类别、狗的类别的识别。从而避免了现有的精细粒度识别的模型由于在模型训练时,训练集缺少精细粒度标注的样本,从而导致训练后的精细粒度识别的模型在进行识别时出现过拟合,从而影响识别的精确度的问题。
[0261]
应用场景3:交通标志识别
[0262]
交通标识包含丰富的道路交通信息,为驾驶员提供警示、指示等辅助信息,对减轻驾驶员的驾驶压力、降低道路的交通压力、减少交通事故的发生率起着重要的辅助作用。如果完全依靠驾驶员注意和发现交通标识并做出正确的反应,难免会增加驾驶员的负担,加
速疲劳,严重地可能导致交通事故。交通标志作为道路行驶车辆行为准则的指引,包含限速、直行、转弯等信息。交通标识识别主要是通过安装在车辆上的摄像机采集道路上的交通标识信息,传送到图像处理模块进行标识检测和识别,并根据识别结果做出不同的应对措施。交通标识识别可以及时地向驾驶员传递重要的交通信息(例如限速、禁止超车等),并指导驾驶员做出合理的反应,从而减轻了驾驶压力,缓解城市交通压力,有利于道路交通安全。因此,精确高效且实时的交通标识识别是未来驾驶的趋势所在。
[0263]
在交通标志的识别中基础类别是指交通标志,精细粒度是指识别限速、直行、转弯等标识信息,现有的交通标志的精细粒度识别的模型由于在模型训练时,训练集缺少精细粒度标注的样本,从而导致训练后的精细粒度识别的模型在进行识别时出现过拟合,从而影响识别的精确度。
[0264]
因此,可以通过本技术的数据标注,扩充训练样本,例如交通标志中的限速、直行、转弯等标识信息数据标注样本,然后将大量的标注后的数据用于训练精细粒度识别的模型,并将训练获取的精细粒度识别的模型用于交通标志的精细粒度的识别。从而避免了现有的精细粒度识别的模型由于在模型训练时,训练集缺少精细粒度标注的样本,从而导致训练后的精细粒度识别的模型在进行识别时出现过拟合,从而影响识别的精确度的问题。
[0265]
本技术的实验数据及效果
[0266]
为了公平比较各种细粒度识别算法的优劣,本技术在公测数据集cub-200-2011、stanford cars进行训练及测试。cub-200-2011是鸟类数据集,共200个种类,11788张图片,其中5994张图片作为训练集,5794张图片作为测试集,其中鸟为基础分类,鸟的种类为精细粒度分类。stanford cars是车辆数据集,共196类,16185张图片,其中8144张图片作为训练集,8041张图片作为测试集,其中车为基础分类,车的种类为精细粒度分类。
[0267]
本技术提出的方法在以上两个公测数据集进行实验,结果如表1所示,目前已经达到另个数据集的领先水平,在没有增加人工标注成本以及模型复杂度的情况下,通过加入自标注数据的训练已经达到甚至超过了使用人工标注训练的性能。(注:下表1中,*表示使用额外数据及标注信息)用额外数据及标注信息)表1
[0268]
图13是本技术实施例提供的一种计算设备5000的结构性示意性图。该计算设备5000包括:处理器5010、存储器5020、通信接口5030、总线5040。
[0269]
应理解,该图所示的计算设备5000中的通信接口5030可以用于与其他设备之间进行通信。
[0270]
其中,该处理器5010可以与存储器5020连接。该存储器5020可以用于存储该程序代码和数据。因此,该存储器5020可以是处理器5010内部的存储单元,也可以是与处理器5010独立的外部存储单元,还可以是包括处理器5010内部的存储单元和与处理器5010独立的外部存储单元的部件。
[0271]
可选的,计算设备5000还可以包括总线5040。其中,存储器5020、通信接口5030可以通过总线5040与处理器5010连接。总线5040可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。所述总线5040可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
[0272]
应理解,在本技术实施例中,该处理器5010可以采用中央处理单元(central processing unit,cpu)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器5010采用一个或多个集成电路,用于执行相关程序,以实现本技术实施例所提供的技术方案。
[0273]
该存储器5020可以包括只读存储器和随机存取存储器,并向处理器5010提供指令和数据。处理器5010的一部分还可以包括非易失性随机存取存储器。例如,处理器5010还可以存储设备类型的信息。
[0274]
在计算设备5000运行时,所述处理器5010执行所述存储器5020中的计算机执行指令执行上述方法的操作步骤。
[0275]
应理解,根据本技术实施例的计算设备5000可以对应于执行根据本技术各实施例的方法中的相应主体,并且计算设备5000中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
[0276]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0277]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0278]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0279]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0280]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0281]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0282]
本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种多样化问题生成方法,该方法包括上述各个实施例所描述的方案中的至少之一。
[0283]
本技术实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0284]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0285]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0286]
可以以一种或多种程序设计语言或其组合来编写用于执行本技术操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在
涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0287]
注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,均属于本技术保护范畴。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献