一种船舶类别分类模型训练方法、系统及计算机存储介质转让专利

申请号 : CN202210525452.6

文献号 : CN114627338B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴显德邹凡金振中王震艳钱茂俊

申请人 : 浙江华是科技股份有限公司

摘要 :

本发明公开一种船舶类别分类模型训练方法、系统及计算机存储介质。该方法包括:S1将原始训练集分成多个小数据集;S2.将多个小数据集分为多组训练样本;S3.将每组训练样本进行训练得到一一对应的多个船舶类别分类模型以及多个难例数据集;S4.将多个船舶类别分类模型进行融合得到预训练模型;S5.加载预训练模型并通过数据增强方法对原始训练集和多个难例数据集进行m轮模型训练,得到当前更新的船舶类别分类模型;S6.对原始测试集训练,得到当前更新的难例数据集,对其和原始训练集进行m+1轮模型训练,得到下一更新的船舶类别分类模型,重复S6进行预设轮模型训练,得到目标船舶类别分类模型。本发明中的目标船舶类别分类模型正确率高,错误率较少。

权利要求 :

1.一种船舶类别分类模型训练方法,其特征在于,包括:

S1.将原始训练集分成多个小数据集;

S2.将所述多个小数据集分为多组训练样本,所述训练样本的组数与所述小数据集个数相同:每组训练样本中包括所述多个小数据集,且其一小数据集为子测试集或子验证集,其余小数据集为子训练集;每组训练样本中的子测试集或子验证集不同;

S3.将每组的子训练集、子测试集或子验证集进行训练,得到一一对应的多个船舶类别分类模型,以及得到一一对应的多个难例数据集;

S4.将所述多个船舶类别分类模型进行融合,得到预训练模型;

S5.加载所述预训练模型并通过图片融合操作对所述原始训练集和多个难例数据集进行m轮模型训练,得到当前更新的船舶类别分类模型;其中,m的值由训练结果确定,当训练结果符合预设要求时,停止继续训练;

S6.通过所述当前更新的船舶类别分类模型对原始测试集进行测试,得到当前更新的难例数据集;通过所述当前更新的船舶类别分类模型对所述原始训练集和所述当前更新的难例数据集进行m+1轮模型训练,得到下一更新的船舶类别分类模型;

S7.将所述下一更新的船舶类别分类模型作为当前更新的船舶类别分类模型,重复S6直至进行完预设轮模型训练,得到目标船舶类别分类模型。

2.根据权利要求1所述的方法,其特征在于,所述S3包括:

从当前组的子训练集中抽取预设数量的图片作为当前迭代训练集进行模型训练,并得到正确图片、错误图片以及每一张图片的得分;

判断所述当前迭代训练集的准确率;

当所述准确率超过预设准确率时,则从所述当前迭代训练集中选取难例样本,并将所述难例样本和抽取的所述当前组的子训练集中没有进行模型训练的图片作为下次迭代训练集进行模型训练,其中每次迭代训练集的图片数量都为所述预设数量;反之,则直接从所述当前组的子训练集中没有进行模型训练的图片抽取预设数量的图片作为下次迭代训练集进行模型训练;

将所述当前组的子训练集的图片全部模型训练完作为一轮模型训练并进行多轮模型训练得到当前船舶类别分类模型,以及当前难例数据集。

3.根据权利要求2所述的方法,其特征在于,所述当所述准确率超过预设准确率时,则从所述当前迭代训练集中选取难例样本包括:当所述准确率超过预设准确率时,判断所述当前迭代训练集的错误率是否超过预设错误率;

若是,将所述错误图片按照得分从大到小进行排序,并根据所述排序顺序抽取错误图片作为所述难例样本;其中,所述抽取的错误图片数量不超过预设错误量;

其中,预设错误量=预设错误率×预设数量;

反之,将所述正确图片按照得分从小到大进行排序,并将所述错误图片和根据所述排序顺序抽取正确图片作为难例样本,其中,所述抽取的正确图片数量=预设错误率×预设数量‑错误图片数量;

所述难例样本总数不超过所述预设错误量。

4.根据权利要求2所述的方法,其特征在于:所述将所述当前组的子训练集的图片全部模型训练完,得到当前船舶类别分类模型,以及当前难例数据集包括:将所述当前组的子训练集的图片全部模型训练完,得到当前船舶类别分类模型;

通过所述当前船舶类别分类模型对当前组的子测试集或子验证集进行测试,得到所述当前组的子测试集或子验证集的错误图片、正确图片以及每张图片的得分;

将所述当前组的子测试集或子验证集的错误图片和所述正确图片中得分小于预设值的图片作为所述当前难例数据集。

5.根据权利要求1所述的方法,其特征在于,所述S5包括:

S51.加载所述预训练模型,并从所述原始训练集中抽取预设数量的图片和从所述多个难例数据集中抽取不超过所述预设数量的图片进行图像融合操作,得到当前迭代训练集并进行模型训练;

S52.从所述原始训练集中没有进行模型训练的图片中抽取预设数量的图片和从所述多个难例数据集中没有进行模型训练的图片中抽取不超过所述预设数量的图片进行图片融合操作,得到下次迭代训练集并进行模型训练,将所述下次迭代训练集作为所述当前迭代训练集,重复所述S52,直至所述原始训练集和所述多个难例数据集的图片全部模型训练完,得到当前轮当前更新的船舶类别分类模型;

S53.重复所述S51和S52,当所述原始训练集的图片全部模型训练完m轮后,得到所述当前更新的船舶类别分类模型。

6.根据权利要求2所述的方法,其特征在于,所述通过所述当前更新的船舶类别分类模型对所述原始训练集和所述当前更新的难例数据集进行m+1轮模型训练,得到下一更新的船舶类别分类模型包括:将所述当前更新的难例数据集平均分到m+1轮中多次迭代训练集中,其中每次迭代训练集中的图片数量均为所述预设数量;

通过所述当前更新的船舶类别分类模型对所述原始训练集和平均分配的多次迭代训练集进行m+1轮的多次迭代模型训练,得到所述下一更新的船舶类别分类模型。

7.一种船舶类别分类模型训练系统,其特征在于,包括:

拆分单元,用于将原始训练集分成多个小数据集;

分组单元,用于将所述多个小数据集分为多组训练样本,所述训练样本的组数与所述小数据集个数相同:每组训练样本中包括所述多个小数据集,且其一小数据集为子测试集或子验证集,其余小数据集为子训练集;每组训练样本中的子测试集或子验证集不同;

训练单元,用于将每组的子训练集、子测试集或子验证集进行训练,得到一一对应的多个船舶类别分类模型,以及得到一一对应的多个难例数据集;

融合单元,用于将所述多个船舶类别分类模型进行融合,得到预训练模型;

第一更新单元,用于加载所述预训练模型并通过图片融合操作对所述原始训练集和多个难例数据集进行m轮模型训练,得到当前更新的船舶类别分类模型;

第二更新单元,用于通过所述当前更新的船舶类别分类模型对原始测试集进行测试,得到当前更新的难例数据集;通过所述当前更新的船舶类别分类模型对所述原始训练集和所述当前更新的难例数据集进行m+1轮模型训练,得到下一更新的船舶类别分类模型;

