JP6673276B2 - 音声検出装置、音声検出方法、及びプログラム - Google Patents

音声検出装置、音声検出方法、及びプログラム Download PDF

Info

Publication number
JP6673276B2
JP6673276B2 JP2017062756A JP2017062756A JP6673276B2 JP 6673276 B2 JP6673276 B2 JP 6673276B2 JP 2017062756 A JP2017062756 A JP 2017062756A JP 2017062756 A JP2017062756 A JP 2017062756A JP 6673276 B2 JP6673276 B2 JP 6673276B2
Authority
JP
Japan
Prior art keywords
sound source
sound
voice
detected
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017062756A
Other languages
English (en)
Other versions
JP2018165759A5 (ja
JP2018165759A (ja
Inventor
敬輔 島田
敬輔 島田
浩一 中込
浩一 中込
崇史 山谷
崇史 山谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2017062756A priority Critical patent/JP6673276B2/ja
Priority to US15/885,031 priority patent/US10424320B2/en
Priority to CN201810198308.XA priority patent/CN108665891B/zh
Publication of JP2018165759A publication Critical patent/JP2018165759A/ja
Publication of JP2018165759A5 publication Critical patent/JP2018165759A5/ja
Application granted granted Critical
Publication of JP6673276B2 publication Critical patent/JP6673276B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/24Speech recognition using non-acoustical features
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/22Interactive procedures; Man-machine interfaces
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/227Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of the speaker; Human-factor methodology
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L2025/783Detection of presence or absence of voice signals based on threshold decision

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Manipulator (AREA)
  • Toys (AREA)
  • Studio Devices (AREA)
  • Computer Vision & Pattern Recognition (AREA)

Description

本発明は、音声検出装置、音声検出方法、及びプログラムに関する。
人間、動物等に模した形態を有し、人間と会話等のコミュニケーションをすることができるロボットが知られている。このようなロボットには、自機に搭載されたマイクの出力に基づいてロボットの周囲に発生した音を検出し、人の声であると判別すると、人がいる方向にロボットの顔の向きあるいは体の向きを変え、その人に話しかける、手を振る等の動作をするものもある。
特許文献1には、ロボットが、マイクロホンに閾値以上の振幅の音が入力されることにより、音イベントが発生したことを検出し、音源方向を推定して、推定した音源方向に振り向くことが記載されている。
特開2003−266351号公報
Andrew J.Davison, "Real−Time Simultaneous Localization and Mapping with a Single Camera", Proceedings of the 9th IEEE International Conference on Computer Vision Volume 2, 2003, pp.1 403−1410 Richard Hartley, Andrew Zisserman, "Multiple View Geometry in Computer Vision", Second Edition, Cambridge. University Press, March 2004, chapter9 Csurka,G.,Dance,C.R.,Fan,L.,Willamowski,J.and Bray,C.:Visual categorization with bags of keypoints,ECCV International Workshop on Statistical Learning in Coputer Visin(2004)
しかしながら、特許文献1に記載されているロボットは、音イベントを検出すると振り向くので、実際にロボットに対して人から発せられた音だけではなく、例えば、テレビ、ラジオ等の電子機器のスピーカから出力される音声にも反応してしまうことが予想される。
本発明は、上記実情を鑑みてなされたものであり、ロボットに実際の人から直接発せられた音声か電子機器のスピーカから出力された音声かを判別させることで、ロボットの無駄な動作を減らすことを目的とする。
上記目的を達成するため、本発明に係る音声検出装置は、
音声を検出する音声検出手段と、
前記音声検出手段により検出された音声である検出音声の音声発生源が特定の音声発生源であるか否かを判別する第1判別手段と、
前記第1判別手段の判別結果に基づいて自機を制御する制御手段と、
前記検出音声が発生した方向を判別する第2判別手段と、
前記特定の音声発生源以外の他の音声発生源の位置を示す情報を含む音声発生源位置情報を記憶した記憶部と、
前記第2判別手段による判別結果と前記記憶された音声発生源位置情報とに基づいて、前記自機に対する前記検出音声が発生した方向に前記他の音声発生源が存在するか否かを判別する第3判別手段と、を備え、
前記制御手段は、前記第3判別手段により前記検出音声が発生した方向に前記他の音声発生源が存在しないと判別されている場合に、前記自機の動作を制御する
本発明によれば、ロボットに実際の人から直接発せられた音声か電子機器のスピーカから出力された音声かを判別させることで、ロボットの無駄な動作を減らすことができる。
本発明の実施の形態1にかかるロボットの外観図である。 ロボットの頭の自由度を説明するための図である。 ロボットの構成を示すブロック図である。 部屋内のロボットとユーザの位置の一例を示す図である。 地図作成処理のフローチャートである。 呼びかけ応答処理のフローチャートである。 音源定位の処理のフローチャートである。 仮の音源の位置を説明するための図である。 自機位置推定の処理のフローチャートである。 実施の形態2にかかるロボットの記憶部の構成を示すブロック図である。 呼びかけ移動処理のフローチャートである。 顔位置推定の処理のフローチャートである。
(実施の形態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(Simultaneous Localization And Mapping)法で作成される部屋の地図であるSLAM地図1253、撮像画像の特徴点等を格納するフレームデータベース1254、後述のラベリングの音声発生確率が定義された音声発生確率データベース1255が含まれる。
足回り部126は、胴体120の下側に設けられた4つの車輪(ホイール)を含む。図1に示すように、4つの車輪のうち、2つが胴体120の前側に、残り2つが後ろ側に(不図示)が配置されている。車輪として、例えば、オムニホイール、メカナムホイールが使用される。後述の制御部127が足回り部126の車輪を回転させると、ロボット100は移動する。足回り部126は、前述の首関節121とともに、後述の制御部127と協働して、ロボット100の各部位の動作を制御することで、自機の位置、姿勢の少なくとも一方を変える制御手段としての役割を果たす。
さらに、足回り部126の車輪にはロータリエンコーダが設けられている。ロータリエンコーダで車輪の回転数を計測し、車輪の直径や車輪間の距離等の幾何学的関係を利用することで並進移動量及び回転量を計算できる。
図3を参照する。制御部127は、CPU(Central Processing Unit)、RAM(Random Access Memory)等で構成される。制御部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法は、実空間の地図を作成するための手法のひとつである。この手法では、カメラの撮影する動画像の複数フレームから、同一の特徴点を追跡することで、自機の3次元位置(カメラ位置)と特徴点の3次元位置(これが集まって地図の情報を構成する)とを交互または同時に推定する処理を行う。SLAM法の詳細は、非特許文献1に記載されている。
以下、図5のフローチャートを参照しながら、制御部127が行うSLAM法を採用した地図作成処理を説明する。制御部127は、記憶部125に記憶されている地図作成プログラム1252を実行することによって、以下の処理を実現する。
まず、制御部127は、撮像画像を取得し、撮像画像の二次元特徴点(2D特徴点)を抽出する(ステップS11)。2D特徴点とは、画像中のエッジ部分など、画像内の特徴的な部分であり、SIFT(Scale-Invariant Feature Transform)やSURF(Speed-Up Robust Features)等のアルゴリズムを用いて取得することができる。
具体的には、ステップS11において、制御部127は、カメラ111を制御して、撮像を行う。そして、撮像した画像から2D特徴点を抽出する。さらに、前述のようにオドメトリとしても機能する制御部127は、足回り部126のロータリエンコーダを使用して、自機(ロボット100)の現在位置を計測する。制御部127は、2D特徴点と、自機の現在位置と、を撮像画像と対応づけて記憶部125に記憶する。
制御部127は、地図作成処理の開始後に撮像した画像が2枚以上であるか否かを判別する(ステップS12)。2枚未満であると判別すると、(ステップS12;Nо)、制御部127は、足回り部126を制御して、自機を所定の距離だけ移動し(ステップS19)、再びステップS11へ戻る。
一方、撮像した画像が2枚以上であると判別した場合(ステップS12;Yes)、制御部127は、2つの画像の2D特徴点の対応を取得する(ステップS13)。2つの画像は、例えば、今回撮像した画像と、直近に撮像した画像である。
ステップS13で取得した2つの画像の対応する特徴点(対応特徴点)の個数が、閾値未満であるか否かを判別する(ステップS14)。これは、取得した特徴点の個数が少ないと、後述のTwo−view Structure from Motion法での計算ができないためである。
2つの画像の対応する特徴点の個数が、閾値未満であると判別した場合(ステップS14;No)、制御部127は、足回り部126を制御して、自機を所定の距離だけ移動し(ステップS19)、再びステップS11へ戻る。
一方、2つの画像の対応する特徴点の個数が、閾値以上であると判別した場合(ステップS14;Yes)、制御部127は、2つの画像間の姿勢を推定する(ステップS15)。
具体的には、ステップS15において、Two−view Structure from Motion法を用いて、2つの画像の間で対応する2D特徴点の2次元座標(2D座標)と、2つの画像のそれぞれの撮影位置(撮影時の自機の位置)の間の距離とから、2つの画像間の姿勢(それぞれの画像を取得した位置の差分(並進ベクトルt)及び向きの差分(回転行列R))を推定する。この推定は、非特許文献2に記載されているように、エピポーラ拘束式により、対応する特徴点から基礎行列Eを求め、基礎行列Eを並進ベクトルtと回転行列Rとに分解することによって得られる。
続いて、制御部127は、2つの画像の間で対応する2D特徴点(2Dの対応特徴点)の3次元座標(3D座標)を推定する(ステップS16)。具体的には、これは、ステップS15で算出した2つの画像間の姿勢を表す値と、2つの画像の間で対応する2D特徴点の2D座標と、を用いて推定する。
制御部127は、ステップS16で推定した推定値をデータベースに登録する(ステップS17)。具体的には、制御部127は、ステップS16で求めた「2Dの対応特徴点の3D座標(X、Y、Z)」と、「2D特徴点の特徴量」(例えばSIFT等で得た特徴量)と、を記憶部125のSLAM地図1253に登録する。
また、制御部127は、記憶部125のフレームデータベース1254に、画像の情報として、「SLAM地図内での画像の姿勢」(その画像を撮像したときの自機のSLAM座標内での位置(並進ベクトルt)及び向き(回転行列R))と、「抽出した全ての2D特徴点」と、「すべての2D特徴点の中で3D位置(3D座標)が既知の点」と、「キーフレーム自体の特徴」と、を記憶部125のフレームデータベース1254に登録する。
ここで、キーフレームとは、処理の対象となる撮像画像のことである。キーフレーム自体の特徴とは、キーフレーム間の画像類似度を求める処理を効率化するためのデータであり、画像中の2D特徴点のヒストグラム等を用いてもよいし、画像自体を「キーフレーム自体の特徴」としてもよい。
制御部127は、処理が終了であると判別すると(ステップS18;Yes)、地図作成処理を終了する。一方、処理が終了でないと判別すると(ステップS18;No)、足回り部126を制御して、自機を所定の距離だけ移動し(ステップS19)、再びステップS11へ戻る。以上が地図作成処理である。
さらに、上述のように作成したSLAM地図1253に、部屋RM内のそれぞれの位置における障害物が存在する確率を示す障害物情報として確率変数を付加してもよい。障害物情報の確率変数の値は、その値が高いほど、その位置に障害物がある可能性が高いことを表している。障害物情報の確率変数は、例えば、SLAM地図1253の作成処理におけるデータベース登録(図5のステップS17)のタイミングで、SLAM地図1253に付加することができる。
さらに、本実施の形態においては、上述のように作成したSLAM地図1253に、人以外の音声発生源情報を付加したものを使用して、ロボット100が、検出した音が人であるか否かを判別する。
人以外の音声発生源情報は、例えば、SLAM地図1253の作成処理におけるデータベース登録(図5のステップS17)のタイミングで、SLAM地図1253に付加することができる。
音声発生源の特定は、例えば以下のような方法で行う。SLAM地図1253の作成時にロボット100が部屋RM内を動き回り撮像した画像に対して、一般画像認識(画像に含まれる物体を一般的な名称で認識する処理)を行い、音声発生源か否かのラベリングする方法を用いてもよい。画像内で音声発生源としてラベリングされた領域に存在する2D特徴点に対応する地図内の地点に対して第1の値(第2の値より大きい値)を登録する。また、それ以外の2D特徴点に対応する地点には、第2の値(第1の値より小さい値)を登録する。具体的には、ロボット100が通過した地点には、第2の値を登録し、ロボット100が通過した際に、接触センサ、距離センサ等により障害物に接触したと判別した地点には、第1の値を登録する。
上述の例では、確率変数を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後に、部屋R内を動き回り、部屋RM内にある物体を指さしして、ユーザに、当該物体が音声発生源であるか等を尋ねてもよい。ユーザの回答に基づく音声発生源の情報を、SLAM地図1253に追加することができる。
あるいは、SLAM地図1253後に、部屋RM内の物体を撮像し、撮像画像を表示装置に表示し、ユーザに、当該物体が音声発生源であるか等を尋ねてもよい。この場合も、ユーザの回答に基づく音声発生源の情報を、SLAM地図1253に追加することができる。
次に、音を検出した場合に、地図を使用して、検出した音の音源が人であるか否かを判別し、判別結果に応じて応答する呼びかけ応答処理を説明する。呼びかけ応答処理の開始に先立って、上述の地図作成処理はすでに実行されているものとし、SLAM地図1253、フレームデータベース1254、音声発生確率データベース1255には、適宜の情報が登録済みであるとする。
制御部127は、記憶部125の呼びかけ応答プログラム1251を実行することで、以下の呼びかけ応答処理を行い、検出した音声発生源が特定の音声発生源(ここでは人間)であるか否かを判別する判別手段として機能する。
図6のフローチャートを参照しながら、呼びかけ応答処理を説明する。制御部127は、ロボット100の周辺である程度の大きさの音を検出したか否かを判別する(ステップS101)。具体的には、制御部127は、1つ以上のマイク112に所定の閾値以上の振幅の音が入力されたか否かを判別する。なお、所定の大きさとは、マイク112の感度によるものとする。
マイク112により所定の大きさの音が検出できない場合(ステップS101;No)、制御部127は、音を検出するまで待ち受ける。
一方、ある程度の大きさの音を検出したと判別した場合(ステップS101;Yes)、制御部127は、マイク112により検出した音が人間の声か否かを判別する(ステップS102)。具体的には、制御部127は、ステップS101で検出した音が特定の周波数帯域の音であるか否かを判別する。ステップS101で検出した音が人間の声でない場合(ステップS102;No)、制御部127はステップS101へ戻り、音を検出するまで待ち受ける。
一方、人間の声であると判別すると(ステップS102;Yes)、制御部127は、音源の位置(ここではユーザPの声が発せられた位置)を求めるため、音声定位を行う(ステップS103)。ここでは、音源の位置を推定するため、音源定位のひとつの手法であるMUSIC(MUltiple SIgnal Classification)を採用することとする。なお、音源定位の最中に音源であるユーザPは移動せず、静止しているものとする。
図7を参照して音源定位を説明する。まず、マイク112に入力された音声を時間周波数変換する(ステップS10301)。ここでは、時間周波数変換として、STFT(Short−Time Fourier Transform)(短時間フーリエ変換)を行う。
音源数をNとすると、第n番目の音源の信号Sは、下記式(1)で表せる。
(ω,f)(n=1,2,…,N) …(1)
ωは角周波数、fはフレーム番号である(以下の説明でも同様)。
マイク112で観測される信号は、マイク112の数をMとすると、下記式(2)で表せる。
(ω,f)(m=1,2,…,M) …(2)
音源から出た音は、空気を伝わってマイク112で観測されるが、そのときの伝達関数をHnm(ω)とすると、音源の信号を表す数式に、伝達関数を乗じることで、マイク112で観測される信号を求めることができる。m番目のマイク112で観測される信号X(ω,f)は下記式(3)のように表される。
Figure 0006673276
ロボット100は、マイク112を複数有しているので、マイク112全体で観測される信号x(ω,f)は下記式(4)で表すことができる。
Figure 0006673276
同様に、全音源の信号s(ω,f)も下記式(5)で表すことができる。
Figure 0006673276
同様に、第n番目の音源の伝達関数h(ω)は下記式(6)で表すことができる。
Figure 0006673276
全ての伝達関数を下記式(7)のように表記する。
h(ω)=[h(ω),h(ω),…h(ω)] …(7)
上記の式(7)で表される伝達関数を、上述の式(3)に適用すると、下記式(8)のように表される。
x(ω,f)=h(ω)s(ω,f) …(8)
(ω)は音源位置毎に独立であり、ある程度のフレーム数(例えば、フレーム数をLとする))で見ればS(ω,f)は無相関とみなせるので、x(ω,f)は音源数NをRANKとする超平面を構成する。このとき、距離で正規化した音量が大きな音源の伝達関数方向に分布が広がりやすい。そこで、部分空間とゼロ空間に分解することを考える。
再び図7を参照する。次の式(9)に示すように相関行列を計算する(ステップS10302)。ここで、*は複素共役転置を意味する。
Figure 0006673276
続いて、固有値分解する(ステップS10303)。ここで、固有値λm(ω,f)と固有ベクトルem(ω,f)は固有値が降順になるように並べ替えられているものとする。
原理的には、h(ω)は部分空間の固有ベクトルem(ω,f)(m=1〜N)の重み付け加算から復元できるが、実際には復元が困難であるためゼロ空間を構成する固有ベクトルem(ω,f)(m=N+1〜M)がh(ω)と直交することを使って音源定位を実現する。
しかし、音源であるユーザ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)。
Figure 0006673276
ここで、式(10)の分母は、ノイズや誤差、STFTの周波数帯間の信号漏洩の影響等からゼロにはならない。また、音源の方向とあらかじめ決めた角度θ(θ1、θ2、…θN)のいずれかが近い場合、つまりh(ω)とhθ(ω)が近い場合、式(10)の値は極端に大きなものになる。図8に示す例では、音源である人と仮の音源2の位置が近いため、θ2の伝達関数を使用した場合、式(10)の値が極端に大きくなることが想定される。
そして、統合したMUSICのパワーを求めるため、式(11)に示すように周波数帯毎のMUSICスペクトルを重み付け加算する(ステップS10305)。
Figure 0006673276
重み付け係数は、固有値λm(ω,f)が大きいほど大きくすれば、S(ω,f)に含まれるパワーに応じた計算をすることもできる。この場合はS(ω,f)に殆どパワーがない場合の悪影響を軽減できる。
続いて、パワースペクトルから適切なピーク(極大値)を選択する(ステップS10306)。具体的には、まず、複数のピークを求め、その中から適切なピークを選択し、選択したピークにおけるθを音源方向とする。ここで、ピークを求めるのは以下のような理由による。本来の音源方向のθのパワーが必ずしも一番大きいとは限らず、本来の音源方向に近いθのパワーは総じて大きくなるので、音源方向は複数のピークの何れかに正解があるからである。
また、テレビが点いている、ドアホンが鳴る等の部屋RM内に他の音源がある場合でも、多くの場合、人は、テレビ、ドアホン等の周囲の音より大きな声でロボット100に呼びかけると考えられる。よって、人の声のパワーの方が、人以外のテレビ、ドアホン等の音源から発せられる音のパワーより大きくなることが想定される。よって、単純にパワーが最大となる仮の音源位置を示すθを音源方向として選択しても問題はない。ただし、周囲の環境などによっては、パワーが最大となる仮の音源位置ではなく、パワーが2番目あるいはそれ以降となる仮の音源位置を、音源方向と選択することが適切な場合もある。このようにして、制御部127は、音源方向、ここでは、ロボット100の位置から見たユーザPがいる方向、を判別することができる。
音源定位の処理は以上である。ここでは、平面を仮定して説明したが、3次元を仮定しても上記説明は成り立つ。
再び図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;No)、制御部127は、足回り部126を制御して、自機を所定の距離だけ移動し(ステップS10406)、再びステップS10401へ戻る。
一方、ステップS10402で抽出した対応特徴点の個数が、閾値以上であると判別した場合(ステップS10403;Yes)、制御部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)とは理想的には一致する。
(uxi vxi 1)’〜A(R|t)(Xi Yi Zi 1)’ …(12)
しかし、実際には(Xi,Yi,Zi)にも(ui,vi)にも誤差が含まれているため、(uxi,vxi)と(ui,vi)とが一致することはめったにない。そして、未知数はRとt(3次元空間ではそれぞれ3次元となり、3+3=6が未知数の個数である)だけなのに、数式は対応特徴点の個数の2倍存在する(対応特徴点一つに対して、フレーム座標のu,vそれぞれに対する式が存在するため)ことになるため、過剰条件の連立一次方程式になり、上述したように最小二乗法で求めることになる。
具体的には、制御部127は、以下の式(13)のコスト関数E1を最小化する姿勢(並進ベクトルt及び回転行列R)を求める。
Figure 0006673276
このように求めた値が、SLAM法で求めたSLAM座標での自機の姿勢(並進ベクトルt及び回転行列Rで表される自機の位置及び向き)を示す値である。このようにして算出した値により自機の姿勢が推定される。以上が自機位置推定の処理である。
再び、図6を参照する。制御部127は、ステップS104の自機位置の推定の処理が終わると、ステップS105へ進み、SLAM地図1253と音声発生確率データベース1255とを参照して、ステップS104で推定した自機位置から、ステップS103で求めた音源方向に、人以外の音声発生源が存在する確率を取得する(ステップS105)。ここでは、音源方向の各点の確率の平均を求め、求めた平均を人以外の音声発生源が存在する確率としてもよい。あるいは、音源方向の各点の確率について最大値を人以外の音声発生源が存在する確率としてもよい。
次に、制御部127は、ステップS105で求めた人以外の音声発生源が存在する確率が閾値以上であるか否かを判別する(ステップS106)。人以外の音声発生源が存在する確率が閾値以上であると判別した場合(ステップS106;Yes)、制御部127は、音源方向の音源は人以外であると判別して、首関節121を回転駆動させず、再びステップS101へ戻り、音の入力を待ち受ける。
一方、人以外の音声発生源が存在する確率が閾値未満であると判別した場合(ステップS106;No)、制御部127は、ステップS107へ進む。
続いて制御部127は、頭110の回転をさせるため、首関節121を回転駆動させる(ステップS107)。ここで、制御部127は、ロボット100の頭110の正面(カメラ111のレンズ面)が音源(ユーザP)の方向に向くまで、頭110を回転する。具体的には、制御部127は、記憶部125に記憶されている音源定位により求められた角度θに基づいて、求めた角度だけ頭110を回転し、その後、回転駆動を停止する。このようにして、カメラ111のレンズ面を音源(ユーザP)がいる方向に向ける。
回転駆動を停止した後、制御部127は、顔検出の処理を実行する(ステップS108)。まず、制御部127は、カメラ111を制御して撮像し、撮像した画像に対して以下の処理を施すことで、顔検出処理を実行する。
制御部127は、まず、ピラミッド画像を作成する。ピラミッド画像とは、元画像を一定の比率で縮小を繰り返して作成した一連の画像群であり、ピラミッド画像の各階層に対して、固定サイズの顔検出器を適用することで様々なサイズ(つまり距離に相当)の顔を検出することができる。ここでは、回転によるカメラの見え方は対象までの距離によって変わるので、ピラミッド画像を使用して顔検出を行う。
まず、顔探索対象を最初の階層に設定する。ここでは縮小前の元の画像とする。最初の検出窓を設定する。初期位置は例えば左上の隅とする。設定した検出窓に対して、固定サイズの顔検出器を適用する。この階層でのスライドによる探索が完了したかを判定する。スライドによる探索が完了でないなら、検索窓をスライドさせ、再度顔検出を行う。スライドによる探索が完了ならば、ピラミッド画像のすべての階層での処理が完了したかの判定を行う。すべての階層での処理が完了でないなら、階層を移動し、移動先の階層でもスライドによる顔検出を行う。すべての階層での処理が完了したならば、顔検出の処理を終了する。
なお、ロボット100から近い顔画像は、画角に入りきらない場合があることと、全体の計算負荷の割合が小さいことを考慮して、縮小率の大きい階層の顔探索はしないほうがより望ましい。
顔検出処理により、撮像画像から顔を検出することができなかった場合(ステップS108;Nо)、制御部127は、再びステップS101に戻る。
一方、顔検出が成功すると(ステップS108;Yes)、続いて、制御部127は、ユーザPがロボット100に注目しているかどうかを判別する(ステップS109)。具体的には、制御部127は、カメラ111を制御して、ユーザPを撮像し、撮像した画像からユーザPの顔が、ロボット100の方を向いているか否かを判別する。ユーザPがロボット100に注目していないと判別すると(ステップS109;No)、再びステップS101へ戻り、音の入力を待ち受ける。
一方、ユーザPの顔が、ロボット100の方を向いていると判別すると(ステップS109;Yes)、制御部127は、ユーザPに近づくように所定の距離だけ移動し(ステップS110)、ユーザPとの距離が決められた距離以下となったかを判別する(ステップS111)。このユーザPとロボット100との間の決められた距離は、ロボット100が、ユーザPが発声する内容を音声認識することができる程度の距離である。制御部127は、ロボット100とユーザPとの距離が決められた距離以下ではないと判別した場合に(ステップS111;No)。再びステップS110に戻る。
一方、制御部127は、ユーザPとの距離が所定の距離となったと判別した場合に(ステップS111;Yes)、ユーザ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は、顔位置推定の処理開始後に撮像した画像が2枚以上であるか否かを判別する(ステップS20203)。2枚未満であると判別すると、(ステップS20203;Nо)、制御部127は、足回り部126を制御して、自機を所定の距離だけ移動し(ステップS20208)、再びステップS20201へ戻る。
一方、撮像した画像が2枚以上であると判別した場合(ステップS20203;Yes)、制御部127は、2つの画像の2D顔特徴点の対応を取得する(ステップS20204)。
制御部127は、ステップ20202で抽出した対応する2D顔特徴点の個数が、閾値以上であるか否かを判別する(ステップS20205)。閾値未満であると判別した場合(ステップS20205;No)、制御部127は、足回り部126を制御して、自機を所定の距離だけ移動し(ステップS20208)、再びステップS20201へ戻る。
一方、2つの画像の対応する2D顔特徴点の個数が、閾値以上であると判別した場合(ステップS20205;Yes)、制御部127は、2つの画像間の姿勢を推定する(ステップS20206)。
具体的には、2つの画像の間で対応する2D顔特徴点の2次元座標(2D座標)と、2つの画像のそれぞれの撮影位置(撮影時の自機の位置)の間の距離と、に対して、Two−view Structure from Motion法を用いて、2つの画像間の姿勢(それぞれの画像を取得した位置の差分(並進ベクトルt)及び向きの差分(回転行列R))を推定する。
続いて、制御部127は、2つの画像の間で対応する2D顔特徴点の3次元座標(3D座標)を推定する(ステップS20207)。具体的には、これは、ステップS20206で算出した2つの画像間の姿勢を表す値と、2つの画像の間で対応する2D顔特徴点の2D座標と、を用いて推定する。以上が、顔位置推定の処理である。
図11を再び参照する。ステップS203に進み、制御部127は、自機位置からユーザPの顔位置までの経路の作成を行う(ステップS203)。
実施の形態2においては、SLAM地図1253に、部屋RM内のそれぞれの位置における障害物が存在する確率を示す障害物情報の確率変数を付加したものを使用する。障害物情報の確率変数の値は、その値が高いほど、その位置に障害物がある可能性が高いことを表している。
経路の作成は、まず、記憶部125からSLAM地図1253を読み出し、SLAM地図1253上にランダムにノードを配置する(ノード情報を追加する)。このとき、自機(ロボット100)と同じ高さにノードを配置する。また、障害物情報の確率変数が閾値以上である位置(点)を中心とした一定の範囲内には、ノードを配置しない。
なお、高さは、重力方向のオフセット値を用いて推定する。具体的には、ロボット100が過去に移動した位置から面推定を行い、法線ベクトル(重力方向)を求めて、自機位置と法線ベクトルの内積を求め自機位置の高さとする。経路中のノードも同様にして値を求める。自機位置の高さを表す値と、ノードの高さを表す値の差が決められた閾値以内であれば、自機位置の高さとノードの高さが同じであるとみなす。
配置したノードについて、当該ノードを中心とした一定の範囲内に存在する他のノードとをつなぐ。これを、ランダムに配置した全てのノードについて行う。このようにして、グラフ構造を作る。
ステップS201の自機位置推定で推定した自機の位置の一番近くに存在するノード、ステップS202顔位置推定で推定したユーザPの顔の一番近くに存在するノード、をそれぞれ選択する。そして、ダイクストラ法により、選択した2つのノード間の最短経路を求める。
その後、求めた最短経路に従って、移動する(ステップS204)。以上が、実施の形態2にかかる呼びかけ移動処理である。
(変形例)
実施の形態2の呼びかけ移動処理では、2つの画像間の姿勢の推定(図12のステップS20206)に、Two−view Structure from Motion法を用いた。姿勢の推定はこれに限られない。
上述の自機位置推定の処理における姿勢の推定(図9のステップS10405)で行ったように姿勢を推定してもよい。この方法の方が、精度が高く、計算に要する時間も少ない。また、あるいは、被写体の顔のサイズが標準的な顔サイズであると仮定し、顔検出結果(顔のサイズ、位置)とカメラパラメータ(画角、焦点距離)を用いて、自機と顔間の相対的な姿勢を推定し、SLAM法により求めた自機の姿勢のSLAM地図上における推定結果を用いて、SLAM地図上における顔の姿勢を算出してもよい。また、あるいは、ロボット100に距離センサを設け、距離センサを使用して、ロボット100とユーザPの顔の間の距離を測定してもよい。
上記の実施の形態2のSLAM地図1253を使用した移動処理は、実施の形態1における呼びかけ応答処理時の、図6のステップS110の移動の際にも応用可能である。
SLAM地図1253の精度を上げる方法として、次のようなものがある。フレームデータベースにある程度の撮像した画像のデータが蓄積されたところで、3D位置が既知で無い特徴点の対応を再探索し、3D位置を計算してもよい。
また、バンドルアジャストメント処理を行い、キーフレーム姿勢とMap点の3D位置の精度を向上させることができる。バンドルアジャストメント処理とは、カメラ姿勢(キーフレーム姿勢)とMap点の3D位置とを同時に推定する非線形最適化法である。この方法を使用することで、SLAM地図上の点を、画像上に投影させたときに発生する誤差が最小になるような最適化を行うことができる。
また、ループクロージング処理を行ってもよい。ループクロージング処理とは、以前に来たことのある同じ場所に戻ってきたことを認識した場合に、以前その場所にいた時の姿勢の値と現在の姿勢の値とのずれを用いて、以前に来た時から今までの軌跡中の画像や、関連するMap点の3D位置を修正することである。
制御部127は、音源から発せられる音が、ロボット100に向けられたものか否かを判別し、ロボット100に向けられたものであると判別した場合だけ、音検出を行い、その音が人間の声であるか否かを判別し、人間の声であると判別した場合に、上述の処理により振り返り判定を行ってもよい。この場合、例えば、マイク112に含まれる13個のマイクとして単一指向性マイクを使用することで、音源から発せられる音の方向を精度良く判別することができる。
本発明は、上記実施形態に限定されず、本発明の要旨を逸脱しない部分での種々の修正は勿論可能である。
上述の実施の形態では、ロボット100、ユーザPともに屋内(部屋RM内)にいる例を説明したが、屋外であっても同様に、本発明を採用して、ロボットは振り向き判定を行うことができる。
上述の顔検出では、ピラミッド画像の階層を順次移動して、顔検出を行ったが、制御部127は、マイク112の入力音声の大きさ(振幅の大きさ)に基づいて、ロボット100から音源までの距離を推定し、推定した距離に基づいて、ピラミッド画像の全ての階層について顔検出を行わないようにしてもよい。例えば、ユーザPが近くにいると判別した場合、ある程度小さく縮小したピラミッド画像を使用する必要はない。
また、制御部127は、マイク112の入力音声を、そのときの、人か否かの判別結果とともに、記憶部125に記憶しておいてもよい。再度、同じ音を検出したとき、人か否かの判別が容易となるからである。
また、ユーザが、あらかじめ、ロボット100のマイク112の入力とないうる人以外の音のデータを記憶させてもよい。例えば、インターホンの音、電話の呼び出し音である。よって、ロボット100は、当該音声が聞こえた場合には、人以外であると判別することができる。
また、ロボット100が屋外にいる場合、あらかじめ、周囲を撮像して、撮像した画像を画像認識しておくことが好ましい。屋外の場合、音源になりうるものの数が室内に比べ多くなることが想定されるからである。例えば、公園内であれば、大型スピーカが設置されていることがあり、あらかじめ、撮像画像から大型スピーカを画像認識しておき、音源として記憶することで、ロボット100が、振り向き判定をしやすくなる。
上述の実施の形態では、音声発生源が人間であるか否かを判別する構成を説明した。しかし、判別する特定の音声発生源は、人間だけに限られない。音声発生源の判別の対象に、人間のように自らの意思で話す人工知能を搭載したロボットを含めることができる。本発明を採用することで、人間に加え、人間のように自らの意思で話す人工知能を搭載したロボットの音声についても、同様に判別することができる。
また、本発明に係る顔認識装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、ネットワークに接続されているコンピュータに、上記動作を実行するためのプログラムを、コンピュータシステムが読み取り可能な記録媒体(CD−ROM(Compact Disc Read Only Memory)、MO(Magneto−Optical)等)に格納して配布し、当該プログラムをコンピュータシステムにインストールすることにより、上述の処理を実行する顔認識装置を構成してもよい。
また、コンピュータにプログラムを提供する方法は任意である。例えば、プログラムは、通信回線の掲示板(BBS(Bulletin Board System))にアップロードされ、通信回線を介してコンピュータに配信されてもよい。また、プログラムは、プログラムを表す信号により搬送波を変調した変調波により伝送され、この変調波を受信した装置が変調波を復調してプログラムを復元するようにしてもよい。そして、コンピュータは、このプログラムを起動して、OS(Operating System)の制御のもと、他のアプリケーションと同様に実行する。これにより、コンピュータは、上述の処理を実行する顔認識装置として機能する。
この発明は、この発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この発明を説明するためのものであり、この発明の範囲を限定するものではない。すなわち、この発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。この発明の範囲内とみなされる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記)
(付記1)
音声を検出する音声検出手段と、
前記音声検出手段が検出した音声の音声発生源が特定の音声発生源であるか否かを判別する判別手段と、
前記判別手段の判別結果に基づいて自機を制御する制御手段と、
を備える音声検出装置。
(付記2)
前記制御手段は、前記判別手段が、前記音声検出手段が検出した音声の音声発生源が前記特定の音声発生源であると判別した場合、自機の位置、姿勢の少なくとも一方を変えるよう自機を制御する、
付記1に記載の音声検出装置。
(付記3)
撮像部と、
前記特定の音声発生源以外の音声発生源であって、登録された音声発生源の位置を示す情報を含む音声発生源位置情報があらかじめ記憶された記憶部と、
をさらに備え、
前記判別手段は、前記音声検出手段が検出した音声の音声発生源の位置を判別し、判別した位置が、前記音声発生源位置情報に含まれる前記登録された音声発生源の位置であるか否かを判別し、
前記判別手段が判別した位置が、前記音声発生源位置情報に含まれる前記登録された音声発生源の位置でないと判別した場合に、前記制御手段は、前記撮像部の撮像方向を前記判別手段が判別した位置に向けるように、自機の位置、姿勢の少なくとも一方を変える、
付記1または2に記載の音声検出装置。
(付記4)
前記音声発生源位置情報は、さらに、前記登録された音声発生源の位置に、前記特定の音声発生源以外の音声発生源が存在する確率を示す情報を含む、
付記3に記載の音声検出装置。
(付記5)
前記制御手段により自機を移動させている間に、前記撮像部が撮像した画像から認識された音声発生源の位置を示す情報を、前記音声発生源位置情報に追加する、
付記3または4に記載の音声検出装置。
(付記6)
前記判別手段は、前記音声検出手段が検出した音声が自機宛てに発せられた音声か否かを判別し、自機宛ての音声であると判別した場合、前記音声検出手段が検出した音声の音声発生源が前記特定の音声発生源であるか否かを判別する、
付記1から5のいずれか1つに記載の音声検出装置。
(付記7)
ロボットに搭載されたコンピュータが音声を検出する音声検出方法であって、
音声を検出する音声検出ステップと、
前記音声検出ステップで検出された音声の音声発生源が特定の音声発生源であるか否かを判別する判別ステップと、
前記判別ステップの判別結果に基づいて、前記ロボットの動作を制御する制御ステップと、
を備える音声検出方法。
(付記8)
ロボットに搭載されたコンピュータに、
音声を検出する音声検出機能と、
前記音声検出機能により検出された音声の音声発生源が特定の音声発生源であるか否かを判別する判別機能と、
前記判別機能により判別された判別結果に基づいて、前記ロボットの動作を制御する制御機能と、
を実現させるプログラム。
100…ロボット、110…頭、111…カメラ、112…マイク、113…スピーカ、120…胴体、121…首関節、122…操作ボタン、123…センサ群、124…電源部、125…記憶部、126…足回り部、127…制御部、1251…呼びかけ応答プログラム、1252…地図作成プログラム、1253…SLAM地図、1254…フレームデータベース、1255…音声発生確率データベース、1256…呼びかけ移動プログラム、RM…部屋

