提供AI模型的方法、AI平台、计算设备及存储介质与流程

文档序号:24335374发布日期:2021-03-19 12:15阅读:175来源:国知局
提供AI模型的方法、AI平台、计算设备及存储介质与流程

本申请涉及人工智能技术领域,特别涉及一种提供ai模型的方法、ai平台、计算设备及存储介质。



背景技术:

ai模型的获取过程一般是基于训练数据对ai模型进行训练,得到最终的ai模型。由于仅基于训练数据对初始ai模型进行训练,没有对ai模型进行优化,所以会导致ai模型的推理能力较低。



技术实现要素:

本申请提供一种提供人工智能ai模型的方法,该方法可为在ai平台注册账号的开发者提供推理能力更强的ai模型。

第一方面,本申请提供了一种提供人工智能ai模型的方法,该方法包括:

ai平台接收第一用户的未标注的多个图像,第一用户为在所述ai平台注册账号的实体;所述ai平台根据初始ai模型标注所述多个图像;所述ai平台根据标注结果确定所述多个图像中的难例;所述ai平台利用所述难例训练所述初始ai模型以获得优化ai模型。

通过该方法,ai平台可向在平台已注册的第一用户(例如:ai模型开发者)提供推理能力更强的优化ai模型,使得第一用户可方便快捷地获得优化ai模型,节约时间和人力投入。

在一种可能的实现方式中,ai平台根据标注结果确定所述多个图像中的难例,包括:ai平台向第一用户提供确认界面,在确认界面中向第一用户展示候选难例,所述候选难例为所述多个图像中的至少一个图像;ai平台根据所述第一用户在确认界面上的操作,确定候选难例中的难例。ai平台通过与第一用户交互,获得第一用户确认后的难例,提高了难例的准确性,进一步地提高了通过这些确定后的难例训练后的优化ai模型的推理能力。

在一种可能的实现方式中,该方法还包括:ai平台接收第一用户对所述难例的矫正标注;所述ai平台利用所述难例训练所述初始ai模型以获得优化ai模型包括:所述ai平台利用所述难例和对应的矫正标注训练所述初始ai模型以获得所述优化ai模型。ai平台通过与第一用户交互,获得第一用户对难例的矫正标注用于对初始ai模型进行训练,进一步地提高了训练后的优化ai模型的推理能力。

在一种可能的实现方式中,该方法还包括:ai平台从第一用户获取带标注的一个或多个图像;ai平台利用带标注的一个或多个图像获得初始ai模型。

在一种可能的实现方式中,该方法还包括:所述ai平台将所述优化ai模型提供给第二用户的设备,以使得所述设备用所述优化ai模型执行任务目标;或,所述ai平台接收所述第二用户的设备发送的推理图像,利用所述优化ai模型对所述推理图像进行推理,并向所述第二用户的设备提供推理结果。该方法提供了向第二用户的设备发送优化ai模型或者在线利用优化ai模型向用户提供推理服务两种方法,可以使优化ai模型方便地用于推理,也可以适应不同的任务目标。

在一种可能的实现方式中,ai平台根据初始ai模型标注所述多个未标注的图像,包括:所述ai平台向所述第一用户提供标注选择界面,所述标注选择界面上包括所述第一用户可选择的至少一种标注方式;所述ai平台接收所述第一用户选择的标注方式,根据所述第一用户选择的标注方式对应的所述初始ai模型标注所述多个未标注的图像。该方法通过给第一用户提供不同的标注选择方式,使第一用户可以根据要上传至ai平台的图像决定选用何种标注方式,提高了ai平台应对各种用户或者各种场景的灵活性。

在一种可能的实现方式中,所述ai平台根据初始ai模型标注所述多个图像包括:根据所述初始ai模型对所述多个图像分类和/或根据所述初始ai模型对所述多个图像执行物体检测。

第二方面,本申请还提供了一种人工智能ai平台,所述ai平台包括:用户输入输出i/o模块,用于接收第一用户的未标注的多个图像,所述第一用户为在所述ai平台注册账号的实体;数据预处理模块,用于根据初始ai模型标注所述多个图像;难例挖掘模块,用于根据标注结果确定所述多个图像中的难例;模型训练模块,用于利用所述难例训练所述初始ai模型以获得优化ai模型。

在一种可能的实现方式中,所述用户i/o模块,还用于向所述第一用户提供确认界面,在所述确认界面中向所述第一用户展示候选难例,所述候选难例为所述多个图像中的至少一个图像;所述难例挖掘模块,还用于根据所述第一用户在所述确认界面上的操作,确定所述候选难例中的难例。

在一种可能的实现方式中,所述用户i/o模块,还用于接收所述用户对所述难例的矫正标注;所述模型训练模块,具体用于利用所述难例和对应的矫正标注训练所述初始ai模型以获得所述优化ai模型。

在一种可能的实现方式中,所述用户i/o模块,还用于从所述第一用户获取带标注的一个或多个图像;所述模型训练模块,还用于利用带标注的一个或多个图像获得所述初始ai模型。

在一种可能的实现方式中,所述用户i/o模块,还用于将所述优化ai模型提供给第二用户的设备,以使得所述设备用所述优化ai模型执行任务目标;或,所述ai平台还包括推理模块,所述用户i/o模块,还用于接收所述第二用户的设备发送的推理图像;所述推理模块,用于利用所述优化ai模型对所述推理图像进行推理;所述用户i/o模块,还用于向所述第二用户的设备提供推理结果。

在一种可能的实现方式中,所述用户i/o模块,还用于向所述第一用户提供标注选择界面,所述标注选择界面上包括所述第一用户可选择的至少一种标注方式;所述用户i/o模块,还用于接收所述第一用户选择的标注方式;所述数据预处理模块,具体用于根据所述第一用户选择的标注方式对应的所述初始ai模型标注所述多个未标注的图像。

在一种可能的实现方式中,所述数据预处理模块,具体用于根据所述初始ai模型对所述多个图像分类和/或根据所述初始ai模型对所述多个图像执行物体检测。

第三方面,本申请还提供了一种优化人工智能ai模型的方法,其特征在于,所述方法包括:根据训练图像集对初始ai模型进行训练,获得优化ai模型;接收推理图像集,根据所述优化ai模型对所述推理图像集中的每个推理图像进行推理,获得推理结果;根据所述推理结果,确定所述推理图像集中的难例,其中,所述难例指示通过所述优化ai模型进行推理获得的推理结果的错误率高于目标阈值的推理图像;根据所述难例对所述优化ai模型进行训练,获得再优化ai模型。该方法根据推理结果确定难例,利用难例再训练优化ai模型,使得获得的再优化ai模型的推理能力更强。

在一种可能的实现方式中,所述根据所述推理结果,确定所述推理图像集中的难例,具体包括:确定所述推理图像集为视频片段;根据所述推理图像集中各图像的推理结果,确定所述推理图像集中的难例;或,确定所述推理图像集为非视频片段,根据所述推理图像集中各图像的推理结果和所述训练图像集,确定所述推理图像集中的难例。该方法根据推理图像集的类型,利用不同的难例确定方式确定难例,充分考虑了推理图像集本身的特点,提高了确定的难例的准确率,进一步地提高了再优化ai模型的推理能力。

在一种可能的实现方式中,所述根据所述推理图像集中各图像的推理结果,确定所述推理图像集中的难例,包括:确定所述推理图像集中的目标图像,其中,所述目标图像的推理结果与所述目标图像在所述视频片段中的相邻的图像的推理结果不相同;将所述目标图像确定为所述推理图像中的难例。

在一种可能的实现方式中,所述根据所述推理图像集中各图像的推理结果和所述训练图像集,确定所述推理图像集中的难例,包括:获取所述推理图像集中各图像在各类别下的置信度,根据所述推理图像集中各图像的最高的两个置信度,确定所述推理图像集中各图像的第一难例值;获取所述训练图像集中图像的表层特征分布信息,根据所述表层特征分布信息和所述推理图像集中各图像的表层特征,确定所述推理图像集中各图像的第二难例值;获取所述训练图像集中各图像的深层特征和所述推理图像集中各图像的深层特征,根据所述训练图像集中各图像的深层特征,对所述训练图像集中各图像进行聚类处理,得到图像聚类结果;根据所述推理图像集中各图像的深层特征、所述图像聚类结果和所述推理图像集中各图像的推理结果,确定所述推理图像集中各图像的第三难例值;根据所述第一难例值、第二难例值和所述第三难例值中的一个或多个,确定所述推理图像集中各图像的目标难例值;将所述推理图像集中目标难例值最大的第一数目个图像,确定为所述推理图像集中的难例。

在一种可能的实现方式中,所述根据所述推理图像集中各图像的推理结果,确定所述推理图像集中的难例,包括:对于所述推理图像集中第一图像的第一目标框,在所述视频片段中的与所述第一图像在时序上的间隔小于或等于第二数目的图像中,判断是否存在所述第一目标框对应的相似框;若未存在所述第一目标框对应的相似框,则将所述第一目标框确定为难例框;若存在所述第一目标框对应的相似框,且所述第一目标框所属的第一图像和所述相似框所属的第二图像在所述视频片段中不相邻,则根据所述第一目标框与所述相似框,确定所述第一图像和所述第二图像之间的图像中的难例框;根据所述推理图像集中各图像的难例框的数目,确定所述推理图像集中的难例。

在一种可能的实现方式中,所述在所述视频片段中的与所述第一图像在时序上的间隔小于或等于第二数目的图像中,判断是否存在所述第一目标框对应的相似框,包括:在所述视频片段中的与所述第一图像在时序上的间隔小于或等于第二数目的图像中,确定与第一目标框的相似度最高的追踪框;根据所述追踪框、在所述视频片段中的与所述第一图像在时序上的间隔小于或等于第二数目的图像中的所有的边界框和所述第一目标框,确定所述第一目标框与各边界框的重叠率;若存在重叠率大于第二数值的边界框,则将重叠率大于第二数值的边界框,确定为所述第一目标框对应的相似框;若不存在重叠率大于第二数值的边界框,则确定未存在所述第一目标框对应的相似框。

在一种可能的实现方式中,所述根据所述推理图像集中各图像的推理结果和所述训练图像集,确定所述推理图像集中的难例,包括:获取所述训练图像集中图像的表层特征分布信息,根据所述训练图像集中图像的表层特征分布信息和所述推理图像集中图像的表层特征,确定所述推理图像集中各图像的第四难例值,其中,所述表层特征包括边界框的表层特征和图像的表层特征;获取所述训练图像集中各图像中每个框的深层特征和所述推理图像集中各图像中每个框的深层特征,根据所述训练图像集中各图像中每个框的深层特征,对所述训练图像集中各图像中每个框进行聚类处理,得到框聚类结果;根据所述推理图像集中各图像中每个框的深层特征、所述框聚类结果和所述推理图像集中各图像中每个框的推理结果,确定所述推理图像集中各图像的第五难例值;根据所述第四难例值和所述第五难例值中的一个或多个,确定所述推理图像集各图像的目标难例值;将所述推理图像集中目标难例值最大的第一数目个图像,确定为所述推理图像集中的难例。

第四方面,本申请还提供一种人工智能ai平台,所述ai平台包括:模型训练模块,用于根据训练图像集对初始ai模型进行训练,获得优化ai模型;推理模块,用于接收推理图像集,根据所述优化ai模型对所述推理图像集中的每个推理图像进行推理,获得推理结果;难例挖掘模块,用于根据所述推理结果,确定所述推理图像集中的难例,其中,所述难例指示通过所述优化ai模型进行推理获得的推理结果的错误率高于目标阈值的推理图像;所述模型训练模块,还用于根据所述难例对所述优化ai模型进行训练,获得再优化ai模型。

在一种可能的实现方式中,所述难例挖掘模块,具体用于:确定所述推理图像集为视频片段;根据所述推理图像集中各图像的推理结果,确定所述推理图像集中的难例;或,确定所述推理图像集为非视频片段,根据所述推理图像集中各图像的推理结果和所述训练图像集,确定所述推理图像集中的难例。

