一种机器人的对话交互方法、机器人及可读存储介质与流程

文档序号:18466825发布日期:2019-08-17 02:33阅读:230来源:国知局
一种机器人的对话交互方法、机器人及可读存储介质与流程

本发明实施例涉及人工智能领域,特别涉及一种机器人的对话交互方法、机器人及可读存储介质。



背景技术:

随着科学的不断进步,计算机技术以及人工智能技术的引入,机器人已经逐渐走出了工业,并逐渐应用在各服务领域,如:家教、银行、医疗等。机器人通常接收用户的问话,并对该问话进行分析,进而确定回复用户问话的内容。

发明人发现相关技术中至少存在如下问题:目前随着深度学习的应用,机器人已经可以智能的根据用户的问话进行回答,但是,机器人在回答问话的过程中,仅仅是播放需要回复的语音内容,与用户没有更多的交互,导致机器人在回复问话时显得非常不自然,给用户带来了不好的体验。



技术实现要素:

本发明实施方式的目的在于提供一种机器人的对话交互方法、机器人及可读存储介质,使得机器人在与人进行对话交互的过程中,可以与人沟通更加自然,顺畅,提高人与机器人进行对话交互的体验。

为解决上述技术问题,本发明的实施方式提供了一种机器人的对话交互方法,应用于机器人,包括:在对话交互期间,获取对话信息,第一对话消息至少包括对话内容的特征数据;根据对话信息以及预设的动作反馈模型,获取待执行的反馈动作,其中,动作反馈模型根据样本训练库中的各对话信息,以及与各对话信息对应的反馈动作训练获得;执行待执行的反馈动作,以使机器人响应对话信息。

本发明的实施方式还提供了一种机器人,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述机器人的对话交互方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述机器人的对话交互方法。

本发明实施方式相对于现有技术而言,通过获取的对话信息以及预设的动作反馈模型,确定出当前机器人待执行的反馈动作,该机器人执行该待执行的反馈动作,从而实现机器人与人对话过程中,可以通过肢体动作与交互对象进行互动,例如,机器人在聆听时配合肢体动作,或者,机器人在说话过程中配合肢体动作;由于增加了肢体动作,可以丰富机器人在对话中的响应方式,从而使得该机器人可以与人沟通更加自然,顺畅,提高人与机器人进行对话交互的体验。

另外,获取对话信息,具体包括:获取原始文本数据,原始文本数据为对话内容所对应的文本数据;从原始文本数据中提取文本特征数据;将文本特征数据,作为对话内容的特征数据。从原始文本数据中提取文本特征数据,可以较为准确地确定出对话信息,从而使得确定的待执行的反馈动作更加准确。

另外,原始文本数据由机器人或交互对象产生。原始文本数据可以是由机器人产生也可以是由交互对象产生,由于原始文本数据的产生对象灵活,使得该机器人的交互方法的应用范围广。

另外,原始文本数据为机器人产生的对话内容所对应的文本数据;获取原始文本数据,具体包括:获取机器人待播放的文本数据;并将待播放的文本数据作为原始文本数据。当原始文本数据为机器人产生,则可以直接获取该机器人待播放的文本数据,无需获取机器人发出的音频数据,简化获取原始文本数据的步骤。

另外,对话信息还包括:与对话内容对应的动作姿态的特征数据;获取对话信息,具体包括:确定对话内容的特征数据,以及确定与对话内容对应的动作姿态的特征数据;并将对话内容的特征数据和动作姿态的特征数据进行融合;其中,确定与对话内容对应的动作姿态的特征数据,具体包括:采集交互对象的第一图像数据,其中,第一图像数据中包括至少一张交互对象的图像;根据第一图像数据,确定交互对象的动作姿态的特征数据,并将交互对象的动作姿态的特征数据,作为与对话内容对应的动作姿态的特征数据。由于在对话过程中,交互对象会有对应的肢体动作,因而对话信息中还包括与对话内容对应的动作姿态的特征数据,丰富了该对话信息,进而使得根据该对话信息所确定的待执行的反馈动作更加准确,使机器人的动作更加自然。