Claims (9)

  1. 音声を検出する音声検出手段と、
    前記音声検出手段により検出された音声である検出音声の音声発生源が特定の音声発生源であるか否かを判別する第1判別手段と、
    前記第1判別手段の判別結果に基づいて自機を制御する制御手段と、
    前記検出音声が発生した方向を判別する第2判別手段と、
    前記特定の音声発生源以外の他の音声発生源の位置を示す情報を含む音声発生源位置情報を記憶した記憶部と、
    前記第2判別手段による判別結果と前記記憶された音声発生源位置情報とに基づいて、前記自機に対する前記検出音声が発生した方向に前記他の音声発生源が存在するか否かを判別する第3判別手段と、を備え、
    前記制御手段は、前記第3判別手段により前記検出音声が発生した方向に前記他の音声発生源が存在しないと判別されている場合に、前記自機の動作を制御する、
    声検出装置。
  2. 前記制御手段は、前記第1判別手段により、前記検出された音声の音声発生源が前記特定の音声発生源であると判別された場合、前記自機の位置及び姿勢の少なくとも一方に関する制御を実行する、
    請求項1に記載の音声検出装置。
  3. 撮像部をさらに備え、
    前記第3判別手段により前記検出音声が発生した方向に前記他の音声発生源が存在しないと判別されている場合に、前記制御手段は、前記自機の動作の制御として、前記撮像部の撮像方向を前記第2判別手段が判別した方向に向けるように、前記自機の位置及び姿勢の少なくとも一方に関する制御を実行する
    請求項1または2に記載の音声検出装置。
  4. 前記音声発生源位置情報は、前記自機の周囲の複数の位置の各々に、前記特定の音声発生源以外の音声発生源が存在する確率を示す情報を含む、
    請求項1からのいずれか1項に記載の音声検出装置。
  5. 前記制御手段により前記自機を移動させている間に、前記撮像部が撮像した画像から認識された音声発生源の位置を示す情報を、前記音声発生源位置情報に追加する、
    請求項3または請求項3に従属する請求項4に記載の音声検出装置。
  6. 前記第1判別手段は、前記音声検出手段により検出された前記音声が前記自機宛てに発せられた音声か否かを判別し、前記自機宛ての音声であると判別した場合、前記音声検出手段が検出した音声の音声発生源が前記特定の音声発生源であるか否かを判別する、
    請求項1から5のいずれか1項に記載の音声検出装置。
  7. 音声を検出する音声検出手段と、
    前記音声検出手段により検出された音声の音声発生源が特定の音声発生源であるか否かを判別する判別手段と、
    前記判別手段の判別結果に基づいて自機を制御する制御手段と、
    撮像部と、
    前記特定の音声発生源以外の音声発生源であって、登録された音声発生源の位置を示す情報を含む音声発生源位置情報をあらかじめ記憶した記憶部と、を備え、
    前記判別手段は、前記音声検出手段により検出された前記音声の音声発生源の位置を判別し、前記判別された位置が、前記音声発生源位置情報に含まれる前記登録された音声発生源の位置であるか否かを判別し、
    前記判別手段により判別された位置が、前記音声発生源位置情報に含まれる前記登録された音声発生源の位置でないと判別した場合に、前記制御手段は、前記撮像部の撮像方向を前記判別手段が判別した位置に向けるように、自機の位置、姿勢の少なくとも一方を変える、
    声検出装置。
  8. ロボットに搭載されたコンピュータが音声を検出する音声検出方法であって、
    音声を検出する音声検出ステップと、
    前記音声検出ステップで検出された音声である検出音声の音声発生源が特定の音声発生源であるか否かを判別する第1判別ステップと、
    前記第1判別ステップの判別結果に基づいて、前記ロボットの動作を制御する制御ステップと、
    前記検出音声が発生した方向を判別する第2判別ステップと、
    前記第2判別ステップによる判別結果と、記憶部に記憶された、前記特定の音声発生源以外の他の音声発生源の位置を示す情報を含む音声発生源位置情報とに基づいて、前記ロボットに対する前記検出音声が発生した方向に前記他の音声発生源が存在するか否かを判別する第3判別ステップと、を備え、
    前記制御ステップでは、前記第3判別ステップにより前記検出音声が発生した方向に前記他の音声発生源が存在しないと判別されている場合に、前記ロボットの動作を制御する、
    声検出方法。
  9. ロボットに搭載されたコンピュータに、
    音声を検出する音声検出機能と、
    前記音声検出機能により検出された音声である検出音声の音声発生源が特定の音声発生源であるか否かを判別する第1判別機能と、
    前記第1判別機能により判別された判別結果に基づいて、前記ロボットの動作を制御する制御機能と、
    前記検出音声が発生した方向を判別する第2判別機能と、
    前記第2判別機能による判別結果と、記憶部に記憶された、前記特定の音声発生源以外の他の音声発生源の位置を示す情報を含む音声発生源位置情報とに基づいて、前記ロボットに対する前記検出音声が発生した方向に前記他の音声発生源が存在するか否かを判別する第3判別機能と、を実現させ、
    前記制御機能は、前記第3判別機能により前記検出音声が発生した方向に前記他の音声発生源が存在しないと判別されている場合に、前記ロボットの動作を制御する、
    ログラム。
