声音检测装置、声音检测方法以及记录介质与流程

文档序号:15690867发布日期:2018-10-16 22:06阅读:419来源:国知局

本发明涉及声音检测装置、声音检测方法以及记录介质。



背景技术:

已知一种机器人,具有模仿人、动物等的样子,并能够与人进行对话等交流。在这样的机器人中,基于本机所搭载的麦克风的输出来检测在机器人的周围产生的声音,若判别为是人的声音,则向人所在的方向改变机器人的面部的朝向或者身体的朝向,进行与这个人攀谈、招手等动作。

在jp特开2003-266351号公报中,记载了如下内容,即,机器人根据向麦克风输入了阈值以上的振幅的声音来检测产生了声音事件,并推定声源方向而转向所推定出的声源方向。

非专利文献1:andrewj.davison,“real-timesimultaneouslocalizationandmappingwithasinglecamera”,proceedingsofthe9theeeinternationalconferenceoncomputervisionvolume2,2003,pp.1403-1410

非专利文献2:richardhartley,andrewzisserman,“multipleviewgeometryincomputervision”,secondedition,cambridge.universitypress,march2004,chapter9

非专利文献3:csurka,g.,dance,c.r.,fan,l.,willamowski,j.andbray,c.:visualcategorizationwithbagsofkeypoints,eccvinternationalworkshoponstatisticallearningincoputervisin(2004)

但是,jp特开2003-266351号公报所记载的机器人若检测出声音事件则转向,因而可以预料不光是对于实际从人对机器人发出的声音会反应,例如,对于从电视机、收音机等电子设备的扬声器输出的声音也会反应。

本发明鉴于上述情况而作,其目的在于,通过使机器人判别是实际的从人直接发出的声音还是从电子设备的扬声器输出的声音来减少机器人的不必要的动作。



技术实现要素:

为了达成上述目的,本发明所涉及的声音检测装置,具备处理器,所述声音检测装置的特征在于,

所述处理器,

检测声音,

判别所检测到的所述声音的声音产生源是否为特定的声音产生源,

基于所判别出的判别结果来控制本机。

附图说明

若结合以下的附图来考虑下面的详细的记述,则能够得到本申请的更深刻的理解。

图1是本发明的实施方式1所涉及的机器人的外观图。

图2是用于说明机器人的头部的自由度的图。

图3是示出机器人的结构的框图。

图4是示出房间内的机器人与用户的位置的一例的图。

图5是地图生成处理的流程图。

图6是呼唤响应处理的流程图。

图7是声源定位的处理的流程图。

图8是用于说明假设声源的位置的图。

图9是本机位置推定的处理的流程图。

图10是示出实施方式2所涉及的机器人的存储部的结构的框图。

图11是呼唤移动处理的流程图。

图12是面部位置推定的处理的流程图。

具体实施方式

(实施方式1)

以下,参照附图对本发明的实施方式1进行说明。图1是示意性地示出从正面观察实施方式1所涉及的机器人100的情况下的外观的图。机器人100是具备头部110和躯体120的人型的交流机器人。机器人100设置在住宅内,若被居住者呼唤,则与进行了呼唤的居住者进行对话。

如图1所示,在机器人100的头部110,设置有摄像机111、麦克风112和扬声器113。

摄像机111(摄像单元)设置在头部110的前面的下侧、以人的面部来说的鼻子的位置。摄像机111在后述的控制部127的控制下,进行摄像。

麦克风112包含13个麦克风。13个麦克风中的8个麦克风在以人的面部来说的额头的高度的位置,环绕头部110的一周而等间隔地配置。在比这8个麦克风更靠上侧,4个麦克风环绕头部110的一周而等间隔地配置。而且,1个麦克风配置在头部110的头顶部。麦克风112检测在机器人100的周围产生的声音。麦克风112与后述的控制部127协作,发挥作为声音检测单元的作用。

扬声器113设置在比摄像机111更靠下侧、相当于以人的面部来说的口部的位置。扬声器113在后述的控制部127的控制下,输出各种声音。

颈关节121是连结头部110与躯体120的构件。头部110通过由虚线所示的颈关节121,与躯体120连结。颈关节121包含多个电动机。若后述的控制部127驱动这多个电动机,则机器人100的头部110旋转。在图2中示出示意性地表示机器人100的头部110的旋转的自由度的图。通过颈关节121,机器人100的头部110能够相对于躯体120围绕俯仰轴xm旋转,围绕横滚轴zm旋转,围绕偏航轴ym旋转。颈关节121和后述的行走部126一起与后述的控制部127协作,控制机器人100的各部位的动作,由此发挥作为改变本机的位置、姿势中的至少一方的控制单元的作用。

参照图3。除了上述结构之外,机器人100还具备:操作按钮122、传感器组123、电源部124、存储部125、行走部126和控制部127。

操作按钮122设置在躯体120的背部(图1中未图示)。操作按钮122是用于操作机器人100的各种按钮,包含电源按钮、扬声器113的音量调节按钮等。

如图1所示,传感器组123设置在以人的面部来说的眼部的位置和耳部的位置。传感器组123包含距离传感器、加速度传感器、障碍物探测传感器等,用于机器人100的姿势控制、安全性的确保。

参照图3。电源部124是内置于躯体120的充电电池,向机器人100的各部供给电力。