在一种可能的实现方式中,所述难例挖掘模块,具体用于:确定所述推理图像集中的目标图像,其中,所述目标图像的推理结果与所述目标图像在所述视频片段中的相邻的图像的推理结果不相同;将所述目标图像确定为所述推理图像中的难例。

在一种可能的实现方式中,所述难例挖掘模块,具体用于:获取所述推理图像集中各图像在各类别下的置信度,根据所述推理图像集中各图像的最高的两个置信度,确定所述推理图像集中各图像的第一难例值;获取所述训练图像集中图像的表层特征分布信息,根据所述表层特征分布信息和所述推理图像集中各图像的表层特征,确定所述推理图像集中各图像的第二难例值;获取所述训练图像集中各图像的深层特征和所述推理图像集中各图像的深层特征,根据所述训练图像集中各图像的深层特征,对所述训练图像集中各图像进行聚类处理,得到图像聚类结果;根据所述推理图像集中各图像的深层特征、所述图像聚类结果和所述推理图像集中各图像的推理结果,确定所述推理图像集中各图像的第三难例值;根据所述第一难例值、第二难例值和所述第三难例值中的一个或多个,确定所述推理图像集中各图像的目标难例值;将所述推理图像集中目标难例值最大的第一数目个图像,确定为所述推理图像集中的难例。

在一种可能的实现方式中,所述难例挖掘模块,具体用于:对于所述推理图像集中第一图像的第一目标框,在所述视频片段中的与所述第一图像在时序上的间隔小于或等于第二数目的图像中,判断是否存在所述第一目标框对应的相似框;若未存在所述第一目标框对应的相似框,则将所述第一目标框确定为难例框;若存在所述第一目标框对应的相似框,且所述第一目标框所属的第一图像和所述相似框所属的第二图像在所述视频片段中不相邻,则根据所述第一目标框与所述相似框,确定所述第一图像和所述第二图像之间的图像中的难例框;根据所述推理图像集中各图像的难例框的数目,确定所述推理图像集中的难例。

在一种可能的实现方式中,所述难例挖掘模块,具体用于:在所述视频片段中的与所述第一图像在时序上的间隔小于或等于第二数目的图像中,确定与第一目标框的相似度最高的追踪框;根据所述追踪框、在所述视频片段中的与所述第一图像在时序上的间隔小于或等于第二数目的图像中的所有的边界框和所述第一目标框,确定所述第一目标框与各边界框的重叠率;若存在重叠率大于第二数值的边界框,则将重叠率大于第二数值的边界框,确定为所述第一目标框对应的相似框;若不存在重叠率大于第二数值的边界框,则确定未存在所述第一目标框对应的相似框。

在一种可能的实现方式中,所述难例挖掘模块,具体用于:获取所述训练图像集中图像的表层特征分布信息,根据所述训练图像集中图像的表层特征分布信息和所述推理图像集中图像的表层特征,确定所述推理图像集中各图像的第四难例值,其中,所述表层特征包括边界框的表层特征和图像的表层特征;获取所述训练图像集中各图像中每个框的深层特征和所述推理图像集中各图像中每个框的深层特征,根据所述训练图像集中各图像中每个框的深层特征,对所述训练图像集中各图像中每个框进行聚类处理,得到框聚类结果;根据所述推理图像集中各图像中每个框的深层特征、所述框聚类结果和所述推理图像集中各图像中每个框的推理结果,确定所述推理图像集中各图像的第五难例值;根据所述第四难例值和所述第五难例值中的一个或多个,确定所述推理图像集各图像的目标难例值;将所述推理图像集中目标难例值最大的第一数目个图像,确定为所述推理图像集中的难例。

第五方面,本申请还提供一种计算设备,所述计算设备包括存储器和处理器,所述存储器用于存储一组计算机指令;所述处理器执行所述存储器存储的一组计算机指令,以使得所述计算设备执行第一方面或第一方面的任意一种可能的实现方式提供的方法。

第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意一种可能的实现方式中提供的方法。该存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(英文:harddiskdrive,缩写:hdd)、固态硬盘(英文:solidstatedrive,缩写:ssd)。

第七方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,在所述计算机程序代码被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意可能的实现方式中提供的方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。

第八方面,本申请还提供一种计算设备,所述计算设备包括存储器和处理器,所述存储器用于存储一组计算机指令;所述处理器执行所述存储器存储的一组计算机指令,以使得所述计算设备执行第三方面或第三方面的任意一种可能的实现方式提供的方法。

第九方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被计算设备执行时,所述计算设备执行前述第三方面或第三方面的任意一种可能的实现方式中提供的方法。该存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(英文:harddiskdrive,缩写:hdd)、固态硬盘(英文:solidstatedrive,缩写:ssd)。

第十方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,在所述计算机程序代码被计算设备执行时,所述计算设备执行前述第三方面或第三方面的任意可能的实现方式中提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第三方面或第三方面的任意可能的实现方式中提供的方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。

附图说明

图1为本申请实施例提供的一种ai平台100的结构示意图;

图2为本申请提供的一种ai平台100的应用场景示意图;

图3为本申请实施例提供的一种ai平台100的部署示意图;

图4为本申请实施例提供的一种部署ai平台100的计算设备400的结构示意图;

图5为本申请实施例提供的一种提供ai模型的流程示意图;

图6为本申请实施例提供的一种数据的上传界面的示意图;

图7为本申请实施例提供的一种启动智能标注的界面的示意图;

图8为本申请实施例提供的一种数据的标注界面的示意图;

图9为本申请实施例提供的一种使用优化ai模型进行推理的流程的示意图;

图10为本申请实施例提供的一种启动难例挖掘的界面的示意图;

图11为本申请实施例提供的另一种确定难例的方法的流程示意图;

图12为本申请实施例提供的一种表层特征分布示意图;

图13为本申请实施例提供的一种确定难例值的示意图;

图14为本申请实施例提供的另一种确定难例的方法的流程示意图;

图15为本申请实施例提供的另一种确定难例的方法的流程示意图;

图16为本申请实施例提供的一种确定难例值的示意图;

图17为本申请实施例提供的一种优化ai模型的流程示意图;

图18为本申请实施例提供的一种计算设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

目前,人工智能热潮不断,机器学习是一种实现ai的核心手段,机器学习渗透至医学、交通、教育、金融等各个行业。不仅仅是专业技术人员,就连各行业的非ai技术专业也期盼用ai、机器学习完成特定任务。

为了便于理解本申请提供的技术方案和实施例,下面对ai模型、ai模型的训练、难例、难例挖掘、ai平台等概念进行详细说明:

ai模型,是一类用机器学习思想解决实际问题的数学算法模型,ai模型中包括大量的参数和计算公式(或计算规则),ai模型中的参数是可以通过训练图像集对ai模型进行训练获得的数值,例如,ai模型的参数是ai模型中的计算公式或计算因子的权重。ai模型还包含一些超(hyper)参数,超参数是无法通过训练图像集对ai模型进行训练获得的参数,超参数可用于指导ai模型的构建或者ai模型的训练,超参数有多种。例如,ai模型训练的迭代(iteration)次数、学习率(leaningrate)、批尺寸(batchsize)、ai模型的层数、每层神经元的个数。换而言之,ai模型的超参数与参数的区别在于:ai模型的超参数的值无法通过对训练图像集中的训练图像进行分析获得,而ai模型的参数的值可根据在训练过程中对训练图像集中的训练图像进行分析进行修改和确定。

ai模型多种多样,使用较为广泛的一类ai模型为神经网络模型,神经网络模型是一类模仿生物神经网络(动物的中枢神经系统)的结构和功能的数学算法模型。一个神经网络模型可以包括多种不同功能的神经网络层,每层包括参数和计算公式。根据计算公式的不同或功能的不同,神经网络模型中不同的层有不同的名称。例如,进行卷积计算的层称为卷积层,卷积层常用于对输入信号(如图像)进行特征提取。一个神经网络模型也可以由多个已有的神经网络模型组合构成。不同结构的神经网络模型可用于不同的场景(如分类、识别等)或在用于同一场景时提供不同的效果。神经网络模型结构不同具体包括以下一项或多项:神经网络模型中网络层的层数不同、各个网络层的顺序不同、每个网络层中的权重、参数或计算公式不同。业界已存在多种不同的用于识别或分类等应用场景的具有较高准确率的神经网络模型,其中,一些神经网络模型可以被特定的训练图像集进行训练后单独用于完成一项任务或与其他神经网络模型(或其他功能模块)组合完成一项任务。

除了神经网络模型外,其他大部分ai模型在被用于完成一项任务前都需要被训练。

训练ai模型,是指利用已有的图像通过一定方法使ai模型拟合已有图像的规律,确定ai模型中的参数。训练一个ai模型需要准备一个训练图像集,根据训练图像集中的训练图像是否有标注(即:图像是否有特定的类型或名称),可以将ai模型的训练分为监督训练(supervisedtraining)和无监督训练(unsupervisedtrainng)。对ai模型进行监督训练时,用于训练的训练图像集中的训练图像带有标注(label)。训练ai模型时,将训练图像集中的训练图像作为ai模型的输入,将训练图像对应的标注作为ai模型的输出值的参考,利用损失函数(lossfunction)计算ai模型输出值与训练图像对应的标注的损失(loss)值,根据损失值调整ai模型中的参数。用训练图像集中的每个训练图像迭代地对ai模型进行训练,ai模型的参数不断调整,直到ai模型可以根据输入的训练图像准确度较高地输出与训练图像对应的标注相同的输出值。对ai模型进行无监督训练,则用于训练的图像集中的训练图像没有标注,训练图像集中的训练图像依次输入至ai模型,由ai模型逐步识别训练图像集中的训练图像之间的关联和潜在规则,直到ai模型可以用于判断或识别输入的图像的类型或特征。例如,聚类,用于聚类的ai模型接收到大量的训练图像后,可学习到各个训练图像的特征以及训练图像之间的关联和区别,将训练图像自动地分为多个类型。不同的任务类型可采用不同的ai模型,一些ai模型仅可以用监督学习的方式训练,一些ai模型仅可以用无监督学习的方式训练,还有一些ai模型既可以用监督学习的方式训练又可以用无监督学习的方式训练。经过训练完成的ai模型可以用于完成一项特定的任务。通常而言,机器学习中的ai模型都需要采用有监督学习的方式进行训练,有监督学习的方式对ai模型进行训练可使ai模型在带有标注的训练图像集中更有针对性地学习到训练图像集中训练图像与对应标注的关联,使训练完成的ai模型用于预测其他输入推理图像时准确率较高。

下面举一个用监督学习的方式训练一个用于图像分类任务的神经网络模型的例子:为了训练一个用于完成图像分类任务的神经网络模型,首先根据任务搜集图像,构建训练图像集,构成的训练图像集中包含3类图像,分别为:苹果、梨、香蕉,采集的训练图像分别按照类型存放在3个文件夹中,文件夹命名即为该文件夹内所有图像的标注。训练图像集构建好之后,选择一个可实现图像分类的神经网络模型(如卷积神经网络(convolutionalneuralnetwork,cnn)),将训练图像集中的训练图像输入至cnn中,cnn中各层的卷积核对图像进行特征提取、特征分类,最后输出图像属于每个类型的置信度(confidence),根据置信度和图像对应的标注利用损失函数计算损失值,根据损失值和cnn结构更新cnn中每层的参数。前述训练过程持续进行,直到损失函数输出的损失值收敛或者训练图像集中所有的图像均被用于训练,则训练结束。

损失函数,是用于衡量ai模型被训练的程度(也就是用于计算ai模型预测的结果与真实目标之间的差异)的函数。在训练ai模型的过程中,因为希望ai模型的输出尽可能的接近真正想要预测的值,所以可以通过比较当前ai模型根据输入图像的预测值和真正想要的目标值(即输入图像的标注),再根据两者之间的差异情况来更新ai模型中的参数(当然,在第一次更新之前通常会有初始化的过程,即为ai模型中的参数预先配置初始值)。每次训练都通过损失函数判断一下当前的ai模型预测的值与真实目标值之间的差异,更新ai模型的参数,直到ai模型能够预测出真正想要的目标值或与真正想要的目标值非常接近的值,则认为ai模型被训练完成。