另外,根据第一图像数据,确定与对话内容对应的动作姿态的特征数据,具体包括:对第一图像数据中的每个图像进行处理的过程为:提取图像中属于交互对象所对应的肢体关键点矩阵,其中,肢体关键点矩阵用于指示交互对象在各自所属图像中的动作姿态;在对第一图像数据中的每个图像处理之后,根据每个肢体关键点矩阵,确定交互对象的肢体关键点序列;从肢体关键点序列中提取动作姿态的特征数据。通过肢体关键点矩阵表征交互对象在图像中的动作姿态,从而数据化了交互对象产生的动作姿态,便于后续进行处理,同时由于动作姿态的连续性,将肢体关键点矩阵转换为肢体关键点序列,通过序列准确地表征出动作姿态的连续性,从而提高确定的动作姿态的特征数据的准确性。

另外,根据每个所述肢体关键点矩阵,确定所述交互对象的肢体关键点序列,具体包括:对每个肢体关键点矩阵进行预处理;将预处理后的每个肢体关键点矩阵,转换为交互对象的肢体关键点序列。由于相机在采集交互图像的角度不同,会导致从图像中确定每个肢体关键点矩阵有噪声,影响确定的肢体关键点序列的准确性。

另外,对每个肢体关键点矩阵进行预处理,具体包括:按照预设的坐标轴旋转每个肢体关键点矩阵,以使每个所属交互对象的肢体关键点矩阵都朝向相同的方向。由于采集的图像中交互对象并不是都面向同一个方向,故统一每个肢体关键点矩阵都朝向的方向,降低每个肢体关键点矩阵的噪声。

另外,对每个肢体关键点矩阵进行预处理,具体包括:按照预设的坐标轴旋转每个肢体关键点矩阵,以使每个所属交互对象的肢体关键点矩阵都朝向相同的方向;对旋转后的每个肢体关键点矩阵进行归一化处理。对每个肢体关键点矩阵在旋转后进行归一化处理,可以消除不同图像中交互对象的尺寸对后续准确确定肢体关键点序列造成的影响。

另外,对旋转后的每个肢体关键点矩阵进行归一化处理,具体包括:将旋转后的肢体关键点矩阵中的关键点按照预设规则构建关键点向量;根据单位长度对所述肢体关键点矩阵中每个关键点向量进行归一化处理。根据单位长度对关键点向量进行归一化,可以消除了交互对象在图像中不同尺寸,导致归一化后肢体关键点之间变化不准确的问题,提高了确定肢体关键点序列的准确性。

另外,对旋转后的每个肢体关键点矩阵进行归一化处理,具体包括:从旋转后的所有肢体关键点矩阵中选取关键点最大值和关键点最小值;对旋转后的每个肢体关键点矩阵进行以下处理:根据关键点最大值和关键点最小值,对肢体关键点矩阵中每个关键点进行归一化处理。对每个关键点进行归一化,方法简单,快速。

对旋转后的每个所述肢体关键点矩阵进行归一化处理,具体包括:获取肢体关键点矩阵中的关键点最大值和关键点最小值;根据关键点最大值和关键点最小值,对肢体关键点矩阵中的每个关键点进行归一化。可以在归一化后当同一交互对象在变换动作时,避免出现实际未变化的关键点发生变动的问题,提高后续确定肢体关键点序列的准确性。

另外,从原始文本数据中提取文本特征数据,具体包括:将原始文本数据输入预设的文本提取模型,获得文本特征数据,文本提取模型是根据训练库中存储的各原始文本数据,以及与各原始文本数据对应的文本特征数据训练获得。通过预设的文本提取模型可以快速且准确地确定出文本特征数据。

另外,从肢体关键点序列中提取动作姿态的特征数据,具体包括:将肢体关键点序列输入预设的动作姿态特征提取模型,获得动作姿态的特征数据,动作姿态特征提取模型是根据训练库中存储的各肢体关键点序列,以及与各肢体关键点序列对应的动作姿态特征数据训练获得。通过预设的动作姿态提取模型可以快速且准确地确定出动作姿态的特征数据。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本发明第一实施方式提供的一种机器人的对话交互方法的具体流程示意图;