存储部125包含硬盘驱动器、闪存等,设置在躯体120的内部。存储部125存储由后述的控制部127执行的程序、包含摄像机111进行摄像而得到的图像数据等在内的各种数据。在存储部125存储的程序中,包含后述的呼唤响应处理所涉及的呼唤响应程序1251、地图生成处理所涉及的地图生成程序1252。进而,在存储部125中,还包含用后述的slam(simultaneouslocalizationandmapping,同步定位与地图构建)法生成的房间的地图即slam地图1253、保存摄像图像的特征点等的帧数据库1254、定义了后述的标记(1abeling)的声音产生概率的声音产生概率数据库1255。

行走部126包含设置在躯体120的下侧的四个车轮(wheel)。如图1所示,四个车轮中的两个配置在躯体120的前侧,剩余两个配置在后侧(未图示)。作为车轮,例如,使用全向轮、麦克纳姆轮(mecanumwheel)。若后述的控制部127使行走部126的车轮旋转,则机器人100移动。行走部126和前述的颈关节121一起,与后述的控制部127协作,来控制机器人100的各部位的动作,由此发挥作为改变本机的位置、姿势中的至少一方的控制单元的作用。

进而,在行走部126的车轮设置有旋转编码器。利用旋转编码器来测量车轮的转数,通过利用车轮的直径、车轮间的距离等几何学关系从而能够计算平移移动量以及旋转量。

参照图3。控制部127由处理器(processor)、ram(randomaccessmemory,随机存取存储器)等构成。控制部127与上述的机器人100的各部连接,并通过将ram作为工作空间,来执行存储在存储部125中的程序,从而控制机器人100的各部。

在本实施方式中,控制部127发挥控制单元的作用,该控制单元为了控制机器人100的各部位的动作,通过对前述的颈关节121、行走部126进行控制,由此改变本机的位置、姿势中的至少一方。

进而,控制部127能够根据设置于行走部126的车轮的旋转编码器的转数,测量本机的位置(以移动开始时的位置为基准的本机的位置)。例如,若设车轮的直径为d,转数为r(由行走部126的旋转编码器测定),则该车轮的接地部分处的平移移动量成为π·d·r。此外,若设车轮的直径为d,车轮间的距离为i,右车轮的转数为rr,左车轮的转数为rl,则朝向变更的旋转量(以顺时针旋转为正)成为360°×d×(rl-rr)/(2×i)。通过将该平移移动量、旋转量逐一进行相加,从而能够测量本机位置(以移动开始时的位置以及朝向为基准的位置以及朝向)。这样,控制部127也作为里程计而发挥功能。

如上所述,机器人100若被居住者(用户)呼唤则进行对话,因此若判别被呼唤,则需要执行进行了呼唤的居住者(用户)的面部检测。以下,说明机器人100进行的面部检测的处理。在此,在响应用户的呼唤的一系列处理(呼唤响应处理)当中,说明机器人100进行用户的面部检测的例子。如图4所示,设想在房间rm内有机器人100和用户p,并在机器人100与用户p不正对的情况下,用户p对机器人100呼唤的场景。

在本实施方式中,预先已经生成登记了存在于房间rm内的声源的位置的地图(声音产生源位置信息)。机器人100的控制部127在检测到产生了人的声音时,首先,判别该声音的声源的方向。然后,控制部127基于声源的方向、本机(机器人100)的位置和预先生成的房间rm中的地图,判别在所判别出的声源的方向是否存在人以外的声源,根据存在与否,来判别是转向还是不转向。

说明在呼唤响应处理之前预先生成的实际空间(在此为房间rm)内的地图的生成方法。在控制部127的控制下,机器人100每天在规定的时刻,一边在房间中来回移动一边进行摄像,基于摄像图像来生成房间的地图,并将所生成的地图保存在存储部125中。

为了生成地图而采用slam法。slam法是用于生成实际空间的地图的方法之一。在该方法中,进行如下处理,即,通过从摄像机拍摄的运动图像的多个帧,追踪同一特征点,从而交替地或同时推定本机的三维位置(摄像机位置)和特征点的三维位置(这些汇集而构成地图的信息)。slam法的详细内容在非专利文献1中有记载。

以下,参照图5的流程图对控制部127进行的采用了slam法的地图生成处理进行说明。控制部127通过执行存储在存储部125中的地图生成程序1252,从而实现以下的处理。

首先,控制部127取得摄像图像,并提取摄像图像的二维特征点(2d特征点)(步骤s11)。所谓2d特征点,是图像中的边缘部分等图像内的特征部分,能够使用sift(scale-invariantfeaturetransform,尺度不变特征转换)、surf(speed-uprobustfeatures,快速鲁棒特征)等算法来取得。

具体而言,在步骤s11中,控制部127控制摄像机111来进行摄像。然后,从摄像得到的图像中提取2d特征点。继而,如前所述也作为里程计而发挥功能的控制部127使用行走部126的旋转编码器,来测量本机(机器人100)的当前位置。控制部127将2d特征点和本机的当前位置与摄像图像建立对应地存储到存储部125中。

控制部127判别在地图生成处理开始后摄像得到的图像是否为两张以上(步骤s12)。若判别为小于两张(步骤s12:“否”),则控制部127控制行走部126,使本机移动给定的距离(步骤s19),再次返回至步骤s11。

另一方面,在判别为摄像得到的图像为两张以上的情况下(步骤s12:“是”),控制部127取得两个图像的2d特征点的对应(步骤s13)。两个图像例如是本次摄像得到的图像和最近摄像得到的图像。