在训练完成ai模型之后,训练完成的ai模型可以用于对图像进行推理,得到推理结果。具体的推理过程是:在图像分类的场景中,将图像输入至ai模型中,ai模型中的各层的卷积核对图像进行特征提取,基于提取的特征输出图像所属的类别。在目标检测(也可以称为是物体检测)的场景中,将图像输入至ai模型中,ai模型中的各层的卷积核对图像进行特征提取,基于提取的特征输出图像包括的每个目标的边界框的位置和类别。在涵盖图像分类和目标检测的场景时,将图像输入至ai模型中,ai模型中的各层的卷积核对图像进行特征提取,基于提取的特征输出图像所属的类别,以及图像包括的每个目标的边界框的位置和类别。此处需要说明的是,对于ai模型,有些ai模型的推理能力较强,而有些ai模型的推理能力较弱。ai模型的推理能力较强指使用ai模型对图像进行推理时,推理结果的准确率大于或等于一定数值。而ai模型的推理能力较弱指使用ai模型对图像进行推理时,推理结果的准确率低于该一定数值。

难例(hardexample),是对初始ai模型进行训练的过程中或者对训练后的ai模型进行推理的过程中,初始ai模型或训练后的ai模型输出的结果为错误或错误率较高时对应的模型的输入数据。例如,在ai模型的训练过程中,在对未标注的图像进行标注的过程中,标注的结果的错误率高于目标阈值的图像为难例。在ai模型的推理过程中,推理图像集中ai模型输出的推理结果的错误率高于目标阈值的图像为难例。

难例挖掘,指确定一个图像为难例的方法。

ai平台,是一种为ai开发者和用户提供便捷的ai开发环境以及便利的开发工具的平台。ai平台中内置有各种解决不同问题的ai模型或者ai子模型,ai平台可以根据用户的需求搜索并且建立适用的ai模型,用户只需在ai平台中确定自己的需求,且按照提示准备好训练图像集上传至ai平台,ai平台就能为用户训练出一个可用于实现用户需要的ai模型。或者,用户按照提示准备好自己的算法和训练图像集,上传至ai平台,ai平台基于用户自己的算法和训练图像集,可以训练出一个可用于实现用户需要的ai模型。用户可利用训练完成的ai模型完成自己的特定任务。

如果ai平台用传统的ai模型训练方式得到ai模型,训练出的ai模型推理能力较弱。本申请实施例提供了一种ai平台,该ai平台中引入难例挖掘技术,使得ai平台形成ai模型构建、训练、推理、难例挖掘、再训练、再推理的闭环过程,在满足开发者的需求的同时,提高了ai模型的准确率(即提高了ai模型的推理能力)。

需要说明的是,上文中提到的ai模型是一种泛指,ai模型包括深度学习模型、机器学习模型等。

图1为本申请实施例中的ai平台100的结构示意图,应理解,图1仅是示例性地展示了ai平台100的一种结构化示意图,本申请并不限定对ai平台100中的模块的划分。如图1所示,ai平台100包括用户输入输出(input/output,i/o)模块101、难例挖掘模块102、模型训练模块103、推理模块104、数据预处理模块105。可选的,ai平台还可以包括ai模型存储模块106和数据存储模块107。

下面简要地描述ai平台100中的各个模块的功能:

用户i/o模块101:用于接收用户输入或选择的任务目标、接收第一用户的训练图像集、接收第二用户的设备发送的推理图像集等,其中,训练图像集中包括未标注的多个图像(可以称为是未标注的多个训练图像)。用户i/o模块101还用于接收第一用户对难例的矫正标注、从第一用户获取带标注的一个或多个图像、将优化ai模型提供给第二用户的设备、接收第二用户的设备发送的推理图像等。作为用户i/o模块101的举例,可采用图形用户界面(graphicaluserinterface,gui)或命令行界面(cli)实现。例如,gui上显示ai平台100可向用户提供多种ai业务,(如图像分类业务、目标检测业务等)。用户可在gui上选择一个任务目标,例如,用户选择图像分类业务,用户可以继续在ai平台的gui中上传未标注的多个图像等。gui接收到任务目标和未标注的多个图像后,与模型训练模块103进行通信。模型训练模块103根据用户确定的任务目标为用户选择或者搜索可用于完成用户任务目标的构建的ai模型。用户i/o模块101还用于接收难例挖掘模块102输出的难例,提供gui,用于用户对难例进行确认处理。

可选的,用户i/o模块101还可用于接收用户输入的对完成任务目标的ai模型的效果期望。例如,输入或选择最终获得的ai模型用于人脸识别的准确率要高于99%。

可选的,用户i/o模块101还可用于接收用户输入的ai模型等。例如,用户可基于自己的任务目标,在gui输入初始ai模型。

可选的,用户i/o模块101还可用于接收用户输入的推理图像集中推理图像的表层特征和深层特征。对于图像分类的场景中,表层特征包括图像的分辨率、图像的长宽比、图像的红绿蓝(rgb)的均值和方差、图像的亮度、图像的饱和度或图像的清晰度中的一种或多种,深层特征指使用特征提取模型(如cnn等)中的卷积核提取到的图像的抽象特征。对于目标检测的场景中,表层特征包括边界框的表层特征和图像的表层特征,边界框的表层特征可以包括单帧图像中每个边界框的长宽比、单帧图像中每个边界框的面积占图像面积的比例、单帧图像中每个边界框的边缘化程度、单帧图像中每个边界框的堆叠图、单帧图像中每个边界框的亮度或单帧图像中每个边界框的模糊度中的一种或多种,图像的表层特征可以包括图像的分辨率、图像的长宽比、图像的rgb的均值和方差、图像的亮度、图像的饱和度或图像的清晰度、单帧图像中框的数目或单帧图像中框的面积的方差中的一种或多种。深层特征指使用特征提取模型(如cnn等)中的卷积核提取到的图像的抽象特征。

可选的,用户i/o模块101还可用于提供gui,用于用户对训练图像集中训练图像的标注。

可选的,用户i/o模块101还可用于提供各种预先内置的初始ai模型供用户选择。例如,用户可根据自己的任务目标在gui上选择一个初始ai模型。

可选的,用户i/o模块101还可用于接收用户对初始ai模型、训练图像集中训练图像的各种配置信息等。

难例挖掘模块102,用于在用户i/o模块101接收到的推理图像集中,确定出难例。难例挖掘模块102与推理模块104、用户i/o模块101均可以进行通信。难例挖掘模块102可以从推理模块104中,获取推理模块104对推理图像集中推理图像进行推理的推理结果,基于推理结果挖掘出推理图像集中的难例。难例挖掘模块102还可以向用户i/o模块101提供挖掘出的难例。

可选的,难例挖掘模块102还可用于从用户i/o模块101中,获取用户输入的推理图像集中推理图像的表层特征和深层特征。

模型训练模块103:用于对ai模型进行训练。模型训练模块103与用户i/o模块101、推理模块104、ai模型存储模块106均可以通信。具体处理为:

在本实施例中,初始ai模型包括未进行训练的ai模型、进行训练但是未基于难例优化的ai模型。未进行训练的ai模型指构建的ai模型还未使用训练图像集进行训练,构建的ai模型中的参数均是预设的数值。进行训练但是未基于难例优化的ai模型指已经能用于推理但是未基于难例优化的ai模型,可以包括两种,一种是用户直接在ai模型存储模块105中选择的初始ai模型,一种是仅使用训练图像集中带标注的训练图像对构建的ai模型进行训练获得的ai模型。可见ai平台可以从ai模型存储模块106中,获取初始ai模型,或者使用模型训练模块103对训练图像集合进行训练,获得初始ai模型。

初始ai模型为仅使用训练图像集中带标注的训练图像对构建的ai模型进行训练获得的ai模型,具体处理为:ai平台根据用户的任务目标为用户确定用于完成用户任务目标的构建的ai模型。模型训练模块103与用户i/o模块101和ai模型存储模块106均可以进行通信。模型训练模块103根据用户的任务目标在ai模型存储模块106中存储的ai模型库中选择一个现成的ai模型,作为构建的ai模型,或者模型训练模块103根据用户的任务目标,或者用户对任务目标的预期效果或者用户输入的一些配置参数,在ai模型库中搜索ai子模型结构,且指定一些ai模型的超参数,例如,模型的层数、每层神经元的个数等,进行ai模型构建,最终获得一个构建的ai模型。值得注意的是,ai模型的一些超参数可以是ai平台根据ai模型的构建和训练的经验确定的超参数。

模型训练模块103从用户i/o模块101获取训练图像集。模型训练模型103根据训练图像集的特点和构建的ai模型的结构确定构建的ai模型训练时的一些超参数。例如,迭代次数、学习率、批尺寸等。在设定完超参数后,模型训练模块103利用获取的训练图像集中带标注的图像对构建的ai模型执行自动训练,在训练过程中不断更新构建的ai模型内部的参数,获得初始ai模型。值得注意的是,对构建的ai模型训练时的一些超参数可以是ai平台根据模型训练的经验确定的超参数。

模型训练模块103将训练图像集中未标注的图像,输入至初始ai模型,输出未标注的图像的推理结果,模型训练模块103将推理结果传输至难例挖掘模块102,难例挖掘模块102基于推理结果,挖掘出未标注的图像中的难例,反馈给模型训练模块103。模型训练模块103使用难例,继续对初始ai模型进行优化训练,得到优化ai模型。模型训练模块103将优化ai模型提供给推理模块104,用于进行推理处理。此处需要说明的是,若初始ai模型是ai模型存储模块106中存储的初始ai模型,则训练图像集中训练图像可以为全部未标注的图像。若初始ai模型是构建的ai模型,则训练图像集中训练图像包括部分未标注的图像和部分带标注的图像。

推理模块104使用优化ai模型对推理图像集中推理图像进行推理,输出推理图像集中推理图像的推理结果。难例挖掘模块102从推理模块104中获取推理结果,基于推理结果,确定出推理图像集中的难例。模型训练模块103基于难例挖掘模块102提供的难例,继续对优化ai模型进行训练,得到更加优化的ai模型。模型训练模块103将更加优化的ai模型传输至ai模型存储模块106进行存储,将更加优化的ai模型传输至推理模块104用于进行推理处理。此处需要说明的是,在推理模块104对推理图像集中推理图像进行推理,得到难例,再优化优化的ai模型时,实际上与使用训练图像中的难例对初始ai模型的优化过程相同,此时推理图像中的难例作为训练图像。

可选的,模型训练模块103还可用于将用户在gui上选择的ai模型确定为初始ai模型。或者将用户在gui上输入的ai模型确定为初始ai模型。

可选的,初始ai模型还可以包括使用训练图像集中的图像对ai模型存储模块106中的ai模型训练后的ai模型。

推理模块104,用于根据ai模型对推理图像集中推理图像进行推理,得到推理结果。推理模块104与难例挖掘模块102、用户i/o模块101、ai模型存储模块105均可以进行通信。推理模块104从用户i/o模块101获取推理图像集中推理图像,对推理图像集中推理图像进行推理处理,得到推理图像集中推理图像的推理结果。推理模块104将推理结果传输至难例挖掘模块102,以使难例挖掘模块102基于推理结果,挖掘推理图像集中的难例。

