(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-13
(45)【発行日】2023-12-21
(54)【発明の名称】発話制御装置
(51)【国際特許分類】
G06F 3/16 20060101AFI20231214BHJP
B25J 13/00 20060101ALI20231214BHJP
【FI】
G06F3/16 610
B25J13/00 Z
(21)【出願番号】P 2020052772
(22)【出願日】2020-03-24
【審査請求日】2023-01-16
(73)【特許権者】
【識別番号】302060926
【氏名又は名称】株式会社フジタ
(74)【代理人】
【識別番号】100120592
【氏名又は名称】山崎 崇裕
(74)【代理人】
【識別番号】100184712
【氏名又は名称】扇原 梢伸
(74)【代理人】
【識別番号】100192223
【氏名又は名称】加久田 典子
(72)【発明者】
【氏名】山口 瞳
(72)【発明者】
【氏名】權 純洙
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2002-056388(JP,A)
【文献】特開2019-160289(JP,A)
【文献】特開2013-182325(JP,A)
【文献】特開2016-170603(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/16
B25J 13/00
(57)【特許請求の範囲】
【請求項1】
所定の撮像エリアを撮像して得られた画像から人物の判定を実行する人物判定部と、
前記画像から人物の顔部分の判定を実行する顔判定部と、
前記人物判定部による人物の判定結果と前記顔判定部による顔部分の判定結果とを交互に利用し、いずれか一方の判定結果から得られる人物までの距離が所定範囲内にあると判定したタイミングで発話音声を出力させる音声出力部と
を備えた発話制御装置。
【請求項2】
請求項1に記載の発話制御装置において、
前記音声出力部は、
人物までの距離が前記所定範囲外にあると判定している間に前記顔判定部による顔部分の判定結果が得られた場合、前記人物判定部による判定結果を利用することなく、前記顔判定部による判定結果から人物までの距離を判定することを特徴とする発話制御装置。
【請求項3】
請求項1又は2に記載の発話制御装置において、
前記音声出力部は、
前記顔判定部から顔部分の判定結果が得られない状態で、前記所定範囲内の距離にある人物の判定結果が前記人物判定部から得られた場合、当該人物の判定結果が得られたタイミングで発話音声を出力させることを特徴とする発話制御装置。
【請求項4】
請求項1から3のいずれかに記載の発話制御装置において、
前記人物判定部は、
人物が存在する撮像エリアを連続的に撮像して得られた画像から人物の判定を連続的に実行したとき、一連の判定結果には人物の判定が成功の場合と不成功の場合が不規則に含まれる判定能力を有しており、
前記音声出力部は、
前記人物判定部による一連の判定結果に基づいて擬制的に生成した人物の検出結果を利用して人物までの距離を判定することを特徴とする発話制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば発話機能を有する対人ロボット等への適用が可能な発話制御装置に関する。
【背景技術】
【0002】
従来、人物を検出してロボット等から発話させる先行技術が知られている(例えば、特許文献1参照。)。この先行技術の例では、ロボット本体に内蔵のカメラから取得した撮影画像を処理することでフレーム間差分データを作成し、これらの差分データに基づいて動くものがあるか否かを検出し、動くものがあった場合に、ロボット本体周辺に人物がいると判断する。また、周辺に人物がいる場合は顔を検知し、周辺に人物がおり、かつ顔が検知されている場合に会話シナリオ作成し、音声信号をスピーカへ出力して合成音声データに応じた発話を行うこととしている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述した先行技術は、ロボットから発話させる際に周辺の人物が検知されていれば条件として充分であるが、より正確性を担保するために顔を検知し、顔が検知できた場合は確実に人物からの音声入力であると判断するので、生活雑音を人物からの音声入力であると誤認識する確率をさらに低下させ、ロボットが発話する際の誤動作を防止している。
【0005】
しかしながら、先行技術の手法は、人物の検知情報を先に取得した上で顔の検知情報を補助的に利用しているだけであり、顔の検知情報が得られなくても機能することから、あくまで顔の検知情報は付け足しでしかない。一方、人物の検知情報が取得できない場合は発話機能も作動することができないため、周囲環境の条件によって人物の検知に失敗した場合は、もはや適切に発話を制御することができない。
【0006】
そこで本発明は、適切に発話を制御できる技術を提供するものである。
【課題を解決するための手段】
【0007】
本発明は、発話制御装置を提供する。この発話制御装置は、人物を判定する処理と人物の顔部分を判定する処理をともに実行する。すなわち、撮像エリアを撮像して得られた画像から人物全体の画像領域を認識する処理(人物判定、人物検知)とともに、人物の顔部分だけの画像領域を認識する処理(顔判定、顔検知)も実行する。2つの処理は、同時並行的に実行してもよいし、いずれか一方を選択的に実行してもよい。その上で、2つの処理の結果、すなわち人物の判定結果と顔部分の判定結果とを交互に利用し、いずれか一方の判定結果から人物までの距離を判定し、この距離が所定範囲内にあると判定したタイミングで発話音声を出力させる。
【0008】
このような発話制御は、画像内の人物の判定(人物検知)を高速処理が可能な判定能力を有した人工知能モデルにより実行する場合に有効である。すなわち、このような高速型の人工知能モデルを用いた人物の判定(検知)は、検知スピードに優れる代わりに検知率(成功率)がやや低いため、人物の判定結果のみに依存して発話制御を実行することは適切でない。特に、遠方にいる人物については判定(検知)能力が要求レベルを満たさないこともある。
【0009】
一方、顔部分の判定(顔検知)を同じ高速型の人工知能モデルを用いて実行したとしても、検知率(成功率)は人物判定に比較して高く、検知スピードにも優れるという特性が得られる。これは、人体において顔部分の画像特徴量は、かなり遠方(例えば15m以上)から撮像された画像内でも顕著に現れるため、人工知能モデルによる認識がより高速かつ正確であるということに基づく。
【0010】
したがって、人物判定(人物検知)の弱点である正確性を顔部分の判定(顔検知)によって補償ないし補完すれば、きわめて合理的な発話制御系が構築できる。ただし、顔部分の判定(顔検知)は正面、側面では高い正確性を得られるが、後方背面からでは判定できないため、顔部分の判定(顔検知)にも固有の弱点があり、この部分を人物の判定(人物検知)によって補償ないし補完することができる。
【0011】
このように、本発明の発話制御装置は、人物の判定(人物検知)と顔部分の判定(顔検知)とを相補的に機能させ、発話の対象となる人物までの距離の判定材料とする。これにより、より高速かつ適切に人物までの距離を判定した上で、その距離が所定範囲内にあると判定したタイミングで確実に発話音声を出力させることができる。
【0012】
なお、人物及び顔部分それぞれの判定結果からは、公知のように容易に人物までの距離を判定することができる。これは、標準的な人物の身長や顔部分の大きさを既知データとして保有することにより、判定結果に示される画像領域の大きさからの推定が容易だからである。したがって、人物の存在を示す判定結果(人物検知又は顔検知のどちらか)が得られれば、後は人物までの距離を判定(推定)するだけで、発話タイミングを適切に制御することができる。
【0013】
以上のような特徴をふまえた上で、発話制御装置は、人物までの距離が所定範囲外にあると判定している間に顔部分の判定結果が得られた場合、以後は人物の判定結果(人物検知)から顔部分の判定結果(顔検知)に切り替えて距離を判定し、発話音声の出力を制御する。これは、ある時点で顔部分の判定結果が得られれば、以後は顔検知の高速性と正確性をフルに活用することがより好ましいことに基づく。これにより、さらに適切に発話を制御することができる。
【0014】
ただし、発話元と人物との位置関係が一定してない状況では、顔部分の判定結果が得られないまま、唐突に人物の判定結果が得られ、かつ、人物までの距離が所定範囲内であると判定されることがある。このような事例は、例えば不特定の人物が任意の場所をランダムな方向に移動するような環境(例えば建設現場)において顕著である。すなわち、人物は常に決まった方向から撮像エリア内に出現し、そのまま発話元に向かって移動してくるとは限らず、時には撮像エリア外で発話元の付近から所定範囲内に進入してくる場合がある。このような場合、遠方から人物の存在を認識して追跡する(距離を判定し続ける)ことはできず、人物を判定した時点では既に所定範囲内にいるという状況が起こり得る。
【0015】
そこで発話制御装置は、顔部分の判定結果が得られていない状態で、所定範囲内の距離にある人物の判定結果が得られた場合は、そのタイミングで直ちに発話音声を出力させることとしている。これにより、不測の状況にも直ちに対応し、適切に発話を制御することができる。
【0016】
また、発話制御装置は、処理を高速化したことに対しても手当している。すなわち、人物の判定に高速型の人工知能モデルを用いる場合、人物の判定から発話音声の出力までの応答時間に遅延が少ないことから、特に、ランダムに移動している人物への発話(声掛け)のタイミングに目立った遅延がなく、発話内容を確実に人物に気付かせることができるという大きな利点がある。ただし、判定能力を高速化したこととのトレードオフで精度が犠牲になるため、その分を補償する手法を考える必要がある。
【0017】
すなわち、現実に人物が存在する撮像エリアを撮像しても、その画像から人物を判定した結果には一定の割合で成功(人物判定あり)と不成功(人物判定なし)とが含まれることとなり、かつ、それらの発生回数や発生順は不規則である。この場合、判定結果を全て正しいものとして発話音声の出力を制御すると、同じ人物に対して同じ内容の発話を繰り返したり(連呼したり)、人物がいるのに発話しなかったりすることがある。
【0018】
そこで本発明の発話制御装置は、人物の判定結果にフィルタリングの手法を採用する。すなわち、一連の判定結果をそのまま発話音声の出力に対する入力とするのではなく、得られた判定結果から擬制的な人物の検出結果を二次生成する。擬制的に生成された人物の検出結果は、一連の判定結果が成功と不成功との間でセンシティブに振れる(両極端に変化する)のに対し、ある程度の確からしさで「検出結果あり」と擬制されるか、「検出結果なし(未検出)」と擬制されるかのいずれかに平滑化される。
【0019】
そして、このような擬制的に生成された検出結果で示される人物について、距離が所定範囲内あると判定したタイミングで発話音声を出力させる。このとき、発話音声の出力に用いる検出結果がフィルタリング(平滑化)されているため、同じ人物に対して同じ内容の発話が繰り返されたり、判定不成功で発話されなかったりといった不具合を確実に防止することができる。
【0020】
また、所定範囲(以下、「検出エリア」とすることがある)は、例えば発話元と人物との位置関係において、発話内容が人物に届きやすく、また、聞き取りやすいと考えられる距離に基づいて規定することができる。これにより、例えば不特定の人物が任意の場所をランダムな方向に移動するような環境(例えば建設現場)においても、高速モデルを用いて人物を判定した場合の即応性を活かして、その人物との位置関係が最適な距離となるタイミングで発話音声を出力させることにより、発話されたことを人物に気付かせやすくし、また、発話内容を人物に聞き取りやすくすることができる。
【0021】
なお、発話制御装置によるフィルタリングの手法には、以下の好ましい態様が含まれる。
(1)高速モデルの一連の判定結果に含まれる成功(人物判定あり)の場合と不成功(人物判定なし)の場合との比率から、擬制的に人物を検出又は未検出とする検出結果を生成する。例えば、ある回数の連続する判定結果の群に着目したとき、その中で成功(人物判定あり)が所定割合以上あれば、「人物検出あり」と擬制する検出結果を生成する。逆に、ある回数の連続する判定結果の群の中で、成功(人物判定あり)が所定割合に達していなければ、「人物検出なし(未検出)」と擬制する検出結果を生成する。したがって、高速モデルによる判定結果が一時的(瞬間的)に振れたとしても、生成される検出結果は大きく振れることがなく、平滑化されることになる。
【0022】
(2)高速モデルから所定回数連続して成功(人物判定あり)の判定結果が得られた場合、擬制的に人物の検出状態とする検出結果を生成し、この後に所定回数連続して成功(人物判定あり)の判定結果が得られなかった場合、擬制的に人物の未検出状態とする検出結果を生成する。この場合、高速モデルによる人物の判定が所定回数連続して成功したことを条件に、以後は「人物検出あり」の状態となる。この状態で、途中に不成功(人物判定なし)の判定結果が得られても、フィルタリング後の検出結果は「人物検出あり」の状態が維持される。したがって、所定回数より少ない回数の不成功によって検出結果が振れることなく、平滑化される。
【0023】
いずれにしても、上記(1)及び(2)のフィルタリングの態様では、「人物検出あり」と擬制した検出結果を生成した後も、高速モデルによる少数の判定結果が不成功(人物判定なし)となる場合がある。この場合、そのままでは、高速モデルの判定結果に基づく人物の検出結果を一時的(瞬間的)に生成することができないことになる。そこで発話制御装置は、成功の判定結果が得られた後に不成功の判定結果が得られた場合、最後(直前)に得られた成功の判定結果に基づいて、擬制的な人物の検出結果を生成する。これにより、「人物検出あり」と擬制した検出結果を生成した後の抜け(欠け)を防止し、安定して発話音声の出力制御を実行することができる。
【発明の効果】
【0024】
本発明によれば、適切に発話を制御することができる。
【図面の簡単な説明】
【0025】
【
図1】発話制御装置の適用場面を一例として示す図である。
【
図2】建設現場CS内で移動ロボットRBが発話音声を出力する場面を例示した図である。
【
図3】一実施形態の発話制御装置100の構成例を示すブロック図である。
【
図4】画像認識処理別の特性を比較して示した図である。
【
図5】声掛けシステム110による処理の概要を示す図である。
【
図6】演算部122により制御される発話タイミングを示す図である。
【
図7】人物が前方から検出エリアDAに進入した場合の声掛けパターンを示す図である。
【
図8】フィルタリング部142による処理の概要を示す図である。
【
図9】フィルタリング処理の手順例を示すフローチャートである。
【
図10】声掛け音声出力処理の手順例を示すフローチャートである。
【発明を実施するための形態】
【0026】
以下、本発明の実施形態について図面を参照しながら説明する。以下の実施形態では、発話制御装置を移動ロボット(自走式ロボット)による音声出力に適用した例を挙げているが、本発明はこの例に限られるものではない。
【0027】
図1は、発話制御装置の適用場面を一例として示す図である。本実施形態では、例えば、大型ビルやマンション、医療施設、福祉施設といった建物の建設現場CSでの使用を想定することができる。この建設現場CSは、建物の構造体(コンクリートの梁BM、壁WL、床FL、柱CL等)がある程度出来上がった状態にあり、内部を人(作業員等)が歩くことができる状態にある。また、
図1には示されていないが、建設現場CSには開けた空間の他に、通路や部屋、エレベータシャフト、階段室等も存在する。
【0028】
この建設現場CSには、例えば自走式の移動ロボットRBが配置されている。移動ロボットRBは、例えば4つの車輪WHで建設現場CS内を移動することができる。また、移動ロボットRBは、内蔵のIPカメラ112を用いて周囲を撮像したり、マイク・スピーカ128を用いて集音及び発音(発話音声出力)したりすることができる。
【0029】
移動ロボットRBが建設現場CS内を移動して得た情報は、無線通信を介して例えばクラウドコンピュータ上にアップロードされる。また、移動ロボットRBは、クラウドコンピュータから更新情報を適時ダウンロードしてシステムをアップデートすることができる。このような移動ロボットRBは、既に多く提供されている公知の自律移動制御システムや環境検知システムを備えるものであり、その詳細についての説明は省略する。なお、移動ロボットRBは歩脚式のものでもよい。
【0030】
本実施形態の発話制御装置は、この適用例に挙げた移動ロボットRBによる発話音声出力の制御を好適に実現する。以下、移動ロボットRBによる発話音声出力を「声掛け」としても呼称する。
【0031】
図2は、建設現場CS内で移動ロボットRBが発話音声を出力する場面を例示した図である。移動ロボットRBは、日時、周囲の環境、人物の認識を各種センサとAI(人工知能)を用いて行い、各人の状況や建設作業中に関係のある周囲の気候条件や環境に合わせた声掛けを行う。
【0032】
図2中(A):移動ロボットRBは、例えば建設現場CS内で作業員を人物認識し、日時や環境、声掛けの対象となる人物の状況に合わせた発話内容を選択する。この例では、人物が立ち止まった姿勢であること、現在が日中の時間帯であること、周囲気温が何らかの閾値を超過すること等の状況から総合判断して、「こんにちは 暑いので水分を取って下さい。」といった内容の声掛けを実行している。また、顔認識により人物個人を特定し、「○○さん」のように個人名を付した声掛けも実行することができる。
【0033】
図2中(B):また、移動ロボットRBは、例えば建設現場CS内で作業員を人物認識するとともに、建設関連情報を認識する。この例では、建設関連情報として人物が足場SCに登った高所作業中であることを状況判断し、「危ないですよ!注意して作業して下さい」といった内容の声掛けを実行している。
【0034】
このような声掛けの仕組みは、移動ロボットRBが決まった音声で声掛けする場合と比較して、安全性の向上に利する点が大きい。すなわち、移動ロボットRBが建設現場CS内を移動して回り、「人物認識したら機械的に定型の発話内容で声掛けする」というパターンでは、作業中の人物には発話内容があまり届かず、注意喚起にはつながらない。これに対し、作業員に対してその場の状況に合わせた具体的な健康情報や危険情報、建築関連情報を音声で案内する声掛けのパターンであれば、対象人物の注意喚起につながり、安全性向上に利する点が大きくなる。
【0035】
〔処理の高速化〕
ここで、本実施形態の発話制御装置が取り扱う主題は、移動ロボットRBで対象となる人物の検知に要する処理の高速化である。すなわち、移動ロボットRBが建設現場CS内を自律的に移動しつつ、様々な場所で人物(作業関係者)を認識した場合、その都度、適切なタイミングで発話音声を出力させる必要がある。このとき、どのようなタイミングで発話音声を出力させるかは、移動ロボットRBを発話元としたときの人物との位置関係にあり、具体的には人物までの距離に依存する。ただし、人物は常に一箇所に留まっているわけではなく、必要な作業をするために移動しているし、移動ロボットRBの方も自律移動している。このため、移動ロボットRBの方で人物を判定(検知又は検出)し、位置関係に基づいて声掛けさせる際、人物の検知にあまり長い処理時間を要していると、その間に人物が先に移動してしまい、声掛けのタイミングが遅れることになる。
【0036】
そこで、人物の検知処理を高速化することが考えられる。移動ロボットRBによる人物の認識(検知)には、IPカメラ112で撮像した画像から人物を判定する人工知能モデルが用いられる。このとき、処理速度がより高速な人工知能モデルを適用することで、画像内に写っている人物を瞬時に判定(検知又は検出)することが可能であるが、処理が高速化されたモデルほど、判定の精度が低いことも確かである。このため、高速処理に特化した人工知能モデルを用いると、人物の判定に不確実性(感覚的に言うと「チラツキ」、「振れ」)が生じ、それによって声掛けを連呼してしまったり、逆に声掛けしなかったりすることがある。一方、高速モデルによる人物判定では、検出率が低い分、遅延は少なく、かつ、単位時間あたりの人物の判定回数は高精度モデルより数倍多いという特性がある。
【0037】
本来であれば、高速型の人工知能モデルで人物だけを判定(検知又は検出)し、声掛けタイミングを制御するというパターンが最もシンプルでよいが、これだけでは人物の検知率が低く、特に画像内で遠方に写っている人物は検知しにくい。よって、人物検知だけでは高速化を達成することができず、別途、顔検知が好適に用いられる。
【0038】
本実施形態では、上記の事情に鑑みて、高速処理に特化した人工知能モデルにより生じる人物検知の不正確性や、遠方での低い検知率を顔検知によって補償又は補完し、移動ロボットRBから最適に声掛けさせることができる仕組みを構築している。以下、本実施形態で用いる声掛けの仕組みについて説明する。
【0039】
〔発話制御装置の構成〕
図3は、一実施形態の発話制御装置100の構成例を示すブロック図である。なお、
図3では一部に移動ロボットRBの構成要素も合わせて示されている。
【0040】
発話制御装置100は、声掛けシステム110を中心として構成されている。声掛けシステム110は、IPカメラ112やマイク・スピーカ128からの信号を入力とし、内部でAI(高速モデル)による処理や各種の演算を行った上で、マイク・スピーカ128から発話音声を出力させる制御を実現する。
【0041】
マイク・スピーカ128は、例えば周囲の騒音レベルを計測したり、移動ロボットRBから発話音声を出力したりするために用いられる。なお、マイク・スピーカ128は別体式(マイクとスピーカが別)の構成であってもよい。
【0042】
IPカメラ112は、人物を含む周囲環境を撮像するために用いられる。IPカメラ112には、例えば公知の市販製品を適用することができる。IPカメラ112は、いわゆるパン、チルト、ズーム(PTZ)機能を備えたネットワークカメラであるが、本実施形態では特にPTZ機能を用いていない(ただし、用いてもよい。)。IPカメラ112は、移動ロボットRBの本体(例えば頭部)に内蔵されている(
図1参照)。ここでは、移動ロボットRBの進行方向正面にIPカメラ112の向きを設定している。
【0043】
また、声掛けシステム110には、AI処理高速化装置114が付加されている。AI処理高速化装置114には、例えば公知の市販製品を用いることができ、AI処理高速化装置114は、声掛けシステム110の内部で実行されるAI処理の高速化に寄与する。
【0044】
声掛けシステム110は、移動ロボットRBの制御部130と協働する。制御部130は、声掛けシステム110と協働して移動ロボットRBの移動装置132を制御する。例えば、声掛けシステム110が声掛けを実行する場合、制御部130は移動ロボットRBの移動を停止させたり、対象の人物との位置関係を調整したりする。あるいは、制御部130が移動ロボットRBを移動させつつ、声掛けシステム110が声掛けを実行することもある。
【0045】
声掛けシステム110は、例えば図示しないCPU(中央処理装置)及びその周辺機器を含むコンピュータ機器を用いて実現することができる。声掛けシステム110は、移動ロボットRBのシステムに追加して搭載される別のハードウエアでもよいし、移動ロボットRBが既に有するハードウエアにインストールされるソフトウエアでもよい。
【0046】
声掛けシステム110には、例えば顔判定部144や人物判定部136、フィルタリング部142、そして演算部122といった各種の機能ブロックが含まれている。これらの機能ブロックは、例えばコンピュータプログラムを用いて行うAI処理やソフトウエア処理によって実現することができる。このうち顔判定部144は、IPカメラ112により撮像された画像から人物の顔部分を判定(顔検知)する。また、人物判定部136は、同じく撮像された画像から人物全体を判定(人物検知)する。フィルタリング部142は、人物判定部136の判定結果に生じる不確実性(いわゆるチラツキ、振れ)を補正して平滑な検出結果として出力する。このため、機能ブロック上、人物判定部136とフィルタリング部142を合わせて1つの人物判定ブロック146とすることができる。
【0047】
また、本実施形態では、顔判定部144及び人物判定部136の処理にそれぞれ高速AIモデルを採用している。各機能ブロックは、声掛けシステム110の内部バス(仮想バス)を通じて相互に連係しながら処理を実行することができる。なお、人物判定部136だけに高速AIモデルを採用する態様であってもよい。
【0048】
また、声掛けシステム110には記憶部124や出力装置126が含まれる。記憶部124は、例えば半導体メモリや磁気記録装置である。記憶部124には、例えば声掛けシステム110が移動ロボットRBに出力させる発話内容の音声データが格納されている。出力装置126は、マイク・スピーカ128を駆動するドライバアンプ等である。なお、音声データは適宜アップデートすることが可能である。
【0049】
〔特性比較〕
ここで、
図4は、人工知能モデルを用いた画像認識処理別の特性を比較して示した図である。ここでは、画像認識処理として、「顔検知」、「人物検知(高精度)」及び「人物検知(高速)」の3種類を例に挙げている。「人物検知(高精度)」と「人物検知(高速)」との違いは、適用する人工知能モデルの違いを表している。なお、「顔検知」は高速モデルとする。
【0050】
各画像認識処理の特性としては、「検知スピード」、「検知率」、「距離推定」、「距離変位推定」、そして「人物の後面検知」の項目が挙げられる。以下、項目別に説明する。
【0051】
〔検知スピード〕
「検知スピード」は、人工知能モデルが画像認識処理に要する時間を意味し、処理時間が短いほど評価が高い。3つのうち「顔検知」の評価(◎)が最も高く、次に「人物検知(高速)」の評価(○)が高いが、「人物検知(高精度)」の評価(△)は他の2つには及ばない。したがって、ここが「人物検知(高精度)」の弱点といえる。
【0052】
〔検知率〕
「検知率」は、人工知能モデルによる画像認識処理の結果(判定結果)の精度を意味し、結果が正確であるほど評価が高い。ここでも、3つのうち「顔検知」の評価(◎)が最も高いが、2番目は「人物検知(高精度)」の評価(○)であり、「人物検知(高速)」の評価(△)は最も低い。したがって、ここが「人物検知(高速)」にとって弱点といえる。
【0053】
〔距離推定〕
「距離推定」は、人工知能モデルによる画像認識処理の結果を用いて推定した人物(人物全体又は検知した顔の人物)までの距離の精度を意味し、推定結果が正確であるほど評価が高い。ここでは、3つのうち「人物検知(高精度)」の評価(◎)が最も高く、次に「人物検知(高速)」の評価(○)が高いが、「顔検知」の評価(△)は他の2つには及ばない。したがって、ここが「顔検知」の弱点といえる。
【0054】
〔距離変位推定〕
「距離変位推定」は、先の「距離推定」の結果から推定した距離の変化量(単位時間Δtあたりの距離変位ΔD)の精度を意味し、推定結果が正確であるほど評価が高い。この項目は、「距離推定」の精度にそのまま依存するので、評価順は先と同じである。
【0055】
〔人物の後面検知〕
「人物の後面検知」は、人物の後面(背面、後方)から人工知能モデルで画像認識処理を実行した場合の結果の精度を意味し、結果が正確であるほど評価が高い。ここでは、3つのうち「人物検知(高精度)」が評価(○)で、ある程度は正確であるが、「人物検知(高速)」が評価(△)であまり正確に検知できない。また、評価(×)で示すように、後面からの「顔認識」はできない。この点もまた、「顔検知」の弱点といえる。
【0056】
〔相補的利用〕
本実施形態では、「人物検知(高精度)」を除いた「顔検知」と「人物検知(高速)」の2つの画像認識処理を相補的に利用する。特に
図4中にグレーで着色した項目は、各画像認識処理の強みである(少なくとも弱点でない)ことから、これらを相補的に活用することで、声掛けシステム110による処理を高速化させることができる。以下、より具体的に説明する。
【0057】
図5は、声掛けシステム110による処理の概要を示す図である。
例えば、
図5中(A)~(H)に示すように、声掛けシステム110には、移動ロボットRBに内蔵のIPカメラ112(
図5では省略)からの撮像信号が入力される。IPカメラ112による撮像は連続的に(例えば30~60フレーム毎秒(fps)で)行われ、それらのフレーム画像が連続的に声掛けシステム110に入力されている。なお、ここでは簡略化のため、フレーム数は適宜間引いて示している(これ以降も同様。)。
【0058】
〔撮像エリア〕
図5中の中央領域に示すように、撮像エリアはIPカメラ112の画角(例えば水平方向で左右64°程度、垂直方向で上方28°程度、下方10°程度)により規定される。フレーム画像は、この画角(視野)内に入る周囲環境を撮像したものとなる。なお、撮像エリアの範囲(角度)はこの例に限定されない。
【0059】
〔検出エリア〕
声掛けシステム110は、撮像エリア内に検出エリアDA(
図5にグレーで示す範囲)を予め規定している。検出エリアDAは、例えば移動ロボットRBの中心(IPカメラ112による撮像地点)を基準点とした一定の範囲であり、ここでは半径R1~R3(例えば2m~5m)で示す扇状に近い帯状の範囲である。検出エリアDAには、移動ロボットRBからの声掛けに最適距離(例えば4m)と考えられる発話地点が含まれる。なお、発話地点までの距離や検出エリアDAの範囲はこの例に限定されない。
【0060】
〔顔判定部〕
顔判定部144は、連続するフレーム画像から高速AIモデルを用いた人物の顔部分の判定処理(顔検知)を実行する。顔部分の判定は、例えば畳み込みニューラルネットワークを用いた画像認識処理で行われる。上記のように「顔検知」の検知スピードは最も高速である。ここでは、AI処理高速化装置114のサポートを用いて、例えば1秒間に数十回(ほぼ毎フレーム)の頻度で顔部分を高速に判定することができる。なお、顔部分の検知スピードはこれ以外でもよい。
【0061】
〔人物判定部〕
人物判定部136もまた、連続するフレーム画像から高速AIモデルを用いた人物の判定処理を実行する。人物の判定についても、例えば畳み込みニューラルネットワークを用いた画像認識処理で行われる。「人物検知(高速)」の検知スピードは、「顔検知」には及ばないものの、ある程度の高速性能を有する。ここでは、AI処理高速化装置114のサポートを用いて、例えば1秒間に数回(3~4回)以上の頻度で人物を高速に判定することができる。比較として高精度AIモデルを用いた場合、人物の判定は例えば1秒間に1回程度である。
【0062】
〔交互活用〕
声掛けシステム110では、顔判定部144の判定結果と人物判定部136の判定結果とを交互に利用する。なお、人物判定部136の判定結果は、フィルタリング部142によって処理されたものでもよい。
【0063】
〔遠方人物検知〕
例えば、
図5中(A)のフレーム画像では、人物判定部136で人物を判定(人物検知)した画像領域が一点鎖線の矩形枠(バウンディングボックス)で示されている。この場合、ある程度の遠方(例えば15m以上)で得られた人物検知の結果に基づいて、声掛けシステム110の演算部122が人物までの距離を判定(推定)する。人物までの距離については、人物検知時のバウンディングボックスの大きさから推定することができる。したがって、人物までの距離とバウンディングボックスの大きさ(高さ)との関係を予め相関データとして記憶しておくことで、演算部122でバウンディングボックスの大きさから人物までの距離を推定することができる。
【0064】
〔顔検知切替〕
次に、
図5中(B)のフレーム画像では、顔判定部144で人物の顔部分を判定(顔検知)した画像領域が一点鎖線のバウンディングボックスで示される。この場合も同様に、ある程度の遠方(例えば13m程度)で得られた顔検知の結果に基づいて、演算部122が人物までの距離を判定(推定)する。顔検知に基づく人物までの距離についても、顔検知時のバウンディングボックスの大きさから推定することができる。したがって、人物までの距離と顔検知時のバウンディングボックスの大きさ(高さ)との関係を予め相関データとして記憶しておくことで、演算部122で顔検知時のバウンディングボックスの大きさから人物までの距離を推定することができる。
【0065】
ここで、上記のように「距離推定」の評価では、「顔検知」は「人物検知(高速)」より僅かに低いものの、「検知スピード」と「検知率」では上回っていることから、以後は「顔検知」の結果のみに切り替えて人物までの距離を判定し、声掛けを行うことがより高速化につながる。したがって、以後は
図5中(C)~(H)に示すように、「顔検知」の結果に基づいて人物までの距離を推定する。
【0066】
〔発話タイミング〕
図6は、演算部122により制御される発話タイミングを示す図である。演算部122は、例えば「人物検知」又は「顔検知」の結果から推定して得られる人物Pまでの距離に基づいて、人物Pが検出エリアDAに進入したか否かを判定している。ここでは、「顔検知」の結果を利用して検出エリアDA外の遠方から人物Pを追跡し、常時、その距離を推定する。その結果、人物Pが検出エリアDA(この例では5m以内)に進入したと判定すると、そのタイミングで演算部122は出力装置126を駆動し、マイク・スピーカ128から発話音声を出力させる。これにより、実際に人物Pが検出エリアDAに進入したタイミングで、直ちに(遅延することなく)移動ロボットRBから「こんにちは 熱中症に注意してください」といった声掛けが適切に実行されることになる。なお、声掛けの内容はこれに限定されない。
【0067】
上記の発話タイミングで声掛けさせる発話制御は、声掛けシステム110による基本的な声掛けパターンであるが、人物や顔部分が常に遠方から検知できている場合ばかりとは限らない。そこで、以下に例外的な声掛けパターンについても説明する。
【0068】
〔前方から検出エリアに進入時〕
図7は、人物が前方から検出エリアDAに進入した場合の声掛けパターンを示す図である。この声掛けパターンは、人物P6が唐突に判定され、かつ、判定された時点で人物P6までの距離が直近(例えば2m程度)であるような場合が該当する。すなわち、人物P6は移動ロボットRBの近傍から撮像エリア内に入ってきて、こちらに背を向けて検出エリアDA内に進入している。この場合、顔判定部144では判定(顔検知)できないため、演算部122は、人物判定部136の判定結果(人物検知)を利用して人物P6までの距離を推定する。
【0069】
そしてこの場合、演算部122は、人物P6までの距離が検出エリアDA内であると判定し、このタイミングで出力装置126に発話音声出力を指示する。したがって、人物P6に対しては、顔判定部144の判定結果を得ることなく、人物判定部136の判定結果から距離を判定すると、直ちに例えば「こんにちは」等の声掛けが実行されることになる。これにより、突然現れて移動ロボットRBから遠ざかろうとしている人物P6に対しても、機会を逸することなく声掛けを実行することができる。
【0070】
〔人物検知データのフィルタリング〕
次に、人物判定部136の判定結果(人物検知データ)のフィルタリング処理について説明する。上記のように高速AIモデルによる人物の判定結果には、ある程度の成功サンプルと不成功サンプルとが混在して得られるため、そのままでは判定結果に不連続性(チラツキ、振れ)が現れるため、入力として実用的でない。そこで、フィルタリング部142による処理が用いられる。
【0071】
図8は、フィルタリング部142による処理の概要を示す図である。例えば、フィルタリング部142は、人物判定部136による人物の判定結果を連続的に観測する。この例では、
図8中の上部枠内に(検出データA)、(検出データB)、(検出データC)、(検出データD)、(検出データE)、(検出データF)、(検出データなし)、(検出データG)、(検出データH)、(検出データI)、(検出データJ)、(検出データなし)、(検出データK)、(検出データなし)、(検出データなし)、(検出データなし)で示される一連のフレーム画像毎に判定結果が得られている。
【0072】
ここで、(検出データA)、(検出データB)、・・・(検出データK)は、それぞれのフレーム画像内で人物が判定(検出、検知)された成功サンプルであることを表している。また、A、B、・・・Kの符号は、フレーム画像別の判定結果を識別するものである。例えば、(検出データA)~(検出データF)と(検出データG)~(検出データK)とでは、人物を判定したバウンディングボックスの大きさが違っており、人物の位置が異なることを意味している。したがって、(検出データA)~(検出データF)と(検出データG)~(検出データK)とでは、移動ロボットRBから人物までの距離が異なっている。また、(検出データG)から(検出データK)に向かって人物との距離は小さくなっている。
【0073】
フィルタリング部142による処理は、
図8中の下部領域に示す処理テーブルを用いて説明することができる。この処理テーブルは、例えばメモリ空間に展開されたデータ配列を便宜的に視覚化したものである。このとき、処理テーブルには、縦方向に「検出結果」、「内部状態」及び「出力」のデータ領域が定義されており、横方向には各データ領域に対応するデータが時系列に配列されている。
【0074】
〔検出結果のデータ配列〕
処理テーブルの上段に示されているように、「検出結果」のデータ領域には、左(時系列の最古)から右(最新)に向かって人物判定部136による一連の判定結果(検出結果)が順次配列される。ここでは、左から3個目までのフレームが全てデータなしであり、4個目から9個目までのフレームには、「A」~「F」の検出データが順に配列されている。また、10個目のフレームがデータなしであり、11個目から14個目のフレームには「G」~「J」の検出データが順に配列されている。15個目のフレームが再度データなしであるが、16個目のフレームには「K」の検出データが配列されている。そして、17個目以降のフレームはデータなしが連続している。このようなデータ配列は、
図8中の上部枠内に示した一連のフレーム画像毎の判定結果に対応している。
【0075】
〔内部状態のデータ配列〕
処理テーブルの中段に示される「内部状態」のデータ配列は、上段の「検出結果」のデータ配列に基づいて決定される。具体的には、フィルタリング部142は、連続するn個(例えば3個)のデータ中に検出データが所定割合(例えば6割)以上含まれる場合、内部状態を「検出状態」とし、所定割合に満たない場合は内部状態を「未検出状態」とする。この例では、左から3個のフレームには検出データがないため、ここまでの内部状態は「未検出状態」となっている。2個目から4個目のフレームには検出データAが1つあるが、6割に満たないため内部状態は「未検出状態」のままである。3個目から5個目のフレームには検出データA及びBがあり、6割以上となることから、ここから内部状態は「検出状態」となる。以後も同様に、連続するn個のデータ中に6割以上の検出データがあれば、内部状態は「検出状態」となる。そして、15個目から17個目のフレームには検出データKが1つとなり、ここから内部状態は「未検出状態」となる。
【0076】
〔出力のデータ配列〕
処理テーブルの下段に示される「出力」のデータ配列は、フィルタリング部142が出力する検出データを示している。フィルタリング部142からの出力は、人物判定部136の判定結果に基づいて生成した擬制的な検出結果である。具体的には、「内部状態」が「検出状態」である場合、フィルタリング部142は、最後に得られた検出データをその時点での検出結果と擬制して(みなして)出力する。この例では、時系列で最初に内部状態が「検出状態」となった時点では、最後に得られた検出データBを出力している。以後は順次、検出データC、D、E、Fを出力するが、10個目のフレームで検出データなしとなった場合、この時点で最後に得られていた検出データFを出力している。次からは再び、検出データG、H、I、Jが出力されるが、15個目のフレームでは検出データなしとなっているため、この時点で最後に得られていた検出データJを出力している。そして、16個目では検出データKが最後となるため、この時点で検出データKを出力する。
【0077】
なお、上記の処理では便宜上、未検出状態では「検出データなし」といったステータス情報を出力することとしているが、未検出状態では検出情報そのものを出力しないこととしてもよい。
【0078】
また、上記の処理では、連続するn個のデータ中の割合で内部状態を決定しているが、例えば、nフレーム連続して検出データが得られた場合に内部状態を「検出状態」とし、nフレーム連続して検出データが得られない場合に内部状態を「未検出状態」とすることとしてもよい。
【0079】
〔処理プログラムの例〕
以上の説明で声掛けシステム110の各機能ブロックによる処理の概要は明らかとなっているが、以下では、フローチャートを用いて具体的な処理の手順を説明する。
【0080】
〔フィルタリング処理〕
図9は、フィルタリング部142で実行されるプログラムの一部として、フィルタリング処理の手順例を示すフローチャートである。この処理は、
図8に示す処理テーブルに対応する。以下、手順例に沿って説明する。
【0081】
ステップS100:フィルタリング部142は、nフレーム数を初回定義する。ここでは、例えばnフレーム数を「3個」と定義する。なお、定義は初回のフレームに対して処理を実行した場合のみ行い、以後のフレームで繰り返し処理を実行した場合には重ねて定義しない。また、ここで定義するnフレーム数の値は声掛けシステム110に対して任意に書き換え可能とする。
【0082】
ステップS102:フィルタリング部142は、毎フレームの人物判定部136の判定結果(検出データ)を入力する。ここで入力する判定結果は、各フレームの(検出データA)、(検出データB)、・・・(検出データK)、(検出データなし)等である。
【0083】
〔1フレーム目の処理〕
ステップS104:フィルタリング部142は、検出データがある場合(Yes)、ステップS106に進むが、
図8の処理テーブルの例では、1個目のフレームに検出データがないため(No)、ステップS118に進む。
【0084】
ステップS118:フィルタリング部142は、変数Nが0より大か確認する。ここで、変数Nは初期値0に設定されているため、ここでは変数Nは0より大とならず(No)、ステップS124に進む。
【0085】
ステップS124:フィルタリング部142は、変数Nを1インクリメントする。ここでは、初期値0であった変数Nに値「1」が代入される。
ステップS126:フィルタリング部142、内部状態を「未検出」に設定する。したがって、
図8の処理テーブルの例では、1個目のフレームで内部状態が「未検出」となる。
【0086】
ステップS128:フィルタリング部142は、検出データ「なし」を出力する。すなわち、
図8の処理テーブルの例では、1個目のフレームで出力なしとなる。
フィルタリング部142は、ここで本処理を一旦離脱(リターン)する。そして、2フレーム目について本処理を実行する。
【0087】
〔2フレーム目の処理〕
ステップS118:2フレーム目の処理では、検出データなし(ステップS104=No)の場合でも変数Nが0より大となっているため(Yes)、ステップS106に進む。
ステップS106:フィルタリング部142は、変数Nを1インクリメントする。2フレーム目では、変数Nに値「2」が代入されることになる。
【0088】
ステップS108:フィルタリング部142は、変数Nが定義したフレーム数nに等しければ(Yes)、ステップS110に進むが、ここではフレーム数n(3個)に満たないため(No)、ステップS126に進む。
【0089】
ステップS126:フィルタリング部142、内部状態を「未検出」に設定する。したがって、
図8の処理テーブルの例では、2個目のフレームで内部状態が「未検出」となる。
ステップS128:そして、フィルタリング部142は、検出データ「なし」を出力する。すなわち、
図8の処理テーブルの例では、2個目のフレームで出力なしとなる。
フィルタリング部142は、ここで本処理を一旦離脱(リターン)する。そして、3フレーム目について本処理を実行する。
【0090】
〔3フレーム目の処理〕
ステップS118:3フレーム目の処理では、検出データなし(ステップS104=No)の場合でも変数Nが0より大となっているため(Yes)、ステップS106に進む。
ステップS106:フィルタリング部142は、変数Nを1インクリメントする。3フレーム目では、変数Nに値「3」が代入されることになる。
【0091】
ステップS108:この場合、変数Nが定義したフレーム数nに等しいため(Yes)、ステップS110に進む。
ステップS110:フィルタリング部142は、nフレーム中の検出データ数と閾値x(例えばx=2)とを比較し、閾値x以上(Yes)の場合はステップS112に進む。ただし、
図8の処理テーブルの例では、3フレーム目で検出データ数は未だ0であるため(No)、ステップS120に進む。なお、閾値xの値は任意に書き換え可能である。
【0092】
ステップS120:フィルタリング部142は、内部状態を「未検出」に設定する。したがって、
図8の処理テーブルの例では、3個目のフレームで内部状態が「未検出」となる。
【0093】
ステップS122:そして、フィルタリング部142は、検出データ「なし」を出力する。すなわち、
図8の処理テーブルの例では、3個目のフレームで出力なしとなる。
ステップS116:ここで、フィルタリング部142は変数Nを1デクリメントする。これにより、変数Nに値「2=3-1」が代入されることになる。
フィルタリング部142は、ここで本処理を一旦離脱(リターン)する。そして、4フレーム目について本処理を実行する。
【0094】
〔4フレーム目の処理〕
ステップS104:
図8の処理テーブルの例では、4フレーム目で検出データAが入力されている。このため、検出データありとなり(Yes)、ステップS106に進む。
ステップS106:フィルタリング部142は、変数Nを1インクリメントする。4フレーム目では、再び変数Nに値「3=2+1」が代入されることになる。
【0095】
ステップS108:この場合、変数Nが定義したフレーム数nに等しいため(Yes)、ステップS110に進む。
ステップS110:
図8の処理テーブルの例では、4フレーム目で検出データ数は1であるため(No)、ステップS120に進む。
【0096】
ステップS120:フィルタリング部142は、内部状態を「未検出」に設定する。したがって、
図8の処理テーブルの例では、4個目のフレームで内部状態が「未検出」となる。
【0097】
ステップS122:そして、フィルタリング部142は、検出データ「なし」を出力する。すなわち、
図8の処理テーブルの例では、4個目のフレームで出力なしとなる。
ステップS116:また、フィルタリング部142は変数Nを1デクリメントする。これにより、再び変数Nに値「2=3-1」が代入されることになる。
フィルタリング部142は、ここで本処理を一旦離脱(リターン)する。そして、5フレーム目について本処理を実行する。
【0098】
〔5フレーム目の処理〕
ステップS104:
図8の処理テーブルの例では、5フレーム目で検出データBが入力されている。このため、検出データありとなり(Yes)、ステップS106に進む。
ステップS106:フィルタリング部142は、変数Nを1インクリメントする。5フレーム目では、再び変数Nに値「3=2+1」が代入される。
【0099】
ステップS108:この場合、変数Nが定義したフレーム数nに等しいため(Yes)、ステップS110に進む。
ステップS110:
図8の処理テーブルの例では、5フレーム目で検出データ数は2であるため(Yes)、ステップS112に進む。
【0100】
ステップS112:ここでフィルタリング部142は、内部状態を「検出」に設定する。したがって、
図8の処理テーブルの例では、5個目のフレームで内部状態が「検出」となる。
【0101】
ステップS114:そして、フィルタリング部142は、最新の検出データを出力する。すなわち、
図8の処理テーブルの例では、5個目のフレームで最新の検出データBが出力されることになる。
ステップS116:また、フィルタリング部142は変数Nを1デクリメントする。これにより、再び変数Nに値「2=3-1」が代入されることになる。
フィルタリング部142は、ここで本処理を一旦離脱(リターン)する。そして、6フレーム目以降についても順次、本処理を実行する。
【0102】
〔10フレーム目の処理〕
10フレーム目の処理は以下となる。
ステップS118:
図8の処理テーブルの例では、10フレーム目の処理で検出データなし(ステップS104=No)の場合でも、変数Nが0より大となっており(Yes)、ステップS106に進む。
ステップS106:フィルタリング部142は、変数Nを1インクリメントする。10フレーム目では、変数Nに値「3」が代入されることになる。
【0103】
ステップS108:この場合、変数Nが定義したフレーム数nに等しいため(Yes)、ステップS110に進む。
ステップS110:
図8の処理テーブルの例では、10フレーム目で検出データ数は2であるため(Yes)、ステップS112に進む。
【0104】
ステップS112:フィルタリング部142は、内部状態を「検出」に設定する。したがって、
図8の処理テーブルの例では、10個目のフレームで内部状態が「検出」となる。
【0105】
ステップS114:そして、フィルタリング部142は、最新の検出データを出力する。すなわち、
図8の処理テーブルの例では、10個目のフレームで最新の検出データFが出力されることになる。
ステップS116:また、フィルタリング部142は変数Nを1デクリメントする。これにより、再び変数Nに値「2=3-1」が代入されることになる。
フィルタリング部142は、ここで本処理を一旦離脱(リターン)する。そして、11フレーム目以降についても順次、本処理を実行する。
【0106】
〔17フレーム目の処理〕
17フレーム目の処理は以下となる。
ステップS118:
図8の処理テーブルの例では、17フレーム目の処理で検出データなし(ステップS104=No)の場合でも、変数Nが0より大となっており(Yes)、ステップS106に進む。
ステップS106:フィルタリング部142は、変数Nを1インクリメントする。10フレーム目では、変数Nに値「3」が代入されることになる。
【0107】
ステップS108:この場合、変数Nが定義したフレーム数nに等しいため(Yes)、ステップS110に進む。
ステップS110:
図8の処理テーブルの例では、17フレーム目で検出データ数は1であるため(No)、ステップS120に進む。
【0108】
ステップS120:フィルタリング部142は、ここで内部状態を「未検出」に設定する。したがって、
図8の処理テーブルの例では、17個目のフレームで内部状態が「未検出」となる。
【0109】
ステップS122:そして、フィルタリング部142は、検出データ「なし」を出力する。すなわち、
図8の処理テーブルの例では、17個目のフレームで出力なしとなる。
ステップS116:また、フィルタリング部142は変数Nを1デクリメントする。これにより、再び変数Nに値「2=3-1」が代入されることになる。
フィルタリング部142は、ここで本処理を一旦離脱(リターン)する。そして、18フレーム目以降についても順次、本処理を実行する。
【0110】
〔声掛け音声出力処理〕
図10は、演算部122で実行されるプログラムの一部として声掛け音声出力処理の手順例を示すフローチャートである。以下、手順例に沿って説明する。
【0111】
ステップS200:演算部122は、顔判定部144及び人物判定部136の判定結果(検知結果)を入力する。なお、人物判定部136の判定結果は、フィルタリング部142で処理された検出データとする。
【0112】
ステップS202:演算部122は、今回が「顔判定フェーズ」であれば(Yes)、ステップS204に進み、今回が「人物判定フェーズ」であれば(No)、ステップS210に進む。ここで、「顔判定フェーズ」及び「人物判定フェーズ」は、それぞれ演算部122が処理上で設定するフラグ値又は内部状態であり、初期段階で例えば「人物判定フェーズ」に設定されているものとする。よって、ステップS210に進む。
【0113】
ステップS210:演算部122は、ここで「顔判定フェーズ」を設定する。これにより、フラグ値又は内部状態が切り替わることになる。
【0114】
〔人物検知結果なし時〕
ステップS212:演算部122は、人物判定部136の判定結果(人物検知結果)がある場合(Yes)、ステップS206に進むが、ここでは、人物検知結果がなかったとして(No)、演算部122はここで本処理を一旦離脱(リターン)する。
【0115】
次回の実行時もステップS200で検知結果を入力すると、ステップS202に進む。
ステップS202:そして、今回は「顔判定フェーズ」であるため(Yes)、ステップS204に進む。
【0116】
〔顔検知結果なし時〕
ステップS204:演算部122は、顔判定部144の判定結果(顔検知結果)がある場合(Yes)、ステップS206に進むが、ここでは、顔検知結果がなかったとして(No)、ステップS208に進むものとする。
【0117】
ステップS208:演算部122は、ここで「人物判定フェーズ」を設定する。これにより、フラグ値又は内部状態が切り替わることになる。
そして、演算部122はここで本処理を一旦離脱(リターン)する。
【0118】
さらに次の回の実行時もステップS200で検知結果を入力すると、ステップS202に進む。
ステップS202:そして、この回は「人物判定フェーズ」であるため(No)、ステップS210に進む。
ステップS210:演算部122は、ここで「顔判定フェーズ」を設定する。これにより、フラグ値又は内部状態が切り替わることになる。
【0119】
〔人物検知結果あり時〕
ステップS212:ここでは、人物検知結果があるとして(Yes)、ステップS206に進む。
ステップS206:演算部122は、人物検知結果に基づいて人物までの距離を判定し、人物が検出エリアDA内に進入したかを判定する。そして、検出エリアDA内に人物がいなければ(No)、演算部122はここで本処理を離脱(リターン)する。
【0120】
さらに次の回もステップS200で検知結果を入力すると、ステップS202に進む。
ステップS202:そして、この回は引き続き「顔判定フェーズ」であるため(Yes)、ステップS204に進む。
【0121】
〔顔検知結果あり時〕
ステップS204:ここでは、顔検知結果があるとして(Yes)、ステップS206に進む。
ステップS206:演算部122は、顔検知結果に基づいて人物までの距離を判定し、人物が検出エリアDA内に進入したかを判定する。そして、検出エリアDA内に人物がいなければ(No)、演算部122はここで本処理を離脱(リターン)する。
【0122】
〔顔検知切替後〕
上記のように、顔検知結果があった場合(ステップS204=Yes)、以後で演算部122は「顔判定フェーズ」を継続する。したがって、以後は顔検知結果のみを用いて判定が行われることになる。
【0123】
〔検出エリア進入時〕
ステップS204:演算部122は、顔検知結果があるとして(Yes)、ステップS206に進む。
ステップS206:演算部122は、顔検知結果に基づいて人物が検出エリアDA内に進入したことを判定する(Yes)。この場合、演算部122はステップS214に進む。
【0124】
ステップS214:演算部122は、声掛け音声出力を出力装置126に対して指示する。これにより、人物が検出エリアDA内に進入した発話タイミングでマイク・スピーカ128から発話音声が出力される。
【0125】
以上の手順を実行すると、演算部122は本処理を離脱(リターン)する。そして、上記同様の手順を繰り返し実行する。
【0126】
このように、声掛けシステム110の各部が処理を連係又は協働して実行することにより、移動ロボットRBによる声掛けが適切に実行されることになる。
【0127】
以上のような実施形態の発話制御装置100によれば、顔検知と人物検知とを交互に利用して人物との距離を判定することにより、処理を高速化することができる。これにより、高速AIモデルによる低検知率の弱点をカバーし、適切に発話を制御することができる。したがって、例えば建設現場CSのように不特定の人物がランダムに移動している場合であっても、移動ロボットRBが日中、建設現場CS内を自律移動しながら作業者を高速に検知して声掛けし、その際に声掛けの内容を確実に人物に聞かせることができる。また、高速AIモデルを搭載することによる不確実性(低い検出率)が適切に補償され、実用的で違和感のない声掛けシステム110を実現することができる。
【0128】
また、建設現場CS等では、例えば周囲環境の明るさが充分でなく、IPカメラ112で人物を鮮明に撮像できないフレームがあったり、人物の動きが想定よりも速く、人物画像が不鮮明となるフレームがあったりする。これらの場合、nフレーム連続で検出データを得ることができないことが頻繁に生じるため、高速モデルではさらに検出率が低くなるが、フィルタリング処理のロジックを用いれば、nフレーム中のデータありとデータなしの比率(検出データが所定割合以上)であれば検出データありと擬制することで、未検出フレームの絶対数を低く抑えることができる。
【0129】
本発明は上述した実施形態に制約されることなく、種々に変形して実施することが可能である。
既に述べたように、発話制御装置100を適用する対象は移動ロボットRBに限られず、固定式のロボットであってもよいし、ロボットの形態ではない車両その他のマシン、あるいは据え置き型の機器であってもよい。
【0130】
IPカメラ112やマイク・スピーカ128の設置個数や位置、形状、向き等は適宜に選択又は変更することができる。また、AI処理高速化装置114は必須ではなく、特にこれを用いなくてもよい。
【0131】
また、各種処理(
図9、
図10)で挙げた手順例は適宜に変更可能であるし、必ずしも手順例の通りに処理が行われなくてもよい。また、各種処理をどのような契機(割り込みイベント処理又はトリガイベント処理)で実行させるかは適宜に決定してもよい。
【0132】
その他、実施形態等において図示とともに挙げた構造はあくまで好ましい一例であり、基本的な構造に各種の要素を付加し、あるいは一部を置換しても本発明を好適に実施可能であることはいうまでもない。
【符号の説明】
【0133】
100 発話制御装置
110 声掛けシステム
112 IPカメラ
118 対人距離判定部
122 演算部(音声出力部)
126 出力装置(音声出力部)
128 マイク・スピーカ(音声出力部)
136 人物判定部
142 フィルタリング部
144 顔判定部
DA 検出エリア