图2是根据本发明第二实施方式提供的一种机器人的对话交互方法的具体流程示意图;

图3是根据本发明第二实施方式中确定与对话内容对应的动作姿态的特征数据具体流程示意图;

图4是根据本发明第三实施方式中对每个肢体关键点矩阵进行预处理具体流程示意图;

图5是根据本发明第三实施方式中局部归一化的效果示意图;

图6是根据本发明第三实施方式中全局归一化的一种效果示意图;

图7是根据本发明第三实施方式中全局归一化的另一种效果示意图;

图8是根据本发明第三实施方式中向量归一化的效果示意图;

图9是根据本发明第四实施方式提供的一种机器人的具体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

本发明的第一实施方式涉及一种机器人的对话交互方法。该机器人的对话交互方法应用于机器人,该机器人与交互对象对话期间,根据交互对象的对话内容,可以确定语言反馈内容,例如,交互对象发出“您好”,机器人确定的语言反馈内容可以是“您好”。其中,交互对象可以是人,也可以是其他机器人。该机器人的对话交互方法的具体流程如图1所示,包括:

步骤101:在对话交互期间,获取对话信息,对话信息至少包括对话内容的特征数据。

一个具体的实现中,由于对话信息包括对话内容的特征数据,则获取对话信息的过程即为确定对话内容的特征数据的过程:获取原始文本数据,原始文本数据为对话内容所对应的文本数据;从该原始文本数据中提取文本特征数据;将文本特征数据,作为对话内容的特征数据。

具体的说,通常机器人与交互对象进行对话交互的过程为:机器人说一段话,交互对象回复该段话;或者,交互对象说一段话,而机器人对交互对象的话进行回复;还可以是交互对象和机器人可能同时说出第一段话。因而该原始文本数据可以为该机器人产生,也可以是交互对象产生,还可以同时包括机器人和交互对象同时产生。本实施方式中,按照上述三种情况,分别介绍确定获取原始文本数据的过程:

情境一:当原始文本数据为机器人产生的对话内容所对应的文本数据。

获取原始文本数据,具体包括:获取机器人待播放的文本数据;并将待播放的文本数据作为原始文本数据。

情境二:当原始文本数据为交互对象产生的对话内容所对应的文本数据。

获取原始文本数据,具体包括:采集交互对象说话时发出的音频数据;对该音频数据进行语音识别,并将该语音识别结果作为原始文本数据。

情境三:当原始文本数据包括机器人产生的对话内容所对应的文本数据,以及交互对象产生的对话内容的文本数据。

可以按照情境一中的方式获取机器人待播放的文本数据,并按照情境二中的方式获取交互对象产生的对话内容的文本数据,将该待播放的文本数据和交互对象产生的对话内容的文本数据共同作为该原始原本数据,其中,情境一中和情境二中具体的获取过程此处将不再赘述。

一个具体的实现中,从原始文本数据中提取文本特征数据,具体包括:将原始文本数据输入预设的文本提取模型,获得文本特征数据,文本提取模型是根据训练库中存储的各原始文本数据,以及与各原始文本数据对应的文本特征数据训练获得。

具体的说,将训练库中存储的各原始文本数据作为该文本提取模型的输入数据,将与各原始文本数据对应的文本特征数据作为输出数据,可以采用循环神经网络(recurrentneuralnetwork,简称“rnn”)的模型结构,对输入数据和输出数据进行训练,即可确定出该文本提取模型,典型的循环神经网络如:长短期记忆网络(longshort-termmemory,简称“lstm”)模型架构。

构建完该文本提取模型后,将原始文本数据输入该文本提取模型,即可得到该文本特征数据。该文本特征数据的数据类型可以根据实际需要进行设置,例如,本实施方式中文本特征数据的数据类型为向量。

步骤102:根据对话信息以及预设的动作反馈模型,获取待执行的反馈动作,其中,动作反馈模型根据样本训练库中的各对话信息,以及与各对话信息对应的反馈动作训练获得。

