JP2018055167A - 自律移動装置、自律移動方法及びプログラム - Google Patents

自律移動装置、自律移動方法及びプログラム Download PDF

Info

Publication number
JP2018055167A
JP2018055167A JP2016186958A JP2016186958A JP2018055167A JP 2018055167 A JP2018055167 A JP 2018055167A JP 2016186958 A JP2016186958 A JP 2016186958A JP 2016186958 A JP2016186958 A JP 2016186958A JP 2018055167 A JP2018055167 A JP 2018055167A
Authority
JP
Japan
Prior art keywords
map
unit
face
processing
person
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.)
Pending
Application number
JP2016186958A
Other languages
English (en)
Inventor
哲郎 成川
Tetsuo Narukawa
哲郎 成川
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 JP2016186958A priority Critical patent/JP2018055167A/ja
Publication of JP2018055167A publication Critical patent/JP2018055167A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】地図作成処理及び顔認識処理を行う際の全体の処理バランスを改善できる。【解決手段】自律移動装置100は、画像を取得する撮像部31と、撮像部31が取得した画像に基づいて、自機位置を推定しながら周囲の地図を作成する地図作成部11と、撮像部31が取得した画像から人の顔を検出、識別及び追跡することによって認識する顔認識部12と、地図作成部11により基準地図情報量以上の地図が作成されたか否かを判定する地図作成判定部13と、自機の周囲に人が存在することを検出しているか否か及び推定できるか否かを判断する存否判断部14と、地図作成判定部13での判定結果及び存否判断部14での判断結果に基づき、地図作成部11の処理量及び顔認識部12の処理量を調整する処理量調整部15と、を備える。【選択図】図2

Description

