发明内容
有鉴于此,本发明的目的在于提供一种图像数据库实现方法及其系统和网络通信设备,能提高图像处理或图像识别系统的自适应性能力,同时实现模型的自动更新并提高系统识别的精度。
本发明提出一种图像数据库实现方法,包括:
建立所述图像数据库中对图像数据的定义,利用所述定义形成图像表和模型表;
上传相关数据至所述图像表和模型表;
建立所述图像表和模型表之间的关联关系;
接收用户上传的新图像数据,并根据所述新图像数据判断是否触发模型推理计算;
如果触发模型推理计算,则根据模型推理计算的结果判断模型的精度是否出现下降;
如果模型的精度出现下降,则更新模型;
根据接收到的查询条件在包括所述更新模型的图像数据库中进行查询。
优选的,所述图像表中的字段包括模型标识符、输入列、输出列和版本号,其中,所述模型标识符标识各个模型序号,所述输入列表示与模型序号的推理相关的列,所述输出列表示对应模型序号的输出标签定义,所述版本号表示模型序号的版本号,其中,一个图像表关联一个或者多个模型。
优选的,所述模型表中的字段包括模型标识符、版本号和模型数据,其中,所述模型标识符标识各个模型序号,所述版本号表示与模型序号对应的版本号,模型数据表示与模型序号对应的图像数据。
优选的,所述上传相关数据至所述图像表和模型表的步骤包括:
将用于训练的初始数据集上传至所述图像表;
将所需的模型数据上传至所述模型表。
优选的,所述根据所述新图像数据判断是否触发模型推理计算的步骤包括:
判断所述新图像数据中是否包含每一个模型所需的输入列;
如果所述新图像数据中包含每一个模型所需的输入列,则触发模型推理计算;
如果所述新图像数据中没有包含每一个模型所需的输入列,则不触发模型推理计算。
优选的,所述根据模型推理计算的结果判断模型的精度是否出现下降的步骤包括:
计算所述新图像数据中所包括的新增用户标注数据和模型推理计算的结果之间的偏差;
如果所述偏差超过预先设定的阈值,则判定模型的精度出现下降;
如果所述偏差没有超过预先设定的阈值,则判定模型的精度没有出现下降。
优选的,所述更新模型的步骤包括:
选取新训练数据集,基于所述新训练数据集训练得到新模型,将所述新模型写入所述模型表中。
另一方面,本发明还提出一种图像数据库实现系统,所述系统包括:
定义模块,用于建立所述图像数据库中对图像数据的定义,利用所述定义形成图像表和模型表;
上传模块,用于上传相关数据至所述图像表和模型表;
关联模块,用于建立所述图像表和模型表之间的关联关系;
判断模块,用于接收用户上传的新图像数据,并根据所述新图像数据判断是否触发模型推理计算,如果触发模型推理计算,则根据模型推理计算的结果判断模型的精度是否出现下降;
更新模块,用于如果模型的精度出现下降,则更新模型;
查询模块,用于根据接收到的查询条件在包括所述更新模型的图像数据库中进行查询。
优选的,所述图像表中的字段包括模型标识符、输入列、输出列和版本号,其中,所述模型标识符标识各个模型序号,所述输入列表示与模型序号的推理相关的列,所述输出列表示对应模型序号的输出标签定义,所述版本号表示模型序号的版本号,其中,一个图像表关联一个或者多个模型。
优选的,所述模型表中的字段包括模型标识符、版本号和模型数据,其中,所述模型标识符标识各个模型序号,所述版本号表示与模型序号对应的版本号,模型数据表示与模型序号对应的图像数据。
优选的,所述上传模块,具体用于:
将用于训练的初始数据集上传至所述图像表;
将所需的模型数据上传至所述模型表。
优选的,所述判断模块,具体用于:
判断所述新图像数据中是否包含每一个模型所需的输入列;
如果所述新图像数据中包含每一个模型所需的输入列,则触发模型推理计算;
如果所述新图像数据中没有包含每一个模型所需的输入列,则不触发模型推理计算。
优选的,所述判断模块,具体用于:
计算所述新图像数据中所包括的新增用户标注数据和模型推理计算的结果之间的偏差;
如果所述偏差超过预先设定的阈值,则判定模型的精度出现下降;
如果所述偏差没有超过预先设定的阈值,则判定模型的精度没有出现下降。
优选的,所述更新模块,具体用于:
选取新训练数据集,基于所述新训练数据集训练得到新模型,将所述新模型写入所述模型表中。
又一方面,本发明还提供一种网络通信设备,其中,所述网络通信设备包括上述任一项所述的图像数据库实现系统。
再一方面,本发明还提供一种网络通信设备,其中,所述网络通信设备包括存储器和处理器,所述存储器存储计算机处理指令,所述处理器通过调用所述计算机处理指令来执行上述任一项所述的图像数据库实现方法。
本发明提供的技术方案具有以下优点:可以融合训练、推理能力、图像快速查询为一体化,能够结合历史推理结果及用户反馈信息进行模型的自动化更新。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下将对本发明所提供的一种图像数据库实现方法进行详细说明。
请参阅图1,为本发明一实施方式中图像数据库实现方法的流程示意图。
在步骤S1中,建立图像数据库中对图像数据的定义,利用定义形成图像表和模型表。
在本实施方式中,一条图像数据涉及到三类信息,分别是图像文件、图像属性和图像特征,其中,图像文件是图像二进制文件,图像属性包括图像的拍摄时间、图像来源、像素大小等等,图像特征包括图像标签或特征类数据,该图像特征通常经后期的推理计算任务或其它计算任务生成。
在本实施方式中,图像数据库中包含两类表,分别是图像表和模型表,如图2所示,其中,图像表中的元数据信息定义了与该图像表相关额模型信息,一个图像表关联一个或者多个模型,图像表中的字段包括模型标识符(ID)、输入列、输出列和版本号,如下表1所示。
表1
其中,模型标识符标识各个模型序号,例如模型1、模型2、模型3等等,输入列表示与模型序号的推理相关的列,例如与模型1推理相关的列、与模型2推理相关的列、与模型3推理相关的列等等,输出列表示对应模型序号的输出标签定义,例如模型1的输出标签定义、模型2的输出标签定义、模型3的输出标签定义等等,版本号表示模型序号的版本号,例如模型1版本号、模型2版本号、模型3版本号等等。
在本实施方式中,图像表中包含有两个数据区,即图像区和特征区,图像区包括图像文件的相关数据以及图像属性的相关数据,特征区包括图像的特征相关数据。
在本实施方式中,模型表中存储了所有的模型信息,一个模型可能包含多个版本,模型表中的字段包括模型标识符(ID)、版本号和模型数据,如下表2所示。
表2
模型ID |
版本号 |
模型数据 |
模型1 |
|
|
模型2 |
|
|
模型3 |
|
|
模型4 |
|
|
其中,模型标识符标识各个模型序号,版本号表示与模型序号对应的版本号,模型数据表示与模型序号对应的图像数据。
本发明还可以为训练数据集设置一个独立的视图,即优质图像视图,该优质图像视图与上述的图像表在结构上类似,但区别在于:(1)优质图像视图的数据集为经筛选过的高质量图像数据集;(2)优质图像视图的数据仅仅包含图像文件、图像属性、人工标注结果,通常不包含模型推理计算结果。
在步骤S2中,上传相关数据至图像表和模型表。
在本实施方式中,所述上传相关数据至图像表和模型表的步骤S2包括:
将用于训练的初始数据集上传至图像表;
将所需的模型数据上传至模型表。
其中,用于训练的初始数据集包含有标注数据,所需的模型数据可以源自其它平台的训练结果,也可以基于图像表或者优质图像视图进行训练而得到。
在步骤S3中,建立图像表和模型表之间的关联关系。
在本实施方式中,在新建图像表时,如果关联的模型已经存在,则直接在建表时指定对应的模型信息,如果创建图像表时尚无可用模型,后续上传模型数据时,可以通过更新图像表的元数据信息来添加图像表与新模型的关联关系。
在步骤S4中,接收用户上传的新图像数据,并根据所述新图像数据判断是否触发模型推理计算。
在本实施方式中,用户上传新图像数据后,图像数据库服务端依据接收的请求以及元数据信息来判断是否触发模型的推理计算。
在本实施方式中,所述根据所述新图像数据判断是否触发模型推理计算的步骤包括:
判断所述新图像数据中是否包含每一个模型所需的输入列;
如果所述新图像数据中包含每一个模型所需的输入列,则触发模型推理计算;
如果所述新图像数据中没有包含每一个模型所需的输入列,则不触发模型推理计算。
在本实施方式中,新写入的图像数据中可能包含了人工标注的结果,在这种情形下,只要模型的输入列满足要求,依然会触发推理计算,这对于模型将来的更新非常有价值,因为后续将通过对比人工标注的结果与模型推理计算结果来判断模型的精度是否出现下降。
在本实施方式中,无论是图像数据的人工标注结果,还是经推理计算获得的特征结果,在系统中采用统一的数据结构来表达,在这个结构中,至少包含有特征名称属性、特征值属性、特征来源属性、置信度属性等等几点属性,如表3所示。
表3
属性名 |
描述 |
name |
特征名称 |
value |
特征值 |
source |
特征来源 |
confidence |
置信度 |
其中,特征来源属性可用来区分人工标注结果以及模型推理结果,如果是模型推理结果,在特征来源属性中携带有模型ID以及模型版本信息,置信度属性通常用来描述模型推理结果的可信度,通常用0~1之间的一个浮点值来表示,在一种可选的实现方案中,可以为人工标注结果提供一种特殊的置信度值,这样可以通过置信度属性推断出特征来源属性信息。
在步骤S5中,如果触发模型推理计算,则根据模型推理计算的结果判断模型的精度是否出现下降。
在本实施方式中,所述根据模型推理计算的结果判断模型的精度是否出现下降的步骤包括:
计算所述新图像数据中所包括的新增用户标注数据和模型推理计算的结果之间的偏差;
如果所述偏差超过预先设定的阈值,则判定模型的精度出现下降;
如果所述偏差没有超过预先设定的阈值,则判定模型的精度没有出现下降。
在步骤S6中,如果模型的精度出现下降,则更新模型。
在本实施方式中,如何判断一个模型的精度出现下降,主要通过两种方法,一种是用户反馈结果,另一种是步骤S5中包括的计算新图像数据中所包括的新增用户标注数据和模型推理计算的结果之间的偏差,图像数据库系统中设置有一个周期运行的模块,用来不断的计算增量人工标注结果与模型推理计算结果之间的偏差值,满足一定的阈值后,则触发模型更新请求。
在本实施方式中,所述更新模型的步骤包括:
选取新训练数据集,基于所述新训练数据集训练得到新模型,将所述新模型写入所述模型表中。
在本实施方式中,模型的更新包括两种方式,一种是基于新选取的训练集重新训练得到新的模型,另一种是基于原有的模型与增量数据进行增量训练得到新的模型。
在本实施方式中,如果系统中设置了优质图像视图,则可以将优质图像视图的最新数据集视作新训练数据集,如果系统未设置优质图像视图,则分为如下两种情形:
一种是基于全量的图像表作为新训练数据集,此时,需要先对图像表执行一次快照操作,该快照技术是数据库的现有技术,它的目的是基于当前的全量图像表生成一个不可变的数据集合,这样使得训练出来的模型结果可回溯;
另一种是通过条件筛选出全量图像数据的一个子集,并将数据写入到文件或一个新的图像表中,一旦写入完成,相关文件或图像表也不再允许发生改动,训练基于新生成的文件或新图像表进行。
在本实施方式中,基于新的训练数据集训练得到新的模型后,将模型写入到模型表中,如表4所示。
表4
模型ID |
版本号 |
模型数据 |
模型1 |
V1 |
{版本V1相关参数等数据} |
模型1 |
V2 |
{版本V2相关参数等数据} |
其中,而后更新图像表的元数据信息,将图像表的模型升级至模型1的V2版本,升级后,新写入的数据将启用模型1的V2版本进行推理计算。
在本实施方式中,模型更新后,因模型推理计算后的输出特征可能出现变化,需要对存量数据的特征进行更新,此时涉及到的每一种场景及更新方案如下:
场景1:特征集合未发生变化,但特征结果发生了变化
更新方法:新版本的特征计算结果直接写入即可,关于新的特征计算结果支持两种写入模式:覆盖写入,新的结果覆盖旧的结果,旧结果不再可见;增量写入,新旧版本的计算结果同时存在,用户可以指定获取旧版本的数据;这两种写入模式可由用户指定;
场景2:新版本的模型增加了新的特征
更新方法:新增的特征数据,直接写入即可,两个版本的相同特征,可以依据用户配置要求决定是否写入新的特征计算结果,相同特征是指模型的两个版本都输出的相同的特征,例如,针对车辆实体识别模型,两个版本的模型识别出的车身颜色特征都是相同的,则认为两个版本的模型关于车身颜色特征的计算结果是未发生变化的;
场景3:新版本的模型减少了特征数量
两个版本相同的特征结果,可以依据用户配置要求决定是否写入新的特征计算结果,减少的特征数据,可以依据用户配置要求决定是否将其删除;
场景4:新版本的模型特征集合有增有减
新增的特征数据,直接写入即可,减少的特征数据,则可以依据用户配置要求决定是否将其删除,相同特征的数据,也可以依据用户配置要求决定是否写入新的特征计算结果。
在步骤S7中,根据接收到的查询条件在包括所述更新模型的图像数据库中进行查询。
在本实施方式中,相比传统结构化数据库查询和单一功能的图像API,本发明的图像数据库支持结构化和非结构化查询,查询条件可以同时包括结构化的图像属性、图像标签以及非结构化的图像,在系统收到具有非结构化的图像作的查询条件,会触发推理计算,获得相关图像特征,然后对数据进行查询。在本实施方式中,查询条件包含非结构化图像数据且其他字段满足模型输入,而且查询输出列是图像标签或特征,系统将直接触发推理计算,返回结果,不查询库中数据。
在本实施方式中,图像数据库将图像AI能力数据库化,改变目前单一功能的图像AI API开发方式,不仅可以更加灵活高性能的满足应用多样化组合需求,也减低了图像AI训练复杂度,使得具有SQL/数据库应用能力的开发人员就可以对图像进行AI训练。
在本实施方式中,图像数据库将结构化数据库和机器学习在一个系统中实现,应用可以实现对结构化和非结构化数据的组合查询,也可以实现多个非结构化输入的组合查询。
在本实施方式中,图像数据库实现业务数据的闭环流动、算法模型的增量式更新,当前图像识别系统的训练和推理是两个分离的系统,不利于业务数据的闭环流动,同时算法模型一旦不满足业务需求,只能通过重新批量式训练,并使用新训练的算法模型替换原来的模型,这种方式存在时间的滞后性,影响业务的连续性。本发明的图像数据库将训练数据与推理计算结果数据融合存储,可以结合历史推理结果、人工标注结果以及用户反馈结果,快速识别出模型精度的下降,触发训练。
请参阅图3,为本发明一实施方式中图像数据库实现系统1的结构示意图。
在本实施方式中,图像数据库实现系统1包括:定义模块11、上传模块12、关联模块13、判断模块14、更新模块15和查询模块16。
定义模块11,用于建立所述图像数据库中对图像数据的定义,利用所述定义形成图像表和模型表。
在本实施方式中,所述图像表中的字段包括模型标识符、输入列、输出列和版本号,其中,所述模型标识符标识各个模型序号,所述输入列表示与模型序号的推理相关的列,所述输出列表示对应模型序号的输出标签定义,所述版本号表示模型序号的版本号,其中,一个图像表关联一个或者多个模型。
在本实施方式中,所述模型表中的字段包括模型标识符、版本号和模型数据,其中,所述模型标识符标识各个模型序号,所述版本号表示与模型序号对应的版本号,模型数据表示与模型序号对应的图像数据。
上传模块12,用于上传相关数据至所述图像表和模型表。
在本实施方式中,上传模块12,具体用于:
将用于训练的初始数据集上传至所述图像表;
将所需的模型数据上传至所述模型表。
关联模块13,用于建立所述图像表和模型表之间的关联关系。
判断模块14,用于接收用户上传的新图像数据,并根据所述新图像数据判断是否触发模型推理计算,如果触发模型推理计算,则根据模型推理计算的结果判断模型的精度是否出现下降。
在本实施方式中,判断模块14,具体用于:
判断所述新图像数据中是否包含每一个模型所需的输入列;
如果所述新图像数据中包含每一个模型所需的输入列,则触发模型推理计算;
如果所述新图像数据中没有包含每一个模型所需的输入列,则不触发模型推理计算。
在本实施方式中,判断模块14,具体用于:
计算所述新图像数据中所包括的新增用户标注数据和模型推理计算的结果之间的偏差;
如果所述偏差超过预先设定的阈值,则判定模型的精度出现下降;
如果所述偏差没有超过预先设定的阈值,则判定模型的精度没有出现下降。
更新模块15,用于如果模型的精度出现下降,则更新模型。
在本实施方式中,所述更新模块15,具体用于:
选取新训练数据集,基于所述新训练数据集训练得到新模型,将所述新模型写入所述模型表中。
查询模块16,用于根据接收到的查询条件在包括所述更新模型的图像数据库中进行查询。
在本实施方式中,系统装置项的详细说明参阅前述图1所示的方法项的详细说明,在此不做重复记载。
另外,本发明还提供一种网络通信设备,其中,所述网络通信设备包括前述的图像数据库实现系统。
此外,本发明还提供一种网络通信设备,其中,所述网络通信设备包括存储器和处理器,所述存储器存储计算机处理指令,所述处理器通过调用所述计算机处理指令来执行前述的图像数据库实现方法。
本发明提供的技术方案具有以下优点:可以融合训练、推理能力、图像快速查询为一体化,能够结合历史推理结果及用户反馈信息进行模型的自动化更新。
值得注意的是,上述实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。