具体的说,该动作反馈模型是在获取对话信息之前,预先根据样本训练库中的各对话信息,以及与各对话信息对应的反馈动作训练获得。由于在进行对话交互过程中,通常对话交互的一方产生的对话内容会影响交互对象另一方在聆听过程中的反馈动作,或者,交互对象的一方自身发出的对话内容对自身的反馈动作也会产生影响,故该动作反馈模型可以包括两个子模型,即第一动作反馈子模型和第二动作反馈子模型,第一动作反馈子模型用于指示包括交互对象一方对话内容的对话信息与交互对象另一方的反馈动作之间的第一对应关系;同理,第二动作反馈子模型用于指示包括交互对象一方对话内容的对话信息与自身的反馈动作之间的第二对应关系。第一动作反馈子模型和第二动作反馈子模型的训练过程类似,区别仅在于,第一动作反馈子模型在训练过程中的输入数据为交互对象一方的对话内容的对话信息,而第二动作反馈子模型在训练过程中的输入数据为自身对话内容的对话信息。

其中,样本训练库中的各对话信息,以及与各对话信息对应的反馈动作可以采用如下方式获取:

采集大量的视频文件数据,如:采集4000个视频文件。为了保证样本训练库中的各对话信息的准确性,可以采集包含有对话场景的视频文件,例如,脱口秀节目的视频文件,脱口秀节目通常仅有两个人进行对话,该情境类似于机器人与交互对象之间的对话情境,因此,将该脱口秀的视频文件作为训练数据,可以准确训练出动作反馈模型。

由于每个视频文件中均包含两个交互对象,每个视频文件包含完整的对话场景,对每个视频文件的处理过程为:可以通过语音识别的方式分别采集属于交互对象a的音频数据,以及属于交互对象b的音频数据,并将交互对象a的音频数据转换为文本数据,交互对象b的音频数据转为文本数据。并同时通过图像分析,采集交互对象a的反馈动作a,以及属于交互对象b的反馈动作。可以理解的是,交互对象a和交互对象b仅用于区别一个视频文件中的两个交互对象,且每个视频文件中的交互对象a(或交互对象b)可以是不同两个个体。

下面以一个具体的例子说明该第一动作反馈子模型和第二动作反馈子模型的训练过程:

将包括该交互对象a的对话信息作为第一动作反馈子模型的输入数据,将每个视频文件中的交互对象b对应的反馈动作作为第一动作反馈子模型的输出数据,并采用深度学习的方式训练确定该第一动作反馈子模型。

将交互对象a的对话信息作为第二动作反馈子模型的输入数据,将该交互对象a的反馈动作作为第二动作反馈子模型的输出数据,采用深度学习的方式训练确定该第二动作反馈子模型。

还可以是将交互对象b的对话信息作为第二动作反馈子模型的输入数据,将该交互对象b的反馈动作作为第二动作反馈子模型的输出数据,采用深度学习的方式训练确定该第二动作反馈子模型。

步骤103:执行待执行的反馈动作,以使机器人响应对话信息。

具体的说,机器人可以配合语言反馈,执行待执行的反馈动作,例如,若机器人产生的原始文本数据是“你真棒”,那么配合该原始文本数据,该机器人的对应的反馈动作是竖起大拇指。

本发明实施方式相对于现有技术而言,通过获取的对话信息以及预设的动作反馈模型,确定出当前机器人待执行的反馈动作,该机器人执行该待执行的反馈动作,从而实现机器人与人对话过程中,可以通过肢体动作与交互对象进行互动,例如,机器人在聆听时配合肢体动作,或者,机器人在说话过程中配合肢体动作;由于增加了肢体动作,可以丰富机器人在对话中的响应方式,从而使得该机器人可以与人沟通更加自然,顺畅,提高人与机器人进行对话交互的体验。

