掌桥专利:专业的专利平台
掌桥专利
首页

一种图片标注方法及设备

文献发布时间:2023-06-19 10:29:05


一种图片标注方法及设备

技术领域

本申请涉及图片处理领域,尤其涉及一种图片标注方法及设备。

背景技术

现有技术中,智能标注平台系统在人工智能领域得到了广泛的应用。在此类智能标注平台系统中,由于现有技术中对单张图片进行标注,导致效率低,。因此,如何提高标注效率一直是需要突破的瓶颈。

发明内容

本申请的一个目的是提供一种图片标注方法及设备,以提高对图片进行标注的效率和准确性。

根据本申请的一个方面,提供了一种图片标注方法,其中,所述方法包括:

获取待标注的大图数据集及所述大图数据集中的每张大图的一个或多个框数据;

分别根据每张大图的框数据切割出小图,得到每张大图对应的多个小图及每张小图对应的标注数据及所属大图的大图标识,并汇总生成小图数据集及每张小图的预测版本标注数据;

基于所述预测版本标注数据对所述小图数据集进行批量标注属性的修改,生成每张小图的新一版本的标注数据;

基于每张所述小图的所述框数据和所属大图的大图标识,对所述小图数据集中的所有小图的所述新一版本的标注数据进行合并,生成大图数据集中的每一张大图的新一版本标注数据。

进一步地,上述方法中,所述方法还包括:

确定待标注的大图数据集及所述大图数据集中的每张大图的一个或多个框数据,并创建为所述大图数据集修改标注属性的一个任务及所述任务对应的多个子任务。

进一步地,上述方法中,其中,所述确定待标注的大图数据集及所述大图数据集中的每张大图的一个或多个框数据,并创建为所述大图数据集修改标注属性的一个任务及所述任务对应的多个子任务,包括:

确定待标注的大图数据集,并创建为所述大图数据集修改标注属性的一个任务,所述任务包括所述大图数据集中的所有张大图;

基于所述大图数据集中的每张大图的一个或多个框数据,创建小图数据集,并为所述小图数据集创建预测任务;

创建所述预测任务与对应的小图的预测版本之间的关联数据;

创建所述预测任务的子任务;

创建所述任务与对应的大图的版本之间的关联数据;

将所述大图数据集、所述任务、所述大图数据集的版本、所述小图数据集、所述预测版本的小图对应的预测任务及子任务及用于指示关联所述大图数据集与所述小图数据集之间的任务的新任务组成一个结构体;

将所述结构图输入切图信号。

进一步地,上述方法中,所述分别根据每张大图的框数据切割出小图,得到每张大图对应的多个小图及每张小图对应的标注数据及所属大图的大图标识,并汇总生成小图数据集及每张小图的预测版本标注数据,包括:

分别根据每张大图的框数据切割出小图,得到每张大图对应的多个小图及所属大图的大图标识;

分别将每张大图的框数据中的框坐标扩大预设倍像素,记录扩大后的标注数据,得到每张小图对应的标注数据;

将每张小图及其对应的标注数据进行汇总生成所述小图数据集及每张所述小图的预测版本标注数据。

进一步地,上述方法中,所述基于所述预测版本标注数据对所述小图数据集进行批量标注属性的修改,生成每张小图的新一版本的标注数据,包括:

基于所述预测版本标注数据对所述小图数据集中的每张小图进行批量标注属性的修改,得到每张小图的新一版本的标注数据;

依序分别判断每个子任务是否已标注完成及所述子任务对应的任务是否已标注,

若所述子任务及其对应的任务均已标注完成,则完成对所述小图数据集中的所有小图的批量标注;

若所述子任务未标注完成和/或所述子任务对应的任务未标注完成,则将所述子任务的状态更新为标注中和/或所述子任务对应的任务的状态更新为标注中,继续对所述小图数据集中的每张小图进行批量标注属性的修改,直至标注完成所有子任务及其对应的任务。

根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述图片标注方法。

根据本申请的另一方面,还提供了一种用于图片标注的设备,其中,该设备包括:

一个或多个处理器;

计算机可读介质,用于存储一个或多个计算机可读指令,

当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述图片标注方法。

与现有技术相比,本申请通过获取待标注的大图数据集及所述大图数据集中的每张大图的一个或多个框数据;分别根据每张大图的框数据切割出小图,得到每张大图对应的多个小图及每张小图对应的标注数据及所属大图的大图标识,并汇总生成小图数据集及每张小图的预测版本标注数据;基于所述预测版本标注数据对所述小图数据集进行批量标注属性的修改,生成每张小图的新一版本的标注数据;基于每张所述小图的所述框数据和所属大图的大图标识,对所述小图数据集中的所有小图的所述新一版本的标注数据进行合并,生成大图数据集中的每一张大图的新一版本标注数据,实现了基于对图片的框数据和标注数据进行切图,批量的标注整张图片中的各个小图的标注属性,从而提高标注效率和准确性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个方面的一种图片标注方法的流程示意图;

