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

图片的标注方法以及相关装置、设备

文献发布时间:2023-06-19 11:02:01


图片的标注方法以及相关装置、设备

技术领域

本申请涉及图片标注的技术领域,特别是涉及图片的标注方法以及相关装置、设备。

背景技术

随着互联网技术的高速发展,在人工智能深度学习领域,计算机视觉取得了令人瞩目的成就,其中,除了人脸关键点识别,以人的形体、体态为特征的体态识别的应用场景和相关技术也在不断突破。

其中,对人体、或人体骨骼的特征点或关节点进行标注对于虚拟仿人的相关训练具有至关重要的作用。而目前,行业中的标注工具一般只对图片上的点进行标注,该方法标注效果较差、实用性较低、标注效率也比较低。

发明内容

本申请提供了图片的标注方法以及相关装置、设备,解决现有技术中存在的图片标注效果较差的问题。

本申请提供了一种图片的标注方法,包括:基于待标注图片确定待标注点的数量和类型;基于待标注点的数量和类型对待标注图片进行对应标注,得到多个标注点;从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线,以基于标注点以及连线得到图片的标注信息。

其中,从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线的步骤包括:基于预设连线规则将目标标注点与其他标注点进行连线;将目标标注点、其他标注点以及目标标注点与其他标注点之间的连线建立对应关系,得到目标标注点、其他标注点以及目标标注点与其他标注点之间的组合。

其中,从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线的步骤之后包括:基于预设颜色与预设透明度对目标标注点与其他标注点之间的连线进行显示。

其中,将目标标注点、其他标注点以及目标标注点与其他标注点之间的连线建立对应关系,得到目标标注点、其他标注点以及目标标注点与其他标注点之间的组合的步骤之后包括:利用组合删除目标标注点以及与目标标注点对应的连线。

其中,图片的标注方法还包括:实时存储各标注点的位置信息与类型信息以及各连线的颜色以及透明度,以利于撤销标注。

其中,基于待标注点的数量和类型对待标注图片进行对应标注,得到多个标注点的步骤包括:基于待标注点的数量和类型通过图片标注模型对待标注图片进行标注点识别,得到至少一个预标注点的初始标注信息;利用至少一个预标注点的初始标注信息在待标注图片上标注出至少一个预标注点;对待标注图片进行二次标注,以在待标注图片上标注出剩余标注点,得到多个标注点。

其中,基于待标注点的数量和类型通过图片标注模型对待标注图片进行标注点识别,得到至少一个预标注点的初始标注信息的步骤包括:通过图片标注模型对待标注图片进行标注点识别,得到各预标注点的初始坐标信息和初始类型信息;对各预标注点的初始坐标信息和初始类型信息进行配置,得到各预标注点的标签特征;利用至少一个预标注点的初始标注信息在待标注图片上标注出至少一个预标注点的步骤包括:通过图片标注模型利用各预标注点的标签特征在待标注图片上标注出各预标注点。

其中,对待标注图片进行二次标注,以在待标注图片上标注出剩余标注点,得到多个标注点的步骤包括:对待标注图片进行二次标注,以在待标注图片上标注出剩余标注点,并确定各剩余标注点的类型;和/或移动至少一个预标注点的位置,得到标注点。

其中,基于标注点以及连线得到图片的标注信息的步骤包括:对标注后的图片上的各标注点和各连线进行遍历,得到各标注点的确定坐标信息、确定类型信息以及各连线的轨迹信息与连接信息;将各标注点的确定坐标信息、确定类型信息以及各连线的轨迹信息与连接信息作为图片的标注信息。

本申请还提供了一种图片的标注装置,包括:确定模块,用于基于待标注图片确定待标注点的数量和类型;标注模块,用于基于待标注点的数量和类型对待标注图片进行对应标注,得到多个标注点;连线模块,用于从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线,以基于标注点以及连线得到图片的标注信息。