判别在步骤s13中取得的两个图像的对应的特征点(对应特征点)的个数是否为阈值以上(步骤s14)。这是因为,若所取得的特征点的个数较少,则无法进行后述的二视图运动恢复结构法(two-viewstructurefrommotion法)的计算。

在判别为两个图像的对应的特征点的个数小于阈值的情况下(步骤s14:“否”),控制部127控制行走部126,使本机移动给定的距离(步骤s19),再次返回至步骤s11。

另一方面,在判别为两个图像的对应的特征点的个数为阈值以上的情况下(步骤s14:“是”),控制部127推定两个图像间的姿势(步骤s15)。

具体而言,在步骤s15中,使用二视图运动恢复结构法(two-viewstructurefrommotion法),从两个图像间对应的2d特征点的二维坐标(2d坐标)、和两个图像各自的拍摄位置(拍摄时的本机的位置)之间的距离,来推定两个图像间的姿势(取得各个图像的位置的差分(平移向量t)以及朝向的差分(旋转矩阵r))。该推定如非专利文献2所记载的那样,通过利用极线约束方程式(epipolarconstraintequation)从对应的特征点求取基础矩阵e,并将基础矩阵e分解为平移向量t和旋转矩阵r而得到。

接着,控制部127推定在两个图像之间对应的2d特征点(2d的对应特征点)的三维坐标(3d坐标)(步骤s16)。具体而言,这使用在步骤s15中计算出的表示两个图像间的姿势的值和在两个图像间对应的2d特征点的2d坐标来推定。

控制部127将在步骤s16中推定出的推定值登记到数据库中(步骤s17)。具体而言,控制部127将在步骤s16中求出的“2d的对应特征点的3d坐标(x,y,z)”和“2d特征点的特征量”(例如由sift等得到的特征量)登记到存储部125的slam地图1253中。

此外,控制部127作为图像的信息而将“slam地图内的图像的姿势”(对该图像进行摄像时的本机在slam坐标内的位置(平移向量t)以及朝向(旋转矩阵r))、“提取出的全部2d特征点”、“全部2d特征点中3d位置(3d坐标)已知的点”和“关键帧自身的特征”登记到存储部125的帧数据库1254中。

在此,所谓关键帧,是指成为处理的对象的摄像图像。所谓关键帧自身的特征,是指用于使求取关键帧间的图像类似度的处理效率化的数据,既可以使用图像中的2d特征点的直方图等,也可以将图像自身设为“关键帧自身的特征”。

控制部127判定处理是否结束(步骤s18)。控制部127若判别为处理结束(步骤s18:“是”),则结束地图生成处理。另一方面,若判别为处理未结束(步骤s18:“否”),则控制行走部126,使本机移动给定的距离(步骤s19),再次返回至步骤s11。以上为地图生成处理。

进而,也可以在如上所述生成的slam地图1253中,附加随机变量作为表示在房间rm内的各个位置处存在障碍物的概率的障碍物信息。关于障碍物信息的随机变量的值,该值越高,则表示在该位置处存在障碍物的可能性越高。障碍物信息的随机变量,例如,能够在slam地图1253的生成处理中的数据库登记(图5的步骤s17)的定时,附加到slam地图1253。

进而,在本实施方式中,机器人100使用对如上所述生成的slam地图1253附加了人以外的声音产生源信息的数据,来判别所检测到的声音是否为人。

人以外的声音产生源信息,例如,能够在slam地图1253的生成处理中的数据库登记(图5的步骤s17)的定时,附加到slam地图1253。

声音产生源的确定例如通过以下这样的方法来进行。可以使用针对在slam地图1253生成时机器人100在房间rm内来回移动并进行摄像而得到的图像,进行一般图像识别(以一般的名称对图像中包含的物体进行识别的处理),来标记是否为声音产生源的方法。针对在图像内标记为声音产生源的区域存在的2d特征点所对应的地图内的地点,登记第一值(比第二值大的值)。此外,在除此以外的2d特征点所对应的地点,登记第二值(比第一值小的值)。具体而言,在机器人100通过的地点,登记第二值,在机器人100通过时由接触传感器、距离传感器等判别为接触到障碍物的地点,登记第一值。

在上述的例子中,说明了将随机变量设为2值。或者,也可以将一般图像识别结果的似然度与标记的声音产生概率相乘的值设为随机变量。

关于标记的声音产生概率,在此,设为表示房间rm内的各个位置处的声音产生源的概率的信息(随机变量)预先登记在存储部125的声音产生概率数据库1255中。关于随机变量的值,值越高,则表示在该位置处存在人以外的声音产生源的可能性越高。

作为登记在声音产生概率数据库1255中的标记的声音产生概率,例如,登记有换气扇:0.8、门:0.5、赏叶植物:0这样的值。换气扇在工作时发出相应的声音,门根据开关的人在发出的声音的大小上有差异,对于仅是放置的赏叶植物则不产生声音,基于这样的观点来规定这样的值。

此外,标记的声音产生概率也可以按照时刻、季节、气温等,规定多个值。在与季节相应的标记的情况下,例如,设为夏:0.8、冬:0。这是因为,若是夏季,则大多情况会打开窗户,因此有时即使在室内也能够听到在室外产生的声音,而若是冬季的紧闭窗户的状态,则几乎听不到室外的声音。

