更新物体识别模型的方法和装置与流程

文档序号:26786340发布日期:2021-09-28 20:26阅读:92来源:国知局
更新物体识别模型的方法和装置与流程

1.本技术涉及人工智能(artificial intelligence,ai)领域,并且更具体地,涉及更新物体识别模型的方法和装置。


背景技术:

2.人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,ai基础理论等。
3.物体检测是计算机视觉中的经典问题之一,其任务是用框去标出图像中物体的位置,并给出物体的类别。其中,物体检测中给出物体类别是通过物体识别来实现的。物体识别,也可以理解为物体分类,是根据物体的特征,把不同类别的物体区分开来的方法。
4.随着人工智能技术的发展,物体识别已经不再仅仅是依靠传统的人工识别来实现,还是可以使用基于深度学习的物体识别模型来实现。
5.基于深度学习的物体识别模型,通常是使用大量已知类别的物体图像对物体识别模型进行训练,以使得物体识别模型能够学习到不同类别物体所特有的特征,并记录不同类别的物体的特征与类别标签的对应关系。这样,训练过的物体识别模型在实际业务应用中输入了物体图像时,即可以根据该物体图像推理出该物体的类别,从而达到物体识别的目的。
6.例如,用户利用手机等终端设备进行物体检测时,可以利用训练好的物体识别模型来识别出手机等终端拍摄到的图像中的物体的类别。
7.上述通过训练使得物体识别模型能够识别物体的类别的方法存在如下问题:该物体识别模型只能识别训练过程中涉及的物体类别,若目标物体的类别不属于训练过程中涉及的物体类别,则物体识别模型识别不了该目标物体。
8.解决该问题的一种方法为,对物体识别模型训练之后,在物体识别模型的使用过程中,可以对物体识别模型进行更新,以使得物体识别模型可以识别更多类别的物体。
9.因此,如何更新物体识别模型,称为一个亟待解决的技术问题。


技术实现要素:

10.本技术提供更新物体识别模型的方法和装置,使得物体识别模型能够识别更多的物体,提高物体识别模型的识别率。
11.第一方面,本技术提供一种更新物体识别模型的方法,该方法包括:获取摄像设备采集的目标图像;获取语音设备采集的第一语音信息,所述第一语音信息用于指示所述目标图像中的目标物体的第一类别;根据所述目标图像和所述第一语音信息,更新第一物体
识别模型,更新后的所述第一物体识别模型中包括所述目标物体的特征和第一标签,且所述目标物体的特征与所述第一标签之间具有对应关系,所述第一标签用于表示所述第一类别。
12.本技术的方法中,因为可以向物体识别模型中添加物体特征和该特征对应的类别标签,使得该物体识别模型可以识别出该类别的物体,从而提高物体识别模型的识别率,进而提升物体识别模型的智能化。此外,本技术的方法使得用户可以通过语音指示待更新的物体类别,可以提高用户更新该物体识别模型的便捷性。
13.结合第一方面,在第一种可能的实现方式中,所述根据所述目标图像和所述第一语音信息,更新第一物体识别模型,包括:根据所述第一标签和至少一类标签中每类标签的相似度,确定所述第一标签为所述至少一类标签中的第一类标签,所述第一标签与所述第一类标签的相似度大于所述第一标签与所述至少一类标签中其他类标签的相似度;使用第二物体识别模型,根据所述目标图像,确定所述目标物体的类别标签为所述第一类标签的第一概率;在所述第一概率大于或等于预设的概率阈值时,将所述目标物体的特征和所述第一标签添加至所述第一物体识别模型的特征库。
14.该实现方式中,在确定用户通过语音指示的类别为目标物体的真实类别的概率较高的情况下,才更新第一物体识别模型,有助于提高更新到第一物体识别模型中的物体特征对应的类别标签的准确率,从而可以提高第一物体识别模型的识别准确率。
15.结合第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述第一标签和至少一类标签中每类标签的相似度,确定所述第一标签为所述至少一类标签中的第一类标签,包括:根据所述第一标签的语义特征和至少一类标签中每类标签的语义特征之间的相似度,确定所述第一标签为所述至少一类标签中的第一类标签;其中,所述第一标签与所述第一类标签的相似度大于所述第一标签与所述至少一类标签中其他类标签的相似度,包括:所述第一标签的语义特征与所述第一类标签的语义特征之间的距离,小于所述第一标签的语义特征与所述其他类标签的语义特征之间的距离。
16.结合第一方面或上述任意一种可能的实现方式,在第三种可能的实现方式中,所述目标图像中包括第一物体,所述目标物体为所述目标图像中位于所述第一物体指示的方向上离所述第一物体最近的物体,所述第一物体包括眼球或手指。
17.该实现方式中,可以预先指定目标图像中的眼球或手指为指向物体,并将位于指向物体指示的方向上的物体确定为目标物体,这有助于准确地将用户通过声音指示的第一类别标记到用户指定的目标物体,从而可以提高更新后的第一物体识别模型的识别准确率。
18.结合第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述目标图像和所述第一语音信息,更新第一物体识别模型,包括:根据所述目标图像,确定所述目标图像中的所述第一物体的边界框;根据所述边界框中的图像确定所述第一物体指示的方向;对所述目标图像进行视觉显著性检测,得到所述目标图像中的多个显著区域;据所述第一物体指示的方向,从所述多个显著区域中确定目标显著区域,所述目标显著区域为所述多个显著区域中,在所述第一物体指示的方向上,离所述第一物体最近的显著区域;根据所述目标显著区域更新所述第一物体识别模型,其中,所述目标显著区域内的物体包括所述目标物体。
19.结合第四种可能的实现方式,在第五种可能的实现方式中,所述根据所述边界框框中的图像确定所述第一物体指示的方向,包括:使用分类模型,对所述边界框中的图像进行分类,得到所述第一物体的目标类别;根据所述第一物体的目标类别确定所述第一物体指示的方向。
20.第二方面,本技术提供一种更新物体识别模型的装置,该装置包括:获取模块,用于获取摄像设备采集的目标图像;所述获取模块还用于获取语音设备采集的第一语音信息,所述第一语音信息用于指示所述目标图像中的目标物体的第一类别;更新模块,用于根据所述目标图像和所述第一语音信息,更新第一物体识别模型,更新后的所述第一物体识别模型中包括所述目标物体的特征和所述第一标签,且所述目标物体的特征与所述第一标签之间具有对应关系,所述第一标签用于表示所述第一类别。
21.本技术的装置中,因为可以向物体识别模型中添加物体特征和该特征对应的类别标签,使得该物体识别模型可以识别出该类别的物体,从而提高物体识别模型的识别率,进而提升物体识别模型的智能化。此外,本技术的方法使得用户可以通过语音指示待更新的物体类别,可以提高用户更新该物体识别模型的便捷性。
22.结合第二方面,在第一种可能的实现方式中,所述更新模块具体用于:根据所述第一标签和至少一类标签中每类标签的相似度,确定所述第一标签属于所述至少一类标签中的第一类标签,所述第一标签与所述第一类标签的相似度大于所述第一标签与所述至少一类标签中其他类标签的相似度;使用第二物体识别模型,根据所述目标图像,确定所述目标物体的类别标签为所述第一类标签的第一概率;在所述第一概率大于或等于预设的概率阈值时,将所述目标物体的特征和所述第一标签添加至所述第一物体识别模型。
23.该实现方式中,在确定用户指示的类别为目标物体的真实类别的概率较高的情况下,才更新第一物体识别模型,有助于提高更新到第一物体识别模型中的物体特征对应的类别标签的准确率,从而可以提高第一物体识别模型的识别准确率。
24.结合第一种可能的实现方式,在第二种可能的实现方式中,所述更新模块具体用于:根据所述第一标签的语义特征和至少一类标签中每类标签的语义特征之间的相似度,确定所述第一标签为所述至少一类标签中的第一类标签;其中,所述第一标签与所述第一类标签的相似度大于所述第一标签与所述至少一类标签中其他类标签的相似度,包括:所述第一标签的语义特征与所述第一类标签的语义特征之间的距离,小于所述第一标签的语义特征与所述其他类标签的语义特征之间的距离。
25.结合第二方面或上述任意一种可能的实现方式,在第三种可能的实现方式中,所述目标图像中包括第一物体,所述目标物体为所述目标图像中位于所述第一物体指示的方向上离所述第一物体最近的物体,所述第一物体包括眼球或手指。
26.该实现方式中,可以预先指定目标图像中的眼球或手指为指向物体,并将位于指向物体指示的方向上的物体确定为目标物体,这有助于准确地将用户通过声音指示的第一标签标记到用户指定的目标物体,从而可以提高更新后的第一物体识别模型的识别准确率。
27.结合第三种可能的实现方式,在第四种可能的实现方式中,所述更新模块具体用于:根据所述目标图像,确定所述目标图像中的所述第一物体的边界框;根据所述边界框中的图像确定所述第一物体指示的方向;对所述目标图像进行视觉显著性检测,得到所述目
标图像中的多个显著区域;根据所述第一物体指示的方向,从所述多个显著区域中确定目标显著区域,所述目标显著区域为所述多个显著区域中,在所述第一物体指示的方向上,离所述第一物体最近的显著区域;根据所述目标显著区域更新所述第一物体识别模型,其中,所述目标显著区域内的物体包括所述目标物体。
28.结合第四种可能的实现方式,在第五种可能的实现方式中,所述更新模块具体用于:使用分类模型,对所述边界框中的图像进行分类,得到所述第一物体的目标类别;根据所述第一物体的目标类别确定所述第一物体指示的方向。
29.第三方面,本技术提供一种更新物体识别模型的方法,该方法包括:获取摄像设备采集的目标图像;获取第一指示信息,所述第一指示信息用于指示所述目标图像中的目标物体的第一类别;所述第一类别为所述目标物体的实际类别的目标置信度大于或等于预设的置信度阈值时,根据所述目标图像和所述第一指示信息,更新第一物体识别模型,更新后的所述第一物体识别模型的特征库中包括所述目标物体的特征和第一标签,且所述目标物体的特征与所述第一标签之间具有对应关系,所述第一标签用于表示所述第一类别;其中,所述目标置信度是根据第一概率确定的,所述第一概率为第二物体识别模型对所述目标物体进行识别得到的、且所述第一标签为第一类标签的概率,所述第二物体识别模型用于对图像进行识别,以得到所述图像中的物体的类别标签为至少一类标签中的每类标签的概率,所述至少一类标签是对所述第一物体识别模型的特征库中的特征对应的类别标签进行聚类得到的,所述至少一类标签包括所述第一类标签,所述第一标签与所述第一类标签的相似度大于所述第一标签与所述至少一类标签中其他类标签的相似度。
30.该方法中,在第一标签为目标物体的真实标签的置信度较高的情况下,才更新第一物体识别模型其中,该置信度是根据第二物体识别模型基于目标图像推理得到的待检测物体类别标签为第一标签所属标签类的概率确定的。这样,有助于提高更新到第一物体识别模型中的物体特征对应的类别标签的准确率,从而可以提高第一物体识别模型的识别准确率。
31.结合第三方面,在第一种可能的实现方式中,所述根据所述目标图像和所述第一指示信息,更新第一物体识别模型,包括:根据所述第一标签和所述至少一类标签中每类标签的相似度,确定所述第一标签为所述第一类标签;将所述目标图像输入所述第二物体识别模型,得到所述第一概率;根据所述第一概率确定所述目标置信度;在所述目标置信度大于或等于所述置信度阈值时,将所述目标物体的特征和所述第一标签添加至所述第一物体识别模型。
32.结合第三方面或第一种可能的实现方式,在第二种可能的实现方式中,所述第一标签与所述第一类标签的相似度大于所述第一标签与所述至少一类标签中其他类标签的相似度,包括:所述第一标签的语义特征与所述第一类标签的语义特征之间的距离,小于所述第一标签的语义特征与所述其他类标签的语义特征之间的距离。
33.结合第二种可能的实现方式,在第三种可能的实现方式中,所述置信度为所述第一概率。
34.结合第三方面或上述任意一种可能的实现方式,在第四种可能的实现方式中,所述第一指示信息包括语音设备采集的语音信息或通过触摸装置采集的文字信息。
35.第四方面,本技术提供一种更新物体识别模型的装置,该装置包括用于实现第三
方面或任意一种实现方式中的方法的对应模块。
36.第五方面,本技术提供了一种更新物体识别模型的装置,该装置包括:存储器,用于存储指令;处理器,用于执行所述存储器存储的指令,当所述存储器存储的指令被执行时,所述处理器用于执行第一方面或其中任意一种可能的实现方式中的方法。
37.第六方面,本技术提供了一种更新物体识别模型的装置,该装置包括:存储器,用于存储指令;处理器,用于执行所述存储器存储的指令,当所述存储器存储的指令被执行时,所述处理器用于执行第三方面或其中任意一种可能的实现方式中的方法。
38.第七方面,本技术提供一种计算机可读介质,该计算机可读介质存储用于设备执行的指令,该指令用于实现第一方面或其中任意一种可能的实现方式中的方法。
39.第八方面,本技术提供一种计算机可读介质,该计算机可读介质存储用于设备执行的指令,该指令用于实现第三方面或其中任意一种可能的实现方式中的方法。
40.第九方面,本技术提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行第一方面或其中任意一种可能的实现方式中的方法。
41.第十方面,本技术提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行第三方面或其中任意一种可能的实现方式中的方法。
42.第十一方面,本技术提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面或其中任意一种可能的实现方式中的方法。
43.可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或其中任意一种可能的实现方式中的方法。
44.第十二方面,本技术提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第三方面或其中任意一种可能的实现方式中的方法。
45.可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第三方面或其中任意一种可能的实现方式中的方法。
46.第十三方面,本技术提供了一种计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第一方面或其中任意一种可能的实现方式中的方法。
47.第十四方面,本技术提供了一种计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第三方面或其中任意一种可能的实现方式中的方法。
48.第十五方面,本技术提供了一种物体识别方法,该方法包括:获取摄像设备采集的待识别图像;使用第一物体识别模型对所述待识别图像进行类别识别,其中,所述第一物体识别模型是根据摄像设备采集的目标图像和语音设备采集的第一语音信息添加所述目标物体的特征和第一标签得到的,且所述目标物体的特征和所述第一标签之间具有对应关系,所述第一语音信息用于指示所述目标图像中的目标物体的第一类别,所述第一标签用于表示所述第一类别。
49.在一些可能的实现方式中,所述目标物体的特征和所述第一标签是在第一概率大于或等于预设的概率阈值时添加至所述第一物体识别模型的,所述第一概率是使用第二物体识别模型根据所述目标图像得到的,且所述第一概率为所述目标物体的类别标签为所述第一类别标签的概率,所述第一类标签为根据所述第一标签和至少一类标签确定的,且所述第一标签与所述第一类标签的相似度大于所述第一标签与所述至少一类标签中其他类标签的相似度。
50.在一些可能的实现方式中,所述第一标签与所述第一类标签的相似度大于所述第一标签与所述至少一类标签中其他类标签的相似度,包括:所述第一标签的语义特征与所述第一类标签的语义特征之间的距离,小于所述第一标签的语义特征与所述其他类标签的语义特征之间的距离。
51.在一些可能的实现方式中,所述目标图像中包括第一物体,所述目标物体为所述目标图像中位于所述第一物体所指方向上离所述第一物体最近的物体,所述第一物体包括眼球或手指。
52.第十六方面,本技术提供一种物体识别装置,该装置包括用于实现第十五方面或任意一种实现方式中的方法的对应模块。
53.第十七方面,本技术提供了一种物体识别装置,该装置包括:存储器,用于存储指令;处理器,用于执行所述存储器存储的指令,当所述存储器存储的指令被执行时,所述处理器用于执行第十五方面或其中任意一种可能的实现方式中的方法。
54.第十八方面,本技术提供一种计算机可读介质,该计算机可读介质存储用于设备执行的指令,该指令用于实现第十五方面或其中任意一种可能的实现方式中的方法。
55.第十九方面,本技术提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行第十五方面或其中任意一种可能的实现方式中的方法。
56.第二十方面,本技术提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第十五方面或其中任意一种可能的实现方式中的方法。
57.可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第十五方面或其中任意一种可能的实现方式中的方法。
58.第二十一方面,本技术提供了一种计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第十五方面或其中任意一种可能的实现方式中的方法。
附图说明
59.图1为本技术一种人工智能主体框架示意图。
60.图2为本技术实施例提供的一种系统架构的结构示意图。
61.图3为本技术实施例提供的一种卷积神经网络的结构示意图。
62.图4为本技术实施例提供的另一种卷积神经网络的结构示意图。
63.图5为本技术实施例提供的一种芯片的硬件结构示意图。
64.图6为本技术实施例提供的一种系统架构的示意图。
65.图7为本技术一个实施例的更新物体识别模型的方法的示意性流程图。
66.图8为基于标签特征对标签进行聚类以得到至少一类标签的示意图。
67.图9为本技术另一个实施例的更新物体识别模型的方法的示意性流程图。
68.图10为本技术另一个实施例的更新物体识别模型的方法的示意性流程图。
69.图11为手势指示方向上的主体区域的确定方法的示意图。
70.图12为本技术一个基于用户指令更新物体识别模型的示意性流程图。
71.图13为本技术另一个基于用户指令更新物体识别模型的示意性流程图。
72.图14是本技术的更新物体识别模型的装置的一个示例性结构图。
73.图15是本技术的更新物体识别模型的装置的另一个示例性结构图。
具体实施方式
74.图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
75.下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
[0076]“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
[0077]“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
[0078]
(1)基础设施:
[0079]
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(cpu、npu、gpu、asic、fpga等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
[0080]
(2)数据
[0081]
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
[0082]
(3)数据处理
[0083]
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
[0084]
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
[0085]
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
[0086]
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
[0087]
(4)通用能力
[0088]
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
[0089]
(5)智能产品及行业应用
[0090]
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
[0091]
例如,可以获取包含物体的大量图像作为数据;然后对该数据进行数据处理,即对图像中物体类别与物体特征之间关联关系进行深度学习;进行数据处理后,可以得到具备通用能力的物体识别模型;将该物体识别模型部署到基础设施,例如部署到机器人等设备上,可以得到具备物体识别功能的智能产品;智能产品采集到图像之后,可以使用其上部署的物体识别模型对图像进行识别,以得到图像中的物体的类别,从而实现物体识别的行业应用。
[0092]
本技术中的物体识别也可以称为图像识别,是指利用计算机对图像进行处理、分析和理解,以识别图像中各种不同类别的目标的技术。用于实现物体识别的模型称为物体识别模型,也可以称为图像识别模型。
[0093]
物体识别模型可以通过训练得到。下面结合图2介绍训练物体识别模型的一种示例性方法。
[0094]
在图2中,数据采集设备260用于采集训练数据。例如,训练数据可以包括训练图像以及训练图像对应的类别,其中,训练图像的结果可以是人工预先标注的结果。
[0095]
在采集到训练数据之后,数据采集设备260将这些训练数据存入数据库230,训练设备220基于数据库230中维护的训练数据训练得到物体识别模型201。
[0096]
下面对训练设备220基于训练数据得到物体识别模型201进行描述,训练设备220对输入的原始图像进行处理,将输出的图像类别与原始图像标注的类别进行对比,直到训练设备120输出的图像类别与原始图像标注的类别的差值小于一定的阈值,从而完成物体识别模型201的训练。
[0097]
上述物体识别模型201能够用于物体识别。本技术实施例中的物体识别模型201具体可以为神经网络。需要说明的是,在实际的应用中,所述数据库230中维护的训练数据不一定都来自于数据采集设备260的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备220也不一定完全基于数据库230维护的训练数据进行物体识别模型201的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本技术实施例的限定。
[0098]
根据训练设备220训练得到的物体识别模型201可以应用于不同的系统或设备中,如应用于图2所示的执行设备210,所述执行设备210可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,ar)ar/虚拟现实(virtual reality,vr),车载终端等,还可以是服务器或者云端等。在图2中,执行设备210配置输入/输出(input/output,i/o)接口212,用于与外部设备进行数据交互,用户可以通过客户设备240向i/o接口212输入数据,所述输入数据在本技术实施例中可以包括:客户设备输入的待识别图像。
[0099]
预处理模块213用于根据i/o接口212接收到的输入数据(如待处理图像)进行预处理,在本技术实施例中,也可以没有预处理模块213。
[0100]
在执行设备210对输入数据进行预处理,或者在执行设备210的处理模块211执行计算等相关的处理过程中,执行设备210可以调用数据存储系统250中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统250中。
[0101]
最后,i/o接口212将处理结果,如上述得到的图像类别返回给客户设备240,从而提供给用户。
[0102]
在图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过i/o接口212提供的界面进行操作。另一种情况下,客户设备240可以自动地向i/o接口212发送待识别图像,如果要求客户设备240自动发送待识别图像需要获得用户的授权,则用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的类别识别结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端,采集如图所示输入i/o接口212的待识别图像及输出i/o接口212的类别识别结果作为新的样本数据,并存入数据库230。当然,也可以不经过客户设备240进行采集,而是由i/o接口212直接将i/o接口212的输入数据及输出i/o接口212的输出结果,作为新的样本数据存入数据库230。
[0103]
值得注意的是,图2仅是本技术实施例提供的一种训练物体识别模型的示意图,图2中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中。
[0104]
物体识别模型可以通过神经网络来实现,进一步地,可以通过深度神经网络来实现,更进一步地,可以通过卷积神经网络来实现。
[0105]
为了更好地理解本技术实施例的方案,下面先对本技术实施例可能涉及的神经网络的相关术语和其他相关概念进行介绍。
[0106]
(1)神经网络
[0107]
神经网络(neural networks,nn)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。
[0108]
神经网络可以是由神经单元组成的,神经单元可以是指以x
s
和截距1为输入的运算单元,该运算单元的输出可以如公式(1-1)所示:
[0109][0110]
其中,s=1、2、
……
n,n为大于1的自然数,w
s
为x
s
的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0111]
(2)深度神经网络
[0112]
深度神经网络(deep neural network,dnn),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对dnn进行划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
[0113]
虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,系数w和偏移向量的数量也比较多。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
[0114]
综上,第l-1层的第k个神经元到第l层的第j个神经元的系数定义为
[0115]
需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0116]
(3)卷积神经网络(convolutional neural network,cnn)
[0117]
卷积神经网络是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
[0118]
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
[0119]
本技术实施例中的卷积神经网络的结构可以如图3所示。在图3中,卷积神经网络(cnn)300可以包括输入层310,卷积层/池化层320(其中池化层为可选的),以及神经网络层330。
[0120]
其中,输入层310可以获取待识别图像,并将获取到的待识别图像交由卷积层/池
化层320以及后面的神经网络层330进行处理,可以得到图像的类别识别结果。
[0121]
下面对图3中的cnn 300中内部的层结构进行详细的介绍。
[0122]
卷积层/池化层320:
[0123]
卷积层:
[0124]
如图3所示卷积层/池化层320可以包括如示例321-326层,举例来说:在一种实现中,321层为卷积层,322层为池化层,323层为卷积层,324层为池化层,325为卷积层,326为池化层;在另一种实现方式中,321、322为卷积层,323为池化层,324、325为卷积层,326为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
[0125]
下面将以卷积层321为例,介绍一层卷积层的内部工作原理。
[0126]
卷积层321可以包括很多个卷积算子,卷积算子也称为核,其在图像识别中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行
×
列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行
×
列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。
[0127]
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。
[0128]
当卷积神经网络300有多个卷积层的时候,初始的卷积层(例如321)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络300深度的加深,越往后的卷积层(例如326)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
[0129]
池化层:
[0130]
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图3中320所示例的321-326各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。例如,在图像识别过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的
像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
[0131]
神经网络层330:
[0132]
在经过卷积层/池化层320的处理后,卷积神经网络300还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层320只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络300需要利用神经网络层330来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层330中可以包括多层隐含层(如图3所示的331、332至33n)以及输出层340,该多层隐含层中所包含的参数可以根据图像识别的相关训练数据进行预先训练得到。
[0133]
在神经网络层330中的多层隐含层之后,也就是整个卷积神经网络300的最后层为输出层340,该输出层340具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络300的前向传播(如图3由310至340方向的传播为前向传播)完成,反向传播(如图3由340至310方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络300的损失,及卷积神经网络300通过输出层输出的类别识别结果和理想类别之间的误差。
[0134]
本技术实施例中的卷积神经网络的结构可以如图4所示。在图4中,卷积神经网络(cnn)400可以包括输入层410,卷积层/池化层420(其中池化层为可选的),以及神经网络层430。与图3相比,图4中的卷积层/池化层420中的多个卷积层/池化层(421至426)并行,将分别提取的特征均输入给全神经网络层430进行处理。神经网络层430可以包括多个隐含层,即隐含层1至隐含层n,可以记为431至43n。
[0135]
需要说明的是,图3和图4所示的卷积神经网络仅作为一种本技术实施例中的两种可能的卷积神经网络的示例,在具体的应用中,本技术实施例中的卷积神经网络还可以以其他网络模型的形式存在。
[0136]
图5为本技术实施例提供的一种用于运行或训练物体识别模型的芯片的硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图2所示的执行设备210中,用以完成处理模块211的计算工作。该芯片也可以被设置在如图2所示的训练设备220中,用以完成训练设备220的训练工作并输出物体识别模型201。如图3和图4所示的卷积神经网络中各层的算法均可在如图5所示的芯片中得以实现。
[0137]
神经网络处理器npu 50作为协处理器挂载到主中央处理器(central processing unit,cpu)(host cpu)上,由主cpu分配任务。npu的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
[0138]
在一些实现中,运算电路503内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
[0139]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器502中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器501中取
矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。
[0140]
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非fc层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
[0141]
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
[0142]
统一存储器506用于存放输入数据以及输出数据。
[0143]
权重数据直接通过存储单元访问控制器505(direct memory access controller,dmac)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
[0144]
总线接口单元(bus interface unit,biu)510,用于通过总线实现主cpu、dmac和取指存储器509之间进行交互。
[0145]
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
[0146]
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
[0147]
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(on-chip)存储器,外部存储器为该npu外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,简称ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
[0148]
其中,图3和图4所示的卷积神经网络中各层的运算可以由运算电路503或向量计算单元507执行。
[0149]
如图6所示,本技术实施例提供了一种系统架构600。该系统架构包括本地设备601、本地设备602以及执行设备610和数据存储系统650,其中,本地设备601和本地设备602通过通信网络与执行设备610连接。
[0150]
执行设备610可以由一个或多个服务器实现。可选的,执行设备610可以与其它计算设备配合使用,例如:数据存储器、路由器、负载均衡器等设备。执行设备610可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备610可以使用数据存储系统650中的数据,或者调用数据存储系统650中的程序代码来实现本技术实施例的物体识别方法。
[0151]
用户可以操作各自的用户设备(例如本地设备601和本地设备602)与执行设备610进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机
顶盒、游戏机等。
[0152]
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备610进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
[0153]
在一种实现方式中,本地设备601、本地设备602采集待识别图像,并向执行设备610发送待识别图像,执行设备610利用其上部署的物体识别模型对待识别图像进行识别,并向本地设备601或本地设备602返回识别结果。
[0154]
在另一种实现中,本地设备601或本地设备602上可以直接部署物体识别模型,这样,本地设备601或本地设备602通过摄像装置采集到待识别图像之后,可以自己使用物体识别模型对待识别图像进行识别。
[0155]
目前的物体识别模型,通常是使用大量已知类别的物体图像对物体识别模型进行训练,以使得物体识别模型能够学习到不同类别物体所特有的特征,并记录不同类别的物体的特征与类别标签的对应关系。这样,训练过的物体识别模型在实际业务应用中输入了物体图像时,即可以根据该物体图像推理出该物体的类别,从而达到物体识别的目的。
[0156]
例如,用户利用手机等终端设备进行物体检测时,可以利用训练好的物体识别模型来识别出手机等终端拍摄到的图像中的物体的类别。
[0157]
上述通过训练使得物体识别模型能够识别物体的类别的方法存在如下问题:该物体识别模型只能识别训练过程中涉及的物体类别,若目标物体的类别不属于训练过程中涉及的物体类别,则物体识别模型识别不出该目标物体;或者,物体识别模型识别出物体类别之后,该识别结果不满足用户的需求,例如,物体识别模型识别出一张图像中的对象为狗,但是用户需要的识别结果为“哈士奇”。
[0158]
针对上述问题,对物体识别模型进行训练之后,在物体识别模型的使用过程中,可以运行用户对物体识别模型进行更新,以使得物体识别模型的识别结果可以满足用户需求。因此,本技术提出了更新物体识模型的方法。
[0159]
下面先介绍本技术的更新物体识别模型的方法的几种示例性应用场景。
[0160]
应用场景1:
[0161]
用户在使用机器人时,希望机器人能够对其感兴趣的物体进行识别。
[0162]
例如,用户希望机器人能识别他/她手上拿的多啦a梦,则用户可以指着布娃娃,对机器人说:“这是多啦a梦”。机器人同时获取视觉信息和用户的语音指令,然后基于用户的语音指令获取知识“这是多啦a梦”,基于视觉信息获取“多啦a梦”对应的图像特征,并生成类别标签“多啦a梦”和对应图像的对应关系,将类别标签“多啦a梦”和对应图像输入机器人的模型中。这样,更新后的模型具备识别“多啦a梦”的能力。
[0163]
应用场景2:
[0164]
用户在使用机器人对其感兴趣的物体进行识别时,对机器人输出的物体类别不满意,并告知机器人该物体更准确的类别。
[0165]
例如,用户手指指向小猪佩奇,机器人获取视觉信息,并根据视觉信息输出类别“猪”。用户不满意,并对机器人说:“错了,这是小猪佩奇”。机器人同时获取视觉信息和用户的语音指令,生成类别标签“小猪佩奇”和对应图像的对应关系,将类别标签“小猪佩奇”和对应图像输入机器人的模型中。机器人更新后的模型具备识别“小猪佩奇”的能力。
[0166]
应用场景3:
[0167]
用户在使用机器人对其感兴趣的物体进行识别时,机器人输出的物体类别不对,用户告知机器人该物体的正确类别。
[0168]
例如,小孩对儿童机器人说“小艺小艺,帮我认识物体吧”,机器人对小孩说:“请把物体放到我面前吧”。小孩把物体放到机器人面前,机器人识别出物体名称,并对小孩说:“我猜这是苹果,对不对呀”。小孩说“不对,这是橘子”。机器人把橘子对应的特征和类别标签“橘子”添加到模型,并说“我记住了,下次见到他我就能认识了”。
[0169]
下面介绍本技术的更新物体识别模型的方法的示意性流程图。
[0170]
图7为本技术一个实施例的更新物体识别模型的方法的示意性流程图。如图4所示,该方法可以包括s710、s720和s730。该方法可以由前述的执行设备或本地设备执行。
[0171]
s710,获取目标图像。
[0172]
该目标图像可以是智能设备上的摄像设备进行视觉信息采集得到的图像。目标图像中可以包括一个或多个物体。
[0173]
s720,获取第一语音信息,所述第一语音信息用于指示所述目标图像中的目标物体的第一类别。
[0174]
目标物体是指目标图像中用户感兴趣的物体,即用户希望获知类别的物体。该第一语音信息可以是智能设备上的语音设备采集的语音信息,例如可以是麦克风等语音设备采集的语音信息。
[0175]
智能设备采集到用户输入的语音指令之后,可以获取该语音指令中的知识,从而得到该第一语音信息。例如,可以使用自然语言理解的方法来获取语音指令中的知识,从而得到第一语音信息。
[0176]
作为一种示例,第一语音信息可以包括如下内容“这是a”,其中,a为物体的类别标签。例如,这是小猪佩奇,这是橘子,这是多啦a梦,其中,小猪佩奇、橘子和多啦a梦即为目标图像中的目标物体的第一类别。
[0177]
s730,根据所述目标图像和所述第一语音信息,更新第一物体识别模型,更新后的所述第一物体识别模型中包括所述目标物体的特征和第一标签,且所述目标物体的特征与所述第一标签之间具有对应关系,所述第一标签用于表示所述第一类别。
[0178]
换句话说,可以生成用于表示第一类别的第一标签,向第一物体识别模型中添加目标物体的特征和第一标签,以及目标物体的特征和第一标签之间的对应关系。
[0179]
第一物体识别模型用于识别出图像中的物体的类别。在一些示例中,第一物体识别模型输入图像之后,可以输出图像中的物体的类别标签。
[0180]
第一物体识别模型可以是神经网络模型。在一些示例中,第一物体识别模型可以通过训练集的训练得到,该训练集中可以包括大量图像,这些图像中可以包括不同类别的物体,且这些物体的类别已知,即该训练集中的图像对应的标签已知。通过训练集训练得到该第一物体识别模型的方法可以参考现有技术,此处不再赘述。
[0181]
例如,第一物体识别模型的训练集可以包括imagenet数据集以及该数据集对应的标签。imagenet数据集是指图像网络大规模视觉识别挑战(imagenet large scale visual recognition challenge,ilsvrc)竞赛所用公开数据集。
[0182]
又如,第一物体识别模型的训练集可以包括openimages数据集以及该数据集对应的标签。
[0183]
目标物体的特征可以是第一物体识别模型对目标图像进行特征提取得到的。例如,第一物体识别模型中可以包括特征提取子模型,并使用该特征提取子模型提取目标图像中的特征。该特征特征提取子模型可以是密集卷积神经网络、空洞神经网络或残差神经网络等。
[0184]
本技术实施例的方法,通过向物体识别模型中添加物体特征和该特征对应的类别标签,使得该物体识别模型可以识别出该类别的物体,从而提高物体识别模型的识别率,进而提升物体识别模型的智能化。
[0185]
此外,本技术实施例的方法使得用户可以通过语音指示目标物体的类别,可以提高用户更新该物体识别模型的便捷性。
[0186]
在一些可能的实现方式中,s730,即根据所述目标图像和所述第一语音信息,更新第一物体识别模型,可以包括:根据所述目标图像和所述第一语音信息,确定第一语音信息指示的第一类别为所述目标物体的实际类别的目标置信度;在所述目标置信度大于或等于预设的置信度阈值时,将所述目标物体的特征、所述第一标签和所述特征与所述第一标签的对应关系添加至所述第一物体识别模型。
[0187]
这些实现方式中,在确定用户通过语音为目标物体指示的第一类别的置信度较高的情况下,才将目标物体的特征和第一标签以及对应关系更新到第一物体识别模型。
[0188]
或者说,在确定用户通过语音为目标物体指示的第一类别的置信度较低,例如小于或小于预设的置信度阈值的情况下,可以不更新第一物体识别模型。例如,用户通过语音输入的第一语音信息中的第一标签错误时,或者,获取用户的语音中的第一语音信息发生错误时,或者,获取到的目标物体不是用户指定的需要识别的物体时,可以不更新第一物体识别模型。
[0189]
这些实现方式可以提高更新后的第一物体识别模型的识别准确率,进而可以提高第一物体识别模型的智能化。
[0190]
在一些可能的实现方式中,所述目标置信度可以是根据第一概率确定的,所述第一概率可以是第二物体识别模型对所述目标物体的类别进行推理得到的,且指示所述目标物体的类别标签为第一类标签的概率,所述第二物体识别模型用于对图像进行识别以得到所述图像中的物体的类别标签为至少一类标签中的每个类标签的概率,所述至少一类标签是所述第一物体识别模型中类别标签进行聚类得到的,所述至少一类标签包括所述第一类标签,所述第一标签与所述第一类标签的相似度大于所述第一标签与所述至少一类标签中其他类标签的相似度。
[0191]
该实现方式中,第二物体识别模型可以是神经网络,例如可以是卷积神经网络。
[0192]
下面先介绍获取上述至少一类标签的示例性方法。
[0193]
在一种示例方法中,可以先获取第一物体识别模型中的类别标签,并提取第一物体识别模型中每个类别标签的语义特征;然后基于所有类别标签的语义特征对第一物体识别模型中所有类别标签进行聚类,从而得到所述至少一类标签,其中,这至少一类标签中的每类标签可以包括第一物体识别模型的所有类别标签中的一个或多个类别标签。
[0194]
例如,可以使用bert模型来提取第一物体识别模型中每个类别标签的语义特征。
[0195]
bert的全称为bidirectional encoder representation from transformers。
[0196]
例如,可以使用k-means方法基于第一物体识别模型的类别标签的语义特征,对第
一物体识别模型的类别标签进行聚类,得到至少一类标签。
[0197]
图8为基于标签特征对标签进行聚类以得到至少一类标签的示意图。图8中,一个点表示一个标签特征,一个椭圆框表示一类标签。
[0198]
以第一物体识别模型的训练集包括imagenet数据集为例,可以使用bert模型对imagenet数据集对应的1000类标签进行特征提取;使用k-means基于这1000类标签的特征,将这1000类标签聚类成200类标签。这200类标签即为上述至少一类标签。
[0199]
下面介绍获取第二物体识别模型的示例性方法。
[0200]
在一种示例性方法中,可以获取第一物体识别模型的训练集,并将训练集中每个训练数据的类别标签修改为该类别标签所对应的类标签,从而得到新的训练集;然后使用该新的训练集对一个分类模型进行训练,从而得到第二物体识别模型,训练得到的第二物体识别模型输入的图像时能够推理出图像中的物体对应哪一类标签。
[0201]
以第一物体识别模型的训练集包括imagenet数据集,且聚类得到上述200类标签为例,使用imagenet数据集和这200类标签,对mobilenet模型进行训练,从而得到第二物体识别模型,其中,imagenet数据集中每个图像对应的标签从原来的1000类标签映射到这200类标签中相应的标签。
[0202]
下面结合图9介绍获取所述目标置信度以及根据目标置信度更新第一物体识别模型的示例性实现方式。如图9所示,该方法可以包括s910至s940。
[0203]
s910,根据第一标签和至少一类标签中每类标签的相似度,确定第一标签为所述至少一类标签中的第一类标签,所述第一标签用于表示目标物体的第一类别。
[0204]
在一种示例性方法中,可以获取第一标签与所述至少一类标签中的每个类标签的相似度,并将相似度最大的那一类标签确定为所述第一类标签。
[0205]
获取第一标签与所述至少一类标签中的每个类标签的相似度时,在一种示例性实现方式中,可以获取第一标签与所述每个类标签的中心标签之间的相似度,并将该相似度作为第一标签与该每个类标签的相似度。
[0206]
第一标签与所述每类标签的中心标签之间的相似度可以通过第一标签的语义特征与所述每类标签的中心标签的语义特征之间的距离来度量,其中,距离越小,说明相似度越大。
[0207]
第一标签的语义特征与所述每类标签的中心标签的语义特征之间的距离的一种计算方式如下:提取第一标签的语义特征,提取该中心标签的语义特征,计算第一标签的语义特征与中心标签的语义特征之间的距离。
[0208]
例如,使用bert模型提取第一标签的语义特征,可以得到一个特征向量;使用该bert模型提取中心标签的语义特征,可以得到另一个特征向量;计算这两个特征向量之间的距离,例如余弦距离,欧式距离等等。
[0209]
获取第一标签与所述至少一类标签中的每类标签的相似度时,在另一种示例性实现方式中,可以获取第一标签与所述每类标签中的每个标签之间的相似度,并计算平均相似度,将该平均相似度作为第一标签与该每类标签的相似度。
[0210]
s920,使用第二物体识别模型,对目标物体的类别进行推理,得到所述目标物体的类别标签为所述第一类标签的第一概率。
[0211]
例如,将所述目标图像输入第二物体识别模型,第二物体识别模型进行推理之后,
输出所述目标物体所属的类别的标签以及所述目标物体属于其中每个类别的概率,这些标签中包括第一类标签。也就是说,第二物体识别模型可以输出目标物体的类别标签为第一类标签的第一概率。
[0212]
s930,根据所述第一概率确定第一类别为所述目标物体的真实类别的目标置信度。
[0213]
也就是说,根据目标物体的类别标签为第一类标签的第一概率,确定用户指示的第一标签为目标物体的真实类别标签的目标置信度。
[0214]
例如,可以将第一概率作为目标置信度。当然,也可以根据第一概率进行其他运算,以得到目标置信度,本实施例对此不作限制。
[0215]
s940,在所述目标置信度大于或等于置信度阈值时,将所述目标物体的特征和所述第一标签添加至第一物体识别模型。
[0216]
本实施例中,判断用户指定的第一标签属于哪一类标签,以及使用训练好的分类模型推理目标物体属于该类标签所标识的类别的概率,并根据该概率确定用户指定的第一标签为目标物体的真实类别标签的置信度,且在该置信度超过预设的置信度阈值时,才认为用户指定的第一标签是可靠的,进而才更新第一物体识别模型。这样可以提高更新后的第一物体识别模型的识别准确率。
[0217]
如图10所示,第一标签为“俄罗斯蓝猫”;使用bert模型对第一标签进行语义特征提取,得到第一语义特征;根据该第一语义特征确定“俄罗斯蓝猫”属于“猫”类标签,即第一类标签为“猫”类标签;目标图像中的目标物体为狗;使用分类模型对目标图像进行推理,得知目标图像中的目标物体的标签为“猫”类标签的第一概率为0.04,并将该第一概率作为目标置信度;由于目标执行度0.04小于预设的置信度阈值0.06,因此,不更新第一物体识别模型。
[0218]
由图10所示的示例可以看出,本技术中根据目标置信度来更新第一物体识别模型,可以在用户为目标物体指示错误标签的情况,避免将该错误标签更新到第一物体识别模型,从而避免降低第一物体识别模型的错误识别。
[0219]
可以理解的是,图9所示的方法中的第一标签不局限于是用户通过第一语音信息指示的,其可以是用户通过任何方式指示的,例如,可以是用户通过文字信息指示的。
[0220]
在一些可能场景中,目标图像中可能会包括多个物体,而用户感兴趣的仅是其中一个物体,即用户希望被识别的物体是这多个物体的一个,或者说,用户通过语音指示的第一标签是这多个物体中的一个物体的期望标签,用户感兴趣的该物体才是目标物体。
[0221]
这种场景中,需要从目标图像中确定哪个物体才是用户期望的目标物体,这样才能正确获知用户指示的第一标签对应的是哪个目标物体,从而有助于提高更新好的第一物体识别模型的识别准确率。
[0222]
针对上述场景,本技术进一步提出了从目标图像中确定目标物体的方法。从目标图像中确定目标物体的一种实现方式中,可以预先指定一种或多种物体类别,且规定目标图像中被这一种或多种类别的物体指向的物体为目标物体,即位于这一种或多种类别指示的方向上的物体为目标物体。本技术的实施例中,为了描述方便,将这些预先指定的物体称为第一物体。
[0223]
此处所述的预先指定的物体可以包括手和/或眼球。当然,也可以是其他类别,本
申请对此不作限制。
[0224]
下面介绍如何根据第一物体从目标图像中确定目标物体。
[0225]
根据第一物体从目标图像中确定目标物体的一种实现方式中,可以包括如下步骤一至步骤五。
[0226]
步骤一,对目标图像进行目标检测,得到第一物体的位置和第一物体的边界框。
[0227]
以第一物体包括手为例,可以使用单目标多框检测法(single shot multi-box detector,ssd)检测出手所在位置和手的边界框。
[0228]
以第一物体包括眼球为例,可以使用ssd检测法检测出人脸所在位置和人脸的边界框。
[0229]
步骤二,根据所述边界框中的图像确定所述第一物体指示的方向。
[0230]
以第一物体包括手为例,可以使用训练好的分类模型对边界框内的手进行分类,从而获取手指示的方向。例如,可以将手指图像分为36类,相邻两类手指图像指示的方向之间间隔10度;对应地,将手的图像也分为36类,每个类别的手指图像对应手指示的一种方向。
[0231]
以第一物体包括眼球为例,可以使用训练好的分类模型对人脸边界框内的眼球进行分类,从而获取眼球指示的方向。可以将眼球图像分为36类,相邻两类眼球图像指示的方向之间间隔10度。
[0232]
步骤三,对所述目标图像进行视觉显著性检测,得到所述目标图像中的多个显著区域。
[0233]
获取所述目标图像中的显著区域的一种实现方式中可以包括:计算目标图像的显著性概率图;将显著性概率图输入主体区域候选框生成模型,获得主体区域候选框;将图像显著性概率通过主体区域,分割成主体像素集合和非主体像素集合;分别计算主体像素集合的平均显著性概率值和非主体像素集合的平均显著性概率值,并求这两个概率值的比值,将该比值作为主体区域的显著性评分;显著性评分大于预先配置的评分阈值的主体区域即为前述的显著区域,若有多个主体区域的显著性评分大于评分阈值,则得到多个显著区域。
[0234]
在一些实现方式中,将目标图像输入显著性概率图生成模型,并根据显著性概率图生成模型的输出生成目标图像的显著性概率图,目标图像的显著性概率图可以包括与目标图像中的像素值一一对应的概率值,每一个概率值代表其对应的像素值所在位置的显著性概率。其中,主体区域候选框生成模块可以是使用显著性检测数据集训练得到的。
[0235]
作为一种示例,显著性概率图生成模型可以是一个二分类的分割模型。将目标图像输入该二分类的分割模型之后,该分割模型可以分割该目标图像中两种类别的事物,一类是显著物体,一类是背景,并且,该分割图像可以输出目标图像中每个像素属于相应类别的概率,这些概率即构成显著性概率图。
[0236]
在一些实现方式中,主体区域候选框生成模型可以使用选择性搜索或连通区域分析等方法获取目标图像的主体区域候选框。
[0237]
步骤四,根据所述第一物体指示的方向和所述边界框的位置,从所述多个显著区域中确定目标显著区域,所述目标显著区域为所述多个显著区域中,在所述第一物体指示的方向上,离所述边界框最近的显著区域。
[0238]
也就是说,将第一物体所指示的方向上离第一物体最近的显著区域确定为目标显著区域。
[0239]
以第一物体包括手为例,获取位于手指示的方向上显著区域,并计算这些显著区域与手之间的距离,最后将距离最小的显著区域确定为目标显著区域。
[0240]
如图11所示,位于手指指示的方向上的显著区域1,与位于手指指示的方向上的显著区域2相比,距离手指更近,因此显著区域1为目标显著区域。
[0241]
以第一物体包括眼球为例,获取眼球所指示的方向上的显著区域,并计算这些显著区域与眼球之间的距离,最后将距离最小的显著区域确定目标显著区域,目标显著区域中的物体即为目标物体。
[0242]
步骤五,根据所述目标显著区域更新所述第一物体识别模型。
[0243]
例如,获取所述目标显著区域中的物体的特征,并将该特征和第一标签添加到第一物体识别模型。
[0244]
图12为本技术一个基于用户指令更新物体识别模型的示意性流程图。
[0245]
s1201,接收用户指令,并获取用户指令中的指示信息“这是a”,a即为第一标签。
[0246]
s1202,获取目标图像,对目标图像进行多主体显著性检测,获得多个显著性区域。
[0247]
s1203,基于用户指示的方向(手势指示的方向向或眼球指示的方向)),从多个显著性区域中获取位于用户指示的方向上的目标显著性区域。
[0248]
s1204,判断第一标签a为目标显著性区域中的物体的类别标签的置信度。
[0249]
使用imagenet数据集对应的1000类标签,对这1000类标签使用bert模型提取特征;使用k-means将1000类聚类成200类,生成200个聚类中心;对1000类物体标签均映射到200类超类;使用imagenet数据集和对应的200类超类标签,使用mobilenetv2训练200类分类模型;对标签a使用bert提取特征;对标签a的bert特征与200类超类对应的bert特征中心计算距离,选取最近的距离对应的超类h为标签的超类;将显著性区域输入mobilenetv2模型,生成该区域属于超类h的概率,将其作为用户反馈的置信度。
[0250]
s1205,若置信度大于阈值,则更新模型。
[0251]
例如,若置信度小于阈值,则不执行模型更新;若置信度大于阈值,则更新模型。
[0252]
图13为本技术一个基于用户指令纠正物体识别模型的示意性流程图
[0253]
s1301,对目标图像进行多主体显著性检测,获得多个显著性区域。
[0254]
s1302,针对openimage数据集,将其中的图像中的目标框对应的标签都改为“物体”。
[0255]
s1303,使用修改后的openimages数据集训练fast rcnn模型。
[0256]
s1304,将目标图像输入fast rcnn模型,生成n个显著性区域,n为正整数。
[0257]
s1305,基于目标图像中的用户指示的方向(手势指示的方向or眼球指示的方向)获取用户指示的显著性区域。
[0258]
例如,可以执行以下步骤获取用户指示的显著性区域:a)使用手部数据集训练fast rcnn模型,得到手部检测fast rcnn模型;b)使用手指方向数据集训练手指方向分类模型,手指方向数据集标注手指指示的方向,每间隔10度为一类,共36类;c)将目标图像图像输入手部检测fast rcnn模型,获取手部位置区域;d)将手部位置区域输入手指方向分类模型,获取手指方向;e)从n个显著区域中获取位于手势方向且最近的主体区域,并计算该
最近主体区域与手指之间的距离d1;f)使用人脸检测数据集训练ssd模型;g)使用眼球方向数据集训练眼球方向分类模型,眼球方向数据集标注眼球指示的方向,每间隔10度为一类,共36类;h)将目标图像输入人脸检测ssd模型,获取人脸位置区域;i)将人脸位置区域输入眼球方向分类模型,获取眼球指示的方向;j)获取位于眼球指示方向上最近的主体区域,并计算该主体区域与眼球之间的距离d2;k)若d1小于d2,则使用手势指示的方向上最近的主体区域作为用户指向的主体区域;若d1大于d2,则使用眼球指示的方向最近的主体区域作为用户指向的主体区域。
[0259]
s1306,对用户指向的显著性区域进行类别识别,获得标签a
*

