(57)【要約】  本明細書で説明される特定の例は、単眼の多方向カメラデバイスを使用して、部屋などの囲まれた空間の寸法を推定することに関するものである。例では、移動面における点のまわりのカメラデバイスの移動は、ロボットデバイスなどによって遂行される。単眼の多方向カメラデバイスを使用して、移動中に、複数の異なる角度位置における一連の画像が得られる(610)。一連の画像から姿勢データが決定される(620)。姿勢データは、一連の画像内で検知された1組の特徴を使用して決定される。次いで、一連の画像と姿勢データのボリューム関数を評価することによって奥行き値が推定される(630)。カメラデバイスの基準姿勢のまわりに3次元ボリュームが定義され(640)、3次元ボリュームは移動面内に2次元の多角形断面を有する。次いで、3次元ボリュームが奥行き値に当てはめられて(650)、多角形断面の寸法を決定する。次いで、これらの寸法が、囲まれた空間の形状の推定を提供する。
2019523496.tif 000002
【特許請求の範囲】
【請求項１】
囲まれた空間の寸法を推定するための画像処理方法であって、
前記囲まれた空間内に配置された単眼の多方向カメラデバイスから画像データを得るステップであって、前記単眼の多方向カメラデバイスが、複数の角度位置から画像データを取り込むように構成されており、前記画像データが、前記カメラデバイスの移動面内に相違を有する一連の画像を含む、ステップと、
前記画像データに対応する姿勢データを決定するステップであって、前記姿勢データが、前記単眼の多方向カメラデバイスの配置および向きを示すものであり、前記姿勢データが、前記画像データ内の検知された1組の特徴を使用して決定される、ステップと、
前記画像データと前記姿勢データのボリューム関数を評価することにより、前記単眼の多方向カメラデバイスの基準位置から前記囲まれた空間における表面までの距離をそれぞれ表す奥行き値を推定するステップと、
前記単眼の多方向カメラデバイスの前記基準位置のまわりに3次元ボリュームを定義するステップであって、前記3次元ボリュームが、前記カメラデバイスの前記移動面内に2次元の多角形断面を有する、ステップと、
前記奥行き値に前記3次元ボリュームを当てはめて、前記多角形断面の寸法を決定するステップであって、前記決定された寸法が、前記囲まれた空間の寸法の推定を提供する、ステップとを含む方法。
【請求項２】
前記奥行き値に前記3次元ボリュームを当てはめることが、
前記画像データと前記姿勢データの前記ボリューム関数の評価からの奥行き値の第1の組と、
前記基準位置から前記3次元ボリュームの壁までの推定された奥行き値の第2の組と
の間の誤差の関数を、前記多角形断面の前記寸法に関して最適化することを含む、請求項1に記載の方法。
【請求項３】
レイトレーシングを使用して前記奥行き値の第2の組を決定することを含む、請求項2に記載の方法。
【請求項４】
前記誤差の関数が、前記奥行き値の第1の組を定義する画素値を有する奥行き画像を、前記奥行き値の第2の組を定義する画素値を有する奥行き画像と比較することによって評価される、請求項2または3に記載の方法。
【請求項５】
前記関数が非対称な関数を含む、請求項2から4のいずれか一項に記載の方法。
【請求項６】
前記奥行き値の第1の組が前記奥行き値の第2の組未満のときと比較して、前記奥行き値の第1の組が前記奥行き値の第2の組よりも大きいとき、前記非対称な関数がより大きい値を返す、請求項5に記載の方法。
【請求項７】
フォワード累積とともに自動微分を適用してヤコビアンを計算するステップであって、前記ヤコビアンが、前記奥行き値の第1の組と前記奥行き値の第2の組との間の誤差の関数を最適化するのに使用される、ステップを含む、請求項2から6のいずれか一項に記載の方法。
【請求項８】
前記多角形断面が長方形を含み、前記寸法が前記基準位置から前記長方形のそれぞれの辺までの距離を含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記3次元ボリュームを当てはめることが、前記基準位置に対する前記長方形の回転角を決定することを含む、請求項8に記載の画像処理方法。
【請求項１０】
前記3次元ボリュームが座標降下法を使用して当てはめられ、前記座標降下法が、前記基準位置に対する前記長方形の回転角より前に、前記基準位置から前記長方形のそれぞれの辺までの前記距離を評価する、請求項9に記載の方法。
【請求項１１】
前記方法が、複数の長方形の寸法を決定するために、前記単眼の多方向カメラデバイスの複数の間隔をおいた運動に関して繰り返され、前記長方形が前記囲まれた空間の広がりを表す、請求項8から10のいずれか一項に記載の方法。
【請求項１２】
前記長方形の重なりを決定するステップと、
前記重なりを使用して、前記囲まれた空間内の部屋境界を決定するステップとを含み、
前記重なりが所定の閾値未満であれば、前記複数の長方形が、前記空間内のそれぞれの複数の部屋に関連するものと決定され、
前記重なりが所定の閾値よりも大きければ、前記複数の長方形が、前記囲まれた空間の複雑な形に関連するものと決定される、請求項11に記載の方法。
【請求項１３】
前記複数の長方形のブール和を計算して、前記囲まれた空間の形状の推定を提供するステップを含む、請求項11に記載の方法。
【請求項１４】
部屋分類器に前記多角形断面の前記寸法を入力するステップと、
前記部屋分類器を使用して部屋クラスを決定するステップとを含む、請求項1から13のいずれか一項に記載の方法。
【請求項１５】
前記部屋クラスに基づいてロボットデバイスの活動パターンを決定するステップを含む、請求項14に記載の方法。
【請求項１６】
囲まれた空間の寸法を推定するためのシステムであって、
前記囲まれた空間内の複数の角度位置から一連の画像を取り込むための単眼の多方向カメラデバイスと、
前記一連の画像から姿勢データを決定するための姿勢推定器であって、前記姿勢データは、命令された移動中の複数の位置における前記単眼の多方向カメラデバイスの配置および向きを示しており、前記姿勢データは、前記一連の画像内で検知された1組の特徴を使用して決定される、姿勢推定器と、
前記一連の画像と前記姿勢データのボリューム関数を評価することにより、前記多方向カメラデバイスの基準位置から前記囲まれた空間における表面までの距離をそれぞれ表す奥行き値を推定するための奥行き推定器と、
3次元ボリュームの2次元の多角形断面の寸法を最適化することにより、前記奥行き推定器からの前記奥行き値に前記3次元ボリュームを当てはめて、前記2次元の多角形断面の前記最適化された寸法に基づく、前記囲まれた空間の前記寸法の推定を出力するための寸法推定器とを備えるシステム。
【請求項１７】
前記単眼の多方向カメラデバイス、前記奥行き推定器、前記姿勢推定器および前記寸法推定器のうち少なくとも1つがロボットデバイス内に組み込まれている、請求項16に記載のシステム。
【請求項１８】
前記寸法推定器からの建物内の複数の囲まれた空間に関する推定を含む部屋データベースを備える、請求項17に記載のシステム。
【請求項１９】
前記部屋データベースからのデータが、モバイルコンピュータデバイスからネットワークを通じてアクセス可能である、請求項18に記載のシステム。
【請求項２０】
プロセッサによって実行されたとき、コンピュータデバイスに空間をマッピングさせるコンピュータ実行可能命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、前記コンピュータデバイスに、
複数の角度位置からのフレームの各々に関する画像データを取り込むように構成された単眼の多方向カメラから、前記空間に関する移動面内の別々の角度位置において取り込まれた一連のフレームを受け取ることと、
前記一連のフレームにわたって、検知された特徴を照合することにより、各フレームについて、前記カメラの配置および向きの推定を決定することと、
前記一連のフレームにわたって、前記カメラの配置および向きの推定ならびに前記検知された特徴をバンドル調整して、前記カメラの配置および向きの推定の最適化された組を生成することと、
前記一連のフレームから、関連する基準の配置および向きを有する参照フレームを決定することと、
前記参照フレームの画素値と、前記参照フレームと重なる1組の比較画像からの投影画素値との間の測光誤差関数を評価することであって、前記投影画素値は、前記カメラからの表面の距離と、前記カメラの配置および向きの推定の前記最適化された組との関数である、前記評価することと、
前記評価された測光誤差関数に基づき、前記参照フレームの別々の画素列に対応する別々の角度位置に関して表面の距離の第1の組を決定することと、
表面の距離の前記第1の組と、3次元ボリュームに基づいて決定された表面の距離の第2の組との間の誤差を最適化することにより、前記基準の配置を囲む前記3次元ボリュームの平坦な長方形断面のパラメータを決定することと、
前記平坦な長方形断面の前記決定されたパラメータを使用して、前記空間に関するフロアプランを決定することと、を行わせる、非一時的コンピュータ可読記憶媒体。
【請求項２１】
複数の平坦な長方形断面のパラメータを決定するために前記命令が繰り返され、フロアプランを決定するための前記命令が、前記複数の平坦な長方形断面の結合に基づいてフロアプランを決定するための命令を含む、請求項20に記載の媒体。
【請求項２２】
複数の平坦な長方形断面のパラメータを決定するために前記命令が繰り返され、
前記命令が、
前記複数の平坦な長方形断面の空間の重なりを決定するための命令と、
前記空間の重なりに基づいて前記空間の部屋境界を決定するための命令とを含む、請求項20に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多方向カメラを使用して空間をマッピングすることに関するものである。本発明は、単眼の多方向カメラを使用して空間の内部から取り込まれた画像データに基づいて、囲まれた空間に関する1組の寸法を推定することに対する、特定の、排他的ではない関連を有する。
【背景技術】
【０００２】
床掃除ロボットなど低コストのロボットデバイスは、一般に、室内などの3次元空間をマッピングする、および特定の事例では、3次元空間を進むのに、限られた認識および簡単なアルゴリズムに頼る。たとえば、1つの事例では、ロボットデバイスは、現場のラインの範囲内の、次に避けられ得る物体を検知する赤外線センサまたは超音波センサを備えてよい。同時位置決めおよびマッピング(SLAM)などの技術の周辺で大きな進歩があったものの、解決策の多くは、研究所にとって利用可能な、実質的な計算資源に頼るものである。このため、これらの解決策を、実環境の商用ロボットデバイスを制御する組込み型コンピュータデバイスに移すのは困難である。加えて、特定の解決策は、レーザ検知および測距(LADAR)センサ、構造化光センサ、または飛行時間型奥行きカメラ(time-of-flight depth cameras)などの特化されたセンサデバイス一式を必要とする。これらの特化されたセンサデバイスは費用および複雑さが増し、現実世界のロボットの用途にはあまり適していない。
【０００３】
米国特許出願公開第2010/0040279A1号は、自動走行装置を制御するための3次元グリッドマップを構築する方法および装置を説明している。無人車または移動ロボットの現在の配置および周辺環境を識別するために3次元マップを構築する際、3次元グリッドマップを正確かつより迅速に構築するために、2次元位置決めおよび3次元画像復元が使用される。しかしながら、この解決策は、少なくとも2つの個々の全方向カメラデバイスおよび対応するステレオ画像処理を備えるステレオ全方向カメラを使用する必要がある。これは、多くの家庭用または低コストのロボットデバイスにとって実用的でなく、またはコスト効率が悪いものであり得る。
【０００４】
米国特許出願公開第2014/0037136A1号は、道路における障害物を検知するために車載カメラの姿勢を決定するための方法およびシステムを説明している。環境に対する可動カメラの姿勢は、1組の初期画像から点対応を決定し、次いで、点対応に対して2点運動推定を適用して、カメラの1組の初期姿勢を決定することによって得られる。初期の姿勢の組および点対応から、点クラウドが生成される。次いで、それぞれの次の画像について、点クラウドを更新しながら、点対応および対応する姿勢が決定される。点クラウドは、自動車両の環境において障害を検知するために使用され得る。しかしながら、この出願公開で説明されている技術は、エンジン駆動の電源を利用することができる、より大規模で、より高度な仕様のコンピュータ資源を採用することができる、自動車および他の自動車両など、より大型のデバイスに対して、より適切である。これは、多くの家庭用または低コストのロボットデバイスにとって実用的でなく、またはコスト効率が悪いものであり得る。
【０００５】
米国特許出願公開第2013/0216098A1号は、たとえば多くの人が居る環境といった混雑した3次元空間のマップを構築するための技術を説明している。この出願公開は、ロボットの移動中に取り込まれた画像を得る連続画像取得ユニットと、画像から各特徴点における量を抽出する局所的特徴量抽出ユニットと、抽出ユニットにより抽出される入力画像間の量の照合を遂行する特徴量照合ユニットとを含み、照合ユニットによる、所定数の画像の間の一致した量の平均を、不変特徴量として計算する不変特徴量計算ユニットと、画像が得られたときのロボットの位置に基づいて、それぞれの不変特徴量に対応する距離情報を計算する距離情報収集ユニットと、ハイブリッドマップとして局所的測量マップを生成するマップ生成ユニットとによって抽出される。この技術は、混雑した空間において使用されたとき利点があるものの、コンピュータ資源が限られている組込み型コンピュータデバイスに採用するには、あまり適切ではない。
【０００６】
欧州特許出願公開第2854104A1号は、準稠密な(semi-dense)同時の位置決めおよびマッピングのための方法を説明している。この方法では、画像収集手段の姿勢および奥行き情報が推定される。画像収集手段の位置および/または向きを追跡するステップと、奥行き情報を決定することによってマッピングするステップとが、交互に配置されている。奥行き情報は、たとえば輝度変化が十分に大きい画素といった画像画素のサブセットのみについて決定される。
【０００７】
前述の技術は、特定の状況に関する特定の利点を有するが、大抵の場合は複雑であって、強力な計算を必要とする。このため、これらの技術を、たとえば小さくて低コストの家庭用ロボットデバイスの組込み型コントローラに対して実装するのは困難である。そのため、入手可能なロボットデバイスの限られた認識および簡単なアルゴリズムを乗り越える一方で、このデバイスに適用するために依然として十分実用的かつ一般的である制御手法が切望されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願公開第2010/0040279A1号
【特許文献２】米国特許出願公開第2014/0037136A1号
【特許文献３】米国特許出願公開第2013/0216098A1号
【特許文献４】欧州特許出願公開第2854104A1号
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、囲まれた空間の寸法を推定するための画像処理方法が提供され、この方法は、囲まれた空間の内部に配置された単眼の多方向カメラデバイスから画像データを得るステップであって、単眼の多方向カメラデバイスが、複数の角度位置から画像データを取り込むように構成されており、画像データが、カメラデバイスの移動面の範囲内に相違を有する一連の画像を含む、ステップと、画像データに対応する姿勢データを決定するステップであって、姿勢データが、単眼の多方向カメラデバイスの配置および向きを示すものであり、姿勢データが、画像データの中の検知された1組の特徴を使用して決定される、ステップと、画像データと姿勢データのボリューム関数を評価することにより、単眼の多方向カメラデバイスの基準位置から囲まれた空間における表面までの距離をそれぞれ表す奥行き値を推定するステップと、単眼の多方向カメラデバイスの基準位置のまわりに3次元ボリュームを定義するステップであって、3次元ボリュームが、カメラデバイスの移動面の内部に2次元の多角形断面を有する、ステップと、多角形断面の寸法を決定するように奥行き値に3次元ボリュームを当てはめるステップであって、決定された寸法が、囲まれた空間の寸法の推定を提供する、ステップとを含む。
【００１０】
1つの事例では、奥行き値に3次元ボリュームを当てはめるステップは、画像データと姿勢データのボリューム関数の評価からの奥行き値の第1の組と、基準位置から3次元ボリュームの壁までの推定された奥行き値の第2の組との間の誤差の関数を、多角形断面の寸法に関して最適化するステップを含む。奥行き値の第2の組を決定するためにレイトレーシングが使用され得る。誤差の関数は、奥行き値の第1の組を定義する画素値を有する奥行き画像を、奥行き値の第2の組を定義する画素値を有する奥行き画像と比較することによって評価されてよい。関数は非対称な関数を含み得る。奥行き値の第1の組が奥行き値の第2の組未満のときと比較して、奥行き値の第1の組が奥行き値の第2の組よりも大きいとき、非対称な関数はより大きい値を返す。
【００１１】
1つの事例では、この方法は、フォワード累積とともに自動微分を適用してヤコビアンを計算するステップを含み、前記ヤコビアンは、奥行き値の第1の組と奥行き値の第2の組との間の誤差の関数を最適化するのに使用される。
【００１２】
特定の例では、多角形断面は長方形を含み、前記寸法は基準位置から長方形のそれぞれの辺までの距離を含む。この場合、3次元ボリュームを当てはめるステップは、基準位置に対する長方形の回転角を決定するステップを含み得る。また、3次元ボリュームは座標降下法を使用して当てはめられてよく、座標降下法は、基準位置に対する長方形の回転角を決定する前に、基準位置から長方形のそれぞれの辺までの距離を評価するものである。
【００１３】
特定の事例では、この方法は、複数の長方形の寸法を決定するために、単眼の多方向カメラデバイスの複数の間隔をおいた運動に関して繰り返され、長方形は囲まれた空間の広がりを表す。これらの事例では、この方法は、長方形の重なりを決定するステップと、この重なりを使用して、囲まれた空間の内部の部屋境界を決定するステップとを含み得、重なりが所定の閾値未満であれば、複数の長方形が、空間の内部のそれぞれの複数の部屋に関連するものと決定され、重なりが所定の閾値よりも大きければ、複数の長方形が、囲まれた空間の複雑な形に関連するものと決定される。後者の動作は、複数の長方形のブール和を計算して、囲まれた空間の形状を推定するステップを含み得る。
【００１４】
一例では、この方法は、部屋分類器に多角形断面の寸法を入力するステップと、部屋分類器を使用して部屋クラスを決定するステップとを含み得る。ロボットデバイスの活動パターンは、部屋クラスに基づいて決定されてよい。
【００１５】
本発明の第2の態様によれば、囲まれた空間の寸法を推定するためのシステムが提供され、このシステムは、囲まれた空間の内部の複数の角度位置から一連の画像を取り込むための単眼の多方向カメラデバイスと、一連の画像から姿勢データを決定するための姿勢推定器であって、姿勢データが、命令された移動中に、複数の位置において単眼の多方向カメラデバイスの配置および向きを示し、姿勢データが、一連の画像の中で検知された1組の特徴を使用して決定される、姿勢推定器と、一連の画像と姿勢データのボリューム関数を評価することにより、多方向カメラデバイスの基準位置から囲まれた空間における表面までの距離をそれぞれ表す奥行き値を推定するための奥行き推定器と、3次元ボリュームの2次元の多角形断面の寸法を最適化することにより、奥行き推定器からの奥行き値に3次元ボリュームを当てはめて、2次元の多角形断面の最適化された寸法に基づく、囲まれた空間の寸法の推定を出力するための寸法推定器とを備える。
【００１６】
1つの事例では、単眼の多方向カメラデバイス、奥行き推定器、姿勢推定器および寸法推定器のうち少なくとも1つがロボットデバイスに組み込まれている。
【００１７】
1つの事例では、システムは、寸法推定器からの建物内部の複数の囲まれた空間に関する推定を含む部屋データベースも備える。部屋データベースは、モバイルコンピュータデバイスからネットワークを通じてアクセス可能であり得る。
【００１８】
第2の態様のシステムは、本発明の第1の態様のあらゆる機能を実施するように構成され得る。
【００１９】
本発明の第3の態様によって提供される非一時的コンピュータ可読記憶媒体が含むコンピュータ実行可能命令がプロセッサによって実行されたとき、コンピュータデバイスよって空間がマッピングされ、この命令は、コンピュータデバイスに、複数の角度位置からのフレームの各々に関する画像データを取り込むように構成された単眼の多方向カメラから、空間に関する移動面の範囲内の別々の角度位置において取り込まれた一連のフレームを受け取ることと、一連のフレームにわたって、検知された特徴を照合することにより、各フレームについて、カメラの配置および向きの推定を決定することと、一連のフレームにわたって、カメラの配置および向きの推定ならびに検知された特徴をバンドル調整して、カメラの配置および向きの推定の最適化された組を生成することと、一連のフレームから、関連する基準の配置および向きを有する参照フレームを決定することと、参照フレームの画素値と、参照フレームと重なる1組の比較画像から投影画素値との間の測光誤差関数を評価することであって、投影画素値は、カメラからの表面の距離と、カメラの配置および向きの推定の最適化された組との関数である、前記評価することと、評価された測光誤差関数に基づき、参照フレームの別々の画素列に対応する別々の角度位置に関して表面の距離の第1の組を決定することと、表面の距離の第1の組と、3次元ボリュームに基づいて決定された表面の距離の第2の組との間の誤差を最適化することにより、基準の配置を囲む3次元ボリュームの平坦な長方形断面のパラメータを決定することと、平坦な長方形断面の決定されたパラメータを使用して、空間に関するフロアプランを決定することと、を行わせる。
【００２０】
一例では、複数の平坦な長方形断面のパラメータを決定するためにこれらの命令が繰り返される。1つの事例では、フロアプランを決定するための命令は、複数の平坦な長方形断面の結合に基づいてフロアプランを決定するための命令を含む。別の事例では、命令は、複数の平坦な長方形断面の空間の重なりを決定するための命令と、空間の重なりに基づいて空間の部屋境界を決定するための命令とを含む。
【００２１】
他の例では、非一時的コンピュータ可読記憶媒体が含み得るコンピュータ実行可能命令がプロセッサによって実行されたとき、ロボットデバイスの組込み型コンピュータまたは分散システムの遠隔プロセッサなどのコンピュータデバイスが、上記で論じられた方法のうちの任意のものを遂行する。
【００２２】
本発明のさらなる特徴および利点が、添付図面の参照を伴って例としてのみ示される、以下の本発明の好ましい実施形態の説明から明白になるであろう。
【図面の簡単な説明】
【００２３】
【図１Ａ】ロボットデバイスの一例を示す概略図である。
【図１Ｂ】ロボットデバイスの一例を示す概略図である。
【図２Ａ】一例による、ロボットデバイスの運動を示す概略図である。
【図２Ｂ】一例による、ロボットデバイスの運動を示す概略図である。
【図３Ａ】例示の多角形断面の寸法を示す概略図である。
【図３Ｂ】例示の多角形断面の回転角を示す概略図である。
【図３Ｃ】多角形断面を有する例示の3次元ボリュームを示す概略図である。
【図４Ａ】一例による、囲まれた空間の寸法を推定するのに用いる特定のシステム構成要素を示す概略図である。
【図４Ｂ】一例による、囲まれた空間の寸法を推定するのに用いる特定のシステム構成要素を示す概略図である。
【図５】一例による、囲まれた空間の寸法を推定するためのシステムの特定の構成要素を示す概略図である。
【図６】一例による、囲まれた空間の寸法を推定するため画像処理方法を示す概略図である。
【図７】一例による、カメラデバイスの姿勢データを推定する方法を示す流れ図である。
【図８】一例による、奥行き値を推定する方法を示す流れ図である。
【図９Ａ】ロボットデバイスからの、異なる画像特性を有する2つの領域を示す例示の画像である。
【図９Ｂ】一例による、図9Aの2つの領域に関する奥行き値を示すグラフである。
【図１０】一例による、非一時的コンピュータ可読媒体を示す概略図である。
【図１１】一例による非対称な誤差関数を示すグラフである。
【図１２】一例による、モバイルコンピュータデバイスが部屋データベースにアクセスする、囲まれた空間の寸法を推定するためのシステムの特定の構成要素を示す概略図である。
【図１３Ａ】囲まれた空間に当てはめられる例示の多角形断面を示す概略図である。
【図１３Ｂ】囲まれた空間に当てはめられる例示の多角形断面を示す概略図である。
【図１３Ｃ】囲まれた空間に当てはめられる例示の多角形断面を示す概略図である。
【発明を実施するための形態】
【００２４】
本明細書で説明される特定の例は、建物内部の部屋などの囲まれた空間の形状を、単眼の多方向カメラデバイスからの画像データに基づいて推定するものである。たとえば空間のナビゲーションの面の内部の2次元の多角形断面を定義する値の形態といった、囲まれた空間の形状のこの推定は、空間を進むためにロボットデバイスによって使用されてよく、かつ/または管理者に対して表示されてよい。
【００２５】
特定の例は、単眼の多方向カメラデバイスを使用して、囲まれた空間の内部の複数の異なる角度位置における一連の画像を得る。近似のxy移動面において移動する床ベースのロボットについては、これらの画像は、すべての水平方向において相違を有する一連の密集した画像を含み得る。これらの画像は、複数の円形または周囲の移動を遂行することによって得られる。これらは囲まれた空間のサイズに対して小さい移動でよい。カメラデバイスは単一の全方向カメラを備え得る。
【００２６】
次いで、本明細書で説明される特定の例は、これらの画像に対する特別な処理演算を提供する。この処理は、たとえばロボットデバイスまたはモバイルコンピュータデバイスのプロセッサの内部の組込み型コンピュータ資源の内部で適用可能である。一例では、姿勢データは、一連の画像から、特徴に基づく手法を使用して決定される。一旦、一連の画像に対してこの姿勢データが計算されると、画像と姿勢データのボリューム関数が評価され、たとえばカメラデバイスから空間の内部の物体までの距離を表す奥行き値が決定される。ボリューム関数は、たとえばボリューム空間に関連して3次元の内部で評価される関数を含む。ボリューム関数は、参照画像のまわりにモデル化される稠密な全方向コストボリュームを評価するステップを含み得る。ボリューム関数を評価するステップは、たとえばコスト値を最小化するパラメータ値を見つけるステップといった、このコストボリュームを最適化するステップを含み得る。姿勢データを決定してボリューム関数を評価する、この2段階の手法は、環境をモデル化するための希薄な手法と稠密な手法の利益を組み合わせる一方で、両方の手法の相対的不利益を制限するように、適切な計算を選択するものである。
【００２７】
本明細書で説明される例では、たとえばルームプランまたは上から見た断面といった、カメラデバイスの移動面の内部の2次元の多角形断面の寸法は、断面から発生された3次元ボリュームを、推定された奥行き値に当てはめることによって決定される。3次元ボリュームは、ボリューム関数の参照画像に対応する基準位置のまわりに決定される。移動面は、床と平行な面(たとえば共通のz軸値を有する面)でよい。寸法は、たとえば基準位置から決定されるような、x方向およびy方向における多角形断面の範囲に対応してよい。寸法は、カメラデバイスの基準位置から断面の辺までの距離と定義されてよく、これらの辺は部屋内部の壁または面に対応し得るものである。したがって、本明細書で説明される例は、住宅および事務所におけるルームプランを自律的に決定するのに使用され得るものである。これらの例は、屋内と屋外の囲まれた空間(たとえば競技場、貯蔵所、円形劇場など)の両方に適用され得る。
【００２８】
本明細書で説明される特定の例は、限られたコンピュータ資源および/またはリアルタイム動作における高速評価を可能にするやり方で、2次元計算と3次元計算を組み合わせる。特定の例が出力するデータは、ロボットデバイスが、たとえば部屋の内部などの囲まれた空間を迅速かつ正確に進むこと、またはたとえば未知の領域をマッピングするために、人の介入なしで空間の態様を測定することを可能にするのに使用可能である。
【００２９】
本明細書で説明される特定の例は、部屋分類および/または境界設定の適用を可能にするものである。たとえば、本明細書で説明される方法またはシステムによって計算された寸法は、複雑な部屋形状を決定するため、または共通空間の内部に複数の部屋があるかどうか決定するために評価されてよい。寸法はまた、囲まれた空間の、たとえばラベルの文字列または選択されたデータの定義といった部屋クラスを決定するように、部屋分類器に対する入力として、たとえばそのまま、または他の収集されたデータとともに使用されてよい。
【００３０】
＜例示のロボットデバイス＞
図1Aは、本明細書で説明されるような囲まれた空間の寸法を推定するのに使用され得る試験ロボットデバイス105の第1の例100示す。この試験ロボットデバイスは、以下の例の理解を容易にするために提供されており、限定するものと見なされるべきではなく、異なる構成の他のロボットデバイスが、以下の段落において説明される動作に、同様に適合し得る。特定の方法およびシステムは、ロボットデバイスによって調査される空間の状況で説明されるが、同一の方法およびシステムが、代わりに、たとえば人または他のロボットデバイスによって移動される組込みの単眼の多方向カメラデバイスを有するようなデバイスである携帯用デバイスまたは他のモバイルデバイスから取得されたデータを使用して適用され得る。
【００３１】
図1Aの試験ロボットデバイス105は、複数の角度位置から画像を取り込むための単眼の多方向カメラデバイス110を備える。使用において、複数の画像が次々に取り込まれ得る。特定の事例では、複数の角度位置が広い視野をカバーする。特別な事例では、カメラデバイス110は、たとえば実質的に360度の視野を取り込むように構成されたデバイスといった、全方向カメラを備え得る。この場合、全方向カメラは、たとえば電荷結合アレイに対して取り付けられ得るレンズといったパノラマ環状レンズを有するデバイスを備え得る。図1Aの例では、カメラデバイス110は、ロボットデバイスの上の構成設定可能なアーム上に取り付けられ、他の事例では、カメラデバイス110は、試験ロボットデバイス105の本体部分の内部に静的に取り付けられてよい。1つの事例では、単眼の多方向カメラデバイスは、一連の画像を取り込むように構成された静止画像デバイスを備えてよく、別の事例では、単眼の多方向カメラデバイスは、ビデオフレームの形式の一連の画像を含むビデオデータを取り込むためのビデオデバイスを備えてよい。特定の事例では、ビデオデバイスは、約25フレーム/秒または30フレーム/秒の、またはそれより大きいフレームレートのビデオデータを取り込むように構成されてよい。
【００３２】
図1Aの試験ロボットデバイス105がさらに備える少なくとも1つの移動アクチュエータ115は、この場合、試験ロボットデバイス105の本体部分に関連して構成された1組の被駆動ホイールを備える。少なくとも1つの移動アクチュエータ115は、1つまたは複数のホイール、トラックおよび/またはローラーに結合された少なくとも1つの電動機を備えてよく、空間の内部でロボットデバイスを移動させるように構成されている。そのような空間の一例が、後に図2Aおよび図2Bを参照しながら説明される。試験ロボットデバイス105は、コントローラ120も備える。これは、図1Aの破線によって示されるような組込み型コンピュータデバイスを備え得る。たとえば、コントローラ120は、少なくとも1つのプロセッサおよびメモリならびに/あるいは1つまたは複数のシステムオンチップコントローラを使用して実施され得る。特定の事例では、コントローラ120は、ファームウェアといった、消去可能なプログラム可能読取り専用メモリ(EPROM)などの読取り専用メモリまたはプログラム可能メモリから取り出されるような機械可読命令によって実施され得る。コントローラ120は、空間の内部の試験ロボットデバイス105の移動を制御する。たとえば、コントローラ120は、少なくとも1つの移動アクチュエータに、試験ロボットデバイス105を前方もしくは後方へ進んで行くように命令してよく、またはデバイスを旋回させるかもしくは回転させるように、試験ロボットデバイス105のホイールを差動で駆動するように命令してよい。図1Aでは、試験ロボットデバイス105は、試験ロボットデバイス105の回転を可能にする回転可能なフリーホイール125も有する。コントローラ120は、動作において、囲まれた空間の寸法を決定するように構成され得る。たとえば、コントローラ120は、寸法を定義するデータが記憶される記憶装置または他の機械可読媒体を備え得る。実験的な構成の1つでは、試験ロボットデバイス105を実施するためにPioneer 3DXの移動ロボットプラットフォームが使用された。
【００３３】
図1Bは、ロボットデバイス155の別の例150を示す。図1Bのロボットデバイス155は、家庭用掃除ロボットを備える。試験ロボットデバイス105と同様に、掃除ロボットデバイス155は単眼の多方向カメラデバイス160を備える。図1Bの例では、掃除ロボットデバイス155の上部にカメラデバイス160が取り付けられている。一実装形態では、掃除ロボットデバイス155の高さは約10〜15cmでよいが、他のサイズも可能である。掃除ロボットデバイス155は、少なくとも1つの移動アクチュエータ165も備え、本事例では、これは、デバイスを前方または後方へ進んで行くためにデバイスの両側に取り付けられた2組のトラックを駆動するように構成されている少なくとも1つの電動機を備える。これらのトラックは、掃除ロボットデバイス155を操縦するためにさらに差動で駆動され得る。他の例では、異なる駆動部品および/またはステアリング部品ならびに技術が提供され得る。図1Aと同様に、掃除ロボットデバイス155はコントローラ170および回転可能なフリーホイール175を備える。
【００３４】
掃除ロボットデバイスは、図1Aに示された試験ロボットデバイス105の部品に加えて掃除要素180を備える。この掃除要素180は、部屋の床を掃除するための要素を備え得る。部屋の床を掃除するための要素は、ローラーもしくはブラシ185および/または湿式要素もしくは乾式要素を備え得る。1つの事例では、掃除要素180は、たとえばほこりおよびダスト粒子を取り込むように構成された真空デバイスを備え得る。この場合、コントローラ170は、囲まれた空間の寸法を直接的または間接的に(たとえば部屋分類パイプラインまたは境界設定パイプラインの一部分として)使用して空間の掃除パターンを決定し、掃除パターンに従って掃除要素180のアクティブ化を命令するように構成されてよい。たとえば、寸法によって定義された空間の領域を掃除するために真空デバイスが起動されてよい。ロボットデバイスは、とりわけ、洗浄液の必要なレベルと、空間を掃除するのに必要なバッテリー残量(この電力が利用可能でないと決定された場合には警報がもたらされてよい)と、特定の部屋に使用する掃除デバイスまたは掃除システム(たとえば、台所で使用され得る湿った要素は、カーペットを敷いた様々な寸法の部屋には適さない)と、その空間向けの掃除パターン(たとえば空間の領域をカバーする、提案された経路)とのうち1つまたは複数を決定するのに空間の寸法を使用してよい。
【００３５】
＜ロボットデバイスに関する例示の運動＞
図2Aおよび図2Bは、2つの例による、空間210の内部のロボットデバイス205の運動200、250を概略的に示す。ロボットデバイス205は、いくつかの例では、図1Aおよび図1Bに示されたようなデバイスを備え得る。図2Aおよび図2Bでは、空間210は室内の形態の3次元空間を備える。他の例では、空間は、たとえば1つまたは複数の面で包囲された部屋または地理的配置の少なくとも一部分といった任意の内部および/または外部の囲まれた物理的空間でよく、一般的な部屋は(床および天井以外の)4つの面によって包囲されている。特定の事例では、空間は2つの側の面によって囲まれ、または包囲されてよく、他の面は、正方形または長方形など一定の多角形断面を想定することによって推定される。本明細書で説明される例は、たとえばロボットデバイスの上に面がない、天井のない外部空間に適用され得る。同様に、ロボットデバイスが(多回転体)ヘリコプタなどの空中デバイスであれば、本明細書で説明される例を適用するのに、たとえばロボットデバイスよりも下にある面といった床も不要でよい。
【００３６】
図2Aおよび図2Bにおける空間210は、空間内に配置されている複数の物理的物体220を備える。囲まれた空間は、必ずしも220などの物理的物体を含むわけではないが、多くの実空間がそのような物体を含むはずである。物体220は、とりわけ、家具、建造物部分、機器、揚げ床部分、内壁部分、人、電子デバイス、動物などのうち1つまたは複数を含み得る。図2Aおよび図2Bにおける空間210は下部面を有する平面として上から示されているが、これは必ずしもすべての実装形態において必要なことではなく、環境はたとえば空中でよく、または地球圏外の空間の内部でもよい。空間の下部面は、水平な床である必要もなく、たとえば斜面および/または多重レベルの一連の面を備えてもよい。
【００３７】
図2Aの例では、ロボットデバイス205は、空間において点230のまわりを移動するように適合される。たとえば、図1Aに示されたコントローラ120または図1Bに示されたコントローラ170は、たとえば移動アクチュエータ115または165といった少なくとも1つの移動アクチュエータを使用して移動240を命令するように構成され得る。ロボットデバイス205は、移動240中に、たとえば図1Aの110または図1Bの160といった装備している単眼の多方向カメラデバイスを使用して複数の異なる角度位置における一連の画像を得るように構成されている。たとえば、移動240は、空間の一部分の内部における実質的に円形の運動を含み得る。移動240は、特定の事例では、たとえば点230のまわりの360度の回転といった完全なループを含んでよく、他の事例では、たとえば点230のまわりの360度未満の回転といったループの一部分を含んでよい。移動240は円形である必要はなく、たとえば等辺を有するものや不等辺を有するものを含む何らかの多角形といった任意の形状の周囲の少なくとも一部分のまわりの周囲の移動でよい。約4メートルまたは5メートルの正方形の比較的小さい部屋(たとえば平均的な家内の部屋)では、移動240は、端から端まで約0.5メートルを含み得、たとえばほぼ0.5メートルの直径の円運動を含み得る。これには10〜20秒を要する可能性がある。特定の試験例では、小さい部屋については、一連の画像は約100フレームまたは200フレームを含み得る。
【００３８】
一般に、図2Aの例では、ロボットデバイス205は、単眼の多方向カメラデバイスが、複数の方向において相違を有する密集した画像(たとえばビデオフレーム)の少なくとも一続きを取り込むことができるように、少なくとも1つの運動を遂行するように制御される。たとえば近似的に水平な床を有する空間、すなわちロボットデバイス205のための移動面を形成する空間では、一連の密集した画像は、複数の水平方向において相違を有し得る。比較すると、移動に対して角のある面を有する空間、または空中もしくは地球圏外の空間では、移動面に対して平行な複数の方向において相違を有し得る。この移動240は、たとえば自分自身が部屋の内部に適応するために部屋のまわりをさっと見る、人間または動物の(潜在意識の)能力に類似した、簡単な解釈の移動と見なされてよい。ロボットデバイス205は、移動240により、空間の形状の全体的な概念を迅速に得ることができる。これは、以下の段落においてより詳細に説明される。これにより、ロボットデバイス205は、次いで、部屋の内部の全体的な空間を迅速にマッピングし、そのため、それを後で「理解する」能力を得て、賢い高レベルの計画および空間の意味論的理解が容易になる。
【００３９】
図2Bは、たとえば外部空間および/または多分割の内部空間といった、より広い空間において使用され得る例示の運動250を示す。たとえば、図2Bの空間255は、10〜20メートルの少なくとも1つの壁を有する部屋を含み得る。特定の例では、空間は、図2Bに示されるように、目に見える障壁によって分離された複数の空間部分を含み得、たとえば、隔壁260は、とりわけ、部分的な壁もしくは完全な壁、デスクユニットまたは家具の品目を備え得る。図2Bにおいて、運動250は、たとえば図2Aを参照しながら説明されたような複数の移動といった複数の移動270、280および290を含む。図2Bでは3つの移動が示されているが、これは限定することを意図するわけではない。この場合、移動は、たとえば点のまわり、または形状の少なくとも一部分の周囲の、1組の円形の移動または周囲の移動から選択された、1組の類似または非類似の移動を含み得る。大きな部屋については、移動は、小さい部屋に関して説明されたものよりも大きくてよく、たとえば円運動の直径は約1メートルでよい。複数の移動が、隔壁260などの目に見える閉鎖が少なくとも部分的に迂回されるように制御され得る。たとえば、第1の移動270から得られたデータは、隔壁260を検知して、たとえばコントローラによって隔壁を超える第2の移動280を命じるために使用され得る。移動の数および/または異なる移動間の間隔は、空間のサイズおよび/または空間の内部の物体の配置に依拠してよい。10〜20メートルの少なくとも1つの壁を有する部屋では、間隔は約1〜3メートルでよい。特定の事例では、空間の所定の部分がマッピングされるまで、追加の移動が遂行されてよい。図2Bの例では、ロボットデバイス205は、いくつかの小さい円形走査を順に行い、中間の新規の視点へ移動し、それによって閉鎖している障害物を回るので、空間の追加の部分を明らかにするように構成されている。これらの走査のすべてから得られた情報は、続く段落でより詳細に説明されるように、部屋の境界および/または複雑な囲まれた空間の寸法を決定するのに使用されてよい。
【００４０】
＜空間の例示の多角形断面＞
図3Aは例示の多角形断面300を示す。この多角形断面は、本明細書で説明された方法において、囲まれた空間の形状を推定するのに使用され得る。多角形断面は任意の多角形に基づくものでよい。特定の例では、多角形は長方形すなわちボックスである。試験では、長方形すなわちボックスが、ロバスト(robust)な寸法推定および多様性をもたらした。実装形態では、多角形断面は、たとえば所与の多角形については辺の長さ(特定の事例では辺の角度)といった、1組の寸法を表すデータによって定義されてよい。
【００４１】
図3Aの例では、多角形断面は2次元である。多角形断面は、囲まれた空間のx-y面(たとえば一定のz軸値を有する面)において定義され得る。この面は床面を表し得る。図3Aは、上から見たロボットデバイス305を、たとえば囲まれた空間の内部で床に沿って移動可能なものなどとして示す。ロボットデバイス305は、単眼の多方向カメラデバイスを有するロボットデバイス105および155のうち1つでよい。ロボットデバイスは説明の容易さのために参照されており、他の例では単眼の多方向カメラデバイスを有する他のエンティティが使用され得る。
【００４２】
図3Aでは、多角形断面はロボットデバイス305に対する寸法によって定義されている。これらの寸法は、断面300の第1の辺302までの距離x+、断面300の(第1の辺302と平行な)第2の辺304までの距離x-、断面300の(第1の辺302に対して90度の)第3の辺306までの距離y+、および断面300の第4の辺308までの距離y-、といった4つの距離を含む。それ故に、1組の寸法はp=[x-, x+, y-, y+]を含み得る。この組から、幅はx-+x+として決定されてよく、長さはy-+y+として決定されてよい。多角形断面の寸法を定義するデータは、ベクトルすなわちアレイpおよび/または長さと幅の値の形式で記憶され得る。
【００４３】
図3Aに示された距離(すなわちp)を決定するのに使用されるロボットデバイス305の位置は、以下の例における1組の奥行き値を決定するのに使用されるロボットデバイス305の基準位置である。基準位置は、奥行き値の組を評価するのに使用される参照画像の基準姿勢から決定されてよく、たとえば基準位置はロボットデバイス305の配置および向きによって定義される。基準位置および/または基準姿勢は、図2Aおよび図2Bにおいて説明された運動中にロボットデバイス305が解釈した実際の位置または姿勢に関係する必要はなく、たとえば運動の補間からの、または姿勢データから計算された、「仮想の」位置または姿勢でよい。これは、以下でより詳細に説明される。
【００４４】
図3Bは、特定の例において空間の寸法を定義するために使用され得る別の変数を示す。図3Bは、ロボットデバイス305の基準姿勢と多角形断面310の間で定義される角度θを示す。この角度は、断面の2次元面に投影されたときの、基準姿勢の法線方向に対する多角形断面310の向きを表し得る。あるいは、この角度は、ロボットデバイス305が多角形断面の辺に対して作る角度としても定義され得る。たとえば、ロボットデバイス305の基準位置は、(たとえば図3Aに示されるように)断面の辺と平行でなくてよく、すなわち、ロボットデバイス305は、空間の内部の基準位置において斜めでよい。図3Bの例では多角形断面310はパラメータ化されてよく、たとえばパラメータp=[x-, x+, y-, y+, θ]によって定義される。そのため、図3Bのボックスは、ロボットデバイスの基準姿勢のまわりに角度θだけ回転していると言え、4つの他のパラメータは部屋内部の面または壁までの距離である。
【００４５】
図3Cが示す3次元ボリューム330は、ロボットデバイス305のまわりに、すなわち上記で論じられた基準位置のまわりに定義される。3次元ボリューム330の2次元断面320は、上記で説明されたような断面300または310でよい。3次元ボリューム330は、空間において断面320を延長する(たとえば伸ばすかまたは押し出す)ことによって発生する任意のボリュームである。たとえば、断面がx-y面を含む場合、3次元ボリューム330は、断面をz軸に沿って延長することにより定義され得る。3次元ボリューム330の高さは、断面の寸法の最適化には使用されず、それ自体は、単眼の多方向カメラデバイスの視角の全体をカバーすることを保証する任意の大きな値に設定されてよい。たとえば、一般的な例示の室内については、3次元ボリュームの高さは5メートルに設定されてよい。
【００４６】
実装形態では、pおよび所定の高さ(たとえば5m)によって定義される3次元ボリュームは三角形の3次元モデルを使用して定義されてよく、ボックスのボリュームは、8つの三角形および24の頂点から成り得る(たとえばボリュームの各辺は2つの三角形によって定義される)。たとえば、この定義は、オープングラフィックスライブラリ(OpenGL)の実装形態によって使用され得る。実装形態の性質に依拠して、他のグラフィックエンジンおよび/またはボリュームの寸法が使用され得る。
【００４７】
図3A〜図3Cに図解された2次元断面300、310および3次元ボリューム330の定義は、空間の寸法を決定するのに使用され得、このことは以下でより詳細に説明する。
【００４８】
＜処理パイプラインの例＞
図2Aおよび図2Bに示されたような運動の例と、図3A、図3Bおよび図3Cに示されたような断面およびボリュームとに続いて、次に処理動作の特定の例を説明する。この処理動作は、運動中に取り込まれた一連の画像を採用して、ルームプランを表すボックスの長さおよび幅の計算された値など、囲まれた空間の寸法の推定を定義するデータを発生するように構成されている。
【００４９】
図4Aは、一例による、囲まれた空間の寸法を推定するための処理パイプライン400の特定のシステム構成要素を概略的に示すものである。図4Aでは、単眼の多方向カメラデバイスを備え得るカメラデバイス410が、一連の画像または順次の画像420(各画像は「I」とラベルを付けられている)を取り込む。これらの画像420は、ロボットデバイスの少なくとも1つの命令された移動中に、複数の異なる角度位置において取り込まれたものであり、たとえば、画像420は、ロボットデバイスが図2Aおよび図2Bに示された円形の運動または周囲の運動で移動するとき記録されるビデオデータの一部分から得られたビデオフレームを含み得る。ビデオの事例では、画像は連続したビデオフレームである必要はなく、たとえば最小のコントラストおよび/または焦点距離(focus metrics)を満たすような、少なくとも1つの画像処理基準に従って選択されたビデオフレームのサブセットを含み得る。
【００５０】
図4Aでは、空間推定器430によって画像420がアクセスされる。空間推定器430は、画像420を処理して囲まれた空間の寸法440を推定し、たとえば空間のルームプランを発生するように構成されている。空間推定器430は、ロボットデバイスのコントローラ(たとえば120、170)の一部分を形成してよく、またはカメラデバイス410から、たとえば有線接続によって直接的に、もしくはワイヤレスネットワーク接続を通じて間接的に、画像420を受け取るように構成されたコンピュータデバイスを備えてよい。
【００５１】
一例では、空間推定器430は、一連の画像420から姿勢データを決定するように構成されている。この場合、姿勢データは、少なくとも1つの命令された移動中の、複数の位置におけるカメラデバイス410の配置および向きを示す。1つの事例では、姿勢データは、一連の画像内で検知された1組の特徴を使用して決定される。空間推定器430は、一連の画像420と姿勢データのボリューム関数を評価することによって奥行き値を推定するようにさらに構成されている。ボリューム関数は参照画像のまわりの稠密な全方向コストボリュームを評価するための関数を含んでよく、参照画像は姿勢データから決定され、関連する基準位置(たとえば基準姿勢)を有する。各奥行き値は、カメラデバイス410から、たとえば壁、テーブル、ドアなどの形態の物体といった空間における面までの距離を表す。特定の事例では、空間推定器430は、ボリューム関数から奥行き値を発生するために、以下でより詳細に説明されるような奥行き推定器(または等価な適用)を備え得る。そこで、空間推定器430は、奥行き値に対してボリューム330などの3次元ボリュームを当てはめるように構成される。空間推定器430は、たとえばボリュームを使用して決定された奥行きマップと前述の奥行き値を表す奥行きマップの間の差を最小化する(図3Aまたは図3Bを参照しながら説明されたような)pの値を決定することにより、3次元ボリュームの2次元多角形断面の寸法を最適化することによって、ボリュームを当てはめるように構成されている。これらの奥行きマップは画像として表されてよく、たとえば寸法pの最適化された値を決定してボリュームを当てはめるのに勾配降下法が使用され得る。空間推定器430は、ボリュームを当てはめてから、2次元多角形断面の最適化された寸法に基づく囲まれた空間の寸法の推定440を出力する。たとえば、空間推定器430は、pの最適化された値および/または推定されたルームプランの長さおよび幅を出力してよい。
【００５２】
特定の例では、カメラデバイス410は、RGB画像(またはビデオフレーム)を取り込むように構成されたRGBカメラデバイスを備え得る。1つの事例では、カメラデバイス410は電荷結合デバイス(CCD)または相補型金属酸化膜半導体(CMOS)センサを含む。1つの実験的構成では、Point Grey(登録商標)のFlea3カメラが、Sony(登録商標)のCMOSセンサを特徴として使用された。この実験的構成では、カメラデバイスに、多方向撮像をもたらすSony(登録商標)の薄型全方向レンズRPUC2512が取り付けられた。
【００５３】
他の事例では、カメラデバイス410は他の入手可能なデジタルデバイスおよび/またはアナログデバイスを備えてよく、画像420はアナログ信号源を変換することによって生成される。それぞれの画像420が測定データの2次元表現を含み得る。たとえば、画像420は、記録された画素値の2次元アレイまたはマトリクスを含み得る。すべての例においてそうであるとは限らないが、図4Aの例ではすべての画像420が同一のサイズである。画素値は、所与の分解能(たとえば1280×1024)に対して赤/緑/青の画素値を含み得る。他の例では、他の色空間が使用されてよく、かつ/または画像420が単色またはグレースケールの画素値を含み得る。1つの事例では、画像データは圧縮されたビデオストリームまたはファイルを含み得る。この場合、画像データのフレームは、ストリームまたはファイルから、たとえばビデオデコーダの出力として再構成されてよい。画像データは、ビデオストリームまたはファイルの前処理の後にメモリ配置から取り出されてよい。
【００５４】
1つの事例では、カメラデバイス410は、たとえばロボットデバイスの一部分を形成する固体メモリデバイスといった結合されたデータ記憶デバイスに画像420を記憶するように構成されてよい。別の事例では、カメラデバイス410は、結合されたコンピュータデバイスに画像データ420を伝送してよい。結合されたコンピュータデバイスは、たとえばユニバーサルシリアルバス(USB)接続によって直接結合されてよく、または間接的に結合されてもよく、たとえば画像420は1つまたは複数のコンピュータネットワークを通じて伝送され得る。さらに別の事例では、カメラデバイス410は、画像420を、ネットワーク接続型記憶デバイスに記憶するために、1つまたは複数のコンピュータネットワークにわたって伝送するように構成されてよい。この伝送は、たとえばワイヤレスネットワークまたはブルートゥース(登録商標)接続といったワイヤレス伝送でよい。画像420はそれぞれのフレームごとに記憶され、かつ/または伝送されてよく、あるいはバッチ方式で、たとえば複数のフレームが互いにバンドルされてよい。
【００５５】
特定の事例では、空間推定器430は、たとえば図1Aおよび図1Bに示されたようにロボットデバイスの一部分を形成してよい。他の事例では、空間推定器430の少なくとも一部分が、たとえば1つまたは複数の結合されたコンピュータデバイス上に配置されて分散され得る。たとえば、これらのコンピュータデバイスは、給電された充電ステーションおよび/またはネットワーク接続型コンピュータ資源の一部分を備え得る。
【００５６】
図4Bは、囲まれた空間の寸法440を推定するため、たとえば特定の実装形態ではルームプランを決定するために使用され得る処理パイプライン450の第2の例を示す。図4Bの例では、カメラデバイス415は、たとえば上記で説明された実験的構成を使用して実装され得るような全方向カメラデバイスを備える。この場合、カメラデバイス415は未加工の全方向画像460を生成する。たとえば、全方向画像460は、空間の観測された半球に関連した円形画像を含み得る。処理パイプライン450は、未加工の全方向画像460を受け取るように構成された画像プロセッサ470を備える。画像プロセッサ470は、カメラデバイス415によって取り込まれた未加工の全方向画像460をアンラップして、空間推定器435によって使用されるパノラマ画像425を出力する。画像プロセッサ470は、カメラモデルパラメータを使用してアンラップを遂行し得る。未加工の全方向画像460をアンラップすると、後の姿勢および奥行きの推定演算が容易になる。一例では、画像プロセッサ470は、ルックアップ表を使用してアンラップを実施して、それぞれの未加工の全方向画像から、後の処理に用いる球状にマッピングされたパノラマ画像を生成するように構成され得る。特定の事例では、サブ画素補間が使用され得る。未加工の全方向画像をアンラップすると、画像の寸法が市販のグラフィック処理ユニットのメモリの範囲内にうまく適合し、それぞれの画素が球体の表面上の均一領域を表すという利益を得る。
【００５７】
図4Bの処理パイプライン450はカメラ較正器480も備える。図4Bには画像プロセッサとカメラ較正器の両方が示されているが、他の例では画像プロセッサとカメラ較正器は別個に使用され得る。カメラ較正器480は、較正パターン485の少なくとも1つの取り込み画像を処理することによってカメラデバイス415を較正するように構成されている。較正パターン485は、たとえば空間の内部で可視の印刷パターンまたは液晶表示器出力として、空間の内部に存在してよい。1つの事例では、較正パターン485は、ロボットデバイスの充電ステーションおよび/またはドッキングステーションに存在してよい。較正パターン485は、たとえば黒と白の枡のチェッカーボードパターンを含み得る。カメラ較正器480は、取り込み画像値と取り出された較正パターンの画像特性との関数を評価することにより、カメラモデルパラメータ、すなわちカメラデバイス415の特性をモデル化するパラメータを決定するように構成されている。取り出された較正パターンの画像特性は、較正パターンの取り出された表現490から決定される。1つの事例では、カメラ較正器480は、カメラデバイス415が全体の視野をカバーするために移動している間に一連の(たとえば10の)画像の取り込みを命じように構成されてよい。この場合、それぞれの画像に対して(たとえばユーザによって、またはドッキングステーションからの所与の距離などの既知の位置に基づいて)パターンの大まかな配置が与えられる。次いで、それぞれの画像が長方形のパッチにアンラップされ、較正パターンのコーナーが検知される。次いで、コーナーの座標が原画像の空間へと再計算される。このプロシージャは、一連の画像のすべてに対して繰り返される。これから、1組の点対および初期パラメータ値を用いて、カメラモデルパラメータの関数を最小化するためにLevenberg-Marquardt非線形最適化が適用されてよい。例では、カメラモデルパラメータは、ミラー形状パラメータ、半径方向および接線方向の歪み係数ならびにピンホールカメラの固有パラメータうち少なくとも1つを含み得る。回転マトリクスおよび並進ベクトルなど外因性パラメータも、カメラモデルパラメータの一部分を形成し得、これらは、空間推定器435によって遂行される姿勢推定の一部分として、運動を使用して推定
され得る。特定の事例では、これらの外因性パラメータは6自由度を表し得る。カメラモデルは、たとえば、C. Geyer、「Catadioptric Projective Geometry: theory and applications」、博士論文、University of Pennsylvania、2003年、およびJ. P. d. A. Barreto、「General central projection systems: Modeling, calibration and visual serving」、博士論文、University of Coimbra、2004年、に説明されているような適合されたGeyerおよび/またはBarretoの反射屈折カメラモデルを含み得る。そのようなカメラモデルは、レンズミラーの曲率を決定する特別なパラメータの追加を伴うピンホールモデルに類似し得る。
【００５８】
＜システム構成要素の例＞
図5は、囲まれた空間の寸法440を推定するため、たとえばルームプランを決定するために使用され得るシステム510の一例500を示す。システム510は、図4Aおよび図4Bの空間推定器430、435を実施してよい。システム510は、たとえば上記で説明されたようにロボットデバイスの移動中に取り込まれた一連の画像520を受け取る。一連の画像520は、図4Bを参照しながら説明されたようなアンラップされた全方向画像425を含み得る。システム510は、姿勢推定器530、奥行き推定器540および寸法推定器550といった少なくとも3つのシステム構成要素を備える。
【００５９】
姿勢推定器530は、一連の画像530を受け取って1組の姿勢推定Tを生成するように構成されている。姿勢推定はそれぞれの受け取られた画像520について生成されてよく、たとえば外因性カメラモデルパラメータである回転マトリクスおよび並進ベクトルの値を含み得る。特定の事例では、図4Bのカメラ較正器480によって遂行されるものなどの構成動作は、たとえばカメラデバイスとロボットデバイスの基部との間の取付け関係を表す、ロボットデバイスの基部/本体からカメラデバイスへの変換を決定してもよい。特定の静的取付けについては、このロボットデバイスの基部/本体のカメラデバイスへの変換は、恒等変換と見なされ得る。姿勢推定器530は、姿勢推定の組Tを生成するために、画像520から特徴を抽出し、それらの特徴を一連の画像520にわたって照合して、画像520に関する少なくとも1組の初期の姿勢推定をバンドル調整するように構成されてよい。姿勢データは、命令された移動中の、複数の位置における単眼の多方向カメラデバイスの配置および向きを示す。
【００６０】
奥行き推定器540は、姿勢推定器530から一連の画像520および姿勢推定の組Tを受け取るように構成されている。特定の事例では、一連の画像520の中のすべての画像に対して、必ずしも姿勢推定が可能ではない可能性がある。この例の奥行き推定器540は、有効な姿勢推定を有する画像を使用してボリューム関数を評価して、奥行き推定Dを決定するように構成されている。1つの事例では、奥行き推定器540は、一連の画像520から選択された参照画像のあたりの稠密な全方向コストボリュームを評価するように構成されている。この場合、奥行き値は参照画像の1組の画素に対して計算されてよい。この場合、奥行き値は参照画像の1組の画素に対して計算されてよい。これらの事例では、参照画像は、たとえば基準姿勢からの配置および向きといった基準位置に関するものである。したがって、奥行き値は、囲まれた空間における基準位置から面までの距離を表す。一連の画像520から、1組の比較画像との輝度の不一致を最小化する奥行き値が選択されてよい。一例では、奥行き値を評価するとき、特定の画素が無視されてよい。これは、今後の処理のために、関連する高い精度または確信度を有する奥行き推定のみ考慮に入れるように、奥行き値をフィルタリングすること、または選択することと考えられ得る。このフィルタリングのための手法の一例が、後に図9Aおよび図9Bを参照しながら説明される。
【００６１】
寸法推定器550は、奥行き推定値Dを受け取って、3次元ボリュームの2次元多角形断面の寸法を最適化することにより、奥行き推定器からの奥行き値に3次元ボリュームを当てはめるように構成されている。3次元ボリュームを当てはめることによって決定された2次元多角形断面の寸法は、囲まれた空間の寸法の推定値560を出力するのに使用される。たとえば、推定値560はルームプランにおけるボックスを定義するデータを含み得、ボックスの寸法は、(たとえば図3Aおよび図3Bに示されるような)2次元多角形断面の寸法に基づいて設定される。
【００６２】
1つの事例では、寸法推定器550は、姿勢推定器530および奥行き推定器540のうち1つから、たとえば基準姿勢といった基準位置を定義するデータを受け取ってよい。1つの事例では、参照画像の画素の奥行き値が奥行きマップを形成し得る。たとえば図4Bを参照しながら説明されたようにアンラップされた画像を用いる事例では、推定された奥行きマップのそれぞれの列(すなわち奥行き値のそれぞれの列)は、カメラデバイスを基準として異なる視角または角度位置を表す。全方向カメラデバイスが使用される場合、奥行きマップはアンラップされた球状画像に関連付けられてよく、そのため、奥行きマップのそれぞれの列は、360度の視野のまわりの異なる視角または角度位置を表す。
【００６３】
1つの事例では、寸法推定器550は、画像データと姿勢データのボリューム関数の評価からの奥行き値の第1の組(すなわちD)と、基準位置から3次元ボリュームの壁までの推定された奥行き値の第2の組との間の誤差の関数を、多角形断面の寸法に関して最適化することにより、3次元ボリュームを当てはめるように構成されている。奥行き値の第2の組は、たとえば基準位置から放射された光線がボリュームの縁部と交差するのを決定することによる、基準位置から3次元ボリュームの境界へのレイトレーシングによって決定され得る。1つの事例では、奥行き値の第1の組を定義する画素値を伴う奥行き画像(すなわち第1の奥行きマップ)を奥行き値の第2の組を定義する画素値を伴う奥行き画像(すなわち第2の奥行きマップ)と比較することにより、誤差の関数が評価される。
【００６４】
一例では、寸法推定器550は、三角形の3次元モデルを使用し、画素ごとのレイトレーシングを遂行して、第2の奥行きマップを計算するように構成されている。たとえば、第1の奥行きマップ(たとえばD)からの各画素について、寸法推定器550は、3次元モデルの三角形を通じて、光線-三角形の交点を検査し、交点が生じる所与の寸法の組db(p, u, v)について、結果として生じる奥行きを計算することを繰り返すように構成されている(uおよびvは第1の奥行きマップにおける画素のx座標およびy座標を表す)。特定の事例では、たとえば1つの面が別の面の前にある複雑な部屋の形状の状況の光線追跡で、最も近い面を決定するのに、zバッファ論理が使用されてよい。長方形断面に関する事例では、光線-面の交点はz-バッファ論理なしで決定され得る。次いで、画素ごとに、db(p, u, v)と、たとえば第1の奥行きマップDからの値である測定された奥行き値dm(u, v)との間の差を誤差関数によって評価してよい。一例では、誤差関数は、図11を参照しながらより詳細に説明されるように、非対称なコーシーの損失関数を含み得る。
【００６５】
一例では、寸法推定器550は、自動微分を適用して、3次元ボリュームを当てはめるのに使用される偏導関数を決定する。所与のプログラム言語について自動微分(アルゴリズム的微分または計算上の微分としても知られている)を適用するいくつかのライブラリが利用可能である。自動微分は、コンピュータコードのラインで表現された関数の偏導関数を決定する連鎖法則を適用する。1つの事例では、自動微分は、フォワード累積とともに、ヤコビアンを計算するのに適用され、前記ヤコビアンは、奥行き値の第1の組と奥行き値の第2の組との間の誤差の関数を最適化するのに使用される。1つの事例では、偏導関数は、寸法推定器550によって遂行される計算(三角形メッシュの発生、光線-三角形の交点、カメラ投影、ならびに残余関数および損失関数の計算などのうち1つまたは複数)に自動微分を使用して計算される。これらの偏導関数は、たとえばpといった3次元ボリュームのパラメータに関して導かれる。偏導関数は、中央処理装置(CPU)およびグラフィックス処理ユニット(GPU)のうち1つまたは複数上で評価される関数に関して決定され得る。1つの事例では、誤差関数から画素ごとに残余をそれぞれ計算した後、残余値を合計することによって誤差関数が最適化され、偏導関数を決定するのにGPUを用いると演算が低減する。誤差関数値は、自動微分からのヤコビアンとともに、3次元ボリューム、測定された奥行き値Dの点から、最もよく当てはまる断面の寸法を推定するためのレーベンバーグ-マーカートの最適化方式に使用され得る。
【００６６】
特定の事例では、一連の画像520は、(たとえば図2Bの例のような)複数の移動からの画像のバッチを含む。この場合、姿勢推定器530および奥行き推定器540は、これらのバッチの各々に対して動作してよい。一実装形態では、奥行き推定器540は、各バッチについて、参照画像に対する奥行き値の関係を推定するように構成されてよく、バッチは移動270、280、290のうち1つに対応する。この場合、比較画像も、対応する一組の画像から選択されてよい。次いで、それぞれが特定のバッチおよび移動に対応する複数の奥行きマップが、奥行き推定器540によって生成され、寸法推定器550に渡されてよい。この場合、寸法推定器550は、それぞれが奥行き推定器540からの異なる奥行きマップに対応する複数の断面の寸法を決定するように構成されている。複数の当てはめられた断面は、部屋境界または複雑な形状の当てはめに使用され得る。これは、以下でより詳細に説明される。
【００６７】
システム510は、面倒な計算条件なくリアルタイムでルームプランを生成することを可能にするやり方で、「希薄な」画像処理と「稠密な」画像処理とを組み合わせるのが見られ得る。この場合、姿勢推定器530は、たとえば重要点または抽出された特徴を利用する処理といった「希薄な」処理を適用するのが見られ得る。これらの重要点および抽出された特徴は、空間をモデル化するために多くのボクセルを含み得る完全なボリュームモデルと比較して、数が限られている。抽出された特徴、照合された特徴、およびバンドル調整された特徴に基づく「希薄な」処理は、比較の「稠密な」姿勢推定技術よりも、処理がより迅速であるという利点を有する。参照画像を使用することによって決定され得る比較的「稠密な」奥行きマップでは、たとえばそれぞれの画素ごとに奥行き値が決定され、計算負荷が低減される。加えて、フィルタリングされた奥行き値または「準稠密な」奥行きマップを使用すると、処理をさらに迅速化する。奥行き値の正確さまたは確信度に基づく、フィルタリングされた奥行きマップまたは「準稠密な」奥行きマップは、質感がない領域を有する空間をマッピングする問題にさら対処する。これらの事例では、たとえば空室の壁といった質感がない領域には、奥行き推定のための情報量がほとんどない可能性がある。これにより、不正確な部屋寸法測定の原因になりかねない、信頼性の低い推定がもたらされる可能性がある。しかしながら、特定の事例では、そのような奥行き値はフィルタリングされ、そのため、部屋寸法を推定するのに使用されることはない。
【００６８】
1つの事例では、システム510は画像収集インターフェースを介して一連の画像520を取得してよい。画像収集インターフェースは、以前の例のカメラデバイス110、160、410、415に結合されてよい。画像収集インターフェースは、USBまたはネットワークインターフェースなどのハードウェアインターフェースと、ソフトウェアドライバを実装するコンピュータプログラムコードとを含み得る。1つの事例では、システム510は、たとえば生中継ビデオデータといったストリーミングデータに対して動作するように構成され得る。別の事例では、システム510は、カメラデバイスに通信可能に結合されて、カメラデバイスから受け取られた画像520を、1つまたは複数の持続的データ記憶および非持続的データ記憶に記憶するように構成されてよく、たとえばデータのフレームはメモリにコピーされてよく、かつ/またはハードディスクドライブまたは固体記憶装置に記憶されてよい。別の事例では、画像520は、たとえばデータ記憶デバイスにおいてアクセス可能な1つまたは複数のファイルといった所与のファイルフォーマットで、システム510の外部に記憶され得る。この場合、システム510は、少なくとも、1つまたは複数のファイルからデータを読み取るために、ファイルシステムの一部分を使用するかまたは実装してよい。システム510は、専用の処理電子回路を備えてよく、かつ/または少なくとも1つのコンピュータデバイスのプロセッサによって実行されるコンピュータプログラムコードによって実施されてもよい。
【００６９】
図1Aおよび図1Bに示されたものなど事例では、システム510は、1つまたは複数の組み込まれたコンピュータデバイスを備え得る。システム510は、コンピュータ可読媒体にロードされたコンピュータプログラムコードを実行するようにメモリと連携して動作する少なくとも1つのプロセッサを備え得る。この媒体は消去可能なプログラム可能読取り専用メモリなどの固体記憶装置を備えてよく、コンピュータプログラムコードはファームウェアを含み得る。他の事例では、システム510は、適切に構成されたシステムオンチップ、特定用途向け集積回路、および/または1つもしくは複数の適切にプログラムされたフィールドプログラマブルゲートアレイを備え得る。1つの事例では、システム510は、コンピュータプログラムコード、および/またはモバイルコンピュータデバイスにおける専用の処理電子回路、および/またはデスクトップコンピュータデバイスによって実装され得、この場合、システム510は、ロボットデバイスから伝送された画像を受け取り、かつ/または決定された部屋寸法をロボットデバイスへ伝送するように構成され得る。分散コンピューティングの他の実装形態も、本明細書で説明された例から逸脱することなく使用され得る。1つの事例では、システム510は、以前の事例と同様に、またはその代わりに、コンピュータプログラムコードを実行する1つまたは複数のGPUによって、全体的に、または部分的に実装され得る。特定の事例では、システム510は、たとえばGPUの複数のプロセッサおよび/または各コア上で並行して実装される1つまたは複数の機能によって実装され得る。
【００７０】
＜囲まれた空間の寸法を推定するための例示の方法＞
図6は、一例による、囲まれた空間の寸法を推定するため画像処理方法を示す。この方法は、前述の例のシステム構成要素または何らかの他の適切なコンピュータデバイスによって適用され得るものである。
【００７１】
ブロック610において、単眼の多方向カメラデバイスから画像データが得られる。これは、ロボットデバイスに結合されたカメラデバイスまたはモバイルコンピュータデバイスでよい。1つの事例では、カメラデバイスは、家庭用ロボットの形態のロボットデバイスに結合され得る。以前の例と同様に、単眼の多方向カメラデバイスは、複数の視点または角度位置から画像データを取り込むように構成されている。画像データに含まれる、たとえば1組のビデオフレームといった一連の画像は、カメラデバイスの移動面の範囲内に、たとえば床に配置されたデバイスについては水平方向の相違といった相違を有する。カメラデバイスの移動面は、ロボットデバイスの移動面を含み得る。
【００７２】
ブロック620において、画像データに対応する姿勢データが決定される。姿勢データは、単眼の多方向カメラデバイスの、たとえば6自由度までの回転パラメータ値および並進パラメータ値といった配置および向きを示す。特定の事例では自由度が抑制されることがあり、たとえば特定の実装形態では移動が床面に存在すると想定されてよく、そのためz軸に沿った並進はなく、回転はz軸のまわりに限定され得る。この例では、姿勢データは、画像内で検知された1組の特徴を使用して決定される。
【００７３】
ブロック630において、ブロック610からの画像データとブロック620からの姿勢データのボリューム関数を評価することによって1組の奥行き値が推定される。この場合、各奥行き値は、単眼の多方向カメラデバイスの基準位置から空間における面までの距離を表す。基準位置は、ボリューム関数を評価するために決定される基準姿勢に関連付けられてよい。
【００７４】
ブロック640において、単眼の多方向カメラデバイスの基準位置のまわりに3次元ボリュームが定義される。3次元ボリュームは、カメラデバイスの移動面の内部に2次元多角形断面を有する。ブロック640において3次元ボリュームを定義する動作は、たとえばボックスのような所定の多角形のパラメータ値を取り出すステップを含み得る。方法600の繰返しの始めにおいて、パラメータ値が初期化されてよい。3次元ボリュームは、パラメータp=[x-, x+, y-, y+, θ]、および所定の高さ値によって定義され得る。基準位置を定義する配置および向きの値はブロック630から渡されてよい。
【００７５】
ブロック650において、定義された3次元ボリュームが奥行き値に当てはめられて、多角形断面の寸法を決定する。これは、コスト関数を寸法に関して最適化するステップを含み得る。これは、ブロック630において決定された奥行き値に最もよく当てはまる、対応する3次元ボリュームを有する1組の寸法を決定し得、たとえばパラメータp=[x-, x+, y-, y+, θ]の値を決定する。次いで、これらのパラメータは、方法600によってマッピングされた空間の範囲を定義するのに使用され得る。
【００７６】
1つの事例では、多角形断面について決定された寸法は、囲まれた空間に対するルームプランを(たとえばボックスとして定義された部屋については長さおよび幅に関して)定義するのに使用され得る。たとえば、ルームプランは、ロボットデバイスによって空間を理解するのに使用されてよく、または操作者に、測定値として、(モバイル)コンピュータデバイスの表示器に表示されてもよい。
【００７７】
1つの事例では、奥行き値に3次元ボリュームを当てはめるステップは、ブロック630からの奥行き値の第1の組と、基準位置から3次元ボリュームの壁までの推定された奥行き値の第2の組との間の誤差の関数を、多角形断面の寸法に関して最適化するステップを含む。1つの事例では、ブロック630からの奥行き値は、奥行きマップの形態、すなわち各画素値が奥行き値を表すW×Hの画素数の画像の形態で出力されてよい(たとえば、画像はグレースケール画像を含み得る)。この場合、ブロック630からのそれぞれの測定された奥行き値は、画素値dm(u, v)として定義され得、uおよびvは画像のx座標値およびy座標値を含む。各画素値dm(u, v)が、当てはめられるボリューム奥行きマップdb(p, u, v)からの画素値と比較されてよく、当てはめられるボリューム奥行きマップは、画素ごとのレイトレーシングを使用して計算される。特定の事例では、ブロック630からの奥行き値は、事前に定義された床面よりも低い点や事前に定義された天井面よりも高い点を除去するためにあらかじめ処理されてよい。これらの点を除去するとノイズの除去が促進され、一般的にはこれらの点が部屋の形状推定の一部分を形成することはない。
【００７８】
一例では、コスト関数(F)の残余(R)は次式で定義され得る。
R=F(db(p, u, v)-dm(u, v))
次いで、これらの残余は最終的なエネルギー関数において合計されてよく、この関数は、ブロック630からの奥行きマップの範囲にわたって(すなわちWおよびHにわたって)、pに関して最小化される。
【００７９】
【数１】
2019523496.tif 000003
【００８０】
上記で説明されたように、多角形断面のパラメータに関して残余の合計を最小化するために偏導関数を計算するのに、自動微分が使用され得る。
【００８１】
特定の例では、基準位置(θ)に対する断面の回転角を決定する前に基準位置から断面(x-, x+, y-, y+)のそれぞれの辺までの距離を評価する座標降下法が使用される。これによって収束がより高速になり得、当てはめが改善された。
【００８２】
＜姿勢データおよび奥行きデータを決定するための方法＞
図7は、特定の実装形態においてブロック620を実装するために使用され得る方法700を示すものである。
【００８３】
ブロック710では、ブロック610で得られた一連の画像の中の複数の画像の各々において1つまたは複数の特徴が検知される。1つの事例では、E. RostenおよびT. Drummond、「Machine learning for highspeed corner detection」、European Conference on Computer Vision (ECCV)の論文集、2006年、によって説明されているように、FAST (Features from Accelerated Segment Test:加速されたセグメント試験からの特徴)コーナー検出器を用いて特徴が検知され得る。これは、リアルタイムのビデオ処理に適する高速特徴検知をもたらす。特徴は、たとえばビデオデータの各フレーム、または画像の選択されたサブセット(ビデオ送りのxフレームごとなど)といった各画像において検知され得る。特徴は、たとえば、D. G. Lowe、「Distinctive image features from scale invariant keypoints」、International Journal of Computer Vision (IJCV)、60(2)、91〜110頁、2004年、によって説明されているように、スケール不変特徴変換(SIFT:scale-invariant feature transform)記述子を使用して記述され得る。他の特徴検知器および/または記述子が使用され得る。
【００８４】
ブロック720において、画像データの内部の1組の目印を決定するために、ブロック710から検知された特徴が複数の画像にわたって照合される。目印は、この場合は画像間の対応する点を含み、たとえばロボットデバイスが空間を動き回るとき、いくつかの連続した画像の中に取り込まれる空間の内部の物体の静的部分(たとえば家具の一部分のコーナー、壁の絵、または椅子の一部分)に関するものであり得る。このブロックは、特徴に基づく運動推定動作の繰返しを含んでよく、それぞれの新規の画像(たとえばビデオデータの新フレーム)を用いて、新規の画像の新たに検知された特徴を、既存の目印の特徴のリストまたはマップに対して照合する。一致が見つからず、たとえば検知された特徴が完全に新規の特徴を含む場合、リストまたはマップに、新規の目印のエントリが追加されてよい。特徴は、画像面における再投影誤差およびSIFT記述子距離に基づき、内部のフィルタリングループにおいて、現在の目印のリストまたはマップと照合されてよい。
【００８５】
ブロック730において、一連の画像に関する1組のカメラ姿勢推定および1組の目印配置推定が、一緒に最適化される。次いで、図6のブロック620によって出力された姿勢データは、一緒の最適化の後に、1組のカメラ姿勢推定を含む。一緒の最適化は、少なくともカメラ姿勢推定と、目印配置と、それらの一致したそれぞれの特徴との間の制約を課す、目に見える部分を用いてエネルギー関数を最小化するステップを含み得る。エネルギー関数は、画像jの中に特定の特徴iが見られるかどうかを示す2進項を含み得る。エネルギー関数の目に見える部分は、予測された特徴値(たとえば画像jの特徴iに関連する予測された画素値)と、実際の特徴値(たとえば画像jの特徴iに関連する実際の画素値)との間の差を評価し得る。この差は、n個の特徴およびm個の画像にわたって評価され得る。予測された特徴値は、目印位置に回転マトリクスを適用したものから、並進ベクトルに回転マトリクスを適用したものを引いたカメラパラメータを使用して、投影に基づいて計算され得る。これは、初期の姿勢推定を使用して一連の画像におけるそれぞれの画像に対して適用されてよく、それぞれの初期の姿勢推定は、その画像に関する回転マトリクスおよび並進ベクトルの初期値を含む。目に見える部分は、差を正規化するためにHuberノルムを使用し得る。
【００８６】
実装形態において、最適化関数を抑制するために、ロボットデバイスからの移動量(odometry)データが使用され得る。移動量は、運動センサからのデータを使用して位置の経時変化を推定するものである。移動量データは、ロボットデバイスの少なくとも1つの移動アクチュエータから生じてよく、たとえば図1Aおよび図1Bにおけるホイール115またはトラック165の位置を追跡する。最適化関数は、前述のエネルギー関数を含み得る。その場合、エネルギー関数は追加の移動量部分(たとえば移動量の項)を有し得る。移動量部分は、連続画像間の並進ベクトルの変化と、連続画像が取り込まれた時間に関連した移動量ベクトルの変化との間の差を評価してよい。これは、並進ベクトルによって示される移動と、移動量データによって示される移動との間の差を考えるのと等価であり、移動は、2つの連続画像の取り込みの間に生じるものである(たとえばビデオデータの画像間またはフレーム間の距離である)。この方法は、移動量が画像の取り込みと一緒に取り込まれなくても適用され得、高度な制御処理の必要性を低減する。それに加えて、またはその代わりに、移動量データは、利用可能であれば、たとえば一緒の最適化の範囲内で1つまたは複数の姿勢推定を初期化するのに使用され得る。エネルギー関数における両方の項に重み付けするために、精度マトリクスからの標準偏差が使用されてよい。移動量部分における差は、コーシーの損失関数を使用して重み付けされてよく、ロバストになり得る。説明されたエネルギー関数は、反復するLevenberg-Marquardt関数を、自動微分によって計算されたヤコビアンとともに使用して最適化され得る。
【００８７】
一実装形態では、一緒の最適化はバンドル調整を含み得る。バンドル調整は、Bill Triggsら、「Bundle adjustment - a modern synthesis」、Vision algorithms: theory and practice、Springer Berlin Heidelberg、2000年、298〜372頁、によって説明されている方法の適用であり得る。これは非線形最適化を使用し得る。
【００８８】
特定の事例では、特徴は、最初に推定照合によって照合されてよい。次いで、これらの推定照合に対して予備バンドル調整が適用され得る。次いで、推定照合は、その再投影誤差が大きすぎる場合には破棄されてよい。この選択および破棄は、最後のバンドル調整が遂行される前に複数回繰り返されてよい。1つの事例では、新規の目印を生成するために、画像が複数の(たとえば16の)パッチに分割される。次いで、それぞれのパッチにおいて、それぞれがすべての他のもの(たとえば10の画素)から離れたところにある少なくとも所与の画素数である、少なくとも特徴の所定数(たとえば5つ)が保たれるように、重要点の形態の特徴が選択されてよい。特別なこの動作は、追跡すべき高品質の特徴が一様に分布することに寄与し得る。新規の目印が、所与の距離(たとえば環境に依拠して7.5m)だけ離れて初期化されてよく、後に照合されるとき、正確な奥行きへとバンドル調整される。
【００８９】
図8は、特定の実装形態においてブロック630を実装するために使用され得る別の方法800を示すものである。方法800は、方法700とともに実装されてよく、または方法700から独立して実装されてもよい。
【００９０】
ブロック810において、ブロック610において得られた一連の画像から参照画像が決定される。1つの事例では、各画像が円または弧の移動経路に沿って取り込まれる場合には、参照画像は、円または弧の中間の近くから、参照画像の両側に対応する付加画像(たとえば決定された参照画像の前後に取り込まれたもの)が存在するように選択されてよい。他の事例では、たとえば全方向の運動および/または完全な円運動を使用するものでは、参照画像は、取り込み画像から無作為に選択されてよく、あるいは1つまたは複数の画像品質メトリクスに基づいて選択されてよい。ブロック820において、参照画像と重なる1組の比較画像が決定される。重なりは、参照画像の画素の、たとえば異なる向きおよび/または配置からも撮像された空間の一部分からの画像データを包含している比較画像における、少なくとも1つの画素と定義され得る(しかし、参照画像と比較画像との間で画素の配置が異なる可能性がある)。ブロック830において、参照画像の画像値と1組の比較画像からの投影画像値との間の測光誤差が決定される。測光誤差は、正規化された画素測光誤差に基づくものでよい。
【００９１】
それぞれの投影画像値は、たとえば参照画像の視点への比較画像データの再投影といった、参照画像に関する姿勢データおよび比較画像に関する姿勢データを使用した、参照画像の視点への比較画像の投影を含む。ブロック840において、測光誤差を最小化する奥行き値が選択される。たとえば、比較画像の投影は、スカラの奥行き項dを含み得る。測光誤差は、参照画像から得られた画素値から、奥行き項、カメラパラメータおよび姿勢推定を使用して、(再)投影画素値を差し引くことを包含し得る。これは、Huberノルムを使用して正規化され、比較画像ごとに評価されてよく、全誤差は比較画像の組に関する誤差の合計である。測光誤差は、複数の好結果の(再)投影によって重み付けされてよい。奥行き値を選択するために、最小の測光誤差が見つかるまで、異なる奥行き値に関する1組の測光誤差dが探索されてよく、ここにおいて、画素に対して、最小の測光誤差に関連付けられる奥行き値が選択される。
【００９２】
方法800は、それぞれのボクセルが画像間の2乗測光誤差を蓄積する「コストボリューム」を使用するように見られ得る。方法800は、R. A. Newcombe、S. Lovegrove、およびA. J. Davison、「DTAM: Dense Tracking and Mapping in Real-Time」、International Conference on Computer Vision (ICCV)の論文集、2011年、によって説明されている方法の適用と見なされ得る。
【００９３】
特定の事例では、図8における800などの方法を適用するとき、滑らかで全面的に稠密な奥行きマップを得るために正規化コスト項が適用されてよい。この正規化は、Huber Rudin-Osher-Fatemi (ROF) Total Variation (TV) L1正規化器(regulariser)を使用して遂行され得る。しかしながら、これは、特定の画像領域が、奥行き推定に向けて悪く条件付けられる問題の原因となることがある。たとえば画像領域に質感がない場合、こうなる可能性がある。これらの画像領域は、正規化を適用しても奥行き値推定の信頼性が低くなる可能性がある。このことに基づき、特定の実装形態では、推定された奥行き値に対して1つまたは複数の分散測度が決定され、次いで、推定された奥行き値をフィルタリングするためにこれらの分散測度が使用され、部屋の形状推定は、フィルタリングされた奥行き値に基づく。これは、次いで、たとえば奥行き値のサブセットのみが使用される「準稠密な」表現の形態といった、有益な、または正確な奥行き情報のみを抽出するように働く。これによって、正規化を遂行する必要性が緩和され得、したがって方法が簡単になって、計算条件が低減される。また、Huber ROF TV L1正規化器などの正規化器を使用すると、たとえば(空)部屋における開口部のない壁を表す、かなりの数の質感がない領域を有する空間において、性能低下の原因となり得、かつ/または過剰平滑化の原因となり得る。本明細書で説明されたような「準稠密な」手法を使用することにより、高度な確信度または信頼性を有する正確な(たとえば「信じられる」)測定値のみが使用される。これは、空室または開口部のない壁もしくは隔壁を有する部屋など、(たとえば画素変化によって表されるような)実質的な質感がない広い領域を有する空間の中でさえ優れた性能をもたらす。試験では、多くの環境が、信頼性の低い測定値を有する3次元奥行きマップのかなりの割合をもたらすことが見いだされた。この例の方法を使用することにより、これらの信頼性の低い測定値は使用されず、部屋の形状推定はより信頼できる。
【００９４】
図8の例では、推定された奥行き値をフィルタリングするかまたは選択するステップは、参照画像に関して計算された画素の奥行き値のサブセットのみを選択するステップを含み得る。特定の事例では、分散測度は、参照画像に関連した画素の奥行き測定値の標準偏差を含む。これらの事例では、推定された奥行き値をフィルタリングするステップは、所定の閾値未満である標準偏差値を有する奥行き推定を使用するステップを含む。
【００９５】
図9Aは例示の画像部分900を示す。画像部分900は、本明細書で説明されたようなアンラップされたパノラマ画像(たとえば参照画像)の一部分を形成し得る。画像部分900は、第1の領域910および第2の領域920といった2つの強調された領域を有する。第1の領域910は、比較的滑らかで質感がなく(たとえば質感が低く)、デスクユニットの壁の後部の画像を取り込んだものである。そのため、第1の領域910は、正確な奥行き測定を生成しない可能性がある。第2の領域920は、正確な奥行き測定を生成するのに使用され得る細部(たとえば高い質感)を有する。図9Aにおいて、第2の領域920は、書棚の一部分の画像を取り込んだものである。これら2つの領域910、920は、それぞれのコストボリュームの奥行きサンプリングにおいて異なるエネルギー応答を有する。
【００９６】
1つの事例では、奥行き推定の標準偏差は、コスト関数にグラフを当てはめることによって推定され得る。図9Bは、図9Aの2つの領域910、920に関するコスト関数の出力930を示す。コスト関数値は、x軸上の奥行き値(たとえばd値またはz値)に対してy軸上にプロットされている。第1の領域910に関して第1の出力940が示されている。見られるように、第1の出力940は、約0.025から0.005へほぼ直線状に及ぶ比較的小さいコスト関数値を有する。次いで、第2の領域920に関して第2の出力950が示されている。見られるように、第2の出力950は第1の出力940と異なり、コスト関数は、約20のz値のあたりにくぼみがあって、0.1のコスト値のあたりへ変化する。
【００９７】
前述の方法では、奥行き値は、コスト関数の最小値を選択することによって推定され得る。図9Bに見られるように、比較的平坦な第1の出力940についてはこれが困難である。しかしながら、第2の出力950については、奥行き値20のあたりに明瞭な最小値がある。第1の出力940および第2の出力950の各々に放物線関数を当てはめることにより、奥行き推定に使用され得る最小値を決定すること、ならびに奥行き推定をフィルタリングするために使用され得る標準偏差を決定することが可能になる。その上、放物線関数を当てはめると、(たとえば放物線の最小値が連続値として選択され得るので)サブ画素の奥行き解明が可能になる。図9Bは、第1の出力940に対して当てはめられた第1の放物線945と、第2の出力に対して当てはめられた第2の放物線955とを示す。コスト関数の出力に対して2次関数を当てはめることにより、放物線の形状が、「a」パラメータの形態の関数(たとえばy=ax2+bx+c)で決定されてよい。これから、逆奥行き領域における画素の標準偏差は、「a」パラメータの平方根の逆数として計算され得る。次いで、これは、奥行き推定(たとえば当てはめられた2次関数の最小値に関連したサブ画素奥行き値)の平方で割ることにより、奥行き領域における標準偏差に変換され得る。この例では2次関数/放物線関数が使用されているが、他の例では、画像の性質に依拠して、代わりに他の適切な関数が当てはめられてよい。奥行き領域における標準偏差の演算に続いて閾値が適用されてよく、所与の閾値を超えた標準偏差を有する奥行き推定は、後の処理については破棄される(たとえばフィルタリングされる)。1つの事例では、閾値適用は、画像領域の特定の割合(たとえば50%)を保つように適用されてよい。奥行き値(たとえば参照画像の画素に関連した奥行き値)のフィルタリングに続いて、たとえば前記画素のサブセットに対応する奥行き値のサブセットが残り、したがって、「準稠密な」奥行きマップをもたらす。特定の実装形態では、奥行きが逆形式で表されてよく、かつ/または奥行き範囲が複数(たとえば1つの試験例では64)のコストボリュームビンの中へサンプリングされてよい。特定の事例では、誤差関数を最適化するとき遂行される奥行きマップの比較は、フィルタリングされた奥行き値に対して遂行されてよく、
たとえば奥行きマップにおける閾値適用で除外された特定の奥行き値は部屋寸法を計算するのに使用されない。
【００９８】
特定の事例では、全方向カメラが、広範囲の移動中に、広い視野をカバーし、対応の容易さをもたらす一方で、説明された例は、そのようなデバイスを使用するとき経験される可能性がある、比較的小さい角度分解能および較正することが困難な投影特性の影響を最小化するものである。上記で説明された処理方法は、多方向カメラに伴って見いだされた、斬新なジオメトリを使用する作業方法を実装することの課題を克服するものである。本明細書で説明された特定の例では、特徴に基づく照合およびバンドル調整のプロシージャが、それぞれの画像の姿勢の正確な推定をもたらす。次いで、これらは、たとえば100〜160のフレームに基づいて全方向の光整合性(photoconsistency)コストボリュームを構築するために使用される。コストボリュームは、稠密な3次元頂点マップに変換され得る全方向奥行きマップを生成するために使用される。本明細書で説明された特定の例により、質感がない領域を有する空間における、屋内のパッシブな再構成が可能になり、正規化を適用しても奥行きの信頼性が低い、不完全に推定された領域を有する、全方向の奥行きマップ(および対応する稠密な3次元のジオメトリ推定)の問題が最小化される。これらの例では、奥行きの標準偏差は、コストボリュームデータと、抽出専用の準稠密な高品質の情報に対して適用される閾値とから推定され得る。このプロシージャにより、さらに、正規化が不要になる。特定の比較の方法によって奥行き推定が可能になるが、これらは、一般的には、奥行きカメラ、レーザスキャナまたは立体視システムなどの高度なハードウェアを必要とする。本明細書で説明された特定の例は、標準的なRGBのパッシブなカメラデバイスを使用するナビゲーションのために情報を提供するという課題を克服するものである。
【００９９】
＜例示の機械可読命令＞
本明細書で説明された特定のシステム構成要素および方法は、非一時的記憶媒体に記憶可能なコンピュータプログラムコードによって実装され得る。図10は、コンピュータ可読記憶媒体1020からデータを取り出すように構成された少なくとも1つのプロセッサ1010を含むシステムの特定の例1000を示す。このシステムは、サーバコンピュータデバイスもしくはモバイルコンピュータデバイスの一部分、または上記で説明されたようなロボットデバイスの一部分を備え得る。コンピュータ可読記憶媒体1020には、1組のコンピュータ可読命令1030が記憶されている。この例のコンピュータ可読記憶媒体1020は、画像データのフレーム1040およびフロアプラン1050を記憶するようにも構成されている。他の例では、コンポーネント1030、1040および1050は分離した媒体に記憶され得る。1つまたは複数の部屋について、フロアプラン1050は、たとえば図3Aおよび図3B、または図13A〜図13Cに図解されているように部屋寸法を含み得る。1つの事例では、ルームプランは、住宅または事務所などの建物における複数の部屋寸法を定義してよい。
【０１００】
使用において、少なくとも1つのプロセッサ1010は、命令1030を処理するためにメモリにロードするように構成されている。命令1030は、少なくとも1つのプロセッサ1010に、一連のアクションを遂行させるように構成されている。これらのアクションには、プロセッサが、命令1060において、単眼の多方向カメラから一連のフレーム1040を受け取るものが含まれる。この例では、多方向カメラは、空間に対する移動面内の別々の角度位置において取り込まれた一連のフレームの各々の画像データを取り込むように構成されている。これらのアクションには、プロセッサが、命令1065において、一連のフレームにわたって検知された特徴を照合することにより、それぞれのフレームに関してカメラの配置および向きの推定を決定するものがさらに含まれる。命令1070は、次いで、一連のフレームにわたって、カメラの配置および向きの推定ならびに検知された特徴をバンドル調整して、カメラの配置および向きの推定の最適化された組を生成することを含む。
【０１０１】
バンドル調整に続いて、命令1075が、一連のフレームから参照フレームを決定するアクションをもたらす。参照フレームは、関連する基準の配置および基準の向き(すなわち関連する姿勢)を有する。次いで、命令1080が、参照フレームの画素値と、参照フレームと重なる1組の比較画像からの投影画素値との間の測光誤差関数を評価するアクションをもたらす。この場合、前記投影画素値は、カメラからの物体距離と、カメラの配置および向きの推定の最適化された組との関数である。命令1085によって、プロセッサ1010は、評価された測光誤差関数に基づき、参照フレームの異なる画素列に対応する異なる角度位置に関する表面の距離の第1の組を決定するように構成される。次いで、命令1090によって、プロセッサは、表面の距離の第1の組と、3次元ボリュームに基づいて決定された表面の距離の第2の組との間の誤差を最適化することにより、基準の配置を囲む3次元ボリュームの平坦な長方形断面のパラメータを決定するように命令される。命令1095によって、プロセッサは、平坦な長方形断面に関して決定されたパラメータを使用して空間のフロアプラン1050を決定するように命令される。そのため、機械可読命令1030は、たとえばロボットデバイスのファームウェアの一部分として、前述の特定の例を遂行するように使用され得る。
【０１０２】
特定の事例では、単眼の多方向カメラが全方向カメラを備え、各フレームが、アンラップされた全方向画像を含む。全方向カメラはパノラマ環状レンズを備え得る。一連のフレームは、空間の内部で円周方向に移動する可動ビデオカメラから受け取られ得る。
【０１０３】
特定の事例では、複数の平坦な長方形断面のパラメータを決定するためにこれらの命令が繰り返される。この場合、フロアプランを決定するための命令は、複数の平坦な長方形断面の結合に基づいて少なくとも1つの部屋に対するフロアプランを決定するための命令を含む。これは、以下の図13Cを参照しながらより詳細に説明される。別の事例では、これらの命令には、複数の平坦な長方形断面の空間的重なりを決定して、空間的重なりに基づいて空間の部屋境界を決定するための命令が含まれる。たとえば、重なりが所定の量よりも大きいと決定された各ボックスは、同一の部屋の別々の部分と見なされ、比べてみると、重なりが所定の量未満であると決定された各ボックスは、異なる部屋に関係するものと見なされる。それ故に、断面の結合は、重なり値に基づいて実行されてよい。
【０１０４】
＜非対称な損失関数＞
図11は例示の非対称な損失関数を示す。この損失関数は、上記で説明された関数「F」として使用され得る。図11において、損失関数は、2つのパラメータcnおよびcPならびに誤差eによって定義される非対称なコーシーの損失関数を含み、誤差は、上記で説明されたようにdbとdmの間の誤差である。たとえば、損失関数は次式で定義され得る。
【０１０５】
【数２】
2019523496.tif 000004
【０１０６】
この非対称な関数は、奥行き値の第1の組(たとえばブロック630または奥行き推定器540からもの)が奥行き値の第2の組(たとえばモデル化されたボリュームへのレイトレーシングからのもの)よりも大きいとき、奥行き値の第1の組が奥行き値の第2の組よりも小さいときと比較して、より大きい値を返す。これは、当てはめられたボリュームによる予測よりも遠くにある奥行きデータ(たとえばブロック630または奥行き推定器540からのもの)がより注目されるように選択されており、すなわち、当てはめられたボリュームによる予測よりも(家具または他の散乱物によって)カメラデバイスに近い奥行きデータは、あまり注目されない。
【０１０７】
＜別のシステムの例＞
図12が示す例示のシステム1200が有する複数のデバイスは、図4A、図4Bの空間推定器430、435または図5のシステム510などの出力を使用し得る。図12は、空間推定器1220に対して通信可能に結合されたロボットデバイス1210を示す。空間推定器は、部屋データベース1230に対して通信可能に結合されている。図12は、部屋データベース1230にアクセスするように構成された部屋分類器1240およびモバイルコンピュータデバイス1250を示す。
【０１０８】
図12のロボットデバイス1210は、動作において、図2Aまたは図2Bに示されたような移動を遂行するように構成されている。別の実装形態では、ロボットデバイス1210の機能はモバイルコンピュータデバイス1250に内蔵されてよい。ロボットデバイス1210は、画像データを取得して、このデータを空間推定器1220へ通信するように構成されている。図12では、空間推定器1220はサーバコンピュータデバイスである。別の事例では、空間推定器1220は、ロボットデバイス1210の組込みコントローラの一部分を形成してよい。空間推定器1220は、ロボットデバイス1210からの画像データに基づく1つまたは複数の部屋寸法を出力するように構成されている。部屋寸法は、長方形の部屋モデルの長さの値と幅の値の組を含み得る。たとえば長方形を結合して形成された複雑な部屋形状については、部屋寸法は、総体として不規則な多角形を指定する1組のライン定義を含み得る。図12では、部屋データベースは、空間推定器1220からの部屋寸法を記憶する。
【０１０９】
部屋データベース1230からのデータは、部屋分類器1240およびモバイルコンピュータデバイス1250によってアクセスされてよく、かつ/または変更されてよい。部屋分類器1240は、決定が可能であれば、部屋データベース1230に記憶された部屋寸法に基づいて部屋クラスを決定するように構成されている。たとえば、部屋分類器1240は、ラベルが付いた部屋データ、すなわち部屋クラスを伴う寸法の組(たとえば[W=3、L=4、C=「居間」])に対して訓練される機械学習アルゴリズムを含み得る。たとえば、ロボットデバイス1210がロボット掃除機などの家庭用ロボットを備える場合、ユーザの第1の組は、モバイルコンピュータデバイス1250に表示された、ラベルが付いていないルームプラン1260に対して、部屋クラスを手動で対応付けてよい。次いで、ユーザの第1の組からの適切に匿名化されたラベル付きデータが、部屋分類器1240を訓練するのに使用されてよい。次いで、部屋分類器1240は、ユーザの第2の組について、可能性の高い部屋クラスを予測可能になり得る。1つの事例では、たとえば部屋クラスのラベルがユーザによって確認されるかまたは適用されるので、部屋分類器1240の訓練がオンラインで行われ得る。1つの事例では、部屋分類器1240は、ユーザに対して、最も可能性の高い部屋クラスのラベルをモバイルコンピュータデバイス1250上に表示してよく、ユーザはラベルの適合または不適合を確認することができる。特定の事例では、部屋クラスが、部屋寸法とともに、部屋データベース1230に記憶されてよい。部屋クラスは、ロボットデバイス1210によって、部屋を進むため、またはあらかじめ記憶された特定の挙動または活動パターンを起動するために使用されてよい。たとえば、家庭用掃除ロボットは、部屋クラスに基づいて、掃除の頻度を調節するかまたは掃除の付属品を適用するように構成されてよい。説明された例示の方法が、たとえば所与の部屋について調和した部屋寸法を与え、部屋寸法のロバストな組を発生するので、部屋分類が可能である。
【０１１０】
図12に示されるように、モバイルコンピュータデバイス1250は、部屋データベース1230からのデータにアクセスし、このデータを使用して、デバイス1250の表示器にルームプラン1260を表現するように構成されてよい。ルームプランは、部屋データベース1230に記憶された寸法に基づいて表現される1つまたは複数の部屋概略図を含み得る。図12では、異なる寸法の3つのボックスが表示器上に示され、家屋または事務所における3つの個別の部屋の寸法を示している。ルームプランは、複数の異なる床を含み得る。ルームプランは、各部屋の部屋クラスのラベルも表示してよい。
【０１１１】
＜例示の断面＞
図13A〜図13Cは、本明細書で説明された方法およびシステムを使用して決定された複数の例示の断面を示す。これらの断面は、ルームプランまたはフロアプランを表し得るものである。
【０１１２】
図13Aが示す一例1300では、囲まれた空間1320の形状に方形断面1310が当てはめられている。方形断面1310は幅1312と長さ1314の形の寸法を有する。これらの寸法は、(たとえば図3Aを参照しながら上記で説明されたように)カメラデバイスの基準位置から方形断面1310の辺までの最適化された距離から計算され得る。図13Aの方形断面1310は、わずかな回転角も有する。
【０１１３】
図13Bおよび図13Cが示す例1302および1304では、単眼の多方向カメラデバイスの間隔をおいた複数の移動のために、前述の方法が繰り返される。これらの移動は円形でよい。次いで、これが寸法推定の複数の組を発生する。これらは、部屋境界の決定および/または複雑な形状の当てはめに使用され得る。
【０１１４】
図13Bでは、2つの長方形1315および1325の寸法を決定するために2つの移動が達成される。この場合、囲まれた空間は、たとえばドアまたは共通の開口1340によって連結された2つの部屋1330および1335を含む。ロボットデバイスは、部屋1335において1つの移動を遂行し、部屋1330において別の移動を遂行してよい。次いで、2つの長方形1315および1325の寸法を決定するために図6の方法が2回繰り返され得る。この場合、長方形の重なりが決定される。重なりの量は、両方の長方形によって共有される、両方の長方形を結合した合計面積の割合に基づいて計算されてよい。あるいは、重なりの量は、1つの長方形の、別の長方形と共有される最高の割合の面積に基づいて決定されてもよい。たとえば、図13Bでは、共有される面積の合計は0%である。次いで、囲まれた空間内部の部屋境界を決定するのに重なりが使用される。1つの事例では、重なりが所定の閾値(たとえば5%の共有面積)未満であると、複数の長方形は、図13Bに示されるように、空間内部のそれぞれの複数の部屋に関連するものと決定される。この場合、各寸法は、1230などの部屋データベースに、個別の部屋の記録として記憶されてよい。
【０１１５】
図13Cは、重なりが所定の閾値を上回る事例を示す。図13Cは、(たとえば4つよりも多くの辺および/または90度未満もしくは90度より大きい角をなす辺の)複雑な形状を有する十字形の部屋1345を示す。この場合、ロボットデバイスは、4つの個別の運動を達成して、4つの個別の長方形1350、1352、1354および1356の寸法を決定する。重なりは、この場合、対の長方形に対して繰り返し決定されてよい。たとえば、長方形1350と1352が比較されて、所定の閾値よりも大きい共有面積(この場合約40%であって5%の閾値よりも大きい)を有すると決定され得る。したがって、これらの長方形は、複雑な形状を発生するために、たとえば長方形の面積のブール和を計算することによって融合されてよい。次いで、この組み合わされた形状が長方形1354と比較され、閾値との比較に基づいて再び融合される。最後に、結果として生じる複雑な形状と長方形1356を使用して、類似の比較が遂行されてよく、次いで、共有面積が閾値よりも大きいので、長方形1356が接合されてよい。この繰返しの結果は、部屋1345の複雑な形状と一致する複雑な形状1360である(明瞭さのために間隔を空けて示してある)。重なりを比較して形状を結合するこの方法により、より複雑な部屋の大規模な部屋マッピングが可能になり得る。この方法は、ロボットデバイスによる活動的な調査を通じて、複雑な形状が形成されるまで、漸進的なやり方で(たとえば長方形ごとに)遂行され得る。この複雑な形状は、部屋形状に基づく、より正確な分類のために、部屋分類器1240に対して入力として供給されてよい。
【０１１６】
本明細書で説明された特定の例は、全方向カメラを装備した小さな移動ロボットによって実施され得る、部屋サイズの推定手法を提供するものである。この手法は、合成の奥行きデータおよび実際の家庭および事務所の環境を含むデータセットの範囲に関するロバストで正確な部屋寸法の推定をもたらした。本明細書で説明された方法およびシステムは、家庭ロボットの組込み型プロセッサにおいて容易に実施され得、リアルタイムのフレームレートで動作する必要はない。これらの例は、短距離の赤外線センサからのデータを使用して自由空間および障害物を感知する比較対象のシステムに対する改善を提供するものである。これら比較対象のシステムは、空間の全域を(たとえば掃除したり障害物を回避したりして)苦労して調査することによって囲まれた空間の寸法の推定を決定することしかできない。簡単な操作中にロボットデバイスによって取り込まれた全方向画像に対して画像処理パイプラインを適用することにより、この例は、一般的な部屋の全体的な形状の推定を可能にするものである。次いで、記憶された部屋寸法により、追加のセンサまたはインフラストラクチュアの必要性なしで、小さなロボットデバイスから、賢い高レベルの挙動が可能になり得る。たとえば、ロボット掃除デバイスは、置かれた部屋の全体的なサイズ、形状、境界および同一性を認識し得、たとえば部屋サイズまたはタイプに基づく複雑な掃除パターンを許容する。本明細書で決定された特定の奥行きマップの全方向の完全性により、低次元の部屋モデルを、実際の現場において、ある範囲の撮像条件の寛容なやり方で、奥行きデータに当てはめることができる。
【０１１７】
上記の例は例示として理解されるべきである。さらなる例が構想される。1つの事例では、ロボットデバイスは、上記の例で説明された(RGB)画像センサに加えて奥行きセンサを備え得る。奥行きセンサは、単眼の多方向カメラデバイスの一部分を備え得る。この場合、一連のフレームが画像データおよび奥行きデータを含み得る。次いで、奥行きデータは、画像データとともに、奥行き値を推定するため、すなわち物体距離を決定するために使用され得る。たとえば、奥行きデータは、ボリューム関数の内部の追加の制約として使用されてよい。奥行きセンサは、説明された単眼の画像ばかりでなく、奥行き画像または点クラウドも供給するように使用され得る。1つの事例では、図11の非対称な関数は、コスト関数の各係数を交換することによって変更され得る。これは、グラフ1110を、水平に(すなわちx=0のまわりで)効果的にひっくり返す。これにより、この方法は、最も外側の断面ではなく最も内側の断面の当てはめを決定するように変更される。これは自由空間の推定と見なされ得る。任意の一例に関連して説明された任意の特徴は、単独で使用されてよく、説明された他の特徴と組み合わせて使用されてもよく、また、例のうち任意の他のものの1つまたは複数の特徴、あるいは例のうち任意の他のものの組合せの1つまたは複数の特徴と組み合わせて使用されてもよいことを理解されたい。その上、上記で説明されていない等価物および修正形態も、添付の特許請求の範囲において定義される本発明の範囲から逸脱することなく採用され得る。
【符号の説明】
【０１１８】
100  第1の例
105  試験ロボットデバイス、ロボットデバイス
110  単眼の多方向カメラデバイス、カメラデバイス
115  移動アクチュエータ
120  コントローラ
125  フリーホイール
150  別の例
155  掃除ロボットデバイス、ロボットデバイス
160  カメラデバイス
165  移動アクチュエータ
170  コントローラ
175  フリーホイール
180  掃除要素
185  ローラーもしくはブラシ
200  運動
205  ロボットデバイス
210  空間
220  物体、物理的物体
230  点
240  移動
250  運動
255  空間
260  隔壁
270  移動
280  移動
290  移動
300  多角形断面
302  辺
304  辺
305  ロボットデバイス
306  辺
308  辺
310  多角形断面
320  断面
330  3次元ボリューム
400  処理パイプライン
410  カメラデバイス
415  カメラデバイス
420  画像
425  パノラマ画像、アンラップされた全方向画像
430  空間推定器
435  空間推定器
440  寸法
450  処理パイプライン
460  未加工の全方向画像
470  画像プロセッサ
480  カメラ較正器
485  較正パターン
490  回復された表現
500  一例
510  システム
520  一連の画像
530  姿勢推定器
540  奥行き推定器
550  寸法推定器
560  寸法推定器
600  方法
700  方法
800  方法
900  画像部分
910  第1の領域
920  第2の領域
930  出力
940  第1の出力
945  第1の放物線
950  第2の出力
955  第2の放物線
1000  特定の例
1010  プロセッサ
1020  コンピュータ可読記憶媒体
1030  コンピュータ可読命令
1040  画像データのフレーム
1050  フロアプラン
1060  命令
1065  命令
1070  命令
1075  命令
1080  命令
1085  命令
1090  命令
1095  命令
1110  グラフ
1200  システム
1210  ロボットデバイス
1220  空間推定器
1230  部屋データベース
1240  部屋分類器
1250  コンピュータデバイス
1260  ルームプラン
1300  一例
1310  方形断面
1312  幅
1314  長さ
1315  長方形
1320  囲まれた空間
1325  長方形
1330  部屋
1335  部屋
1340  開口
1345  部屋
1350  長方形
1352  長方形
1354  長方形
1356  長方形
【図１Ａ】
2019523496.tif 000005
【図１Ｂ】
2019523496.tif 000006
【図２Ａ】
2019523496.tif 000007
【図２Ｂ】
2019523496.tif 000008
【図３Ａ】
2019523496.tif 000009
【図３Ｂ】
2019523496.tif 000010
【図３Ｃ】
2019523496.tif 000011
【図４Ａ】
2019523496.tif 000012
【図４Ｂ】
2019523496.tif 000013
【図５】
2019523496.tif 000014
【図６】
2019523496.tif 000015
【図７】
2019523496.tif 000016
【図８】
2019523496.tif 000017
【図９Ａ】
2019523496.tif 000018
【図９Ｂ】
2019523496.tif 000019
【図１０】
2019523496.tif 000020
【図１１】
2019523496.tif 000021
【図１２】
2019523496.tif 000022
【図１３Ａ】
2019523496.tif 000023
【図１３Ｂ】
2019523496.tif 000024
【図１３Ｃ】
2019523496.tif 000025
【国際調査報告】
2019523496.tif 000026
2019523496.tif 000027