此外,使用一般图像识别结果的似然度基于如下这样的理由。在使用一般图像识别的情况下,并非对于任意的图像识别的精度都较高。通过使用一般图像识别结果的似然度,从而能够减小一般图像识别误识别的情况下的影响。

此外,也可以不利用一般图像识别而使用其他方法。存在非专利文献3中记载的bag-of-features这样的方法。该方法是求取图像中的物体属于哪个类别的图像分类问题的方法。

或者,也可以不利用一般图像识别,而将表示用户指定的声音产生源的区域、成为声音产生源的物体的信息追加于所生成的slam地图1253。在该情况下,例如,机器人100也可以具备触摸面板、显示器等显示装置和触摸面板、键盘等输入装置,对用户提示所生成的slam地图1253,使用户输入声音产生源。

或者,机器人100也可以在生成了slam地图1253之后,在房间rm内来回移动,指着位于房间rm内的物体,向用户询问该物体是否为声音产生源等。能够将基于用户的回答的声音产生源的信息追加到slam地图1253。

或者,也可以在生成了slam地图1253之后,对房间rm内的物体进行摄像,并将摄像图像显示于显示装置,向用户询问该物体是否为声音产生源等。在该情况下,也能够将基于用户的回答的声音产生源的信息追加到slam地图1253。

接着,说明在检测到声音的情况下,使用地图来判别所检测到的声音的声源是否为人,并根据判别结果进行响应的呼唤响应处理。假定在呼唤响应处理开始之前,已经执行了上述的地图生成处理,在slam地图1253、帧数据库1254、声音产生概率数据库1255中,已经登记适当的信息。

控制部127通过执行存储部125的呼唤响应程序1251,从而进行以下的呼唤响应处理,作为判别所检测到的声音产生源是否为特定的声音产生源(在此为人)的判别单元而发挥功能。

参照图6的流程图对呼唤响应处理进行说明。控制部127判别在机器人100的周边是否检测到某种程度的大小的声音(步骤s101)。具体而言,控制部127判别是否对一个以上的麦克风112输入了给定的阈值以上的振幅的声音。另外,所谓给定的大小,取决于麦克风112的灵敏度。

在通过麦克风112不能检测到给定的大小的声音的情况下(步骤s101:“否”),控制部127进行等待直到检测到声音为止。

另一方面,在判别为检测到某种程度的大小的声音的情况下(步骤s101:“是”),控制部127判别通过麦克风112而检测到的声音是否为人的声音(步骤s102)。具体而言,控制部127判别在步骤s101中检测到的声音是否为特定的频带的声音。在步骤s101中检测到的声音不是人的声音的情况下(步骤s102:“否”),控制部127返回至步骤s101,进行等待直到检测到声音为止。

另一方面,若判别为是人的声音(步骤s102:“是”),则控制部127为了求取声源的位置(在此为发出用户p的声音的位置),进行声音定位(步骤s103)。在此,假定为了推定声源的位置而采用作为声源定位的一个方法的music(multiplesignalclassification,多重信号分类)。另外,假定在声源定位的过程中作为声源的用户p不移动而处于静止。

参照图7来说明声源定位。首先,将输入到麦克风112的声音进行时间频率变换(步骤s10301)。在此,作为时间频率变换,进行stft(short-timefouriertransform)(短时傅里叶变换)。

若设声源数为n,则第n个声源的信号sn能够由下述式(1)表示。

sn(ω,f)(n=1,2,…,n)…(1)

ω为角频率,f为帧编号(在以下的说明中也同样)。

若设麦克风112的数量为m,则由麦克风112观测的信号能够由下述式(2)表示。

xm(ω,f)(m=1,2,…,m)…(2)

从声源发出的声音在空气中传播并由麦克风112观测,若将此时的传递函数设为hnm(ω),则通过将表示声源的信号的数学式与传递函数相乘,能够求取由麦克风112观测的信号。由第m个麦克风112观测的信号xm(ω,f)如下述式(3)那样表示。

【数学式1】

机器人100具有多个麦克风112,因此由麦克风112整体观测的信号x(ω,f)能够由下述式(4)表示。

【数学式2】

同样地,整个声源的信号s(ω,f)也能够由下述式(5)表示。

【数学式3】

同样地,第n个声源的传递函数hn(ω)能够由下述式(6)表示。

【数学式4】

如下述式(7)那样表记全部的传递函数。

h(ω)=[h1(ω),h2(ω),…hn(ω)]…(7)

若将由上述的式(7)表示的传递函数应用于上述的式(3),则如下述式(8)那样表示。

x(ω,f)=h(ω)s(ω,f)…(8)

hn(ω)是按照每个声源位置而独立的,若以某种程度的帧数(例如,设帧数为l))来看则sn(ω,f)可视为是不相关的,x(ω,f)构成以声源数n作为rank的超平面。此时,分布容易在以距离进行了归一化的音量较大的声源的传递函数方向上扩展。因此,考虑分解为子空间和零空间。

再次参照图7。如下面的式(9)所示计算相关矩阵(步骤s10302)。在此,*意味着复共轭转置。

【数学式5】

接着,进行特征值分解(步骤s10303)。在此,特征值λm(ω,f)和本征向量em(ω,f)进行重新排列,使得特征值成为降序。

虽然原理上hn(ω)能够从子空间的本征向量em(ω,f)(m=1~n)的加权求和来恢复,但是实际上难以恢复,因此通过使用构成零空间的本征向量em(ω,f)(m=n+1~m)与hn(ω)正交的情况来实现声源定位。