本发明的第二实施方式涉及一种机器人的对话交互方法。第二实施方式是第一实施方式进一步改进,主要改进之处在于:在本发明第二实施方式中,对话信息还包括:与对话内容对应的动作姿态的特征数据。该机器人的对话交互方法的具体流程如图2所示。

步骤201:确定对话内容的特征数据。

该步骤与第一实施方式中确定对话内容的特征数据大致相同,此处将不再赘述。

步骤202:确定与对话内容对应的动作姿态的特征数据。

具体的说,为了提高后续根据对话信息,确定的反馈动作的准确性,对话信息中还包括了与对话内容对应的动作姿态的特征数据。确定与对话内容对应的动作姿态的特征数据,具体包括以下子步骤,具体流程如图3所示:

子步骤2021:采集交互对象的第一图像数据,其中,第一图像数据中包括至少一张交互对象的图像。

具体的说,采集该交互对象在对话过程中的第一图像数据,第一图像数据中至少要包括一张该交互对象的图像,可以理解的是,为了保证确定的该交互对象的动作姿态的特征数据的准确性,该第一图像数据包括该交互对象在进行一段对话过程中所有含有该交互对象的图像。

子步骤2022:根据第一图像数据,确定交互对象的动作姿态的特征数据,并将交互对象的动作姿态的特征数据,作为与对话内容对应的动作姿态的特征数据。

一个具体实现中,对第一图像数据中的每个图像进行处理的过程为:提取图像中属于交互对象所对应的肢体关键点矩阵,其中,肢体关键点矩阵用于指示交互对象在各自所属图像中的动作姿态;在对第一图像数据中的每个图像处理之后,根据每个肢体关键点矩阵,确定交互对象的肢体关键点序列;从肢体关键点序列中提取动作姿态的特征数据。

具体的说,由于每张图像中包括该交互对象的一种动作姿态,且由于人体的动作与人体的关节点具有关联性,而机器人的肢体运动也是通过机器人的各个关节点进行运动。因此,可以通过提取图像中的交互对象各个关节点作为该交互对象的关键点。而人体全身有17个关节点,而发明人发现在对话过程中,人体的下肢通常不移动,而过多的关键点会增加计算时间,因此,本实施方式中,在不影响确定与对话内容对应的动作姿态的特征数据的情况下,关键点选取人体上半身的关节点,例如:选取12个关键点,分别为:人体的腹部、胸部、颈部、头部顶部、左肩、左边肘部、左手腕部、左髋、右肩、右边肘部、右边腕部、右髋。

需要说明的是,每个关键点对应一个三维坐标,每个关键点的三维坐标可以通过图像的rgb帧与人体姿态估计系统提取的2d坐标一起输入到三维坐标提取模型中,该三维坐标提取模型与现有的三维坐标提取模型大致相同,此处将不再赘述。

由于交互对象的动作姿态是连续的动作,因此,本实施方式中通过肢体关键点序列来表征交互对象的连续动作之间的关联。

一个具体的实现中,根据每个肢体关键点矩阵,确定交互对象的肢体关键点序列,具体包括:对每个肢体关键点矩阵进行预处理,预处理用于消除每个肢体关键点矩阵的噪声;将预处理后的每个肢体关键点矩阵,转换为交互对象的肢体关键点序列。其中,对每个肢体关键点矩阵进行预处理,可以是按照预设的坐标轴旋转每个肢体关键点矩阵,以使每个所属交互对象的肢体关键点矩阵都朝向相同的方向。

具体的说,由于视频文件中,拍摄交互对象的相机的角度不同,导致交互对象的姿态朝向并不一定相同,而为了消除每个肢体关键点矩阵的噪声,可以对每个肢体关键点矩阵进行旋转。下面以一个肢体关键点矩阵k0的例子说明旋转的方式:

由于人体的左肩与右肩的高度相同,因此,同一个人的左肩和右肩在z轴方向上的坐标相同,即,kl=(xl,yl,zl)和kr=(xr,yr,zr)中,zl≈zr,预设的旋转轴为z轴,为了使旋转后的关键点矩阵满足yl=yr且xl>xr,将该肢体关键点矩阵内每个关键点按z轴逆时针方向旋转θ。θ的计算方法如下:首先计算出kl与kr的差向量kdiff=kl-kr,然后计算出x轴与kdiff在xoy平面上投影的夹角,该夹角即为θ。一旦确定了θ,即可计算出旋转后的肢体关键点矩阵如公式(1):