JP2017062756A 2017-03-28 2017-03-28 音声検出装置、音声検出方法、及びプログラム Active JP6673276B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017062756A JP6673276B2 (ja) 2017-03-28 2017-03-28 音声検出装置、音声検出方法、及びプログラム
US15/885,031 US10424320B2 (en) 2017-03-28 2018-01-31 Voice detection, apparatus, voice detection method, and non-transitory computer-readable storage medium
CN201810198308.XA CN108665891B (zh) 2017-03-28 2018-03-09 声音检测装置、声音检测方法以及记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017062756A JP6673276B2 (ja) 2017-03-28 2017-03-28 音声検出装置、音声検出方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2018165759A JP2018165759A (ja) 2018-10-25
JP2018165759A5 JP2018165759A5 (ja) 2019-01-24
JP6673276B2 true JP6673276B2 (ja) 2020-03-25

Family

ID=63670988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017062756A Active JP6673276B2 (ja) 2017-03-28 2017-03-28 音声検出装置、音声検出方法、及びプログラム

Country Status (3)

Country Link
US (1) US10424320B2 (ja)
JP (1) JP6673276B2 (ja)
CN (1) CN108665891B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6686977B2 (ja) * 2017-06-23 2020-04-22 カシオ計算機株式会社 音源分離情報検出装置、ロボット、音源分離情報検出方法及びプログラム
JP7107017B2 (ja) * 2018-06-21 2022-07-27 カシオ計算機株式会社 ロボット、ロボットの制御方法及びプログラム
KR102093822B1 (ko) * 2018-11-12 2020-03-26 한국과학기술연구원 음원 분리 장치
CN109543578B (zh) * 2018-11-13 2020-12-22 北京猎户星空科技有限公司 智能设备控制方法、装置和存储介质
JP2020089947A (ja) * 2018-12-06 2020-06-11 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP2020135110A (ja) * 2019-02-14 2020-08-31 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
CN112148742A (zh) * 2019-06-28 2020-12-29 Oppo广东移动通信有限公司 地图更新方法及装置、终端、存储介质
KR102280803B1 (ko) * 2019-07-02 2021-07-21 엘지전자 주식회사 로봇 및 그의 구동 방법
KR20190089125A (ko) * 2019-07-09 2019-07-30 엘지전자 주식회사 커뮤니케이션 로봇 및 그의 구동 방법
US11565426B2 (en) * 2019-07-19 2023-01-31 Lg Electronics Inc. Movable robot and method for tracking position of speaker by movable robot
CN110509292A (zh) * 2019-09-05 2019-11-29 南京法法法信息科技有限公司 一种公共场所用移动式普法机器人
TWI714303B (zh) * 2019-10-09 2020-12-21 宇智網通股份有限公司 聲源定位方法及聲音系統
US11501794B1 (en) * 2020-05-15 2022-11-15 Amazon Technologies, Inc. Multimodal sentiment detection
CN111916061B (zh) * 2020-07-22 2024-05-07 北京地平线机器人技术研发有限公司 语音端点检测方法、装置、可读存储介质及电子设备
CN112017633B (zh) * 2020-09-10 2024-04-26 北京地平线信息技术有限公司 语音识别方法、装置、存储介质及电子设备

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000326274A (ja) * 1999-05-24 2000-11-28 Nec Corp 自律行動ロボット
TWI236610B (en) * 2000-12-06 2005-07-21 Sony Corp Robotic creature device
JP4689107B2 (ja) * 2001-08-22 2011-05-25 本田技研工業株式会社 自律行動ロボット
JP3714268B2 (ja) * 2002-03-18 2005-11-09 ソニー株式会社 ロボット装置
JP2005250233A (ja) * 2004-03-05 2005-09-15 Sanyo Electric Co Ltd ロボット装置
JP2006239844A (ja) 2005-03-04 2006-09-14 Sony Corp 障害物回避装置、障害物回避方法及び障害物回避プログラム並びに移動型ロボット装置
JP4453596B2 (ja) * 2005-04-06 2010-04-21 株式会社安川電機 ロボット制御方法およびロボット装置
JP4456561B2 (ja) * 2005-12-12 2010-04-28 本田技研工業株式会社 自律移動ロボット
JP2007221300A (ja) * 2006-02-15 2007-08-30 Fujitsu Ltd ロボット及びロボットの制御方法
US8155331B2 (en) * 2006-05-10 2012-04-10 Honda Motor Co., Ltd. Sound source tracking system, method and robot
JP2008126329A (ja) * 2006-11-17 2008-06-05 Toyota Motor Corp 音声認識ロボットおよび音声認識ロボットの制御方法
JP4560078B2 (ja) * 2007-12-06 2010-10-13 本田技研工業株式会社 コミュニケーションロボット
CN201210187Y (zh) * 2008-06-13 2009-03-18 河北工业大学 一种自主搜寻声源的机器人
CN101786274A (zh) * 2009-01-24 2010-07-28 泰怡凯电器(苏州)有限公司 一种用于机器人的语音系统及带有该语音系统的机器人
WO2010083768A1 (zh) * 2009-01-24 2010-07-29 泰怡凯电器(苏州)有限公司 用于机器人的语音系统及带有该语音系统的机器人
CN101786272A (zh) * 2010-01-05 2010-07-28 深圳先进技术研究院 一种用于家庭智能监控服务的多感知机器人
JP2011149782A (ja) 2010-01-20 2011-08-04 National Institute Of Advanced Industrial Science & Technology パーティクルフィルタリングによる移動ロボットからの2次元音源地図作成方法
US9014848B2 (en) * 2010-05-20 2015-04-21 Irobot Corporation Mobile robot system
JP2012040655A (ja) * 2010-08-20 2012-03-01 Nec Corp ロボット制御方法、プログラム、及びロボット
JP6240995B2 (ja) * 2013-01-15 2017-12-06 株式会社国際電気通信基礎技術研究所 移動体、音響源マップ作成システムおよび音響源マップ作成方法
CN105283775B (zh) * 2013-04-12 2018-04-06 株式会社日立制作所 移动机器人以及音源位置推定系统
KR102104896B1 (ko) * 2014-01-17 2020-05-29 엘지전자 주식회사 로봇청소기 및 이를 이용한 휴먼 케어방법
JP6221158B2 (ja) * 2014-08-27 2017-11-01 本田技研工業株式会社 自律行動ロボット、及び自律行動ロボットの制御方法
CN104967726B (zh) * 2015-04-30 2018-03-23 努比亚技术有限公司 语音指令处理方法和装置、移动终端
CN105835064B (zh) * 2016-05-03 2018-05-01 北京光年无限科技有限公司 一种智能机器人的多模态输出方法和智能机器人系统