但是,由于作为声源的用户p有可能在房间rm内移动,因此无法预先知道声源位置,难以预先取得声源位置的传递函数。为此,决定假设声源位置,预先准备假设声源位置的传递函数,进行声源定位。

图8中示出假设声源位置与麦克风的配置的一例。在图8中,粗线的圆表示机器人100的头部110,粗线上的黑圈表示麦克风112。另外,在此,为了方便起见并未显示13个麦克风112的全部。假设在机器人100的周围存在4个假设声源位置。

多个麦克风112配置在机器人100的头部110,因而能够视为沿着圆周配置。将x轴的正向和分别连结麦克风112形成的圆的中心(与机器人100的头部110的中心位置相当)与假设声源1~4的线所成的角度设为θ1、θ2、θ3、θ4,预先计算各个传递函数hθ(ω)。

在图8中,示出了声源为4个的例子,但是在声源数为n个的情况下,只要预先计算θ1、θ2、…θn各自的传递函数hθ(ω)即可。此外,或者,也可以不准备假设声源位置的传递函数而基于几何信息来预先计算传递函数。

再次参照图7。使用下面的式(10),来计算每个频带的music谱(步骤s10304)。

【数学式6】

在此,式(10)的分母由于噪声、误差、stft的频带间的信号泄漏的影响等而不会成为零。此外,在声源的方向和预先决定的角度θ(θ1、θ2、…θn)中的任意一者接近的情况下,即hn(ω)和hθ(ω)接近的情况下,式(10)的值会成为极端大的值。在图8所示的例子中,由于作为声源的人和假设声源2的位置接近,因此在使用了θ2的传递函数的情况下,可以设想式(10)的值会变得极端大。

然后,为了求取综合的music的功率(power),如式(11)所示对每个频带的music谱进行加权求和(步骤s10305)。

【数学式7】

只要特征值λm(ω,f)越大时加权系数设得越大,则也能够进行与sn(ω,f)中包含的功率相应的计算。在该情况下能够减轻sn(ω,f)几乎没有功率的情况下的不良影响。

接着,从功率谱选择适当的峰值(极大值)(步骤s10306)。具体而言,首先,求取多个峰值,从其中选择适当的峰值,将所选择的峰值处的θ设为声源方向。在此,求取峰值出于以下这样的理由。这是因为,本来的声源方向的θ的功率不一定最大,而接近本来的声源方向的θ的功率通常较大,因而声源方向在多个峰值中的某一者具有正解。

此外,即使在开着电视机、门铃电话响起等在房间rm内具有其他声源的情况下,在大多的情况下,也可以认为人会以比电视机、门铃电话等周围的声音更大的声音对机器人100进行呼唤。因此,可以设想人的声音的功率比从人以外的电视机、门铃电话等声源发出的声音的功率大。因此,即使单纯地选择表示功率最大的假设声源位置的θ作为声源方向,也没有问题。但是,根据周围的环境等,也存在并非将功率最大的假设声源位置而是将功率第二或其后的假设声源位置选择为声源方向更适当的情况。这样,控制部127能够判别声源方向,在此,能够判别从机器人100的位置观察的用户p所在的方向。

声源定位的处理如上。在此,假定平面来进行了说明,但是即使假定三维,上述说明也成立。

再次参照图6。若执行步骤s103的声源定位来判别声源方向,则控制部127作为表示声源方向的信息而将表示声源的方向相对于机器人100正朝向的方向的角度θ存储到存储部125中。接着,控制部127前进至步骤s104,使用拍摄图像和地图(slam地图1253、帧数据库1254)来执行本机位置推定的处理。

参照图9来说明本机位置的推定的处理。控制部127提取由摄像机111进行摄像而得到的图像的二维特征点(2d特征点)(步骤s10401)。具体而言,控制部127控制摄像机111进行摄像,从摄像得到的图像中提取2d特征点。

接着,控制部127参照存储部125的帧数据库1254,从帧数据库1254中登记的以前的帧的信息,取得该图像的信息中包含的2d特征点当中的3d位置为已知的2d特征点,从所取得的2d特征点中,提取与在步骤s10401中提取出的2d特征点能取得对应的特征点(步骤s10402)。在此,所谓的3d位置为已知,即是指2d特征点已经登记在slam地图中。

控制部127判别在步骤s10402中提取出的能取得对应的特征点的个数是否为阈值以上(步骤s10403)。在判别为小于阈值的情况下(步骤s10403:“否”),控制部127控制行走部126,使本机移动给定的距离(步骤s10406),再次返回至步骤s10401。

另一方面,在判别为在步骤s10402中提取出的对应特征点的个数为阈值以上的情况下(步骤s10403:“是”),控制部127从存储部125的slam地图1253中,取得在步骤s10402中提取出的对应特征点各自的3d坐标(xi,yi,zi)(步骤s10404)。

接着,控制部127推定本机的姿势(步骤s10405)。在此,控制部127从对应特征点的slam地图上的3d位置和对应特征点的帧坐标(2d坐标)的关系来推定本机的姿势(由平移向量t以及旋转矩阵r表示的本机的位置以及朝向)。

具体而言,将当前摄像得到的图像中包含的对应特征点的帧坐标设为(ui,vi),将其对应特征点的3d坐标设为(xi,yi,zi)(i取从1到对应特征点的数量的值)。在此,将各对应特征点的3d位置(xi,yi,zi)通过下述式(12)而投影到帧坐标系的值(uxi,vxi)与帧坐标(ui,vi)在理想情况下是一致的。

