(57)【要約】  本明細書において説明される特定の例は、3D空間のマップを作成するのに好適な装置および技術に関する。例においては、高さマップが、少なくとも1つの撮像デバイスから提供された深度マップおよびカメラ姿勢入力からリアルタイムで生成される。高さマップは、ロボティックデバイスによって空間のナビゲーション可能な部分を決定するための空き空間マップを生成するために処理され得る。
2019520633.tif 000002
【特許請求の範囲】
【請求項１】
観察された3D空間のマップを作成するための装置であって、
前記空間に関するサーフェスモデルを生成するように構成されたマップ作成エンジンと、
前記空間に関する測定された深度マップを取得するための深度データインターフェースと、
前記測定された深度マップに対応する姿勢を取得するための姿勢データインターフェースと、
ディファレンシャブルレンダラであって、
前記サーフェスモデルおよび前記姿勢データインターフェースからの前記姿勢の関数として予測された深度マップをレンダリングし、
前記サーフェスモデルの幾何学形状に関する予測された深度値の偏導関数を計算するように構成された、ディファレンシャブルレンダラとを含み、
前記マップ作成エンジンが、
前記予測された深度マップと前記測定された深度マップとの間のコスト関数を評価し、
前記ディファレンシャブルレンダラからの前記偏導関数を使用して前記コスト関数を小さくし、
前記小さくされたコスト関数に関する幾何学形状パラメータを使用して前記サーフェスモデルを更新するようにさらに構成される、装置。
【請求項２】
前記ディファレンシャブルレンダラおよび前記マップ作成エンジンが、
前記更新されたサーフェスモデルを使用して前記予測された深度マップを再レンダリングすることと、
前記コスト関数を小さくすることと、
前記サーフェスモデルを更新することとによって前記サーフェスモデルを反復的に最適化するようにさらに構成される請求項1に記載の装置。
【請求項３】
前記深度マップの最適化が所定の閾値に収束するまで、前記ディファレンシャブルレンダラおよび前記マップ作成エンジンが前記サーフェスモデルを反復的に最適化し続ける請求項2に記載の装置。
【請求項４】
前記サーフェスモデルが、決まったトポロジーの三角形メッシュを含む請求項1から3のいずれか一項に記載の装置。
【請求項５】
前記サーフェスモデルが、前記空間内の基準平面に対する1組の高さ値を含む請求項1から4のいずれか一項に記載の装置。
【請求項６】
前記マップ作成エンジンが、前記基準平面に関連する前記3D空間内のナビゲーション可能な空間を計算するために前記高さ値に閾値の制限を適用するようにさらに構成される請求項5に記載の装置。
【請求項７】
前記マップ作成エンジンが、少なくとも前記サーフェスモデルおよび前記姿勢をパラメータとして与えられると、サンプリングされた変数として前記空間の深度マップを与える生成モデルを実装する請求項1から6のいずれか一項に記載の装置。
【請求項８】
前記マップ作成エンジンが、
前記コスト関数の反復的な最小化の後に、測定された深度マップ値と対応するレンダリングされた深度マップ値との間の差に基づいて誤差を線形化し、
前記サーフェスモデルの少なくとも1回のその後の再帰的更新において前記線形化された誤差の項を使用するようにさらに構成される請求項3から7のいずれか一項に記載の装置。
【請求項９】
深度データおよび画像データのうちの1つまたは複数を含む複数のフレームを記録するための少なくとも1つの撮像デバイスと、
フレームのシーケンスから深度マップを決定するための深度マッププロセッサと、
フレームの前記シーケンスから前記少なくとも1つの撮像デバイスの姿勢を決定するための姿勢プロセッサと、
請求項1から8のいずれか一項に記載の装置であって、
前記深度データインターフェースが、前記深度マッププロセッサに通信可能に結合され、
前記姿勢データインターフェースが、前記姿勢プロセッサに通信可能に結合される、装置と、
前記3D空間内でロボティックデバイスを動かすように構成された1つまたは複数の移動アクチュエータと、
前記1つまたは複数の移動アクチュエータを制御するように構成されたコントローラであって、前記3D空間内で前記ロボティックデバイスをナビゲートするために前記マップ作成エンジンによって生成されたサーフェスモデルにアクセスするように構成される、コントローラとを含むロボティックデバイス。
【請求項１０】
吸引システムをさらに含む請求項9に記載のロボティックデバイス。
【請求項１１】
前記コントローラが、前記マップ作成エンジンによって生成された前記サーフェスモデルに従って前記吸引システムを選択的に制御するように構成される請求項10に記載のロボティックデバイス。
【請求項１２】
前記撮像デバイスが、単眼カメラである請求項9から11のいずれか一項に記載のロボティックデバイス。
【請求項１３】
3D空間のモデルを生成する方法であって、
前記空間に関する測定された深度マップを取得するステップと、
前記測定された深度マップに対応する姿勢を取得するステップと、
前記空間に関する初期サーフェスモデルを取得するステップと、
前記初期サーフェスモデルおよび前記取得された姿勢に基づいて予測された深度マップをレンダリングするステップと、
前記サーフェスモデルの幾何学形状パラメータに関する深度値の偏導関数を、前記予測された深度マップの前記レンダリングから取得するステップと、
少なくとも前記レンダリングされた深度マップと前記測定された深度マップとの間の誤差を含むコスト関数を、前記偏導関数を使用して小さくするステップと、
前記小さくされたコスト関数からの前記幾何学形状パラメータの値に基づいて前記初期サーフェスモデルを更新するステップとを含む、方法。
【請求項１４】
前記方法が、反復的に繰り返され、
前記更新されたサーフェスモデルおよび前記取得された姿勢に基づいて再レンダリングすることによって前記予測された深度マップを最適化し、
前記更新されたサーフェスモデルの前記幾何学形状パラメータに関する更新された深度値の更新された偏導関数を取得し、
少なくとも前記更新されたレンダリングされた深度マップと前記測定された深度マップとの間の誤差を含むコスト関数を、前記更新された偏導関数を使用して最小化し、
前記最小化されたコスト関数に関する前記幾何学形状パラメータに基づいて前記サーフェスモデルを更新する請求項13に記載の方法。
【請求項１５】
前記深度マップの前記最適化が所定の閾値に収束するまで反復的に継続する請求項14に記載の方法。
【請求項１６】
前記空間に関する観察された色マップを取得するステップと、
前記空間に関する初期外観モデルを取得するステップと、
前記初期外観モデル、前記初期サーフェスモデル、および前記取得された姿勢に基づいて予測された色マップをレンダリングするステップと、
前記外観モデルのパラメータに関する色値の偏導関数を、前記予測された色マップの前記レンダリングから取得するステップと、
少なくとも前記レンダリングされた色マップと測定された色マップとの間の誤差を含むコスト関数を、前記偏導関数を使用して最小化すること、および
前記最小化されたコスト関数からの前記外観モデルの前記パラメータに関する値に基づいて前記初期外観モデルを更新すること
によって前記レンダリングされた色マップを反復的に最適化するステップとをさらに含む請求項13から15のいずれか一項に記載の方法。
【請求項１７】
前記サーフェスモデルが、決まったトポロジーの三角形メッシュを含み、前記幾何学形状パラメータが、少なくとも、前記空間内の基準平面の上の高さを含み、前記三角形メッシュ内の各三角形が、3つの関連する高さの推定値を含む請求項13から16のいずれか一項に記載の方法。
【請求項１８】
前記コスト関数が、前記三角形メッシュ内の各三角形に適用される多項式関数を含む請求項17に記載の方法。
【請求項１９】
前記予測された深度マップが、逆深度マップを含み、前記予測された深度マップの所与のピクセルに関して、前記サーフェスモデルの幾何学形状パラメータに関する前記所与のピクセルに関連する逆深度値に関する偏導関数が、前記三角形メッシュ内の三角形の頂点のそれぞれの高さに関する前記逆深度値の1組の偏導関数を含み、前記三角形が、前記所与のピクセルを通過するレイと交差する三角形である請求項17または請求項18に記載の方法。
【請求項２０】
前記コスト関数が、線形化された誤差の項の関数を含み、前記誤差の項が、前記レンダリングされた深度マップと前記測定された深度マップとの少なくとも1回の以前の比較の結果得られ、前記誤差の項が、前記偏導関数から線形化される請求項14から19のいずれか一項に記載の方法。
【請求項２１】
前記コスト関数を小さくすることによってサーフェスモデルを更新するステップが、勾配降下法を使用することを含む請求項13から20のいずれか一項に記載の方法。
【請求項２２】
前記3D空間に関する前記サーフェスモデルから1組の高さ値を決定するステップと、
前記1組の高さ値に従ってロボティックデバイスに関する活動プログラムを決定するステップとを含む請求項13から21のいずれか一項に記載の方法。
【請求項２３】
プロセッサによって実行されるときに、コンピューティングデバイスに
3D空間に関する観察された深度マップを取得することと、
前記観察された深度マップに対応する姿勢を取得することと、
三角形要素のメッシュを含むサーフェスモデルを取得することであって、各三角形要素が、前記要素の頂点に関連する高さ値を有し、前記高さ値が、基準平面の上の高さを表す、取得することと、
前記サーフェスモデルおよび前記取得された姿勢に基づいてモデルの深度マップをレンダリングすることであって、前記サーフェスモデルの高さ値に関するレンダリングされた深度値の偏導関数を計算することを含む、レンダリングすることと、
前記モデルの深度マップを前記観察された深度マップと比較することであって、前記モデルの深度マップと前記観察された深度マップとの間の誤差を決定することを含む、比較することと、
前記誤差および前記計算された偏導関数に基づいて前記サーフェスモデルに対する更新を決定することとを行わせるコンピュータ実行可能命令を含む非一時的コンピュータ可読ストレージ媒体。
【請求項２４】
前記更新が決定されることに応じて、前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
前記更新に関連する非線形誤差の項を各三角形要素に関連するコスト関数に融合させる請求項23に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項２５】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、最適化が所定の閾値に収束するまで更新されたサーフェスモデルに基づいて更新されたモデルの深度マップをレンダリングすることによって予測された深度マップを反復的に最適化させる請求項23または24に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項２６】
実質的に添付の図面を参照して本明細書において説明されたように観察された3D空間のマップを作成するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、3次元(3D)空間のマップを作成するための技術に関する。本発明は、単眼カメラからの画像のシーケンスに基づいて高さマップを生成することに特に、ただし、限定的でない関連性があり、シーケンスは、3D空間に対するカメラの移動中に撮影されたものである。
【背景技術】
【０００２】
コンピュータビジョンおよびロボティクスの分野においては、室内などの3D空間をナビゲートするために、ロボティックデバイスが、幅広い技術を使用する可能性がある。
【０００３】
単純なナビゲーションソリューションは、制限された知覚および単純なアルゴリズム、たとえば、その後避けられる可能性がある視線内の物体を検出する赤外線または超音波センサーに依拠する可能性がある。
【０００４】
あるいは、より先進的なソリューションは、3D空間のナビゲーションを可能にするために周辺の3D空間の表現を構築するためのツールおよび方法を使用する可能性がある。3D空間の表現を構築するための知られている技術は、「運動からの構造復元(structure from motion)」および「多視点ステレオ(multi-view stereo)」を含む。「疎な(sparse)」として知られる特定の技術は、表現を生成するために、たとえば、10から100個の削減された数の点または特徴を使用する。これらは、何千または何百万個の点を用いて表現を生成する「密な(dense)」技術と対比され得る。概して、「疎な」技術は、制限された数の点または特徴を使用し、したがって、よりリソース集約的な「密な」マップ作成技術に比べて処理の程度を制限するので、リアルタイムで、たとえば、30フレーム毎秒程度のフレームレートで実装するのがより容易である。
【０００５】
「同時位置推定およびマップ作成(Simultaneous Localisation And Mapping)」(SLAM) (J. Engel, T. SchoepsおよびD. Cremers、「LSD-SLAM: Large-scale direct monocular SLAM」、In Proceedings of the European Conference on Computer Vision (ECCV)、2014ならびにR. Mur-ArtalおよびJ. D. Tardos、「ORB-SLAM: Tracking and mapping recognizable features. In Workshop on Multi View Geometry in Robotics (MVIGRO)」- RSS 2014、2014参照)などの技術を中心にして大きな進展がなされたが、より先進的なソリューションは、概して、大量の計算リソースおよび特殊なセンサーデバイス(レーザー検出および測距(LAser Detection And Ranging) - LADER -センサー、構造化された光センサー、または飛行時間深度カメラ(time-of-flight depth camera)など)に依拠し、そのことは、たとえば、比較的低コストの家庭用床掃除ロボットなどの現実の商用ロボティックデバイスを制御するのに資する組み込みコンピューティングデバイスにそれらのより先進的なソリューションを転用することを難しくする。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】J. Engel, T. SchoepsおよびD. Cremers、「LSD-SLAM: Large-scale direct monocular SLAM」、In Proceedings of the European Conference on Computer Vision (ECCV)、2014
【非特許文献２】R. Mur-ArtalおよびJ. D. Tardos、「ORB-SLAM: Tracking and mapping recognizable features. In Workshop on Multi View Geometry in Robotics (MVIGRO)」- RSS 2014、2014
【非特許文献３】J. Zienkiewicz、R. Lukierski、およびA. J. Davison、「Dense, autocalibrating visual odometry from a downward-looking camera」、In Proceedings of the British Machine Vision Conference (BMVC)、2013
【非特許文献４】Tomas MolierおよびBen Trumbore、「Fast, Minimum Storage Ray/Triangle Intersection」、1997
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、低コストのロボティックデバイスに実装され得る密なリアルタイムマップ作成ソリューションが望まれている。
【課題を解決するための手段】
【０００８】
本発明の第1の態様によれば、観察された3D空間のマップを作成するための装置が提供される。装置は、空間に関するサーフェスモデルを生成するように構成されたマップ作成エンジンと、空間に関する測定された深度マップを取得するための深度データインターフェースと、測定された深度マップに対応する姿勢を取得するための姿勢データインターフェースと、ディファレンシャブルレンダラ(differentiable renderer)とを含む。ディファレンシャブルレンダラは、サーフェスモデルおよび姿勢データインターフェースからの姿勢の関数として予測された深度マップをレンダリングし、サーフェスモデルの幾何学形状に関する予測された深度値の偏導関数を計算する。マップ作成エンジンは、少なくとも予測された深度マップと測定された深度マップとの間の誤差を含むコスト関数を評価し、ディファレンシャブルレンダラからの偏導関数を使用してコスト関数を小さくし、小さくされたコスト関数に関する幾何学形状パラメータを使用してサーフェスモデルを更新するようにさらに構成される。好ましくは、ディファレンシャブルレンダラおよびマップ作成エンジンは、更新されたサーフェスモデルを使用して予測された深度マップを再レンダリングし、コスト関数を小さくし、サーフェスモデルを更新するそれらのそれぞれのステップを反復的に繰り返すようにさらに構成される。サーフェスモデルは、(コスト関数の最小化からの)深度マップの最適化が収束するまで更新されることがやはり好ましい。
【０００９】
特定の例において、サーフェスモデルは、決まったトポロジー(topology)の三角形メッシュを含む。さらなる例において、サーフェスモデルは、空間内の基準平面に対する1組の高さ値を含む。
【００１０】
場合によっては、マップ作成エンジンは、基準平面に関連するナビゲーション可能な空間を計算するために高さ値に閾値の制限を適用するようにさらに構成される。
【００１１】
1つの変更形態において、マップ作成エンジンは、少なくともサーフェスモデルおよび姿勢をパラメータとして与えられると、サンプリングされた変数として空間の深度マップを与える生成モデル(generative model)を実装する。
【００１２】
さらなる変更形態において、マップ作成エンジンは、コスト関数の反復的な最小化の後に、測定された深度マップ値と対応するレンダリングされた深度マップ値との間の差に基づいて誤差を線形化し、サーフェスモデルの少なくとも1回のその後の更新において前記線形化された誤差の項を使用するように構成される。線形化された誤差の項は、推定されたサーフェスモデルにおける不確実性の尺度を表す。線形化された誤差の項は、過去の測定値のうちの少なくとも1つおよび典型的には複数からの情報が前の確率の値として使用されることを可能にする再帰的な定式化の使用を可能にする。これらの前の確率の値は、少なくとも1回のその後の更新において計算される残余誤差によって一緒に最小化され得る。
【００１３】
さらなる例において、上述の装置を組み込み、深度データおよび画像データのうちの1つまたは複数を含む複数のフレームを記録するための少なくとも1つの撮像デバイスをさらに含むロボティックデバイスも提供される。ロボティックデバイスは、フレームのシーケンスから深度マップを決定するための深度マッププロセッサと、フレームのシーケンスから少なくとも1つの撮像デバイスの姿勢を決定するための姿勢プロセッサとをさらに含む。装置の深度データインターフェースは、ロボティックデバイスの深度マッププロセッサに通信可能に結合され、装置の姿勢データインターフェースは、ロボティックデバイスの姿勢プロセッサに通信可能に結合される。1つまたは複数の移動アクチュエータが、空間内でロボティックデバイスを動かすように構成され、コントローラが、1つまたは複数の移動アクチュエータを制御するように構成され、空間内でロボティックデバイスをナビゲートするためにマップ作成エンジンによって生成されたサーフェスモデルにアクセスするように構成される。
【００１４】
一例において、ロボティックデバイスは、吸引システムを含み、さらなる例において、コントローラは、マップ作成エンジンによって生成されたサーフェスモデルに従って吸引システムを選択的に制御するように構成される。
【００１５】
場合によっては、撮像デバイスは、単眼カメラである。
【００１６】
本発明の第2の実施形態においては、3D空間のモデルを生成する方法が提供される。方法は、空間に関する測定された深度マップを取得するステップと、測定された深度マップに対応する姿勢を取得するステップと、空間に関する初期サーフェスモデルを取得するステップと、初期サーフェスモデルおよび取得された姿勢に基づいて予測された深度マップをレンダリングするステップと、サーフェスモデルの幾何学形状パラメータに関する深度値の偏導関数を、予測された深度マップのレンダリングから取得するステップと、少なくとも予測された深度マップと測定された深度マップとの間の誤差を含むコスト関数を、偏導関数を使用して小さくするステップと、コスト関数からの幾何学形状パラメータに関する値に基づいて初期サーフェスモデルを更新するステップとを含む。好ましくは、方法は、反復的に繰り返され得、毎回、以前に更新されたサーフェスモデルおよび取得された姿勢に基づいて更新された予測された深度マップをレンダリングし、以前に更新されたサーフェスモデルの幾何学形状パラメータに関する深度値の更新された偏導関数を取得し、少なくとも更新されたレンダリングされた深度マップと測定された深度マップとの間の誤差を含むコスト関数を、更新された偏導関数を使用して最小化することによって更新されたレンダリングされた深度マップを最適化し、最適化の後に最新の深度マップからの幾何学形状パラメータに関する値に基づいて以前のサーフェスモデルを更新する。方法は、最適化が所定の閾値に収束するまで繰り返され得る。
【００１７】
好ましくは、方法は、空間に関する観察された色マップを取得するステップと、空間に関する初期外観(appearance)モデルを取得するステップと、初期外観モデル、初期サーフェスモデル、および取得された姿勢に基づいて予測された色マップをレンダリングするステップと、外観モデルのパラメータに関する色値の偏導関数を、予測された色マップのレンダリングから取得するステップとをさらに含む。レンダリングされた色マップが、予測された色マップと測定された色マップとの間の誤差を含むコスト関数を、偏導関数を使用して最小化することと、反復的な最適化の後に色マップからの外観モデルのパラメータに関する値に基づいて初期外観モデルを更新することとによって反復的に最適化される。
【００１８】
一部の例において、サーフェスモデルは、決まったトポロジーの三角形メッシュを含み、幾何学形状パラメータは、少なくとも、空間内の基準平面の上の高さを含み、三角形メッシュ内の各三角形は、3つの関連する高さの推定値を含む。
【００１９】
その他の場合、コスト関数は、三角形メッシュ内の各三角形に適用される多項式関数を含む。
【００２０】
1つの変更形態において、予測された深度マップは、逆深度マップを含み、予測された深度マップの所与のピクセルに関して、サーフェスモデルの幾何学形状パラメータに関する所与のピクセルに関連する逆深度値に関する偏導関数は、三角形メッシュ内の三角形の頂点のそれぞれの高さに関する逆深度値の1組の偏導関数を含み、前記三角形は、所与のピクセルを通過するレイと交差する三角形である。
【００２１】
その他の変更形態において、コスト関数は、線形化された誤差の項の関数を含み、前記誤差の項は、レンダリングされた深度マップと測定された深度マップとの少なくとも1回の以前の比較の結果得られ、前記誤差の項は、前記偏導関数から線形化される。このようにして、偏導関数内に表された所与の比較からの誤差情報が、その後の比較において使用され得る。たとえば、複数の過去の比較を表す1組の線形化された誤差の項が、現在の比較を表す1組の非線形誤差の項によって一緒に小さくされ得る。
【００２２】
一例において、サーフェスモデルは、勾配降下法を使用してコスト関数を小さくすることによって更新される。
【００２３】
その他の例において、方法は、空間に関するサーフェスモデルから1組の高さ値を決定するステップと、1組の高さ値に従ってロボティックデバイスに関する活動プログラムを決定するステップとをさらに含む。
【００２４】
本発明の第3の実施形態においては、プロセッサによって実行されるときに、コンピューティングデバイスに、3D空間に関する観察された深度マップを取得することと、観察された深度マップに対応する姿勢を取得することと、三角形要素のメッシュを含むサーフェスモデルを取得することであって、各三角形要素が、要素の頂点に関連する高さ値を有し、高さ値が、基準平面の上の高さを表す、取得することと、サーフェスモデルおよび取得された姿勢に基づいてモデルの深度マップをレンダリングすることであって、サーフェスモデルの高さ値に関するレンダリングされた深度値の偏導関数を計算することを含む、レンダリングすることと、モデルの深度マップを観察された深度マップと比較することであって、モデルの深度マップと観察された深度マップとの間の誤差を決定することを含む、比較することと、誤差および計算された偏導関数に基づいてサーフェスモデルに対する更新を決定することとを行わせるコンピュータ実行可能命令を含む非一時的コンピュータ可読ストレージ媒体が提供される。
【００２５】
一例において、コンピュータ実行可能命令は、コンピューティングデバイスに、更新が決定されることに応じて、更新に関連する非線形誤差の項を各三角形要素に関連するコスト関数に融合させる(fuse)。好ましくは、コンピュータ実行可能命令は、コンピューティングデバイスに、最適化が所定の閾値に収束するまで更新されたサーフェスモデルに基づいて更新されたモデルの深度マップを再レンダリングすることによって予測された深度マップを反復的に最適化させる。
【００２６】
本発明のさらなる特徴および利点は、添付の図面を参照してなされる、例としてのみ与えられる、本発明の好ましい実施形態の下の説明から明らかになるであろう。
【図面の簡単な説明】
【００２７】
【図１】例による生成された高さマップのグラフィカルな表現の図である。
【図２】例による3D空間のマップを作成する方法の流れ図である。
【図３】例による観察された3D空間のマップを作成するための装置の概略図である。
【図４】例によるロボティックデバイスの概略ブロック図である。
【図５】例による3D空間のマップを作成する方法の流れ図である。
【図６Ａ】例示的なロボティックデバイスの概略図である。
【図６Ｂ】例示的なロボティックデバイスの概略図である。
【図７Ａ】3D空間の絵で表された例の図である。
【図７Ｂ】対応する空き空間マップの絵で表された例の図である。
【図８】例による非一時的コンピュータ可読媒体の概略ブロック図である。
【図９Ａ】例示的な生成的な画像形成プロセスの概略図である。
【図９Ｂ】例示的なレンダリングプロセスの概略図である。
【図１０】レイ-三角形交差の例の図である。
【発明を実施するための形態】
【００２８】
本明細書において説明される特定の例は、3D空間のマップを作成するのに好適な装置および技術に関する。図1は、例示的な装置および方法によって生成された再構築された高さマップ100の例示的な視覚化である。本発明の好ましい例において、結果として生じるサーフェスモデルは、規則的な2次元(2D)正方形グリッドの上の高さマップ100として定義される決まったトポロジーの三角形メッシュとしてモデリングされる。メッシュのそれぞれの三角形表面要素は、基準平面の上の3つの関連する頂点によって定義される(図10も参照されたい)。サーフェスモデルを三角形メッシュとして形成することによって、サーフェスモデルの三角形メッシュ内の隣接する三角形表面要素が互いに少なくとも2つの頂点を共有するので、データおよび計算の労力が削減され得る。より先進的な実施形態において、高さマップは、3D空間の画像データ(単なる幾何学形状データではない)を組み込むための色情報も含む可能性がある。
【００２９】
一部の例においては、観察された深度マップデータが、高さマップ100をリアルタイムでレンダリング(予測)するために使用される可能性がある。再構築された高さマップ100は、ロボティックデバイスによってナビゲートされ得る3D空間の一部分を決定するための空き空間マップ(図7Aおよび図7Bも参照されたい)を生成するために処理され得る。
【００３０】
マップ作成方法の概要
一例においては、図2に関して、高品質な高さマップの密な再構築の堅牢なリアルタイムの方法200、ならびに3D空間内を移動する、単眼ビデオ入力などの、少なくとも1つの撮像デバイスによって撮影されたフレーム210から計算された測定された深度マップデータ240とカメラ姿勢データ230との両方の積としての対応するサーフェスモデル290が示される。撮影されたフレーム210は、サーフェスモデル290およびカメラの軌跡を再帰的に推定するために使用される。カメラの運動および姿勢(つまり、撮像デバイスの位置および向きに関連する姿勢)データは、J. Zienkiewicz、R. Lukierski、およびA. J. Davison、「Dense, autocalibrating visual odometry from a downward-looking camera」、In Proceedings of the British Machine Vision Conference (BMVC)、2013によって開示された平面密ビジュアルオドメトリ(planar dense visual odometry)に基づくカメラ追跡方法などの知られているカメラ追跡方法を使用して計算され得る(ブロック211)。
【００３１】
それぞれの新しい撮影されたフレーム210に関して、撮像デバイスから3D空間の初期サーフェスモデルデータ290およびカメラ姿勢データ230が与えられると、予測された深度マップ250 (および任意で初期色データが与えられる場合には色マップ)が、ディファレンシャブルレンダリング(differentiable rendering)を使用して観察された3D空間に関してレンダリングされる(ブロック231)。結果として生じるレンダリングされた深度マップ250は、測定された深度マップ240と比較される(ブロック251)。測定された深度マップ240は、撮像デバイスによって撮影された対応する姿勢データ220を有する各画像フレーム210に関して、たとえば、平面走査アルゴリズムを使用することによって(ブロック221において)既に計算済みである。2つの深度マップの間(レンダリングされた深度マップ250対測定された深度マップ240)の非線形誤差260が、計算される。この非線形誤差値260は、レンダリングされた深度マップを最適化し、任意で色マップを最適化するために、ディファレンシャブルレンダリングプロセス(ブロック231)の一部として計算された偏導関数勾配値235を使用して低減される(ブロック261)。好ましい例においては、サーフェスマップ290上の各セルが、最適化された深度マップに従って更新される(ブロック271)。
【００３２】
所与のフレーム210に関する深度マップの最適化(ブロック231、251、261)およびサーフェスモデルに対するその後の更新(ブロック271)は、最適化が「収束する」まで反復的に繰り返される。最適化の収束は、たとえば、レンダリングされた深度マップ250と測定された深度マップ240との間の差が所定の閾値未満になるときである可能性がある。更新されたサーフェスモデル290は、ディファレンシャブルレンダリングを使用して更新された予測された深度マップ250 (および任意で初期色データが与えられる場合は更新された色マップ)をレンダリングする(ブロック231)ために、撮影されたフレーム210に関する元の姿勢データ230とともに使用される。結果として生じる更新されたレンダリングされた深度マップ250が、元の測定された深度マップ240と比較され(ブロック251)、2つの間の非線形誤差260が、コスト関数を小さくする(ブロック261)ために、レンダリングプロセス(ブロック231)から導出された偏導関数勾配値235とともに使用される。このプロセスは、たとえば、コスト関数、またはレンダリングされた深度マップ250と測定された深度マップ240との間の誤差値が所定の閾値を下まわるときに最適化が収束するまで繰り返される。最適化が収束すると、結果として生じる深度マップは、サーフェスモデル290への最新の更新を利用する再帰的な方法で、次のフレーム210が計算される準備ができたサーフェスモデルに「融合」され得る。
【００３３】
上述のカメラ追跡段階(210、211、220、221、230、240)およびマップ作成段階(231、235、250、251、260、261、271、290)は、方法を簡単にするために別々に扱われ得る。第1のステップにおいては、カメラ追跡および姿勢のみが推定され(ブロック211)、その後、現在のフレームに関するレンダリング(ブロック231)および反復的な最適化計算(231、235、250、251、260、261、271、290)の継続時間の間、決まった量として扱われる。
【００３４】
今開示されている方法は、再帰的な非線形最適化問題として扱われ得る。所与のフレーム210に関するレンダリングされた深度マップが(反復的に誤差値を最小化すること/コスト関数を小さくすること  -  ブロック261  -  によって)最適化され、サーフェスモデルが更新される(ブロック271)と、方法は、撮像デバイス(この例においては単眼ビデオデバイス)が3D空間内を移動するときにその撮像デバイスによって撮影されたそれぞれの後続のフレーム210に関して(再帰的に)繰り返される。したがって、それぞれの新しいフレームが到着すると、測定された深度マップ240が、最新のサーフェスモデルの深度データの推定値の生成的なディファレンシャブルレンダリング250と比較され(ブロック251)、適切なベイズ更新(Bayesian update)が、レンダリングされた深度マップに対してなされる。
【００３５】
非線形の残差値は、現在のフレームにおける測定された(逆)深度とレンダリングされた深度マップによって生成された予測された(逆)深度との間の差として定式化される。遠く離れた物体に関する推定された距離値は実質的に無限大である可能性があり、差/誤差計算において問題を引き起こすので、逆深度値(すなわち、1/実際の深度)を計算に利用することがより効率的である可能性がある。逆深度マップを利用することによって、これらの大きな/無限大の深度値は、むしろゼロに向かって小さくされる。
【００３６】
再帰的な定式化を得て、すべての過去の測定値を保持するために、誤差の項が線形化され、現在のフレームに関する残差値(観察された値と推定された値との間の差)によって一緒に最小化される「前の値(prior)」として維持される。
【００３７】
例示的な効率的なディファレンシャブルレンダリングの手法を使用することは、標準的な局所的に推定された深度(および色)の直ちに使用可能な密なモデルへの厳密で漸進的な確率的融合(probabilistic fusion)を可能にする。したがって、単一の前を向いたカメラを使用して精密な自律的ナビゲーションに好適な詳細なマップを提供するので、本装置および方法は、低コストのロボットによる空き空間および障害物のマップ作成のために使用され得る。
【００３８】
マップ作成装置の概要
図3は、この例による装置300を示す。装置は、カメラなどの少なくとも1つの撮像デバイスから取得された深度マップデータおよびカメラ姿勢データから3D空間のリアルタイムサーフェスモデルをレンダリングするように構成される。装置300は、深度マップデータを取得するための深度データインターフェース310と、(撮像デバイスの位置および向きに関連する)姿勢データを取得するための姿勢データインターフェース320とを含む。装置は、マップ作成エンジン330およびディファレンシャブルレンダラ340をさらに含む。深度データインターフェース310は、マップ作成エンジン330に結合され、マップ作成エンジン330に深度マップデータを届ける。姿勢データインターフェース320は、ディファレンシャブルレンダラ340に結合され、ディファレンシャブルレンダラ340に姿勢データを届ける。マップ作成エンジン330およびディファレンシャブルレンダラ340は、互いに通信可能に結合される。
【００３９】
ロボティックデバイスへの装置および方法の組み込み
一部の例において、上述の装置および方法は、図4に示されるように、ロボティックデバイス400内に実装される可能性がある。ロボティックデバイス400は、図3の装置300を組み込み、3D空間の画像データを撮影する、一例においてはカメラである撮像デバイス420をさらに含む。さらなる例において、カメラは、単眼ビデオカメラである。撮像デバイス420は、深度マッププロセッサ430および姿勢プロセッサ440に結合される。深度マッププロセッサ430は、撮影された画像データから深度データを計算し、姿勢プロセッサ440は、対応するカメラ姿勢データ(すなわち、撮像デバイス420の位置および向き)を計算する。深度マッププロセッサ430は、マップ作成装置300の深度データインターフェース310 (図3も参照されたい)に結合される。姿勢プロセッサ440は、マップ作成装置300の姿勢データインターフェース320に結合される。
【００４０】
ロボティックデバイス400は、ナビゲーションエンジン450および移動アクチュエータ460などの移動コントローラも含み得る。移動アクチュエータ460は、たとえば、1つまたは複数の車輪、キャタピラ(track)、および/またはローラーに結合され、3D空間内でロボティックデバイス400を動かすように構成された少なくとも1つの電気モーターを含み得る。
【００４１】
さらに、ロボティックデバイス400のナビゲーションエンジン450は、マップ作成装置300のマップ作成エンジン330とロボティックデバイス400の移動アクチュエータ460との両方に結合される可能性もある。ナビゲーションエンジン450は、3D空間内でのロボティックデバイス450の移動を制御する。動作中、ナビゲーションエンジン450は、3D空間のナビゲーション可能な部分を決定し、任意の障害物を避けるように移動アクチュエータ460に命令するために(図7Aおよび図7Bを参照して後で説明されるように)「空き空間マップ」を使用する。たとえば、ナビゲーションエンジン450は、空き空間マップを実装するデータが記憶されるメモリまたはその他の機械可読媒体を含み得る。
【００４２】
図5は、例による3D空間のマップを作成する方法500の流れ図である。この例において、撮像デバイスは、3D空間内を移動し、サーフェスモデルと、2D基準平面上にある3D物体を含む3D空間内のカメラの軌跡とを再帰的に推定するために使用される複数の画像を撮影する単眼カメラである。この情報は、サーフェスモデルの初期状態/状況として使用され得る。
【００４３】
深度マップは、たとえば、平面走査アルゴリズムを使用して3D空間の取得された画像フレーム210から深度マッププロセッサ430によって測定され、計算され、装置の深度データインターフェース310に伝達される(ブロック510)。
【００４４】
カメラのフレーム毎の運動および姿勢データが、(上で検討された技術を使用して)姿勢プロセッサ440によって計算される。カメラ姿勢データが、マップ作成装置300の姿勢データインターフェース320によって取得され、ディファレンシャブルレンダラ340に転送される(ブロック520)。
【００４５】
図2を参照して上で概略を示されたように、装置300のマップ作成エンジン330は、(主な基準平面があることまたは基準平面の上のカメラの高さなど  -  初期幾何学形状、外観、およびカメラ姿勢値の形態の) 3D空間の状況の予備的推定値を使用して3D空間の初期サーフェスモデルを生成する(ブロック530)。この初期サーフェスモデルは、姿勢データインターフェース320によって取得されたカメラ姿勢データと一緒に、観察されたシーンの予測された深度マップをレンダリングするためにディファレンシャブルレンダラ340によって使用される(ブロック540)。方法の重要な要素は、初期サーフェスモデルおよびカメラ姿勢データを与えられると、ディファレンシャブルレンダラ340が、追加の計算コストをほとんどかけずに、モデルパラメータに関する深度値の(偏)導関数を計算し(ブロック550)、さらにあらゆるピクセルの予測される画像および深度をレンダリングすることができる。これは、装置が並列化を利用することによって勾配に基づく最小化をリアルタイムで実行することを可能にする。フレームのレンダリングされた深度マップは、深度データインターフェース310によって深度マッププロセッサ430から取得された測定された深度マップと直接比較され、2つのマップの間の誤差のコスト関数が、計算される。ディファレンシャブルレンダリングプロセス(ブロック550)によって計算された偏導関数の値は、その後、予測された深度マップ250と測定された深度マップ240との間の差/誤差のコスト関数を小さくし(ブロック560)、したがって、深度マップを最適化するために使用される。初期サーフェスモデルは、小さくされたコスト関数および最適化された深度マップから導出された幾何学形状パラメータに関する値によって更新される(ブロック570)。
【００４６】
更新されたサーフェスモデルは、(ブロック520からの)初期カメラ姿勢データと一緒に、観察されたシーンの更新された予測された深度マップをレンダリングする(ブロック540)ためにディファレンシャブルレンダラ340によってその後使用される。フレームの更新されたレンダリングされた深度マップは、(ブロック510からの)フレームに関する元の測定された深度マップと直接比較され、(2つのマップの間の誤差を含む)コスト関数は、ディファレンシャブルレンダリングプロセス(ブロック550)によって計算された偏導関数の値を使用して小さくされる。サーフェスモデルは、最適化の後に再び更新され、プロセス(ブロック540、550、560、570)は、レンダリングされた深度マップの最適化が収束するまで反復的に繰り返される。最適化は、たとえば、レンダリングされた深度マップと測定された深度マップとの間の誤差の項が所定の閾値未満になるまで継続する可能性がある。
【００４７】
反復的な最適化プロセスの後、線形化された誤差の項も更新される可能性がある。線形化された誤差の項は、既に計算された値の不確実性を表し、現在の(フレームの)深度マップの反復的な最適化が完了され、最新のサーフェスモデルに「融合された」(つまり、含められた)後、サーフェスモデル(この例においては三角形メッシュ)の各三角形表面要素の頂点が将来の再帰において(たとえば、各フレームにおいて)どのようにさらに修正され/変位させられ得るかに関する多項式(この例においては2次多項式)制約を生成するために使用される。制約は、レンダリングされた深度マップ250と測定された(「観察された」)深度マップ240との間の残余誤差から構築される。
【００４８】
この例の方法は、それぞれの観察されたフレーム/シーン210に関する尤度関数(likelihood function)を最大化するために生成モデルの手法とディファレンシャブルレンダリングプロセスとを組合せ、それによって、方法は、観察された3D空間を最も上手く表すようにレンダリングされたサーフェスモデルを構成しようと積極的に試みる。
【００４９】
さらに、線形化された誤差の項は、完全な事後分布が記憶され、更新されることを可能にする。頂点毎ではなく、情報フィルタの三角形毎の性質は、マップ上の個々のセル(頂点)間の接続を考慮に入れ、計算の複雑さを拘束しながらいかなる情報も捨てない。
【００５０】
それぞれの更新されたサーフェスモデルが前のモデルを置き換えるようにして、プロセス全体が撮影された各フレームに関して繰り返される。
【００５１】
説明される装置および方法は主に深度マップを解決することを対象としているが、追加的な色データが、同様に、結果として得られる高さマップ/サーフェスモデルに組み込まれ、プロセスの間に最適化され得る。この場合、方法は、上の方法と同様であるが、いくつかの追加的なステップを含む。第1に、3D空間に関する観察された色マップが、(初期外観パラメータを使用する) 3D空間に関する初期「外観モデル」と並行して取得される。予測された色マップが、初期外観モデル、初期サーフェスモデル、および取得されたカメラ姿勢データに基づいてレンダリングされる(図9Bも参照されたい)。予測された色マップのレンダリングから、外観モデルのパラメータに関する色値の偏導関数が計算される。予測された深度マップと測定された深度マップとの間の誤差および予測された色マップと測定された色マップとの間の誤差を含むコスト関数が、導出される。(レンダリングプロセス中に生成された偏導関数を使用して)コスト関数を小さくした後、初期外観モデルが、外観パラメータ値に基づいて更新される。プロセスは、色マップの最適化が収束するまで反復的に繰り返される可能性がある。
【００５２】
例示的なロボティックデバイス
図6Aは、マップ作成装置300を備える可能性があるロボティックデバイス605の第1の例600を示す。このロボティックデバイスは、下の例の理解を容易にするために与えられ、限定とみなされるべきでなく、異なる構成を有するその他のロボティックデバイスが、下の節において説明される動作を等しく適用する可能性がある。図6Aのロボティックデバイス605は、画像データを撮影するための単眼カメラデバイス610を含む。使用中、複数の画像が、連続して撮影される可能性がある。図6Aの例において、カメラデバイス610は、ロボティックデバイスの上の調整可能なアーム上に搭載され、アームおよび/またはカメラの高さおよび/または向きが、望まれるとおりに調整され得る。その他の場合、カメラデバイス610は、ロボティックデバイス605の本体部分の中に動かないように搭載される可能性がある。ある場合、単眼カメラデバイスは、画像のシーケンスを撮影するように構成された静止画デバイスを含む可能性があり、別の場合、単眼カメラデバイス610は、ビデオフレームの形態の画像のシーケンスを含むビデオデータを撮影するためのビデオデバイスを含む可能性がある。特定の場合、ビデオデバイスは、約25または30フレーム毎秒以上のフレームレートでビデオデータを撮影するように構成される可能性がある。ロボティックデバイスは、ナビゲーションエンジン620を含む可能性があり、この例において、ロボティックデバイスは、ロボティックデバイス605の本体部分に関連して配列された1組の被駆動車輪615および回転可能なフリーホイール(freewheel) 625を備える。
【００５３】
図6Bは、ロボティックデバイス655の別の例650を示す。図6Bのロボティックデバイス655は、家庭用掃除ロボットを含む。図6Aのロボティックデバイス605と同様に、家庭用掃除ロボティックデバイス655は、単眼カメラデバイス660を含む。図6Bの例において、単眼カメラデバイス660は、掃除ロボティックデバイス655の上部に搭載される。1つの実装において、掃除ロボティックデバイス655は約10から15cmの高さを有する可能性があるが、しかし、その他のサイズも可能である。掃除ロボティックデバイス655は、少なくとも1つの移動アクチュエータ665も含む。この場合、移動アクチュエータ665は、ロボティックデバイスを前後に進めるための、ロボティックデバイス655の両側に搭載される2組のキャタピラを駆動するように構成された少なくとも1つの電気モーターを含む。キャタピラは、さらに、家庭用掃除ロボティックデバイス655を操縦するために差動的に駆動され得る。その他の例においては、異なる駆動および/または操縦構成要素およびテクノロジーが、提供され得る。図6Aと同様に、掃除ロボティックデバイス655は、ナビゲーションエンジン670および回転可能なフリーホイール675を含む。
【００５４】
図6Aに示されたロボティックデバイス605の構成要素に加えて、掃除ロボティックデバイス655は、掃除要素680を含む。この掃除要素680は、部屋の床を掃除するための要素を含み得る。掃除要素680は、ローラーもしくはブラシ685および/または濡れたもしくは乾いた要素を含み得る。ある場合、掃除要素680は、汚れおよびほこりの粒子を捕まえるように構成された吸引デバイスを含み得る。ナビゲーションエンジンは、3D空間の占有されていないエリアに関する掃除パターンを決定し、掃除パターンに従って掃除要素680の作動を命じるために、上述の装置および方法によって生成された(図7Aおよび図7Bを参照して以下で説明される)空き空間マップを使用するように構成され得る。たとえば、吸引デバイスは、生成された空き空間マップによって示されるように部屋の中の空き空間のエリアを掃除するように作動させられる可能性があり、掃除ロボティックデバイスは、空き空間マップを使用して部屋内の障害物をナビゲートする。さらに、ロボティックデバイス655のナビゲーションエンジン670は、たとえば、掃除するための3D空間内の特定のエリアを特定するように吸引デバイスの活動を制御するために生成された高さマップを使用し得る。たとえば、ロボティックデバイスのナビゲーションエンジンは、ロボティックデバイス655が床面の割れ目に沿って操縦されるときに吸引デバイスを作動させ、ロボティックデバイス655が割れ目に出くわすときに吸引デバイスの吸引力を高くし、または絡まることを避けるために、ロボティックデバイス655がたるんだケーブルに出くわすとき、掃除要素680を停止する可能性がある。
【００５５】
空き空間のマップ作成
生成されたサーフェスモデルの望ましい特性は、そのサーフェスモデルが3D空間におけるロボットのナビゲーションおよび障害物の回避のために直接使用され得ることである。好ましい例において、再構築は、高さマップの表現の上の三角形メッシュに基づき、したがって、運転可能な空き空間エリアなどの使用可能な量または壁、家具、および小さな障害物のそれらの高さに基づく分類を生成するために、計算された高さ値に閾値が適用される可能性がある。
【００５６】
図7Aおよび図7Bは、基準平面710上に複数の障害物720がある3D空間(図7Aを参照されたい)にこの手法を適用した結果を示す。画像内の各ピクセルに関して、(基準平面710上の)関連するグリッドセルの高さが調べられ、決まった閾値、たとえば、ロボティックデバイスが安全に横切ることができる基準平面710の上1cmに基づいて空き空間としてラベル付けされる。その後、空き空間マップ(図7B)が、観察された画像上に被せられ、3D空間内の(図7B内で暗くされて示される)ナビゲーション可能なエリアを強調する。高さマップは突出部(overhang)を正しくモデリングすることができないにもかかわらず、方法は、これらの筋書きにおいてさえも正しい挙動を示し、たとえ地面のすぐ上のエリアが空いているとしても、ロボットが低い位置にぶら下がっている障害物にぶつかることを防止し得る。方法は、その現在の実装において、特に空き空間検出のタスクに関して驚くほど堅牢である。さらなる例示的な手法は、地形の粗さおよび3D空間が越えられ得たか否かを判定するために高さマップの勾配を評価する可能性がある。
【００５７】
上のマップ作成装置300およびナビゲーションエンジン450のうちのいずれか一方は、(図6Aおよび図6Bの破線620、670によって示されるように)ロボティックデバイス内に組み込まれたコンピューティングデバイスに実装される可能性がある。マップ作成装置300またはナビゲーションエンジン450は、少なくとも1つのプロセッサおよびメモリならびに/または1つもしくは複数のシステムオンチップコントローラを使用して実装される可能性がある。特定の場合、ナビゲーションエンジン450またはマップ作成装置300は、消去可能プログラマブル読み出し専用メモリ(EPROM)などの読み出し専用またはプログラミング可能なメモリから取り出される機械可読命令、たとえば、ファームウェアによって実装される可能性がある。
【００５８】
図8は、非一時的コンピュータ可読ストレージ媒体に記憶された命令を実行するために設けられたプロセッサ800を示す。プロセッサによって実行されるとき、命令は、コンピューティングデバイスに、空間に関する観察された深度マップを取得すること(ブロック810)と、観察された深度マップに対応するカメラ姿勢を取得すること(ブロック820)と、サーフェスモデル(この例においては三角形要素のメッシュを含み、各三角形要素は要素の頂点に関連する高さ値を有し、高さ値は基準平面の上の高さを表す)を取得すること(ブロック830)と、サーフェスモデルおよび取得された姿勢に基づいてモデルの深度マップをレンダリングすることであって、サーフェスモデルの高さ値に関するレンダリングされた深度値の偏導関数を計算することを含む、レンダリングすること(ブロック840)と、モデルの深度マップを観察された深度マップと比較することであって、モデルの深度マップと観察された深度マップとの間の誤差を決定することを含む、比較すること(ブロック850)と、誤差および計算された偏導関数に基づいてサーフェスモデルに対する更新を決定すること(ブロック860)とを行わせる。それぞれの観察された深度マップ(つまり、撮影された画像/フレーム)に関して、最後の4つのステップは、レンダリングされた深度マップの最適化(つまり、レンダリングされた深度マップと観察された深度マップとの間の誤差の最小化による)が収束するまで反復的に繰り返され得る。最適化プロセスの収束は、レンダリングされた深度マップと観察された深度マップとの間の誤差値が所定の閾値未満になることをともなう可能性がある。
【００５９】
さらなる例においては、サーフェスモデルの更新が決定されると、コンピュータ実行可能命令が、コンピューティングデバイスに、更新に関連する非線形誤差の項を各三角形要素に関連するコスト関数に融合させる。
【００６０】
生成モデル
本手法は、確率的生成モデルに基づき、図9Aおよび図9Bは、生成モデルにおける画像Iおよび深度データDとの3D空間の幾何学形状Gのパラメータ、カメラ姿勢Tのパラメータ、および外観Aのパラメータの関係の概略を示す概略図である。3D空間の幾何学形状Gは、3D空間の形状および形態に関連し、一方、外観Aは、色/美的特徴に関連する。本手法は、主に3D空間の深度をモデリングすることを対象とし、したがって、(図9Aに示される)幾何学形状および姿勢からの入力のみを必要とするが、説明される装置および方法が(図9Bに示される)外観データを含めることによって画像データIを同様にモデリングするように容易に拡張される可能性があることは、当業者によって容易に理解されるであろう。下の詳細な説明は、画像Iの表現とおよび深度データDの表現との両方を扱う。
【００６１】
マップを作成される3D空間内で、任意の所与の表面は、その表面の幾何学形状Gおよびその表面の外観Aによってパラメータ表示される。カメラなどの撮像デバイスおよびしたがってその撮像デバイスによって撮影された任意の画像の「姿勢」は、所与の3D空間内のカメラの位置および向きである。3D空間における関連する姿勢Tを有するカメラが、現在のフレームをサンプリングし、画像Iおよび逆深度(つまり、1/実際の深度)マップDが、レンダリングされる。
【００６２】
ベイズ確率技術を使用して、画像形成プロセスをモデリングする結合分布は、
P(I, D, G, A, T) = P(I|G, A, T) P(D|G, T) P(G) P(A) P(T)
【００６３】
画像の観察と表面の推定との間の関係も、ベイズの規則(Bayes rule)を使用して表され得る。
P(G, A, T|I, D)∝P(I, D|G, A, T) P(G) P(A) P(T)
【００６４】
これは、カメラ姿勢および表面の最大事後確率(MAP)推定値の導出を可能にする。
argmax G,A,Τ  P(I, D|G, A, T) P(G) P(A) P(T)
【００６５】
項P(I, D|G, A, T)は、ディファレンシャブルレンダラを使用して評価され、微分され得る尤度関数である。フレームの幾何学形状および/または色に関していかなる仮定もなされず、問題は最大尤度の1つとして扱われる。カメラ姿勢は、密な追跡モジュールによって与えられるものとして扱われる。これらの単純化と、上の等式の負の対数を取ることによって、次の最小化問題が得られる。
argminG,A F(G, A, T)
ただし、
【００６６】
【数１】
2019520633.tif 000003
【００６７】
ここで、
【００６８】
【数２】
2019520633.tif 000004
【００６９】
および
【００７０】
【数３】
2019520633.tif 000005
【００７１】
は、それぞれ、(対角)共分散行列ΣDおよびΣIによってモデリングされる関連する測定の不確実性をともなう測定された(観察された)逆深度マップおよび画像を表し、一方、DおよびIは、G、Aの現在の推定値および所与のTを使用してレンダリングされた予測された逆深度マップおよび画像を表す。たとえディファレンシャブルレンダリングプロセスおよびしたがって関数F(G, A, T)が非線形であるとしても、G0、A0、T0の何らかの初期推定値にアクセスすることができ、加えて、コスト関数Fおよびモデルパラメータに関するその導関数を評価することができることは、標準的な非線形最小二乗の推定値が反復的に見つけられることを可能にする。特に、偏導関数
【００７２】
【数４】
2019520633.tif 000006
【００７３】
および
【００７４】
【数５】
2019520633.tif 000007
【００７５】
ならびに
【００７６】
【数６】
2019520633.tif 000008
【００７７】
が、計算される必要があり、ディファレンシャブルレンダラによって追加の計算コストをほとんどかけずにディファレンシャブルレンダリングプロセスから得られる。
【００７８】
ディファレンシャブルレンダリング
ディファレンシャブルレンダリングの方法は、それぞれの新しい画像(フレーム)が受信されるときの深度マップ値(および任意でより先進的な画像モデリングに関しては色マップ値)の重み付けされた最適化に基づく。方法は撮影された最新のフレームのレンダリングされた深度(および任意で色)マップと予測された深度(および任意で色)マップとの間の非線形誤差の項を利用するが、すべての以前のそのような誤差の測定値が、以下で説明されるように、最適化された深度マップがサーフェスモデルに融合された後にサーフェスモデル(この例においては三角形メッシュ)の頂点がどのようにしてさらに修正され/変位させられ得るかに関する多項式(この例においては2次多項式)制約を決定するための「前の」線形誤差の項として維持される。したがって、より多くのデータが収集され、レンダリングされ、最適化され、サーフェスモデルに融合されるので、モデルはより堅牢になる。
【００７９】
最適化プロセスは数回の反復を必要とし、測定の回数および状態空間(state space)のサイズは大きいが、それらを結びつけるすべてのヤコビ行列(ベクトル値関数のすべての1階偏導関数の行列)は疎である。本方法は、ディファレンシャブルレンダリングの手法のおかげで非常に効率的であり、最適化の各反復において、逆深度(および任意で色の測定値)の尤度関数が、予測をレンダリングすることによって再評価される。同時に、最適化の段階のために使用されるヤコビ行列のピクセル毎の要素も、計算される。正しく実装されるとき、これは、追加的な計算コストをほとんどかけずに行われ得る。
【００８０】
図10に関連して、r(t)が、その開始点p∈R3および方向ベクトルd∈R3によってパラメータ表示されるレイであるものとし、r(t) = p + td、ただしt ≧ 0である。画像内の各ピクセルに関して、レイは、カメラの固有の性質(intrinsic)および原点としての基準のカメラフレームの中心を使用して計算され得る。例示的な表面の三角形は、3つの頂点v0、v1、v2によってパラメータ表示され、v0、v1、v2は、3D空間内の点を表し、たとえば、v1 = (x1, y1, z1)である。レイ/三角形の交差が、(たとえば、Tomas MolierおよびBen Trumboreによる「Fast, Minimum Storage Ray/Triangle Intersection」と題した1997年の文献において検討されたMoller-Trumboreレイ-三角形交差アルゴリズムを使用して)計算され、ベクトル(t, u, v)Tを生じ、tは、三角形がある平面までの距離であり、u、vは、三角形に対するレイの交点の重心座標である(注:  重心座標vは、3D頂点座標v0、v1、v2とは異なる)。
【００８１】
t、u、およびvは、特定のピクセルに関する深度(t)および色(uおよびv)をレンダリングするために必要とされる必須の要素である。深度値tが深度に直接関連する一方、重心座標(uおよびv)は、次のようにRGBカラーの三角形の頂点(c0, c1, c2)に基づいて色cを補間するために使用される。
c = (1 - u - v)c0 + uc1 + vc2.
【００８２】
ピクセルiのレンダリングされた逆深度diは、レイが交差している三角形の幾何学形状(および所与のフレームに関して固定されると仮定されるカメラ姿勢)にのみ依存する。一例において、サーフェスモデルは、高さマップを使用してモデリングされ、各頂点は、ただ1つの自由度、その高さzを有する。レイが距離1/diにおいて高さz0、z1、z2によって指定される三角形jと交差すると仮定する(diは、ピクセルiに関する逆深度である)と、導関数は、次のように表され得る。
【００８３】
【数７】
2019520633.tif 000009
【００８４】
色/外観を微分するより先進的なステップが使用される場合、ピクセルiのレンダリングされた色ciは、三角形(j)の幾何学形状と頂点毎の色との両方に依存する。頂点の色に関するレンダリングされた色の導関数は、単純に重心座標
【００８５】
【数８】
2019520633.tif 000010
【００８６】
である。
【００８７】
この例において、Iは、単位行列(この場合3×3)を表す。この結合の緩い融合においては、カラー画像が高さマップを決定する深度マップを生成するために既に使用されているので、高さマップに対する色画像の従属性は無視され、つまり、それぞれの導関数は計算されない。これは、色マップおよび高さマップが独立に扱われ得るための慎重な仮定である。本質的に、色の推定は、単純に、高さマップの表現を改善するように働く。
【００８８】
線形化による高さマップの融合
上述の逆深度の誤差の項は、
【００８９】
【数９】
2019520633.tif 000011
【００９０】
という形態である。
【００９１】
式中、zjは、ピクセルiを通してレイによって交差される三角形jの高さを表す。これは、既に概要を示された最小化問題の深さ構成要素のスカラの適合である。この例においては、zj = [z0, z1, z2]Tである。最適化が完了された後、誤差の項は、
【００９２】
【数１０】
2019520633.tif 000012
【００９３】
のように現在の推定値
【００９４】
【数１１】
2019520633.tif 000013
【００９５】
付近で線形に近似される。ヤコビ行列Eは、
【００９６】
【数１２】
2019520633.tif 000014
【００９７】
のように勾配降下の一部として計算された。
【００９８】
フレームがサーフェスモデルに融合された後、多項式(この例においては2次多項式)のコストが、「三角形毎」に累積される。これらの線形化された誤差の項は、深度マップがサーフェスモデルに融合された後にサーフェスモデル(この例においては三角形メッシュ)の頂点がどのようにさらに修正され/変位させられ得るかに関する多項式(この例においては2次多項式)制約を生成する。制約は、レンダリングされた深度マップと観察された深度マップとの間の残余誤差から構築される。したがって、各三角形jに関して、2次多項式のコストの項が、
c=c0+bTz+zTAz
の形態で維持される。
【００９９】
式中、c0、b、およびAの値は、最初ゼロである。これらのコストの項の勾配は、簡単に得られる可能性があり、現在の線形化された誤差の項に基づく三角形毎のコストの更新(単純な総和)は、したがって、次の演算からなる。
【０１００】
【数１３】
2019520633.tif 000015
【０１０１】
これを展開し、整理することは、三角形毎の2次多項式のコストの係数への更新を与える。
【０１０２】
【数１４】
2019520633.tif 000016
【０１０３】
【数１５】
2019520633.tif 000017
【０１０４】
【数１６】
2019520633.tif 000018
【０１０５】
高さマップに関する全体的コストFzは、したがって、合計で
【０１０６】
【数１７】
2019520633.tif 000019
【０１０７】
となる。
【０１０８】
式中、eiは、上述のように測定された深度とレンダリングされた深度との間のピクセルの差であり、jは、すべての三角形にわたる総和であり、iは、すべてのピクセルにわたる総和である。最適化が終了(収束)した後、現在の非線形の深度の誤差の項の融合がすべての2次多項式の三角形毎のコストの項へと実行される。結果として、線形のコストの項の数が高さマップ内の三角形の数によって拘束される一方、非線形の(逆)深度の誤差の項の数は撮像デバイス内のピクセルの数によって拘束されることに留意されたい。これは、リアルタイムの動作のための重要な特性である。
【０１０９】
例として、三角形毎の誤差の項が、最初ゼロに設定され、第1の深度マップが、サーフェスモデルに融合される可能性がある。第1の深度マップがサーフェスモデルに融合された後、三角形毎の2次多項式の制約が更新され、それらの制約が次の深度マップの融合のための「前の値」(「弾性(spring)」制約)として使用される。それから、このプロセスが繰り返される。
【０１１０】
色の融合はここでは述べられないが、当業者は上の定式化を簡単に拡張する可能性があることにさらに留意されたい。色の情報はこの例においては高さマップの改善された表示のために使用されるだけであるので、好ましい方法は、色を融合することをやめ、コスト関数全体の中で現在のフレームの非線形の色の誤差の項を使用するだけである。
【０１１１】
最適化
高さマップの融合は、最適化問題として定式化される。さらに、ディファレンシャブルレンダリングによって、関連するコスト関数の勾配が、計算の必要性のいかなる大きな増加もなしにアクセスされ得る。それぞれの新しいフレーム210に関して深度マップ(および任意で色マップ)を最適化するとき、装置および方法は、非線形「最小二乗」問題を反復的に解く。標準的な手順は、各反復において、正規方程式を形成し、たとえば、コレスキー分解によってその正規方程式を解くことを必要とする。しかし、解かれる問題のサイズが原因で、ヘッセ行列式を明示的に形成し、行列分解に依拠する直接的な方法を使用することは、大変なコストがかかる。
【０１１２】
その代わりに、間接的で行列を使わず、内積によってヘッセ行列式にアクセスすることができる共役勾配降下アルゴリズムが使用される。共益勾配の各反復において、降下方向にステップサイズを決定するために直線探索を実行することが必要とされる。これは、コスト関数の再評価を必要とする。本方法によってコスト関数を評価するとき、勾配はほとんど瞬間的にアクセスされる可能性があり、最適なステップサイズが探索されず、その代わりに、方法は、コストの削減につながる任意のステップサイズを受け入れ、次の反復において、既に利用可能な勾配が使用される。概して、最適化プロセスが収束するまでに約10〜20回の反復が必要とされ、これは、現在の実装において、説明された融合が約15〜20fpsのレートで実行されることを可能にする。収束は、たとえば、レンダリングされた深度マップと測定された深度マップとの間の誤差値が所定の閾値未満になるときに起こり得る。
【０１１３】
まとめ
開示された装置および方法は、従来技術に優るいくつかの利点をもたらす。使用される確率解釈および生成モデルが与えられると、「三角形毎の」情報フィルタを使用するベイズ融合(Bayesian fusion)が実行される。計算の複雑さが拘束されながら、手法は、最大で線形化誤差までで最適であり、情報を捨てない。
【０１１４】
方法は、画像分解能とシーンの表現との両方の点で非常にスケーラブルである。現在のGPUを使用して、レンダリングは、極めて効率的に行われる可能性があり、偏導関数を計算することは、ほとんど無視できるコストで行われる。開示された方法は、モバイルロボティックスに直接適用されるとき、堅牢かつ効率的である。
【０１１５】
上の実施形態は、本発明の例示的な例として理解されるべきである。さらなる実施形態が、考えられる。たとえば、多くの異なる種類のカメラおよび画像取得方法が存在する。深度、画像、ならびにカメラ姿勢および追跡データは、それぞれ、別々のソースから取得される可能性があり、たとえば、深度データは、(Microsoft Kinect (商標))などの専用の深度カメラから取得される可能性があり、画像データは、標準的なRGBカメラから取得される可能性がある。さらに、追跡が、マップ作成プロセスに直接統合される可能性もある。一例において、5つの最も新しいフレームが、単一のフレームに関する深度マップを導出するために使用される。
【０１１６】
いずれか1つの実施形態に関連して説明されたいかなる特徴も、単独で、または説明されたその他の特徴と組み合わせて使用される可能性があり、実施形態のうちの任意のその他のもの、または実施形態のうちの任意のその他のものの任意の組合せの1つもしくは複数の特徴と組み合わせて使用される可能性もあることを理解されたい。方法/プロセスの図の使用は、決まった順序を示唆するように意図されておらず、たとえば、図5において、ブロック520は、ブロック510の前に実行される可能性があることに留意されたい。あるいは、ブロック510および520は、同時に実行される可能性がある。
【０１１７】
さらに、上で説明されていない均等物および修正形態も、添付の請求項で定義される本発明の範囲から逸脱することなしに使用される可能性がある。
【符号の説明】
【０１１８】
100  再構築された高さマップ
200  方法
210  フレーム
230  カメラ姿勢データ
235  偏導関数勾配値
240  測定された深度マップデータ、測定された深度マップ
250  予測された深度マップ、レンダリングされた深度マップ
260  非線形誤差
290  サーフェスモデル、サーフェスマップ
300  装置
310  深度データインターフェース
320  姿勢データインターフェース
330  マップ作成エンジン
340  ディファレンシャブルレンダラ
400  ロボティックデバイス
420  撮像デバイス
430  深度マッププロセッサ
440  姿勢プロセッサ
450  ナビゲーションエンジン
460  移動アクチュエータ
500  方法
600  第1の例
605  ロボティックデバイス
610  単眼カメラデバイス
615  駆動される車輪
620  ナビゲーションエンジン
625  フリーホイール
650  別の例
655  ロボティックデバイス
660  単眼カメラデバイス
665  移動アクチュエータ
670  ナビゲーションエンジン
675  フリーホイール
680  掃除要素
685  ローラーもしくはブラシ
710  基準平面
720  障害物
800  プロセッサ
【図１】
2019520633.tif 000020
【図２】
2019520633.tif 000021
【図３】
2019520633.tif 000022
【図４】
2019520633.tif 000023
【図５】
2019520633.tif 000024
【図６Ａ】
2019520633.tif 000025
【図６Ｂ】
2019520633.tif 000026
【図７Ａ】
2019520633.tif 000027
【図７Ｂ】
2019520633.tif 000028
【図８】
2019520633.tif 000029
【図９Ａ】
2019520633.tif 000030
【図９Ｂ】
2019520633.tif 000031
【図１０】
2019520633.tif 000032
【国際調査報告】
2019520633.tif 000033
2019520633.tif 000034