图2示出根据本申请一个方面的一种图片标注方法中的基于需要修改的标注属性的数据创建任务的示意图;

图3示出根据本申请一个方面的一种图片标注方法中的基于标注的框数据切小图的示意图;

图4示出根据本申请一个方面的一种图片标注方法中的基于小图批量标注属性的示意图;

图5示出根据本申请一个方面的一种图片标注方法中的基于小图的标注属性合并到大图的示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

图1示出根据本申请一个方面的一种图片标注方法的流程示意图,该方法包括步骤S11、步骤S12、步骤S13及步骤S14,具体包括如下步骤:

步骤S11,获取待标注的大图数据集及所述大图数据集中的每张大图的一个或多个框数据;在此,所述大图数据集中包括一张或多张大图,每张大图是已经被标注好框数据的,每个所述框数据会有坐标,以便后续能够根据所述框数据对大图进行切分,从而得到多张对应的小图。

步骤S12,分别根据每张大图的框数据切割出小图,得到每张大图对应的多个小图及每张小图对应的标注数据及所属大图的大图标识,并汇总生成小图数据集及每张小图的预测版本标注数据。

步骤S13,基于所述预测版本标注数据对所述小图数据集进行批量标注属性的修改,生成每张小图的新一版本的标注数据。

步骤S14,基于每张所述小图的所述框数据和所属大图的大图标识,对所述小图数据集中的所有小图的所述新一版本的标注数据进行合并,生成大图数据集中的每一张大图的新一版本标注数据,实现了基于对图片的框数据和标注数据进行切图,批量的标注整张图片中的各个小图的标注属性,从而提高标注效率和准确性。

接着本申请的上述实施例,本申请一个方面的一种图片标注方法还包括:

确定待标注的大图数据集及所述大图数据集中的每张大图的一个或多个框数据,并创建为所述大图数据集修改标注属性的一个任务及所述任务对应的多个子任务。例如,当需要对一张或多张大图形成的大图数据集进行标注属性的修改时,首先需要确定待标注的大图数据集及其中的每张大图和每张大图的一个或多个框数据,其次需要为待标注的大图数据集修改标注属性创建一个任务,并确定所述任务对应的子任务,比如每张大图对应一个任务,或一个任务可以对应多张大图,并确定所述任务对应的多个子任务,每个子任务可以对应大图中的一个或多个小图。

进一步地,所述确定待标注的大图数据集及所述大图数据集中的每张大图的一个或多个框数据,并创建为所述大图数据集修改标注属性的一个任务及所述任务对应的多个子任务,包括:

确定待标注的大图数据集,并创建为所述大图数据集修改标注属性的一个任务,所述任务包括所述大图数据集中的所有张大图;

基于所述大图数据集中的每张大图的一个或多个框数据,创建小图数据集,并为所述小图数据集的预测任务;

创建所述预测任务与对应的小图的预测版本之间的关联数据;

创建所述预测任务的子任务;

创建所述任务与对应的大图的版本之间的关联数据;

将所述大图数据集、所述任务、所述大图数据集的版本、所述小图数据集、所述预测版本的小图对应的预测任务及子任务及用于指示关联所述大图数据集与所述小图数据集之间的任务的新任务组成一个结构体;

将所述结构图输入切图信号。