(uxivxi1)’~a(r|t)(xiyizi1)’…(12)

但是,实际上无论是(xi,yi,zi)还是(ui,vi)都包含误差,因此(uxi,vxi)与(ui,vi)一致的情况很少有。而且,尽管未知数只有r和t(在三维空间时分别成为三维,3+3=6为未知数的个数),但数式存在对应特征点的个数的2倍(针对一个对应特征点,存在针对帧坐标的u、v每一个的式子),因此成为过剩条件的联立线性方程式,如上所述通过最小平方法来求取。

具体而言,控制部127求取使以下的式(13)的成本函数e1最小化的姿势(平移向量t以及旋转矩阵r)。

【数学式8】

这样求出的值是表示通过slam法而求出的slam坐标中的本机的姿势(由平移向量t以及旋转矩阵r表示的本机的位置以及朝向)的值。根据这样计算出的值来推定本机的姿势。以上为本机位置推定的处理。

再次参照图6。若步骤s104的本机位置的推定的处理结束,则控制部127前进至步骤s105,参照slam地图1253和声音产生概率数据库1255,取得从在步骤s104中推定出的本机位置,在由步骤s103求出的声源方向上,存在人以外的声音产生源的概率(步骤s105)。在此,也可以求取声源方向的各点的概率的平均,将所求出的平均作为存在人以外的声音产生源的概率。或者,也可以针对声源方向的各点的概率将最大值作为存在人以外的声音产生源的概率。

接着,控制部127判别在步骤s105中求出的存在人以外的声音产生源的概率是否为阈值以上(步骤s106)。在判别为存在人以外的声音产生源的概率为阈值以上的情况下(步骤s106:“是”),控制部127判别为声源方向的声源为人以外,不使颈关节121旋转驱动,并再次返回至步骤s101,等待声音的输入。

另一方面,在判别为存在人以外的声音产生源的概率小于阈值的情况下(步骤s106:“否”),控制部127前进至步骤s107。

接着控制部127为了进行头部110的旋转,使颈关节121旋转驱动(步骤s107)。在此,控制部127使头部110旋转,直到机器人100的头部110的正面(摄像机111的透镜面)朝向声源(用户p)的方向。具体而言,控制部127基于存储在存储部125中的通过声源定位而求出的角度θ,使头部110旋转所求出的角度,然后,停止旋转驱动。这样,使摄像机111的透镜面朝向声源(用户p)所在的方向。

停止旋转驱动之后,控制部127执行面部检测的处理(步骤s108)。首先,控制部127控制摄像机111进行摄像,并通过针对摄像得到的图像实施以下的处理,来执行面部检测处理。

控制部127,首先,生成金字塔图像。所谓金字塔图像,是指将原图像以一定的比率反复缩小而生成的一系列的图像组,通过针对金字塔图像的各层次应用固定尺寸的面部检测器,从而能够检测各种尺寸(即与距离相当)的面部。在此,由于旋转所引起的摄像机的观察效果根据到对象的距离而变化,因此使用金字塔图像来进行面部检测。

首先,将面部搜索对象设定为最初的层次。在此设为缩小前的原始的图像。设定最初的检测窗。初始位置例如设为左上角。针对所设定的检测窗,应用固定尺寸的面部检测器。判定该层次中的基于滑动的搜索是否已经完成。若基于滑动的搜索尚未完成,则使检索窗滑动,再次进行面部检测。若基于滑动的搜索完成,则进行金字塔图像的全部层次中的处理是否已经完成的判定。若全部层次中的处理尚未完成,则移动层次,在移动目标的层次中也进行基于滑动的面部检测。若全部层次中的处理已经完成,则结束面部检测的处理。

另外,考虑到存在距机器人100较近的面部图像不能全进入视场角的情况、以及整体的计算负荷的比例较小的情况,更优选不进行缩小率较大的层次的面部搜索。

在通过面部检测处理而不能从摄像图像检测到面部的情况下(步骤s108:“否”),控制部127再次返回至步骤s101。

另一方面,若面部检测成功(步骤s108:“是”),则接着,控制部127判别用户p是否正在注视机器人100(步骤s109)。具体而言,控制部127控制摄像机111对用户p进行摄像,从摄像得到的图像来判别用户p的面部是否正朝向机器人100。若判别为用户p并未注视机器人100(步骤s109:“否”),则再次返回至步骤s101,等待声音的输入。

另一方面,若判别为用户p的面部正朝向机器人100(步骤s109:“是”),则控制部127移动给定的距离使得接近用户p(步骤s110),并判别与用户p的距离是否成为规定的距离以下(步骤s111)。该用户p与机器人100之间的规定的距离为机器人100能够对用户p发声的内容进行声音识别的程度的距离。控制部127在判别为机器人100与用户p的距离不是规定的距离以下的情况下(步骤s111:“否”),再次返回至步骤s110。

另一方面,控制部127在判别为与用户p的距离成为给定的距离的情况下(步骤s111:“是”),与用户p进行对话(步骤s112)。例如,控制部127控制扬声器113与用户p交谈,例如,“您有什么事情?”,此外,对从麦克风112输入的用户的发言进行声音分析,并基于所分析出的内容,从扬声器113输出某些声音。