本発明は、自律移動装置、自律移動方法及びプログラムに関する。
周囲の環境の地図を作成して、作成した地図に基づいて自律的に移動する自律移動装置(自律移動ロボット)が知られている。また、画像をパターン認識して、物体を識別する装置も知られている。これらの装置において、地図の作成処理及び物体の識別処理は、どちらも処理量が非常に多いため、処理バランスの改善を図る技術開発も進められている。例えば、特許文献1には、サーバがデータ量の多い第1の特徴量辞書を備え、端末装置から送信された入力画像の特徴量に基づいて、第1の特徴量辞書から抽出した、データ量の少ない第2の特徴量辞書を端末装置に送信し、端末装置が入力画像の特徴量をサーバから受信した第2の特徴量辞書と照合することにより、端末装置の処理リソースが少なくても高い物体識別の性能を発揮する物体識別システムが開示されている。
特開2012−203669号公報
特許文献1に開示されている物体識別システムは、物体識別の処理において、2つの特徴量辞書を使い分け、サーバでの特徴量辞書の処理量を増やす代わりに、端末装置での物体識別の処理量を減らすことにより、物体識別システム全体の処理バランスを改善している。しかし、この物体識別システムは地図の作成処理を行わないため、特許文献1には、地図の作成処理を含めた全体の処理バランスを改善する技術に関しては記載されておらず、また、そのような技術に関しての示唆もない。自律移動装置が周囲の環境の地図を作成しながら、顔を認識する処理を行う場合には、地図作成処理及び顔認識処理という、処理量が非常に多い2つの処理を並行して進める必要があるが、その際の全体の処理バランスを改善する仕組みについては、従来提案されていなかった。
本発明はこのような事情に鑑みてなされたものであって、地図作成処理及び顔認識処理を行う際の全体の処理バランスを改善できる自律移動装置、自律移動方法及びプログラムを提供することを目的とする。
上記目的を達成するため、本発明に係る自律移動装置は、
画像を取得する撮像部と、
前記撮像部が取得した画像に基づいて、自機位置を推定しながら周囲の地図を作成する地図作成部と、
前記撮像部が取得した画像から人の顔を認識する顔認識部と、
前記地図作成部により基準地図情報量以上の前記地図が作成されたか否かを判定する地図作成判定部と、
自機の周囲に前記人が存在することを検出しているか否か及び推定できるか否かを判断する存否判断部と、
前記地図作成判定部での判定結果及び前記存否判断部での判断結果に基づき、前記地図作成部の処理量及び前記顔認識部の処理量を調整する処理量調整部と、
を備える。
本発明によれば、地図作成処理及び顔識別処理を行う際の全体の処理バランスを改善できる。
本発明の実施形態に係る自律移動装置の外観を示す図である。 実施形態に係る自律移動装置の機能構成を示すブロック図である。 実施形態に係る自律移動装置の地図作成部及び顔認識部のソフトウェア構成を説明する図である。 実施形態に係る自律移動制御処理全体のフローチャートである。 実施形態に係る地図作成判定スレッドの処理のフローチャートである。 実施形態に係る存否判断スレッドの処理のフローチャートである。 実施形態に係る処理量調整スレッドの処理のフローチャートである。 実施形態の変形例に係る自律移動装置及びサーバの機能構成を示すブロック図である。
以下、本発明の実施形態に係る自律移動装置、自律移動方法及びプログラムについて、図面を参照して説明する。なお、図中同一または相当部分には同一符号を付す。
本発明の実施形態に係る自律移動装置100は、図1に示すように、外観上、撮像部31と駆動部32を備える。ただし、自律移動装置100の形状は、図1に示す形状に限定されない。例えば、二足歩行する人型ロボットの形状や、四足歩行する動物型ロボットの形状であっても良い。
撮像部31は、画像を撮影する単眼の撮像装置(カメラ)を備える。撮像部31は、例えば、30fps(frame per second)で画像(フレーム)を撮影して取得する。自律移動装置100は、撮像部31が逐次取得した画像に基づいて、自機位置の推定と周囲環境の地図の作成とを実時間(リアルタイム)で行いながら、自律移動を行う。また、撮像部31が取得した画像から人の顔を認識し、周囲にいる人を識別して、その人に対する動作を行う。地図の作成に用いる画像を取得する撮像部31と、人の顔を認識するのに用いる画像を取得する撮像部31とは、それぞれ専用の撮像部を別々に備えても良いし、同一の撮像部31を兼用しても良い。
駆動部32は、車輪とモータとを備える移動手段である。車輪の代わりにクローラを備えるようにしても良い。また、自律移動装置100の形状によっては、複数(例えば2本)の足を備え、足で歩行することによって移動しても良い。この場合、駆動部32は、複数の足と、その足を動かすモータとを備える。
図2に示すように、自律移動装置100は、撮像部31、駆動部32に加えて、制御部10、記憶部20、音声検出部33、通信部34、を備える。
制御部10は、CPU(Central Processing Unit)等を備え、記憶部20に記憶されたプログラムを実行することにより、後述する各部(地図作成部11、顔認識部12、地図作成判定部13、存否判断部14、処理量調整部15、動作制御部16)の機能を実現する。なお、制御部10は、マルチスレッド機能に対応しており、複数のスレッド(異なる処理の流れ)を並行して実行することができる。また、制御部10は図示しない時計部を備え、現在時刻を取得することができる。
記憶部20は、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成され、機能的には、後述する画像記憶部21、地図記憶部22、顔画像記憶部23、統計情報記憶部24を含む。ROMは制御部10のCPUが実行するプログラムや、プログラムを実行する上で予め必要なデータを記憶する。RAMは、プログラム実行中に作成されたり変更されたりするデータが記憶される。
画像記憶部21は、撮像部31が撮影した画像を記憶する。ただし、記憶容量の節約のために、撮影したすべての画像を記憶しなくてもよく、また画像自体ではなく、画像の特徴量を記憶するようにしても良い。後述するトラッキングスレッドにおいて自機位置(姿勢)の推定ができた時の画像をキーフレームと呼び、キーフレームについては、画像の情報だけでなく、その画像を撮影した時の自機位置(自機の位置及び向き)の情報もキーフレーム画像の情報に紐付けて記憶する。
地図記憶部22は、地図作成部11が作成した地図の情報(特徴点の3次元位置や障害物の3次元位置の情報)を記憶する。なお、地図作成部11により3次元位置が求められた特徴点のことをMap点と呼ぶ。
顔画像記憶部23は、顔認識部12が顔を認識する際に、撮像部31が撮影した画像中の顔と照合するための顔の画像を記憶する。顔画像記憶部23に記憶されている顔の画像には、その顔の人の氏名又はID(Identifier)コードが紐付けされており、顔認識部12は、認識した顔が誰の顔なのかを識別することができる。
統計情報記憶部24は、時間帯及び場所毎の、人の存在確率を求めるための統計情報を記憶する。
音声検出部33は、マイクロホン等の音声入力デバイスと、音声を認識する音声認識デバイスを備える。音声検出部33は、音声認識デバイスが音声を認識したら人の発した音声を検出したとみなすことにより、音声を検出する。音声検出部33は、音声認識デバイスを備える代わりに、制御部10内に音声認識部を備えることによって、音声を検出しても良い。
通信部34は、外部装置と通信するためのモジュールである。外部装置と無線通信する場合には、RF(Radio Frequency)回路、BB(Base Band)回路、アンテナ等を備える。通信部34は、例えば、Bluetooth(登録商標)に基づく近距離無線通信を行うための無線モジュールである。
次に、制御部10の機能構成について説明する。制御部10は、機能的には、地図作成部11、顔認識部12、地図作成判定部13、存否判断部14、処理量調整部15、動作制御部16を備える。
地図作成部11は、画像記憶部21に記憶されている画像の情報に基づき、SLAM(Simultaneous Localization and Mapping)により、自機位置の推定と、自機の周囲の環境の地図の作成を行う。そして、作成した地図の情報を地図記憶部22に記憶する。なお、ここでSLAMと呼んでいるのは、特定のアルゴリズムに限定する意図ではない。地図作成部11は、自機位置の推定と、自機の周囲の環境の地図の作成を行えるアルゴリズムであれば、任意のアルゴリズムを使用することができる。
顔認識部12は、撮像部31が撮影した画像の中から人の顔を検出し、検出した顔を認識することによって、周囲にいる人を識別する。
地図作成判定部13は、地図作成部11により自機の周囲の地図が作成済みか否かを判定する。より具体的には、地図作成判定部13は、地図作成部11により基準地図情報量以上の地図が作成されたか否かを判定する。ここで、基準地図情報量は、地図作成部11が作成する地図の種類によって異なるため、詳細は後述する。地図作成部11が自機位置の推定ができない場合、及び、地図作成部11が自機位置の推定はできるが自機位置の周囲の地図を作成できていない場合は、地図作成判定部13は、地図作成部11により基準地図情報量以上の地図が作成されていないと判定する。また、ユーザが自律移動装置100を持ち上げてどこか別の場所に運んだ場合や、自律移動装置100が高い場所から落下した場合等、自律移動装置100の周囲の環境が急に変化してしまう場合がある。このような場合、撮像部31で撮影した画像から本来あるべき特徴点が抽出されなかったり、異常な特徴点が抽出されたりすることにより、自機位置の推定ができなくなるため、地図作成判定部13は、地図作成部11により基準地図情報量以上の地図が作成されていないと判定する。
なお、SLAMによって作成される地図は大きく分けると2種類ある。1つは、特徴点の3次元位置の集まりを地図の情報とするランドマークベースの地図である。もう1つは地図を格子状に表現するグリッドベースの地図である。地図作成部11が作成する地図の種類によって、地図作成判定部13の判定の仕方が変わる。
地図作成部11が、ランドマークベースの地図を作成する場合は、SLAMにより、3次元位置(自機位置推定に用いることが可能な3次元位置)を算出した特徴点の数を基準特徴点数(例えば100個)以上、地図記憶部22に記憶した場合に、地図作成判定部13は、地図作成部11により基準地図情報量以上の地図が作成されたと判定する。つまり、この場合は、基準地図情報量は、基準特徴点数である。ランドマークベースの地図を使用するSLAMは、グリッドベースの地図を使用するSLAMと比較して、自機位置の推定精度が高いというメリットがある。したがって、基準特徴点数を、適切に設定することにより、地図作成部11が地図記憶部22に記憶されている地図の情報を用いて自機位置を確実に推定できるようになると、地図作成判定部13は、地図作成部11により基準地図情報量以上の地図が作成されたと判定することになる。
また、地図作成部11が、グリッドベースの地図を作成する場合は、推定した自機位置を中心とする、基準半径(例えば5m)を半径とする円内の地図の作成を完了したら、地図作成判定部13は、地図作成部11により基準地図情報量以上の地図が作成されたと判定する。ここで、基準半径を半径とする円内の地図の作成を完了したとは、その円内に存在する全てのグリッド(格子)について、情報(例えば、そのグリッド内の障害物の有無)を取得し、地図記憶部22に記憶したことをいう。つまり、この場合は、基準地図情報量は、基準半径を半径とする円内に存在する全てのグリッド数である。グリッドベースの地図を使用するSLAMは、ランドマークベースの地図を使用するSLAMと比較して、自機位置近辺の地図を素早く構築できるというメリットがある。したがって、基準半径を適切に設定することにより、自律移動装置100がすぐに移動できる範囲の地図が作成されると、地図作成判定部13は、地図作成部11により基準地図情報量以上の地図が作成されたと判定することになる。
地図作成部11が、これら2種類の地図を両方とも作成する場合は、地図作成判定部13は、どちらかの地図が条件を満たすまで作成された場合に、地図作成部11により基準地図情報量以上の地図が作成されたと判定しても良いし、2種類の地図の両方ともが条件を満たすまで作成された場合に、地図作成部11により基準地図情報量以上の地図が作成されたと判定しても良い。なお、地図作成部11が作成する地図が上記の2種類以外の場合も、その地図の特徴に応じて、地図記憶部22に格納される情報量に基準となる閾値(基準地図情報量)を設定すれば良い。そして、地図作成部11がこの基準地図情報量以上、地図の情報を地図記憶部22に記憶すると、地図作成判定部13は、地図作成部11により基準地図情報量以上の地図が作成されたと判定する。
存否判断部14は、自機の周囲に人が存在することを検出しているか否か及び推定できるか否かを判断する。撮像部31が撮影した画像の中から顔認識部12が人の顔を検出している場合は、存否判断部14は、自機の周囲に人が存在することを検出していると判断する。この判断方法は、人の存在の検出に関し、余計な検出部や処理を追加する必要がないというメリットがある。また、音声検出部33が音声を検出したら、存否判断部14は、自機の周囲に人が存在することを検出していると判断する。この判断方法は、撮像部31で撮影できていない人の存在を検出できるというメリットがある。また、自機位置が推定できている場合には、現在時刻の自機位置の周囲における人の統計的な存在確率を求め、その存在確率が基準存在確率(例えば50%)以上なら、存否判断部14は、自機の周囲に人が存在することを推定できると判断する。この判断方法は、撮像部31でも音声検出部33でも検出できなかった人の存在を推定できるというメリットがある。
ここで、人の統計的な存在確率は、現在時刻が深夜(例えば午前0時〜午前6時)なら基準存在確率未満である。また、人が平日の日中は仕事に出ている場合は、現在時刻が平日の日中(例えば午前9時〜午後6時)なら、人が家に存在する統計的な確率は基準存在確率未満である。逆に、人が家で活動している時間帯(例えば平日の午後6時〜午前0時、及び、休日の午前6時〜午前0時)なら、人が家に存在する統計的な確率は基準存在確率以上である。自律移動装置100は、ユーザの行動特性に応じた標準的な存在確率を求めるための統計情報を予め統計情報記憶部24に記憶している。存否判断部14は、地図作成部11が推定した現在の自機位置、制御部10が備える時計部が取得した現在時刻、及び、統計情報記憶部24が記憶している統計情報に基づき、自機位置の周囲に人が存在する確率を求める。そして、求めた存在確率が基準存在確率以上なら、存否判断部14は、自機の周囲に人が存在することを推定できると判断する。
なお、存否判断部14が自機の周囲に人が存在するか否かを判断する際に、温度や周囲の明るさの情報をも用いるようにしても良い。例えば、自律移動装置100が温度センサ(図示せず)を備え、温度センサが人の体温を感知したら、存否判断部14は、自機の周囲に人が存在することを推定できると判断しても良い。また、自律移動装置100が明るさセンサ(図示せず)を備え、明るさセンサが周囲が明るいことを感知したら、存否判断部14は、自機の周囲に人が存在することを推定できると判断しても良い。このようにすることによって、撮像部31でも音声検出部33でも人を検出できず、統計的な存在確率も基準存在確率未満であった場合でも、人が存在する可能性があることを推定できるというメリットがある。また、存否判断部14は、統計情報記憶部24が記憶している統計情報、温度センサが感知した温度及び明るさセンサが感知した明るさを総合的に用いて、人の存在確率を求め、その存在確率が基準存在確率以上か否かによって自機の周囲に人が存在するか否かを判断しても良い。
処理量調整部15は、地図作成判定部13の判定結果及び存否判断部14の判断結果に基づいて、地図作成部11の処理量及び顔認識部12の処理量の調整を行う。
動作制御部16は、地図作成部11が作成した地図の情報及び顔認識部12が識別した人の情報に基づき、現在の状況を把握して、自律移動装置100の次に行う動作を決定し、決定した動作を行うように駆動部32を制御する。通常、自律移動装置100は、充電器等から出発し、その付近から次第に広範囲を散策しながら地図を作成していく。そして、人物を検出したら、状況に応じて、その人に近づいたり、追跡したり、会話したり、尻尾や手を振ったり、逃げたりといった動作を行うことが考えられる。また、動作制御部16は、把握した状況又はユーザからの指示に基づいて目的地が設定された場合は、現在位置から目的地までの経路を求め、目的地に向かってその経路に沿って進むように駆動部32を制御する。
以上、自律移動装置100の構成について説明した。次に、自律移動装置100の備える地図作成部11及び顔認識部12の処理の概要について、図3を参照して説明する。
地図作成部11の処理は、トラッキングスレッド111、マッピング+バンドルアジャストメントスレッド112及びループクロージングスレッド113で行われる。地図作成部11が起動すると、この3つのスレッドが起動し、並行して処理が行われる。なお、地図作成部11の処理はこれに限定されるものではない。例えば、マッピング+バンドルアジャストメントスレッド112が、マッピングスレッドとバンドルアジャストメントスレッドの2つに分かれていても良いし、複数のスレッドが1つのスレッドにまとめられて処理されても良い。
トラッキングスレッド111は、撮像部31が撮影した画像と画像記憶部21に記憶されている画像とで、画像中の特徴点の対応を抽出することにより、自機位置を推定する。1回の処理は比較的軽く、通常毎フレーム処理を行う。なお、自機位置(姿勢)が推定できた時には、その自機位置(姿勢)の情報も、撮像部31が撮像した画像(キーフレーム)と紐付けて画像記憶部21に記憶する。
マッピング+バンドルアジャストメントスレッド112は、画像記憶部21に記憶されている画像の情報を用いて地図の作成を行う。例えば、2つのキーフレームの間で対応する特徴点を抽出し、その特徴点の3次元位置を求めて地図記憶部22に記憶することにより地図を作成する。3次元位置が求められた特徴点のことをMap点とも呼ぶので、この例の場合、地図記憶部22には、Map点の3次元位置が記憶されていく。処理は比較的重いので、通常、数フレーム〜数十フレーム毎に行う。
なお、マッピング+バンドルアジャストメントスレッド112は、処理時間に余裕のある場合にはバンドルアジャストメント処理も行う。バンドルアジャストメント処理とは、キーフレームを撮影した時の自機の姿勢(キーフレーム姿勢)とMap点の3次元位置とを同時に推定する非線形最適化法であり、Map点をキーフレーム上に投影させたときに発生する誤差が最小になるような最適化を行う処理である。このバンドルアジャストメント処理を行うことで、キーフレーム姿勢とMap点の3次元位置の精度向上を図ることができる。しかし、バンドルアジャストメント処理は大変重いため、処理時間に余裕がある場合にしか行われない。
ループクロージングスレッド113は、ループクロージング処理を行う。ループクロージング処理とは、自律移動装置100が、以前来たことのある場所の近くに戻ってきたことを検出した場合に、以前の自機位置(姿勢)の値と現在の自機位置(姿勢)の値とのずれを用いて、以前来た時から今までの軌跡中のキーフレームや、関連するMap点の3次元位置を修正する処理である。この処理は重いが、自律移動装置100が、以前来たことのある場所の近くに戻ってきたことを検出できた場合にのみ実行される。ループクロージング処理を実行すると、自機位置の推定精度及び地図の精度が向上する。
地図作成部11は、以上の3つのスレッドを並行して動作させることにより、トラッキングスレッド111による自機位置推定処理と、マッピング+バンドルアジャストメントスレッド112による地図作成処理とを並行して行う。そして、以前来たことのある場所の近くに戻ってきたことを検出できた場合には、ループクロージング処理も実行して、自機位置の推定精度及び地図の精度を向上させる。
顔認識部12の処理は、顔検出スレッド121、顔識別スレッド122及び顔トラッキングスレッド123で行われる。顔認識部12が起動すると、この3つのスレッドが起動し、並行して処理が行われる。なお、顔認識部12の処理はこれに限定されるものではない。例えば、顔トラッキングスレッド123がなくても良い。この構成でも、顔トラッキングスレッド123による顔の追跡精度よりは精度が落ちるが、顔検出スレッド121により、顔を検出し続けることが可能である。また、顔検出スレッド121と顔トラッキングスレッド123とを1つにまとめて処理しても良い。
顔検出スレッド121は、撮像部31が撮影した画像から人の顔を検出し、画像中で顔の写っている領域を取得する顔検出処理を行う。処理の重さは中程度であり、通常は、数フレーム毎に1回行う。
顔識別スレッド122は、顔検出スレッド121が検出した顔を、顔画像記憶部23に記憶されている顔の画像と比較照合することによって認識し、その顔の人物を識別する顔識別処理を行う。処理は重く、通常、顔検出スレッド121が顔を検出した際に行われる。
顔トラッキングスレッド123は、顔検出スレッド121が検出した顔を、撮像部31が逐次撮影している画像中で追跡する顔追跡処理を行う。通常は、1フレーム前の顔の位置付近で特徴点を追跡することによって行う。1回の処理は比較的軽い。
顔認識部12は、以上の3つのスレッドが動作することにより、人の顔の検出及び識別を行う。具体的には、顔検出スレッド121の顔検出処理により人を検出すると、顔識別スレッド122の顔識別処理によりその人を識別し、顔トラッキングスレッド123の顔トラッキング処理により、画像中にその人が存在する限り、その人が画像中のどこにいるかを追跡し続ける。
以上説明した地図作成部11及び顔認識部12の処理は、画像中から特徴点を抽出する処理等を繰り返し行う必要があるため、どちらの処理も非常に処理量が多く、時間がかかる。自律移動装置100は、画像の解像度を高めたり、特徴点をより多く抽出したりことによって、地図作成の精度や顔認識の精度を高めることができるが、精度を高めると処理時間が長くなり、実時間での処理が不可能となる。自律移動装置100は、実時間で動作することが求められるため、実時間内で処理できるようにするためには、どこかの精度を落とさざるを得ない場合が多い。
そこで、自律移動装置100は、状況に応じて、重要度の低い処理の処理量を減らすことによって、重要度の高い処理の処理量を増やしても実時間内で処理できるようにしている。この全体の処理バランスの改善により、重要度の高い処理について精度を向上させることができる。この仕組みについて、以下、説明する。
まず、自律移動装置100の自律移動制御処理の全体のフローについて、図4を参照して説明する。自律移動装置100が起動すると、この自律移動制御処理が開始される。
まず、制御部10は、必要な変数を初期化する(ステップS101)。この必要な変数としては、例えば、MAP_F変数(周囲の地図が作成済みであることを示すフラグ変数)及びEXIST_F変数(周囲に人が存在する可能性が高いことを示すフラグ変数)が挙げられる。ステップS101では、これらの変数を0に初期化する。なお、これらの変数は、後述する地図作成判定スレッド、存否判断スレッド及び処理量調整スレッドにおいて、アクセス可能な変数である。
次に、地図作成部11が地図作成部11の内部の各スレッドを起動する(ステップS102)。このステップで、地図作成部11は、トラッキングスレッド111、マッピング+バンドルアジャストメントスレッド112及びループクロージングスレッド113の各スレッドを起動し、各スレッドの処理が並行して実行開始される。
次に、顔認識部12が顔認識部12の内部の各スレッドを起動する(ステップS103)。このステップで、顔認識部12は、顔検出スレッド121、顔識別スレッド122及び顔トラッキングスレッド123の各スレッドを起動し、各スレッドの処理が並行して実行開始される。
次に、制御部10は、地図作成判定スレッドを起動する(ステップS104)。地図作成判定スレッドの詳細は後述する。次に、制御部10は、存否判断スレッドを起動する(ステップS105)。存否判断スレッドの詳細は後述する。次に、制御部10は、処理量調整スレッドを起動する(ステップS106)。処理量調整スレッドの詳細は後述する。
次に、制御部10は、自律移動装置100が動作を終了するか否かを判定する(ステップS107)。ユーザが自律移動装置100の電源を落とした場合や、バッテリーの残量が基準バッテリー残量(例えばバッテリーの残り3%等)を下回った場合等に、自律移動装置100は動作を終了する。自律移動装置100が動作を終了するなら(ステップS107;Yes)、処理を終了する。動作を終了しないなら(ステップS107;No)、自律移動装置100に必要な動作を行わせるために、動作制御部16が、駆動部32を制御する(ステップS108)。そして、ステップS107に戻る。
自律移動装置100は、以上説明したように、必要な各スレッドを起動した後は、動作を終了するまで、動作制御部16が、駆動部32を制御し続ける。次に、ステップS104で起動される地図作成判定スレッドの処理について、図5を参照して説明する。
まず、地図作成判定部13は、地図作成部11のトラッキングスレッド111にて、自機位置の推定を行うことが可能か否かを判定する(ステップS201)。自機位置の推定が不可能であるなら(ステップS201;No)、地図作成判定部13は、MAP_F変数に0を代入し(ステップS204)、処理をステップS205へ進める。自機位置の推定が可能なら(ステップS201;Yes)、地図作成判定部13は、地図作成部11のマッピング+バンドルアジャストメントスレッド112にて、自機の周囲の地図が作成済みであるか否かを判定する(ステップS202)。
自機位置の周囲の地図が作成済みでないなら(ステップS202;No)、地図作成判定部13は、MAP_F変数に0を代入し(ステップS204)、処理をステップS205へ進める。自機位置の周囲の地図が作成済みなら(ステップS202;Yes)、地図作成判定部13は、MAP_F変数に1を代入し(ステップS203)、処理をステップS205へ進める。
そして、地図作成判定部13は、自律移動装置100が動作を終了するか否かを判定する(ステップS205)。自律移動装置100が動作を終了するなら(ステップS205;Yes)、処理を終了する。動作を終了しないなら(ステップS205;No)、ステップS201に戻る。
以上の、地図作成判定スレッドの処理により、MAP_F変数に現在までの地図作成部11の処理状況が反映される。MAP_F変数が0というのは、自機位置の推定ができていないか、または地図が十分に作成できていないことを示す。MAP_F変数が1というのは、自機位置の推定ができており、周囲の地図も作成できていることを示す。
なお、ステップS202の判定処理の詳細は、前述したように、地図作成部11で作成する地図の種類によって異なる。地図作成部11が、ランドマークベースの地図を作成する場合は、SLAMにより、3次元位置(自機位置推定に用いることが可能な3次元位置)を算出した特徴点の数を基準特徴点数(例えば100個)以上、地図記憶部22に記憶していたら、「自機の周囲の地図は作成済み」と判定する。また、地図作成部11が、グリッドベースの地図を作成する場合は、推定した自機位置を中心とする、基準半径(例えば5m)を半径とする円内に存在する全てのグリッド(格子)について、情報(例えば、そのグリッド内の障害物の有無)を取得し、地図記憶部22に記憶していたら、「自機の周囲の地図は作成済み」と判定する。また、判定内容はこれに限らず、自機位置推定が可能になった後に、地図記憶部22に基準地図情報量以上の情報が記憶されたことを判定する内容であれば、地図の種類に応じた任意の判定方法を採用することができる。
次に、図4に示す自律移動制御の全体フローのステップS105で起動される存否判断スレッドの処理について、図6を参照して説明する。
まず、存否判断部14は、音声検出部33で音声が過去10秒以内に検出されたか否かを判定する(ステップS301)。ここで、「過去10秒以内」というのは一例であり、状況に応じて増減しても良い。音声が検出されたなら(ステップS301;Yes)、存否判断部14は、EXIST_F変数に1を代入し(ステップS305)、処理をステップS307に進める。音声が検出されていないなら(ステップS301;No)、存否判断部14は、顔認識部12の顔検出スレッド121にて、現在顔が検出されているか否かを判定する(ステップS302)。なお、この判定も、ステップS301と同様に、状況に応じて「過去n秒以内に顔が検出されたか?」等のように、検出判定の時間幅を持たせても良い。
顔が検出されているなら(ステップS302;Yes)、存否判断部14は、EXIST_F変数に1を代入し(ステップS305)、処理をステップS307に進める。顔が検出されていないなら(ステップS302;No)、存否判断部14は、地図作成部11のトラッキングスレッド111にて、自機位置の推定を行うことが可能か否かを判定する(ステップS303)。自機位置の推定が可能なら(ステップS303;Yes)、存否判断部14は、推定された自機位置の周囲に、その時刻に人が存在する確率が基準存在確率以上であるか否かを、統計情報記憶部24に記憶されている統計情報に基づいて判定する(ステップS304)。
自機位置の周囲に、現在時刻に人が存在する確率が基準存在確率以上であるなら(ステップS304;Yes)、存否判断部14は、EXIST_F変数に1を代入し(ステップS305)、処理をステップS307に進める。自機位置の周囲に、現在時刻に人が存在する確率が基準存在確率未満なら(ステップS304;No)、存否判断部14は、EXIST_F変数に0を代入し(ステップS306)、処理をステップS307に進める。
ステップS303で、自機位置の推定が可能でないなら(ステップS303;No)、存否判断部14は、EXIST_F変数に0を代入し(ステップS306)、処理をステップS307に進める。
そして、存否判断部14は、自律移動装置100が動作を終了するか否かを判定する(ステップS307)。自律移動装置100が動作を終了するなら(ステップS307;Yes)、処理を終了する。動作を終了しないなら(ステップS307;No)、ステップS301に戻る。
以上の、存否判断スレッドの処理により、EXIST_F変数に、周囲の人の存在状況が反映される。EXIST_F変数が0というのは、音声も顔も検出されず、しかも、周囲の人の統計的な存在確率が基準存在確率未満であることを示す。EXIST_F変数が1というのは、音声若しくは顔が検出されているか、又は、周囲の人の統計的な存在確率が基準存在確率以上であることを示す。
なお、トラッキングスレッド111において、自機位置が推定できている場合に、その周囲にいる人を検出できたか否かの情報を、その時の時刻情報と紐付けて、統計情報記憶部24に追加記憶していくようにしても良い。そして、存否判断スレッドでは、この統計情報記憶部24に追加記憶した情報も用いることによって、より精度を高めた「周囲に人が存在する統計的な確率」に基づいて、EXIST_F変数に値を代入するようにしても良い。
次に、図4に示す自律移動制御の全体フローのステップS106で起動される処理量調整スレッドの処理について、図7を参照して説明する。
まず、処理量調整部15は、MAP_F変数=0であるか又はEXIST_F変数=0であるか否かを判定する(ステップS401)。MAP_F変数=0であるか又はEXIST_F変数=0であるなら(ステップS401;Yes)、処理量調整部15は、地図作成部11の処理量を増やし(ステップS402)、顔認識部12の処理量を減らす(ステップS403)。そして、ステップS401に戻る。
MAP_F変数=1であり、かつ、EXIST_F変数=1であるなら(ステップS401;No)、処理量調整部15は、地図作成部の処理量を減らす(ステップS404)。そして、処理量調整部15は、顔認識部12の顔トラッキングスレッド123にて、現在顔のトラッキングが継続中であるか否かを判定する(ステップS405)。
顔のトラッキングが継続中であるなら(ステップS405;Yes)、処理量調整部15は、顔認識部12の顔検出スレッド121における新たな顔検出を停止させる(ステップS406)。これは簡単には、顔検出スレッド121を停止させれば良い。そして、処理量調整部15は、顔認識部12の顔トラッキングスレッド123の処理量を増やし(ステップS407)、ステップS409に進む。顔をトラッキングしていないなら(ステップS405;No)、処理量調整部15は、顔認識部12の顔検出スレッド121の処理量を増やし(ステップS408)、ステップS409に進む。
そして、処理量調整部15は、自律移動装置100が動作を終了するか否かを判定する(ステップS409)。自律移動装置100が動作を終了するなら(ステップS409;Yes)、処理を終了する。動作を終了しないなら(ステップS409;No)、ステップS401に戻る。
以上の、処理量調整スレッドの処理により、処理量調整部15は、自機位置の推定ができない場合、周囲の地図を作成できていない場合、又は、人の存在を検出しておらず、かつ、人の統計的な存在確率が基準存在確率未満の場合には、地図作成部11の処理量を標準地図作成処理量(地図作成部11での通常の処理量)より増やし、顔認識部12の処理量を標準顔認識処理量(顔認識部12での通常の処理量)より減らす。そして、自機位置の推定ができ、周囲の地図を作成できており、しかも、人の存在を検出したか、又は、人の統計的な存在確率が基準存在確率以上の場合には、地図作成部11の処理量を標準地図作成処理量より減らし、顔認識部12の処理量を標準顔認識処理量より増やす。
ここで、地図作成部11の処理量を標準地図作成処理量より増やす方法としては、処理量調整部15が、地図作成部11の各スレッドで使用している画像の解像度を標準地図画像解像度(地図作成部11の通常の処理で用いている画像の解像度)よりも高くしたり、特徴点の検索範囲を標準特徴点検索範囲(地図作成部11の通常の処理で特徴点を検索している範囲)より広げて特徴点を多く抽出したりすることが、挙げられる。また、処理量調整部15が、マッピング+バンドルアジャストメントスレッド112による地図作成処理の処理頻度を標準地図作成頻度(通常の地図作成処理の処理頻度。例えば5フレーム毎に1回。)より多くすることによって、地図作成部11の処理量を標準地図作成処理量より増やしても良い。例えば、通常5フレーム毎に1回地図作成処理を行っているなら、これを3フレーム毎に1回等に増やしても良い。これにより、地図記憶部22に記憶される情報量を多くすることができる。また、ループクロージングスレッド113がループクロージングする条件を少し緩めたり(例えば、特徴点の類似判断の判断基準を緩め、類似度が基準類似度(通常の類似判断で用いる類似度)よりも例えば20%小さくても、類似する特徴点であると判断する)、自律移動装置100が積極的に回転したり(これにより、比較対象となる特徴点が増える)することで、ループクロージング処理の頻度を高めることにより、処理量調整部15が地図作成部11の処理量を標準地図作成処理量より増やしても良い。これにより、画像記憶部21や地図記憶部22に記憶されている情報の精度を向上させることができる。
また、地図作成部11の処理量を標準地図作成処理量より減らす方法としては、マッピング+バンドルアジャストメントスレッド112による地図作成処理の処理頻度を標準地図作成頻度より少なくしたり、マッピング+バンドルアジャストメントスレッド112及びループクロージングスレッド113を停止させることにより、地図作成処理、バンドルアジャストメント処理及びループクロージング処理を停止させたりすることが、挙げられる。処理量調整部15が、地図作成部11のこれらの処理を停止させ、トラッキングスレッド111による自機位置の推定処理のみを行わせる(つまり、地図を作成させず、バンドルアジャストメントやループクロージング処理も行わせない)ことによって、地図作成部11の処理量を標準地図作成処理量より減らすことができる。また、地図作成部11の各スレッドで使用している画像の解像度を標準地図画像解像度より低くしたり、特徴点の検索範囲を標準特徴点検索範囲より狭くして特徴点の抽出数を少なくしたりすることによっても、処理量調整部15は、地図作成部11の処理量を標準地図作成処理量より減らすことができる。処理量調整部15は、地図作成部11の処理量を減らすことによって、自律移動装置100の処理リソースを、顔認識部12の処理に振り向けることができる。
また、顔認識部12の処理量を標準顔認識処理量より増やす方法としては、処理量調整部15が、顔認識部12の各スレッドで使用している画像の解像度を標準顔画像解像度(顔画像部12の通常の処理で用いている画像の解像度)よりも高くしたり、抽出する特徴点を標準顔画像特徴点数(顔画像部12の通常の処理で抽出している顔画像の特徴点数)よりも増やしたりすることが挙げられる。また、現在顔トラッキングスレッド123にて、顔をトラッキング中(顔追跡処理を実行中)であるか否かに応じて顔認識部12の各スレッド間でも処理量を調整するのが望ましい。例えば、顔追跡処理を実行中でないなら、処理量調整部15は、顔検出スレッド121による顔を検出する際に用いる画像の解像度を標準顔画像解像度より高くしたり、顔検出処理の頻度を標準顔検出頻度(顔検出スレッド121での顔検出処理の通常の処理頻度。例えば3フレーム毎に1回。)より多くしたりする。例えば、毎フレーム顔検出処理を行う等である。これにより、顔検出の精度を向上させることができる。
なお、顔トラッキングスレッド123にて顔追跡処理を実行中なら、現在追跡中の顔に集中した方が処理の効率化が図れるため、顔認識部12は、顔検出スレッド121を停止して、新たな顔の検出を停止し、顔トラッキングスレッド123による顔のトラッキング処理(顔追跡処理)の処理量を標準顔追跡処理量(顔トラッキングスレッド123の通常の処理量)より増やして、現在トラッキングしている顔を見失わないようにする。例えば、使用する画像の解像度を標準顔画像解像度より高くしたり、抽出する特徴点を標準顔画像特徴点数より増やすことにより、顔の一部が隠れたり、顔の向きが変化したりしても、顔のトラッキング(追跡)を継続できるようになる。
また、顔認識部12の処理量を標準顔認識処理量より減らす方法としては、処理量調整部15が、顔認識部12の各スレッドで使用している画像の解像度を標準顔画像解像度より低くしたり(例えば縦横とも1/2のピクセル数にする)、抽出する特徴点を標準顔画像特徴点数より減らしたりすることが挙げられる。また、処理量調整部15が、顔検出スレッド121による顔検出処理の頻度を標準顔検出頻度より少なくしたりすることも挙げられる。例えば、通常は3フレームごとに1回、顔検出処理を行っているなら、その頻度を6フレーム毎に1回とか、10フレーム毎に1回にする等である。処理量調整部15は、顔認識部12の処理量を減らすことによって、自律移動装置100の処理リソースを、地図作成部11の処理に振り向けることができる。
また、こちらも、顔トラッキングスレッド123にて、顔追跡処理を実行中であるか否かに応じて顔認識部12の各スレッド間で処理量を調整するのが望ましい。例えば、顔追跡処理を実行中でないなら、顔認識部12は、顔検出スレッド121による顔検出処理の処理頻度を標準顔検出頻度より少なくし、顔検出スレッド121が顔を検出するまでは顔トラッキングスレッド123による顔の追跡処理を停止することができる。そして、顔追跡処理を実行中なら、現在追跡中の顔に集中した方が処理の効率化が図れるため、顔認識部12は、顔検出スレッド121を停止する。これにより、新たな顔の検出が停止されるので、顔識別スレッド122の処理も実質的に停止し、顔トラッキングスレッド123による顔追跡処理のみが行われることになる。
以上説明したように、自律移動装置100は、自機位置の推定状況、地図の作成状況及び人の検出又は推定状況に基づき、地図作成部11の処理と顔認識部12の処理の処理量を処理量調整部15が調整することによって、現在の状況下でより重要度の高い処理に処理リソースを割り当て、重要度の低い処理は停止したり間引いたりすることによって、自律移動装置100の全体の処理バランスを改善することができる。
なお、本発明に係る自律移動装置100の各機能は、通常のPC(Personal Computer)等のコンピュータによっても実施することができる。具体的には、上記実施形態では、自律移動装置100が行う自律移動制御処理のプログラムが、記憶部20のROMに予め記憶されているものとして説明した。しかし、プログラムを、USB(Universal Serial Bus)メモリ、フレキシブルディスク、HDD(Hard Disk Drive)、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto−Optical Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。また、このプログラムは、ネットワークを介してコンピュータにダウンロードされてもよい。
また、このコンピュータは自律移動装置100に内蔵してもよいし、自律移動装置100とは別個に存在してもよい。すなわち、図8に示すように、制御部や記憶部を外部のサーバ200に設けてもよい。クラウドコンピューティング技術により、自律移動装置100の制御部10は、撮像部31や音声検出部33等で取得したデータを通信部34を介して外部のサーバ200に送信し、演算処理を該サーバ200にさせた後に、サーバ200が行った演算処理の結果を通信部34を介して受信し、駆動部32等を制御してもよい。図8では、サーバ200の制御部40が地図作成部11、顔認識部12、地図作成判定部13、存否判断部14、処理量調整部15及び動作制御部16を備える構成となっているが、サーバ200の制御部40と自律移動装置100の制御部10とのどちらかに各部が備わっていればよい。各部をサーバ200の制御部40が備えるか自律移動装置100の制御部10が備えるかについては、任意である。自律移動装置100の記憶部20と、サーバ200の記憶部50についても同様である。
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
画像を取得する撮像部と、
前記撮像部が取得した画像に基づいて、自機位置を推定しながら周囲の地図を作成する地図作成部と、
前記撮像部が取得した画像から人の顔を認識する顔認識部と、
前記地図作成部により基準地図情報量以上の前記地図が作成されたか否かを判定する地図作成判定部と、
自機の周囲に前記人が存在することを検出しているか否か及び推定できるか否かを判断する存否判断部と、
前記地図作成判定部での判定結果及び前記存否判断部での判断結果に基づき、前記地図作成部の処理量及び前記顔認識部の処理量を調整する処理量調整部と、
を備える自律移動装置。
(付記2)
前記処理量調整部は、
前記地図作成判定部が基準地図情報量以上の前記地図が作成されていないと判定した場合、又は、前記存否判断部が前記人が存在することを検出しておらず推定もできないと判断した場合は、前記顔認識部の処理量を減らして前記地図作成部の処理量を増やし、
前記地図作成判定部が基準地図情報量以上の前記地図が作成されたと判定し、かつ、前記存否判断部が前記人が存在することを検出しているか又は推定できると判断した場合は、前記地図作成部の処理量を減らして前記顔認識部の処理量を増やす、
付記1に記載の自律移動装置。
(付記3)
前記顔認識部の行う処理は、前記画像から人の顔を検出し、画像中で顔の写っている領域を取得する顔検出処理と、前記顔検出処理で検出した顔を前記撮像部が逐次取得している画像中で追跡する顔追跡処理と、を含み、
前記顔認識部は、前記顔追跡処理を実行中である場合は、前記顔検出処理は行わない、
付記1又は2に記載の自律移動装置。
(付記4)
前記処理量調整部は、
前記地図作成判定部が基準地図情報量以上の前記地図が作成されたと判定し、かつ、前記存否判断部が前記人が存在することを検出しているか又は推定できると判断した場合は、前記地図作成部に前記地図を作成させないことによって、前記地図作成部の処理量を減らす、
付記1から3のいずれか1つに記載の自律移動装置。
(付記5)
前記顔認識部の行う処理は、前記画像から人の顔を検出し、画像中で顔の写っている領域を取得する顔検出処理を含み、
前記処理量調整部は、
前記地図作成判定部が基準地図情報量以上の前記地図が作成されていないと判定した場合、又は、前記存否判断部が前記人が存在することを検出しておらず推定もできないと判断した場合は、前記顔認識部の前記顔検出処理の処理頻度を標準顔検出頻度より少なくすることによって、前記顔認識部の処理量を減らす、
付記1から4のいずれか1つに記載の自律移動装置。
(付記6)
前記処理量調整部は、
前記地図作成判定部が基準地図情報量以上の前記地図が作成されていないと判定した場合、又は、前記存否判断部が前記人が存在することを検出しておらず推定もできないと判断した場合は、前記地図作成部の地図作成処理の処理頻度を標準地図作成頻度より多くすることによって、前記地図作成部の処理量を増やす、
付記1から5のいずれか1つに記載の自律移動装置。
(付記7)
前記顔認識部の行う処理は、前記画像から人の顔を検出し、画像中で顔の写っている領域を取得する顔検出処理を含み、
前記処理量調整部は、
前記地図作成判定部が基準地図情報量以上の前記地図が作成されたと判定し、かつ、前記存否判断部が前記人が存在することを検出しているか又は推定できると判断した場合は、前記顔認識部の前記顔検出処理の処理頻度を標準顔検出頻度より多くすることによって、前記顔認識部の処理量を増やす、
付記1から6のいずれか1つに記載の自律移動装置。
(付記8)
前記地図作成部は、前記撮像部が取得した画像中の特徴点の3次元位置を算出することによって前記地図を作成し、
前記地図作成判定部は、前記地図作成部が自機位置を推定した後に、3次元位置を算出した前記特徴点の数が基準特徴点数以上になった場合に、基準地図情報量以上の前記地図が作成されたと判定する、
付記1から7のいずれか1つに記載の自律移動装置。
(付記9)
前記地図作成判定部は、前記地図作成部が自機位置を推定した後に、自機位置を中心とする基準半径の円内の地図の情報を取得した場合に、基準地図情報量以上の前記地図が作成されたと判定する、
付記1から8のいずれか1つに記載の自律移動装置。
(付記10)
前記顔認識部の行う処理は、前記画像から人の顔を検出し、画像中で顔の写っている領域を取得する顔検出処理を含み、
前記存否判断部は、前記顔認識部が前記顔検出処理により前記人の顔を検出している場合は、自機の周囲に人が存在することを検出していると判断する、
付記1から9のいずれか1つに記載の自律移動装置。
(付記11)
人の音声を検出する音声検出部をさらに備え、
前記存否判断部は、前記音声検出部が、前記音声を検出している場合は、自機の周囲に人が存在することを検出していると判断する、
付記1から10のいずれか1つに記載の自律移動装置。
(付記12)
現在時刻を取得する時計部と、
場所及び時間帯毎の、人の統計的な存在確率を求めるための統計情報を記憶する統計情報記憶部と、
をさらに備え、
前記存否判断部は、前記地図作成部が自機位置を推定でき、かつ、推定した前記自機位置、前記時計部が取得した現在時刻、及び、前記統計情報記憶部に記憶されている前記統計情報に基づいて求めた前記人の統計的な存在確率が基準存在確率以上の場合に、自機の周囲に人が存在することを推定できると判断する、
付記1から11のいずれか1つに記載の自律移動装置。
(付記13)
人の顔認識を行いながら周囲の地図作成を行う自律移動方法であって、
周囲の地図を作成できていない場合又は人の存在を検出しておらず推定もできない場合は、顔認識処理の処理量を減らして地図作成処理の処理量を増やし、
周囲の地図を作成できており、人の存在を検出しているか又は推定できる場合は、地図作成処理の処理量を減らして顔認識処理の処理量を増やす、
自律移動方法。
(付記14)
自機位置を推定しながら周囲の地図を作成する地図作成ステップと、
人の顔を認識する顔認識ステップと、
前記地図作成ステップで基準地図情報量以上の前記地図が作成されたか否かを判定する地図作成判定ステップと、
自機の周囲に前記人が存在することを検出しているか否か及び推定できるか否かを判断する存否判断ステップと、
前記地図作成判定ステップでの判定結果及び前記存否判断ステップでの判断結果に基づき、前記地図作成ステップの処理量及び前記顔認識ステップの処理量を調整する処理量調整ステップと、
を含む自律移動方法。
(付記15)
コンピュータを、
自機位置を推定しながら周囲の地図を作成する地図作成部、
人の顔を認識する顔認識部、
前記地図作成部により基準地図情報量以上の前記地図が作成されたか否かを判定する地図作成判定部、
自機の周囲に前記人が存在することを検出しているか否か及び推定できるか否かを判断する存否判断部、
前記地図作成判定部での判定結果及び前記存否判断部での判定結果に基づき、前記地図作成部の処理量及び前記顔認識部の処理量を調整する処理量調整部、
として機能させるためのプログラム。
10,40…制御部、11…地図作成部、12…顔認識部、13…地図作成判定部、14…存否判断部、15…処理量調整部、16…動作制御部、20,50…記憶部、21…画像記憶部、22…地図記憶部、23…顔画像記憶部、24…統計情報記憶部、31…撮像部、32…駆動部、33…音声検出部、34,61…通信部、100…自律移動装置、111…トラッキングスレッド、112…マッピング+バンドルアジャストメントスレッド、113…ループクロージングスレッド、121…顔検出スレッド、122…顔識別スレッド、123…顔トラッキングスレッド、200…サーバ

