可左右滑动选省市

训练数据的获取方法和装置、模型训练方法和装置

更新时间:2024-07-01
训练数据的获取方法和装置、模型训练方法和装置 专利申请类型:实用新型专利;
地区:浙江-杭州;
源自:杭州高价值专利检索信息库;

专利名称:训练数据的获取方法和装置、模型训练方法和装置

专利类型:实用新型专利

专利申请号:CN202111024304.8

专利申请(专利权)人:支付宝(杭州)信息技术有限公司
权利人地址:浙江省杭州市西湖区西溪路556号8层B段801-11

专利发明(设计)人:刘菁菁,宫明明,郑霖

专利摘要:本说明书实施例提供了一种训练数据的获取方法和装置以及模型训练的方法及装置。在获取训练数据时,利用第一标注数据,训练第一初始模型;将第一无标注数据输入第一初始模型,根据第一初始模型对每一个第一无标注数据的识别结果,对每一个第一无标注数据进行标注,得到第二标注数据;利用第二标注数据,训练第二初始模型;将第二无标注数据输入第一初始模型和第二初始模型,根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果,对每一个第二无标注数据进行标注,得到第三标注数据;利用所述第三标注数据,得到用于模型训练的训练数据。本说明书实施例能够解决人工标注获取训练数据时的诸多问题。