如上所述,在本实施方式中,机器人100基于预先生成的slam地图1253,在所判别出的声源方向上存在人以外的声源的情况下,判别为并未被人呼唤。因此,即使在从作为人以外的声源的电视机、收音机等听到人的声音的情况下,也不转向,所以能够减少不必要的动作。所谓人以外的声源,也可以包含从电子设备的扬声器输出的声音。

另外,在上述的说明中,旋转驱动以偏航(yaw)为前提进行了说明,但即使存在其他的方向的旋转也成立。

在实施方式1中,机器人100仅是移动以接近用户p的方向,但是机器人100也可以使用slam地图1253在房间rm内移动,接近用户。

(实施方式2)

在实施方式2中,被用户p呼唤的机器人100使用slam地图1253,生成移动路径,并沿着移动路径移动。机器人100具备的结构与实施方式1相同。在以下的说明中,以实施方式2特有的结构为中心进行说明。

与实施方式1同样,假定预先生成了slam地图1253。

在实施方式2中,如图10所示,在存储部125中存储有后述的呼唤移动处理用的呼唤移动程序1256。控制部127通过执行呼唤移动程序1256,从而进行以下处理。

图11中示出在被用户p呼唤时,机器人100移动到用户p的所在地的处理(呼唤移动处理)的流程图。另外,因为与上述的呼唤响应处理相同,所以在此,假定检测到给定的大小的声音,并判别为所检测到的声音是人的声音,来进行说明。

控制部127使用进行摄像而得到的图像和slam地图1253来执行本机位置推定的处理(步骤s201)。关于本机位置推定的处理,由于已经参照图9进行了说明,故而在此省略说明。

接着,控制部127执行通过slam法来推定用户p的面部的位置的处理(面部位置推定的处理)(步骤s202)。参照图12来说明面部位置推定的处理。控制部127控制摄像机111进行摄像,从摄像得到的图像提取二维特征点(2d特征点)(步骤s20201)。在特征点提取中使用sift、surf等算法。

控制部127提取在步骤s20201中提取出的2d特征点当中的、摄像得到的图像的面部的区域内的特征点(2d面部特征点)(步骤s20202)。在面部区域内没有特征点的情况下,将面部部分检测的结果用作特征点。

控制部127判别在面部位置推定的处理开始后摄像得到的图像是否为两张以上(步骤s20203)。若判别为不足两张(步骤s20203:“否”),则控制部127控制行走部126,使本机移动给定的距离(步骤s20208),并再次返回至步骤s20201。

另一方面,在判别为摄像得到的图像为两张以上的情况下(步骤s20203:“是”),控制部127取得两个图像的2d面部特征点的对应(步骤s20204)。

控制部127判别在步骤20202中提取出的对应的2d面部特征点的个数是否为阈值以上(步骤s20205)。在判别为小于阈值的情况下(步骤s20205:“否”),控制部127控制行走部126,使本机移动给定的距离(步骤s20208),并再次返回至步骤s20201。

另一方面,在判别为两个图像的对应的2d面部特征点的个数为阈值以上的情况下(步骤s20205:“是”),控制部127推定两个图像间的姿势(步骤s20206)。

具体而言,针对在两个图像之间对应的2d面部特征点的二维坐标(2d坐标)、和两个图像各自的拍摄位置(拍摄时的本机的位置)之间的距离,使用二视图运动恢复结构法(two-viewstructurefrommotion法),来推定两个图像间的姿势(取得各个图像的位置的差分(平移向量t)以及朝向的差分(旋转矩阵r))。

接着,控制部127推定在两个图像之间对应的2d面部特征点的三维坐标(3d坐标)(步骤s20207)。具体而言,这使用在步骤s20206中计算出的表示两个图像间的姿势的值和在两个图像间对应的2d面部特征点的2d坐标来推定。以上为面部位置推定的处理。

再次参照图11。前进至步骤s203,控制部127进行从本机位置到用户p的面部位置的路径的生成(步骤s203)。

在实施方式2中,使用在slam地图1253中附加了表示在房间rm内的各个位置处存在障碍物的概率的障碍物信息的随机变量的地图。关于障碍物信息的随机变量的值,该值越高,则表示在该位置处存在障碍物的可能性越高。

关于路径的生成,首先,从存储部125读出slam地图1253,在slam地图1253上随机配置节点(追加节点信息)。此时,在与本机(机器人100)相同的高度配置节点。此外,在以障碍物信息的随机变量为阈值以上的位置(点)为中心的一定的范围内,不配置节点。

另外,高度使用重力方向的偏移值(offsetvalue)来推定。具体而言,根据机器人100过去移动过的位置进行面推定,求取法线向量(重力方向),求取本机位置与法线向量的内积并设为本机位置的高度。路径中的节点也同样地求取值。若表示本机位置的高度的值和表示节点的高度的值之差在规定的阈值以内,则视为本机位置的高度和节点的高度相同。

关于所配置的节点,与在以该节点为中心的一定的范围内存在的其他节点相连。对于随机配置的所有节点进行该处理。以此方式,生成图形结构(graphstructure)。

分别选择在通过步骤s201的本机位置推定而推定出的本机的位置的最近处存在的节点、在通过步骤s202的面部位置推定而推定出的用户p的面部的最近处存在的节点。然后,通过迪杰斯特拉法(dijkstra′salgorithm),来求取所选择的两个节点间的最短路径。

然后,按照所求出的最短路径进行移动(步骤s204)。以上为实施方式2所涉及的呼唤移动处理。

(变形例)

