(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-16
(45)【発行日】2024-05-24
(54)【発明の名称】地図生成装置、地図利用システム及びプログラム
(51)【国際特許分類】
G05D 1/249 20240101AFI20240517BHJP
G05D 1/622 20240101ALI20240517BHJP
【FI】
G05D1/249
G05D1/622
(21)【出願番号】P 2021112632
(22)【出願日】2021-07-07
【審査請求日】2023-08-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】高橋 裕章
【審査官】渡邊 捷太郎
(56)【参考文献】
【文献】特開2016-90864(JP,A)
【文献】特開2020-21171(JP,A)
【文献】特開2016-192040(JP,A)
【文献】米国特許出願公開第2010/0223008(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/20 ー 1/87
(57)【特許請求の範囲】
【請求項1】
移動制御対象のための環境の地図を生成する地図生成装置であって、
前記環境に配置された環境センサによって取得される、前記環境における移動体の移動状況が反映された時系列でのセンサデータを解析して、個別の移動体ごとの前記環境内における動線を、当該動線上での移動状態及び静止状態の判定結果と紐づけて取得する動線生成部と、
前記取得した動線を解析することで、動線が存在しないと判定される箇所を障害物であるものと判定する第1処理と、動線が存在すると判定される箇所を障害物又は通路であるものと判定する第2処理と、を実行することにより前記環境の地図を生成する地図生成部と、を備え、
前記第2処理では、動線が存在すると判定される箇所のうち、動線における静止状態が分布している箇所を、障害物であるものとして判定することを特徴とする地図生成装置。
【請求項2】
前記地図生成部では、前記第1処理における環境内の各箇所が障害物に該当するかの判定及び前記第2処理における環境内の各箇所が障害物又は通路のいずれに該当するかの判定を、前記環境を区切った単位格子ごとに行うことを特徴とする請求項1に記載の地図生成装置。
【請求項3】
前記第2処理では、動線が存在すると判定される箇所のうち、動線における静止状態が分布している箇所を、移動体が異なる動線における静止状態の存在数が多いか少ないかによって区別し、少ないものとして区別された箇所については当該箇所の近傍まで拡張させて障害物であるものと判定し、多いものとして区別された箇所については当該箇所の近傍まで拡張させることなく障害物であるものとして判定することを特徴とする請求項1または2に記載の地図生成装置。
【請求項4】
前記地図生成部ではさらに、動線が存在しないと判定される箇所のうち、領域としての大きさが小さいものと判定され、且つ、当該領域の周囲に、移動状態の動線が存在すると判定される箇所が多く存在するものと判定される箇所を、通路であるものと判定することを特徴とする請求項1ないし3のいずれかに記載の地図生成装置。
【請求項5】
前記環境センサはカメラであり、前記時系列でのセンサデータは前記カメラが撮影した映像であることを特徴とする請求項1ないし4のいずれかに記載の地図生成装置。
【請求項6】
前記動線生成部は、前記映像の各フレーム画像について、移動体を検出し、異なる時刻のフレーム画像において検出された移動体の間で共通の識別子を割り当てることにより、当該識別子で識別される個別の移動体ごとの前記環境内における動線を、当該動線上での移動状態及び静止状態の判定結果と紐づけて前記取得することを特徴とする請求項5に記載の地図生成装置。
【請求項7】
前記動線生成部では、個別の移動体について前記映像上で検出された位置の、隣接時刻における変化が少ないと判定される場合に、前記動線上で静止状態にあるものとして判定することを特徴とする請求項6に記載の地図生成装置。
【請求項8】
前記移動制御対象はロボットであり、前記移動体は人物であることを特徴とする請求項1ないし7のいずれかに記載の地図生成装置。
【請求項9】
請求項1ないし8のいずれかに記載の前記地図生成装置と、
前記環境において指定される目的地へとロボットを到達させるナビゲーションを行うナビゲーション装置と、を備える地図利用システムであって、
前記ナビゲーション装置は、
前記環境に配置されたセンサの検出データより前記ロボットの前記環境における座標を検出することで、前記地図生成装置が生成した地図において、当該座標から前記目的地へと前記ロボットを移動させるための指示を生成することを特徴とする地図利用システム。
【請求項10】
コンピュータを請求項1ないし8のいずれかに記載の地図生成装置または請求項9に記載の地図利用システムとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット等のナビゲーション用途で利用可能な地図を生成する地図生成装置、地図利用システム及びプログラムに関する。
【背景技術】
【0002】
地図生成の手法として非特許文献1等に開示されるSLAM(自己位置推定及び環境地図作成の同時実行;Simultaneous Localization and Mapping)が知られている。SLAMはロボットが巡回して搭載されたセンサで計測することで自己位置を推定しながら環境の地図を生成する。地図にはロボットが移動できる場所を表す通路が描かれている。ロボットは現在地から目的地までに辿る複数の通路を選択して連結した経路を生成する。地図と経路はロボットに格納される。あるいはロボット自身に障害物検知や障害物回避の機能がないために、外部のサーバ(以降、外部サーバ)の指示を受けて走行するロボットの場合は、地図と経路は外部サーバに格納される。
【0003】
環境において、例えば障害物の配置が変わる際は、地図の再作成が行われる。しかし、SLAMによる地図の再作成には、定期的に環境の再計測を行うためにロボット自身が環境を巡回する必要がある。
【0004】
一方で、ロボットの巡回を必要としない方法として、環境に設置されたセンサ(以降、環境センサ)で特定した通行人の軌跡(以降、人物動線)をロボットが通過できる通路と見なし、通路が描かれた地図から経路を生成する手法が存在する。
【0005】
人物動線を用いた経路を生成する手法として、特許文献1と非特許文献2がある。特許文献1は、施設内の利用者の流れを人物動線として把握する施設状況把握システムである。環境カメラから利用者の流れの状況を把握し、通行人にとって移動負荷の高い混雑した通路や階段を避けた経路を生成する。この経路はロボットにも利用することができる。非特許文献2は、人間の移動を真似てロボットを移動させることを目的とし、ショッピングモールに設置した環境カメラから得られた人物動線に対して逆強化学習(GAIL)を用いて、ロボットの経路を生成する。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【文献】「友納正裕,"移動ロボットのための確率的な自己位置推定と地図構築", 日本ロボット学会誌, 2011.」
【文献】International Conference on Intelligent Robots and Systems (IROS) October 25-29, 2020, Learning Human Navigation Behavior Using Measured Human Trajectories in Crowded Spaces
【発明の概要】
【発明が解決しようとする課題】
【0008】
実際に地図生成を行う対象となる環境においては、人物やロボット等が通行しうる通路であっても、その通路の通行幅の全体あるいは一部に渡って、通行を妨げる障害物(例えば、椅子などのような什器)が不定期に配置されるという状況が起こりうる。
【0009】
しかしながら以上のような従来技術では、ロボット巡回を必須とせずに経路の地図生成を行う際に、このような障害物を回避できる経路を設定して地図生成を行うことが困難であった。
【0010】
特許文献1では、手作業で通過点と、通過点を結ぶ通路を設定する。それにより建物のレイアウトに沿った移動はできる。しかし、地図はグラフ構造で表現され、通路は幅を持たないため、通路内における障害物を回避すること(局所的回避)ができない。そのため、外部サーバが参照する地図の生成に特許文献1を利用すると、外部サーバの指示を受けて走行するロボットが障害物へ衝突するおそれがある。
【0011】
また非特許文献2では、通行人が椅子などの什器に滞在する人物動線を学習して生成した場合は通路に什器が含まれるため、特許文献1の場合と同様にロボットが障害物へ衝突するおそれがある。
【0012】
上記従来技術の課題に鑑み、本発明は不定期に配置されるものも含む障害物を適切に認識した地図を生成する地図生成装置、地図利用システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
上記目的を達成するため、本発明は、移動制御対象のための環境の地図を生成する地図生成装置であって、前記環境に配置された環境センサによって取得される、前記環境における移動体の移動状況が反映された時系列でのセンサデータを解析して、個別の移動体ごとの前記環境内における動線を、当該動線上での移動状態及び静止状態の判定結果と紐づけて取得する動線生成部と、前記取得した動線を解析することで、動線が存在しないと判定される箇所を障害物であるものと判定する第1処理と、動線が存在すると判定される箇所を障害物又は通路であるものと判定する第2処理と、を実行することにより前記環境の地図を生成する地図生成部と、を備え、前記第2処理では、動線が存在すると判定される箇所のうち、動線における静止状態が分布している箇所を、障害物であるものとして判定することを第1の特徴とする。
【0014】
また、前記地図生成装置と、前記環境において指定される目的地へとロボットを到達させるナビゲーションを行うナビゲーション装置と、を備える地図利用システムであって、前記ナビゲーション装置は、前記環境に配置されたセンサの検出データより前記ロボットの前記環境における座標を検出することで、前記地図生成装置が生成した地図において、当該座標から前記目的地へと前記ロボットを移動させるための指示を生成することを第2の特徴とする。また、コンピュータを前記地図生成装置または地図利用システムとして機能させるプログラムであることを特徴とする。
【発明の効果】
【0015】
前記第1の特徴によれば、動線が存在しないと判定される箇所に加えて、動線が存在すると判定される箇所のうち、動線における静止状態が分布している箇所も、障害物であるものとして判定することにより、例えば移動体が通行人である場合における椅子などの什器も、障害物として判定できることで、不定期に配置される障害物を含めて障害物を適切に認識した地図を生成することができる。前記第2の特徴によればさらに、当該生成した地図を用いてロボットのナビゲーションを行うことが可能となる。
【図面の簡単な説明】
【0016】
【
図1】一実施形態に係る地図利用システムの構成図である。
【
図2】一実施形態に係る地図利用システムにおける地図生成装置及びナビゲーション装置の機能ブロック図である
【
図3】一実施形態に係る地図利用システムの全体的な動作のフローチャートである。
【
図4】一実施形態に係る動線生成部の動作のフローチャートである。
【
図5】人物動線とこれに紐づく滞在時間との模式例を示す図である。
【
図6】一実施形態に係る地図生成部の動作のフローチャートである。
【
図7】地図生成部による地図生成処理を説明するための模式例を示す図である。
【
図8】地図生成部による地図生成処理を説明するための模式例を示す図である。
【
図9】通行動線抽出部による通路「白」の描画範囲に関して2つの実施形態の区別の模式例を示す図である。
【
図10】障害物「黒」の描画の2つの場合分けの模式例を示す。
【
図11】一実施形態に係るナビゲーション装置の動作のフローチャートである。
【
図12】ナビゲーションの際の地図の模式例を示す図である。
【
図13】速度姿勢推定部で計算する距離等の関係を示す図である。
【
図14】一般的なコンピュータにおけるハードウェア構成を示す図である。
【発明を実施するための形態】
【0017】
図1は、一実施形態に係る地図利用システム10の構成図である。地図利用システム10は、環境センサ1、地図生成装置20、ナビゲーション装置50及びロボットRBを構成要素として備え、これら構成要素同士はインターネット及び/又はLAN(ローカルエリアネットワーク)等のネットワークNWを介して相互に通信可能とされる。
【0018】
地図利用システム10の動作の全体的な概要は次の通りである。環境センサ1はカメラ等として構成され、地図を生成する対象となる環境E(例えば工場や倉庫などが環境Eであり、屋内でも屋外でもよい)の撮影を行うことで映像を取得する。この映像内には環境E内で活動しており移動する移動体mv1,mv2,mv3(例えば人物であり、
図1では例示として3人の場合が示されるが、時間帯によって増減しうる任意数が存在しうる)が撮影されている。地図生成装置20はこの映像を解析することにより、環境Eの地図を生成する。ナビゲーション装置50は当該生成された地図を利用することで、環境E内に存在するロボットRBに対してナビゲーションを行う。
【0019】
なお、
図1に示される構成要素は地図利用システム10内における役割分担を示すものであり、ハードウェアとしての設備上の構成は
図1に示されるものに限らない。すなわち、各構成要素のうち異なるもの同士が設備としては共通のもので構成されていてもよいし、逆に、各構成要素が2つ以上の別途の設備の組み合わせで構成されていてもよい。例えば、地図生成装置20及びナビゲーション装置50は
図1では別途のサーバ(コンピュータ装置)として示されているが、1つのサーバが地図生成装置20及びナビゲーション装置50の両方の機能を担うようにしてもよいし、地図生成装置20及びナビゲーション装置50のそれぞれの処理が2つ以上のサーバで分担して実行されてもよい。
【0020】
また、以下の説明では
図1に示されるように、地図生成装置20及びナビゲーション装置50を、ロボットRBとは別途の設備で実現されているものとして説明するが、これに限らず環境センサ1を除いた地図生成装置20およびナビゲーション装置50をロボットRBに搭載することで、ロボットRBにおいて設備を共有することもできる。あるいは、ロボットRBに搭載したセンサも環境センサ1に含めることもできる。(すなわち、環境センサ1の全部又は一部をロボットRBに搭載したセンサで実現するようにしてもよい。)この際、ロボットRBは1つのみではなくて複数存在してもよい。
【0021】
図2は、一実施形態に係る地図利用システム10における地図生成装置20及びナビゲーション装置50(並びにロボットRB)の機能ブロック図である。地図生成装置20は、動線生成部2、地図生成部3及び地図記憶部4を備える。動線生成部2はさらに移動体検出部21及び検出点統合部22を備え、地図生成部3はさらに初期化部31、通行動線抽出部32、障害物判定部33、通路判定部34、初期値判定部35を備える。ナビゲーション装置50は、位置推定部5及びナビゲーション部6を備える。位置推定部5はさらに、ロボット検出部51及び速度姿勢推定部52を備え、ナビゲーション部6はさらに、目的地設定部61、経路生成部62及び走行指示部63を備える。ロボットRBは制御部91及び駆動部92を備える。
【0022】
図3は、一実施形態に係る地図利用システム10の全体的な動作のフローチャートである。ステップS1において地図生成装置20では、一定期間に渡る環境センサ1の映像を動線生成部2において解析することでこの映像内の移動体(人物など)の動線等に関する情報を取得し、この動線等の情報を地図生成部3においてさらに解析することで環境Eの地図を生成し、記憶媒体として構成される地図記憶部4にこの地図を記憶することができる。このように地図が生成され地図記憶部4に記憶された後に、ステップS2においてナビゲーション装置50は環境センサ1の映像(この映像内に環境E内のロボットRBが撮影されている)をリアルタイムで読み込んでロボットRBの環境E内における位置などの状態をリアルタイムで把握しながら、地図記憶部4の地図を参照してロボットRBのナビゲーションを行うことができる。
【0023】
なお、
図3のフローチャートでは、各ステップS1,S2に関してその動作主体がそれぞれ地図生成装置20及びナビゲーション装置50であることを吹き出し形式で傍らに示している。同様の動作主体の表記を後述する各フローチャート(
図4,6,11)でも用いるものとする。
【0024】
図4は、一実施形態に係る動線生成部2の動作(
図3のステップS1の前半側の動作)のフローチャートであり、
図6は一実施形態に係る地図生成部3の動作(ステップS1の後半側の動作)のフローチャートであり、
図11は一実施形態に係るナビゲーション装置50の動作(ステップS2)のフローチャートである。以下、
図4、
図6及び
図11の各ステップを説明しながら、動線生成部2、地図生成部3及びナビゲーション装置50(並びにナビゲーション装置50でナビゲーションされるロボットRB)の処理の詳細を説明する。
【0025】
図4のフローが開始されるとステップS211では、環境センサ1が撮影した一定期間に渡る映像を移動体検出部21が入力として取得してから、ステップS212へと進む。
【0026】
このため、環境センサ1では予め、人物等の複数の移動体が活動し移動している環境Eを一定期間に渡って撮影しておく。以下では、環境Eとしてショッピングモールなどを想定し、移動体が通行人である場合を例として説明するが、人物と同様又は概ね同様の挙動を取る任意の移動体(例えば自律移動が可能なロボットや動物等)について同様の処理が可能である。
【0027】
環境センサ1は、本実施形態ではカメラのような映像を撮影可能なセンサを想定して説明するが、これに限らずレーザ測域センサやビーコンなどの通行人を検知して位置を取得できるセンサも利用することができる。(ビーコンの場合、環境センサ1を複数のビーコン信号発信源として設置しておき、通行人はスマートフォン等のモバイル端末を携帯しており、このモバイル端末において複数のビーコン信号の受信強度分布などを解析することで、モバイル端末の各々の位置を通行人の位置として取得することができる。)環境センサ1は環境E全体(地図を生成する対象となる範囲)を撮影できる位置に少なくとも1台あるいは複数台が設置され、通行人を撮影することができる。
【0028】
本実施形態では通行人を頭部から足元までの全身として説明するが、これに限らず通行人を遮蔽する物体がある環境Eによっては通行人を頭部のみとすることもできる。また、環境センサの座標系(u,v)を環境Eの座標系(X,Y,Z)に対応づけることで、画像中の任意の座標(u,v)を環境の座標(X,Y,Z)に変換できる。この変換には既存技術を用いることができ、例えばコンピュータビジョン用のライブラリであるOpenCV(非特許文献3)などのオープンソースソフトウェアを用いることができる。(なお、このような変換は環境センサ1ではなく後段側の動線生成部3において行うようにすればよい。)
[非特許文献3]「"cv::calibrateCamera",
http://opencv.jp/opencv-2svn/cpp/camera_calibration_and_3d_reconstruction.html#cv-calibratecamera, (2021-03-01 アクセス).」
【0029】
なお、現実世界である環境Eの座標系(x,y,z)は一般には3次元空間座標であるが、本実施形態における環境Eの座標は2次元の座標として説明する。例えば、(x,y,z)のうちz軸が高度方向であるものとし、環境Eの地図を高度zが概ね一定となる平面状の地図(例えば、ショッピングモールにおけるあるフロアの地図)として作成する用途の場合は、この概ね一定の高度zを省略することで、環境Eの座標系を2次元の座標系(x,y)として定義することができ、生成対象となる地図上の位置もこの2次元座標系(x,y)で定義することができる。
【0030】
ステップS212では、移動体検出部21は環境センサ1より入力された映像をサンプリングすることで複数の画像を切り出し、ステップS213(の次のステップS214)へ進む。この切り出した画像をフレーム画像F(i)(1≦i≦n)とする。ここで、インデクスiは当該切り出した際の映像上における時間軸上での順番であり、nは切り出した画像の枚数である。(例えば、フレームF(i)の直前の過去に該当するのがフレームF(i-1)であり、直後の未来に該当するのがフレームF(i+1)である。)
【0031】
図4に示されるように、ステップS213~S224で囲まれるステップ群S214~S223は、ステップS212で切り出した各フレームF(i)についてインデクスiの順番(i=1,2,…,n)に従って共通の処理が繰り返し行われるものであり、ステップS213,S224は当該繰り返し処理を明示するための形式的なステップである。以下、ステップ群S214~S223の説明において、処理の対象となっているフレームをフレームF(i)として説明する。
【0032】
移動体検出部21は、ステップS214において画像F(i)に対して通行人検出を行い、次いでステップS215において、当該通行人検出結果に対して通行人を区別する重複のない人物IDを付与し、次いでステップS216において、当該通行人検出結果において通行人を検出した点(以降、人物検出点)の2次元の座標を計算し、次いでステップS217において、画像F(i)においてこれらの求めた人物ID及び座標を自身において履歴として記憶(初期時刻i=1から現在のi番目までの各時刻の画像F(1),F(2),…,F(i)における人物ID及び座標を記憶)し、且つ当該履歴として記憶している情報を次の検出統合部22へと出力してから、ステップS217へと進む。
【0033】
説明のため、移動体検出部21が以上のステップS211~S217の各処理を経て最後のステップS217において自身で記憶し、且つ次の検出点統合部22へと出力する人物IDと座標の履歴情報を集合表記でRec(i)={(xk,yk)[ID]|k=1,2,…,i, ID=1,2,…}と表記する。例えばあるID=1となる人物が現時刻iまでの各時刻k=1,2,…,i-1,iの全ての時刻で検出され続けている場合には、この履歴情報Rec(i)の中に以下の情報が含まれ、このID=1の人物の人物検出点の時間推移として移動軌跡を意味する情報となる。
(x1,y1)[1], (x2,y2)[1], …, (xi-1,yi-1)[1], (xi,yi)[1]
【0034】
なお、途中の時刻で環境Eから外部に去ることにより、逆に環境E内に新たに現れることにより、あるいは検出処理等における誤差影響等により、上記の例とは異なり、全ての時刻k=1,2,…,i-1,iではなく一部の時刻のみにおいて断片的に移動軌跡が存在する人物IDの履歴情報も存在しうる。
【0035】
ステップS214の通行人検出には既存技術を用いることができ、映像内の各画像F(i)からYOLO(非特許文献4)などのディープラーニングをベースとした画像認識技術による物体検出手法を用いることができる。画像認識技術は予め通行人の画像を学習した機械学習モデルを用いて通行人を判定することができる。あるいは、予め環境の画像を取得しておき、非特許文献3と同様のOpenCVの背景差分抽出技術を用いて通行人を判定することもできる。
[非特許文献4] 「Redmon, Josephら, "YOLOv3: An Incremental Improvement", arXiv, 2018.」
【0036】
ステップS215において通行人を区別するにはRe-ID(非特許文献5)などの複数画像間における同一人物の対応付け技術を用いることができる。この対応付けは、1つ前の時刻の画像F(i-1)と現時刻の画像F(i)との間で行い、対応付けができず現時刻F(i)において新たに現れた人物が存在する場合は新たなIDを付与すればよい。
[非特許文献5] 「Mang Yeら, "Deep Learning for Person Re-identification: A Survey and Outlook", arXiv, 2020.」
【0037】
ステップS216の座標計算は、ステップS214の検出範囲における所定位置(例えば矩形範囲で検出した場合に、矩形の重心位置、あるいは人物(全身)の足元としての下辺の中心位置など)として計算すればよく、OpenCV(非特許文献3)を例示して前述したように、画像F(i)内の検出位置(u,v)を環境Eの2次元座標(x,y)に変換して、ステップS217の座標計算の結果を得ることができる。
【0038】
ステップS221~S226では、検出点統合部22が、ステップS217で得た人物検出点の履歴情報Rec(i)を用いて、各時刻i=1,2,…,nにおいて滞在時間の計算と人物動線の生成を行い、これら各時刻iに得られた結果を全て合わせたものとして最後の時刻nにおいて得られる滞在時間及び人物動線をステップS226において後段側の地図生成部3の通行動線抽出部32へと出力したうえで
図4のフローが終了する。これらステップS221~S226の詳細は以下の通りである。
【0039】
ステップS221では、現在時刻iにおける人物検出点の履歴情報Rec(i)(検出点統合部22において記憶しておく)を参照し、時刻i-1,i間においてIDが共通となる人物検出点(すなわち、1つ前の時刻i-1と現時刻iの両方において履歴情報Rec(i)内に共通IDが存在するとステップS215の人物ID付与処理において判定されたことで時刻i-1,i間に移動履歴が存在する人物検出点)の全てについて、時刻i-1,i間での移動距離di[ID]を以下のようにユークリッド距離によって計算する。
【0040】
【0041】
ステップS221では上記計算した移動距離di[ID]の全て(共通IDが存在する全てのIDについての移動距離di[ID])について、当該IDの人物が時刻i-1,i間において静止しており移動していない状態にあるかを所定の閾値THとの大小判定によって以下のように判定して処理を切り替える。
(1) 移動距離di[ID]≦THとなり、静止していると判定される全てのIDについて、ステップS222の処理を適用したうえで、ステップS223へと進む。
(2) 移動距離di[ID]>THとなり、静止しておらず移動状態にあると判定される全てのIDについて、ステップS222の処理は適用せずに、ステップS223へ進む。
【0042】
上記静止しているか否かを判定するための所定の閾値THは、人物の場合であれば例えば、人物の幅(水平に立っている状態での横幅)の程度となる値として、0.5m等の値を予め設定しておけばよい。なお、初期時刻i=1においては過去時刻i-1の画像が存在しないため、ステップS221,S222の処理は省略してステップS223へと進めばよく、初期時刻i=1よりも後の各時刻i=2,3,…,nについてこのステップS221,S222の処理が適用される。
【0043】
ステップS222では、当該IDの通行人に関して、時刻i-1,i間では移動しておらず滞在状態にあるものとして、滞在時間を記憶する。(なお、ステップS222の滞在時間の記憶は、現時刻iよりも前の過去時刻のステップS222において記憶したものに対して更新して記憶する。例えば、共通のIDの人物に関して現時刻iよりも過去の時刻i-2,i-1間でも同様にこのステップS222を経由することで滞在状態にあった場合は、時刻i-2,i間で常に滞在状態にあるものとして、更新して記憶する。)この滞在時間は、ステップS212で映像内からフレームをサンプリングして切り出した際の時間幅となる。例えば5秒ごとに各フレーム画像F(i)を切り出していれば、時刻i,i-1間の滞在時間は5秒となる。
【0044】
なお、ステップS222を経由しなかったデータについては、当該IDの通行人に関して、時刻i-1,i間では移動しており滞在状態にはないものとして、滞在時間の初期値である0を割り当てるようにすればよい。
【0045】
ステップS223では時刻iを次の時刻i+1に切り替えてから(すなわち、ステップS213以降の繰り返し処理対象となる現時刻の画像をF(i)から次の時刻のF(i+1)へと切り替えてから)ステップS224へと進む。ステップS224では、i=1,2,…,nの全ての画像について処理が完了しているか否かを判定し、完了していれば(すなわち、ステップS213で切り替えた画像F(i+1)がF(n+1)であれば)ステップS225へと進み、完了していなければ(すなわち、ステップS213で切り替えた画像F(i+1)についてi+1<nであれば)ステップS213へと戻り、当該切り替えた次の時刻の画像F(i+1)について同様の処理を繰り返す。
【0046】
ステップS225では、以上のステップS213~S224でn枚の画像F(i)(i=1,2,…,n)において得られたID共通となる人物検出点を時系列に直線で統合して(すなわち、隣接時刻i-1,i間で共通IDとなる2点(x
i-1,y
i-1)
[ID]及び(x
i,y
i)
[ID]の全てを直線で結び)人物動線を生成し、次いでステップS226において当該生成した人物動線と、この人物動線に紐づくものとしてステップS222で計算されている滞在時間と、を検出点統合部22から通行動線抽出部32へと出力して、
図4のフローを終了する。
【0047】
図5は、以上の
図4のフローによって得られ検出点統合部22から通行動線抽出部32へと出力される人物動線とこれに紐づく滞在時間との模式例を示す図である。
図5の例では、模式例としてステップS213で切り出した枚数n=6とし、ある共通のID=1となる通行人について当該n=6枚の全ての画像F(i)(i=1,2,…,6)において人物検出点pi=(x
i,y
i)
[1](i=1,2,…,6)が検出された場合の、当該ID=1の人物動線ML(1)がp1→p2→p3→p4→p5→p6として示され、これに紐づく滞在時間RT(1)が表形式で示されている。
【0048】
人物動線ML(1)を構成する各点pi(i=1,2,…,6)には、これを中心とする点線状の円領域として、前述のステップS221で移動状態か静止状態かを判定するための閾値THを半径として有する円領域が描かれている。隣接する各点pi-1,pi間において、後時刻iの点piを中心とする閾値THの半径円の内部又は外部のいずれに前時刻i-1のpi-1の点が位置するかにより、点piがそれぞれ静止状態か移動状態かが判定され、静止状態の点については滞在時間を累積計算することにより、図示する滞在時間RT(1)が得られる。
【0049】
図5の例ではn=6枚の各画像F(i)(i=1,2,…,6)を映像上から5秒間隔で切り出した場合の数値例として滞在時間RT(1)が示される。p1→p2間、p4→p5間、p5→p6間の移動量が閾値THを超えることから、3つの点p2,p5,p6は移動状態にあるものとして滞在時間を全て0秒として割り当てられる。(ステップS222の滞在時間が計算されなかったという結果により、これらの点p2,p5,p6は滞在時間を初期値としての0秒とすることができる。)p2→p3間及びp3→p4間の移動量は閾値TH以下であることから、2つの点p3,p4は滞在状態にあるものと判定され、且つ、切り出した画像間隔である5秒間隔において2回連続で滞在状態にあることから、これら2つの点p3,p4には滞在時間5*2=10秒が割り当てられる。また、初期時刻i=1の点p1については、過去時刻i=0の画像が存在せずp0→p1の移動距離を計算できないことから、形式的に滞在時間の初期値である0秒が割り当てられる。なお、人物動線上において静止状態か移動状態かの区別を与え、静止状態に関しては滞在時間を紐づけて記録できるのであれば、データ形式は
図5の例に限らない。例えば、
図5の変形例として、p3,p4を1つの代表点p34にまとめて、これに10秒を紐づける方式や、p3,p4の各々に5秒を紐づけて、p3,p4の合計の滞在時間が10秒である情報が得られるような方式を用いてもよい。
【0050】
以上、一実施形態に係る動線生成部2の処理の詳細として
図4の各ステップを説明した。次に、一実施形態に係る地図生成部3の処理の詳細として
図6の各ステップを説明する。
【0051】
図7及び
図8は、地図生成部3による地図生成処理を説明するための模式例として、最終的な地図が得られるまでに順次、地
図M1~M5として地図データに対する処理が行われる例を示す図である。(なお、後述する初期化(新規作成)の状態にある地図は地
図M1よりも前の状態に該当するが、単純であるため
図7,8で示すのを省略している。)
図7では「不図示の初期化地図→地
図M1→地
図M2→地
図M3」と処理が行われる例を示し、これに続くものとして
図8では「地
図M3→地
図M4→地
図M5」と処理が行われる例を示す。
図7,8の地
図M1~M5のそれぞれには当該地図データの構成要素の内容を説明した凡例欄LG1~LG5が設けられている。以下における
図6のフローの説明において適宜、この
図7,8の例を参照する。
【0052】
まず、
図6の実施形態において地図生成部3が生成する地図(最終的な地図が得られるまでの途中の状態の地図も含む)のフォーマットについて説明する。地図は、
図7,8に例示される地
図M1~M5に示されるように、2次元のグリッド座標で単位格子(以降、セル)により構成される。地図の座標系は環境Eにおける座標系(すなわち、動線生成部2で得た人物動線の座標系)と一致しており、例えば上から見た際の左上位置を原点とする。地図内の各セルには当該セルの位置における地図要素としての状態を表す属性値が割り当てられるが、以下では説明の便宜上、この属性値が画素値として与えられるものとする。属性値を画素値の形で与えることで、地図の状態を画像(各セル位置を画素位置とし、属性値に対応する画素値を有する画像)として表現することが可能となる。
図7,8の地
図M1~M5も、このように属性値を画素値として有するものとして、画像として表現されている。
【0053】
このような地図において、セルの画素値により通路と障害物の座標および位置を区別することができる。なお、本実施形態における全ての定数は例示であり、任意の範囲で設定できる。例えば、本実施形態では地図の各セルは1辺を0.1mとした正方形とする。各セルはRGB値(赤の値, 緑の値, 青の値)を用いて、初期値を例えば(128, 128, 128)「灰」、通路を例えば(255,255,255)「白」、障害物を例えば(0,0,0)「黒」と表現する。
図7,8の地
図M1~M5及びその凡例欄LG1~LG5に示されるように、これらの例もこの表現を用いている。
図7,8の例ではさらに、人物検出点を灰色の丸、人物検出点間の線分(当該線分で結ばれる2つの人物検出点は同一IDの通行人の移動軌跡に該当する)を灰色で描くことにより、各地
図M1~M5上に動線生成部2で得た人物動線を重畳して描いている。(なお、前述の通り、人物動線は地図と共通の座標において得られているので、地図上の対応位置に人物動線をそのまま重畳することが可能となる。)
【0054】
図6のフローが開始されるとステップS311へ進み、このステップS311とS312又はS313とにおいて初期化部31による処理が行われた後に、ステップS220へと進む。
【0055】
ステップS311では、地図生成部3においてこれから生成する地図が新規の地図か、あるいは既存の地図に対してさらに更新処理を加えることで生成する地図であるかの場合分けを行い、前者(新規生成する地図)の場合はステップS312へと進み、後者(新規ではなく更新して生成する地図)の場合にはステップS313へと進む。ステップS311におけるこの判断は、地図生成装置20を利用するユーザによるマニュアル設定入力を初期化部31において受け付け、この設定に従うものとして判断すればよい。
【0056】
ステップS312(地図の新規作成時あるいは地図生成部3の初回起動時に該当)では、地図の全てのセルを初期値「灰」で初期化し、この初期化された地図を初期化部31から通行動線抽出部32へと出力してからステップS220へと進む。
【0057】
ステップS313(地図が既に存在している場合(以降、地図更新時))では、当該更新対象となる地図を読み込み、この地図において通路「白」のセルを初期化して初期値「灰」とし、当該初期化された地図を初期化部31から通行動線抽出部32へと出力してからステップS220へと進む。
【0058】
このステップS313の初期化の意義は、地図の通路を再検討し、使用されなくなった通路を障害物として更新するためである。あるいは、別実施形態として、地図更新時も、地図の全てのセルを「灰」として初期化する(すなわち、ステップS312と同様の処理をステップS313でも行う)ようにしてもよい。なお、更新対象となる地図については、過去に地図生成部3の処理によって生成され地図記憶部4に記憶されている地図を読み込むようにすればよい。
【0059】
ステップS220では、検出点統合部22が出力した一定期間の映像に対応する人物動線及びこれに紐づく滞在時間を通行動線抽出部32において入力として読み込んでから、ステップS321へと進む。
【0060】
なお、ステップS220で読み込む人物動線(及び滞在時間)は、当該地図を生成する対象となっている共通の環境Eにおけるものであれば、1つの期間(連続期間)におけるものであってもよいし、断続的な複数の期間におけるものであってもよい。例えば、ある1日における時間帯9:00~18:00で取得された人物動線を読み込んでもよいし、ある1週間における各日の時間帯9:00~18:00でそれぞれ取得された人物動線を全て読み込んでもよい。また例えば、最新の地図を生成したい場合であれば、現在時刻から過去を遡った期間を読み込み対象として指定すればよく、例えば前日の00:00~23:59を指定すればよい。あるいは、人物動線をより多く取得して信頼性を高めることを目的に、日をまたいで時間帯を指定することもできる。同様に、環境Eにおける通行人の存在状況や生成する地図の用途に応じて任意の期間の人物動線を読み込み対象としてよい。例えばこの際、平日や休日などの日付を指定するようにしてもよい。
【0061】
当該ステップS220で入力された人物動線及び滞在時間を用いて、通行動線抽出部32は、ステップS321において滞在時間が例えば0秒となる人物検出点とその間を結ぶ直線で構成された人物動線(以降、通行動線)のみを抽出して取得し、次いでステップS322において、当該抽出した全ての通行動線を1本ずつ、初期化部31から得た地図の当該座標にあるセルに通路「白」で描画して更新し、この通路「白」が描画された地図を次の障害物判定部33へと出力する。通行動線抽出部32においてこれらステップS321,S322が完了するとフローは次のステップS331へと進む。
【0062】
この通行動線抽出部32の処理の意義は、通行人が地図上のある地点を通行している間は滞在時間が例えば0秒と判断できるためであるが、環境Eの通行人の状況等に応じて他の数値で通路「白」を判定して描画するようにしてもよい。例えば、判定閾値TH2(>0)を用いて、滞在時間がこの閾値TH2以下である場合に、当該セルが通行中の箇所に該当するものとして、通路「白」を描画するようにしてもよい。
【0063】
滞在時間が0秒となることで通行動線を判定する場合、
図5に示したある1つの人物動線ML(1)の例であれば、この1本の通行動線M1(1)の全体「p1→p2→p3→p4→p5→p6」のうち、「p1→p2」の部分と「p5→p6」の部分とが通行動線として判定され、この通行動線が乗っているセルを通路「白」として描画することとなる。別の例として、人物動線を構成する隣接時刻(始点時刻i-1及び終点時刻i)の人物検出点のうち終点側の滞在時間が例えば0秒であれば、この隣接時刻を結ぶ線分を通行動線として判定してもよい。すなわち、
図5の通行動線ML(1)の例であれば、「p1→p2」の部分と「p5→p6」の部分(始点及び終点の両方の滞在時間が0秒となる)に加えて「p4→p5」(終点側のp5の滞在時間が0秒となる)の部分も通行動線として判定してもよい。
【0064】
上記2つの例とはさらに別の一実施形態として、滞在時間が例えば0秒ではない人物検出点が混在する人物動線は通行動線に該当しないものとして判定するようにしてもよい。すなわち、上記の
図5の1本の通行動線M1(1)の例であれば、人物検出点p2,p3の滞在時間が0秒ではないため、この1本の通行動線M1(1)の全体「p1→p2→p3→p4→p5→p6」が通行動線ではないものとして判定し、通路「白」を描画する対象から除外するようにしてもよい。
【0065】
すなわち、共通IDごとに存在する人物動線に関して、含まれる人物検出点の全ての滞在時間が例えば0秒である場合のみに、この人物動線の全体が通行動線であるものとし、含まれる人物検出点の中に滞在時間が例えば0秒ではないものが1点以上存在すれば、この人物動線の全体を通行動線ではないものとしてもよい。
【0066】
この別の一実施形態の意義は、滞在時間が例えば0秒ではない人物検出点の座標付近に什器などの障害物が配置されている可能性があり、安全を取って除外するためである。
【0067】
通行動線抽出部32で通行動線と判定した際にセルを通路「白」として描画する範囲について、以上では通行動線には太さがない(幅がゼロ)であるものとして、この通行動線が乗るセルを通路「白」として描画するものとした。別の一実施形態として、通行動線を人物が実際に通る際の人物の幅を考慮して、通行動線を中心として所定の幅にある範囲内にセルが乗っていれば、このセルを通路「白」として描画してもよい。
【0068】
なお、通行動線等にセルが「乗る」とは、セルの少なくとも一部に通行動線等が重複していることを意味し、以下同様とする。
【0069】
例えば、少なくとも通行人の肩幅の範囲に障害物がないと考え、通行人の肩幅を例えば0.4mと仮定し、人物検出点と直線を中心に左右に例えば0.2mの通路があるものとして、この範囲に乗っているセルを通路「白」として描画してよい。あるいは、骨格推定技術(非特許文献6)により骨格の肩関節の位置から肩幅を推定することもできる。
[非特許文献6] 「Zhe Caoら, "OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields", PAMI, 2019」
【0070】
上記の骨格推定技術は移動体検出部21での人物検出に対する追加処理として行っておき、人物動線に骨格推定結果の肩幅の情報を紐づけておき、この肩幅の情報を通行動線抽出部32において通路「白」の描画範囲の幅を設定するものとして利用すればよい。なお、時間進行に沿った人物動線上の少なくとも1つの時刻において肩幅の情報を求めておけばよい。
【0071】
図9は通行動線抽出部32による通路「白」の描画範囲に関してこれら2つの実施形態の区別の模式例を示す図であり、太線で示す同じ通行動線ML0について、例EX1が前者、例EX2が後者の実施形態における通路「白」の描画結果を示している。例EX2では通行動線ML0を中心とする所定幅の範囲が点線で示されており、当該範囲を通路「白」として描画している。
【0072】
図7の地
図M1は、以上のステップS321,S322の通行動線抽出部32の処理によって初期化された地図上に通路「白」が描画された例である。
【0073】
次いで、ステップS331~S335では障害物判定部33が、人物動線に椅子などの什器を通過する人物動線(以降、什器滞在動線)を障害物として地図上で区別して描画することにより、通行動線抽出部32で得た通路「白」が描画された地図をさらに更新して、通路判定部34へと出力する。
図7の地
図M2は、地
図M1に対してさらに障害物判定部33によって障害物「黒」に該当するセルの描画が行われた例である。障害物判定部33の意義は、通路に什器が配置されている可能性や通行人が立ち止まっている可能性があり、通路として利用するよりは安全を取って障害物と見なすというものである。障害物判定部33は、人物検出点の滞在時間を利用することで什器滞在動線を判定する。
【0074】
具体的に、ステップS331において什器滞在動線を抽出し、この抽出した全ての什器滞在動線の情報を利用して、地図におけるセルのうち、什器滞在動線が乗っている又は什器滞在動線の範囲内にあるセル(障害物を描画する基準位置を定めるセルに該当)の全てに関して、ステップS332による閾値判定での場合分けを行う。この閾値判定において、肯定判定となったセルについてはステップS333によって障害物の大きさを推定し、否定判定となったセルについてはステップS334によって障害物の大きさを確定し、これらステップS333,S334で推定・確定した障害物の大きさに従って、ステップS335において障害物「黒」を地図に描画し、フローはステップS341へと進む。
【0075】
すなわち、什器滞在動線が乗る又は什器滞在動線の範囲内にある全てのセルについて、ステップS332による場合分けが行われ、その結果に従ってステップS333又はS334が当該セルについて適用され、障害物の大きさ(地図のセル上での範囲)を推定又は確定したうえでステップS335においてこの障害物を地図のセル上に描画する。ステップS332,S333,S334,S335はこのように、該当セルごとに場合分けして繰り返される構造となるが、
図6では表記簡素化の観点からこの繰り返し処理を示す形式上の戻りステップ(例えば
図4のステップS213,S224に該当するもの)を描くのは省略している。
【0076】
障害物判定部33による各ステップS331~S335の詳細は以下の通りである。
【0077】
ステップS331では、動線生成部2から得られた人物IDごとの人物動線について、滞在時間が判定用閾値TH3(例えば10秒)以上である隣接する人物検出点の間を結ぶ線分を什器滞在動線と判定する。例えば、
図5の人物動線ML(1)であれば、滞在時間が10秒以上である2つの隣接する人物検出点p3,p4を結ぶ線分を什器滞在動線として判定する。
【0078】
あるいはさらに、このような線分以外にも、滞在時間が判定用閾値TH3以上である人物検出点のみが孤立して存在しているもの(隣接する人物検出点の滞在時間が閾値TH3以上ではないもの)も什器滞在動線に含めるようにしてもよい。(すなわち、例えば3つの隣接する人物検出点p11→p12→p13があって、p11及びp13の滞在時間は閾値TH3未満であるが、p12の滞在時間は閾値TH3以上である場合、1点だけ孤立して閾値TH3以上となっているこの点p12を什器滞在動線に含めるようにしてもよい。)
【0079】
さらに、以上のように判定した什器滞在動線(幅がゼロとなる)について、
図9を参照して通行動線に関して幅も考慮したのと全く同様に、什器滞在動線を中心として左右
に所定幅を取り、この所定幅の範囲に乗っているセルを障害物の描画するための基準位置として考慮するようにしてもよい。
【0080】
この什器滞在動線の幅に関しては、滞在時間が判定閾値TH3以上の人物検出点を計算した時の座標の誤差を考慮して、人物検出点の座標を中心に例えば0.5m四方に拡張することで幅を設けるようにしてもよい。
【0081】
ステップS332では、地図の全てのセルのうち、ステップS331で得た什器滞在動線が乗るセル、又は、什器滞在動線の幅も考慮した場合は当該幅を有する範囲内に乗るセルについて、乗っている什器滞在動線の本数をカウントし、この本数が判定用の閾値TH4(例えばTH4=3本)以下であるか否かによる場合分けを行う。(なお、什器滞在動線が少なくとも1本は乗っているセルが対象であるため、このカウントされる本数は1以上であり、ゼロとはならない。また、線分ではなく孤立した1点で什器滞在動線が構成されている場合も、1本とカウントする。)肯定判定(1≦本数≦TH4)のセルについてはステップS333において障害物の大きさを推定する。否定判定(本数>TH4)のセルについてはステップS334において障害物の大きさを確定する。
【0082】
否定判定の場合(ステップS334)は、当該セルには多数の什器滞在動線が乗っている状態にあり、当該セルが障害物に該当する信頼度が高い(当該セル1個の範囲がそのまま障害物に該当する信頼度が高い)ため、ステップS334において当該セルの全体(当該1つの正方形としてのセル全体)が障害物に該当するものとして、大きさを確定する。
【0083】
逆に肯定判定の場合(ステップS333)は、当該セルには少数の什器滞在動線しか乗っておらず、ステップS334に該当する場合とは異なり障害物の大きさ(範囲)を決定するには信頼度が低い。(すなわち、ステップS334と同様の方式で大きさを確定してしまうと、障害物の大きさを1つのセル幅(例えば0.1m)の程度のものとして、ロボットのナビゲーションを安全に行う目的に対して過小に小さく評価してしまう可能性がある。)そこで、ステップS334では当該セルを中心とした所定範囲のセル範囲(例えばセルが0.1m四方である場合にセルを中心とした四方0.5mの正方形範囲)に拡張したものとして、障害物の大きさを推定する。このように信頼度が低いと判定される場合には障害物の範囲を広めに推定することで、ロボットのナビゲーションを行う際に地図上で障害物の範囲を誤っていることによって障害物に衝突することを防ぎ、安全にナビゲーションを行うことができる。
【0084】
なお、什器滞在動線と判定される場合でも実際には什器(不定期に配置される障害物)が存在せず、単に通行人が停止しているだけであるような状況もありうる。例えばショッピングモールにおいてスマートフォンによる通話を行うために通行人が停止する場合であるが、この場合は例えばショッピングモールの階段付近など、人が少なく通話しても周囲に迷惑かけないエリアに行って停止して通話が行われることが想定される。このように人が少ないエリアでも、什器滞在動線として検出された場合は、ロボットのナビゲーションの通路から障害物として除外することで安全なナビゲーションを行うことができる。(什器は結果的に存在しなかったとしても、什器滞在動線の形で人が待機するのに適したエリアとして確保して、ロボットと人とが共存する際により安全なナビゲーションを行うことができる。)
【0085】
ステップS335では、該当セルについて上記のステップS334,S333の場合分けに従い、地図に障害物「黒」を描画する。
図10に、この障害物「黒」の描画の2つの場合分けの例EX334,EX333を模式例として示す。例EX334はステップS334に該当する描画の例であり、左側に示すように対象セルに乗る什器滞在動線が多いため、当該対象セルがそのままで、範囲を拡張されることなく障害物「黒」として描画されている。例EX333はステップS333に該当する描画の例であり、左側に示すように対象セルに乗る什器滞在動線が少ないため、当該対象セルを中心として範囲を拡張したうえで障害物「黒」として描画されている。なお、
図7の地
図M2における障害物「黒」の描画も、ステップS333に該当して範囲拡張による描画を行った例となっている。
【0086】
この
図10の例にも示されるように、各セルについて、什器滞在動線が多いと判定されるもの(例EX334及びステップS334)については、当該セルをそのまま障害物「黒」とするのに対し、什器滞在動線が少ないと判定されるもの(例EX333及びステップS333)は、多いと判定された場合よりも障害物「黒」とする範囲を拡張している。
【0087】
また、以上のステップS331~S335による障害物判定部33の処理の別の実施形態として、固定値や什器滞在動線を使用せずに障害物の位置及び大きさを推定して描画するようにしてもよい。(すなわち、ステップS331~S335のうちステップS331,S332,S333,S334が省略され、ステップS335のみで障害物判定部33の障害物「黒」の描画が行われるようにしてもよい。)
【0088】
例えば、障害物の推定(位置及び大きさの推定)には滞在時間および人物動線の本数から障害物の有無と座標を推定する機械学習モデルを用いて、障害物の大きさを推定するようにしてもよい。あるいは、YOLO(非特許文献4)などのディープラーニングをベースとした画像認識技術による物体検出手法を用いて障害物を検出し、障害物の大きさを推定することもできる。あるいは、事前に環境Eの画像を取得している場合は、非特許文献3と同様のOpenCVの背景差分抽出技術により障害物を検出し、障害物の大きさを推定することもできる。
【0089】
次いで、ステップS341,S342では通路判定部34が、障害物判定部33から得た地図に対してさらに、この地図に残っている初期値「灰」から通路「白」を判定し、この通路「白」を描画した地図を初期値判定部35へと出力してからステップS351へと進む。
図7では、障害物判定部33から得た地
図M2に対してさらに、通路判定部34が通路「白」を描画した地
図M3が例示されている。
【0090】
通路判定部34での処理の意義は、地図における初期値「灰」の箇所が通路であるのに通行人が通過しなかったため偶然的に通行動線が得られなかった場合と、障害物が存在するために通行人が通過できず必然的に通行動線が得られなかった場合の2種類が考えられるため、これらを区別して地図に反映することである。ここで前者の場合は、通行人が通過しなかったため偶然的に通行動線が得られず初期値「灰」となっているが、その周辺の多くの箇所は通行動線が存在して通路「白」となっており、局所的に狭い領域だけが本来の通路「白」とされることなく、初期値「灰」としていわば塗り残しの状態にあることを想定し、通路判定部34では当該想定に基づく処理を行う。
【0091】
すなわち、通路判定部34では、地図上で初期値「灰」として残っている領域のうち、小さいと判定される領域であり、且つ、その周辺に通路「白」の領域(通行動線の領域)が多く存在すると判定される領域を通路「白」として描画する。
【0092】
具体的に、通路判定部34では、ステップS処理対象となる地図において初期値「灰」の状態にある全てのセルについてステップS341において地図上の通行動線間の距離を計算し、通行動線間の距離が閾値TH5以下の場合に当該セルは通路に該当するものとして、ステップS342において地図上の当該座標にあるセルへ通路「白」で描画する。通行動線間の距離についてはIDの異なる2つの通行動線間の距離(類似度)を、非特許文献7等に開示される既存手法である動的時間収縮法(Dynamic Time Warping法)等により求め、閾値TH5以下となるような2つの通行動線によって囲まれていると判定されるセルを通路「白」として描画すればよい。ここで、動的時間収縮法により、2つの通行動線(一般に長さ(含まれる人物検出点の数)が互いに異なる)上の人物検出点同士を、重複を許容して対応付けることができるので、閾値TH5以下となった2つの通行動線において例えば当該対応付けられた2つの人物検出点を両端とする線分に乗っているセルを、当該2つの通行動線によって囲まれていると判定してよい。なお、動線時間収縮法で距離を求める際は、対応付けた人物検出点の個数で規格化して距離を求めればよい。
[非特許文献7] 「大崎竜太ら, "Dynamic Time Warping法を用いた身体運動の動作識別", 情報処理学会, 1998」URL:http://id.nii.ac.jp/1001/00019930/
【0093】
上記の動的時間収縮法を用いる実施形態に加えて、または代えて、初期値「灰」となっているセルのみで構成される連結領域(穴のない単連結領域)のうち、当該領域の境界部分(外周部分)の全てが(あるいは外周部分の一定割合以上が)通路「白」であり、当該領域の幅(外接矩形をあてはめた際の短辺の幅)が閾値TH5以下となるような連結領域を通路「白」とするようにしてもよい。当該連結領域が凹領域として形成される場合は凸領域に分割して、分割した凸領域ごとに幅TH5以下かを判定してもよい。
【0094】
通路判定するための上記閾値TH5は、任意の範囲で設定でき、障害物の大きさを例えば0.4mと仮定して、通路判定を障害物よりも小さい例えば0.3m以内とするようにしてもよい。あるいは、ステップS341のように固定閾値TH5で場合分けする実施形態とは別の実施形態で通路を推定してもよい。この推定には例えば、通行動線の本数と座標から通路の座標を推定する機械学習モデルを用いて、通路を推定することもできる。
【0095】
なお、ステップS341,S342の処理は上記のように初期値「灰」となる全てのセルについて繰り返し実行されるものであるが、
図6では表記簡素化の観点からこの繰り返し処理を示す形式上の戻りステップ(例えば
図4のステップS213,S224に該当するもの)を描くのは省略している。
【0096】
次いで、ステップS351,S352では初期値判定部35が、通路判定部34から得た地図における初期値「灰」の箇所を、後述のロボットの経路として使用されないよう障害物として扱わせるべく、初期値「灰」のセルへ障害物「黒」で描画して地図記憶部4へと出力してから、フローはステップS353へと進む。この処理の意義は、初期値「灰」が通路と障害物の区別がつかず、安全を取って障害物と見なすためである。
【0097】
すなわち、通路判定部34で得た地図の全てのセルについて、ステップS351で初期値「灰」として残っているものがあるか否かを判定し、残っているものがあればステップS352へと進んで当該残っている全てのセルについて初期値「灰」から障害物「黒」へと値を更新する。残っているものがなければこの更新は不要であり、ステップS352はスキップされる。
図8では、通路判定部34で得た地
図M3に対して、初期値判定部35が初期値「灰」のセルを全て障害物「黒」に上書きして得られた地
図M4が示されている。
【0098】
ステップS353では、上記の初期値判定部35で得た地図を地図生成部3で生成された地図として、記憶媒体である地図記憶部4に格納して、
図6のフローは終了する。
【0099】
なお、以上の
図6のフローによる地図生成装置20の各部の処理は、概略的には次の通りとなる。初期値判定部35の処理は、動線が存在しないと判定される箇所を障害物であるものと判定する第1処理である。通行動線抽出部32及び障害物判定部33の処理は、動線が存在すると判定される箇所を障害物又は通路であるものと判定する第2処理であって、動線が存在すると判定される箇所のうち、動線における静止状態が分布している箇所を、障害物であるものとして判定し、移動状態が分布している箇所を通路であるものと判定するものである。
【0100】
なお、
図6のフローの追加的な実施形態として次も可能である。すなわち、地図を逐次的に更新するため、地図生成部3を定期的に、例えば1日ごとに呼び出し、その処理(
図6のフロー全体)を実行するようにしてもよい。この場合、既に地図が存在するため、ステップS313に関して前記の通りはじめに通路「白」を初期値「灰」に変換してから処理を開始し、それ以降の手順は共通である。
【0101】
図8の地
図M5は、過去に作成済みの地
図M4を更新して生成された例(例えば、新規作成時の地
図M4とは別の時間帯での人物動線を用いて地
図M4を更新した例)であり、地
図M4から通路「白」としては削除されて障害物「黒」となっている箇所や、地
図M4では障害物「黒」であった箇所が新たに通路「白」として識別されている様子を見て取ることができる。
【0102】
次いで、
図11の各ステップを説明しながら、ナビゲーション装置50によるロボットRBのナビゲーション処理の詳細を説明する。
図12は当該ナビゲーションの際の地図の模式例を示す図であり、以下の説明において適宜、参照する。
【0103】
ステップS400では、ナビゲーション装置50においてナビゲーションに利用するための環境Eの地図を、
図6のフローにより生成され保存されている地図記憶部4から読み込んでからステップS611へと進む。ステップS611では、ユーザによるマニュアル入力等を受け付けることにより、当該読み込んだ地図上からロボットRBをナビゲーションして到達させる目的地の設定を目的地設定部61において受け付け、この目的地を経路生成部62へ出力してから、ステップS621へと進む。
【0104】
ステップS611では、目的地設定部61において任意態様のインタフェースで入力を受け付けることができ、例えば外部PCやタブレットなどの装置の画面に地図(ステップS400で読み込んだ地図)を表示して、画面上で地図をタップすることで目的値の座標の指定を受け付けるようにしてよい。あるいは、キーボードから数値を入力して、座標を指定するようにしてよい。この結果、地図上の当該座標にあるセルへロボットRBの目的地を例えば「赤」の画素値で識別して描画してよい。このように目的地が描画された地図を、ナビゲーションの途中経過を示すものとして利用してもよい。
【0105】
ステップS621では、ステップS400で得た地図を参照することで、経路生成部62が最短経路生成アルゴリズムであるinformed RRT*(非特許文献8)などの手法を用いてロボットRBの経路を生成し、次いでステップS622においてこの経路を走行支持部63へと出力してから、ステップS511へと進む。
[非特許文献8] 「Jonathan D. Gammellら, " Informed RRT*: Optimal Sampling-based Path Planning Focused via Direct Sampling of an Admissible Ellipsoidal Heuristic", arXiv, 2014.」
【0106】
ステップS621では追加的な実施形態として、地図上の通路の座標とロボットRBの横幅(所定値を与えておく)を比較して、ロボットの横幅よりも大きい通路を選択してロボットの経路を生成することもできる。地図上でロボットの座標「青」から目的地「赤」を経路「緑」で結んで出力する。
図12では入力した地
図M20上に生成された経路の例が示されている。
図12では凡例欄LG20が示されている。
【0107】
ステップS511では環境センサ1からリアルタイムで映像をロボット検出部51において読み込む処理を開始してからステップS512へと進み、ステップS512ではこのロボット検出部51において読み込んだ映像から所定のサンプリングレートでフレーム画像をリアルタイムで切り出す処理を開始してからステップS513へと進む。図示されるようにステップS513~S516は、ステップS512で切り出したリアルタイムの各時刻のフレーム画像について時間順(フレーム番号順)で繰り返し実行されることを示す形式上のステップである。説明のため、フレーム画像を時間順でF(i)(i=1,2,3,…)とする。すなわち、リアルタイムの処理でi番目に処理されるフレーム画像をF(i)とする。ステップS513~S516内の繰り返し処理を構成するステップS514以降の各処理について、処理対象となっているリアルタイムのフレーム画像をF(i)として以下の説明を行う。
【0108】
ステップS514においてロボット検出部51は、画像F(i)からYOLO(非特許文献4)などのディープラーニングをベースとした画像認識技術による物体検出手法を用いてロボットRBを検出し、次いでステップS515においてこのロボットRBの座標を計算して、速度姿勢推定部52及び走行指示部63へと出力してから、ステップS521へと進む。本実施形態では説明例として、当該計算したロボットRBの座標(座標r(i)=(xri,yri)とする)を地図上の当該座標にあるセルへ「青」の画素値で識別して描画し、当該i番目のフレームF(i)の時刻におけるナビゲーション途中結果をユーザに示すための画像として利用するようにしてよい。
【0109】
ステップS521において速度姿勢推定部52は、ロボットRBの現時刻iの座標r(i)= (xri,yri)とこの1つ前の過去時刻i-1の座標r(i-1)=(xr(i-1),yr(i-1))との間の移動距離driを計算し、次いでステップS522においてロボットの現時刻iでの速度vriを計算し、次いでステップS533において現時刻iの座標r(i)=(xri,yri)とこの1つ前の過去時刻i-1の座標r(i-1)=(xr(i-1),yr(i-1))とからロボットの姿勢θri(地図平面上におけるロボットRBの進行方向としての姿勢θri)を計算し、これら計算した速度vri及び姿勢θriを経路生成部62及び走行指示部63へと出力してから、ステップS631へと進む。
【0110】
図13は、速度姿勢推定部52で以上のようにして計算する移動距離d
ri、速度v
ri、姿勢θ
riの関係を示す図であり、図示されるようにこれらはそれぞれ以下の式によって計算することができる。
【0111】
【0112】
以上の式の通り、移動距離d
riは2点座標間のユークリッド距離として計算することができる。速度v
riはこの移動距離d
riを画像のサンプリング間隔t(秒)(すなわち、画像F(i)と画像F(i-1)との時間間隔t)で割って計算することができる。あるいは、時刻i,i-1間の速度(概ね瞬間速度に等しいことが想定される)ではなく、さらに過去の側の一定期間まで含めた平均速度として速度v
riを計算してもよい。
図13及び上記の式の通り、姿勢θ
riは地図の(x,y)平面(右方向に+x方向、上方向に+y方向となる平面)において半時計周りを正とし時計周りを負として求めているが、座標系によっては正負がこの逆で定義されるものであってもよい。
【0113】
ステップS631において、走行指示部63は最短経路とロボットの座標r(i)=(xri,yri)から、経路追従制御を行うためのロボットRBの加速度と姿勢変位量を数値として計算し、ステップS632において当該数値(制御指示の情報に相当)をロボットRBの制御部91へと送信することで走行指示を行ってから、フローはステップS633へと進む。
【0114】
走行指示部63及びロボットRBの制御部91はWi-Fi(登録商標)やセルラー通信などの無線装置を搭載しており、これらの間で予め無線通信を確立することで、複数の数値を常時送信することができる。通信プロトコルはRESTful APIや「MQTT」(Message Queuing Telemetry Transport)や「CoAP」(Constrained Application Protocol)を用いることができる。
【0115】
走行指示部63において経路追従制御は、例えばロバスト経路追従制御(非特許文献9)などの手法を用いて、最短経路とロボットの座標r(i)=(xri,yri)を入力とし、現在の距離偏差(必ずしも0ではない)並びにこの距離偏差が例えば0となるように制御するための加速度及び姿勢変位量を計算することができる。あるいは、経路追従制御は、現在の距離偏差(必ずしも0ではない)並びにこの距離偏差が例えば0となるように制御するための目標速度及び目標姿勢を計算することもできる。その後、走行指示部63はロボットに加速度と姿勢変位量を送信する。
[非特許文献9]「杉原 "仮想Leader-Followerモデルに基づくロバスト経路追従制御", RSJ2015AC1D1-08, 2015」
【0116】
ロボットRBでは、ステップS632において上記送信された加速度と姿勢変位量を制御部91において受信し、現在の速度から加速度分のみ加速すること、現在の姿勢から姿勢変位量へ方向転換するように、駆動部92へと制御信号を出力することができる。あるいは、制御部91において目標速度と目標姿勢を受信することで、駆動部92において目標速度と一致した速度と目標姿勢に一致した姿勢で走行することもできる。
【0117】
駆動部92はハードウェアとしてはモータ等のアクチュエータと、当該アクチュエータが発生する駆動力によってロボットRBを付勢して移動させるための車輪等の駆動機構とを含んで構成され、制御部91から得た制御信号に応じた駆動制御を行うことで、ロボットRBをナビゲーションに従って移動させることができる。
【0118】
ステップS633では、ロボットRBが目的地に到達したか否かを判定し、到達していればステップS634へと進み、到達していなければステップS516へと進む。ステップS634では、走行指示部63が制御部91へとロボットRBの走行停止指示(例えばロボットRBの速度をゼロとする指示)を送信し、制御部91が当該指示に従って走行停止させる制御信号を駆動部92へと出力することで、ロボットRBの移動を停止し、目的地に到達したものとしてナビゲーションを停止し、
図11のフローを終了する。あるいは、目的地に停止するための速度偏差と姿勢を送信することで、ロボットRBが目的地に近づきながら停止するようにしてもよい。
【0119】
ステップS516では、現時刻i(処理対象となるフレーム画像F(i)の番号)を次の時刻i+1へと切り替えてステップS513へと戻り、リアルタイムの次の画像F(i+1)について処理を繰り返す。
【0120】
以上、本発明の各実施形態に係る地図利用システム10について説明した。本発明の実施形態によれば、椅子などの什器に滞在する人物動線を除去し、逐次的に人物動線を取得して障害物が含まれないロボットの通路を生成することで、外部サーバの指示を受けて走行するロボットが障害物を回避しながら目的地へ到達することが期待できる。あるいは、外部サーバの指示を受けて走行するロボットがセンサを保有していた場合にも、センサで障害物を検知する前に、障害物を回避して目的地へ到達することができる。
【0121】
以下、種々の追加例、補足例、代替例などについて説明する。
【0122】
(1) 本発明の実施形態の応用例として、何らかの作業現場である環境においてロボットを活用した作業等を遠隔制御によってより円滑に行うことが可能となる。これにより、当該作業現場にユーザが実際に赴くことを必須とせず、ユーザ移動に必要となるエネルギー資源を節約することで二酸化炭素排出量を抑制できることから、国連が主導する持続可能な開発目標(SDGs)の目標13「気候変動とその影響に立ち向かうため、緊急対策を取る」に貢献することが可能となる。
【0123】
(2) 地図生成装置20で地図に関して、2次元の場合で正方形のセルで構成される場合として説明したが、3次元の場合も全く同様に、立方体あるいは直方体のセルを用いて地図を同様に生成することができる。また、2次元あるいは3次元の地図の場合に、単位格子としてのセルの形状は正方形等に限らず、単位格子として利用できる任意の形状(例えば6角形のハニカム状など)を用いてもよい。また、上向きの三角形と下向きの三角形とのペアで単位格子を構成するような方式を用いてもよい。
【0124】
(3)
図14は、一般的なコンピュータ装置70におけるハードウェア構成の例を示す図である。地図利用システム10を構成する環境センサ1、地図生成装置20、ナビゲーション装置50及びロボットRBの各々は、このような構成を有する1台以上のコンピュータ装置70として実現可能である。なお、2台以上のコンピュータ装置70で地図利用システム10の部分構成を実現する場合、ネットワーク経由で処理に必要な情報の送受を行うようにしてよい。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する専用プロセッサとしてのGPU(グラフィックス演算装置)72、CPU71(及びGPU72)にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77、ロボットRBとしての自律移動機能を提供するアクチュエータ78、表示部80及びカメラ81と、これらの間でデータを授受するためのバスBSと、を備える。
【0125】
地図利用システム10の各機能部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又はGPU72によって実現することができる。なお、CPU71及びGPU72は共に、演算装置(プロセッサ)の一種である。ここで、表示関連の処理が行われる場合にはさらに、液晶等のモニタあるいはLED等の点灯装置として構成される表示部80が連動して動作し、データ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース75が連動して動作する。環境センサ1はカメラ81として実現してもよいし、LiDAR等のその他のセンサで実現してもよい。ロボットRBの駆動部92はアクチュエータ78によって実現してよい。
【符号の説明】
【0126】
10…地図利用システム、1…環境センサ、20…地図生成装置、50…ナビゲーション装置、RB…ロボット、2…動線生成部、3…地図生成部、5…位置推定部、6…ナビゲーション部