数据预处理模块105,用于对用户i/o模块101接收到的训练图像集中训练图像和推理图像集中推理图像进行预处理操作。数据预处理模块105可从数据存储模块107读取用户i/o模块101接收到的训练图像集或推理图像集,进而对推理图像集中推理图像或者训练图像集中训练图像进行预处理。对用户上传的训练图像集中训练图像或推理图像集中推理图像进行预处理可使得训练图像集中训练图像或推理图像集中推理图像中在尺寸上具有一致性,还可以去除训练图像集中训练图像或推理图像集中推理图像中不恰当的数据。预处理后的训练图像集可适合用于对构建的ai模型的训练或者对初始ai模型进行训练,还可使训练的效果更优。预处理后的推理图像集中推理图像可适合于输入至第二ai模型中进行推理处理。数据预处理模块105对训练图像集中训练图像或者推理图像集中推理图像进行预处理完成后,将预处理完成的训练图像集或者推理图像集存储至数据存储模块107。或者将预处理后的训练图像集发送至模型训练模块103,将预处理后的推理图像集发送至推理模块104。应理解,在另一个实施例中,数据存储模块107也可作为数据预处理模块105中的一部分,即使数据预处理模块105有存储图像的功能。

ai模型存储模块106:用于存储初始ai模型、优化ai模型和ai子模型结构等,也可以用于存储根据ai子模型结构确定构建的ai模型。ai模型存储模块106与用户i/o模块101、模型训练模块103均可以进行通信。ai模型存储模块106接收并存储模型训练模块103传输的训练完成的初始ai模型和优化ai模型。ai模型存储模块106为模型训练模块103提供构建的ai模型或者初始ai模型。ai模型存储模块106对用户i/o模块101接收到的用户上传的初始ai模型,进行存储。应理解,在另一个实施例中,ai模型存储模块106也可作为模型训练模块103中的一部分。

数据存储模块107(如:可以是云服务提供商提供的对象存储服务(objectstorageservice,obs)对应的数据存储资源):用于存储用户上传的训练图像集和推理图像集,也用于存储数据预处理模块105处理后的数据。

需要说明的是,本申请中的ai平台可以是一个可以与用户交互的系统,这个系统可以是软件系统也可以是硬件系统,也可以是软硬结合的系统,本申请中不进行限定。

由于上述各模块的功能,本申请实施例提供的ai平台可向用户提供训练ai模型的业务,使得ai平台可以提供训练后的优化ai模型。该ai平台可以从未标注的图像中挖掘出难例,进一步基于难例继续训练初始ai模型,得到优化ai模型,使ai模型进行推理的推理结果更准确。

图2为本申请实施例提供的一种ai平台100的应用场景示意图,如图2所示,在一种实施例中,ai平台100可全部部署在云环境中。云环境是云计算模式下利用基础资源向用户提供云服务的实体。云环境包括云数据中心和云服务平台,云数据中心包括云服务提供商拥有的大量基础资源(包括计算资源、存储资源和网络资源),云数据中心包括的计算资源可以是大量的计算设备(例如服务器)。ai平台100可以独立地部署在云数据中心中的服务器或虚拟机上,ai平台100也可以分布式地部署在云数据中心中的多台服务器上、或者分布式地部署在云数据中心中的多台虚拟机上、再或者分布式地部署在云数据中心中的服务器和虚拟机上。如图2所示,ai平台100由云服务提供商在云服务平台抽象成一种ai云服务提供给用户,用户在云服务平台购买该云服务后(可预充值再根据最终资源的使用情况进行结算),云环境利用部署在云数据中心的ai平台100向用户提供ai平台云服务。在使用ai平台云服务时,用户可以通过应用程序接口(applicationprograminterface,api)或者gui确定要ai模型完成的任务、上传训练图像集和推理图像集至云环境,云环境中的ai平台100接收用户的任务信息、训练图像集和推理图像集,执行数据预处理、ai模型训练、使用训练完成的ai模型对推理图像集中推理图像进行推理,进行难例挖掘以及基于挖掘出的难例重新训练ai模型等操作。ai平台通过api或者gui向用户返回挖掘出的难例等内容。用户进一步选择是否要基于难例重新训练ai模型。训练完成的ai模型可被用户下载或者在线使用,用于完成特定的任务。

在本申请的另一种实施例中,云环境下的ai平台100抽象成ai云服务向用户提供时,可分为两部分,即:基础ai云服务和ai难例挖掘云服务。用户在云服务平台可先仅购买基础ai云服务,在需要使用ai难例挖掘云服务时再进行购买,购买后由云服务提供商提供ai难例挖掘云服务api,最终按照调用api的次数对ai难例挖掘云服务进行额外计费。

本申请提供的ai平台100的部署较为灵活,如图3所示,在另一种实施例中,本申请提供的ai平台100还可以分布式地部署在不同的环境中。本申请提供的ai平台100可以在逻辑上分成多个部分,每个部分具有不同的功能。例如,在一种实施例中ai平台100包括用户i/o模块101、难例挖掘模块102、模型训练模块103、ai模型存储模块105和数据存储模块106。ai平台100中的各部分可以分别部署在终端计算设备、边缘环境和云环境中的任意两个或三个环境中。终端计算设备包括:终端服务器、智能手机、笔记本电脑、平板电脑、个人台式电脑、智能摄相机等。边缘环境为包括距离终端计算设备较近的边缘计算设备集合的环境,边缘计算设备包括:边缘服务器、拥有计算能力的边缘小站等。部署在不同环境或设备的ai平台100的各个部分协同实现为用户提供构建的ai模型确定和训练等功能。例如,在一种场景中,终端计算设备中部署ai平台100中的用户i/o模块101、数据存储模块106和数据预处理模块107,边缘环境的边缘计算设备中部署ai平台100中的难例挖掘模块102、模型训练模块103、推理模块104和ai模型存储模块105。用户将训练图像集和推理图像集发送至终端计算设备中的用户i/o模块101,终端计算设备将训练图像集和推理图像集存储至数据存储模块106,数据预处理模块102对训练图像集中训练图像和推理图像集中推理图像进行预处理,将预处理后的训练图像集中训练图像和推理图像集中推理图像也存储在数据存储模块106。边缘计算设备中模型训练模块103根据用户的任务目标确定构建的ai模型,基于构建的ai模型和训练图像集中训练图像训练得到初始ai模型,进一步基于训练图像集中的未标注的图像中的难例和初始ai模型训练得到优化初始ai模型。可选的,难例挖掘模块102还可以基于优化ai模型挖掘出推理图像集中包括的难例。模型训练模块103基于难例对优化ai模型进行训练,获得更加优化的ai模型。应理解,本申请不对ai平台100的哪些部分部署具体部署在什么环境进行限制性的划分,实际应用时可根据终端计算设备的计算能力、边缘环境和云环境的资源占有情况或具体应用需求进行适应性的部署。

ai平台100也可以单独部署在任意环境中的一个计算设备上(如单独部署在边缘环境的一个边缘服务器上)。图4为部署有ai平台100的计算设备400的硬件结构示意图,图4所示的计算设备400包括存储器401、处理器402、通信接口403以及总线404。其中,存储器401、处理器402、通信接口403通过总线404实现彼此之间的通信连接。

存储器401可以是只读存储器(rom),随机存取存储器(ram),硬盘,快闪存储器或其任意组合。存储器401可以存储程序,当存储器401中存储的程序被处理器402执行时,处理器402和通信接口403用于执行ai平台100为用户训练ai模型、挖掘难例,进一步基于难例优化ai模型的方法。存储器还可以存储图像集。例如,存储器401中的一部分存储资源被划分成一个数据存储模块106,用于存储ai平台100所需的数据,存储器401中的一部分存储资源被划分成一个ai模型存储模块105,用于存储ai模型库。

处理器402可以采用中央处理器(cpu),应用专用集成电路(asic),图形处理器(gpu)或其任意组合。处理器402可以包括一个或多个芯片。处理器402可以包括ai加速器,例如神经网络处理器(neuralprocessingunit,npu)。

通信接口403使用例如收发器一类的收发模块,来实现计算设备400与其他设备或通信网络之间的通信。例如,可以通过通信接口403获取数据。

总线404可包括在计算设备400各个部件(例如,存储器401、处理器402、通信接口403)之间传送信息的通路。

随着ai技术的发展,ai技术被广泛应用于众多领域中,例如,ai技术被应用于车辆的自助驾驶和辅助驾驶领域中,具体是进行车道线识别、红绿灯识别、自动识别停车位、检测人行道等处理。这些处理总结起来可以认为是使用ai平台中的ai模型进行图像分类和/或目标检测。例如,使用ai模型确定红绿灯识别,使用ai模型识别车道线。图像分类主要用于判断图像所属的类别(即输入一帧图像,输出图像所属的类别)。目标检测可以包括两个方面,一方面用于判断属于某个特定类别的目标是否出现在图像中,另一方面是用于对目标进行定位(即确定目标出现在图像中的位置)。本申请实施例将以图像分类和目标检测为例说明在ai平台中如何提供ai模型。

下面结合图5描述在一种实施例中提供ai模型的方法的具体流程,以该方法由ai平台执行为例进行说明:

步骤501,ai平台接收第一用户的未标注的多个图像。

其中,第一用户为在ai平台注册账号的实体的用户。例如,ai模型的开发者等。

本实施例中,第一用户想要在ai平台上获得ai模型,可以将未标注的多个图像设置在一个文件夹中,然后打开ai平台提供的图像的上传界面。在上传界面中包括图像的输入位置,第一用户可以在图像的输入位置处添加训练图像集的存储位置,将未标注的多个图像上传至ai平台。这样,ai平台可以接收到第一用户的未标注的多个图像。

如图6所示,在该上传界面中还显示有标识(用于标记本次上传的图像)、标注类型(用于指示使用图像训练的ai模型的用途,如目标检测或图像分类等)、创建时间、图像输入位置、图像的标签集(如人、车等)、名称(如目标、物体等)、描述、版本名称等。

步骤502,ai平台根据初始ai模型标注多个图像。

本实施例中,ai平台可以获取初始ai模型,然后将未标注的多个图像输入至初始ai模型中,获得未标注的多个图像的标注结果。此处若初始ai模型用于图像分类,则图像的标注结果为图像所属的类别,如图像为苹果的图像,则图像所属的类别为苹果。若初始ai模型用于目标检测,则图像的标注结果为图像中包括的目标的边界框的位置以及目标所属的类别,其中目标可以是图像中包括的物体,如车、人、猫等。若初始ai模型既用于图像分类,也用于目标检测,则图像的标注结果为图像所属的类别、图像中包括的目标的边界框的位置以及目标所属的类别。

可选的,第一用户也可以上传带标注的图像至ai平台。

步骤503,ai平台根据标注结果确定多个图像中的难例。

本实施例中,ai平台在获取未标注的多个图像的标注结果后,可以根据标注结果,在未标注的多个图像中,确定其中包括的难例(难例的概念在前文中有解释,此处不再赘述)。

步骤504,ai平台利用难例训练初始ai模型以获得优化ai模型。

本实施例中,ai平台在确定出难例后,可以使用难例继续训练初始ai模型,具体处理是:将难例中的部分难例输入初始ai模型中,得到输出结果。确定该输出结果与难例的标注结果进行差别,基于差别,调整初始ai模型中的参数,继续使用难例中的另一部分难例,循环执行上述过程,直到难例全部用于训练,或者直到优化ai模型预测出的结果与标注结果的差别小于一定阈值,则认为获得优化ai模型。

可选的,本申请中还提供了获得步骤502中的初始ai模型的方法,以及基于初始ai模型标注多个未标注图像的处理,处理如下:

ai平台向第一用户提供标注选择界面,标注选择界面上包括第一用户可选择的至少一种标注方式。接收第一用户选择的标注方式,根据第一用户选择的标注方式对应的初始ai模型标注多个未标注的图像。