其中,rz(θ)为基于z轴的基本旋转矩阵,该基本旋转矩阵的计算如公式(2)所示;

值得一提的是,从肢体关键点序列中提取动作姿态的特征数据,具体包括:将肢体关键点序列输入预设的动作姿态特征提取模型,获得动作姿态的特征数据,动作姿态特征提取模型是根据训练库中存储的各肢体关键点序列,以及与各肢体关键点序列对应的动作姿态特征数据训练获得。

其中,该动作姿态特征提取模型的构建方式与第一实施方式中文本提取模型的构建方式类似,训练过程此处将不再赘述,但需要注意的是,训练库中存储的各肢体关键点序列确定过程为:对从采集的视频文件数据中提取属于交互对象所对应的肢体关键点矩阵,对每个肢体关键点矩阵进行预处理,将预处理后的每个肢体关键点矩阵,转换为交互对象的肢体关键点序列,其中,预处理的过程与矩阵k0的处理过程大致相同,此处不再赘述。

值得一提的是,将预处理后的每个肢体关键点矩阵,转换为交互对象的肢体关键点序列的方式与现有技术中矩阵转换为序列的方式类似,此处不再赘述。

步骤203:并将对话内容的特征数据和动作姿态的特征数据进行融合。

具体的说,由于对话内容的特征数据的维度与动作姿态的特征数据的维度相同,且为了便于融合,对话内容的特征数据为向量数据,同理该动作姿态的特征数据为向量数据,融合即将对话内容的特征数据和动作姿态的特征数据相加。

步骤204:根据对话信息以及预设的动作反馈模型,获取待执行的反馈动作,其中,动作反馈模型根据样本训练库中的各对话信息,以及与各对话信息对应的反馈动作训练获得。

具体的说,由于该在进行对话交互过程中,通常对话交互的一方产生的对话内容以及动作姿态会影响交互对象另一方在聆听过程中的反馈动作,或者,交互对象一方的对话内容对自身的反馈动作也会产生影响,故本实施方式中该动作反馈模型包括两个子模型,即第一动作反馈子模型和第二动作反馈子模型,第一动作反馈子模型用于指示包括交互对象一方对话内容以及动作姿态的特征数据与交互对象另一方的反馈动作之间的第一对应关系;同理,第二动作反馈子模型与第一实施方式中的第二动作反馈子模型类似,用于指示包括交互对象一方自身对话内容的对话信息与自身的反馈动作之间的第二对应关系。

由于第二动作反馈子模型与第一实施方式中的第二动作反馈子模型类似,本实施方式中的第一动作反馈子模型与第一实施方式中的第一动作反馈子模型类似,此处将不再赘述该第一动作模型和第二动作反馈子模型的训练过程。其中,需要说明的是,样本训练库中每个对话信息,是将该对话内容的特征数据和动作姿态的特征数据融合后得到,且每个动作姿态的特征数据的确定方式与上述介绍的方式类似,此处将不再赘述。

步骤205:执行待执行的反馈动作,以使机器人响应对话信息。

本实施方式提供的机器人的对话交互方法,由于在对话过程中,交互对象会有对应的肢体动作,因而对话信息中还包括与对话内容对应的动作姿态的特征数据,使得该对话信息更加丰富,进而使得根据该对话信息所确定的待执行的反馈动作更加准确,使机器人的动作更加自然。

需要说明的是,本实施方式中还可以先执行步骤202,再执行步骤201。

本发明的第三实施方式涉及一种机器人的对话交互方法。第三实施方式与第二实施方式的大致相同,主要区别之处在于:在本发明第三实施方式中,对每个肢体关键点矩阵进行预处具体包括:按照预设的坐标轴旋转每个肢体关键点矩阵;在对旋转后的每个肢体关键点矩阵进行归一化处理。本实施方式中对每个肢体关键点矩阵进行预处理,具体流程如图4所示。