Also Published As

Publication number Publication date
US10424320B2 (en) 2019-09-24
CN108665891B (zh) 2023-05-02
CN108665891A (zh) 2018-10-16
US20180286432A1 (en) 2018-10-04
JP2018165759A (ja) 2018-10-25

Similar Documents

Publication Publication Date Title
JP6673276B2 (ja) 音声検出装置、音声検出方法、及びプログラム
US10665249B2 (en) Sound source separation for robot from target voice direction and noise voice direction
CN108664889B (zh) 对象物检测装置、对象物检测方法以及记录介质
US7536029B2 (en) Apparatus and method performing audio-video sensor fusion for object localization, tracking, and separation
Chen et al. Smart homecare surveillance system: Behavior identification based on state-transition support vector machines and sound directivity pattern analysis
CN105979442B (zh) 噪声抑制方法、装置和可移动设备
US20190341054A1 (en) Multi-modal speech localization
US11501794B1 (en) Multimodal sentiment detection
KR102463806B1 (ko) 이동이 가능한 전자 장치 및 그 동작 방법
US11605179B2 (en) System for determining anatomical feature orientation
EP1643769A1 (en) Apparatus and method performing audio-video sensor fusion for object localization, tracking and separation
JP2006192563A (ja) 識別対象識別装置およびそれを備えたロボット
US11714157B2 (en) System to determine direction toward user
JP2009157767A (ja) 顔画像認識装置、顔画像認識方法、顔画像認識プログラムおよびそのプログラムを記録した記録媒体
Rekik et al. Human machine interaction via visual speech spotting
US20230053276A1 (en) Autonomously motile device with speech commands
Fransen et al. Using vision, acoustics, and natural language for disambiguation
Kallakuri et al. Probabilistic approach for building auditory maps with a mobile microphone array
CN112925235A (zh) 交互时的声源定位方法、设备和计算机可读存储介质
CN110188179A (zh) 语音定向识别交互方法、装置、设备及介质
Sasaki et al. Online spatial sound perception using microphone array on mobile robot
Chau et al. Audio-visual SLAM towards human tracking and human-robot interaction in indoor environments
Yang et al. Camera pose estimation and localization with active audio sensing
CN108109614A (zh) 一种新型的机器人带噪音语音识别装置及方法
CN110730378A (zh) 一种信息处理方法及系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200217

R150 Certificate of patent or registration of utility model

Ref document number: 6673276

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150