本实施例中,第一用户提供未标注的多个图像后,第一用户对未标注的多个图像中部分图像进行标注,剩下的图像若不想进行标注,第一用户可以点击智能标注选项,触发进入标注选择界面。或者第一用户提供未标注的多个图像后,第一用户可以不进行标注,而直接点击智能标注选项,触发进入标注选择界面。标注选择界面中提供一种或多种标注方式。若仅存在一种标注方式,在标注选择界面中显示是否选择标注方式的选项。若第一用户要选择标注方式,则可以点击“是”选项,可以触发选择标注方式,若第一用户不选择标注方式,则可以点击“否”选项,不会选择标注方式。若标注选择界面中提供多种标注方式,在标注选择界面中可以显示出这多种标注方式,并对应每种标注方式显示选择选项,第一用户可以通过标注方式对应的选择选项,选择想要使用的标注方式,然后进行提交,这样ai平台会接收到用户选择的标注方式。

如图7所示,标注选择界面中提供多种标注方式可以包括主动学习方式和预标注方式。主动学习方式下ai平台的处理为:ai平台首先使用第一用户提供的带标注的多个图像训练构建的ai模型,得到初始ai模型。然后基于初始ai模型标注未标注的多个图像,获得多个图像的标注结果。预标注方式下ai平台的处理为:ai平台直接获取已有的初始ai模型,基于初始ai模标注未标注的多个图像,获得多个图像的标注结果。另外,在标注选择界面中还显示有全部的图像的数目、未标注的图像的数目、带标注的图像的数目、待确认的数目(待确认指待用户确认难例的数目)。

若ai平台接收到的第一用户选择的标注方式为主动学习方式,则ai平台可以使用第一用户提供的带标注的多个图像训练构建的ai模型,得到初始ai模型。然后ai平台将未标注的多个图像输入至初始ai模型,得到未标注的多个图像的标注结果。此处需要说明的是,带标注的多个图像可以是第一用户对未标注的多个图像中的一些图像进行标注,得到带标注的多个图像,还可以是第一用户直接提供的带标注的多个图像。

若ai平台接收到的第一用户选择的标注方式为预标注方式,则ai平台可以直接获取初始ai模型(该初始ai模型可以是第一用户上传的ai模型,也可以是ai平台中预置的ai模型)。然后ai平台将未标注的多个图像输入至初始ai模型,得到未标注的多个图像的标注结果。

另外,本申请实施例中,还提供了第一用户在ai平台对训练图像进行标注的过程,具体处理是:在第一用户选择自己标注未标注的图像时,第一用户可以确定自己所要训练的ai模型是用于图像分类的场景中,还是用于目标检测的场景中,还是用户图像分类和目标检测结合的场景中。若所要训练的ai模型应用于图像分类的场景中,则启动ai平台提供图像分类的场景的图像标注界面。若所要训练的ai模型应用于目标检测的场景中,则启动ai平台提供的目标检测的场景的图像标注界面。如图8所示,在目标检测的场景的图像标注界面中,提供了选择图像、边界框、返回键、放大图像、缩小图像等选项,第一用户可以通过选择图像选项,打开一帧图像。然后在该图像中,使用边界框标注目标,并为目标添加标注,标注可以包括边界框中目标的类别、边界框在图像中的位置(由于边界框一般的矩形,所以位置可以使用左上角和右下角的位置坐标标识)。在第一用户使用边界框标注目标后,ai平台则会获得目标的边界框,图像标注界面中还可以显示出该图像的标注信息栏。在标注信息栏显示有第一用户已经标注的目标的信息,包括标注、边界框和操作,标注用于指示目标所属的类别,边界框用于指示所使用的框的形状,操作包括删除和修改选项。第一用户可以通过操作对该图像中已添加的标注进行修改。

需要说明的是,上述边界框为能将目标全部包围的矩形框。

另外,本申请中,还可以使用带标注的图像训练处初始ai模型,具体处理是:

从第一用户获取带标注的一个或多个图像。利用带标注的一个或多个图像,获得初始ai模型。

本实施例中,第一用户在提供未标注的多个图像时,还可以提供带标注的一个或多个图像,二者可以是一起上传,也可以是先上传带标注的一个或多个图像,再上传未标注的多个图像。ai平台可以获取预选的ai模型,预选的ai模型可以是用户选择的ai模型(可以包括用户上传的ai模型或用户在ai平台中选取的ai模型),也可以是ai平台基于本次的任务目标选择的ai模型。

然后ai平台使用带标注的一个或多个图像,对预选的ai模型进行训练,获得初始ai模型(训练过程参见监督训练的过程)。

可选的,在步骤503之后,ai平台还可以将难例提供给第一用户,使第一用户进一步确认ai平台筛选出的候选难例是不是难例,具体处理为:

ai平台向第一用户提供确认界面,在确认界面中向第一用户展示候选难例,候选难例为多个图像中的至少一个图像。根据第一用户在确认界面上的操作,确定候选难例中的难例。

本实施例中,ai平台基于标注结果,确定出未标注的多个图像中的候选难例后(候选难例指仅经过标注结果,确定出未标注的多个图像中的一个或多个图像,且还未经过第一用户确认)。ai平台可以将候选难例提供给第一用户,提供方式为向第一用户提供一个确认界面,在确认界面中向第一用户展示未标注的多个图像中的候选难例。第一用户可以打开任意一个候选难例,然后可以主观判断该候选难例的标注结果是否正确,若该候选难例的标注结果正确,则可以进行确认操作,ai平台可以接收到确认操作,确定该候选难例为难例。这样,由于提供给第一用户确认,使得确定出的难例更正确。

另外,在第一用户确定某些难例的标注结果不正确时,还可以对这些难例的标注结果进行矫正,该处理可以是在步骤503之后,也可以是在用户确认难例后,处理如下:

ai平台接收用户对难例的矫正标注。利用难例训练初始ai模型以获得优化ai模型包括:利用难例和对应的矫正标注训练初始ai模型以获得优化ai模型。

本实施例中,在步骤503中,ai平台确定出难例之后,ai平台可以将难例提供给第一用户,提供方式为向第一用户提供一个确认界面,在确认界面中向第一用户展示未标注的多个图像中的难例。第一用户可以打开任意一个难例,然后第一用户可以主观判断该难例的标注结果是否正确。若不正确,第一用户可以对标注结果进行矫正,在矫正完成后,第一用户对该难例的矫正进行确认,ai平台则会接收到确认操作,ai平台可以确认该难例可用,且该难例的标注结果为第一用户提交的矫正标注。

后续在步骤504中,ai平台可以使用步骤503中确定的难例和该难例对应的矫正标注,对初始ai模型进行训练,得到优化ai模型。或者ai平台可以使用第一用户确认的难例和该难例对应的矫正标注,对初始ai模型进行训练,得到优化ai模型。这样,由于第一用户对难例的标注结果进行矫正处理,所以难例的标注结果是正确的,进而训练处的优化ai模型的推理能力更强。或者,ai平台可以使用难例的矫正标注,对初始ai模型进行训练,获得优化ai模型。

可选的,在步骤504之后,本申请中还可以提供优化ai模型,给第二用户使用,具体可以包括两种提供方式离线提供方式和在线提供方式,以下方式一为离线提供方式,方式二为在线提供方式:

方式一:将优化ai模型提供给第二用户的ai设备,以使得ai设备用优化ai模型执行任务目标。

其中,ai设备指运行ai模型的设备,如行车记录仪等。

本实施例中,在第二用户通过一定的方式(如购买优化ai模型的使用权)获得优化ai模型的使用权之后,ai平台可以将优化ai模型发送至ai设备,ai设备接收到优化ai模型之后,可以在ai设备上运行优化ai模型,使ai设备使用该优化ai模型执行任务目标。例如,ai设备为行车记录仪,优化ai模型可以用于检测车道线等。

或者第二用户可以将优化ai模型从ai平台下载到某个设备上,然后将优化ai模型安装到ai设备上,这样,ai设备可以使用该优化ai模型执行任务目标。

方式二:接收第二用户的设备发送的推理图像,利用优化ai模型对推理图像进行推理,并向第二用户的设备提供推理结果。

本实施例中,第二用户想使用优化ai模型,可以在通过自己的设备打开ai平台,在ai平台上注册一个账号,然后使用注册的账户登录ai平台。然后第二用户可以在ai平台提供的ai模型中,找到优化ai模型,使用ai平台提供的操作指导,上传推理图像至ai平台。ai平台在接收到推理图像后,可以将推理图像输入至优化ai模型,得到推理图像的推理结果,然后向第二用户的设备发送推理结果。其中,若优化ai模型用于图像分类,则推理结果为推理图像所属的类别。若优化ai模型用于目标检测,则推理结果为推理图像中包括的目标的边界框的位置和目标所属的类别。若优化ai模型用于目标检测和图像分类,则推理结果为推理图像所属的类别,以及推理图像中包括的目标的边界框的位置和目标所属的类别。

这样,由于训练得到的优化ai模型,在训练过程中使用了难例,所以可以使训练得到的优化ai模型的推理能力更强。

可选的,在步骤503中确定出难例后,在将难例反馈给第一用户时,在确认界面中,还提供了一键上线选项,用户可以通过操作一键上线选项,触发ai平台自动使用难例对初始ai模型进行训练,获得优化ai模型。

可选的,在训练完成优化ai模型之后,可以将优化ai模型用于对推理图像进行推理,如图9所示,具体处理为:

步骤901,ai平台接收用户上传的多个推理图像。

本实施中,在训练完成优化ai模型后,用户想要使用优化ai模型对推理图像进行推理,可以在推理图像的上传界面中,上传推理图像,推理图像中包括多个推理图像(推理图像是也是未标注的图像)。此处上传多个推理图像的过程和前文中上传未标注的多个图像的过程相同,此处不再赘述。

步骤902,ai平台向用户提供难例筛选选择界面,难例筛选选择界面中包括用户可选择的难例筛选参数。

本实施例中,在用户上传多个推理图像后,若用户还想对优化ai模型进行优化,可以触发显示难例筛选选择界面,在该难例筛选选择界面中可以包括用户可选择的难例筛选参数。用户可以按照推理图像和实际自身的需求选择难例筛选参数。如图10所示,难例筛选参数可以包括难例筛选方式、推理图像类型、任务目标的类型、难例输出路径信息中的一种多种。难例筛选方式可以包括按置信度、按算法。推理图像类型可以包括连续(连续用于指示多个推理图像在时序上连续)、非连续(非连续用于指示多个推理图像在时序上不连续)。任务目标的类型可以包括目标检测和图像分类。难例输出路径信息可以用于指示在推理图像中挖掘出的难例所要存储的存储位置。若多个推理图像在时序上连续(说明推理图像是视频片段),则推理图像类型选择为连续。若多个推理图像在时序上不连续(说明推理图像不是视频片段),则推理图像类型选择为非连续。若用户想要对多个推理图像进行图像分类,则可以选择任务目标类型为图像分类,若用户想要对多个推理图像进行目标检测,则可以选择任务目标类型为目标检测。

此处需要说明的是,在推理图像类型为非连续时,难例筛选参数还包括带标注的训练图像的存储位置信息。

步骤903,ai平台根据优化ai模型对多个推理图像进行推理,获得推理结果。

本实施例中,ai平台可以将多个推理图像输入至优化ai模型中,优化ai模型则会输出多个推理图像的推理结果。若优化ai模型用于图像分类,则对于多个推理图像,输出的推理结果为图像所属的类别。若优化ai模型用于目标检测,则对于多个推理图像,输出的推理结果为每帧推理图像中包括的边界框中目标的类别以及边界框在推理图像中的位置。

步骤904,ai平台根据推理结果和用户选择的难例筛选参数确定多个推理图像中的难例。

本实施例中,ai平台可以使用推理结果和用户选择的难例筛选参数中的任务目标的类型和筛选方式,筛选出多个推理图像中的难例。然后将多个推理图像中的难例,通过难例筛选参数中的难例输出路径进行存储。

步骤905,ai平台根据难例对优化ai模型进行训练,获得再优化ai模型。

本实施例中,由于在优化ai模型的推理过程中,还可以继续挖掘难例,对优化ai模型进行训练,获得再优化ai模型。

可选的,在步骤904中输出难例后,ai平台还可以将难例提供给用户,使用户进一步确认是不是难例,具体处理为:

ai平台向第一用户提供确认界面,在确认界面中向第一用户展示候选难例,候选难例为多个图像中的至少一个图像。ai平台根据第一用户在确认界面上的操作,确定候选难例中的难例。

本实施例中,第一用户可以根据推理结果和用户选择的难例筛选参数,在多个推理图像中,确定出其中包括的至少一个候选难例。然后ai平台将至少一个候选难例,提供给用户i/o模块,用户i/o模块给用户提供确认界面,在确认界面中向用户展示多个推理图像中的候选难例。用户可以打开任意一个候选难例,用户可以主观判断该难例的标注信息是否准确,若不准确,用户可以对标注信息进行修改,在修改完成后,对该候选难例的修改进行确认,ai平台则会接收到确认操作,确认该难例可用,且该难例的标注信息是用户修改后的矫正标注。或者用户主观判断难例的标注没有问题,则可以直接对该候选难例的修改进行确认,ai平台则会接收到确认操作。ai平台可以确认该难例可用,且该难例的标注为原来ai平台提供的标注。

此处需要说明的是,步骤503中,使用初始ai模型确定出难例的过程,具体是使用初始ai模型提取未标注的图像的特征,基于未标注的图像的特征,确定未标注的图像的标注结果,然后基于标注结果找出未标注的图像中的难例。步骤504中是基于未标注的图像中的难例继续对初始ai模型进行训练,获得优化ai模型。步骤904中,是使用优化ai模型确定难例的过程,具体是使用优化ai模型提取推理图像的特征,基于推理图像的特征,确定推理图像的推理结果,然后基于推理结果找出推理图像中的难例。步骤905中是基于推理图像中的难例继续对优化ai模型进行训练,获得再优化ai模型。可见步骤503和步骤904的处理原理相似,均是使用一个ai模型确定出未标注的图像中的难例,而且使用的ai模型的区别仅在于优化ai模型的推理能力高于初始ai模型的推理能力。而且步骤504和步骤905的处理原理相似,均是基于难例对已有的ai模型进行训练,使获得的ai模型的推理能力优于当前的ai模型的推理能力。所以上述图5的流程和图9的流程实际上就是找出难例,优化当前的ai模型。通过该方法,ai平台可向ai模型开发者提供推理能力更强的优化ai模型,使得开发者可一键式部署ai模型,并且无须关心开发过程。

在上述步骤503中,确定难例的实现过程可以如下:

使用初始ai模型标注未标注的图像,获得未标注的图像中各图像的标注信息,判断未标注的图像是否是视频片段。若未标注的图像是视频片段,则根据未标注的图像中各图像的标注结果,确定未标注的图像中的难例。若未标注的图像中的图像不是视频片段,则根据未标注的图像中各图像的标注结果和训练图像集,确定未标注的图像中的难例。

本实施例中,ai平台可以使用光流法、汉明距离中任意一种或多种判断未标注的多个图像是否是难例。例如,ai平台可以通过汉明距离确定每帧图像与该图像时序上相邻的下一帧图像的距离。若该图像与该图像时序上相邻的下一帧图像的汉明距离小于一定数值,则确定该图像与该下一帧图像在时序上连续,若该汉明距离大于或等于一定数值,则确定该图像与该下一帧图像在时序上不连续。在判断出该图像与该下一帧图像在时序上连续时,还可以使用光流法再次判断该图像与该下一帧图像是否连续,若使用光流法判断出该图像与该下一帧图像连续,则最终确定该图像与该下一帧图像在时序上连续。若使用光流法判断出该图像与该下一帧图像在时序上不连续,则最终确定该图像与该下一帧图像在时序上不连续。这样,继续遍历每帧图像则会确定出未标注的多个图像是连续的图像,还是非连续的图像。若未标注的多个图像是连续的图像,则确定未标注的多个图像是视频片段,若未标注的多个图像不是连续的图像,则确定未标注的多个图像不是视频片段。此处由于使用多种方式相结合确定图像在时序上是否连续,所以确定出的结果准确率比较高。

在未标注的多个图像在时序上连续时,ai平台可以使用未标注的多个图像的标注结果,确定出未标注的多个图像中的难例。在未标注的多个图像在时序上不连续时,ai平台可以使用未标注的多个图像中各图像的标注结果和训练图像集,确定出未标注的图像中的难例。此处的训练图像集指训练得到初始ai模型的训练图像组成的集合。

此处需要说明的是,图像在时序上相邻指编号相邻,例如,某帧图像编号为1,另一帧图像编号为2,则这两帧图像相邻。图像在时序上相邻还可以指上传的顺序相邻,例如,某帧图像是第一个上传,另一帧图像是第二个上传,则说明这两帧图像在时序上相邻。再例如,某帧图像是第一个上传,另一帧图像是第三个上传,则说明这两帧图像在时序上不相邻。

以下将分别描述ai平台应用于图像分类的场景和目标检测的场景中,难例的确定方式:

在ai平台用于确定一个ai模型用于图像分类的场景中时,对于未标注的多个图像为视频片段,难例的确定方式为:

ai平台确定未标注的多个图像中的目标图像,其中,目标图像的标注结果与目标图像在时序上相邻的图像的标注结果不相同。将目标图像确定为未标注的多个图像中的难例。

本实施例中,步骤502中输出的每帧图像的标注结果中可以包括图像所属的类别。对于任一帧图像,ai平台可以确定该图像所属的类别与相邻的帧图像所属的类别是否相同,此处相邻的帧图像指与该图像在时序上相邻的帧图像。若相同,则可以确定该图像不是难例,若不相同,说明优化ai模型对该图像的识别错误率比较高,则可以确定该图像为难例。该图像即为目标图像。

此处需要说明的,对于连续的图像中,第一帧图像仅有时序上相邻的下一帧图像,对于最后一帧图像仅有时序上相邻的上一帧图像。

在ai平台应用于图像分类的场景中时,对于未标注的多个图像不是视频片段,确定难例的过程,如图11所示:

步骤1101,ai平台获取未标注的多个图像中各图像在各类别下的置信度,根据未标注的多个图像中各图像的最高的两个置信度,确定未标注的多个图像中各图像的第一难例值。

其中,难例值用于衡量图像是否是难例的程度,难例值越大,图像是难例的概率就越大,反之难例值越小,图像是难例的概率就越小。

本实施例中,在步骤502中,优化ai模型的输出可以包括未标注的多个图像在每个类别下的置信度。其中,优化ai模型的输出在每个类别的置信度指示该优化ai模型对输入数据进行推理后的标注结果属于每一个类别的可能性。对于未标注的多个图像中的任一图像,可以获取该图像对应的最大的两个置信度。使用这两个置信度中最大的置信度减去最小的置信度,得到这两个置信度的差值。然后获取数据存储模块中存储的置信度的差值范围与难例值的对应关系,在该对应关系中,确定这两个置信度的差值所属的置信度的差值范围对应的第一难例值。这样,对于任一图像均按照该方法,即可以确定出未标注的多个图像中各图像的第一难例值。

步骤1102,ai平台获取训练图像集中训练图像的表层特征分布信息,根据表层特征分布信息和未标注的多个图像中各图像的表层特征,确定未标注的多个图像中各图像的第二难例值。

本实施例中,对于未标注的多个图像中每帧图像,可以确定每帧图像的表层特征,表层特征可以包括图像的分辨率、图像的长宽比、图像的红绿蓝(redgreenblue,rgb)的均值和方差、图像的亮度、图像的饱和度或图像的清晰度中的一种或多种。

具体的,ai平台可以在图像的属性中获取到图像的分辨率和图像的亮度,图像的分辨率指单位英寸中所包含的像素点数,图像的亮度决定颜色空间中颜色的明暗程度。

ai平台可以使用图像的长度除以宽度,得到图像的长宽比。

ai平台可以使用图像中每个像素点的r、g、b,分别出确定图像的r的均值、b的均值和g的均值,即为图像的rgb的均值。ai平台然后确定图像中所有像素点的r的均值、g的均值和b的均值,计算每个像素点的r与r的均值之差的平方,计算图像中所有像素点对应的平方之和,即得到图像中r的方差,使用相同的方式,ai平台即可确定出g的方差和b的方差,r的方差、g的方差和b的方差即为图像的rgb的方差。

ai平台可以计算图像的饱和度,饱和度是指色彩的鲜艳程度,也称色彩的纯度。对于未标注的多个图像中的任一图像,该图像的饱和度的计算方式为:(max(r,g,b)-min(r,g,b))/max(r,g,b),max(r,g,b)表示该图像中r、g、b中的最大值,min(r,g,b)表示该图像中r、g、b中的最小值。

ai平台还可以计算图像的清晰度,清晰度是衡量图像质量优劣的指标,可以通过brenner梯度函数或laplacian梯度函数等确定图像的清晰度。

然后ai平台获取训练图像集中各图像的表层特征,确定每种表层特征上的图像的分布。具体的,每种表层特征上图像的分布可以使用直方图表示。如图12所示,图12(a)为图像的r的均值的直方图,横轴为r的均值、纵轴为图像的数目,训练图像集中的图像为1000个,r的均值为10~20的图像为52个,r的均值为20~30的图像为204个,r的均值为30~40的图像为320个,r的均值为40~50的图像为215,r的均值为50~60的图像为99个,r的均值为60~70的图像为69个,r的均值为70~80的图像为22,r的均值为80~90的图像为13个,r的均值为90~100的图像为5个,r的均值为100~110的图像为1个。图12(b)为图像的饱和度的直方图,横轴为饱和度、纵轴为图像的数目,训练图像集中的图像为1000个,此处不一一列出。

然后ai平台获取存储的预设数值,对于任一表层特征上的图像的分布,将预设数值与未标注的多个图像中的图像的数目相乘,得到目标数值。ai平台将未标注的多个图像中的所有图像的该种表层特征的数值按照升序顺序进行排列,按照升序的方式找到第目标数值位置处的数值,得到该表层特征的极限值。在训练图像集中,确定该表层特征大于极限值的图像和表层特征小于或等于极限值的图像,确定表层特征大于极限值的图像的难例值为a,确定表层特征小于或等于极限值的难例值为b。例如,表层特征为图像的亮度,图像的数目为1000,预设数值为90%,目标数值为1000*90%=900,在亮度的直方图中,按照升序排列的亮度值中第900个数值为202.5,将训练图像集中亮度大于202.5的图像的难例值确定为1,将训练图像集中小于或等于202.5的图像的难例值确定为0。按照基于亮度确定难例值的方式,即可确定出每帧图像在每种表层特征下的难例值。以上仅为一种可选的实现方式,也可以使用其他方式确定出极限值。

这样,对于未标注的多个图像中各图像中的每种表层特征,均可以确定出一个难例值,然后获取每种表层特征对应的权重。对于未标注的多个图像中的每帧图像,将该图像中的每种表层特征的难例值与该表层特征对应的权重相乘,得到每种表层特征对应的一个数值。然后ai平台将所有表层特征对应的数值相加,得到该图像的第二难例值。

此处需要说明的是,对于不同的表层特征,权重可以不相同,所有表层特征的权重之和等于1。例如,图像的亮度和图像的清晰度的权重要大于图像的长宽比的权重。

另外需要说明的是,上述每种表层特征对应的预设数值,也可以不相同。上述步骤1102中是ai平台确定每帧图像的表层特征,在实际处理时,也可以是用户直接上传训练图像集和未标注的多个图像中各图像的表层特征,存储在数据存储模块。ai平台在使用时,从数据存储模块中,获取未标注的多个图像中各图像的表层特征。

步骤1103,ai平台使用第一特征提取模型,分别提取训练图像集中各图像的深层特征和未标注的多个图像中各图像的深层特征,根据训练图像集中各图像的深层特征,对训练图像集中各图像进行聚类处理,得到图像聚类结果;根据未标注的多个图像中各图像的深层特征、图像聚类结果和未标注的多个图像中各图像的标注结果,确定未标注的多个图像中各图像的第三难例值。