Claims (15)

  1. 画像を取得する撮像部と、
    前記撮像部が取得した画像に基づいて、自機位置を推定しながら周囲の地図を作成する地図作成部と、
    前記撮像部が取得した画像から人の顔を認識する顔認識部と、
    前記地図作成部により基準地図情報量以上の前記地図が作成されたか否かを判定する地図作成判定部と、
    自機の周囲に前記人が存在することを検出しているか否か及び推定できるか否かを判断する存否判断部と、
    前記地図作成判定部での判定結果及び前記存否判断部での判断結果に基づき、前記地図作成部の処理量及び前記顔認識部の処理量を調整する処理量調整部と、
    を備える自律移動装置。
  2. 前記処理量調整部は、
    前記地図作成判定部が基準地図情報量以上の前記地図が作成されていないと判定した場合、又は、前記存否判断部が前記人が存在することを検出しておらず推定もできないと判断した場合は、前記顔認識部の処理量を減らして前記地図作成部の処理量を増やし、
    前記地図作成判定部が基準地図情報量以上の前記地図が作成されたと判定し、かつ、前記存否判断部が前記人が存在することを検出しているか又は推定できると判断した場合は、前記地図作成部の処理量を減らして前記顔認識部の処理量を増やす、
    請求項1に記載の自律移動装置。
  3. 前記顔認識部の行う処理は、前記画像から人の顔を検出し、画像中で顔の写っている領域を取得する顔検出処理と、前記顔検出処理で検出した顔を前記撮像部が逐次取得している画像中で追跡する顔追跡処理と、を含み、
    前記顔認識部は、前記顔追跡処理を実行中である場合は、前記顔検出処理は行わない、
    請求項1又は2に記載の自律移動装置。
  4. 前記処理量調整部は、
    前記地図作成判定部が基準地図情報量以上の前記地図が作成されたと判定し、かつ、前記存否判断部が前記人が存在することを検出しているか又は推定できると判断した場合は、前記地図作成部に前記地図を作成させないことによって、前記地図作成部の処理量を減らす、
    請求項1から3のいずれか1項に記載の自律移動装置。
  5. 前記顔認識部の行う処理は、前記画像から人の顔を検出し、画像中で顔の写っている領域を取得する顔検出処理を含み、
    前記処理量調整部は、
    前記地図作成判定部が基準地図情報量以上の前記地図が作成されていないと判定した場合、又は、前記存否判断部が前記人が存在することを検出しておらず推定もできないと判断した場合は、前記顔認識部の前記顔検出処理の処理頻度を標準顔検出頻度より少なくすることによって、前記顔認識部の処理量を減らす、
    請求項1から4のいずれか1項に記載の自律移動装置。
  6. 前記処理量調整部は、
    前記地図作成判定部が基準地図情報量以上の前記地図が作成されていないと判定した場合、又は、前記存否判断部が前記人が存在することを検出しておらず推定もできないと判断した場合は、前記地図作成部の地図作成処理の処理頻度を標準地図作成頻度より多くすることによって、前記地図作成部の処理量を増やす、
    請求項1から5のいずれか1項に記載の自律移動装置。
  7. 前記顔認識部の行う処理は、前記画像から人の顔を検出し、画像中で顔の写っている領域を取得する顔検出処理を含み、
    前記処理量調整部は、
    前記地図作成判定部が基準地図情報量以上の前記地図が作成されたと判定し、かつ、前記存否判断部が前記人が存在することを検出しているか又は推定できると判断した場合は、前記顔認識部の前記顔検出処理の処理頻度を標準顔検出頻度より多くすることによって、前記顔認識部の処理量を増やす、
    請求項1から6のいずれか1項に記載の自律移動装置。
  8. 前記地図作成部は、前記撮像部が取得した画像中の特徴点の3次元位置を算出することによって前記地図を作成し、
    前記地図作成判定部は、前記地図作成部が自機位置を推定した後に、3次元位置を算出した前記特徴点の数が基準特徴点数以上になった場合に、基準地図情報量以上の前記地図が作成されたと判定する、
    請求項1から7のいずれか1項に記載の自律移動装置。
  9. 前記地図作成判定部は、前記地図作成部が自機位置を推定した後に、自機位置を中心とする基準半径の円内の地図の情報を取得した場合に、基準地図情報量以上の前記地図が作成されたと判定する、
    請求項1から8のいずれか1項に記載の自律移動装置。
  10. 前記顔認識部の行う処理は、前記画像から人の顔を検出し、画像中で顔の写っている領域を取得する顔検出処理を含み、
    前記存否判断部は、前記顔認識部が前記顔検出処理により前記人の顔を検出している場合は、自機の周囲に人が存在することを検出していると判断する、
    請求項1から9のいずれか1項に記載の自律移動装置。
  11. 人の音声を検出する音声検出部をさらに備え、
    前記存否判断部は、前記音声検出部が、前記音声を検出している場合は、自機の周囲に人が存在することを検出していると判断する、
    請求項1から10のいずれか1項に記載の自律移動装置。
  12. 現在時刻を取得する時計部と、
    場所及び時間帯毎の、人の統計的な存在確率を求めるための統計情報を記憶する統計情報記憶部と、
    をさらに備え、
    前記存否判断部は、前記地図作成部が自機位置を推定でき、かつ、推定した前記自機位置、前記時計部が取得した現在時刻、及び、前記統計情報記憶部に記憶されている前記統計情報に基づいて求めた前記人の統計的な存在確率が基準存在確率以上の場合に、自機の周囲に人が存在することを推定できると判断する、
    請求項1から11のいずれか1項に記載の自律移動装置。
  13. 人の顔認識を行いながら周囲の地図作成を行う自律移動方法であって、
    周囲の地図を作成できていない場合又は人の存在を検出しておらず推定もできない場合は、顔認識処理の処理量を減らして地図作成処理の処理量を増やし、
    周囲の地図を作成できており、人の存在を検出しているか又は推定できる場合は、地図作成処理の処理量を減らして顔認識処理の処理量を増やす、
    自律移動方法。
  14. 自機位置を推定しながら周囲の地図を作成する地図作成ステップと、
    人の顔を認識する顔認識ステップと、
    前記地図作成ステップで基準地図情報量以上の前記地図が作成されたか否かを判定する地図作成判定ステップと、
    自機の周囲に前記人が存在することを検出しているか否か及び推定できるか否かを判断する存否判断ステップと、
    前記地図作成判定ステップでの判定結果及び前記存否判断ステップでの判断結果に基づき、前記地図作成ステップの処理量及び前記顔認識ステップの処理量を調整する処理量調整ステップと、
    を含む自律移動方法。
  15. コンピュータを、
    自機位置を推定しながら周囲の地図を作成する地図作成部、
    人の顔を認識する顔認識部、
    前記地図作成部により基準地図情報量以上の前記地図が作成されたか否かを判定する地図作成判定部、
    自機の周囲に前記人が存在することを検出しているか否か及び推定できるか否かを判断する存否判断部、
    前記地図作成判定部での判定結果及び前記存否判断部での判定結果に基づき、前記地図作成部の処理量及び前記顔認識部の処理量を調整する処理量調整部、
    として機能させるためのプログラム。