例如,如图2所示,为了对需要修改标注属性的数据创建任务,首先记录任务的图片总数,即需要进行标注属性修改的大图的数量;然后循环记录每个大图的属性标签的二级属性,所述二级属性并不固定,是由超管自定义的,当然,所述属性标签存在一级属性的,由于每个一级属性(一级大类)下的二级属性都是唯一的,在创建新的二级属性时会提前校验并去重;之后,在创建任务时,可以选择判断时切图还是不切图,比如图2中的第一个判断:req.is_cut,若is_cut为0时表示不切图,is_cut为1时表示切图;若切图,则任务状态为创建中,若不切图直接跳转至任务状态为待标注;接下来创建任务,并继续判断是否切图:req.is_cut,若是,如图2所示,则创建小图数据集,创建一个预测任务,创建预测任务和小图数据集的1版本的关联数据,创建预测任务的子任务,并创建正常任务和大图版本的关联数据,以实现创建任务以及关联数据,完成创建任务主流程,在数据都创建好后,将大图的数据集id、大图基于版本的任务id、大图的基于版本的版本号、小图数据集id、小图预测版本的任务id、小图预测版本的子任务id及新生成任务id(用于指示同时关联大图和小图之间的任务)的这些数据组成一个结构体,并将该组成的结构体存入切图信号:channal信号,并异步切图及存储标注数据,以便后续的异步服务会一直扫描管道,一旦出现信号,就会基于上述这些数据开始执行后面相关操作;由于基于选中的大图版本进行切图,那么对切图后又合并后得到的,为新生成的大图是一个新的版本,避免大图的版本号重复,所以获取最大版本号+1;然后,创建任务和大图数据集的关联数据,其中,任务和大图数据集是关联关系,每个任务都会在创建时选择需要的标注属性,然后对大图数据集中的大图进行标注,在此,上述关联关系可以理解为做一个记录,一个任务可以关联大图数据集中的多个大图,后续在下发子任务数据时会从上述记录里获取关联了哪些大图,然后将关联的大图按照一定的规则切分成子任务;最后,创建任务和团队的关联数据,给任务做一个权限隔离,每个任务只能被创建时选中的团队中的成员标注,当然,一个任务可以关联多个团队。通过图2中所示的流程图,主要完成了两个方面的处理,一是获取到异步处理切图的切图信号,另一是完成了创建任务流程,由于切图相关操作相对耗时,为了不影响用户创建任务体验,此处选择异步处理这两个方面的处理,使得不影响主流程正常返回创建任务成功的结果。

接着本申请的上述实施例,所述步骤S12分别根据每张大图的框数据切割出小图,得到每张大图对应的多个小图及每张小图对应的标注数据及所属大图的大图标识,并汇总生成小图数据集及每张小图的预测版本标注数据,具体包括:

分别根据每张大图的框数据切割出小图,得到每张大图对应的多个小图及所属大图的大图标识;

分别将每张大图的框数据中的框坐标扩大预设倍像素,记录扩大后的标注数据,得到每张小图对应的标注数据;

将每张小图及其对应的标注数据进行汇总生成所述小图数据集及每张所述小图的预测版本标注数据。

例如,如图3所示,在基于标注的框数据进行切小图处理时,首先获取切图的info信号,然后并发处理获取大图数据集的信息、下载大图图片、上传小图的图片及数据、创建图片数据及创建小图的1版本的标注数据,其中,在读取大图数据集的信息时,通过获取图片数据并存入下载信号实现,在下载大图图片时,获取切图信号中的数据,从服务器中下载大图数据,并解析框数据,该框数据中的每个框坐标扩大20倍像素,并记录扩大后的标注数据,存入切小图信号,在上传小图的图片及数据时,从下载大图图片的末尾处的切小图信号中获取小图的图片及数据,并判断图片格式,从而将小图的图片及数据等上传到服务器,并存入创建图片信号中,在创建图片数据时,获取所述图片信号中的数据,创建小图的图片数据,并将小图的图片数据存储到数据库时会记录每张小图的图片所属大图的图片id的字段,并存入创建标注数据信号,在创建小图的1版本的标注数据时,获取创建标注数据信号中的数据,给分类classification标注数据赋值并创建标注数据;之后,更新小图数据集的图片大小及数据量;接着,更新小图的2版本任务的图片总数,在此,在业务场景中,不仅需要小图的图片数据,还需要保留小图对应的标注数据(标注数据指的是小图所属在大图中的标注数据),所以将原有的小图对应的标注数据创建为预测版本,即1版本,将新生成的待标注的版本创建为小图的2版本,故在图3中存在小图的1版本和2版本的区别;然后,判断小图的图片数量是否恒等于0,若是,则将分配状态alloc设置为已分配完成,避免领取不到子任务,若否,则更新小图的1版本的子任务状态为已完成,最后完成大图切小图的任务。

在如图3所示的流程图中,获取到切图信号中的大图的数据集id、大图基于版本的任务id、大图的基于版本的版本号、小图数据集id、小图预测版本的任务id、小图预测版本的子任务id及新生成任务id(用于指示同时关联大图和小图之间的任务)的数据后,获取大图数据集的图片数据以及大图数据集的标注数据;根据每张大图的框坐标切出小图,并保留这个框对应的标注属性作为切出的小图的预测数据;将切出的所有小图的小图数据汇总为一个小图数据集上传到服务器,然后在数据库中创建小图的图片数据,并创建小图的预测版本的标注数据,以完成基于大图的框数据切小图的任务。

需要说明的是,切小图是基于大图的某个版本切的,大图是已经被标注好框数据的,其中,每个框数据会有框坐标;每张大图能够切出来几张小图,取决于这张大图标了多少个框数据,有多少个框数据对应切出来多少个小图,如果没有框数据,那么这张大图就不会切出小图。

