以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の情報処理装置は、移動体により撮像された動画像から、機械学習によって、動画像に写っている被写体について、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知する検知手段(例えば、図6の物体検知AI部171)と、動画像および動画像における被写体の位置から、移動体から被写体までの距離および移動体に対する被写体の速度を求める画像処理手段(例えば、図6の画像処理部172)と、動画像、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、移動体から被写体までの距離および移動体に対する被写体の速度から、機械学習によって、動画像のシーンの危険の程度を測定する測定手段(例えば、図6の危険度測定AI部173)と、動画像に、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、移動体から被写体までの距離、移動体に対する被写体の速度および動画像のシーンの危険の程度を示す文字または画像を書き込む書き込み手段(例えば、図6の描画部174)とを含む。
本発明の一側面の情報処理方法は、移動体により撮像された動画像から、機械学習によって、動画像に写っている被写体について、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知する検知ステップ(例えば、図11のステップS51の手続き)と、動画像および動画像における被写体の位置から、移動体から被写体までの距離および移動体に対する被写体の速度を求める画像処理ステップ(例えば、図11のステップS52の手続き)と、動画像、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、移動体から被写体までの距離および移動体に対する被写体の速度から、機械学習によって、動画像のシーンの危険の程度を測定する測定ステップ(例えば、図11のステップS53の手続き)と、動画像に、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、移動体から被写体までの距離、移動体に対する被写体の速度および動画像のシーンの危険の程度を示す文字または画像を書き込む書き込みステップ(例えば、図11のステップS54の手続き)とを含む。
本発明の一側面のプログラムは、移動体により撮像された動画像から、機械学習によって、動画像に写っている被写体について、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知する検知ステップ(例えば、図11のステップS51の手続き)と、動画像および動画像における被写体の位置から、移動体から被写体までの距離および移動体に対する被写体の速度を求める画像処理ステップ(例えば、図11のステップS52の手続き)と、動画像、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、移動体から被写体までの距離および移動体に対する被写体の速度から、機械学習によって、動画像のシーンの危険の程度を測定する測定ステップ(例えば、図11のステップS53の手続き)と、動画像に、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、移動体から被写体までの距離、移動体に対する被写体の速度および動画像のシーンの危険の程度を示す文字または画像を書き込む書き込みステップ(例えば、図11のステップS54の手続き)とを含む情報処理をコンピュータに行わせる。
以下、図1乃至図21を参照して、本発明の実施の形態を説明する。
図1は、清掃システム11の構成の一例を示す図である。清掃システム11は、病院や公共施設などの建物の屋内の床を清掃する。清掃システム11は、自律的に走行して、清掃を行う清掃ロボットを制御して、清掃ロボットに清掃をさせる。清掃システム11は、AI(Artificial Intelligence)サーバ21、清掃ロボット22−1および22−2、ハブ23、アクセスポイント24−1乃至24−3並びにタッチパネルモニタ25−1および25−2を含み構成される。
AIサーバ21は、動画像から、動画像のシーンにおける危険の程度を測定する。ここで動画像のシーンとは、動画像における一区切りであって、所定の状態または所定の動作をしている所定の被写体がある、所定の場所が写されている一区切りをいう。例えば、AIサーバ21は、動画像から、動画像に写っている被写体と清掃ロボット22−1および22−2との接触の危険の程度を測定する。AIサーバ21は、測定された危険の程度が所定の閾値以上である場合、清掃ロボット22−1および22−2の停止または減速を指令する。清掃ロボット22−1および22−2は、自律的に走行して、床面の清掃を行う。清掃ロボット22−1および22−2は、走行する先の動画像を撮像する。
すなわち、AIサーバ21は、走行する先の動画像を撮像する清掃ロボット22−1および22−2から送信されてくる動画像の撮像データを処理して、動画像に写っている被写体との接触の危険の程度を測定し、測定された危険の程度が所定の閾値以上である場合、清掃ロボット22−1および22−2の停止または減速を指令する。
ハブ23は、スター型のネットワークトポロジ(物理トポロジ)を採用するネットワークにおける集線装置である。ハブ23は、AIサーバ21とアクセスポイント24−1乃至24−3のそれぞれとを接続する。
アクセスポイント24−1乃至24−3は、それぞれ、清掃ロボット22−1および22−2のそれぞれに、無線LAN(Local Area Network)の所定の規格の無線通信で接続するための無線通信機である。清掃ロボット22−1および22−2は、走行する先の動画像を撮像し、ハブ23およびアクセスポイント24−1乃至24−3を介して、AIサーバ21に動画像を表示させる撮像データを送信する。
タッチパネルモニタ25−1および25−2は、表示機能および入力機能を備える。タッチパネルモニタ25−1および25−2は、タッチスクリーンとも称され、AIサーバ21からの画像データにより所定の画像を表示する。また、タッチパネルモニタ25−1および25−2のそれぞれの画面の前面には、表示されている画像を透過させ、接触された位置を入力する位置入力装置であるタッチパネルが設けられている。タッチパネルモニタ25−1および25−2のそれぞれのタッチパネルが触られて操作されると、触られた位置を示す信号がAIサーバ21に送られる。
AIサーバ21は、清掃ロボット22−1および22−2から送信されてくる撮像データにより、動画像をタッチパネルモニタ25−1および25−2に表示させる。清掃ロボット22−1および22−2の走行を監視している監視者は、タッチパネルモニタ25−1および25−2に表示されている動画像を監視する。監視者は、タッチパネルモニタ25−1および25−2に表示されている動画像から、清掃ロボット22−1または22−2と患者や通行人などの人が接触する危険があると判断した場合、タッチパネルモニタ25−1または25−2にタッチして、清掃ロボット22−1または22−2を停止させるか、または減速させる。
清掃ロボット22は、病院や公共施設などの建物の屋内を走行するので、速度は人が歩く程度であり、道路を走行する自動車などに比較して遅いので、監視者が、タッチパネルモニタ25の画像を見て、停止または減速を指示すれば、被写体との接触などの危険を回避することができる。
なお、以下、清掃ロボット22−1および22−2を個々に区別する必要がない場合、単に、清掃ロボット22と称する。また、以下、アクセスポイント24−1乃至24−3を個々に区別する必要がない場合、単に、アクセスポイント24と称する。さらに、以下、タッチパネルモニタ25−1および25−2を個々に区別する必要がない場合、単に、タッチパネルモニタ25と称する。
図1には、2つの清掃ロボット22を示したが、単数または複数の任意の数の清掃ロボット22を用いることができる。また、図1には、3つのアクセスポイント24を示したが、単数または複数の任意の数のアクセスポイント24を設けることができる。さらにまた、図1には、2つのタッチパネルモニタ25を示したが、単数または複数の任意の数のタッチパネルモニタ25を設けることができる。
図2は、清掃ロボット22の外形の一例を示す図である。清掃ロボット22の本体41には、走行のための車輪やモータ、清掃のためのブラシやブラシを駆動するためのモータおよびバッテリなどの電源などが設けられている。清掃ロボット22の本体41の上面前方には、制御モジュール42が設けられている。制御モジュール42は、タブレット型のパーソナルコンピュータまたは専用のコンピュータなどからなる。制御モジュール42は、アクセスポイント24およびハブ23を介して、AIサーバ21と通信する。制御モジュール42は、停止などの各種の指令を本体41に送り、本体41の動作を制御する。
清掃ロボット22の本体41の前面側には、カメラ43が設けられている。カメラ43は、清掃ロボット22の前方の動画像を撮像する。すなわち、カメラ43は、清掃ロボット22が走行する先の動画像を撮像する。カメラ43で撮像された動画像の撮像データは、制御モジュール42により、AIサーバ21に送信される。
次に、清掃ロボット22のハードウェアの構成について説明する。
図3は、清掃ロボット22のハードウェアの構成の一例を示すブロック図である。清掃ロボット22は、制御モジュール42、カメラ43、走行動作制御部51、センサ52、駆動部53、モータ54、車輪55、清掃動作制御部61、センサ62、駆動部63、モータ64およびブラシ65を含み構成される。制御モジュール42は、スピーカ71、表示部72、タッチパネル73、通信部74および記憶部75を含む。スピーカ71は、いわゆるラウドスピーカであり、各種の音声を出力する(放音する)。例えば、スピーカ71は、病院や公共施設などの建物の屋内を通行している人に対してメッセージを示す音声を出力する。表示部72は、液晶表示装置や有機EL(Electro-luminescence)表示装置などからなり、各種の画像や文字などを表示する。例えば、表示部72は、病院や公共施設などの建物の屋内を通行している人に対してメッセージを示す画像や文字を表示する。タッチパネル73は、表示部72の表示面に設けられ、表示部72に表示されている画像を透過させ、接触された位置を入力する。例えば、タッチパネル73は、起動の時にオペレータからの指示などを入力する。通信部74は、無線LANの所定の規格により、アクセスポイント24と無線通信する。記憶部75は、フラッシュメモリなどの不揮発性メモリなどからなり、各種のデータを記憶する。
走行動作制御部51は、専用のプロセッサなどからなり、センサ52または制御モジュール42からの信号により、駆動部53を制御することで、清掃ロボット22の走行を制御する。センサ52は、赤外線や超音波を利用した距離センサや3次元の加速度センサなどからなり、清掃ロボット22の姿勢や周囲の人や物を検知して、その検知結果を示す信号を走行動作制御部51に供給する。駆動部53は、インバータなどであり、図示せぬバッテリなどの電源によって、モータ54を駆動する。モータ54は、清掃ロボット22の底面の4隅などに設けられている車輪55を回転させたり、車輪55の向きを変えたりする。
清掃動作制御部61は、専用のプロセッサなどからなり、センサ62からの信号により、駆駆動部63を制御することで、清掃ロボット22による清掃の動作を制御する。センサ62は、掃除のときの音を感知するマイク、またはごみの有無や量を感知するピエゾセンサや光センサなどからなり、床のごみや清掃の動作の状態を感知して、その検知結果を示す信号を清掃動作制御部61に供給する。駆動部63は、インバータなどであり、図示せぬバッテリなどの電源によって、モータ64を駆動する。モータ64は、清掃ロボット22の底面などに設けられているブラシ65を回転させたり、ごみを吸い込む吸引装置を動作させたりする。
次に、制御モジュール42の機能について説明する。
図4は、制御モジュール42が制御プログラムを実行することにより実現される機能の構成の一例を説明するブロック図である。制御モジュール42が制御プログラムを実行すると、撮像制御部81、符号化部82、通信制御部83、フラグ設定部84、記憶制御部85、指示部86および音声出力制御部87が実現される。
撮像制御部81は、カメラ43による動画像の撮像を制御する。符号化部82は、カメラ43により撮像された動画像をH.262/MPEG(Moving Picture Experts Group)-2 Part 2やMPEG-4 AVC(Advanced Video Coding)/H.264などの方式により、符号化して、撮像データを生成する。通信制御部83は、通信部74による通信を制御する。通信制御部83は、送信制御部91および受信制御部92を含む。送信制御部91は、通信部74を制御することで、動画像の撮像データの送信など、アクセスポイント24を介したAIサーバ21への各種のデータの送信を制御する。受信制御部92は、通信部74を制御することで、停止を指示する制御信号の受信など、アクセスポイント24を介してAIサーバ21から送信されてくる各種のデータの受信を制御する。
フラグ設定部84は、記憶部75の所定のアドレスのデータのビットを0または1に設定することで、清掃ロボット22が停止していることを示す停止フラグなど各種のフラグを設定する。記憶制御部85は、記憶部75への音声のデータの記憶を制御する。指示部86は、タッチパネル73からの操作に応じた信号やAIサーバ21から停止を指示する制御信号などに応じて、走行動作制御部51に停止や減速などを指示する。指示部86は、判定部93を含む。判定部93は、AIサーバ21から送信されてきた制御信号が停止を指示するものであるか、減速を指示するものであるかなどを判定する。
音声出力制御部87は、AIサーバ21から送信されてくる制御信号であって、音声の出力を指示する制御信号を受信した場合、記憶部75に記憶されている音声データを読み出して、音声データによる音声をスピーカ71に出力させる。
次に、AIサーバ21のハードウェアについて説明する。
図5は、AIサーバ21のハードウェアの構成の一例を示すブロック図である。
AIサーバ21において、CPU(Central Processing Unit)121,ROM(Read Only Memory)122,RAM(Random Access Memory)123は、バス124により相互に接続されている。
バス124には、さらに、入出力インタフェース125が接続されている。入出力インタフェース125には、必要に応じて接続されるキーボードまたはマウスなどよりなる入力部126、必要に応じて接続されるディスプレイなどよりなる出力部127、ハードディスクや不揮発性のメモリなどよりなる記録部128、ネットワークインタフェースなどよりなる通信部129、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア131を駆動するドライブ130が接続されている。
また、入出力インタフェース125には、図示せぬGPU(Graphics Processing Unit)を介して、タッチパネルモニタ25が接続されている。
以上のように構成されるAIサーバ21(コンピュータ)では、CPU121が、例えば、記録部128に記録されているプログラムを、入出力インタフェース125及びバス124を介して、RAM123にロードして実行することにより、後述する一連の処理が行われる。
AIサーバ21(CPU121)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア131に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア131をドライブ130に装着することにより、入出力インタフェース125を介して、記録部128に記録することで、コンピュータにインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部129で受信し、記録部128に記録することで、コンピュータにインストールすることができる。その他、プログラムは、ROM122や記録部128にあらかじめ記憶または記録しておくことで、コンピュータにあらかじめインストールしておくことができる。
すなわち、AIサーバ21(コンピュータ)では、インストールされたプログラムを実行することにより、図6を参照して後述する機能が実現される。
図6は、AIサーバ21がプログラムを実行することにより実現される機能の構成の一例を示すブロック図である。AIサーバ21がプログラムを実行することにより、危険度測定部161、撮像データバッファ162、復号部163、学習データ記録制御部164、学習スケジューラ165、判定部166、指令部167、通信制御部168、入力制御部169および表示制御部170が実現される。危険度測定部161は、清掃ロボット22から送信されてくる動画像の撮像データから、機械学習によって、動画像のシーンの危険の程度を測定する。また、危険度測定部161は、清掃ロボット22から送信されてくる動画像の撮像データから、機械学習によって、動画像に写っている被写体との接触の危険の程度を測定する。また、危険度測定部161は、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度を測定する。危険度測定部161は、物体検知AI部171、画像処理部172、危険度測定AI部173および描画部174を含む。
なお、危険度測定部161は、図示せぬGPUに計算を実行させて、動画像のシーンの危険の程度を測定するようにしてもよい。また、危険度測定部161は、図示せぬAIチップに計算を実行させて、動画像のシーンの危険の程度を測定するようにしてもよい。なお、危険度測定部161は、清掃ロボット22の数だけ実現されるようにしてもよい。例えば、図1に示されるように、清掃システム11において、清掃ロボット22−1および22−2が清掃する場合、図示は省略するが、プログラムを実行するAIサーバ21は、清掃ロボット22−1用の危険度測定部161−1と、清掃ロボット22−2用の危険度測定部161−2とを実現させる。
物体検知AI部171は、清掃ロボット22により撮像された動画像の撮像データから、ニューラルネットワークを用いた機械学習によって、動画像に写っている被写体について、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知する。
例えば、物体検知AI部171は、ディープラーニングを利用した物体検出を行うYOLO(You Only Look Once),R-CNN(Regions with Convolutional Neural Network),Faster R-CNNまたはFCN(Fully Convolutional Network)などの畳み込みニューラルネットワークによる機械学習によって、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知する。例えば、YOLOを採用する物体検知AI部171は、動画像の全体からクラス確率および物体のバウンディングボックス座標を推論する。例えば、R-CNNを採用する物体検知AI部171は、選択的探索法から得られる物体領域候補内の画像を、事前に学習しておいたCNN(Convolutional Neural Network)に入力して、画像特徴を抽出し、抽出された画像特徴を線形サポートベクトルマシンに入力して物体クラスを予測する。
なお、物体検知AI部171は、学習済みモデルを使用して、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知する。
また、物体検知AI部171は、図示せぬGPUに計算を実行させて、動画像に写っている被写体について、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知するようにしてもよい。なお、物体検知AI部171は、図示せぬAIチップに計算を実行させて、動画像に写っている被写体について、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知するようにしてもよい。さらにまた、物体検知AI部171は、清掃ロボット22の数だけ実現されるようにしてもよい。例えば、図1に示されるように、清掃システム11において、清掃ロボット22−1および22−2が清掃する場合、図示は省略するが、プログラムを実行するAIサーバ21は、清掃ロボット22−1用の物体検知AI部171−1と、清掃ロボット22−2用の物体検知AI部171−2とを実現させる。
画像処理部172は、画像処理により、動画像および動画像における被写体の位置から、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度を求める。また、画像処理部172は、画像処理により、物体検知AI部171において被写体が人であると検知された場合、清掃ロボット22に対する被写体の向きまたは清掃ロボット22に対する被写体の顔の向きを求める。例えば、画像処理部172は、動画像および動画像における被写体の位置から、平面射影変換またはリセクションの処理により、清掃ロボット22から被写体までの距離を求める。例えば、画像処理部172は、動画像および動画像における被写体の位置から、背景差分法またはオプティカルフローにより、清掃ロボット22に対する被写体の速度を求める。
例えば、画像処理部172は、目、鼻および口などの特徴点(領域)から左目端点、右目端点、鼻頂点、口左端、口右端および顎の先の6つの点を検出して、顔の回転角度を求めることで、清掃ロボット22に対する被写体の顔の向きを求める。また、例えば、画像処理部172は、動画像における、被写体の身体の特徴量を抽出し、正規化した特徴量からSVM(Support Vector Machine)およびクラス識別器により被写体の身体の向きを検出する。
なお、物体検知AI部171または画像処理部172は、人である被写体が健常者、患者または子供であるか否か、人である被写体が立ち話をしているか否か、人である被写体が松葉杖をついているか否か、人である被写体が点滴スタンドを持っているか否かなどを検出するようにしてもよい。
危険度測定AI部173は、動画像、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度から、ニューラルネットワークを用いた機械学習によって、動画像のシーンの危険の程度を測定する。また、危険度測定AI部173は、動画像、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度から、ニューラルネットワークを用いた機械学習によって、清掃ロボット22と被写体との接触の危険の程度を測定する。
例えば、危険度測定AI部173は、Deep CNNなどの畳み込みニューラルネットワークによる機械学習によって、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度から、動画像のシーンの危険の程度を測定する。例えば、危険度測定AI部173は、Deep CNNなどの畳み込みニューラルネットワークによる機械学習によって、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度から、清掃ロボット22と被写体との接触の危険の程度を測定する。
なお、危険度測定AI部173は、学習済みモデルを使用して、動画像のシーンの危険の程度および清掃ロボット22と被写体との接触の危険の程度を測定する。
描画部174は、動画像に、動画像のシーンの危険の程度を示す文字または画像を書き込む。また、描画部174は、動画像に、清掃ロボット22と被写体との接触の危険の程度を示す文字または画像を書き込む。すなわち、描画部174は、動画像の撮像データに、動画像のシーンの危険の程度を示す文字または画像および清掃ロボット22と被写体との接触の危険の程度を示す文字または画像を表示させるデータを書き込む。より詳細には、描画部174は、動画像に、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、清掃ロボット22から被写体までの距離、清掃ロボット22に対する被写体の速度または動画像のシーンの危険の程度若しくは清掃ロボット22と被写体との接触の危険の程度を示す文字または画像を描画する。
さらに、描画部174は、動画像に、動画像のシーンの危険の程度または被写体との接触の危険の程度に応じた停止または減速などの清掃ロボット22への指令を示す文字または画像を書き込む。
撮像データバッファ162は、RAM123の記憶領域または記録部128の記録領域を用いて、清掃ロボット22からの撮像データを一時的に格納する。例えば、撮像データバッファ162は、リングバッファとされる。復号部163は、清掃ロボット22からの撮像データであって、符号化部82で符号化されている撮像データを復号する。学習データ記録制御部164は、タッチパネルモニタ25への操作によって監視者から清掃ロボット22の停止または減速が指示された場合、撮像データバッファ162から撮像データを取得して、停止が指示された時を含む所定の長さの時間の動画像の撮像データを記録部128に記録させる。学習スケジューラ165は、記録部128に記録された動画像の撮像データによる危険度測定部161の学習の実行を予約する。学習スケジューラ165は、危険度測定部161の学習のジョブをスケジューリングすることで予約する。また、学習スケジューラ165は、監視者またはオペレータからのタッチパネルモニタ25または入力部126への操作による指示に応じて、危険度測定部161の学習のジョブのスケジューリングにおける、学習の実行の可否および学習が実行される時刻を決定する。
判定部166は、危険度測定AI部173で測定された清掃ロボット22と被写体との接触の危険の程度から、清掃ロボット22に停止を指令するか否か、清掃ロボット22に減速を指令するか否かなどを判定する。指令部167は、通信部129から清掃ロボット22に制御信号を送信させることで、清掃ロボット22に停止、減速または加速を指令する。通信制御部168は、通信部129による通信を制御する。通信制御部168は、送信制御部175および受信制御部176を含む。送信制御部175は、通信部129を制御することで、停止を指示する制御信号の送信など、アクセスポイント24を介した清掃ロボット22への各種のデータの送信を制御する。受信制御部176は、通信部129を制御することで、動画像の撮像データの受信など、アクセスポイント24を介して清掃ロボット22から送信されてくる各種のデータの受信を制御する。
入力制御部169は、タッチパネルモニタ25のタッチパネルを制御し、監視者がタッチパネルモニタ25のタッチパネルを操作した場合にタッチパネルモニタ25から送信されてくる、操作に応じた信号を取得する。表示制御部170は、タッチパネルモニタ25のモニタを制御し、清掃ロボット22から送信されてくる動画像をタッチパネルモニタ25に表示させる。
次に、フローチャートを参照して、清掃システム11において行われる処理を説明する。
図7は、起動の処理を説明するフローチャートである。ステップS101において、監視者またはオペレータの操作により、制御モジュール42が起動させられる。ステップS102において、制御モジュール42は、AIサーバ21に接続する。ステップS201において、AIサーバ21は、制御モジュール42と接続する。例えば、制御モジュール42の通信制御部83は、通信部74に、TCP(Transmission Control Protocol)により、ハブ23およびアクセスポイント24を介して、通信制御部168に制御される通信部129とコネクションを確立させる。なお、制御モジュール42とAIサーバ21とは、UDP(User Datagram Protocol)により接続するようにしてもよい。
ステップS103において、指示部86の判定部93は、通信制御部83からコネクションが確立しているか否かを示すステータス情報を取得して、ステータス情報を参照して、制御モジュール42がAIサーバ21に接続しているか否かを判定する。ステップS103において、制御モジュール42がAIサーバ21に接続していないと判定された場合、手続きはステップS104に進み、判定部93は、制御モジュール42に内蔵されているタイマにより、ステップS102の手続きからの経過時間を計り、例えば1秒間経過したか否かにより、タイムアウトしたか否かを判定する。例えば、ステップS104において、判定部93は、ステップS102の手続きからの1秒間経過していない場合、タイムアウトしていないと判定し、ステップS102の手続きからの1秒間以上経過した場合、タイムアウトしたと判定する。
ステップS104において、タイムアウトしていないと判定された場合、手続きはステップS103に戻り、上述した処理が繰り返される。ステップS104において、タイムアウトしたと判定された場合、手続きはステップS105に進み、判定部93は、フラグ設定部84により設定される停止フラグであって、清掃ロボット22が停止していることを示す停止フラグが立っているか否かを判定する。ステップS105において、停止フラグが立っていると判定された場合、手続きはステップS102に戻り、上述した処理が繰り返される。
ステップS105において、停止フラグが立っていないと判定された場合、手続きはステップS106に進み、制御モジュール42は、清掃ロボット22を停止させる。すなわち、制御モジュール42の指示部86は、走行動作制御部51に停止を指示する。ステップS105の後、手続きはステップS102に戻り、上述した処理が繰り返される。
ステップS103において、制御モジュール42がAIサーバ21に接続していると判定された場合、手続きはステップS107に進み、撮像制御部81は、カメラ43を制御して、カメラ43に動画像の撮像を開始させる。カメラ43は、動画像のデータを制御モジュール42に供給する。ステップS108において、制御モジュール42による走行制御の処理が開始され、起動の処理は終了する。
図8は、ステップS108の走行制御の処理の詳細を説明するフローチャートである。ステップS11において、指示部86は、走行動作制御部51および清掃動作制御部61から清掃ロボット22の動作状態を示すデータ(以下、動作状態データと称する。)を取得する。ステップS12において、指示部86の判定部93は、動作状態データを参照して、清掃ロボット22が停止しているか否かを判定する。ステップS12において、清掃ロボット22が停止していると判定された場合、手続きはステップS13に進み、フラグ設定部84は、停止フラグを立てる。ステップS12において、清掃ロボット22が停止していないと判定された場合、手続きはステップS14に進み、フラグ設定部84は、停止フラグを倒す。
ステップS13またはステップS14の後、手続きはステップS15に進み、通信制御部83の受信制御部92は、通信部74に、AIサーバ21から送信されてくる制御信号を受信させる。ステップS16において、指示部86の判定部93は、受信した制御信号により停止が指示されたか否かを判定する。ステップS16において、停止が指示されたと判定された場合、手続きはステップS17に進み、指示部86は、走行動作制御部51に停止を指示して、清掃ロボット22を停止させ、手続きはステップS11に戻り、上述した処理が繰り返される。
ステップS16において、停止が指示されていないと判定された場合、手続きはステップS18に進み、指示部86の判定部93は、受信した制御信号により減速が指示されたか否かを判定する。ステップS18において、減速が指示されたと判定された場合、手続きはステップS19に進み、指示部86は、走行動作制御部51に減速を指示して、清掃ロボット22を減速させ、手続きはステップS11に戻り、上述した処理が繰り返される。
ステップS18において、減速が指示されていないと判定された場合、手続きはステップS20に進み、指示部86の判定部93は、受信した制御信号により加速が指示されたか否かを判定する。ステップS20において、加速が指示されたと判定された場合、手続きはステップS21に進み、指示部86は、走行動作制御部51に加速および通常走行を指示して、清掃ロボット22を加速させて通常走行させ、手続きはステップS11に戻り、上述した処理が繰り返される。
ステップS20において、加速が指示されていないと判定された場合、手続きはステップS22に進み、指示部86の判定部93は、受信した制御信号により停止フラグが要求されたか否かを判定する。ステップS22において、停止フラグが要求されたと判定された場合、手続きはステップS23に進み、フラグ設定部84は、停止フラグを読み出して、通信制御部83の送信制御部91は、通信部74に、読み出した停止フラグをAIサーバ21宛に送信させる。ステップS23の後、手続きはステップS11に戻り、上述した処理が繰り返される。
ステップS22において、停止フラグが要求されていないと判定された場合、手続きはステップS24に進み、指示部86の判定部93は、受信した制御信号により音声の出力が要求されたか否かを判定する。ステップS24において、音声の出力が要求されたと判定された場合、手続きはステップS25に進み、音声出力制御部87は、記憶部75から音声データを読み出して、読み出した音声データによりスピーカ71に音声を出力させる。ステップS23の後またはステップS24において、音声の出力が要求されていないと判定された場合、手続きはステップS11に戻り、上述した処理が繰り返される。
次に、図9および図10のフローチャートを参照して、AIサーバ21による清掃ロボット22の走行制御の処理を説明する。ステップS121において、清掃ロボット22は、撮像データをストリーミングでAIサーバ21に送信する。すなわち、ステップS121において、符号化部82は、カメラ43の撮像により得られた動画像のデータを符号化して、ストリーミングデータである撮像データを生成し、通信制御部83の送信制御部91は、通信部74に、AIサーバ21宛に、ストリーミングデータである撮像データを送信させる。
ステップS221において、AIサーバ21は、ストリーミングデータである撮像データを受信する。より詳細には、通信制御部168の受信制御部176は、通信部129に、清掃ロボット22から送信されてきた撮像データを受信させる。撮像データバッファ162は、受信した撮像データを一時的に格納する。危険度測定部161は、撮像データバッファ162から順に撮像データを読み出す。
ステップS222において、危険度の測定の処理が行われる。
ここで、図11のフローチャートを参照して、危険度の測定の処理の詳細を説明する。ステップS51において、危険度測定部161の物体検知AI部171は、清掃ロボット22により撮像された動画像の撮像データから、ニューラルネットワークを用いた機械学習によって、動画像に写っている被写体について、被写体の種類と画像中の被写体の位置とを検知する。言い換えれば、物体検知AI部171は、移動体である清掃ロボット22により撮像された動画像から、ニューラルネットワークを用いた機械学習によって、動画像に写っている被写体について、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知する。
ステップS52において、危険度測定部161の画像処理部172は、画像処理により、撮像データ、被写体の種類および画像中の被写体の位置から、清掃ロボット22から被写体までの距離や被写体の移動速度など被写体の属性を求める。すなわち、画像処理部172は、画像処理により、動画像および動画像における被写体の位置から、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度を求める。また、画像処理部172は、画像処理により、ステップS51において被写体が人であると検知された場合、清掃ロボット22に対する被写体の向きまたは清掃ロボット22に対する被写体の顔の向きを求める。
ステップS53において、危険度測定部161の危険度測定AI部173は、撮像データ、被写体の種類、画像中の被写体の位置および被写体の属性から、危険度を測定する。例えば、危険度測定AI部173は、撮像データ、被写体の種類、画像中の被写体の位置および被写体の属性から、動画像のシーンの危険の程度である危険度を測定する。また、例えば、危険度測定AI部173は、撮像データ、被写体の種類、画像中の被写体の位置および被写体の属性から、清掃ロボット22と被写体との接触の危険の程度である危険度を測定する。ここで、例えば、危険度は、0%乃至100%の範囲で表される。0%である危険度は、清掃ロボット22と被写体との接触の危険がないことを示す。100%である危険度は、清掃ロボット22と被写体との接触の可能性が極めて大きいことを示す。例えば、危険度は、清掃ロボット22が階段などの段差から転落する危険の程度を示す。また、例えば、危険度は、ロボット22の近くの扉が開いて、扉の陰にいる人が扉と接触する危険の程度を示す。さらに例えば、危険度は、ロボット22が床面に落とされた物(落下物)を清掃で巻き込んでしまう危険の程度を示す。
言い換えると、危険度測定AI部173は、動画像、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度から、ニューラルネットワークを用いた機械学習によって、動画像のシーンの危険の程度を測定する。危険度測定AI部173は、動画像、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度から、ニューラルネットワークを用いた機械学習によって、清掃ロボット22と被写体との接触の危険の程度および動画像のシーンの危険の程度を測定する。
ステップS54において、危険度測定部161の描画部174は、撮像データに、被写体の位置を示す枠、被写体の種類、被写体の属性、測定の結果である危険度および危険度に応じた制御信号を示す画像または文字を描画するデータを書き込み、危険度の測定の処理は終了する。すなわち、ステップS54において描画部174は、動画像に、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、清掃ロボット22から被写体までの距離、清掃ロボット22に対する被写体の速度または清掃ロボット22と被写体との接触の危険の程度を示す文字または画像を描画する。
図9に戻り、ステップS223において、AIサーバ21は、タッチパネルモニタ25に、危険度の測定の結果が書き込まれた撮像データで動画像を表示させる。
図12は、タッチパネルモニタ25に表示される動画像の例を示す図である。タッチパネルモニタ25は、動画像と、被写体が人であるかまたは人以外の物であるかが検知された被写体の位置を示す枠201、被写体の種類および被写体の種類の正しさの確率を示す「Person:0.89」などの種類表示202、清掃ロボット22から被写体までの距離をcm単位で示す「70」などの距離表示203を表示させる。また、タッチパネルモニタ25は、画面の右上に、清掃ロボット22の状態を示す画像であるステータスモニタ204を表示させる。ステータスモニタ204には、「ROBOT1」などの清掃ロボット22の名称、「East Bldg 1F」などの清掃ロボット22の現在位置、「Degree of Risk 20%」などの動画像のシーンの危険の程度が文字で表示される。また、ステータスモニタ204には、清掃ロボット22が通常の走行状態であることを示すランプ表示211、清掃ロボット22が減速していることを示すランプ表示212、および清掃ロボット22が停止していることを示すランプ表示213が配置されている。ランプ表示211、ランプ表示212およびランプ表示213は、交通信号を模した画像であり、いずれか1つがアクティブ(輝度が高くなる)になるように表示される画像である。例えば、ランプ表示211、ランプ表示212およびランプ表示213は、それぞれ、緑色、黄色、赤色のそれぞれに表示される。
例えば、図12に示されるように、ランプ表示211がアクティブに表示され、ランプ表示212およびランプ表示213が非アクティブ(輝度が低くなる)に表示されている場合、ランプ表示211、ランプ表示212およびランプ表示213は、清掃ロボット22が通常の走行状態であることを示す。
タッチパネルモニタ25は、画面の左下に、「Stop」と表示され、停止を指示するためのボタン205および「Attention」と表示され、「注意してください。ロボットが通ります。」などの音声の出力を指示するためのボタン206を表示させる。さらに、タッチパネルモニタ25は、画面の右下に、距離等表示207に「停止:0%:70cm」などと表示する。
図9に戻り、ステップS224において、判定部166は、ステップS53において測定された危険度が40%以上60%未満であるか否かを判定する。例えば、ステップS224において、判定部166は、動画像のシーンの危険度が40%以上60%未満であるか否かを判定する。ステップS224において、危険度が40%以上60%未満であると判定された場合、手続きはステップS225に進み、指令部167は、減速を指示する制御信号を清掃ロボット22に送信する。この場合、通信制御部168の送信制御部175は、通信部129に、減速を指示する制御信号を清掃ロボット22宛に送信させる。また、この場合、指令部167は、スピーカである出力部127に、所定のビープ音などの音を出力させて、減速したことを監視者に知らせる。
ステップS224において、危険度が40%以上60%未満でないと判定された場合、手続きはステップS226に進み、判定部166は、ステップS53において測定された危険度が60%以上であるか否かを判定する。例えば、ステップS226において、判定部166は、動画像のシーンの危険度が60%以上であるか否かを判定する。ステップS226において、危険度が60%以上であると判定された場合、手続きはステップS227に進み、指令部167は、停止を指示する制御信号を清掃ロボット22に送信する。この場合、通信制御部168の送信制御部175は、通信部129に、停止を指示する制御信号を清掃ロボット22宛に送信させる。
この場合、例えば、図13に示されるように、AIサーバ21は、タッチパネルモニタ25に、ボタン205およびランプ表示213をアクティブに表示させ、ランプ表示211およびランプ表示212を非アクティブに表示させることで、清掃ロボット22が停止していることを表示する。また、AIサーバ21は、タッチパネルモニタ25に、動画像の周囲を、アクティブに表示されるボタン205およびランプ表示213の赤色と同じ赤色で表示させる。
さらに、AIサーバ21は、タッチパネルモニタ25に、「AUTO:STOP」および「Please TOUCH the monitor to release the robot if AI Server is mistaking」などのメッセージ231を表示させる。
ステップS228において、判定部166は、ステップS51における、被写体が人であるかまたは人以外の物であるかの検知の結果から、被写体が人であるか否かを判定する。ステップS228において、被写体が人であると判定された場合、手続きはステップS229に進み、指令部167は、音声の出力を指示する制御信号を清掃ロボット22に送信する。この場合、通信制御部168の送信制御部175は、通信部129に、音声の出力を指示する制御信号を清掃ロボット22宛に送信させる。清掃ロボット22が音声の出力を指示する制御信号を受信すると、清掃ロボット22の音声出力制御部87は、記憶部75から音声データを読み出して、読み出した音声データによりスピーカ71に「注意してください。ロボットが通ります。」などの音声を出力させる。
なお、減速した場合、「注意してください。ロボットが通ります。」などの音声を出力させるようにしてもよい。この場合、例えば、図14に示されるように、AIサーバ21は、タッチパネルモニタ25に、ボタン206およびランプ表示212をアクティブに表示させ、ランプ表示211およびランプ表示213を非アクティブに表示させることで、清掃ロボット22が減速していることを表示する。また、AIサーバ21は、タッチパネルモニタ25に、動画像の周囲を、アクティブに表示されるボタン206およびランプ表示212の黄色と同じ黄色で表示させる。
さらに、AIサーバ21は、タッチパネルモニタ25に、「AUTO: Attention please. The robot will pass.」および「Please TOUCH the monitor to release the robot if AI Server is mistaking」などのメッセージ231を表示させる。
なお、監視者がタッチパネルモニタ25に表示されているボタン206をタッチすることで、清掃ロボット22を減速させて、「注意してください。ロボットが通ります。」などの音声を出力させることもできる。この場合、例えば、図15に示されるように、AIサーバ21は、タッチパネルモニタ25に、ボタン206およびランプ表示212をアクティブに表示させ、ランプ表示211およびランプ表示213を非アクティブに表示させることで、清掃ロボット22が減速していることを表示する。また、AIサーバ21は、タッチパネルモニタ25に、動画像の周囲を、アクティブに表示されるボタン206およびランプ表示212の黄色と同じ黄色で表示させる。
また、AIサーバ21は、タッチパネルモニタ25に、「「MANUAL: Attention please. The robot will pass.」などのメッセージ231を表示させる。
ステップS230において、判定部166は、音声の出力が3回繰り返されたか否かを判定し、音声の出力が3回繰り返されたと判定された場合、清掃ロボット22に制御を戻して清掃ロボット22に人を回避させるために、手続きはステップS231に進み、指令部167は、加速を指示する制御信号を清掃ロボット22に送信する。この場合、通信制御部168の送信制御部175は、通信部129に、加速を指示する制御信号を清掃ロボット22宛に送信させる。
ステップS231の後、ステップS230において、音声の出力が3回繰り返されていないと判定された場合、または、ステップS225の後、AIサーバ21による清掃ロボット22の走行制御の処理は、ステップS121およびステップS221に戻り、上述した手続きが繰り返される。
清掃システム11においては、監視者は、ステップS223の手続きでタッチパネルモニタ25に表示されている画像を見て、清掃ロボット22の走行を監視し、動画像のシーンとして現在の状況全体に危険を感じた場合、または、被写体との接触などの危険を感じた場合、タッチパネルモニタ25の画面、すなわちタッチパネルを触ることで、清掃ロボット22の停止または減速を指示する。
図16のフローチャートを参照して、監視者からの指示に応じた処理を説明する。ステップS81において、入力制御部169は、タッチパネルモニタ25のタッチパネルから送信されてくる信号を取得することで、ボタン205にタッチする、ボタン206にタッチするまたは画面のいずれかの位置にタッチするなどの、監視者のタッチパネルモニタ25のタッチパネルへの操作による指示を取得する。
ステップS82において、判定部166は、非アクティブ状態のボタン205がタッチされるか、または画面のいずれかの位置がタッチされて、監視者から停止が指示されたか否かを判定する。ステップS82において、監視者から停止が指示されたと判定された場合、手続きはステップS83に進み、指令部167は、停止を指示する制御信号を清掃ロボット22に送信する。この場合、通信制御部168の送信制御部175は、通信部129に、停止を指示する制御信号を清掃ロボット22宛に送信させる。
この場合、例えば、図17に示されるように、AIサーバ21は、タッチパネルモニタ25に、ボタン205およびランプ表示213をアクティブに表示させ、ランプ表示211およびランプ表示212を非アクティブに表示させることで、清掃ロボット22が停止していることを表示する。また、AIサーバ21は、タッチパネルモニタ25に、動画像の周囲を、アクティブに表示されるボタン205およびランプ表示213の赤色と同じ赤色で表示させる。
さらに、AIサーバ21は、タッチパネルモニタ25に、「MANUAL:STOP」などのメッセージ231を表示させる。
なお、動画像のシーンにおいて、複数の人や複数の物である被写体が写っている場合には、被写体毎に、被写体の種類と画像中の被写体の位置とが検知され、被写体毎に、清掃ロボット22から被写体までの距離や被写体の移動速度など被写体の属性が求められ、動画像のシーンの危険の程度である危険度が測定される。
図18は、動画像に複数の人や複数の物である被写体が写っている場合のタッチパネルモニタ25に表示される動画像の例を示す図である。なお、図17と同様の部分には同一の符号を付してあり、その説明は省略する。
図18に示される例において、タッチパネルモニタ25は、動画像と、被写体が人であるかまたは人以外の物であるかが検知された被写体の位置を示す枠201−1乃至201−5、被写体の種類および被写体の種類の正しさの確率を示す種類表示202−1乃至202−5、清掃ロボット22から被写体までの距離をcm単位で示す距離表示203−1乃至203−5を表示させる。例えば、タッチパネルモニタ25には、人であることが検知された被写体の位置を示す枠201−1、枠201−1で示される位置の被写体の種類が人であり、被写体の種類が人であることの正しさの確率を示す「Person:0.89」である種類表示202−1、清掃ロボット22から枠201−1で示される位置の人である被写体までの距離をcm単位で示す「260」などの距離表示203−1が表示される。また、例えば、タッチパネルモニタ25には、人であることが検知された被写体の位置を示す枠201−2、枠201−2で示される位置の被写体の種類が人であり、被写体の種類が人であることの正しさの確率を示す「Person:0.93」である種類表示202−2、清掃ロボット22から枠201−2で示される位置の人である被写体までの距離をcm単位で示す「270」などの距離表示203−2が表示される。
さらに、例えば、タッチパネルモニタ25には、ごみ入れであることが検知された被写体の位置を示す枠201−3、枠201−3で示される位置の被写体の種類がごみ入れであり、被写体の種類がごみ入れであることの正しさの確率を示す「Bin:0.82」である種類表示202−3、清掃ロボット22から枠201−3で示される位置のごみ入れである被写体までの距離をcm単位で示す「180」などの距離表示203−3が表示される。さらにまた、例えば、タッチパネルモニタ25には、扉であることが検知された被写体の位置を示す枠201−4、枠201−4で示される位置の被写体の種類が扉であり、被写体の種類が扉であることの正しさの確率を示す「Door:0.79」である種類表示202−4、清掃ロボット22から枠201−4で示される位置の扉である被写体までの距離をcm単位で示す「320」などの距離表示203−4が表示される。
また、例えば、タッチパネルモニタ25には、照明であることが検知された被写体の位置を示す枠201−5、枠201−5で示される位置の被写体の種類が照明であり、被写体の種類が照明であることの正しさの確率を示す「Light:0.69」である種類表示202−5、清掃ロボット22から枠201−5で示される位置の照明である被写体までの距離をcm単位で示す「300」などの距離表示203−5が表示される。
ステータスモニタ204には、「ROBOT1」などの清掃ロボット22の名称、「East Bldg 1F」などの清掃ロボット22の現在位置、「Degree of Risk 87%」などの動画像のシーンの危険の程度が文字で表示される。
図18に示されるように、動画像に複数の人や複数の物である被写体が写っている場合、動画像のシーンの危険の程度に影響の大きい被写体の枠201が、太線や二重線とされるか、または赤色にされるなど強調表示される。すなわち、描画部174は、動画像のシーンの危険の程度に影響の大きい被写体の枠201を強調表示して、動画像に描画する。
例えば、動画像に複数の人や複数の物である被写体が写っている場合、動画像のシーンの被写体のうち、危険の程度が最も高い被写体の位置を示す枠201が強調表示される。すなわち、例えば、動画像に複数の人や複数の物である被写体が写っている場合、清掃ロボット22との接触の危険の程度が最も高い被写体(携帯電話機を見ながら歩いている人)の位置を示す枠201−1が強調表示される。
また、例えば、動画像に複数の人や複数の物である被写体が写っている場合、動画像のシーンの被写体のうち、危険の程度が高い順に所定の数の被写体の位置を示す枠201が強調表示される。すなわち、例えば、動画像に複数の人や複数の物である被写体が写っている場合、清掃ロボット22との接触の危険の程度が最も高い被写体(携帯電話機を見ながら歩いている人)の位置を示す枠201−1と清掃ロボット22との接触の危険の程度が2番目高い被写体(近くにあるごみ入れ)の位置を示す枠201−2とが強調表示される。
すなわち、動画像に複数の人や複数の物である被写体が写っている場合、動画像のシーンのうちの、危険状態にある被写体の枠201が、太線や二重線とされるか、または赤色にされるなど強調表示される。
このようにすることで、タッチパネルモニタ25−1および25−2に表示されている動画像を監視している監視者は、動画像に写っている複数の被写体のうち、どの被写体が危険であるかを即座に認識することができる。
図16に戻り、ステップS84において、学習データ記録制御部164は、停止が指示された時点の前の5秒間および後の5秒間の動画像の撮像データを記録部128に記録させる。すなわち、学習データ記録制御部164は、監視者から停止が指示された場合、停止が指示された時を含む所定の長さの時間の動画像を記録部128に記録させる。このとき、学習データ記録制御部164は、停止が指示されたことを示すデータを、停止が指示された時点を基準に前の5秒間および後の5秒間の動画像の撮像データに関連付けて記録部128に記録させる。ステップS85において、学習スケジューラ165は、追加学習を予約する。すなわち、学習スケジューラ165は、記録部128に記録された動画像の撮像データによる危険度測定部161の学習の実行を予約する。
ステップS82において、監視者から停止が指示されていないと判定された場合、手続きはステップS86に進み、判定部166は、非アクティブ状態のボタン206がタッチされて、監視者から減速が指示されたか否かを判定する。ステップS86において、監視者から減速が指示されたと判定された場合、手続きはステップS87に進み、指令部167は、減速を指示する制御信号を清掃ロボット22に送信する。この場合、通信制御部168の送信制御部175は、通信部129に、減速を指示する制御信号を清掃ロボット22宛に送信させる。
ステップS88において、学習データ記録制御部164は、減速が指示された時点の前の5秒間および後の5秒間の動画像の撮像データを記録部128に記録させる。すなわち、学習データ記録制御部164は、監視者から減速が指示された場合、減速が指示された時を含む所定の長さの時間の動画像を記録部128に記録させる。このとき、学習データ記録制御部164は、減速が指示されたことを示すデータを、減速が指示された時点を基準に前の5秒間および後の5秒間の動画像の撮像データに関連付けて記録部128に記録させる。ステップS89において、学習スケジューラ165は、追加学習を予約する。すなわち、学習スケジューラ165は、記録部128に記録された動画像の撮像データによる危険度測定部161の学習の実行を予約する。
ステップS86において、監視者から減速が指示されていないと判定された場合、手続きはステップS90に進み、アクティブ状態のボタン205またはアクティブ状態のボタン206がタッチされて、監視者から加速が指示されたか否かを判定する。ステップS90において、監視者から加速が指示されたと判定された場合、手続きはステップS91に進み、指令部167は、加速を指示する制御信号を清掃ロボット22に送信する。この場合、通信制御部168の送信制御部175は、通信部129に、加速を指示する制御信号を清掃ロボット22宛に送信させる。
例えば、図13に示されるように、AIサーバ21が、タッチパネルモニタ25に、ボタン205およびランプ表示213をアクティブに表示させ、ランプ表示211およびランプ表示212を非アクティブに表示させることで、清掃ロボット22が停止していることを表示し、「AUTO:STOP」および「Please TOUCH the monitor to release the robot if AI Server is mistaking」などのメッセージ231を表示させている場合、監視者が、タッチパネルモニタ25に表示されている動画像を見て、ポスターに示されている人の画像を人であると危険度測定部161が誤認したと判断したとき、監視者は、アクティブに表示されているボタン205をタッチすることで、清掃ロボット22の加速を指示する。
ステップS85、ステップS89またはステップS91の後、手続きはステップS81に戻り、監視者からの指示に応じた処理が繰り返される。
図19は、終了の処理を説明するフローチャートである。ステップS181において、指示部86の判定部93は、清掃動作制御部61から清掃作業の状態を示すステータス情報を取得して、清掃ロボット22の清掃の作業が終了したか否かを判定する。ステップS181において、清掃の作業が終了していないと判定された場合、判定の処理が繰り返される。
ステップS181において、清掃の作業が終了したと判定された場合、手続きはステップS182に進み、指示部86は、AIサーバ21に作業の終了を通知する。すなわち、通信制御部83の送信制御部91は、指示部86からの指示により、通信部74に、AIサーバ21宛に作業の終了の通知を送信させる。
ステップS281において、通信制御部168の受信制御部176は、通信部129に、清掃ロボット22からの作業の終了の通知を受信させる。ステップS282において、通信制御部168の受信制御部176は、通信部129に、ストリーミングデータである撮像データの受信を停止させる。
ステップS183において、通信制御部83の送信制御部91は、ストリーミングデータである撮像データの送信を停止する。ステップS184において、撮像制御部81は、カメラ43に撮像を停止させる。この場合、符号化部82は、動画像のデータの符号化を停止する。
ステップS185において、指示部86は、AIサーバ21に電源オフを通知する。すなわち、通信制御部83の送信制御部91は、指示部86からの指示により、通信部74に、AIサーバ21宛に電源オフの通知を送信させる。
ステップS283において、通信制御部168の受信制御部176は、通信部129に、清掃ロボット22からの電源オフの通知を受信させる。ステップS284において、判定部166は、清掃ロボット22からの電源オフの通知を受信したか否かにより、清掃ロボット22の電源がオフしたか否かを判定する。ステップS284において、清掃ロボット22の電源がオフしていないと判定された場合、手続きはステップS283に戻り、上述した処理が繰り返される。
ステップS284において、清掃ロボット22の電源がオフしたと判定された場合、手続きはステップS285に進み、危険度測定部161は、終了を通知してきた清掃ロボット22に対する監視の処理を終了する。
ステップS186において、監視者またはオペレータの操作により、制御モジュール42が停止させられる。ステップS187において、監視者またはオペレータの操作により、清掃ロボット22の電源がオフされ、終了の処理は終了する。
次に、ステップS85またはステップS89で予約された追加学習のスケジューリングの処理を図20のフローチャートを参照して説明する。ステップS301において、学習スケジューラ165は、ディスプレイである出力部127またはタッチパネルモニタ25に、追加学習を実行するか否かを選択するためのボタンやメニューおよび日付や時刻などを配置した表や画像などにより追加学習の予定を表示させる。ステップS302において、学習スケジューラ165は、監視者によるタッチパネルモニタ25への操作またはオペレータによるキーボード若しくはマウスである入力部126への操作から、追加学習を実行するか否かの指示を取得する。例えば、学習スケジューラ165は、ディスプレイである出力部127またはタッチパネルモニタ25に表示されている表や画像に配置されている、監視者またはオペレータにボタンやメニューを選択させることにより、追加学習を実行するか否かの指示を取得する。
ステップS303において、学習スケジューラ165は、監視者またはオペレータから指示された追加学習を実行するか否かを示すデータを追加学習スケジュールデータとして記録部128に記録する。
ステップS304において、学習スケジューラ165は、監視者によるタッチパネルモニタ25への操作またはオペレータによるキーボード若しくはマウスである入力部126への操作から、追加学習を実行する日付および時刻の指示を取得する。例えば、学習スケジューラ165は、ディスプレイである出力部127またはタッチパネルモニタ25に、ディスプレイである出力部127またはタッチパネルモニタ25に表示されている表や画像に配置されている、監視者またはオペレータに日付および時刻を選択させることにより、追加学習を実行する日付および時刻の指示を取得する。
ステップS305において、学習スケジューラ165は、監視者またはオペレータから指示された追加学習を実行する日付および時刻を示すデータを追加学習スケジュールデータに追加して、記録部128に記録して、追加学習のスケジューリングの処理は終了する。
次に、図30のフローチャートを参照して、一定の期間ごとに実行される追加学習の処理を説明する。ステップS321において、学習スケジューラ165は、記録部128に記録されている追加学習スケジュールデータから、追加学習を実行するか否かの指示並びに追加学習を実行する日付および時刻を読み出す。ステップS322において、学習スケジューラ165は、追加学習スケジュールデータから読み出された追加学習を実行するか否かの指示から、追加学習の実行が指示されているか否かを判定する。ステップS322において、追加学習の実行が指示されていると判定された場合、手続きはステップS323に進み、学習スケジューラ165は、AIサーバ21に設けられている図示せぬ計時部から、追加学習の処理が実行されている時点の今日の日付および現在時刻を取得する。
ステップS324において、学習スケジューラ165は、追加学習スケジュールデータから読み出された追加学習を実行する日付および時刻と、追加学習の処理が実行されている時点の今日の日付および現在時刻とを比較することにより、追加学習を実行する日付および時刻になったか否かを判定する。ステップS324において、追加学習を実行する日付および時刻になったと判定された場合、手続きはステップS325に進み、学習スケジューラ165は、危険度測定部161に指示することにより、物体検知AI部171および危険度測定AI部173を学習モードにさせる。例えば、学習モードにおいて、学習スケジューラ165は、物体検知AI部171および危険度測定AI部173に、バッチサイズやエポック(学習回数)を設定する。また、例えば、学習モードにおいて、学習スケジューラ165は、物体検知AI部171および危険度測定AI部173の学習に用いる最適化関数および損失関数を選択する。
ステップS326において、物体検知AI部171および危険度測定AI部173は、学習スケジューラ165からの指示により、ステップS84またはステップS88の手続きで記録部128に記録されている監視者により停止または減速が指示されたときの動画像および動画像に関連付けられている停止または減速が指示されたことを示すデータにより、学習して、追加学習の処理は終了する。
例えば、物体検知AI部171および危険度測定AI部173は、バッチ手法により、学習する。また、例えば、物体検知AI部171および危険度測定AI部173は、記録部128に記録されている監視者により停止または減速が指示されたときの動画像および動画像に関連付けられている停止または減速が指示されたことを示すデータを用いて、誤差逆伝搬法などの勾配計算法により、教師あり学習を行う。
ステップS322において、追加学習の実行が指示されていないと判定された場合、またはステップS324において、追加学習を実行する日付および時刻になっていないと判定された場合、学習をさせる必要はないので、学習をすることなく、追加学習の処理は終了する。
このように、より確実に衝突を回避して、より簡単に、学習ができる。また、接触の危険の程度を求める処理の経過を知ることができるようにして、より効果的な修正または学習をすることができる。
以上のように、AIサーバ21は、建物内の床上を自律的に走行し、走行する先の動画像を撮像する清掃ロボット22から送信されてくる動画像から、機械学習によって、動画像に写っている被写体との接触の危険の程度を測定する危険度測定部161と、動画像のタッチパネルモニタ25への表示を制御する表示制御部170と、表示している動画像を監視している監視者からの操作による、停止の指示を取得する入力制御部169と、測定された危険の程度が所定の閾値以上である場合または監視者から停止が指示された場合、清掃ロボット22に停止を指令する指令部167と、監視者から停止が指示された場合、停止が指示された時を含む所定の長さの時間の動画像を記録部128に記録させる学習データ記録制御部164と、記録部128に記録された動画像による危険度測定部161の学習の実行を予約する学習スケジューラ165とを含む。
入力制御部169が、監視者からの操作による、減速の指示を取得し、指令部167が、減速が指示された場合、清掃ロボット22に減速を指令し、学習データ記録制御部164が、監視者から減速が指示された場合、減速が指示された時を含む所定の長さの時間の動画像を記録手段に記録させるようにすることができる。このようにすることで、より簡単に、学習ができるようになる。
学習スケジューラ165が、危険度測定部161の学習のジョブをスケジューリングすることで予約するようにすることができる。このようにすることで、より簡単に、学習ができるようになる。
学習スケジューラ165が、監視者またはオペレータからの操作による指示に応じて、危険度測定部161の学習のジョブのスケジューリングにおける、学習の実行の可否および学習が実行される時刻を決定するようにすることができる。このようにすることで、より簡単に、学習ができるようになる。
動画像に、清掃ロボット22と被写体との接触の危険の程度を示す文字または画像を書き込む描画部174をさらに設け、表示制御部170が、清掃ロボット22と被写体との接触の危険の程度を示す文字または画像が書き込まれた動画像のタッチパネルモニタ25への表示を制御するようにすることができる。このようにすることで、より確実に衝突を回避できるようになる。
危険度測定部161が、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度を測定し、描画部174が、動画像に、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度を示す文字または画像を書き込み、表示制御部170が、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度を示す文字または画像が書き込まれた動画像のタッチパネルモニタ25への表示を制御するようにすることができる。このようにすることで、より確実に衝突を回避できるようになる。
危険度測定部161が、被写体が人であるかまたは人以外の物であるかを検知し、指令部167が、被写体が人であると検知された場合、清掃ロボット22に所定の音声の出力を指令するようにすることができる。このようにすることで、より確実に衝突を回避できるようになる。
このように、建物内の床上を自律的に走行し、走行する先の動画像を撮像する清掃ロボット22から送信されてくる動画像から、機械学習によって、動画像に写っている被写体との接触の危険の程度を測定し、動画像をタッチパネルモニタ25に表示し、表示している動画像を監視している監視者からの操作による、停止の指示を取得し、測定された危険の程度が所定の閾値以上である場合または監視者から停止が指示された場合、清掃ロボット22に停止を指令するようにしたので、仮に、動画像に写っている被写体との接触の危険の程度の測定が誤ったとしても、表示している動画像を監視している監視者が停止を指示するので、より確実に衝突を回避することができる。また、監視者から停止が指示された場合、停止が指示された時を含む所定の長さの時間の動画像が記録部128に記録され、記録部128に記録された動画像による危険度測定部161の学習の実行が予約されるので、仮に、動画像に写っている被写体との接触の危険の程度の測定が誤った場合でも、その状況に合わせた学習データをいちいち用意する必要がなく、簡単に学習させることができるので、学習の後には、より確実に衝突を回避することができる。このように、より確実に衝突を回避して、より簡単に、学習ができる。
このように、より確実に衝突を回避して、より簡単に、学習ができる。
また、AIサーバ21は、清掃ロボット22により撮像された動画像から、機械学習によって、動画像に写っている被写体について、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知する物体検知AI部171と、動画像および動画像における被写体の位置から、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度を求める画像処理部172と、動画像、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、清掃ロボット22から被写体までの距離および清掃ロボット22に対する被写体の速度から、機械学習によって、動画像のシーンの危険の程度を測定する危険度測定AI部173と、動画像に、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、移動体から被写体までの距離、移動体に対する被写体の速度および動画像のシーンの危険の程度を示す文字または画像を書き込む描画部174とを含む。
物体検知AI部171が、ニューラルネットワークを用いた機械学習によって、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知し、危険度測定AI部173が、ニューラルネットワークを用いた機械学習によって、清掃ロボット22と被写体との接触の危険の程度を測定するようにすることができる。
画像処理部172が、被写体が人であると検知された場合、清掃ロボット22に対する被写体の向きまたは清掃ロボット22に対する被写体の顔の向きを求めるようにすることができる。
清掃ロボット22と被写体との接触の危険の程度が所定の閾値以上である場合、清掃ロボット22に停止または減速を指令する指令部167をさらに設けることができる。
清掃ロボット22からストリーミングで送信されてくる動画像を受信する通信部129をさらに設け、物体検知AI部171、画像処理部172および危険度測定AI部173は、それぞれ、受信された動画像で検知するか、画像処理するか、または測定するようにすることができる。
清掃ロボット22への停止または減速の指示が外部から入力された場合、停止または減速が指示された時を含む所定の長さの時間の動画像を記録する記録部128をさらに設けることかできる。
このように、物体検知AI部171が、移動体により撮像された動画像から、機械学習によって、動画像に写っている被写体について、被写体が人であるかまたは人以外の物であるかを検知し、動画像における被写体の位置を検知し、画像処理部172が、動画像および動画像における被写体の位置から、移動体から被写体までの距離および移動体に対する被写体の速度を求め、危険度測定AI部173が、動画像、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、移動体から被写体までの距離および移動体に対する被写体の速度から、機械学習によって、動画像のシーンの危険の程度を測定し、描画部174が、動画像に、被写体が人であるかまたは人以外の物であるかの検知の結果、動画像における被写体の位置、移動体から被写体までの距離、移動体に対する被写体の速度および動画像のシーンの危険の程度を示す文字または画像を書き込むようにしたので、文字または画像が書き込まれた動画像を表示させれば、使用者が動画像を見ることで、被写体が人であるかまたは人以外の物であるかの検知の状態、動画像における被写体の位置の検知の状態、移動体から被写体までの距離および移動体に対する被写体の速度並びに動画像のシーンとして現在の状況全体の危険の程度を知ることができるので、使用者が、動画像のシーンの危険の程度を求める処理で、どうしてそのような判定になったかの手がかりを知ることができる。これにより、例えば、移動体に停止または減速を指令するなど、より効果的な操作をすることができる。このように、使用者が、動画像のシーンの危険の程度を求める処理で、どうしてそのような判定になったかの手がかりを知ることができるので、より効果的な操作をすることができる。
また、追加学習のスケジューリングをする場合、監視者またはオペレータが学習に用いる動画像を必要な領域にトリミングして、物体検知AI部171および危険度測定AI部173に学習させるようにしてもよい。
なお、AIサーバ21が清掃ロボット22の走行を制御すると説明したが、これに限らず、書類や薬品、食品または機器などを搬送する搬送ロボットを制御することもできる。さらに、AIサーバ21は、屋内や屋外を移動する自動車若しくは電車などの車両またはマルチコプターなどの無人航空機などの移動体を制御することもできる。
また、AIサーバ21が制御モジュール42に停止または減速を指令する制御信号を送信して、制御モジュール42が走行動作制御部51に指令することで、清掃ロボット22が停止または減速すると説明したが、これに限らず、清掃ロボット22のハードウェアの停止ボタンまたは減速ボタンを機械的な機構により押圧する押圧機構であって、ネットワーク上の信号により動作する押圧機構を設けて、AIサーバ21が信号を送信することにより、清掃ロボット22のハードウェアの停止ボタンまたは減速ボタンが押圧されるようにして、清掃ロボット22の走行を制御するようにしてもよい。
なお、AIサーバ21が清掃ロボット22に走行の停止または減速を指令すると説明したが、これに限らず、清掃ロボット22の清掃の動作を停止させたり、清掃の特定の機能、例えばブラシ65を停止させたりするようにしてもよい。
また、ステップS224において、判定部166は、ステップS53において測定された危険度が40%以上60%未満であるか否かを判定し、ステップS226において、判定部166は、ステップS53において測定された危険度が60%以上であるか否かを判定すると説明したがこれに限らず、ステップS224において、判定部166は、ステップS53において測定された危険度が50%以上80%未満であるか否かを判定し、ステップS226において、判定部166は、ステップS53において測定された危険度が80%以上であるか否かを判定するなど、判定の閾値を所望の値とすることができる。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。