重复训练单元,用于将所述下一更新的船舶类别分类模型作为当前更新的船舶类别分类模型,重复所述第二更新单元直至进行完预设轮模型训练,得到目标船舶类别分类模型。

8.根据权利要求7所述的系统,其特征在于,所述训练单元包括:

批次训练子单元,用于从当前组的子训练集中抽取预设数量的图片作为当前迭代训练集进行模型训练,并得到正确图片、错误图片以及每一张图片的得分;

判断子单元,用于判断所述当前迭代训练集的准确率;

难例样本选取子单元,用于当所述准确率超过预设准确率时,则从所述当前迭代训练集中选取难例样本,并将所述难例样本和抽取的所述当前组的子训练集中没有进行模型训练的图片作为下次迭代训练集进行模型训练,其中每次迭代训练集的图片数量都为所述预设数量;反之,则直接从所述当前组的子训练集中没有进行模型训练的图片抽取预设数量的图片作为下次迭代训练集进行模型训练;

重复训练子单元,用于将所述当前组的子训练集的图片全部模型训练完作为一轮模型训练并进行多轮模型训练得到当前船舶类别分类模型,以及当前难例数据集。

9.根据权利要求7所述的系统,其特征在于,所述第一更新单元包括:

第一抽取子单元,用于加载所述预训练模型,并从所述原始训练集中抽取预设数量的图片和从所述多个难例数据集中抽取不超过所述预设数量的图片进行图像融合操作,得到当前迭代训练集并进行模型训练;

第二抽取子单元,用于从所述原始训练集中没有进行模型训练的图片中抽取预设数量的图片和从所述多个难例数据集中没有进行模型训练的图片中抽取不超过所述预设数量的图片进行图片融合操作,得到下次迭代训练集并进行模型训练,将所述下次迭代训练集作为所述当前迭代训练集,重复所述第二抽取子单元,直至所述原始训练集和所述多个难例数据集的图片全部模型训练完,得到当前轮当前更新的船舶类别分类模型;

第一更新子单元,用于重复所述第一抽取子单元和第二抽取子单元,当所述原始训练集和所述多个难例数据集的图片全部模型训练完m轮后,得到所述当前更新的船舶类别分类模型。

10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至6中任一项所述的船舶类别分类模型训练方法。

说明书 :

一种船舶类别分类模型训练方法、系统及计算机存储介质

技术领域

[0001] 本发明船舶分类技术领域,具体而言,涉及一种船舶类别分类模型训练方法、系统及计算机存储介质。

背景技术

[0002] 随着物流行业的发展,水上运输是主要途径之一,港口对船舶的管理的压力也随之增加。船舶类型对减少船舶管理压力是有效的方法之一,但目前船舶类别分类存在正确率低、错误率高,无法满足实际操作需求。船舶类型分类中出现误分类主要是因为:①个别船舶类型之间的差距小,外观接近;②由于造船厂家并不是同一家,因此船舶存在的问题是同一类别的船舶外观可能出现较大差异;③随着时间推移,船舶外观存在破损现象。针对上述原因,目前训练方法训练出来的船舶类别分类模型存在分类准确率低,错误率较多。
[0003] 针对现有技术中船舶类别分类模型存在正确率、精确率不高,错误率较多的问题,目前尚未提出有效的解决方案。

发明内容