JP2016186958A 2016-09-26 2016-09-26 自律移動装置、自律移動方法及びプログラム Pending JP2018055167A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016186958A JP2018055167A (ja) 2016-09-26 2016-09-26 自律移動装置、自律移動方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016186958A JP2018055167A (ja) 2016-09-26 2016-09-26 自律移動装置、自律移動方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2018055167A true JP2018055167A (ja) 2018-04-05

Family

ID=61836713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016186958A Pending JP2018055167A (ja) 2016-09-26 2016-09-26 自律移動装置、自律移動方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2018055167A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021106025A (ja) * 2018-07-06 2021-07-26 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US20210232845A1 (en) * 2018-07-06 2021-07-29 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
JP2021530812A (ja) * 2018-07-23 2021-11-11 マジック リープ, インコーポレイテッドMagic Leap, Inc. マッピングのためのシステムおよび方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021106025A (ja) * 2018-07-06 2021-07-26 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US20210232845A1 (en) * 2018-07-06 2021-07-29 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
US11830216B2 (en) 2018-07-06 2023-11-28 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
JP2021530812A (ja) * 2018-07-23 2021-11-11 マジック リープ, インコーポレイテッドMagic Leap, Inc. マッピングのためのシステムおよび方法
JP7319350B2 (ja) 2018-07-23 2023-08-01 マジック リープ, インコーポレイテッド マッピングのためのシステムおよび方法