[0260]
s1307,采集用户指令,并获取用户指令中的内容“这是a”,若a和a
*
不一致,判断标签a的置信度,若置信度大于或等于阈值,则更新模型。
[0261]
本技术中的一种物体识别方法中,在获取摄像设备采集的待识别图像之后,可以使用上述任意一种方法更新得到的第一物体识别模型进行识别。该物体识别方法可以由前述的执行设备或本地设备执行。
[0262]
例如,向第一物体识别模型中添加“哆啦a梦”的图像特征以及包含“哆啦a梦”语义特征的第一标签,以及该图像特征和该第一标签的对应关系之后,在使用第一物体识别模型进行物体识别时,若摄像设备拍摄到包含“哆啦a梦”的图像,则第一物体识别模型可以先提取该图像的特征,并计算该特征与第一物体识别模型的特征库中的特征的相似度,从而可以确定该图像的类别为“哆啦a梦”。
[0263]
图14是本技术更新物体识别模型的装置的一种示例性结构图。该装置1400包括获取模块1410,和更新模块1420。在一些实现方式中,装置1400可以是前述执行设备或本地设备。
[0264]
该装置1400可以实现前述任意一种方法。例如,获取模块1410用于执行s710和s720,更新模块1420用于执行s730。
[0265]
本技术还提供一种如图15所示的装置1500,装置1500包括处理器1502、通信接口1503和存储器1504。装置1500的一种示例为芯片。装置1500的另一种示例为计算设备。装置1500的另一种示例为服务器。
[0266]
处理器1502、存储器1504和通信接口1503之间可以通过总线通信。存储器1504中存储有可执行代码,处理器1502读取存储器704中的可执行代码以执行对应的方法。存储器1504中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为linux
tm
,unix
tm
,windows
tm
等。
[0267]
例如,存储器1504中的可执行代码用于上述任意一种方法,处理器1502读取存储器1504中的该可执行代码以执行上述任意一种方法。
[0268]
其中,处理器1502可以为中央处理器(central processing unit,cpu)。存储器1504可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,ram)。存储器1504还可以包括非易失性存储器(2non-volatile memory,2nvm),例如只读存储器(2read-only memory,2rom),快闪存储器,硬盘驱动器(hard disk drive,hdd)或固态启动器(solid state disk,ssd)。
[0269]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟
以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0270]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0271]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0272]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0273]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0274]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0275]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1