本实施例中,如图13所示,ai平台可以获取第一特征提取模型,第一特征提取模型可以是cnn,然后ai平台将训练图像集中各图像输入至第一特征提取模型,确定出各图像的深层特征。ai平台还可以将未标注的多个图像中各图像也输入至第一特征提取模型,确定出各图像的深层特征。每帧图像的深层特征可以使用一个一维数组表示,且每帧图像的深层特征的一维数组的维度相等。

然后ai平台可以将训练图像集中各图像的深层特征,输入至聚类算法(聚类算法可以是任何一种聚类算法,如k-means聚类算法等)中,得到图像聚类结果。图像聚类结果中包括多个图像组,每帧图像组中包括一个或多个图像。

对于每帧图像组,ai平台可以确定该图像组中每帧图像的第i维的数值的平均值。例如,图像组中包括3个图像,每帧图像的深层特征使用三维数组表示,3个图像的深层特征依次为(1,2,5)、(4,2,4)、(4,8,9),第1维的数值的平均值为3,第2维的数值的平均值为4,第3维的数值的平均值为6,这样,该图像组中的中心为(3,4,6)。这样,依照此方式可以确定每帧图像组的中心。

对于未标注的多个图像中的任一图像,ai平台可以确定该图像的深层特征与图像聚类结果中每帧图像组的中心的距离,具体处理是计算该图像与中心的欧式距离,公式可以是:其中,i为深层特征中的任一维度,n为深层特征中的总维度数。x1i为该图像的深层特征中的第i维,x2i为中心的深层特征中的第i维。将距离最小的图像组,确定为该图像所属的图像组(此处的过程可以认为是未标注的多个图像的聚类结果)。判断该图像与图像组中图像的类别是否相同。若相同,则确定难例值为a,该图像的第三难例值为a。若不相同,则确定难例值为b,该图像的第三难例值为b。同样,将未标注的多个图像中的任一图像聚类到已有的帧图像组,也可以使用k-means聚类方法,确定任一图像所属的帧图像组。另外也可以使用其他方式进行聚类。

步骤1104,ai难例值根据第一难例值、第二难例值和第三难例值中的一个或多个,确定未标注的多个图像各图像的目标难例值。

本实施例中,对于未标注的多个图像中任一图像,ai平台可以使用该图像的第一难例值、第二难例值和第三难例值中的一个或多个,确定出该图像的目标难例值。具体可以是ai平台可以将第一难例值确定为目标难例值,也可以将第二难例值确定为目标难例值,还可以是将第一难例值和第二难例值加权后,得到目标难例值,还可以是将第一难例值和第三难例值加权后,得到目标难例值,还可以将第二难例值和第三难例值加权后,得到目标难例值,还可以将第一难例值、第二难例值和第三难例值加权后,得到目标难例值。

在同时使用第一难例值、第二难例值和第三难例值时,由于同时考虑三种层面的难例值,所以确定出的目标难例值更准确。

步骤1105,ai平台将未标注的多个图像中目标难例值最大的第一数目个图像,确定为未标注的多个图像中的难例。

其中,第一数目可以预设,存储在ai平台的数据存储模块中。

本实施例中,ai平台可以按照目标难例值从大到小的顺序,将未标注的多个图像进行排序,选取排序最前的第一数目个图像,确定为未标注的多个图像中的难例。

在ai平台应用于目标检测的场景中时,对于未标注的多个图像是视频片段,如图14所示,难例的确定方式为:

步骤1401,ai平台对于未标注的多个图像中第一图像的第一目标框,在与第一图像在时序上的间隔小于或等于第二数目的图像中,确定与第一目标框的相似度最高的追踪框。

其中,第二数目可以预设,如2等。

本实施例中,未标注的多个图像中的任一图像可以称为是第一图像,第一图像中的任一边界框可以称为是第一目标框。ai平台可以确定第一图像在时序上的间隔小于或等于第二数目的图像。例如,第一图像为第5帧图像,第二数目为2,那么第一图像在时序上的间隔小于或等于第二数目的图像为第3帧图像、第4帧图像、第6帧图像和第7帧图像。这样,在第二数目大于或等于2时,不仅考虑相邻的一帧图像,而是考虑了相邻的多帧图像,所以可以提升误检和漏检的判断精度。

ai平台可以获取第一图像在时序上的间隔小于或等于第二数目的图像中的多个边界框,然后确定这多个边界框与第一目标框的相似度。具体可以是:对于每个边界框,计算该边界框的面积与第一目标框的面积的差值的第一绝对值,计算该边界框的长度与第一目标框的长度的差值的第二绝对值,计算该边界框的宽度与第一目标框的宽度的差值的第三绝对值。将第一绝对值与面积对应的权重相乘,得到第一权值,将第二绝对值与长度对应的权重相乘,得到第二权值,将第三绝对值与宽度对应的权重相乘,得到第三权值。将第一权值、第二权值和第三权值相加,得到第一目标框与该边界框的相似度。此处需要说明的是,第一权重、第二权重和第三权重之和等于1,且第二权重和第三权重可以相等。

ai平台可以在上述多个边界框中,确定与第一目标框的相似度最高的边界框。然后将相似度最高的边界框,确定为第一目标框对应的追踪框。这样,由于考虑了相邻的多帧图像中最相似的边界框,所以可以避免目标由于运动而丢失。

步骤1402,ai平台根据追踪框、在与第一图像在时序上的间隔小于或等于第二数目的图像中的所有的边界框和第一目标框,确定第一目标框与各边界框的重叠率。

本实施例中,ai平台可以使用如下公式,确定第一目标框与各边界框的重叠率:

overlap=max(iou(curbox,bbox),iou(trackedbox,bbox))(1)

其中,overlap指第一目标框与边界框的重叠率。第一目标框使用curbox表示,边界框使用bbox表示,iou(curbox,bbox)表示第一目标框和边界框的交并比(intersectionoverunion,iou)。第一目标框的追踪框使用trackedbox表示,iou(trackedbox,bbox)表示追踪框与边界框的交并比。overlap等于这两个交并比中的最大值。其中,第一目标框和边界框的交并比等于第一目标框与边界框的交集的面积,与第一目标框与边界框的并集的面积的比值。同理,追踪框和边界框的交并比等于追踪框与边界框的交集的面积,与追踪框与边界框的并集的面积的比值。

步骤1403,若存在重叠率大于第二数值的边界框,则ai平台将重叠率大于第二数值的边界框,确定为第一目标框对应的相似框;若不存在重叠率大于第二数值的边界框,则确定未存在第一目标框对应的相似框。

其中,第二数值可以预设,且存储在数据存储模块中。如第二数值为0.5等。

本实施例中,ai平台在确定第一目标框与各边界框的重叠率后,可以判断每个重叠率与第二数值的大小。若第一目标框与某个边界框的重叠率大于第二数值,则确定该边界框为第一目标框对应的相似框。此处重叠率大于第二数值的边界框有可能存在多个,那么第一目标框有可能对应多个相似框。

若第一目标框与任一边界框的重叠率均小于或等于第二数值,则确定第一图像在时序上的间隔小于或等于第二数目的图像中不存在第一目标框对应的相似框。

步骤1404,若未存在第一目标框对应的相似框,则ai平台将第一目标框确定为难例框。

本实施例中,在步骤1403中,确定出未存在第一目标框对应的相似框,说明第一目标框为突然出现的框,可以认为是误检框。ai平台可以将第一目标框,确定为难例框。

步骤1405,若存在第一目标框对应的相似框,且第一目标框所属的第一图像和相似框所属的第二图像在时序上不相邻,则ai平台根据第一目标框与相似框,确定第一图像和第二图像之间的图像中的难例框。

本实施例中,在步骤1403中,确定出存在第一目标框对应的相似框,ai平台可以判断相似框与第一目标框所在的图像是否在时序上相邻。若在时序上相邻,则说明不存在漏检框。若在时序上不相邻,则说明有框突然消失,存在漏检框,ai平台可以使用相似框与第一目标框之间进行滑动平均,标记出第一图像和第二图像之间的图像中的漏检框,该漏检框即为第一图像和第二图像之间的图像中的难例框。这样是采用少数服从多数的原则,将连续帧图像中的漏检框和误检框标记处理。

步骤1405中滑动平均的处理可以为:一般边界框是矩形,且使用边界框的左上角和右下角的位置坐标标记边界框在所属图像中的位置。该位置坐标指的是在图像中的位置坐标。ai平台可以使用第一目标框的左上角的横坐标减去相似框的左上角的横坐标,得到横坐标差值,将横坐标差值乘以x/(n+1)(其中,n等于第一目标框所属图像与相似框所属图像之间的图像的数目,x为第一目标框所属图像与相似框所属图像之间的第x个图像)。将第一目标框所属图像与相似框所属图像中时序靠前的框的左上角的横坐标与横坐标差值乘以x/(n-1)的数值相加,得到第一目标框所属图像与相似框所属图像之间的第x个图像的难例框的左上角的横坐标。同理可以得到第一目标框所属图像与相似框所属图像之间的第x个图像的难例框的左上角的纵坐标,以及第一目标框所属图像与相似框所属图像之间的第x个图像中难例框的右下角的位置坐标。

步骤1406,根据未标注的多个图像中各图像的难例框的数目,确定未标注的多个图像中的难例。

本实施例中,基于步骤1401至步骤1405的处理,可以确定出未标注的多个图像中各图像的难例框的数目,然后ai平台可以将难例框的数目超过第三数目的图像,确定为未标注的多个图像中的难例。

在ai平台应用于目标检测的场景中时,对于未标注的多个图像不是视频片段,如图15所示,难例的确定方式为:

步骤1501,ai平台获取训练图像集中图像的表层特征分布信息,根据训练图像集中图像的表层特征分布信息和未标注的多个图像的表层特征,确定未标注的多个图像中各图像的第四难例值。

本实施例中,对于未标注的多个图像中每帧图像,可以确定每帧图像的表层特征,表层特征可以包括图像的表层特征和边界框的表层特征。图像的表层特征可以包括图像的分辨率、图像的长宽比、图像的rgb的均值和方差、图像的亮度、图像的饱和度或图像的清晰度、单帧图像中框的数目或单帧图像中框的面积的方差中的一种或多种。边界框的表层特征可以包括单帧图像中每个边界框的长宽比、单帧图像中每个边界框的面积占图像面积的比例、单帧图像中每个边界框的边缘化程度、单帧图像中每个边界框的堆叠图、单帧图像中每个边界框的亮度或单帧图像中每个边界框的模糊度中的一种或多种。

具体的,ai平台确定未标注的多个图像中各图像的表层特征中的图像的分辨率、图像的长宽比、图像的rgb的均值和方差、图像的亮度、图像的饱和度或图像的清晰度的方式,可以参见步骤1102中的处理,此处不再赘述。

ai平台可以确定每帧图像中框的数目。

ai平台可以确定每帧图像中各个框的面积,然后计算出每帧图像中所有框的面积的均值,然后将每个边界框的面积减去均值后,进行平方,得到每个边界框对应的一个数值,将每个边界框对应的数值相加,即得到单帧图像中框的面积的方差。

ai平台可以计算每帧图像中每个边界框的长宽比。ai平台可以计算每帧图像中每个边界框的面积占图像面积的比例。

ai平台可以计算单帧图像中每个边界框的边缘化程度,具体处理是:对于某帧图像中的任一边界框,计算该边界框的中心的横坐标与图像的中心的横坐标的差值的绝对值(称为是横坐标差值)、该边界框的中心的纵坐标与图像的中心的纵坐标的差值的绝对值(称为是纵坐标差值),计算横坐标差值与该图像的长度的第一比值,并计算纵坐标差值与该图像的宽度的第二比值,(第一比值,第二比值)反映该边界框的边缘化程度,一般是第一比值和第二比值越大,边缘化越严重。

ai平台可以计算单帧图像中每个边界框的堆叠程度,具体处理是:对于某帧图像中的任一边界框,计算该边界框与该图像中其余边界框的交集的面积,将交集的面积分别与该边界框的面积相比,再相加,得到该图像中该边界框的堆叠层度。