本申请还提供了一种电子设备,包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述任意一图片的标注方法。

本申请还提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述任意一图片的标注方法。

上述方案,本申请先基于待标注图片确定待标注点的数量和类型,再基于待标注点的数量和类型对待标注图片进行对应标注,得到多个标注点,从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线,以基于标注点以及连线得到图片的标注信息,从而通过将标注点进行连线来提高标注后的图片上的标注效果,并增强图片上个标注点之间的可视化对应联系,从而在将标注信息进行应用时提高标注信息的实用性。

附图说明

图1是本申请图片的标注方法一实施例的流程示意图;

图2是本申请图片的标注方法另一实施例的流程示意图;

图3是图2实施例中待选区域中待标注点正在被标注的一实施例的示意图;

图4是图2实施例中标注完成后图片一实施例的示意图;

图5是本申请图片的标注装置一实施例的框架示意图;

图6是本申请电子设备一实施例的框架示意图;

图7为本申请计算机可读存储介质一实施例的框架示意图。

具体实施方式

下面结合说明书附图,对本申请实施例的方案进行详细说明。

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。

本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,可以存在三种关系,例如,A和/或B,可以:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般前后关联对象是一种“或”的关系。此外,本文中的“多”两个或者多于两个。

请参阅图1,图1是本申请图片的标注方法一实施例的流程示意图。具体而言,可以包括如下步骤:

步骤S11:基于待标注图片确定待标注点的数量和类型。

在一个具体的应用场景中,待标注图片可以为多张具有同种特征物体的图片,例如:100张包含有人体部位图片或200张包含有动物骨骼部位的图片等。具体的待标注图片的数量以及特征物体可以根据实际情况进行确定,在此不做限定。

在一个具体的应用场景中,可以基于待标注图片的特征物体所包含的所有特征确定待标注点的数量和类型。其中,待标注图片的待标注点的数量基于特征物体的全部特征数量进行确定。在一个具体的应用场景中,当多张待标注图片上的特征物体为人体时,可以基于人体的所有关节特征确定待标注点的数量和类型,即待标注点的数量即为人体的所有关节特征的数量。其中,待标注点的数量并不依据单张待标注图片上所展示的人体范围所包含的特征进行设置。例如:当待标注图片上的人体部分仅为上半身时,人体的所有关节特征的范围为整个人体,并非仅有上半身。

在一个具体的应用场景中,当多张待标注图片的特征物体为人体时,则可以基于人体的全部关节特征点确定待标注点的数量和类型。例如:人体的全部关节特征点共有20个,类型分别为“鼻”、“颈下”、“右肩”、“右肘”、“右腕”、“左肩”、“左肘”、“左腕”、“右胯”、“右膝”、“右踝”、“左胯”、“左膝”、“左踝”、“右眼”、“左眼”、“右耳”、“左耳”、“左掌心”、“右掌心”时,待标注点的数量也为20个,其类型分别为“鼻”、“颈下”、“右肩”、“右肘”、“右腕”、“左肩”、“左肘”、“左腕”、“右胯”、“右膝”、“右踝”、“左胯”、“左膝”、“左踝”、“右眼”、“左眼”、“右耳”、“左耳”、“左掌心”、“右掌心”。而具体的特征物体的特征数量可以由人工或特征提取模型进行确定,在此不做限定。

在一个具体的应用场景中,待标注图片也可以为多张具有同种特征场景的图片,例如:100张建筑图片等。具体的待标注图片的数量以及特征场景可以根据实际情况进行确定,在此不做限定。而待标注点的数量和类型则可以基于特征场景的特征进行确定。

步骤S12:基于待标注点的数量和类型对待标注图片进行对应标注,得到多个标注点。

基于上一步骤中获得的待标注点的数量和类型分别对每一张待标注图片进行对应标注,得到每一张待标注图片上对应的多个标注点。