Similar Documents

Publication Publication Date Title
CN107635204B (zh) 一种运动行为辅助的室内融合定位方法及装置、存储介质
EP3194891B1 (en) Accounting for indoor-outdoor transitions during position determination
EP3399702B1 (en) Home control using a smart-watch
CN106575150B (zh) 使用运动数据识别手势的方法和可穿戴计算设备
WO2012035707A1 (ja) 地図生成装置、地図生成方法、移動体の移動方法、及びロボット装置
CN107336243B (zh) 基于智能移动终端的机器人控制系统及控制方法
US11217246B2 (en) Communication robot and method for operating the same
US9535506B2 (en) Efficient gesture processing
CN109325456B (zh) 目标识别方法、装置、目标识别设备及存储介质
US20140129560A1 (en) Context labels for data clusters
WO2014110204A1 (en) Positioning and mapping based on virtual landmarks
CN104487915A (zh) 维持扩增的连续性
EP2588994A1 (en) Adaptation of context models
CN108344419B (zh) 一种充电座的搜寻方法
JP2016045874A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2018055167A (ja) 自律移動装置、自律移動方法及びプログラム
US11216655B2 (en) Electronic device and controlling method thereof
US11378407B2 (en) Electronic apparatus and method for implementing simultaneous localization and mapping (SLAM)
CN111595344A (zh) 一种基于地图信息辅助的多姿态下行人行位推算方法
JP2019159520A (ja) 自律移動装置、自律移動方法及びプログラム
US11023775B2 (en) Information processing method and information processing system
US20180246512A1 (en) Proactive Acquisition of Data for Maintenance of Appearance Model by Mobile Robot
US11195108B2 (en) Abnormality detection device and abnormality detection method for a user
US11006238B1 (en) Method for profiling based on foothold and terminal using the same
US10627898B2 (en) Control method, control device, system and motor vehicle comprising such a control device