ai平台可以计算单帧图像中每个边界框的亮度,具体处理是:对于某帧图像中的任一边界框,计算该边界框中的像素点的r的均值的平方、g的均值的平方和b的均值的平方。然后将r的均值的平方与0.241相乘,得到乘积a,将g的均值的平方与0.691相乘,得到乘积b,将b的均值的平方与0.068相乘,得到乘积c。将乘积a、乘积b和乘积c相加后,开平方得到该边界框的亮度。使用公式表示可以如下:

ai平台可以计算单帧图像中每个边界框的模糊度,具体处理是:对于某帧图像中的任一边界框,使用拉普拉斯算子对该边界框进行滤波,得到边缘值,将边缘值求方差,即得到该边界框的模糊度。需要说明的是,求方差得到的值越大,表示边界框越清晰。另外,此处确定框的模糊度仅为一种举例的形式,凡是可以用于确定边界框的模糊度,均可以应用于本实施例中。

然后ai平台获取训练图像集中训练图像的表层特征,确定每种表层特征上的图像的分布(处理与获取未标注的多个图像的表层特征相同,可参见未标注的多个图像的表层特征),具体的,每种表层特征上图像的分布可以使用直方图表示。

然后ai平台获取存储的预设数值,对于任一表层特征上的图像的分布,将预设数值与未标注的多个图像中的图像的数目相乘,得到目标数值。ai平台将未标注的多个图像中的所有图像的该种表层特征的数值按照升序顺序进行排列,按照升序的方式找到第目标数值位置处的数值,得到该表层特征的极限值。在训练图像集中,确定该表层特征大于极限值的图像和表层特征小于或等于极限值的图像,确定表层特征大于极限值的图像的难例值为a,确定表层特征小于或等于极限值的难例值为b。这样,对于未标注的多个图像中各图像中的每种表层特征,均可以确定出一个难例值,然后获取每种表层特征对应的权重。对于未标注的多个图像中的每帧图像,ai平台将该图像的边界框的表层特征的难例值与该表层特征对应的权重相乘,得到边界框的每种表层特征对应的一个数值,然后ai平台将边界框的所有表层特征对应的数值相加,得到该图像的边界框的难例值。ai平台将该图像的图像的表层特征的难例值与该表层特征对应的权重相乘,得到图像的每种表层特征对应的一个数值,然后ai平台将图像的所有表层特征对应的数值相加,得到该图像的难例值。然后ai平台将边界框的难例值与图像的难例值进行加权(边界框的难例值与图像的难例值的权重之和等于1),得到图像的第四难例值。

此处需要说明的是,对于不同的表层特征,权重可以不相同,所有表层特征的权重之和等于1。例如,图像的亮度和图像的清晰度的权重要大于图像的长宽比的权重。

另外需要说明的是,上述每种表层特征对应的预设数值,也可以不相同。上述步骤1010中是ai平台确定每帧图像的表层特征,在实际处理时,也可以是用户直接上传未标注的多个图像中各图像的表层特征,存储在数据存储模块。ai平台在使用时,从数据存储模块中,获取未标注的多个图像中各图像的表层特征。

步骤1502,ai平台使用第二特征提取模型,分别提取训练图像集中各图像中每个边界框的深层特征和未标注的多个图像中各图像中每个边界框的深层特征,根据训练图像集中各图像中每个边界框的深层特征,对训练图像集中各图像中每个边界框进行聚类处理,得到框聚类结果;根据未标注的多个图像中各图像中每个边界框的深层特征、框聚类结果和未标注的多个图像中各图像中每个边界框的推理结果,确定未标注的多个图像中各图像的第五难例值。

本实施例中,如图16所示,ai平台可以获取第二特征提取模型,第二特征提取模型可以与上述提到的第一特征提取模块相同,可以是cnn。然后ai平台将训练图像集中各图像输入至第二特征提取模型,确定出各图像中每个边界框的深层特征。ai平台还可以将未标注的多个图像中各图像也输入至第二特征提取模型,确定出各图像中每个边界框的深层特征。每个边界框的深层特征可以使用一个一维数组表示,且每个边界框的深层特征的一维数组的维度相等。

然后ai平台可以将训练图像集中各图像中每个边界框的深层特征,输入至聚类算法(聚类算法可以是任何一种聚类算法,如k-means聚类算法等)中,得到边界框聚类结果。边界框聚类结果中包括多个边界框组,每个边界框组中包括一个或多个边界框。

对于每个边界框组,ai平台可以确定该边界框组中每个边界框的第i维的数值的平均值。例如,边界框组中包括3个边界框,每个边界框的深层特征使用三维数组表示,3个边界框的深层特征依次为(7,2,5)、(4,2,4)、(4,14,9),第1维的数值的平均值为3,第2维的数值的平均值为4,第3维的数值的平均值为6,这样,该边界框组中的中心为(5,6,6)。这样,依照此方式可以确定每个边界框组的中心。

对于未标注的多个图像中的任一图像中任一边界框,ai平台可以确定该边界框的深层特征与图像聚类结果中每个边界框组的中心的距离,具体处理是计算该边界框与中心的欧式距离,公式可以是:其中,i为深层特征中的任一维度,n为深层特征中的总维度数。x1i为该边界框的深层特征中的第i维,x2i为中心的深层特征中的第i维。将距离最小的边界框组,确定为该边界框所属的图像组。同样,将未标注的多个图像中的任一边界框聚类到已有的边界框组,也可以使用k-means聚类方法,确定任一边界框所属的边界框组。另外也可以使用其他方式进行聚类。判断该边界框与边界框组中边界框的类别是否相同。若相同,则确定难例值为c。若不相同,则确定难例值为d。对于每帧图像将所有边界框的难例值相加,即得到每帧图像的第五难例值。

步骤1503,ai平台根据第四难例值和第五难例值中的一个或多个,确定未标注的多个图像各图像的目标难例值。

本实施例中,对于未标注的多个图像中任一图像,ai平台可以使用该图像的第四难例值、第五难例值中的一个或多个,确定出该图像的目标难例值。具体可以是ai平台可以将第四难例值确定为目标难例值,也可以将第五难例值确定为目标难例值,还可以将第四难例值和第五难例值加权后,得到目标难例。在同时使用第四难例值和第五难例值时,由于同时考虑两种层面的难例值,所以确定出的目标难例值更准确。

步骤1504,ai平台将未标注的多个图像中目标难例值最大的第一数目个图像,确定为未标注的多个图像中的难例。

其中,第一数目可以预设,存储在ai平台的数据存储模块中。

本实施例中,ai平台可以按照目标难例值从大到小的顺序,将未标注的多个图像进行排序,选取排序最前的第一数目个图像,确定为未标注的多个图像中的难例。

本申请实施例中,ai平台可以获取未标注的多个图像,将未标注的多个图像输入至初始ai模型,得到未标注的多个图像中各数据的标注结果,然后使用未标注的多个图像中各图像的标注结果,确定未标注的多个图像中的难例,基于难例,重新对初始ai模型进行训练,得到优化ai模型。由于在ai平台中使用难例进行训练初始ai模型,所以可以使训练完成的优化ai模型的推理准确率更高。

以下本申请实施例中还提供了优化ai模型的方法,如图17所示,处理可以为:

步骤1701,ai平台根据训练图像集对初始ai模型进行训练,获得优化ai模型。

本实施例中,训练图像集是用户提供给ai平台的图像集。训练图像集可以仅包括未标注的多个图像。训练图像集可包括未标注的多个图像和带标注的多个图像。

在训练图像集可以仅包括未标注的多个图像时,优化初始ai模型的过程可以见图5所示的流程。在训练图像集包括未标注的多个图像和带标注的多个图像时,可以首先使用带标注的多个图像训练出初始ai模型,基于初始ai模型,确定未标注的多个图像的标注结果。基于标注结果确定难例,基于难例训练初始ai模型,获得优化ai模型。此处的处理可以参见图5所示额流程。

步骤1702,ai平台接收推理图像集,根据优化ai模型对推理图像集中的每个推理图像进行推理,获得推理结果。

本实施例中,若想使用优化ai模型进行推理,则用户可以上传推理图像集,将推理图像集中图像输入优化ai模型,得到推理结果。

步骤1703,ai平台根据推理结果,确定推理图像集中的难例,其中,难例指示通过优化ai模型进行推理获得的推理结果的错误率高于目标阈值的推理图像。

其中,推理结果与标注结果等同。

本实施例中,此过程可以参见步骤503的处理,与步骤503的区别仅在于此处是推理图像集,步骤503中是未标注的多个图像,实际上均是未标注的多个图像。详细过程参见步骤503的描述。

步骤1704,根据难例对优化ai模型进行训练,获得再优化ai模型。

本实施例中,在确定出推理图像集中的难例之后,可以对优化ai模型进行继续训练,得到再优化ai模型(训练过程可参见前面的描述)。

由于又使用难例对优化ai模型进行训练,所以得到的再优化ai模型的推理能力更强。

需要说明的是,上述提供ai模型的方法可以由ai平台100上的一个或多个模块共同实现,具体的,用户i/o模块,用于实现图5中的步骤501、图9中的步骤901和步骤902。难例挖掘模块,用于实现图5中的步骤503、步骤904、图11所示的流程、图14所示的流程、图15所示的流程以及图17中步骤1703。模型训练模块用于实现图5中的步骤502、步骤504、图9中的步骤905、图17中的步骤1704。推理模块用于实现图9所示的步骤903、图17所示的步骤1702。

本申请还提供一种如图4所示的计算设备400,计算设备400中的处理器402读取存储器401存储的程序和图像集合以执行前述ai平台执行的方法。

由于本申请提供的ai平台100中的各个模块可以分布式地部署在同一环境或不同环境中的多个计算机上,因此,本申请还提供一种如图18所示的计算设备,该计算设备包括多个计算机1800,每个计算机1800包括存储器1801、处理器1802、通信接口1803以及总线1804。其中,存储器1801、处理器1802、通信接口1803通过总线1804实现彼此之间的通信连接。

存储器1801可以是只读存储器,静态存储设备,动态存储设备或者随机存取存储器。存储器1801可以存储程序,当存储器1801中存储的程序被处理器502执行时,处理器1802和通信接口1803用于执行ai平台为获取ai模型的部分方法。存储器还可以存储图像集合,例如:存储器1801中的一部分存储资源被划分成一个图像集存储模块,用于存储ai平台所需的图像集,存储器1801中的一部分存储资源被划分成一个ai模型存储模块,用于存储ai模型库。

处理器1802可以采用通用的中央处理器,微处理器,应用专用集成电路,图形处理器或者一个或多个集成电路。

通信接口1803使用例如但不限于收发器一类的收发模块,来实现计算机1800与其他设备或通信网络之间的通信。例如,可以通过通信接口1803获取图像集。

总线504可包括在计算机1800各个部件(例如,存储器1801、处理器1802、通信接口1803)之间传送信息的通路。

上述每个计算机1800间通过通信网络建立通信通路。每个计算机1800上运行用户i/o模块101、难例挖掘模块102、模型训练模块103、推理模块104、ai模型存储模块105、数据存储模块106和数据预处理模块107中的任意一个或多个。任一计算机1800可以为云数据中心中的计算机(例如:服务器),或边缘数据中心中的计算机,或终端计算设备。

上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。

在上述实施例中,可以全部或部分地通过软件、硬件或者其组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。提供ai平台的计算机程序产品包括一个或多个进ai平台的计算机指令,在计算机上加载和执行这些计算机程序指令时,全部或部分地产生按照本申请实施例图5、图11、图14或图15所述的流程或功能。

所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、双绞线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质存储有提供ai平台的计算机程序指令。所述计算机可读存储介质可以是计算机能够存取的任何介质或者是包含一个或多个介质集成的服务器、数据中心等数据存储设备。所述介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,光盘)、或者半导体介质(例如ssd)。

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