在实施方式2的呼唤移动处理中,在两个图像间的姿势的推定(图12的步骤s20206)中,使用了二视图运动恢复结构法(two-viewstructurefrommotion法)。姿势的推定并不限于此。

也可以像上述的本机位置推定的处理中的姿势的推定(图9的步骤s10405)所进行的那样来推定姿势。该方法的精度较高且计算所需的时间也较少。此外,或者,也可以假定被摄体的面部的尺寸为标准的面部尺寸,使用面部检测结果(面部的尺寸、位置)与摄像机参数(视场角、焦点距离),来推定本机与面部间的相对姿势,并使用通过slam法而求出的本机的姿势在slam地图上的推定结果,来计算出在slam地图上的面部的姿势。此外,或者,也可以在机器人100设置距离传感器,使用距离传感器来测定机器人100与用户p的面部之间的距离。

上述的实施方式2的使用slam地图1253的移动处理也能够应用于实施方式1中的呼唤响应处理时的图6的步骤s110的移动时。

作为提高slam地图1253的精度的方法,具有如下这样的方法。在帧数据库中蓄积了某种程度的摄像得到的图像的数据时,对3d位置并非已知的特征点的对应进行重新搜索,并计算3d位置。

此外,能够进行光束平差(bundleadjustment)处理,来提高关键帧姿势和map点的3d位置的精度。所谓光束平差处理,是同时推定摄像机姿势(关键帧姿势)和map点的3d位置的非线性优化法。通过使用该方法,从而能够进行在将slam地图上的点投影到图像上时产生的误差成为最小的优化。

此外,也可以进行闭环(loopclosing)处理。所谓闭环处理,是指在识别出返回到以前曾经来过的相同场所的情况下,使用以前处于在该场所时的姿势的值与当前的姿势的值的偏差,对从以前来时到当前的轨迹中的图像、关联的map点的3d位置进行修正。

控制部127也可以判别从声源发出的声音是否为朝向机器人100的声音,仅在判别为是朝向机器人100的声音的情况下,进行声音检测,并判别该声音是否为人的声音,在判别为是人的声音的情况下,通过上述处理来进行转向判定。在该情况下,例如,作为麦克风112中包含的13个麦克风而使用单一指向性麦克风,从而能够高精度地判别从声源发出的声音的方向。

本发明并不限定于上述实施方式,当然能够进行在不脱离本发明的主旨的范围内的各种修改。

在上述的实施方式中,说明了机器人100和用户p都在室内(房间rm内)的例子,但即使在室外也同样地,能够采用本发明,从而机器人进行转向判定。

在上述的面部检测中,依次移动金字塔图像的层次来进行了面部检测,但也可以构成为,控制部127基于麦克风112的输入声音的大小(振幅的大小),推定从机器人100到声源的距离,并基于所推定的距离,不对金字塔图像的所有层次进行面部检测。例如,在判别为用户p在附近的情况下,无需使用缩小到某种程度的金字塔图像。

此外,控制部127也可以将麦克风112的输入声音与此时的是否为人的判别结果一起存储到存储部125中。这是因为再次检测到相同声音时,是否为人的判别会变得容易。

此外,用户也可以预先存储可能成为机器人100的麦克风112的输入的人以外的声音的数据。例如,对讲机的声音、电话的拨叫声音。由此,机器人100在听见该声音的情况下,能够判别是人以外。

此外,在机器人100处于室外的情况下,优选预先对周围进行摄像,并对摄像得到的图像进行图像识别。这是因为,在室外的情况下,设想能够成为声源的物体的数量与室内相比增多。例如,若是在公园内,则有时会设置有大型扬声器,通过预先从摄像图像对大型扬声器进行图像识别并存储为声源,从而机器人100容易进行转向判定。

在上述的实施方式中,说明了判别声音产生源是否为人的结构。但是,所判别的特定的声音产生源并不仅限于人。在声音产生源的判别的对象中,能够包含搭载了像人那样根据自己的意愿说话的人工智能的机器人。通过采用本发明,除了人之外,对于搭载了像人那样根据自己的意愿说话的人工智能的机器人的声音,也能够同样地判别。

此外,本发明所涉及的面部识别装置能够不依赖专用的系统而使用通常的计算机系统来实现。例如,也可以通过将用于执行上述动作的程序保存在计算机系统能够读取的记录介质(cd-rom(compactdiscreadonlymemory,光盘只读存储器),mo(magneto-optical,磁光盘)等)中而分发到与网络连接的计算机,将该程序安装于计算机系统,从而构成执行上述处理的面部识别装置。

此外,向计算机提供程序的方法是任意的。例如,程序也可以上传到通信线路的公告板(bbs(bulletinboardsystem)),经由通信线路而发布到计算机。此外,程序也可以通过利用表示程序的信号对载波进行了调制的调制波来传送,由接收到该调制波的装置对调制波进行解调来复原程序。然后,计算机起动该程序,在os(operatingsystem)的控制下,与其他的应用同样地执行。由此,计算机作为执行上述处理的面部识别装置而发挥功能。

本发明在不脱离本发明的广义的精神和范围的情况下,能够实现各种各样的实施方式以及变形。此外,上述的实施方式用于对本发明进行说明而并非限定本发明的范围。即,本发明的范围并非由实施方式而是由权利要求书来示出。而且,在权利要求书的范围内以及与其等同的发明的意义的范围内实施的各种变形均视为本发明的范围内。

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