[0004] 本发明实施例中提供一种船舶类别分类模型训练方法、系统及计算机存储介质,以解决现有技术中船舶类别分类模型存在正确率、精确率不高,错误率较多的问题。
[0005] 为达到上述目的,一方面,本发明提供了一种船舶类别分类模型训练方法,该方法包括:S1.将原始训练集分成多个小数据集;S2.将所述多个小数据集分为多组训练样本,所述训练样本的组数与所述小数据集个数相同:每组训练样本中包括所述多个小数据集,且其一小数据集为子测试集或子验证集,其余小数据集为子训练集;每组训练样本中的子测试集或子验证集不同;S3.将每组的子训练集、子测试集或子验证集进行训练,得到一一对应的多个船舶类别分类模型,以及得到一一对应的多个难例数据集;S4.将所述多个船舶类别分类模型进行融合,得到预训练模型;S5.加载所述预训练模型并通过图片融合操作对所述原始训练集和多个难例数据集进行m轮模型训练,得到当前更新的船舶类别分类模型;其中,m的值由训练结果确定,当训练结果符合预设要求时,停止继续训练;S6.通过所述当前更新的船舶类别分类模型对原始测试集进行测试,得到当前更新的难例数据集;通过所述当前更新的船舶类别分类模型对所述原始训练集和所述当前更新的难例数据集进行m+1轮模型训练,得到下一更新的船舶类别分类模型;S7.将所述下一更新的船舶类别分类模型作为当前更新的船舶类别分类模型,重复S6直至进行完预设轮模型训练,得到目标船舶类别分类模型。
[0006] 可选的,所述S3包括:从当前组的子训练集中抽取预设数量的图片作为当前迭代训练集进行模型训练,并得到正确图片、错误图片以及每一张图片的得分;判断所述当前迭代训练集的准确率;当所述准确率超过预设准确率时,则从所述当前迭代训练集中选取难例样本,并将所述难例样本和抽取的所述当前组的子训练集中没有进行模型训练的图片作为下次迭代训练集进行模型训练,其中每次迭代训练集的图片数量都为所述预设数量;反之,则直接从所述当前组的子训练集中没有进行模型训练的图片抽取预设数量的图片作为下次迭代训练集进行模型训练;将所述当前组的子训练集的图片全部模型训练完作为一轮模型训练并进行多轮模型训练得到当前船舶类别分类模型,以及当前难例数据集。
[0007] 可选的,所述当所述准确率超过预设准确率时,则从所述当前迭代训练集中选取难例样本包括:当所述准确率超过预设准确率时,判断所述当前迭代训练集的错误率是否超过预设错误率;若是,将所述错误图片按照得分从大到小进行排序,并根据所述排序顺序抽取错误图片作为所述难例样本;其中,所述抽取的错误图片数量不超过预设错误量;其中,预设错误量=预设错误率×预设数量;反之,将所述正确图片按照得分从小到大进行排序,并将所述错误图片和根据所述排序顺序抽取正确图片作为难例样本,其中,所述抽取的正确图片数量=预设错误率×预设数量‑错误图片数量;所述难例样本总数不超过所述预设错误量。
[0008] 可选的,所述将所述当前组的子训练集的图片全部模型训练完,得到当前船舶类别分类模型,以及当前难例数据集包括:将所述当前组的子训练集的图片全部模型训练完,得到当前船舶类别分类模型;通过所述当前船舶类别分类模型对当前组的子测试集或子验证集进行测试,得到所述当前组的子测试集或子验证集的错误图片、正确图片以及每张图片的得分;将所述当前组的子测试集或子验证集的错误图片和所述正确图片中得分小于预设值的图片作为所述当前难例数据集。
[0009] 可选的,所述S5包括:S51.加载所述预训练模型,并从所述原始训练集中抽取预设数量的图片和从所述多个难例数据集中抽取不超过所述预设数量的图片进行图像融合操作,得到当前迭代训练集并进行模型训练;S52.从所述原始训练集中没有进行模型训练的图片中抽取预设数量的图片和从所述多个难例数据集中没有进行模型训练的图片中抽取不超过所述预设数量的图片进行图片融合操作,得到下次迭代训练集并进行模型训练,将所述下次迭代训练集作为所述当前迭代训练集,重复所述S52,直至所述原始训练集和所述多个难例数据集的图片全部模型训练完,得到当前轮当前更新的船舶类别分类模型;S53.重复所述S51和S52,当所述原始训练集的图片全部模型训练完m轮后,得到所述当前更新的船舶类别分类模型。
[0010] 可选的,所述通过所述当前更新的船舶类别分类模型对所述原始训练集和所述当前更新的难例数据集进行m+1轮模型训练,得到下一更新的船舶类别分类模型包括:将所述当前更新的难例数据集平均分到m+1轮中多次迭代训练集中,其中每次迭代训练集中的图片数量均为所述预设数量;通过所述当前更新的船舶类别分类模型对所述原始训练集和平均分配的多次迭代训练集进行m+1轮的多次迭代模型训练,得到所述下一更新的船舶类别分类模型。
[0011] 另一方面,本发明提供了一种船舶类别分类模型训练系统,该系统包括:拆分单元,用于将原始训练集分成多个小数据集;分组单元,用于将所述多个小数据集分为多组训练样本,所述训练样本的组数与所述小数据集个数相同:每组训练样本中包括所述多个小数据集,且其一小数据集为子测试集或子验证集,其余小数据集为子训练集;每组训练样本中的子测试集或子验证集不同;训练单元,用于将每组的子训练集、子测试集或子验证集进行训练,得到一一对应的多个船舶类别分类模型,以及得到一一对应的多个难例数据集;融合单元,用于将所述多个船舶类别分类模型进行融合,得到预训练模型;第一更新单元,用于加载所述预训练模型并通过图片融合操作对所述原始训练集和多个难例数据集进行m轮模型训练,得到当前更新的船舶类别分类模型;第二更新单元,用于通过所述当前更新的船舶类别分类模型对原始测试集进行测试,得到当前更新的难例数据集;通过所述当前更新的船舶类别分类模型对所述原始训练集和所述当前更新的难例数据集进行m+1轮模型训练,得到下一更新的船舶类别分类模型;重复训练单元,用于将所述下一更新的船舶类别分类模型作为当前更新的船舶类别分类模型,重复所述第二更新单元直至进行完预设轮模型训练,得到目标船舶类别分类模型。
[0012] 可选的,所述训练单元包括:批次训练子单元,用于从当前组的子训练集中抽取预设数量的图片作为当前迭代训练集进行模型训练,并得到正确图片、错误图片以及每一张图片的得分;判断子单元,用于判断所述当前迭代训练集的准确率;难例样本选取子单元,用于当所述准确率超过预设准确率时,则从所述当前迭代训练集中选取难例样本,并将所述难例样本和抽取的所述当前组的子训练集中没有进行模型训练的图片作为下次迭代训练集进行模型训练,其中每次迭代训练集的图片数量都为所述预设数量;反之,则直接从所述当前组的子训练集中没有进行模型训练的图片抽取预设数量的图片作为下次迭代训练集进行模型训练;重复训练子单元,用于将所述当前组的子训练集的图片全部模型训练完作为一轮模型训练并进行多轮模型训练得到当前船舶类别分类模型,以及当前难例数据集。
[0013] 可选的,所述第一更新单元包括:第一抽取子单元,用于加载所述预训练模型,并从所述原始训练集中抽取预设数量的图片和从所述多个难例数据集中抽取不超过所述预设数量的图片进行图像融合操作,得到当前迭代训练集并进行模型训练;第二抽取子单元,用于从所述原始训练集中没有进行模型训练的图片中抽取预设数量的图片和从所述多个难例数据集中没有进行模型训练的图片中抽取不超过所述预设数量的图片进行图片融合操作,得到下次迭代训练集并进行模型训练,将所述下次迭代训练集作为所述当前迭代训练集,重复所述S52,直至所述原始训练集和所述多个难例数据集的图片全部模型训练完,得到当前轮当前更新的船舶类别分类模型;第一更新子单元,用于重复所述第一抽取子单元和第二抽取子单元,当所述原始训练集和所述多个难例数据集的图片全部模型训练完m轮后,得到所述当前更新的船舶类别分类模型。
[0014] 另一方面,本发明一种计算机存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的船舶类别分类模型训练方法。
[0015] 本发明的有益效果:
[0016] 本发明提供了一种船舶类别分类模型训练方法、系统及计算机存储介质,该方法通过在线难例挖掘和离线难例挖掘两种途径对错误图片进行训练。在线难例挖掘是采用上一批次训练的船舶类别分类模型对上一批次数据集进行测试,将错误图片和得分低的正确图片进行重采样,并将其放入到下一批次数据集中进行模型训练;离线难例挖掘采用预训练模型并通过数据增强方法对所述原始训练集和多个难例数据集进行m轮模型训练,得到当前更新的船舶类别分类模型;通过所述当前更新的船舶类别分类模型对原始测试集进行测试,得到当前更新的难例数据集。本发明的模型训练方法通过对错误图片进行训练,从而优化船舶类别分类模型,得到目标船舶类别分类模型,通过该目标船舶类别分类模型可准确的分辨出船舶类别,且错误率少,正确率高。

附图说明

[0017] 图1是本发明实施例提供的一种船舶类别分类模型训练的流程图;
[0018] 图2是本发明实施例提供的得到多个船舶类别分类模型以及多个难例数据集的流程图;
[0019] 图3是本发明实施例提供的得到当前更新的船舶类别分类模型的流程图;
[0020] 图4是本发明实施例提供的一种船舶类别分类模型训练系统的结构示意图;
[0021] 图5是本发明实施例提供的训练单元的结构示意图;
[0022] 图6是本发明实施例提供的第一更新单元的结构示意图。

具体实施方式