步骤301:按照预设的坐标轴旋转每个肢体关键点矩阵,以使每个所属交互对象的肢体关键点矩阵都朝向相同的方向。

该步骤与第二实施方式中按照预设的坐标轴旋转每个肢体关键点矩阵的步骤类似,此处将不再赘述。

步骤302:对旋转后的每个肢体关键点矩阵进行归一化处理。

具体的说,归一化处理有多种方式,本实施方式中列举了三种归一化的处理方式,下面分别介绍对旋转后的每个肢体关键点矩阵进行归一化处理的方式:

方式一:局部归一化方式。

获取当前肢体关键点矩阵中的关键点最大值和关键点最小值;根据关键点最大值和关键点最小值,对当前肢体关键点矩阵中的每个关键点进行归一化。

具体的说,对每个肢体关键点矩阵进行归一化,以旋转后的关键点矩阵k0=[k1,k2,k3,......,k12]为例,其中,ki=(xi,yi,zi)t定义x0,max和x0,min为k0的12个xi中的最大值和最小值,类似定义适用于y0,max,y0,min,z0,max,z0,min。其中,下标i用于指示关键点编号。

其中,k0,min由12列(x0,min,y0,min,z0,min)t组成,k0,scale由12列组成,⊙为表示两个矩阵的逐元素乘法的符号。

该归一化虽然可以将该肢体关键点矩阵量化到0~1范围内,以便后续可以快速处理该肢体关键点矩阵,但是该局部归一化的方式在处理图5中的动作姿态问题时,会出现局限性。如图5所示,当关键点a发生如图5箭头所化的运动时,按照箭头从虚线位置运动到实线所在位置之后,该关键点a依然处于边界1的位置,这将导致除a点的其他关键点被压缩,不符合实际人体的运动。其中,下标scale用于指示归一化过程中的缩放比例。

因此,本实施方式还提供了方式二的归一化方法。

方式二:全局归一化。

从旋转后的所有肢体关键点矩阵中选取关键点最大值和关键点最小值;对旋转后的每个肢体关键点矩阵进行以下处理:根据关键点最大值和关键点最小值,对肢体关键点矩阵中每个关键点进行归一化处理。

具体的说,从所有旋转后的肢体关键点矩阵中选取出一个关键点最大值和一个关键点最小值,然后对分别对旋转后的每个肢体关键点矩阵进行以下处理:按照选取的关键点最大值和关键点最小值,对每个该肢体关键点矩阵中每个关键点进行归一化。该归一化的效果如图6和7所示,图6和7分别表示身体尺寸小和大的交互对象的动作姿态。

方式三:向量归一化。

将旋转后的肢体关键点矩阵中的关键点按照预设规则构建关键点向量;根据单位长度对肢体关键点矩阵中每个关键点向量进行归一化处理。

具体的说,预设规则可以是相邻的肢体关键点构建一个关键点向量,如图8所示,将腹部关键点设置为身体的中心,表示为o(0,0,0),将胸部和臀部与腹部相连,颈部分别与肩部、胸部相连,头部顶部与颈部相连,同侧的肘部与肩部连接,手腕以同样的方式连接到同侧的肘部。因此,该旋转后的肢体关键点矩阵中每个关键点都将由向量来表示,而不是坐标。将每个关键点向量逐一归一化为单位长度,即可完成该旋转后的肢体关键点矩阵的向量归一化。

本实施方式提供的机器人的对话交互方法,提供了另一种对每个肢体关键点矩阵进行预处理的方式,在旋转后的肢体关键点矩阵后进行归一化处理,可以简化数据处理难度,从而提升处理速度。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第四实施方式涉及一种机器人,该机器人40具体结构如图9所示,包括:至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行第一实施方式至第三实施方式中任一机器人的对话交互方法。

其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器401和存储器402的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。

处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器在执行操作时所使用的数据。

本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现第一实施方式至第三实施方式中机器人的对话交互方法。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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