在一个具体的应用场景中,当针对人体特征的数量确定了人体全身的20个待标注点后,对仅包含部分人体的目标待标注图片进行对应标注时,只对目标待标注图片直观展示的人体部分进行标注,目标待标注图片没有直观展示的人体部分不进行标注,得到目标待标注图片的多个标注点。例如:当目标待标注图片只包含上半身时,则只基于人体上半身的待标注点的数量和类型对目标待标注图片进行对应标注,得到多个标注点。

步骤S13:从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线,以基于标注点以及连线得到图片的标注信息。

在目标待标注图片被标注,且得到多个标注点后,从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线,以基于标注点以及连线得到图片的标注信息。

在一个具体的应用场景中,可以在标注出所有标注点后,选取其中一个目标标注点,将该目标标注点与已标注的其他标注点进行连线,直至将标注点都进行对应连线。在另一个具体的应用场景中,也可以在标注的过程中,每标注一个目标标注点后,将该目标标注点与已标注的其他标注点进行连线,直至标注完所有的标注点。通过连线将各个标注点建立可视化对应关系,从而提高标注后的图片上的标注效果,进而在将标注信息进行应用时,提高标注信息的实用性。

标注及连线完成后,基于标注的标注点以及连线得到图片的标注信息以及标注后的图片。

通过上述方法,本实施例的图片的标注方法先基于待标注图片确定待标注点的数量和类型,再基于待标注点的数量和类型对待标注图片进行对应标注,得到多个标注点,从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线,以基于标注点以及连线得到图片的标注信息,从而通过将标注点进行连线来提高标注后的图片上的标注效果,并增强图片上个标注点之间的可视化对应联系,从而在将标注信息进行应用时提高标注信息的实用性。

请参阅图2,图2是本申请图片的标注方法另一实施例的流程示意图。本实施例将以待标注图片的共同特征为人体结构进行说明,在其他实施例中待标注图片的共同特征可以为任意其他结构或特征,在此不做限定。具体而言,可以包括如下步骤:

本实施例的标注方法应用于标注平台的标注工具,标注平台在获取待标注图片后,通过标注工具对待标注图片进行标注。

步骤S21:基于待标注图片确定待标注点的数量和类型。

基于获取到的多张待标注图片所共同具有的人体结构的特征确定待标注点的数量和类型,其中,本实施例中待标注点的类型是指待标注点的部位类型。

在一个具体的应用场景中,通过人工确定的方式确定人体结构的特征共有[“鼻”、“颈下”、“右肩”、“右肘”、“右腕”、“左肩”、“左肘”、“左腕”、“右胯”、“右膝”、“右踝”、“左胯”、“左膝”、“左踝”、“右眼”、“左眼”、“右耳”、“左耳”、“左掌心”、“右掌心”],则本步骤中能确定的定待标注点的数量为20,其类型分别为[“鼻”、“颈下”、“右肩”、“右肘”、“右腕”、“左肩”、“左肘”、“左腕”“右胯”、“右膝”、“右踝”、“左胯”、“左膝”、“左踝”、“右眼”、“左眼”、“右耳”、“左耳”、“左掌心”、“右掌心”]。