接着本申请的上述实施例,所述步骤S13基于所述预测版本标注数据对所述小图数据集进行批量标注属性的修改,生成每张小图的新一版本的标注数据,具体包括:

基于所述预测版本标注数据对所述小图数据集中的每张小图进行批量标注属性的修改,得到每张小图的新一版本的标注数据;

依序分别判断每个子任务是否已标注完成及所述子任务对应的任务是否已标注,

若所述子任务及其对应的任务均已标注完成,则完成对所述小图数据集中的所有小图的批量标注;

若所述子任务未标注完成和/或所述子任务对应的任务未标注完成,则将所述子任务的状态更新为标注中和/或所述子任务对应的任务的状态更新为标注中,继续对所述小图数据集中的每张小图进行批量标注属性的修改,直至标注完成所有子任务及其对应的任务。

例如,如图4所示,首先判断图片是否为空,若为空,则失败退出,若不为空,则校验标注员并校验子任务状态,若校验员和子任务不符合,则失败退出,若校验员和子任务符合,则创建标注数据;之后更新子任务的已标注图片数量,并判断当前子任务是否已标注完成,比如:req.is_completed,若当前子任务未完成,则继续判断子任务状态的任务状态是否为待标注,比如:task.Status==utils.Unmark,若为待标注,则更新子任务为标注中状态,若已标注,则进入下一个判断:判断子任务对应的任务状态是否为待标注:project.Status==utils.ProjectInit,若为待标注则更新任务状态为进行中,若为已标注则完成批量标注属性;若当前子任务已完成,则继续判断校验子任务的图片总数和已标注数量是否相同,若不相同,则标注未完成,不能最终递交,若相同,则修改子任务状态,并判断是不是单标注状态,若否,则完成,若是,则继续判断是不是大图切小图;若不是大图切小图,则完成,若是大图切小图,则继续判断大图数据集是不是已完成状态,若否则完成,若是则存入合并属性信号。通过图4中的流程后,完成了两个方面的结果,一方面是小图的2版本的数据标注完成,另一方面是生成小图的标注数据需要合并到大图的合并属性信号,由于合并属性操作相对耗时,所以异步处理合并操作,但不影响主流程正常返回标注完成的结果。

接着本申请的上述实施例,在完成对小图数据集的批量标注属性的修改后,需要对小图的标注属性(比如新一版本的标注数据)进行合并到大图中,如图5所示,首先获取标注数据合并属性信号info;然后,获取大图数据集集及每张大图的版本;接着获取大图数据集中的每张大图的图片数据;之后,创建大图的子任务,创建完大图的子任务后,更新大图的分配记录,分配状态设置为已完成;并获取大图现在版本的关联数据及目的,拿到大图的上一版本的version,然后获取大图的上一版本的project及标注数据;根据大图的上一版本的标注数据的image_id查找出每条标注数据对应的多张小图;然后获取每张小图的标注数据,并判断一级标签及一级id是否能匹配,若不配则跳过并获取下一小图的标注数据,若匹配则将匹配的小图的标签属性合并,并创建大图的新一版本标注数据并进行合并;最后,合并完成后更新子任务状态为已完成,以实现基于每张所述小图的所述框数据和所属大图的大图标识,对所述小图数据集中的所有小图的所述新一版本的标注数据进行合并,生成大图数据集中的每一张大图的新一版本标注数据,实现了对大图的切图、批量标注属性的修改及合并,从而得到大图的新一版本标注数据,实现对拖的标注。

根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述图片标注方法。

根据本申请的另一方面,还提供了一种用于图片标注的设备,其中,该设备包括:

一个或多个处理器;

计算机可读介质,用于存储一个或多个计算机可读指令,

当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述图片标注方法。

在此,所述用于图片标注的设备中的各实施例的详细内容,具体可参见上述图片标注方法的实施例的对应部分,在此,不再赘述。

综上所述,本申请通过获取待标注的大图数据集及所述大图数据集中的每张大图的一个或多个框数据;分别根据每张大图的框数据切割出小图,得到每张大图对应的多个小图及每张小图对应的标注数据及所属大图的大图标识,并汇总生成小图数据集及每张小图的预测版本标注数据;基于所述预测版本标注数据对所述小图数据集进行批量标注属性的修改,生成每张小图的新一版本的标注数据;基于每张所述小图的所述框数据和所属大图的大图标识,对所述小图数据集中的所有小图的所述新一版本的标注数据进行合并,生成大图数据集中的每一张大图的新一版本标注数据,实现了基于对图片的框数据和标注数据进行切图,批量的标注整张图片中的各个小图的标注属性,从而提高标注效率和准确性。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

相关技术
  • 图片的标注方法、标注装置、设备及存储介质
  • 一种人脸图片中关键点的标注方法及其标注系统
技术分类

06120112568390