主权利要求:
1.训练数据的获取方法,包括:
利用已有的第一数量的第一标注数据,训练第一初始模型;
将第二数量的第一无标注数据输入第一初始模型,根据第一初始模型对每一个第一无标注数据的识别结果,对每一个第一无标注数据进行标注,得到第三数量的第二标注数据;
利用第三数量的第二标注数据,训练第二初始模型;
将第四数量的第二无标注数据输入第一初始模型和第二初始模型,根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果,对每一个第二无标注数据进行标注,得到第五数量的第三标注数据;
利用所述第三标注数据,得到用于模型训练的训练数据。
2.根据权利要求1所述的方法,其中,所述第一初始模型包括:第一子模型和第二子模型;
所述利用已有的第一数量的第一标注数据训练第一初始模型,包括:将第一数量的第一标注数据分为两部分,分别用于训练第一子模型和第二子模型。
3.根据权利要求1所述的方法,其中,所述第一初始模型包括:第一子模型和第二子模型;
所述将第二数量的第一无标注数据输入第一初始模型,包括:对于每一个第一无标注数据均执行:将该第一无标注数据进行变换,得到变换后的至少两个无标注数据;将该变换后的至少两个无标注数据中的每一个均输入第一子模型和第二子模型,得到至少四个识别结果;
所述根据第一初始模型对每一个第一无标注数据的识别结果对每一个第一无标注数据进行标注,包括:从所述至少四个识别结果中筛选出符合标注要求的识别结果;判断符合标注要求的识别结果中,相同数量最多的识别结果的数量值与所述至少四个识别结果的总数量值的比值是否大于预设比例值;如果是,根据相同数量最多的识别结果,对该第一无标注数据进行标注;否则,剔除该第一无标注数据。
4.根据权利要求1所述的方法,其中,所述将第四数量的第二无标注数据输入第一初始模型和第二初始模型,包括:对于每一个第二无标注数据均执行:对该第二无标注数据进行变换,得到变换后的至少两个无标注数据;将该变换后的至少两个无标注数据中的每一个均输入第一初始模型和第二初始模型。
5.根据权利要求3或4所述的方法,其中,对无标注数据进行变换,包括:对无标注数据进行随机水平镜像或随机拉伸。
6.根据权利要求1所述的方法,其中,所述根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果对每一个第二无标注数据进行标注,包括:判断第一初始模型和第二初始模型对第二无标注数据的至少两个识别结果是否全部符合标注要求;
如果不是全部符合,则剔除该第二无标注数据;
如果是全部符合,判断该至少两个识别结果是否完全相同;
如果完全相同,则剔除该第二无标注数据;
如果不完全相同,则确定该至少两个识别结果中相同数量最多的识别结果,并根据该相同数量最多的识别结果,对该第二无标注数据进行标注。
7.根据权利要求1所述的方法,其中,所述利用所述第三标注数据,得到用于模型训练的训练数据,包括:将所述第一标注数据、第二标注数据以及第三标注数据都作为所述训练数据。
8.根据权利要求1至7中任一所述的方法,所述得到训练数据,包括:将所有的标注数据分成N份;N为大于1的正整数;
选择其中一份作为测试用例,其余N‑1份作为训练用例;
利用其中作为训练用例的N‑1份标注数据训练一个模型;
将其中作为测试用例的1份标注数据输入训练出的该模型,得到该模型的识别结果;
判断该识别结果对应的标注与作为测试用例的标注数据的标注是否相同,如果不同,则剔除作为测试用例的该标注数据,如果相同,保留作为测试用例的该标注数据。
9.根据权利要求8所述的方法,其中,执行N次从所述选择的步骤直至所述判断的步骤,其中,在该N次执行中,每一次选择出的作为测试用例的标注数据与其他各次选择出的作为测试用例的标注数据不相同。
10.根据权利要求1所述的方法,其中,
所述第一标注数据为人工标注的数据;
和/或,
所述第二数量和/或所述第四数量大于所述第一数量。
11.模型训练方法,包括:
利用权利要求1至10中任一所述的方法,得到训练数据;
利用训练数据,训练模型。
12.根据权利要求11所述的方法,其中,所述模型为模糊图像检测模型;
所述利用训练数据训练模型,包括:
将所述训练数据以及CUHK数据集中的模糊图片及该模糊图片的模糊分割标注作为所述模糊图像检测模型的输入,训练模糊图像检测模型。
13.根据权利要求11所述的方法,其中,所述模型为模糊图像检测模型;
所述利用训练数据训练模型,包括:
针对训练数据中的每一个标注数据均执行:
对该标注数据进行拉普拉斯变换,得到拉普拉斯特征图;
将该标注数据的特征与该拉普拉斯特征图进行拼接,将拼接后得到的数据作为所述模糊图像检测模型的特征输入,训练模糊图像检测模型。
14.根据权利要求11所述的方法,其中,所述模型为模糊图像检测模型;
所述模型包括:骨干网络、位于骨干网络之后的梯度反转层、位于梯度反转层之后的数据来源分类层。
15.训练数据的获取装置,包括:
第一初始模型获取模块,配置为利用已有的第一数量的第一标注数据,训练第一初始模型;
第二标注数据获取模块,配置为将第二数量的第一无标注数据输入第一初始模型,根据第一初始模型对每一个第一无标注数据的识别结果,对每一个第一无标注数据进行标注,得到第三数量的第二标注数据;
第二初始模型获取模块,配置为利用第三数量的第二标注数据,训练第二初始模型;
第三标注数据获取模块,配置为将第四数量的第二无标注数据输入第一初始模型和第二初始模型,根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果,对每一个第二无标注数据进行标注,得到第五数量的第三标注数据;
训练数据获取模块,配置为利用所述第五数量的第三标注数据,得到用于模型训练的训练数据。
16.模型训练装置,包括:
如权利要求15所述的训练数据获取装置;以及
训练模块,配置为利用所述训练数据获取装置得到的训练数据,训练模型。
17.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1‑14中任一项所述的方法。
18.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1‑14中任一项所述的方法。 说明书 : 训练数据的获取方法和装置、模型训练方法和装置技术领域[0001] 本说明书一个或多个实施例涉及人工智能技术,尤其涉及训练数据的获取方法和装置、模型训练方法和装置。背景技术[0002] 图像识别是指利用计算机对图像进行分析和理解,以识别各种不同模式的目标和对象的技术。图像识别技术目前已被应用于模糊图像检测、遥感图像识别、图片档案修复等领域,为人们的生活提供了很大的便利。[0003] 用于图像识别的机器模型通常是利用带标注的训练数据训练后得到的。训练数据的数量越多,对机器模型的训练效果就越好。目前,训练数据是通过人工处理得到的,即通过人工标注的方式为每一个用于训练的图片进行标注,比如标注图片1为模糊图片,标注图片2为清晰图片等。但是,人工标注来获取训练数据的方法,存在成本高、耗时长、能获得的数据量有限等诸多问题。[0004] 因此,需要一种更为有效的训练数据的获取方法。发明内容[0005] 本说明书一个或多个实施例描述了训练数据的获取方法和装置以及模型训练的方法和模型训练装置,能够利用机器标注的方式获取训练数据,解决人工标注的诸多问题。[0006] 根据第一方面,提供了一种训练数据的获取方法,包括:[0007] 利用已有的第一数量的第一标注数据,训练第一初始模型;[0008] 将第二数量的第一无标注数据输入第一初始模型,根据第一初始模型对每一个第一无标注数据的识别结果,对每一个第一无标注数据进行标注,得到第三数量的第二标注数据;[0009] 利用第三数量的第二标注数据,训练第二初始模型;[0010] 将第四数量的第二无标注数据输入第一初始模型和第二初始模型,根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果,对每一个第二无标注数据进行标注,得到第五数量的第三标注数据;[0011] 利用所述第三标注数据,得到用于模型训练的训练数据。[0012] 其中,所述第一初始模型包括:第一子模型和第二子模型;[0013] 所述利用已有的第一数量的第一标注数据训练第一初始模型,包括:将第一数量的第一标注数据分为两部分,分别用于训练第一子模型和第二子模型。[0014] 其中,所述第一初始模型包括:第一子模型和第二子模型;[0015] 所述将第二数量的第一无标注数据输入第一初始模型,包括:对于每一个第一无标注数据均执行:将该第一无标注数据进行变换,得到变换后的至少两个无标注数据;将该变换后的至少两个无标注数据中的每一个均输入第一子模型和第二子模型,得到至少四个识别结果;[0016] 所述根据第一初始模型对每一个第一无标注数据的识别结果对每一个第一无标注数据进行标注,包括:从所述至少四个识别结果中筛选出符合标注要求的识别结果;判断符合标注要求的识别结果中,相同数量最多的识别结果的数量值与所述至少四个识别结果的总数量值的比值是否大于预设比例值;如果是,根据相同数量最多的识别结果,对该第一无标注数据进行标注;否则,剔除该第一无标注数据。[0017] 其中,所述将第四数量的第二无标注数据输入第一初始模型和第二初始模型,包括:[0018] 对于每一个第二无标注数据均执行:对该第二无标注数据进行变换,得到变换后的至少两个无标注数据;将该变换后的至少两个无标注数据中的每一个均输入第一初始模型和第二初始模型。[0019] 其中,对无标注数据进行变换,包括:对无标注数据进行随机水平镜像或随机拉伸。[0020] 其中,所述根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果对每一个第二无标注数据进行标注,包括:[0021] 判断第一初始模型和第二初始模型对第二无标注数据的至少两个识别结果是否全部符合标注要求;[0022] 如果不是全部符合,则剔除该第二无标注数据;[0023] 如果是全部符合,判断该至少两个识别结果是否完全相同;[0024] 如果完全相同,则剔除该第二无标注数据;[0025] 如果不完全相同,则确定该至少两个识别结果中相同数量最多的识别结果,并根据该相同数量最多的识别结果,对该第二无标注数据进行标注。[0026] 其中,所述利用所述第三标注数据,得到用于模型训练的训练数据,包括:将所述第一标注数据、第二标注数据以及第三标注数据都作为所述训练数据。[0027] 所述得到训练数据,包括:[0028] 将所有的标注数据分成N份;N为大于1的正整数;[0029] 选择其中一份作为测试用例,其余N‑1份作为训练用例;[0030] 利用其中作为训练用例的N‑1份标注数据训练一个模型;[0031] 将其中作为测试用例的1份标注数据输入训练出的该模型,得到该模型的识别结果;[0032] 判断该识别结果对应的标注与作为测试用例的标注数据的标注是否相同,如果不同,则剔除作为测试用例的该标注数据,如果相同,保留作为测试用例的该标注数据。[0033] 其中,执行N次从所述选择的步骤直至所述判断的步骤,其中,在该N次执行中,每一次选择出的作为测试用例的标注数据与其他各次选择出的作为测试用例的标注数据不相同。[0034] 所述第一标注数据为人工标注的数据;[0035] 和/或,[0036] 所述第二数量和/或所述第四数量大于所述第一数量。[0037] 根据第二方面,提供了一种模型训练方法,包括:[0038] 利用本说明书实施例中任一训练数据的获取方法,得到训练数据;[0039] 利用训练数据,训练模型。[0040] 其中,所述模型为模糊图像检测模型;[0041] 所述利用训练数据训练模型,包括:[0042] 将所述训练数据以及CUHK数据集中的模糊图片及该模糊图片的模糊分割标注作为所述模糊图像检测模型的输入,训练模糊图像检测模型。[0043] 其中,所述模型为模糊图像检测模型;[0044] 所述利用训练数据训练模型,包括:[0045] 针对训练数据中的每一个标注数据均执行:[0046] 对该标注数据进行拉普拉斯变换,得到拉普拉斯特征图;[0047] 将该标注数据的特征与该拉普拉斯特征图进行拼接,将拼接后得到的数据作为所述模糊图像检测模型的特征输入,训练模糊图像检测模型。[0048] 其中,所述模型为模糊图像检测模型;[0049] 所述模型包括:骨干网络、位于骨干网络之后的梯度反转层、位于梯度反转层之后的数据来源分类层。[0050] 根据第三方面,提供了一种训练数据的获取装置,包括:[0051] 第一初始模型获取模块,配置为利用已有的第一数量的第一标注数据,训练第一初始模型;[0052] 第二标注数据获取模块,配置为将第二数量的第一无标注数据输入第一初始模型,根据第一初始模型对每一个第一无标注数据的识别结果,对每一个第一无标注数据进行标注,得到第三数量的第二标注数据;[0053] 第二初始模型获取模块,配置为利用第三数量的第二标注数据,训练第二初始模型;[0054] 第三标注数据获取模块,配置为将第四数量的第二无标注数据输入第一初始模型和第二初始模型,根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果,对每一个第二无标注数据进行标注,得到第五数量的第三标注数据;[0055] 训练数据获取模块,配置为利用所述第五数量的第三标注数据,得到用于模型训练的训练数据。[0056] 根据第四方面,提供了一种模型训练装置,包括:[0057] 本说明书任一实施例中的训练数据获取装置;以及[0058] 训练模块,配置为利用所述训练数据获取装置得到的训练数据,训练模型。[0059] 根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。[0060] 根据第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任一实施例所述的方法。[0061] 本说明书实施例提供的训练数据的获取方法和装置以及模型的训练方法和装置,采用了联合训练的方式,即已有的第一标注数据(比如可以是人工标注的数据)及无标注数据都共同参与训练中间模型(第一初始模型及第二初始模型),已有的第一标注数据(比如可以是人工标注的数据)、无标注数据及中间模型又能被利用来生成大量的机器标注的标注数据,比如上述过程中,第二标注数据以及第三标注数据均是由机器计算得到的,而不是人工标注数据,因此,可以解决人工标注的诸多问题,比如,因为机器的计算能力,能够生成海量的用于训练模型的训练数据,从而使得训练出的模型更为准确。另外,由于无需人工标注,因此成本更低,耗时更短。附图说明[0062] 为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0063] 图1是本说明书一个实施例中训练数据的获取方法的流程图。[0064] 图2是本说明书一个实施例中得到第二标注数据的流程图。[0065] 图3是本说明书一个实施例中得到第二标注数据的示意图。[0066] 图4是本说明书一个实施例中得到第三标注数据的流程图。[0067] 图5是本说明书一个实施例中对标注数据进行数据清洗的流程图。[0068] 图6是本说明书一个实施例中对标注数据进行数据清洗的示意图。[0069] 图7是本说明书一个实施例中模型训练方法的流程图。[0070] 图8是本说明书一个实施例中训练数据的获取装置的结构示意图。[0071] 图9是本说明书一个实施例中模型训练装置的结构示意图。具体实施方式[0072] 如前所述,训练一个模型需要使用标注数据来作为训练数据。在现有技术中,只能通过人工标注的方式对图片进行标注,获得训练数据。但是,人工标注图片的能力有限,这会导致用于训练模型的数据量较少,无法产生海量的用于训练模型的训练数据,因此会导致模型的准确性较低。另外,人工标注的方式还存在成本高、耗时长等诸多问题。因此,考虑利用机器标注的标注数据来进行模型训练,从而能够解决人工标注的诸多问题。[0073] 下面描述以上构思的具体实现方式。[0074] 图1示出了本说明书一个实施例中训练数据的获取方法的流程图。该方法的执行主体为训练数据的获取装置。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图1,该方法包括:[0075] 步骤101:利用已有的第一数量的第一标注数据,训练第一初始模型。[0076] 步骤103:将第二数量的第一无标注数据输入第一初始模型,根据第一初始模型对每一个第一无标注数据的识别结果,对每一个第一无标注数据进行标注,得到第三数量的第二标注数据。[0077] 步骤105:利用第三数量的第二标注数据,训练第二初始模型。[0078] 步骤107:将第四数量的第二无标注数据输入第一初始模型和第二初始模型,根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果,对每一个第二无标注数据进行标注,得到第五数量的第三标注数据。[0079] 步骤109:利用第五数量的第三标注数据,得到用于模型训练的训练数据。[0080] 根据上述图1所示的过程可以看出,在本说明书的实施例中,采用了联合训练的方式,即已有的第一标注数据(比如可以是人工标注的数据,或者是少量机器标注完的数据)及无标注数据都共同参与训练中间模型(第一初始模型及第二初始模型),已有的第一标注数据(比如可以是人工标注的数据)、无标注数据及中间模型又能被利用来生成大量的机器标注的标注数据,比如上述过程中,第二标注数据以及第三标注数据均是由机器计算得到的,而不是人工标注数据,因此,可以解决人工标注的诸多问题,比如,因为机器的计算能力,能够生成海量的用于训练模型的训练数据,从而使得训练出的模型更为准确。另外,由于无需大量的人工标注,因此成本更低,耗时更短。[0081] 下面对图1中的每一个步骤进行详细说明。[0082] 首先在步骤101中,利用已有的第一数量的第一标注数据,训练第一初始模型。[0083] 本步骤101是为了完成初始模型的准备。[0084] 第一标注数据可以采用人工标注数据。因为第一初始模型只是一个中间模型,而不是最终要训练的真正用于实际业务中的模型,因此,本步骤101中第一数量可以相对较小,训练出一个识别精度无需太高的第一初始模型,从而减轻人工标注的压力,降低成本。[0085] 本步骤101的一种实现过程包括:将第一数量(比如500个)的第一标注数据分成两部分,一部分(比如其中的300个第一标注数据)用于训练第一子模型,另一部分(比如剩余的200个)用于训练第二子模型。[0086] 接下来在步骤103中,将第二数量的第一无标注数据输入第一初始模型,根据第一初始模型对每一个第一无标注数据的识别结果,对每一个第一无标注数据进行标注,得到第三数量的第二标注数据。[0087] 本步骤103是为了通过机器标注的方式而非人工标注的方式,来得到置信度高的标注数据,即第二标注数据。[0088] 因为在步骤101中已经训练出了一个第一初始模型,因此在本步骤103中,可以利用无标注的数据以及该第一初始模型,来得到置信度高的第二标注数据。以在步骤101中得到的第一初始模型包括第一子模型和第二子模型为例,说明步骤103的实现过程,参见图2和图3,包括:[0089] 步骤1031:将该第一无标注数据进行变换,得到变换后的至少两个无标注数据。[0090] 本步骤1031中,对第一无标注数据进行变换,是为了对第一无标注数据进行增强处理。因为在实际的业务应用场景中,比如对于在下雨天或者夜里形成的图片,其图片的内容更为复杂,不规范,因此,可以通过本步骤中的变换处理来模拟复杂应用场景,从而得到更加符合实际应用场景的训练数据。[0091] 对第一无标注数据进行变换的一种实现方式包括:对第一无标注数据进行随机水平镜像或随机拉伸,比如将第一无标注数据拉伸至原图片的1.2倍等。[0092] 步骤1033:将该变换后的至少两个无标注数据中的每一个均输入第一子模型和第二子模型,得到至少四个识别结果。[0093] 步骤1035:从至少四个识别结果中筛选出符合标注要求的识别结果。[0094] 本步骤1035中,符合标注要求的识别结果指的是该识别结果能够具体对应到一个分类标签。比如,在模糊图像检测业务中,如果识别结果为清晰或者模糊,则符合标注要求,如果识别结果既不属于清晰也不属于模糊,比如模型打分为中分段,识别结果为不可靠,那么则不符合标注要求。[0095] 步骤1037:判断符合标注要求的识别结果中,相同数量最多的识别结果的数量值与所述至少四个识别结果的总数量值的比值是否大于预设比例值,如果是,执行步骤1039,否则,执行步骤10311。[0096] 本步骤1037的判断是为了判断出投票最多的分类标签是否满足比例要求,如果满足,则说明在大概率上,数量最多的识别结果是正确的识别结果,可以用于标注,因此,可以执行后续步骤1039;如果不满足,说明在大概率上,模型的识别结果不正确,该无标注数据对模型的训练效果不好,因此,可以执行后续步骤10311剔除该第一无标注数据,即,不使用该无标注数据作为训练数据。[0097] 步骤1039:根据相同数量最多的识别结果,对该第一无标注数据进行标注,得到第二标注数据。[0098] 步骤10311:剔除该第一无标注数据。[0099] 因为在对第二数量的无标注数据进行上述图2的处理时,可能会剔除其中的部分无标注数据,因此,第二数量大于或者等于第三数量。[0100] 上述图2所示的流程,利用得到的两个初始模型,即第一子模型和第二子模型,以及第一批无标注的数据,能够得到一批机器标注的数据。第一子模型和第二子模型的识别结果可以相互验证,从而得到置信度高的标注数据,并剔除置信度低的数据。下面以模糊图像检测业务为例说明上述图2所示的过程。[0101] 假如有1万个图片,上述图2所示的过程可以将该1万个图片中无法准确标注的数据剔除,并将该1万个图片中能够较为准确标注的数据进行机器标注,得到比如9千个机器标注的第二标注数据,且置信度高。参见图2、图3,该过程具体包括:针对该1万个图片中的每一个图片,均执行:将该图片进行比如三种不同形式的数据变换(比如数据变换1是将图片随机拉伸至1.2倍,数据变换2是将该图片进行随机水平镜像处理,数据变换3是将该图片进行随机拉伸至0.8倍),得到了变换后的3张图片,每一张变换后的图片均输入在步骤101中训练得到的两个子模型比如记为模型A和模型B中,这样,针对每一张变换后的图片,模型A会得出一个模糊图像检测得分,模型B会得出一个模糊图像检测得分,也就是说针对一张原始图片,总共可以得到6个得分。然后将每一个得分跟对应模型的阈值进行比较得到识别结果。比如,任意一个变换后的图片经过模型A后的得分为SAi,则根据该模型A预先设置的模糊阈值TAi,判断是否满足SAi≥TAi,如果是,则说明该得分对应的识别结果为模糊,如果SAi≤1‑TAi,则说明该得分对应的识别结果为清晰,如果都不满足,则说明该得分既不对应模糊也不对应清晰,识别结果为不可靠。同理,任意一个变换后的图片经过模型B后的得分为SBi,则根据该模型B预先设置的模糊阈值TBi,判断是否满足SBi≥TBi,如果是,则说明该得分对应的识别结果为模糊,如果SBi≤1‑TBi,则说明该得分对应的识别结果为清晰,如果都不满足,则说明该得分既不对应模糊也不对应清晰,识别结果为不可靠。因此,最终得到了6个识别结果。如果识别结果为清晰或模糊,则符合标注要求(因为分类标签应该为清晰或者模糊),如果识别结果为不可靠,则不符合标注要求,从该6个识别结果中选择出符合标注要求的识别结果,比如选择出5个符合标注要求的识别结果(其中4个识别结果为清晰,1个识别结果为模糊),相同数量最多的识别结果,即上述为清晰的识别结果,其数量为4,该数量4相对于模糊的识别结果的数量1要多,因此,判断4与识别结果的总数量6的比值是否大于预设比例值比如为0.6,如果大于,将原图片标注为清晰,如果不大于,则放弃该图片,不再考虑标注该图片来作为训练数据。[0102] 接下来在步骤105中利用第三数量的第二标注数据,训练第二初始模型,记为模型C。[0103] 如前所述,通过步骤103的处理所得到的第二标注数据属于简单数据,即置信度高的数据,因此,利用该第二标注数据训练出的第二初始模型的准确度较高。[0104] 接下来在步骤107中,将第四数量的第二无标注数据输入第一初始模型和第二初始模型,根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果,对每一个第二无标注数据进行标注,得到第五数量的第三标注数据。[0105] 在上述过程中,第一初始模型可以是利用人工标注的数据训练的中间模型,第二初始模型是利用机器标注的数据训练出的中间模型。本步骤107中,同时利用该两类中间模型以及一批无标注数据进行联合训练。[0106] 在本步骤107中,为了对数据进行增强处理,在将第四数量的第二无标注数据输入第一初始模型和第二初始模型时,对于每一个第二无标注数据均执行:对该第二无标注数据进行变换,得到变换后的至少两个无标注数据;将该变换后的至少两个无标注数据中的每一个均输入第一初始模型和第二初始模型。对数据进行增强处理即变换的原因及方法可以参见上述对步骤1031中的变换处理的相关说明。[0107] 当然,在本说明书的一个实施例中,也可以不对第二无标注数据进行增强,而是直接将第二无标注数据的原始数据直接分别输入第一初始模型和第二初始模型。[0108] 如前所述,机器标注的第二标注数据是置信度较高的标注数据。还可以考虑得到难例标注数据。难例标注数据指的是:此类数据,每一个模型肯定能得到一个分类标签(而不会得到一个中间分值,即表征不可靠的识别结果),但是不同模型对该数据的分类标签又不是完全相同。难例标注数据能够更好地训练模型,因此,在本说明书的一个实施例中,可以利用步骤107的处理得到上述的难例标注数据,即第三标注数据。在此种情况下,本步骤107中得到第三标注数据的过程可以参见图4,包括:[0109] 步骤1071:判断第一初始模型和第二初始模型对第二无标注数据的至少两个识别结果是否全部符合标注要求;如果不是全部符合,则执行步骤1073,如果是全部符合,则执行步骤1075。[0110] 在本步骤1071中,如果判断出至少两个识别结果不是全部符合标注要求,则说明,存在至少一个模型的识别结果根本无法对应到一个分类标签,那么,该第二无标注数据不对应需要寻找的难例标注数据,模型不是无法区分属于哪一个分类标签,而是无法给予一个分类标签,因此,执行步骤1073中剔除该第二无标注数据。相反,如果是全部符合,则说明,模型的识别结果全部都能对应到一个分类标签。[0111] 比如,第二无标注数据是一张图片,将该图片输入第一初始模型和第二初始模型(如前述的模型A,模型B和模型C),得到三个识别结果,如果三个识别结果中存在中分段对应的不可靠,因为中分段既不能对应到清晰这个分类标签,也不能对应到模糊这个分类标签,因此,如果模型A、模型B和模型C中的任意一个模型的打分在中分段,对应的识别结果为不可靠,那么,该图片就可以直接剔除,不再进行标注。[0112] 步骤1073:剔除该第二无标注数据。[0113] 步骤1075:判断该至少两个识别结果是否完全相同,如果完全相同,则执行步骤1073,如果不完全相同,则执行步骤1077。[0114] 执行到本步骤1075时,如果各个识别结果完全相同,比如对图片的识别结果均为清晰或者均为模糊,则说明各个模型对数据的分类一致,不存在分歧,因此,该第二无标注数据不对应需要寻找的难例标注数据。相反,如果各个识别结果不完全相同,比如模型A打分在高分段,得到的识别结果为模糊,模型B打分在低分段,得到的识别结果为清晰,则说明各个模型对数据的分类判断不一致,存在分歧,因此该第二无标注数据对应需要寻找的难例标注数据。[0115] 步骤1077:确定该至少两个识别结果中相同数量最多的识别结果。[0116] 步骤1079:根据该相同数量最多的识别结果,对该第二无标注数据进行标注,得到第三标注数据。[0117] 比如步骤1077中,对于图片,模型A、模型B以及模型C得到的识别结果分别为清晰、清晰和模糊,则相同数量最多的识别结果为清晰,数量为2。那么在步骤1079中,将该图片标注为清晰。[0118] 至此,则得到了作为难例的第三标注数据。[0119] 因为在对第四数量的第二无标注数据进行上述图4的处理时,可能会剔除其中的部分无标注数据,因此,第四数量大于或者等于第五数量。[0120] 接下来在步骤109中,利用第五数量的第三标注数据,得到用于模型训练的训练数据。[0121] 在本说明书的一个实施例中,不仅可以将所有的第三标注数据作为训练数据,还可以进一步将比如人工标注的第一标注数据以及机器标注的第二标注数据同时作为训练数据。[0122] 在完成上述步骤109之后,可以直接将第一标注数据、第二标注数据以及第三标注数据作为训练数据。而为了进一步提升标注数据的准确性,还可以利用第一标注数据、第二标注数据以及第三标注数据进行数据清洗,从中筛选出标签更为准确的标注数据。参见图5和图6,该过程包括:[0123] 步骤501:将所有的标注数据分成N份;N为大于1的正整数。[0124] 步骤503:选择其中一份作为测试用例,其余N‑1份作为训练用例。[0125] 步骤505:利用其中作为训练用例的N‑1份标注数据训练一个模型,记为模型D。[0126] 步骤507:将其中作为测试用例的1份标注数据输入训练出的该模型D,得到该模型D的识别结果。[0127] 步骤509:判断该识别结果对应的标注与作为测试用例的标注数据的标注是否相同,如果不同,则剔除作为测试用例的该标注数据,如果相同,则保留作为测试用例的该标注数据。[0128] 执行N次从上述步骤503直至步骤509的所有处理,其中,在该N次执行中,每一次选择出的作为测试用例的标注数据与其他各次选择出的作为测试用例的标注数据不相同。这样,则可以对分成N份的每一份标注数据进行数据清洗,剔除其中标注不正确的标注数据,从而保证最终得到的训练数据更为准确。[0129] 参见图6,上述图5所示过程中,可以将第一标注数据、第二标注数据以及第三标注数据全部汇总,比如一共有10万个标注数据,平均分成如图6中所示的5份,每一份则包括2万个标注数据,其中的4份用作训练用例,剩余的1份用作测试用例,因为一共分成5份,因此执行5次。在第1次执行时,可以将第1份标注数据作为测试用例,从而对第1份标注数据进行清洗,剔除其中标注不正确的标注数据。在第2次执行时,可以将第2份标注数据作为测试用例,从而可以对第2份标注数据进行清洗,剔除其中标注不正确的标注数据,以此类推,在第5次执行时,可以将第5份标注数据作为测试用例,从而可以对第5份标注数据进行清洗,剔除其中标注不正确的标注数据。在执行完5次之后,则完成了对所有标注数据的清洗。[0130] 在本说明书一个实施例中,第二数量和/或第四数量大于第一数量。也就是说,利用本说明书实施例中的方法,无需大量的人工标注数据,仅利用少部分的第一标注数据及大量的无标注数据,就可以得到机器标注的大量的第二标注数据及大量的第三标注数据,使得提供海量训练数据成为可能,克服了人工标注的诸多问题。[0131] 在利用本说明书中任一实施例的方法,获得了训练数据之后,则可以利用该训练数据来训练出所需要的模型,比如模糊图像检测模型。参见图7,在本说明书的一个实施例中,模型训练方法包括:[0132] 步骤701:利用本说明书中任一实施例的方法得到训练数据。[0133] 步骤703:利用训练数据,训练模型。[0134] 在本步骤703中,在利用训练数据训练实际业务中需要使用的模型时,可以考虑如下的方面:[0135] 方面一、多任务学习。[0136] 方面二、多特征输入。[0137] 方面三、领域自适应学习。[0138] 下面针对每一个方面进行说明。[0139] 首先对于方面一、多任务学习。[0140] 在模糊图像检测领域,即当步骤703中需要训练的模型为模糊图像检测模型时,基本的学习任务为分类任务,而考虑到分割任务的学习可以促进分类任务的性能提高,因此可以采用多任务学习算法,同时学习模糊分类任务和模糊分割任务,在模型中增加一个损失函数,提高模型的性能。损失函数如下:[0141][0142] 此时,步骤703的具体过程包括:将得到的训练数据以及CUHK数据集中的模糊图片及该模糊图片的模糊分割标注作为所述模糊图像检测模型的输入,训练模糊图像检测模型。[0143] CUHK数据集是目前输入层中已经公开的数据集,这个数据集包含1000张模糊图片和它们的模糊分割标注,因此将CUHK数据集中的模糊图片及该模糊图片的模糊分割标注也作为模糊图像检测模型的输入,则能够通过分割任务的学习(CUHK数据集中已有模糊分割标注)可以促进分类任务的性能提高,从而提高了训练出的模型的性能。[0144] 接下来,对于方面二、多特征输入。[0145] 在模糊图像检测领域,即当步骤703中需要训练的模型为模糊图像检测模型时,考虑到图像模糊的主要原因是图像局部或整体的细节被平滑,突变信息减少,因此,如果要提高模型的性能,可以在输入基本的训练数据的基础上,增加输入此种突变信息。而拉普拉斯特征图正好能体现该突变信息。因此,在本说明书的一个实施例中,步骤703的实现过程包括:[0146] 针对训练数据中的每一个标注数据均执行:[0147] 对该标注数据进行拉普拉斯变换,得到拉普拉斯特征图;[0148] 将该标注数据的特征与该拉普拉斯特征图进行拼接,将拼接后得到的数据作为所述模糊图像检测模型的特征输入,训练模糊图像检测模型。[0149] 上述的拼接可以是在通道上的拼接。比如作为一个训练数据的原图是3通道,拉普拉斯特征图是1通道,拼接起来成为4通道的图像。在使用拉普拉斯特征图时,可以产生关于原图在灰度图上突变量的描述,即包括了原图的局部特征,从而能够作为模型判别图像是否模糊的重要特征,降低了模型学习的难度。因此,将原图和拉普拉斯特征图合并起来作为网络的多特征输入,进一步提高了模型的性能。[0150] 接下来,针对上述第三方面、领域自适应学习。[0151] 为了提高模型的泛化性,需要使模型能够应用到不同场景中,比如对于模糊图像检测模型,要既能够适合于一个黑暗场景下的模糊图像识别,又能够适合于雨天场景下的模糊图像识别。这样,在步骤703训练模型时,就需要模型能够进行领域自适应学习。[0152] 为了让模型能够进行领域自适应学习,在本说明书的一个实施例中,所训练的模型的神经网络架构包括:骨干网络、位于骨干网络之后的梯度反转层、位于梯度反转层之后的数据来源分类层。[0153] 可见,在骨干网络之后及数据来源分类层之前加入了梯度反转层,梯度反转层能够对特征做一个梯度反转,让特征不能具有场景区分的作用,不能让模型识别出是哪一个场景,而促使模型提取与数据来源无关的特征,并据此学习领域,由此来增强模型的领域适应性。[0154] 在本说明书的实施例中,模型可以使用CNN分类模型,骨干网可以是Resnet50。[0155] 在本说明书的一个实施例中,提供了一种训练数据的获取装置,参见图8,该装置800包括:[0156] 第一初始模型获取模块801,配置为利用已有的第一数量的第一标注数据,训练第一初始模型;[0157] 第二标注数据获取模块802,配置为将第二数量的第一无标注数据输入第一初始模型,根据第一初始模型对每一个第一无标注数据的识别结果,对每一个第一无标注数据进行标注,得到第三数量的第二标注数据;[0158] 第二初始模型获取模块803,配置为利用第三数量的第二标注数据,训练第二初始模型;[0159] 第三标注数据获取模块804,配置为将第四数量的第二无标注数据输入第一初始模型和第二初始模型,根据第一初始模型和第二初始模型对每一个第二无标注数据的识别结果,对每一个第二无标注数据进行标注,得到第五数量的第三标注数据;[0160] 训练数据获取模块805,配置为利用所述第五数量的第三标注数据,得到用于模型训练的训练数据。[0161] 在本说明书装置的一个实施例中,第一初始模型包括:第一子模型和第二子模型;[0162] 第一初始模型获取模块801被配置为执行:将第一数量的第一标注数据分为两部分,分别用于训练第一子模型和第二子模型。[0163] 在本说明书装置的一个实施例中,所述第一初始模型包括:第一子模型和第二子模型;[0164] 第二标注数据获取模块802被配置为执行:对于每一个第一无标注数据均执行:将该第一无标注数据进行变换,得到变换后的至少两个无标注数据;将该变换后的至少两个无标注数据中的每一个均输入第一子模型和第二子模型,得到至少四个识别结果;从所述至少四个识别结果中筛选出符合标注要求的识别结果;判断符合标注要求的识别结果中,相同数量最多的识别结果的数量值与所述至少四个识别结果的总数量值的比值是否大于预设比例值;如果是,根据相同数量最多的识别结果,对该第一无标注数据进行标注,得到第二标注数据;否则,剔除该第一无标注数据。[0165] 在本说明书装置的一个实施例中,第三标注数据获取模块804被配置为执行:对于每一个第二无标注数据均执行:对该第二无标注数据进行变换,得到变换后的至少两个无标注数据;将该变换后的至少两个无标注数据中的每一个均输入第一初始模型和第二初始模型。[0166] 在本说明书装置的一个实施例中,第二标注数据获取模块802被配置为执行:对第一无标注数据进行随机水平镜像或随机拉伸。[0167] 在本说明书装置的一个实施例中,第三标注数据获取模块804被配置为执行:对第二无标注数据进行随机水平镜像或随机拉伸。[0168] 在本说明书装置的一个实施例中,第三标注数据获取模块804被配置为执行:[0169] 判断第一初始模型和第二初始模型对第二无标注数据的至少两个识别结果是否全部符合标注要求;[0170] 如果不是全部符合,则剔除该第二无标注数据;[0171] 如果是全部符合,判断该至少两个识别结果是否完全相同;[0172] 如果完全相同,则剔除该第二无标注数据;[0173] 如果不完全相同,则确定该至少两个识别结果中相同数量最多的识别结果,并根据该相同数量最多的识别结果,对该第二无标注数据进行标注,得到第三标注数据。[0174] 在本说明书装置的一个实施例中,训练数据获取模块805被配置为执行:将第一标注数据、第二标注数据以及第三标注数据都作为所述训练数据。[0175] 在本说明书装置的一个实施例中,训练数据获取模块805被配置为执行:[0176] 将所有的标注数据分成N份;N为大于1的正整数;[0177] 选择其中一份作为测试用例,其余N‑1份作为训练用例;[0178] 利用其中作为训练用例的N‑1份标注数据训练一个模型;[0179] 将其中作为测试用例的1份标注数据输入训练出的该模型,得到该模型的识别结果;[0180] 判断该识别结果对应的标注与作为测试用例的标注数据的标注是否相同,如果不同,则剔除作为测试用例的该标注数据,如果相同,保留作为测试用例的该标注数据。[0181] 在本说明书装置的一个实施例中,训练数据获取模块805被配置为执行N次从所述选择的步骤直至所述判断的步骤,其中,在该N次执行中,每一次选择出的作为测试用例的标注数据与其他各次选择出的作为测试用例的标注数据不相同。[0182] 在本说明书的一个实施例中,提出了一种模型训练装置,参见图9,包括:[0183] 本说明书任一实施例中的训练数据获取装置800;以及[0184] 训练模块900,配置为利用所述训练数据获取装置得到的训练数据,训练模型。[0185] 在本说明书模型训练装置的一个实施例中,所述模型为模糊图像检测模型;[0186] 训练模块900被配置为执行:将所述训练数据以及CUHK数据集中的模糊图片及该模糊图片的模糊分割标注作为所述模糊图像检测模型的输入,训练模糊图像检测模型。[0187] 在本说明书模型训练装置的一个实施例中,所述模型为模糊图像检测模型;[0188] 训练模块900被配置为执行:[0189] 针对训练数据中的每一个标注数据均执行:[0190] 对该标注数据进行拉普拉斯变换,得到拉普拉斯特征图;[0191] 将该标注数据的特征与该拉普拉斯特征图进行拼接,将拼接后得到的数据作为所述模糊图像检测模型的特征输入,训练模糊图像检测模型。[0192] 本说明书一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。[0193] 本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。[0194] 可以理解的是,本说明书实施例示意的结构并不构成对本说明书实施例的装置的具体限定。在说明书的另一些实施例中,上述装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。[0195] 上述装置、系统内的各模块之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。[0196] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。[0197] 本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。[0198] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

专利地区:浙江

专利申请日期:2021-09-02

专利公开日期:2024-06-18

专利公告号:CN113850301B

电话咨询
读内容
搜本页
回顶部