[0023] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0024] 随着物流行业的发展,水上运输是主要途径之一,港口对船舶的管理的压力也随之增加。船舶类型对减少船舶管理压力是有效的方法之一,但目前船舶类别分类存在正确率低、错误率高,无法满足实际操作需求。船舶类型分类中出现误分类主要是因为:①个别船舶类型之间的差距小,外观接近;②由于造船厂家并不是同一家,因此船舶存在的问题是同一类别的船舶外观可能出现较大差异;③随着时间推移,船舶外观存在破损现象。针对上述原因,目前训练方法训练出来的船舶类别分类模型存在分类准确率低,错误率高问题。
[0025] 因而,本发明提供了一种船舶类别分类模型多阶段难例挖掘训练方法,图1是本发明实施例提供的一种船舶类别分类模型训练方法的流程图,如图1所示,该方法包括:
[0026] S1.将原始训练集分成多个小数据集;
[0027] 在一个可选的实施方式中,本发明中,优选的,将原始训练集分成5个小数据集。分别为小数据集1,小数据集2,小数据集3,小数据集4,小数据集5。
[0028] S2.将所述多个小数据集分为多组训练样本,所述训练样本的组数与所述小数据集个数相同:
[0029] 每组训练样本中包括所述多个小数据集,且其一小数据集为子测试集或子验证集,其余小数据集为子训练集;每组训练样本中的子测试集或子验证集不同;
[0030] 在一个可选的实施方式中,本发明中,将小数据集1,小数据集2,小数据集3,小数据集4,小数据集5分为多组训练样本;
[0031] 第一组训练样本:子训练集:小数据集1,小数据集2,小数据集3,小数据集5,子测试集或子验证集:小数据集4;
[0032] 第二组训练样本:子训练集:小数据集1,小数据集2,小数据集5,小数据集4,子测试集或子验证集:小数据集3;
[0033] 第三组训练样本:子训练集:小数据集1,小数据集5,小数据集3,小数据集4,子测试集或子验证集:小数据集2;
[0034] 第四组训练样本:子训练集:小数据集5,小数据集2,小数据集3,小数据集4,子测试集或子验证集:小数据集1;
[0035] 第五组训练样本:子训练集:小数据集4,小数据集2,小数据集3,小数据集1,子测试集或子验证集:小数据集5;
[0036] 其中,每组训练样本的子训练集中的小数据集没有顺序限制。
[0037] S3.将每组的子训练集、子测试集或子验证集进行训练,得到一一对应的多个船舶类别分类模型,以及得到一一对应的多个难例数据集;
[0038] 本发明中,将每组的子训练集、子测试集或子验证集进行训练,在训练过程中增加每次迭代难例挖掘方法,通过对当前迭代训练集中不包含上次迭代得到的难例样本的预测结果中挖掘错误样本和置信度低的正确样本集参与到下次迭代训练集中,得到一一对应的多个船舶类别分类模型,以及得到一一对应的多个难例数据集。
[0039] 在一个可选的实施方式中,图2是本发明实施例提供的得到多个船舶类别分类模型以及多个难例数据集的流程图,如图2所示,所述S3包括:
[0040] S31.从当前组的子训练集中抽取预设数量的图片作为当前迭代训练集进行模型训练,并得到分类正确图片、错误图片以及每一张图片的得分;
[0041] 本发明中,预设数量设置为32,若当前组的子训练集为第一组训练样本中的子训练集,从第一训练样本中的子训练集(小数据集1、小数据集2、小数据集3、小数据集5)中随机抽取32张图片,将这32张图片作为当前迭代训练集进行模型训练,得到这32张图片中的正确图片(即32张图片中哪些图片是准确的)、32张图片中的错误图片(即32张图片中哪些是错误的)以及32张图片中每一张图片的得分。
[0042] S32.判断所述当前迭代训练集的准确率;
[0043] 例如:正确图片为28张,错误图片为4张,则当前迭代训练集的准确率为28/(4+28)=87.5%。
[0044] S33.当所述准确率超过预设准确率时,则从所述当前迭代训练集中选取难例样本,并将所述难例样本和抽取的所述当前组的子训练集中没有进行模型训练的图片作为下次迭代训练集进行模型训练,其中每次迭代训练集的图片数量都为所述预设数量;反之,则直接从所述当前组的子训练集中没有进行模型训练的图片抽取预设数量的图片作为下次迭代训练集进行模型训练;
[0045] 本发明中,设置预设准确率为65%,当前迭代训练集的准确率87.5%超过预设准确率65%,则从所述当前迭代训练集中选取难例样本,将所述难例样本和抽取的所述第一训练样本的子训练集中没有进行模型训练的图片作为下次迭代训练集进行模型训练,其中每次迭代训练集的图片数量都为所述预设数量;
[0046] 例如:难例样本数量为8,则在所述第一训练样本的子训练集中没有进行模型训练的图片中抽取24张,将所述8张难例样本和抽取的24张图片作为下次迭代训练集进行模型训练。
[0047] 反之,例如:当前迭代训练集中正确图片为20张,错误图片为12张,则当前迭代训练集的准确率为20/(20+12)=62.5%。当前迭代训练集的准确率62.5%小于预设准确率65%,则直接从第一训练样本的子训练集中没有进行模型训练的图片抽取32张图片作为下次迭代训练集进行模型训练。
[0048] 在一个可选的实施方式中,所述当所述准确率超过预设准确率时,则从所述当前迭代训练集选取难例样本包括:当所述准确率超过预设准确率时,判断所述当前迭代训练集的错误率是否超过预设错误率;
[0049] 本发明中,设置预设错误率为25%。
[0050] 若是,将所述错误图片按照得分从大到小进行排序,并根据所述排序顺序抽取错误图片作为所述难例样本;其中,所述抽取的错误图片数量不超过预设错误量;
[0051] 其中,预设错误量=预设错误率×预设数量;
[0052] 例如:本发明中,第一训练样本的当前迭代训练集的准确率为68.75%,其超过预设准确率65%,此时第一训练样本的当前迭代训练集的错误率为1‑68.75%=31.25%。当前迭代训练集的错误率31.25%超过预设错误率25%,则将错误图片(32×31.25%=10张)按得分从大到小进行排序,假设排序后的得分分别为:0.9分、0.88分、0.87分、0.85分、0.8分、0.76分、0.74分、0.7分、0.65分、0.63分。
[0053] 根据所述排序顺序抽取错误图片作为所述难例样本;其中,所述抽取的错误图片数量不超过预设错误量;
[0054] 其中,预设错误量=25%×32=8张;
[0055] 则将0.9分、0.88分、0.87分、0.85分、0.8分、0.76分、0.74分、0.7分对应的错误图片作为难例样本。
[0056] 反之,将所述正确图片按照置信度得分从小到大进行排序,并将所述错误图片和根据所述排序顺序抽取置信度得分低的正确图片作为难例样本。
[0057] 其中,所述抽取的正确图片数量=预设错误率×预设数量‑错误图片数量;
[0058] 所述难例样本总数不超过所述预设错误量。
[0059] 例如:本发明中,第一训练样本的当前迭代训练集的准确率为87.5%,其超过预设准确率65%,此时第一训练样本的当前迭代训练集的错误率为1‑87.5%=12.5%,将正确图片(32×87.5%=28张)按照得到从小到大进行排序,将所述错误图片(32×12.5%=4张)和根据所述排序顺序抽取正确图片作为难例样本。其中,所述抽取的正确图片数量=25%×32‑4=4张;本发明中,难例样本总数不超过8张。
[0060] 其中,当前迭代训练集不包含上次迭代训练集得到的难例样本。
[0061] 类似的,从下次迭代训练集中选取难例样本时不包含当前迭代训练集得到的难例样本。
[0062] 例如:当前迭代训练集得到的难例样本数量为8,则在所述第一训练样本的子训练集中没有进行模型训练的图片中抽取24张,将所述8张难例样本和抽取的24张图片作为下次迭代训练集进行模型训练。在所述下次迭代训练集中抽取难例样本时,则从下次迭代训练集中选取不包含当前迭代训练集得到的难例样本(即8张难例样本)。S34.将所述当前组的子训练集的图片全部模型训练完作为一轮模型训练并进行多轮模型训练,得到当前船舶类别分类模型,以及当前难例数据集。
[0063] 具体的,将所述当前组的子训练集的图片全部模型训练完,进行多轮训练直到损失值和准确率趋于稳定,得到当前船舶类别分类模型,以及当前难例数据集。
[0064] 在一个可选的实施方式中,所述S34包括:
[0065] 将所述当前组的子训练集的图片全部模型训练完作为一轮模型训练并进行多轮模型训练,得到当前船舶类别分类模型,得到当前船舶类别分类模型;
[0066] 在一个可选的实施方式中,假设第一训练样本的子训练集总共有320张图片,则需要将该320张图片全部模型训练完为一轮,进行多轮模型训练,达到模型的分类准确率和损失值基本趋于一个稳定值时,模型训练结束,得到第一训练样本对应的船舶类别分类模型。
[0067] 通过所述当前船舶类别分类模型对当前组的子测试集或子验证集进行测试,得到所述当前组的子测试集或子验证集的错误图片、正确图片以及每张图片的得分;
[0068] 通过该船舶类别分类模型对第一训练样本的子测试集或子验证集进行测试,得到第一训练样本的子测试集或子验证集的错误图片、正确图片以及每张图片的得分;
[0069] 将所述当前组的子测试集或子验证集的错误图片和所述正确图片中得分小于预设值的图片作为所述当前难例数据集。
[0070] 本发明中,设置预设值为0.6。将第一训练样本的子测试集或子验证集的错误图片和正确图片中得分小于0.6的图片作为第一训练样本的难例数据集。
[0071] 同样的方法,会得到第二训练样本对应的船舶类别分类模型以及难例数据集,本发明中有5组训练样本,因而会得到5组训练样本一一对应的5个船舶类别分类模型以及一一对应的5个难例数据集。
[0072] S4.将所述多个船舶类别分类模型进行融合,得到预训练模型;
[0073] 本发明中,将5个船舶类别分类模型进行融合,得到预训练模型。
[0074] 具体的,融合公式为:
[0075]             (1)
[0076]          (2)
[0077] 其中, 表示第y个船舶类别分类模型的准确率,本发明中y为1,2,3,4,5;表示为正确图片且得分大于0.6的原始测试集的数量;
表示原始测试集图片数量; 表示预训练模型; 表示第i个船
舶类别分类模型的准确率,k表示船舶类别分类模型的总数量,本发明中为5,表示第i个船舶类别分类模型的参数。
[0078] S5.加载所述预训练模型并通过图片融合操作对所述原始训练集和多个难例数据集进行m轮模型训练,得到当前更新的船舶类别分类模型;其中,m的值由训练结果确定,当训练结果符合预设要求时,停止继续训练。
[0079] 本发明中,所述图片融合操作为mix up操作。
[0080] 在一个可选的实施方式中,图3是本发明实施例提供的得到当前更新的船舶类别分类模型的流程图,如图3所示,所述S5包括:
[0081] S51.加载所述预训练模型,并从所述原始训练集中抽取预设数量的图片和从所述多个难例数据集中抽取不超过所述预设数量的图片进行图像融合操作,得到当前迭代训练集并进行模型训练;
[0082] 本发明中,加载所述预训练模型,并从原始训练集中抽取32张图片和从所述多个难例数据集中随机抽取一定数量的图片进行mix up操作得到当前迭代训练集并进行模型训练,具体抽取方法为:设置一个是否抽取难例数据集的抽取阈值,从原始训练集中抽取一张图片,随机选取一个值判断是否大于这个抽取阈值,如果大于则从5个难例数据集中抽取一张图片,将其和从原始训练集中抽取的图片进行mix up(图片融合)操作,得到融合后的图片。反之,若不超过则不从5个难例数据集中抽取图片,直接使用从原始训练集中抽取的图片。按照该抽取方法,设置的阈值不再变化,因而得到32张图片作为当前迭代训练集。
[0083] 32张图片在模型训练完后,会得到特征层,该特征层通过sigmoid会预测这32张图片中每张图片包含哪些船舶类别,以及每个类别的置信度;sigmoid的具体公式为:
[0084]                          (3)
[0085]  (4)
[0086] 公式(3)中,x是一个数组,表示特征层的多个特征值, 表示一张图片的推理结果,这个结果是和x对应的数组,数组中的不同位置代表不同类别,数组中的值为对应类别的 置信度;公式(4)中, 为一次 迭代训练集的平均损失值,表示的是每张图片每个类别和真实图片类别一致的损失值,
表示的是每张图片每个类别和真实图片类别不一致的损失值,n表示
一次迭代训练集的图片数量,本发明中为32,z表示有多少个类别,本发明中为5。
[0087] S52.从所述原始训练集中没有进行模型训练的图片中抽取预设数量的图片和从所述多个难例数据集中没有进行模型训练的图片中抽取不超过所述预设数量的图片进行图片融合操作,得到下次迭代训练集并进行模型训练,将所述下次迭代训练集作为所述当前迭代训练集,重复所述S52,直至所述原始训练集和所述多个难例数据集的图片全部模型训练完,得到当前轮当前更新的船舶类别分类模型;
[0088] 本发明中,从所述原始训练集和所述多个难例数据集中没有进行模型训练的图片中抽取预设数量的图片作为下次迭代训练集,按照方法为S51的抽取方法抽取,设置一个是否抽取难例数据集的抽取阈值,从原始训练集中没有进行模型训练的图片中抽取一张图片,随机选取一个值判断是否大于这个阈值,如果大于则从5个难例数据集中没有进行模型训练的图片中抽取一张图片进行mix up(图片融合)操作,得到融合后的图片。反之,若不超过则不从5个难例数据集中没有进行模型训练的图片中抽取图片,直接使用从原始训练集中没有进行模型训练的图片中抽取的图片。直到从原始训练集中没有进行模型训练的图片中抽取到32张图片,图片不再抽取,然后将得到的数据集作为这个迭代的训练集(即下次迭代训练集);将所述下次迭代训练集作为所述当前迭代训练集,重复所述S52,直至所述原始训练集和所述多个难例数据集的图片全部模型训练完,得到当前轮当前更新的船舶类别分类模型;
[0089] S53.重复所述S51和S52,当所述原始训练集的图片全部模型训练完m轮后,得到所述当前更新的船舶类别分类模型。
[0090] 重复上述S51和S52,本发明中,将原始训练集一共训练17轮,通过S5的方法将原始训练集和5个难例数据集的图片训练m轮(本发明中设置n为12),得到当前更新的船舶类别分类模型。
[0091] S6.通过所述当前更新的船舶类别分类模型对原始测试集进行测试,得到当前更新的难例数据集;通过所述当前更新的船舶类别分类模型对所述原始训练集和所述当前更新的难例数据集进行m+1轮模型训练,得到下一更新的船舶类别分类模型,[0092] 具体的,通过所述当前更新的船舶类别分类模型(本发明中为第12轮得到的船舶类别分类模型)对所述原始训练集和所述当前更新的难例数据集(本发明中为第12轮得到的难例数据集)进行m+1轮(本发明中为第13轮)模型训练,得到下一更新的船舶类别分类模型包括:
[0093] 将所述当前更新的难例数据集平均分到m+1轮中多次迭代训练集中,其中每次迭代训练集中的图片数量均为所述预设数量;
[0094] 本发明中,将当前更新的难例数据集平均分到13轮中多次迭代训练集中,具体的,假设每轮包括10次迭代训练集;当前更新的难例数据集(即第12轮得到的难例数据集)为10张难例样本,则每次迭代训练集中放一张当前更新的难例样本。这样可以使每次迭代训练集都包含错误图片。
[0095] 进一步的,假设每轮包括20次迭代训练集;当前更新的难例数据集为12张难例样本,则在12张难例样本中随机抽取8张重复使用,即随机抽取8张难例样本再放到原先12张难例样本中,这样总共有20张难例样本。每次迭代训练集中放一张当前更新的难例样本。
[0096] 更进一步的,假设每轮包括10次迭代训练集;当前更新的难例数据集为13张难例样本,则在13张难例样本中随机抽取7张重复使用,即随机抽取7张难例样本再放到原先13张难例样本中,这样总共有20张难例样本。每次迭代训练集中放两张当前更新的难例样本。
[0097] 通过所述当前更新的船舶类别分类模型对所述原始训练集和平均分配的多次迭代训练集进行m+1轮的多次迭代模型训练,得到所述下一更新的船舶类别分类模型。
[0098] 具体的,通过所述当前更新的船舶类别分类模型对原始训练集和平均分配的多次迭代训练集进行第13轮的多次迭代模型训练,得到下一更新的船舶类别分类模型,第13轮模型损失计算方法依据第12轮每张图片预测结果和真实标签的损失值得到如公式(5),(6),(7)。
[0099] 依据第12轮模型训练后,计算第12轮所有图片的每个类别的损失值(总共有5类)(需要注意的是:这里的损失值不带有权重,直接是每张图片预测结果和真实结果的差别),利用公式(5)、(6)得到下一轮(第13轮)网络模型训练损失计算每个类别的权重;
[0100] 具体公式为:
[0101]                                  (5)
[0102] (6)
[0103] 公式(5)、(6)实现依据每个类别损失值计算类别的权重;公式(5) 表示上一轮所有图片的一个类别的损失值,该损失值没有权重值(即每个类别的计算是等权重的,因为需要评估模型对哪个类别分类好,哪个类别分类不好,所以不能加权重,加权重就无法实际反映模型对类别的分类效果好坏,但在模型学习中要加权重原因,相当于对自己薄弱项加大学习);k为0,1,2,3,4;公式(6)中 表示类别中其中一类权重,本申请共有5类;对公式(5)中 所有权重排序取中间值;
[0104] 进一步的,在损失函数的基础上增加类别权重,如下:
[0105](7)
[0106] 该公式(7)是计算每次迭代时的损失值,在每个类别增加权重,加大船舶类别分类模型对学习不好的类别学习,减少对学习好的类别关注。
[0107] S7.将所述下一更新的船舶类别分类模型作为当前更新的船舶类别分类模型,重复S6的上述过程直至进行完预设轮(本发明中为后5轮)模型训练;
[0108] S8.得到目标船舶类别分类模型。
[0109] 本发明中通过加入类别权重,加强模型对误识别率高的类别学习。
[0110] 图4是本发明实施例提供的一种船舶类别分类模型训练系统的结构示意图,如图4所示,该系统包括:
[0111] 拆分单元201,用于将原始训练集分成多个小数据集;
[0112] 在一个可选的实施方式中,本发明中,优选的,将原始训练集分成5个小数据集。分别为小数据集1,小数据集2,小数据集3,小数据集4,小数据集5。
[0113] 分组单元202,用于将所述多个小数据集分为多组训练样本,所述训练样本的组数与所述小数据集个数相同:
[0114] 每组训练样本中包括所述多个小数据集,且其一小数据集为子测试集或子验证集,其余小数据集为子训练集;每组训练样本中的子测试集或子验证集不同;
[0115] 在一个可选的实施方式中,本发明中,将小数据集1,小数据集2,小数据集3,小数据集4,小数据集5分为多组训练样本;
[0116] 第一组训练样本:子训练集:小数据集1,小数据集2,小数据集3,小数据集5,子测试集或子验证集:小数据集4;
[0117] 第二组训练样本:子训练集:小数据集1,小数据集2,小数据集5,小数据集4,子测试集或子验证集:小数据集3;
[0118] 第三组训练样本:子训练集:小数据集1,小数据集5,小数据集3,小数据集4,子测试集或子验证集:小数据集2;
[0119] 第四组训练样本:子训练集:小数据集5,小数据集2,小数据集3,小数据集4,子测试集或子验证集:小数据集1;
[0120] 第五组训练样本:子训练集:小数据集4,小数据集2,小数据集3,小数据集1,子测试集或子验证集:小数据集5;
[0121] 其中,每组训练样本的子训练集中的小数据集没有顺序限制。
[0122] 训练单元203,用于将每组的子训练集、子测试集或子验证集进行训练,得到一一对应的多个船舶类别分类模型,以及得到一一对应的多个难例数据集;
[0123] 本发明中,将每组的子训练集、子测试集或子验证集进行训练,在训练过程中增加每次迭代难例挖掘方法,通过对当前迭代训练集中不包含上次迭代得到的难例样本的预测结果中挖掘错误样本和置信度低的正确样本集参与到下次迭代训练集中,得到一一对应的多个船舶类别分类模型,以及得到一一对应的多个难例数据集。
[0124] 在一个可选的实施方式中,图5是本发明实施例提供的训练单元的结构示意图,如图5所示,所述训练单元203包括:
[0125] 批次训练子单元2031,用于从当前组的子训练集中抽取预设数量的图片作为当前迭代训练集进行模型训练,并得到分类正确图片、错误图片以及每一张图片的得分;
[0126] 本发明中,预设数量设置为32,若当前组的子训练集为第一组训练样本中的子训练集,从第一训练样本中的子训练集(小数据集1、小数据集2、小数据集3、小数据集5)中随机抽取32张图片,将这32张图片作为当前迭代训练集进行模型训练,得到这32张图片中的正确图片(即32张图片中哪些图片是准确的)、32张图片中的错误图片(即32张图片中哪些是错误的)以及32张图片中每一张图片的得分。
[0127] 判断子单元2032,用于判断所述当前迭代训练集的准确率;
[0128] 例如:正确图片为28张,错误图片为4张,则当前迭代训练集的准确率为28/(4+28)=87.5%。
[0129] 难例样本选取子单元2033,用于当所述准确率超过预设准确率时,则从所述当前迭代训练集中选取难例样本,并将所述难例样本和抽取的所述当前组的子训练集中没有进行模型训练的图片作为下次迭代训练集进行模型训练,其中每次迭代训练集的图片数量都为所述预设数量;反之,则直接从所述当前组的子训练集中没有进行模型训练的图片抽取预设数量的图片作为下次迭代训练集进行模型训练;
[0130] 本发明中,设置预设准确率为65%,当前迭代训练集的准确率87.5%超过预设准确率65%,则从所述当前迭代训练集中选取难例样本,将所述难例样本和抽取的所述第一训练样本的子训练集中没有进行模型训练的图片作为下次迭代训练集进行模型训练,其中每次迭代训练集的图片数量都为所述预设数量;
[0131] 例如:难例样本数量为8,则在所述第一训练样本的子训练集中没有进行模型训练的图片中抽取24张,将所述8张难例样本和抽取的24张图片作为下次迭代训练集进行模型训练。
[0132] 反之,例如:当前迭代训练集中正确图片为20张,错误图片为12张,则当前迭代训练集的准确率为20/(20+12)=62.5%。当前迭代训练集的准确率62.5%小于预设准确率65%,则直接从第一训练样本的子训练集中没有进行模型训练的图片抽取32张图片作为下次迭代训练集进行模型训练。
[0133] 在一个可选的实施方式中,所述当所述准确率超过预设准确率时,则从所述当前迭代训练集中选取难例样本包括:
[0134] 当所述准确率超过预设准确率时,判断所述当前迭代训练集的错误率是否超过预设错误率;
[0135] 本发明中,设置预设错误率为25%。
[0136] 若是,将所述错误图片按照得分从大到小进行排序,并根据所述排序顺序抽取错误图片作为所述难例样本;其中,所述抽取的错误图片数量不超过预设错误量;
[0137] 其中,预设错误量=预设错误率×预设数量;
[0138] 例如:本发明中,第一训练样本的当前迭代训练集的准确率为68.75%,其超过预设准确率65%,此时第一训练样本的当前迭代训练集的错误率为1‑68.75%=31.25%。当前迭代训练集的错误率31.25%超过预设错误率25%,则将错误图片(32×31.25%=10张)按得分从大到小进行排序,假设排序后的得分分别为:0.9分、0.88分、0.87分、0.85分、0.8分、0.76分、0.74分、0.7分、0.65分、0.63分。
[0139] 根据所述排序顺序抽取错误图片作为所述难例样本;其中,所述抽取的错误图片数量不超过预设错误量;
[0140] 其中,预设错误量=25%×32=8张;
[0141] 则将0.9分、0.88分、0.87分、0.85分、0.8分、0.76分、0.74分、0.7分对应的错误图片作为难例样本。
[0142] 反之,将所述正确图片按照置信度得分从小到大进行排序,并将所述错误图片和根据所述排序顺序抽取置信度得分低的抽取正确图片作为难例样本。
[0143] 其中,所述抽取的正确图片数量=预设错误率×预设数量‑错误图片数量;
[0144] 所述难例样本总数不超过所述预设错误量。
[0145] 例如:本发明中,第一训练样本的当前迭代训练集的准确率为87.5%,其超过预设准确率65%,此时第一训练样本的当前迭代训练集的错误率为1‑87.5%=12.5%,将正确图片(32×87.5%=28张)按照得到从小到大进行排序,将所述错误图片(32×12.5%=4张)和根据所述排序顺序抽取正确图片作为难例样本。其中,所述抽取的正确图片数量=25%×32‑4=4张;本发明中,难例样本总数不超过8张。
[0146] 其中,当前迭代训练集不包含上次迭代训练集得到的难例样本。
[0147] 类似的,从下次迭代训练集中选取难例样本时不包含当前迭代训练集得到的难例样本。
[0148] 例如:当前迭代训练集得到的难例样本数量为8,则在所述第一训练样本的子训练集中没有进行模型训练的图片中抽取24张,将所述8张难例样本和抽取的24张图片作为下次迭代训练集进行模型训练。在所述下次迭代训练集中抽取难例样本时,则从下次迭代训练集中选取不包含当前迭代训练集得到的难例样本(即8张难例样本)。
[0149] 重复训练子单元2034,用于将所述当前组的子训练集的图片全部模型训练完作为一轮模型训练并进行多轮模型训练,得到当前船舶类别分类模型,以及当前难例数据集。
[0150] 具体的,将所述当前组的子训练集的图片全部模型训练完,进行多轮训练直到损失值和准确率趋于稳定,得到当前船舶类别分类模型,以及当前难例数据集。
[0151] 在一个可选的实施方式中,所述重复训练子单元2034包括:
[0152] 将所述当前组的子训练集的图片全部模型训练完作为一轮模型训练并进行多轮模型训练,得到当前船舶类别分类模型,得到当前船舶类别分类模型;
[0153] 在一个可选的实施方式中,假设第一训练样本的子训练集总共有320张图片,则需要将该320张图片全部模型训练完为一轮,进行多轮模型训练,达到模型的分类准确率和损失值基本趋于一个稳定值时,模型训练结束,得到第一训练样本对应的船舶类别分类模型。
[0154] 通过所述当前船舶类别分类模型对当前组的子测试集或子验证集进行测试,得到所述当前组的子测试集或子验证集的错误图片、正确图片以及每张图片的得分;
[0155] 通过该船舶类别分类模型对第一训练样本的子测试集或子验证集进行测试,得到第一训练样本的子测试集或子验证集的错误图片、正确图片以及每张图片的得分;
[0156] 将所述当前组的子测试集或子验证集的错误图片和所述正确图片中得分小于预设值的图片作为所述当前难例数据集。
[0157] 本发明中,设置预设值为0.6。将第一训练样本的子测试集或子验证集的错误图片和正确图片中得分小于0.6的图片作为第一训练样本的难例数据集。
[0158] 同样的方法,会得到第二训练样本对应的船舶类别分类模型以及难例数据集,本发明中有5组训练样本,因而会得到5组训练样本一一对应的5个船舶类别分类模型以及一一对应的5个难例数据集。
[0159] 融合单元204,用于将所述多个船舶类别分类模型进行融合,得到预训练模型;
[0160] 本发明中,将5个船舶类别分类模型进行融合,得到预训练模型。
[0161] 具体的,融合公式为:
[0162]                     (1)
[0163]          (2)
[0164] 其中, 表示第y个船舶类别分类模型的准确率,本发明中y为1,2,3,4,5;表示为正确图片且得分大于0.6的原始测试集的数量;
表示原始测试集图片数量; 表示预训练模型; 表示第i个船
舶类别分类模型的准确率,k表示船舶类别分类模型的总数量,本发明中为5,表示第i个船舶类别分类模型的参数。
[0165] 第一更新单元205,用于加载所述预训练模型并通过图片融合操作对所述原始训练集和多个难例数据集进行m轮模型训练,得到当前更新的船舶类别分类模型;
[0166] 本发明中,所述图片融合操作为mix up操作。
[0167] 在一个可选的实施方式中,图6是本发明实施例提供的第一更新单元的结构示意图,如图6所示,所述第一更新单元205包括:
[0168] 第一抽取子单元2051,用于加载所述预训练模型,并从所述原始训练集中抽取预设数量的图片和从所述多个难例数据集中抽取不超过所述预设数量的图片进行图像融合操作,得到当前迭代训练集并进行模型训练;
[0169] 本发明中,加载所述预训练模型,并从原始训练集中抽取32张图片和从所述多个难例数据集中随机抽取一定数量的图片进行mix up操作得到当前迭代训练集并进行模型训练,具体抽取方法为:设置一个是否抽取难例数据集的抽取阈值,从原始训练集中抽取一张图片,随机选取一个值判断是否大于这个抽取阈值,如果大于则从5个难例数据集中抽取一张图片,将其和从原始训练集中抽取的图片进行mix up(图片融合)操作,得到融合后的图片。反之,若不超过则不从5个难例数据集中抽取图片,直接使用从原始训练集中抽取的图片。按照该抽取方法,设置的阈值不再变化,因而得到32张图片作为当前迭代训练集。
[0170] 32张图片在模型训练完后,会得到特征层,该特征层通过sigmoid会预测这32张图片中每张图片包含哪些船舶类别,以及每个类别的置信度;sigmoid的具体公式为:
[0171]                          (3)
[0172]  (4)
[0173] 公式(3)中,x是一个数组,表示特征层的多个特征值, 表示一张图片的推理结果,这个结果是和x对应的数组,数组中的不同位置代表不同类别,数组中的值为对应类别的 置信度;公式(4)中, 为一次 迭代训练集的平均损失值,表示的是每张图片每个类别和真实图片类别一致的损失值,
表示的是每张图片每个类别和真实图片类别不一致的损失值,n表示
一次迭代训练集的图片数量,本发明中为32,z表示有多少个类别,本发明中为5。
[0174] 第二抽取子单元2052,用于从所述原始训练集中没有进行模型训练的图片中抽取预设数量的图片和从所述多个难例数据集中没有进行模型训练的图片中抽取不超过所述预设数量的图片进行图片融合操作,得到下次迭代训练集并进行模型训练,将所述下次迭代训练集作为所述当前迭代训练集,重复所述S52,直至所述原始训练集和所述多个难例数据集的图片全部模型训练完,得到当前轮当前更新的船舶类别分类模型;
[0175] 本发明中,从所述原始训练集和所述多个难例数据集中没有进行模型训练的图片中抽取预设数量的图片作为下次迭代训练集,按照方法为S51的抽取方法抽取,设置一个是否抽取难例数据集的抽取阈值,从原始训练集中没有进行模型训练的图片中抽取一张图片,随机选取一个值判断是否大于这个阈值,如果大于则从5个难例数据集中没有进行模型训练的图片中抽取一张图片进行mix up(图片融合)操作,得到融合后的图片。反之,若不超过则不从5个难例数据集中没有进行模型训练的图片中抽取图片,直接使用从原始训练集中没有进行模型训练的图片中抽取的图片。直到从原始训练集中没有进行模型训练的图片中抽取到32张图片,图片不再抽取,然后将得到的数据集作为这个迭代的训练集(即下次迭代训练集);将所述下次迭代训练集作为所述当前迭代训练集,重复所述S52,直至所述原始训练集和所述多个难例数据集的图片全部模型训练完,得到当前轮当前更新的船舶类别分类模型;
[0176] 第一更新子单元2053,用于重复所述第一抽取子单元2051和第二抽取子单元2052,当所述原始训练集和所述多个难例数据集的图片全部模型训练完m轮后,得到所述当前更新的船舶类别分类模型。
[0177] 重复上述第一抽取子单元2051和第二抽取子单元2052,本发明中,将原始训练集一共训练17轮,通过S5的方法将原始训练集和5个难例数据集的图片训练m轮(本发明中设置n为12),得到当前更新的船舶类别分类模型。
[0178] 第二更新单元206,用于通过所述当前更新的船舶类别分类模型对原始测试集进行测试,得到当前更新的难例数据集;通过所述当前更新的船舶类别分类模型对所述原始训练集和所述当前更新的难例数据集进行m+1轮模型训练,得到下一更新的船舶类别分类模型,
[0179] 具体的,通过所述当前更新的船舶类别分类模型对原始训练集和平均分配的多次迭代训练集进行第13轮的多次迭代模型训练,得到下一更新的船舶类别分类模型,第13轮模型损失计算方法依据第12轮每张图片预测结果和真实标签的损失值得到如公式(5),(6),(7)。
[0180] 依据第12轮模型训练后,计算第12轮所有图片的每个类别的损失值(总共有5类)(需要注意的是:这里的损失值不带有权重,直接是每张图片预测结果和真实结果的差别),利用公式(5)、(6)得到下一轮(第13轮)网络模型训练损失计算每个类别的权重;
[0181] 具体公式为:
[0182]                                   (5)
[0183] (6)
[0184] 公式(5)、(6)实现依据每个类别损失值计算类别的权重;公式(5) 表示上一轮所有图片的一个类别的损失值,该损失值没有权重值(即每个类别的计算是等权重的,因为需要评估模型对哪个类别分类好,哪个类别分类不好,所以不能加权重,加权重就无法实际反映模型对类别的分类效果好坏,但在模型学习中要加权重原因,相当于对自己薄弱项加大学习);k为0,1,2,3,4;公式(6)中 表示类别中其中一类权重,本申请共有5类;对公式(5)中 所有权重排序取中间值;
[0185] 进一步的,在损失函数的基础上增加类别权重,如下:
[0186](7)
[0187] 该公式(7)是计算每次迭代时的损失值,在每个类别增加权重,加大船舶类别分类模型对学习不好的类别学习,减少对学习好的类别关注。
[0188] 重复训练单元207,用于将所述下一更新的船舶类别分类模型作为当前更新的船舶类别分类模型,重复所述第二更新单元的上述过程直至进行完预设轮(本发明中为后5轮)模型训练,得到目标船舶类别分类模型。
[0189] 本发明中通过加入类别权重,加强模型对误识别率高的类别学习。
[0190] 本发明的有益效果:
[0191] 本发明提供了一种船舶类别分类模型训练方法、系统及计算机存储介质,该方法通过在线难例挖掘和离线难例挖掘两种途径对错误图片进行训练。在线难例挖掘是采用上一批次训练的船舶类别分类模型对上一批次数据集进行测试,将错误图片和得分低的正确图片进行重采样,并将其放入到下一批次数据集中进行模型训练;离线难例挖掘采用预训练模型并通过数据增强方法对所述原始训练集和多个难例数据集进行m轮模型训练,得到当前更新的船舶类别分类模型;通过所述当前更新的船舶类别分类模型对原始测试集进行测试,得到当前更新的难例数据集。本发明的模型训练方法通过对错误图片进行训练,从而优化船舶类别分类模型,得到目标船舶类别分类模型,通过该目标船舶类别分类模型可准确的分辨出船舶类别,且错误率少,正确率高。
[0192] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。