确定待标注点的数量和类型后,基于待标注点的数量和类型确定多个待标注点的标注标签,可以按照人体结构的顺序将多个标注标签放入标注工具的待选区域。在一个具体的应用场景中,可以选择某个标注标签进行标注,标注后基于人体结构的顺序,自动选取下一个未标注的标注标签,以便于进行标志。其中,自动选取的方法可以采用求模运算或其他方法进行,当选取求模运算进行自动选取时,可以采用如下述代码[remainPoints[(index+1)%remainPoints.length]进行。

请参阅图3,图3是图2实施例中待选区域中待标注点正在被标注的一实施例的示意图。

待选区域30中依次排列了多个标注标签,其中,多个标注标签与待标注点一一对应。在本实施例中,待选区域30中包括已标注的标注标签31、未标注的标注标签32以及正在标注的标注标签33。则将正在标注的标注标签33标注完后,待选区域30自动选择下一个未标注的标注标签32进行标注。

在本实施例中,对待标注图片进行标注时,可以选择将所有的待标注点都进行标注后,标注结束;也可以选择只将部分待标注点进行标注后标注结束。具体可以基于实际情况进行设置,在此不做限定。

步骤S22:基于待标注点的数量和类型通过图片标注模型对待标注图片进行标注点识别,得到至少一个预标注点的初始标注信息,利用至少一个预标注点的初始标注信息在待标注图片上标注出至少一个预标注点。

由于待标注图片上需要绘制的标注点可能较多,因此,本实施例中标注的过程可以在web前端通过使用Canvas进行绘制待标注图片和标注点,从而减少触及前端性能瓶颈或引发页面卡顿等问题。具体地,利用Canvas建立画布,再将待标注图片绘制到画布上,进而利用Canvas将待标注点绘制到画布上的待标注图片上。

在通过人工对待标注图片进行标注前,可以先基于待标注点的数量和类型通过图片标注模型对待标注图片进行标注点识别,得到至少一个预标注点的初始标注信息,利用至少一个预标注点的初始标注信息先在待标注图片上标注出至少一个预标注点。其中,初始标注信息可以包括预标注点在图片上的初始坐标信息和初始类型信息。初始类型信息包括:无、遮挡以及可见,其不同于标注点的类型。

通过图片标注模型对待标注图片进行标注点识别,得到各预标注点的初始坐标信息和初始类型信息;对各预标注点的初始坐标信息和初始类型信息进行配置,得到各预标注点的标签特征;通过图片标注模型利用各预标注点的标签特征在待标注图片上标注出各预标注点。其中,图片标注模型是基于图片标注进行预先训练所得到的图片标注模型,具体可以为深度神经网络模型或其他模型,具体在此不做限定。

本步骤中,定义一个JSON(JavaScript Object Notation,Java脚本对象注释,是一种轻量级的数据交换格式)用于存放预标注点的坐标信息和预标注点的类型信息,这为图片标注模型的辅助标注提供了接口,具体地,JSON配置的外层是一个对象,里层的键名是点的名称,键值是一个长度为3的数组,这个数组里的值按顺序表示相对于待标注图片左边界的横坐标、相对于待标注图片上边界的纵坐标以及预标注点的类型,其中,预标注点的初始类型信息为无时,对应数据为0;预标注点的初始类型信息为遮挡时,对应数据为1;预标注点的初始类型信息为可见时,对应数据为2。(不可见为0,遮挡为1,可见为2),配置的标签特征的例子如下:

{“右腕”:[456.12207,915.48486,2],“颈下”:[445.7528,991.6262,2],“鼻”:[439.641,1065.5913,2]}

以“右腕”:[456.12207,915.48486,2]为例进行说明,右腕”为预标注点名字和类型,456.12207,915.48486为预标注点的坐标,2为预标注点的初始类型信息,且为可见。

本实施例的标签特征是标注工具的labelFeature和最终标注信息共用一个字段,在二次标注之前通过图片标注模型进行预标注,把预标注的标签特征信息填入到LabelFeature字段,而二次标注时修改更新后,新的标注信息会替代旧的labelFeature。或,分成两个字段,区别预标注的标注信息和最终的标注信息。

在一个具体的应用场景中,当通过图片标注模型得到各预标注点的标签特征后,可以遍历标签特征,并通过Canvas将预标注点绘制到画布中的待标注图片上。

在一个具体的应用场景中,通过图片标注模型利用各预标注点的标签特征在待标注图片上标注出各预标注点,可以通过如下代码进行实现:

其中,labelFeature数据结构就是上文预标注的标签特征信息的数据结构,对labelFeature进行解析,得到预标注点的名称、横坐标、纵坐标以及点的类型,基于上述坐标进行校准,画点,从而在待标注图片上绘制出标注点。而坐标值除以ratio(比例)是为了校准标注过程图片在画布缩放和移动的比例和位置。

在一个具体的应用场景中,图片标注模型所标注的预标注点的数量可能少于前述步骤中得到的待标注点的数量。由于图片标注模型的精度受训练数据以及迭代次数的影响,因此,图片标注模型所标注的预标注点可能存在不准确的现象,因此,本实施例中还需要对经图片标注模型预标注后的图片进行二次标注,以提高图片标注的准确率和精度。

在一个具体的应用场景中,当在待标注图片上标注出预标注点时,会创建预标注点的名称的实例,以用于直观展示预标注点的具体信息,例如:标注左掌心的标注点时,除了在目标位置绘制出圆点外,还会建立对应的文本实例用于展示“左掌心”文字,以使该标注点的信息直观化。其中,后续二次标注同样也会创建预标注点的名称的实例,进行展示。

步骤S23:对待标注图片进行二次标注,以在待标注图片上标注出剩余标注点,得到多个标注点。

由于人工标注时,需要通过屏幕或可视区域对待标注图片进行展示,以便于人工观看并标注。因此,在对待标注图片进行二次人工标注前,先在web前端使用Canvas(一种绘图工具)将待标注图片绘制到画布上,由于屏幕或可视区域的展示区域是固定且有限的,为了能够使待标注图片在初始化后能够与屏幕或可视区域进行匹配,减少图片出框的抢矿发生,需要对待标注图片进行一次比例的计算。在一个具体的应用场景中,如果待标注图片宽高比相较可视区域大,则待标注图片按比例缩放为宽度等于可视区域的宽度,否则按比例缩放高度等于可视区域的高度。本应用场景中缩放功能可以由以下代码进行实现:

对待标注图片进行二次人工标注,以在待标注图片上标注出剩余标注点,从而得到多个标注点,即待标注图片上所展示出的人体结构能够标注出的所有标注点。

在二次标注过程中,由于本步骤为人工标注,人工通过Canvas在画布上的某个位置进行点击,从而直接将标注点绘制到待标注图片上。二次标注绘制标注点的方式直接通过人工进行,与预标注中先获取预标注点的标注标签,再基于标注标签进行绘制的方法不同。

在一个具体的应用场景中,由于图片标注模型所标注的预标注点受其精度影响,因此,图片标注模型所标注的预标注点可能存在不准确以及不全面的情况,因此,通过人工标注对待标注图片进行二次标注,具体地,可以对待标注图片进行二次标注,以在待标注图片上标注出除预标注点以外的剩余标注点,并确定各剩余标注点的最终的确定类型信息;和/或,当预标注点的位置不准确时,通过二次标注移动至少一个不准确的预标注点的位置,得到待标注图片上所需标注的多个确定后的标注点。

在一个具体的应用场景中,当预标注点的初始坐标信息和初始类型信息不准确时,本步骤中通过二次标注对其进行修改,从而得到预标注点最终的确定坐标信息和确定类型信息。

在一个具体的应用场景中,在步骤S22以及步骤S23中,在待标注图片上标注出预标注点和标注点的过程中,可以基于预设连线规则在之间各标注点进行连线。其中,预设连线规则可以由人体结构的排布顺序进行设置,在本实施例中,基于待标注点的数量和类型确定各标注点之间的连线规则。

在一个具体的应用场景中,各标注点之间的连线规则可以如下:[“鼻”,“右眼”],[“鼻”,“左眼”],[“右眼”,“右耳”],[“左眼”,“左耳”],[“鼻”,“颈下”],[“颈下”,“右肩”],[“颈下”,“左肩”],[“右肩”,“右肘”],[“右肘”,“右腕”],[“左肩”,“左肘”],[“左肘”,“左腕”],[“右腕”,“右掌心”],[“左腕”,“左掌心”],[“颈下”,“右胯”],[“右胯”,“右膝”],[“右膝”,“右踝”],[“颈下”,“左胯”],[“左胯”,“左膝”],[“左膝”,“左踝”]。在本实施例中,标注点可以和不止1个其他标注点连线,例如:可能存在某标注点和另外5个标注点连线的情况。在其他实施例中,例如人脸特征标注中,可以只存在标注点与单个其他标注点连线的情况,具体根据特征结构的具体特征进行设置,在此不做限定。

在一个具体的应用场景中,在对待标注图片进行标注前,还可以设置连线的颜色,以进一步突出标注结果的可视化。在一个具体的应用场景中,可以默认连线的颜色都为红色。在另一个具体的应用场景中,可以提供自定义连线颜色的功能,可以通过如下数据结构进行配置:{“颈下-右肩”:“(255,0,85,0.65)”,“颈下-左肩”:“(255,0,0,0.65)”,“右肩-右肘”:“(255,85,0,0.65)”,“右肘-右腕”:“(255,170,0,0.65)”,“左肩-左肘”:“(255,255,0,0.65)”,“左肘-左腕”:“(170,255,0,0.65)”,“颈下-右胯”:“(85,255,0,0.65)”,“右胯-右膝”:“(0,255,0,0.65)”,“右膝-右踝”:“(0,255,85,0.65)”,“颈下-左胯”:“(0,255,170,0.65)”,“左胯-左膝”:“(0,255,255,0.65)”,“左膝-左踝”:“(0,170,255,0.65)”,“鼻-颈下”:“(0,85,255,0.65)”,“鼻-右眼”:“(0,0,255,0.65)”,“右眼-右耳”:“(255,0,170,0.65)”,“鼻-左眼”:“(170,0,255,0.65)”,“左眼-左耳”:“(255,0,255,0.65)”,“右胯-左胯”:“(85,0,255,0.65)”,“右腕-右掌心”:“(255,255,0,0.65)”,“左腕-左掌心”:“(0,255,0,0.65)”}。

其中,以[“左腕-左掌心”:“(0,255,0,0.65)”]为例进行说明,其他数据结构与本例类似,不做赘述。“左腕-左掌心”表示将左腕的标注点与左掌心的标注点进行连线,“(0,255,0,0.65)”中的前三位0,255,0表示连线的RGB颜色,最后一位0.65表示连线的透明度。其中,连线的RGB颜色与透明度都可以基于实际情况进行设置,此处只做示意,并不进行限定。

在本实施例中,可以通过map填色工具对连线进行填色,具体通过以下代码实现自定义连线颜色的逻辑。

当基于预设连线规则将各标注点进行连线时,基于预设颜色与预设透明度对各标注点之间的连线进行显示。

在一个具体的应用场景中,可以在标注出所有标注点后,选取其中一个目标标注点,将该目标标注点与已标注的其他标注点进行连线,直至将标注点都进行对应连线。在另一个具体的应用场景中,也可以在标注的过程中,每标注一个目标标注点后,将该目标标注点与已标注的其他标注点进行连线,直至标注完所有的标注点。通过连线将各个标注点建立可视化对应关系,从而提高标注后的图片上的标注效果,进而在将标注信息进行应用时,提高标注信息的实用性。

在一个具体的应用场景中,在目标标注点与其他标注点连线后,将目标标注点、其他标注点以及目标标注点与其他标注点之间的连线建立对应关系,得到目标标注点、其他标注点以及目标标注点与其他标注点之间的组合。其中,当某个目标标注点与多个其他目标标志点之间都有连线时,可以将该目标标注点与全部其他标注点以及连线建立对应关系,以进行组合。通过将标注点以及连线进行组合可以使后续的调整步骤可以针对一个整体进行,比如为组定义一些属性或关联一些对象实例,整体缩放、删除等等,提高标注效率。

当目标标注点有误,需要进行删除时,可以直接利用上述组合一次性删除目标标注点、目标标注点的实例以及与目标标注点对应的连线。否则后续重新连线、移动标注点或撤销标注点等操作的交互会有错误。并提高删除效率。操作的逻辑部分代码如下:

在一个具体的应用场景中,根据连线组合配置JSON,基于预设连线规则计算得到画布上是否已经存在这个标注点的前一个标注点和后一个标注点,有的话,就将它们互相连线。其中,连线是相互的,如果F点和另外3个X、Y、Z两点连线,除了需要在F点引用F-X和F-Y和F-Z线条的实例,还需要通过计算对X、Y、Z点实例绑定线条实例,这样做的目的是实现移动F点的时候,方便通过计算让F-X和F-Y和F-Z线条随着F点进行移动。连线操作描述代码如下:

当移动标注点的时候,一个难点是如何让和它相连的所有线也跟着移动。在本实施例中,连线时,给线对象的data.name1赋值为当前准备画的新点,data.name2赋值为已经存在在画布上的另一个点,根据调用drawLine()方法的coords参数的顺序,[x1,y1,x2,y2],即保证name1和[x1,y1]是匹配的。那么在移动某个标注点的时候,判断这个标注点所有绑定的线对象中,name1如果是当前移动的点,那么线的x1和y1位置就和该点移动到的位置同步。如果name2是当前移动的标注点,那么线的x2和y2位置就和该标注点移动到的位置同步。从而实现线随点动。

在二次标注的过程中,可以将当前操作记录堆栈,通过undoStack(撤销栈)以实现撤销上次操作的功能,action函数取值有new新建点(以及连线)、move移动点(以及移动线)、del删除点(以及删除线)。以实时存储各标注点的位置信息与类型信息以及各连线的颜色以及透明度,进而利于撤销标注,避免因为某些不可避免的情况导致丢失标注的问题。

为了提高标注效率,二次人工标注过程中可以支持快捷键操作。比如:添加标注点(左键点击)、修改标注点(拖拽点)、删除标注点(DEL)、撤销(右键)、缩放(鼠标滚轮)、切换标注点类型(A)、显示隐藏标签(W)、显示隐藏标注痕迹(E)、拖动图片(Alt+鼠标拖拽,MacOS系统是Option键+鼠标拖拽)、调整点半径(<,>)、调整线粗([,])等,具体不做限定。

请参阅图4,图4是图2实施例中标注完成后图片一实施例的示意图。

本实施例中标注完成后的图片10上展示有部分人体。基于所展示的人体的部分,其上标注有9个标注点:颈下11、右肩12、左肩13、左肘14、右肘15、右腕16、左腕19、右胯17以及左胯18。上述9个标注点除了包括原点本身,还配置有文字实例对各标注点进行释义,且各标注点之间基于预设连线规则互相之间有连线。在本实施例中各连线的颜色为黑色,其透明度为0.67。但在其他实施例中,连线的颜色与透明度可以自定义选择,在此不做限定。

步骤S24:对标注后的图片上的各标注点和各连线进行遍历,得到各标注点的确定坐标信息、确定类型信息以及各连线的轨迹信息与连接信息,将各标注点的确定坐标信息、确定类型信息以及各连线的轨迹信息与连接信息作为图片的标注信息。

二次标注完成后,对标注后的图片上的各标注点和各连线进行遍历,得到各标注点最终的确定坐标信息、确定类型信息以及各连线的轨迹信息与连接信息,将各标注点的确定坐标信息、确定类型信息以及各连线的轨迹信息与连接信息作为图片的标注信息。以便于将图片的标注信息进行导出。可以请求服务端接口将图片的标注信息发送给服务端。服务端接口地址是可以灵活自定义的。

通过上述方法,本实施例的图片的标注方法先基于待标注图片确定待标注点的数量和类型,进而基于待标注点的数量和类型对待标注图片进行预标注而二次标注,得到多个标注点,并从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线,以基于标注点以及连线得到图片的标注信息,从而通过连线将各个标注点建立可视化对应关系,从而提高标注后的图片上的标注效果,进而在将标注信息进行应用时,提高标注信息的实用性。本实施例通过自定义JSON配置,让用户能在标注平台上自定义待标注图片的标注点、点与点之间连线匹配的规则(即自动连线)、自定义线条的颜色、支持图片标注模型预标注。本实施例的图片标注的方法用于标注工具中能够实现UI设计友好,操作流畅,拓展性强(可以仅作为工具或插件使用,也可以集成到运营化的标注平台中)。能极大提高标注效率。

请参阅图5,图5是本申请图片的标注装置一实施例的框架示意图。图片的标注装置50包括确定模块51、标注模块52、连线模块53。确定模块51,用于基于待标注图片确定待标注点的数量和类型;标注模块52用于基于待标注点的数量和类型对待标注图片进行对应标注,得到多个标注点;连线模块53,用于从多个标注点中选取目标标注点,并将目标标注点与至少一个已标注的其他标注点进行连线,以基于标注点以及连线得到图片的标注信息。

连线模块53还用于基于预设连线规则将目标标注点与其他标注点进行连线;将目标标注点、其他标注点以及目标标注点与其他标注点之间的连线建立对应关系,得到目标标注点、其他标注点以及目标标注点与其他标注点之间的组合。

连线模块53还用于基于预设颜色与预设透明度对目标标注点与其他标注点之间的连线进行显示。

标注模块52还用于基于待标注点的数量和类型通过图片标注模型对待标注图片进行标注点识别,得到至少一个预标注点的初始标注信息;利用至少一个预标注点的初始标注信息在待标注图片上标注出至少一个预标注点;对待标注图片进行二次标注,以在待标注图片上标注出剩余标注点,得到多个标注点。

标注模块52还用于通过图片标注模型对待标注图片进行标注点识别,得到各预标注点的初始坐标信息和初始类型信息;对各预标注点的初始坐标信息和初始类型信息进行配置,得到各预标注点的标签特征;通过图片标注模型利用各预标注点的标签特征在待标注图片上标注出各预标注点。

标注模块52还用于对待标注图片进行二次标注,以在待标注图片上标注出剩余标注点,并确定各剩余标注点的类型;和/或移动至少一个预标注点的位置,得到标注点。

上述方案,能够通过对图片进行标注,并将各标注点进行连线,来提高标注后的图片上的标注效果,从而提高标注信息的实用性。

请参阅图6,图6是本申请电子设备一实施例的框架示意图。电子设备60包括相互耦接的存储器61和处理器62,处理器62用于执行存储器61中存储的程序指令,以实现上述任一图片的标注方法实施例的步骤。在一个具体的实施场景中,电子设备60可以包括但不限于:微型计算机、服务器,此外,电子设备60还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。

具体而言,处理器62用于控制其自身以及存储器61以实现上述任一图片的标注方法实施例的步骤。处理器62还可以称为CPU(Central Processing Unit,中央处理单元)。处理器62可能是一种集成电路芯片,具有信号的处理能力。处理器62还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器62可以由集成电路芯片共同实现。

上述方案,能够通过对图片进行标注,并将各标注点进行连线,来提高标注后的图片上的标注效果,从而提高标注信息的实用性。

请参阅图7,图7为本申请计算机可读存储介质一实施例的框架示意图。计算机可读存储介质70存储有能够被处理器运行的程序指令701,程序指令701用于实现上述任一图片的标注方法实施例的步骤。

上述方案,能够通过对图片进行标注,并将各标注点进行连线,来提高标注后的图片上的标注效果,从而提高标注信息的实用性。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

相关技术
  • 图片的标注方法以及相关装置、设备
  • 图片的标注方法、标注装置、设备及存储介质
技术分类

06120112773494