(57)【要約】  記載される例において、コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法が、単眼カメラにより捕捉された複数の連続フレームにおける点の推定される２次元（２Ｄ）ロケーションの複数のトラックを受け取ること、及び、複数のトラックの各トラックに対して（４１０）３次元（３Ｄ）点のクラウドを生成すること（４０８）を含む。３Ｄ点のクラウドを生成することは、トラックにおける２Ｄロケーションに基づいて、３Ｄ点の推定されるロケーションを三角測量すること（４００）と、３Ｄ点の対角のサイズ（４０４）と３Ｄ点の投影誤差（４０２）とが、３Ｄ点が包含のために充分にロバストであることを示すとき（４０６）、クラウドにおける３Ｄ点を含むこととによって、３Ｄ点のクラウドを生成する。
2019502210.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法であって、
単眼カメラにより捕捉された複数の連続フレームにおける点の推定される２次元（２Ｄ）ロケーションの複数のトラックを受け取ること、及び
前記複数のトラックの各トラックに対して、３次元（３Ｄ）点のクラウドを生成すること、
を含み、
前記３Ｄ点のクラウドを生成することが、
前記トラックにおける前記２Ｄロケーションに基づいて、３Ｄ点の推定されるロケーションを三角測量することと、
前記３Ｄ点の対角（subtended angle）のサイズと前記３Ｄ点の投影誤差とが、前記３Ｄ点が包含のために充分にロバストであることを示すとき、前記クラウドにおいて前記３Ｄ点を含むことと、
によって、前記３Ｄ点のクラウドを生成し、
前記３Ｄ点が充分にロバストであるか否かを判定するため、前記対角の前記サイズ及び前記投影誤差が、漸進的に小さいそれぞれの閾値の複数の対の一つ又は複数に対してテストされ、一対の閾値が、角度サイズ閾値と投影誤差閾値とで構成される、
方法。
【請求項２】
請求項１に記載の方法であって、閾値の前記複数の対の初期閾値対が、ベース角度サイズ閾値及びベース投影誤差閾値を含み、対応する所定の漸進的に大きいスケールファクタを、前記ベース角度サイズ閾値及び前記ベース投影誤差閾値に適用することによって、前記漸進的に小さいそれぞれの閾値の他の対における閾値が決定される、方法。
【請求項３】
請求項２に記載の方法であって、漸進的に小さいそれぞれの閾値の前記対が、漸進的に小さいそれぞれの閾値の５対であり、前記漸進的に大きいスケールファクタが、２、４、８、及び１６である、方法。
【請求項４】
請求項１に記載の方法であって、Ｎ個の連続フレームのスライディングウィンドウにおける２つの直近フレームが、前記複数のトラックにおける前記２Ｄロケーションを推定するための点対応に用いられ、各トラックが最大Ｎ個の２Ｄロケーションを含み、前記複数の連続フレームにおけるフレームの数がＮであり、Ｎ＞２である、方法。
【請求項５】
請求項４に記載の方法であって、Ｎ＝６である、方法。
【請求項６】
請求項１に記載の方法であって、更に、
３Ｄ点の最終クラウドを生成するために、前記クラウドを３Ｄ点の前のクラウドとマージすることを含み、
前記前のクラウドにおける各３Ｄ点に対して、前記最終クラウドにおいて前記３Ｄ点を含むべきか否かを判定することが、
前記複数の連続フレームにおける直近フレームと前記複数のフレームにおける次の直近フレームとの間の点対応を実施して、前記３Ｄ点に対応する前記次の直近フレームにおける第２の２Ｄ点に対応する前記直近フレームにおける第１の２Ｄ点を位置特定することを試みることと、
前記第１の２Ｄ点が位置特定される場合に、前記第１の２Ｄ点に対するエピポーラ線、及び前記第２の２Ｄ点に対するエピポーラ線を演算することと、
前記第１の２Ｄ点及び前記第２の２Ｄ点の、それぞれのエピポーラ線までの前記最終クラウドベースのユークリッド距離における前記３Ｄ点を含む又は含まないことと、
を含む、方法。
【請求項７】
請求項１に記載の方法であって、前記点が特徴点である、方法。
【請求項８】
請求項１に記載の方法であって、前記コンピュータビジョンシステムが、オートモーティブセーフティーシステムの一部である、方法。
【請求項９】
コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法であって、
単眼カメラにより捕捉された複数の連続フレームに基づいて、３次元（３Ｄ）点のクラウドを生成すること、
３Ｄ点の最終クラウドを生成するため、前記クラウドを３Ｄ点の前のクラウドとマージすること、及び
前記前のクラウドにおける各３Ｄ点に対して、前記最終クラウドにおいて前記３Ｄ点を含むべきか否かを判定すること、
を含み、
前記判定することが、
前記複数の連続フレームにおける直近フレームと前記複数のフレームにおける次の直近フレームとの間の点対応を実施して、前記３Ｄ点に対応する前記次の直近フレームにおける第２の２Ｄ点に対応する前記直近フレームにおける第１の２Ｄ点を位置特定することを試みることと、
前記第１の２Ｄ点が位置特定される場合に、前記第１の２Ｄ点に対するエピポーラ線、及び前記第２の２Ｄ点に対するエピポーラ線を演算することと、
前記第１の２Ｄ点及び前記第２の２Ｄ点の、それぞれのエピポーラ線までの前記最終クラウドベースのユークリッド距離における前記３Ｄ点を含む又は含まないことと、
を含む、方法。
【請求項１０】
請求項９に記載の方法であって、３Ｄ点のクラウドを生成することが、
前記複数の連続フレームにおける点の推定される２Ｄロケーションの複数のトラックを受け取ること、及び
前記複数のトラックの各トラックに対応する３Ｄ点を推定することにより前記３Ｄ点のクラウドを演算すること、
を含み、
Ｎ個の連続フレームのスライディングウィンドウにおける２つの直近フレームが、前記トラックにおける前記２Ｄロケーションを推定するための点対応に用いられ、各トラックが最大Ｎ個の２Ｄロケーションを含み、前記複数のフレームにおけるフレームの数がＮであり、Ｎ＞２である、
方法。
【請求項１１】
請求項１０に記載の方法であって、Ｎ＝６である、方法。
【請求項１２】
請求項９に記載の方法であって、３Ｄ点のクラウドを生成することが、
前記複数の連続フレームにおける点の推定された２次元（２Ｄ）ロケーションの複数のトラックを受け取ること、及び
前記複数のトラックの各トラックに対して、３次元（３Ｄ）点のクラウドを生成すること、
を含み、
前記３Ｄ点のクラウドを生成することが、
前記トラックにおける前記２Ｄロケーションに基づいて、３次元（３Ｄ）点の推定されたロケーションを三角測量することと、
前記３Ｄ点の対角のサイズと前記３Ｄ点の投影誤差とが、前記３Ｄ点が包含のために充分にロバストであることを示すとき、前記クラウドにおける前記３Ｄ点を含むことと、
によって、前記３Ｄ点のクラウドを生成し、
前記３Ｄ点が充分にロバストであるか否かを判定するため、前記対角のサイズ及び前記投影誤差が、漸進的に小さいそれぞれの閾値の複数の対の一つ又は複数に対してテストされ、一対の閾値が、角度サイズ閾値と投影誤差閾値とで構成される、
方法。
【請求項１３】
請求項１２に記載の方法であって、閾値の前記複数の対の初期閾値の対が、ベース角度サイズ閾値及びベース投影誤差閾値を含み、対応する所定の漸進的に大きいスケールファクタを、前記ベース角度サイズ閾値及び前記ベース投影誤差閾値に適用することによって、前記漸進的に小さいそれぞれの閾値の他の対における閾値が決定される、方法。
【請求項１４】
請求項１３に記載の方法であって、漸進的に小さいそれぞれの閾値の前記対が、漸進的に小さいそれぞれの閾値の５対であり、前記漸進的に大きいスケールファクタが、２、４、８、及び１６である、方法。
【請求項１５】
コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法であって、
単眼カメラにより捕捉されたＮ個の連続フレームにおける点の推定された２次元（２Ｄ）ロケーションの複数のトラックを受け取ること、及び
前記複数のトラックの各トラックに対応する３Ｄ点を推定することにより、３次元（３Ｄ）点クラウドを演算すること、
を含み、
Ｎ個の連続フレームのスライディングウィンドウにおける２つの直近フレームが、前記トラックにおける前記２Ｄロケーションを推定するための点対応に用いられ、各トラックが最大Ｎ個の２Ｄロケーションを含み、Ｎ＞２である、
方法。
【請求項１６】
請求項１５に記載の方法であって、Ｎ＝６である、方法。
【請求項１７】
請求項１５に記載の方法であって、更に、
最終３Ｄ点クラウドを生成するため、前記３Ｄ点クラウドを前の３Ｄ点クラウドとマージすること、及び
前記前のクラウドにおける各３Ｄ点に対して、前記最終３Ｄ点クラウドにおいて前記３Ｄ点を含むべきか否かを判定すること、
を含み、
前記３Ｄ点を含むべきか否かを判定することが、
前記複数の連続フレームにおける直近フレームと前記複数のフレームにおける次の直近フレームとの間の点対応を実施して、前記３Ｄ点に対応する前記次の直近フレームにおける第２の２Ｄ点に対応する前記直近フレームにおける第１の２Ｄ点を位置特定することを試みることと、
前記第１の２Ｄ点が位置特定される場合に、前記第１の２Ｄ点に対するエピポーラ線、及び前記第２の２Ｄ点に対するエピポーラ線を演算することと、
前記第１の２Ｄ点及び前記第２の２Ｄ点の、それぞれのエピポーラ線までの前記最終クラウドベースのユークリッド距離における前記３Ｄ点を含む又は含まないことと、
を含む、方法。
【請求項１８】
請求項１５に記載の方法であって、３Ｄ点クラウドを生成することが、
前記複数のトラックの各トラックに対して、前記３Ｄ点クラウドを生成することを含み、
前記３Ｄ点クラウドを生成することが、
前記トラックにおける前記２Ｄロケーションに基づいて、３次元（３Ｄ）点の推定されたロケーションを三角測量することと、
前記３Ｄ点の対角のサイズと前記３Ｄ点の投影誤差とが、前記３Ｄ点が包含のために充分にロバストであることを示すとき、前記３Ｄ点クラウドにおいて前記３Ｄ点を含むことと、
によって、前記３Ｄ点クラウドを生成し、
前記３Ｄ点が充分にロバストであるか否かを判定するため、前記対角のサイズ及び前記投影誤差が、漸進的に小さいそれぞれの閾値の複数の対の一つ又は複数に対してテストされ、一対の閾値が、角度サイズ閾値と投影誤差閾値とで構成される、
方法。
【請求項１９】
請求項１８に記載の方法であって、閾値の前記複数の対の初期閾値対が、ベース角度サイズ閾値及びベース投影誤差閾値を含み、対応する所定の漸進的に大きいスケールファクタを、前記ベース角度サイズ閾値及び前記ベース投影誤差閾値に適用することによって、前記漸進的に小さいそれぞれの閾値の他の対の閾値が決定される、方法。
【請求項２０】
請求項１９に記載の方法であって、漸進的に小さいそれぞれの閾値の前記対が、漸進的に小さいそれぞれの閾値の５対であり、前記漸進的に大きいスケールファクタが、２、４、８、及び１６である、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概してコンピュータビジョンシステムに関し、更に特定して言えば、コンピュータビジョンシステムにおけるストラクチャフロムモーション（structure from motion）に関連する。
【背景技術】
【０００２】
人間によるオペレーション誤差を低減するために、先進運転支援システム（ＡＤＡＳ）と称される新たな部類の埋め込みセーフティーシステムが、自動車に導入されてきている。このようなシステムは、後方カメラ、電子安定性制御、及びビジョンベースの歩行者検出システムなどの機能性を提供し得る。これらのシステムの多くは、単眼カメラを用い、一つ又は複数のカメラの視野におけるオブジェクトを検出するためにコンピュータビジョン処理に依存する。ストラクチャフロムモーション（ＳｆＭ）処理は、単眼カメラにより捕捉された二次元画像から３次元環境を理解するために、このようなシステムにおける重要なオペレーションである。
【発明の概要】
【０００３】
記載される例は、コンピュータビジョンシステムにおけるリアルタイムのストラクチャフロムモーション（ＳｆＭ）処理のための方法及びシステムを含む。一つの態様において、コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法が、単眼カメラにより捕捉された連続フレームにおける点の推定される２次元（２Ｄ）ロケーションのトラックを受け取ること、及び、トラックの各々に対して、３次元（３Ｄ）点のクラウドを生成することを含む。３Ｄ点のクラウドは、トラックにおける２Ｄロケーションに基づいて３Ｄ点の推定されるロケーションを三角測量すること、及び、３Ｄ点の対角（subtended angle）のサイズと３Ｄ点の投影誤差とが、３Ｄ点が包含のために充分にロバストであることを示すとき、クラウドにおいて３Ｄ点を含むことにより生成される。３Ｄ点が充分にロバストであるか否かを判定するため、対角のサイズと投影誤差とが、漸進的に小さいそれぞれの閾値の一対又は複数対に対してテストされる。閾値の一対は、角度サイズ閾値及び投影誤差閾値で構成される。
【０００４】
一つの態様において、コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法が、単眼カメラにより捕捉された連続フレームに基づいて３次元（３Ｄ）点のクラウドを生成すること、及び、このクラウドを３Ｄ点の前のクラウドとマージして、３Ｄ点の最終クラウドを生成することを含む。前のクラウドにおける各３Ｄ点に対して、最終クラウドにおいて３Ｄ点を含むべきか否かを判定することが、連続フレームにおける直近フレームとそれらのフレームにおける次の直近フレームとの間の点対応を実施して、３Ｄ点に対応する次の直近フレームにおける第２の２次元（２Ｄ）点に対応する直近フレームにおける第１の２Ｄ点を位置特定することを試みることと、第１の２Ｄ点が位置特定される場合に、第１の２Ｄ点に対するエピポーラ線、及び第２の２Ｄ点に対するエピポーラ線を演算することと、それぞれのエピポーラ線までの第１の２Ｄ点及び第２の２Ｄ点の、最終クラウドベースのユークリッド距離における３Ｄ点を含む又は含まないこととを含む。
【０００５】
一つの態様において、コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法が、単眼カメラにより捕捉されたＮ個の連続フレームにおける点の推定される２次元（２Ｄ）ロケーションのトラックを受け取ること、及びトラックの各々に対応する３次元（３Ｄ）点を推定することにより３Ｄ点クラウドを演算することを含む。Ｎ個の連続フレームにおける２つの直近フレームのスライディングウィンドウが、トラックにおける２Ｄロケーションを推定するための点対応に用いられ、各トラックは最大Ｎ個の２Ｄロケーションを含み、ここで、Ｎ＞２である。
【図面の簡単な説明】
【０００６】
【図１】単眼カメラベースのオートモーティブセーフティー応用例に用いるために構成される、例示のマルチプロセッサシステムオンチップ（ＳＯＣ）のハイレベルブロック図である。
【０００７】
【図２】図１の例示のＳＯＣに対して実装される例示のリアルタイムのストラクチャフロムモーション（ＳｆＭ）再構築パイプラインを介するデータフローを図示する図である。
【０００８】
【図３】図２のＳｆＭ再構築パイプラインにおけるスライディングウィンドウ処理を図示する例である。
【０００９】
【図４】図２のＳｆＭ再構築パイプラインにおいて３Ｄ点クラウドを生成するための方法のフローチャートである。
【００１０】
【図５】推定された３Ｄ点に対する角度を図示する例である。
【００１１】
【図６】点クラウドにおいて３Ｄ点が繰り越されるべきかを判定するための方法のフローチャートである。
【発明を実施するための形態】
【００１２】
一貫性を保つため、種々の図面における同様の要素は同様の参照符号で示している。
【００１３】
上述したように、ストラクチャフロムモーション（ＳｆＭ）処理は、多くのカメラベースの埋め込みセーフティーシステムにおいて実施されるコンピュータビジョン処理における重要なオペレーションである。従来のＳｆＭアプローチの多くは、画像が種々のビューポイントから及び場合によっては異なるカメラによって取得される画像収集からの３次元（３Ｄ）再構築に向けられる。マイクロソフトフォトツーリズム、及びコーネル大学において開発されたバンドラーが、このＳｆＭアプローチの２つの例である。このようなＳｆＭアプローチは、３６０度３次元（３Ｄ）再構築に向けられ、典型的に、リアルタイムの再構築に用いるのには適していない。オートモーティブセーフティーシステムでは、画像（フレーム）はリアルタイムで生成され、用いられる如何なるＳｆＭアプローチも、リアルタイムで画像を処理する必要がある。例示の実施例は、単眼カメラから画像を受け取るコンピュータビジョンシステムにおいてリアルタイムのＳｆＭ処理を提供する。本明細書に記載されるリアルタイムＳｆＭ処理は、オートモーティブ応用例のために想定され得る３Ｄ環境の制約を利用する。
【００１４】
図１は、単眼カメラベースのＡＤＡＳにおいて用いるために構成される、例示のマルチプロセッサシステムオンチップ（ＳＯＣ）１００のハイレベルブロック図である。少なくとも一つの例において、ＳＯＣ１００は、テキサス・インスツルメンツ社から入手可能なＴＤＡ３Ｘ  ＳＯＣの一実施例である。本説明は、ＳＯＣ１００の構成要素の高レベルの説明を含む。例示の構成要素のより詳細な説明は、インド  バンガロールにおける２０１５年１２月１６〜１９日の高性能コンピューティングに関する２０１５  ＩＥＥＥ第２２回国際会議の議事録、４５６〜４６３頁、Ｍ．Ｍｏｄｙらの「ＴＩのＴＤＡ３Ｘプラットフォームに関する高性能前方カメラＡＤＡＳ応用例」、及び、２０１４年１０月のテキサス・インスツルメンツ、ＳＰＲＴ７０４Ａ、「先進運転支援システム（ＡＤＡＳ）テクニカルブリーフのためのＴＤＡ３ｘ  ＳＯＣプロセッサ」１〜６頁にあり、これらは参照のため本願に組み込まれている。
【非特許文献１】M. Mody, et al., “High Performance Front Camera ADAS Applications on TI’s TDA3X Platform,” Proceedings of 2015 IEEE 22nd International Conference on High Performance Computing, December 16-19, 2015, Bangalore, India, pp. 456-463
【非特許文献２】”TDA3x SOC Processors for Advanced Driver Assist Systems (ADAS) Technical Brief,” Texas Instruments, SPRT704A, October, 2014, pp. 1-6
【００１５】
ＳＯＣ１００は、デュアル汎用プロセッサ（ＧＰＰ）１０２、デュアルデジタルシグナルプロセッサ（ＤＳＰ）１０４、及び、高速相互接続１２２を介して結合されるビジョンプロセッサ１０６を含む。ＳＯＣ１００は更に、ダイレクトメモリアクセス（ＤＭＡ）構成要素１０８、ディスプレイ管理構成要素１１４に結合されるカメラ捕捉構成要素１１０、オンチップランダムアクセス（ＲＡＭ）メモリ１１６、及び種々の入力／出力（ＦＯ）周辺機器１２０を含み、すべて、相互接続１２２を介してプロセッサに結合される。また、ＳＯＣ１００は、オートモーティブセーフティー要件に準拠し得るようにするためセーフティー関連機能性を含むセーフティー構成要素１１８を含む。このような機能性は、データのＣＲＣ（巡回冗長検査）のためのサポート、ドリフト検出のためのクロックコンパレータ、誤差シグナリング、窓付きのウォッチドッグタイマー、並びに、損傷及び欠陥に対するＳＯＣの自己テストを含み得る。本明細書に記載するようなリアルタイムＳｆＭを実装するソフトウェアは、メモリ１１６にストアされ得、ＳＯＣ１００の一つ又は複数のプログラマブルプロセッサに対して実行し得る。
【００１６】
図２は、図１の例示のＳＯＣ１００に対して実装されるコンピュータビジョンシステムの一部として実装されるようなリアルタイムＳｆＭ再構築パイプラインの一実施例を介するデータフローを示す図である。ＳｆＭ再構築パイプラインは、各入力フレームが受け取られた後、３Ｄ点クラウドを生成する。高レベルにおいて、ＳｆＭ再構築パイプラインは、連続フレームにわたって特徴点（interest point）の２次元（２Ｄ）ロケーションを検出及び追跡し、特徴点に対応するトラック（tracks）における２Ｄロケーションをストアする。そのため、トラックは、時間にわたる特徴点の２Ｄフレーム座標のシーケンスである。３Ｄ点クラウドを生成するためにトラックの各々に対して三角測量が実施され、３Ｄ点クラウドは、その後、最終３Ｄ点クラウドを生成するために用いられる。
【００１７】
また、パイプラインは、図３に図示するようにスライディングウィンドウ様式で動作する。ウィンドウはＮ個のフレームを含み、Ｎ個のフレームは、予め処理されたＮ−１個のフレーム及び現在のフレームである。本願においてより詳細に説明されるように、各出力点クラウドは、現在のウィンドウにおけるフレームに基づく。更に、３Ｄ点を推定するために実施される三角測量は、各特徴点に対して現在のスライディングウィンドウにおけるＮ個のフレームにおいて、最大、Ｎ個の２Ｄロケーションを用いる。任意の適切な値のＮが用いられ得、Ｎの値は、点クラウド品質（Ｎの値が増大するにつれて品質が増大する）と、演算複雑性、性能、及びメモリサイズなどの考慮との間のトレードオフとして選ばれ得る。説明し易くするため、以降の記載においてＮ＝６が想定される。
【００１８】
図２を参照すると、フレームが単眼カメラ１２４から捕捉構成要素１１０を介して受信される度に、フレーム、即ち、特徴点を検出するためのフレーム（ｔ）、に対して特徴点検出２００が実施される。フレーム（ｔ）及び検出された特徴点が、メモリ２０１にストアされる。例えば、メモリ２０１は、図１のオンチップＲＡＭ１１６であり得る。キーポイント又はフィーチャー（feature）と称されることもある特徴点の検出２００が、特徴点検出のための任意の適切な手法を用いて実施され得る。また、例えば、特徴点検出は、Ｈａｒｒｉｓコーナー検出又はＦＡＳＴ（features from accelerated segment test）検出に基づき得る。Ｈａｒｒｉｓコーナー検出は、英国マンチェスターにおける１９８８年の第４回アルビー・ビジョン・コンファレンスの議事録、１４７〜１５１頁、Ｃ．Ｈａｒｒｉｓ及びＭ．Ｓｔｅｐｈｅｎｓの「コンバインド・コーナー・アンド・エッジ・ディテクター」において記載されている。ＦＡＳＴは、オーストリア  グラーツにおける２００６年５月７〜１３日の第９回ヨーロピアン・コンファレンス・オン・コンピュータビジョンの議事録、Ｖｏｌ．１、４３０〜４４３頁、Ｅ．Ｒｏｓｔｅｎ及びＴ．Ｄｒｕｍｍｏｎｄの「高速コーナー検出のためのマシンラーニング」に記載されている。
【非特許文献３】C. Harris and M. Stephens, “A Combined Corner and Edge Detector,” Proceedings of Fourth Alvey Vision Conference, Manchester, UK, pp. 147-151, 1988
【非特許文献４】E. Rosten and T. Drummond, “Machine Learning for High Speed Corner Detection,” Proceedings of 9th European Conference on Computer Vision, Vol. 1, Graz, Austria, May 7-13, 2006, pp. 430-443
【００１９】
フレーム（ｔ）において特徴点が検出された後、現在のフレーム（ｔ）と前のフレーム（ｔ−１）との間の点対応２０２が実施される。概して、点対応は、前のフレーム（ｔ−１）において見つかった特徴点と、現在のトラックの各々とを、現在のフレーム（ｔ）にマッチングさせる。後者の場合、現在のトラックにおける最新の２Ｄ点が点対応に用いられる。トラックにおける最新の２Ｄ点は、点対応がフレーム（ｔ−１）とフレーム（ｔ−２）との間で実施されたとき、フレーム（ｔ−１）において見つかった２Ｄ点である。また、現在のトラックがメモリ２０１にストアされる。前のフレーム（ｔ−１）において検出された特徴点に対する対応が、現在のフレーム（ｔ）において見つからなかった場合、その特徴点は削除される。また、既存の或るトラックに対する対応が、現在のフレーム（ｔ）において見つからなかった場合、そのトラックは削除される。光学フロー手法など、点対応のための任意の適切な手法が用いられ得る。例えば、幾つかの適切な光学フロー手法が、１９９４年のインターナショナル・ジャーナル・オブ・コンピュータビジョン、Ｖｏｌ．１２、Ｎｏ．１、４３〜７７頁、Ｊ．Ｂａｒｒｏｎらの「光学フロー手法の性能」において説明されている。
【非特許文献５】J. Barron, et al., “Performance of Optical Flow Techniques,” International Journal of Computer Vision, Vol. 12, No. 1, pp. 43-77, 1994
【００２０】
その後、前のフレーム（ｔ−１）と現在のフレーム（ｔ）との間の点対応を検証するため、対応検証２０４が実施される。検証を実施するため、現在のフレーム（ｔ）と前のフレーム（ｔ−１）との間の対応する特徴点に基づいて、カメラ基本行列が演算される。基本行列を演算するための任意の適切な手法が用いられ得る。例示の手法の一つが、２０１６年５月１４日付けでhttps://en.wikipedia.org/wiki/Eight-point_algorithmからアクセス可能な、ウィキペディア、「８点アルゴリズム」に記載されている。その後、基本行列は、点対応の品質を評価するため、即ち、点対応を検証するために用いられる。点対応を検証するための基本行列の利用は既知であり、そのため、本願において更なる説明はしない。
【非特許文献６】“Eight-point Algorithm”, Wikipedia, available at https://en.wikipedia.org/wiki/Eight-point_algorithm on May 14, 2016
【００２１】
特徴点に対して点対応が有効でない場合、その特徴点は削除される。そうでない場合、特徴点の２Ｄロケーションとフレーム（ｔ）における対応する点の２Ｄロケーションとを含む新たなトラックが形成される。また、既存の或るトラックに対する点対応が有効である場合、対応する点の２Ｄロケーションがトラックに付加される。そうでない場合、そのトラックは削除される。また、フレーム（ｔ）において検出された特徴点がプルーニングされる（pruned）。従って、フレーム（ｔ）において検出される特徴点は、現在のトラックにおける任意の２Ｄロケーションに非常に近い又はそれと正確に同じ座標を有し、検出された特徴点は削除される。
【００２２】
トラックにおける２Ｄロケーションの数は、スライディングウィンドウにおけるフレームの数によって制限される。即ち、任意の所与のトラックが、最大６つの点座標、即ち、前の５フレームからの５座標、及び現在のフレームからの座標、を有し得る。フレーム（ｔ）が処理されるとき既に６つの座標がトラックにある場合、最も古い座標がトラックから削除され、フレーム（ｔ）からの座標が付加される。
【００２３】
その後、カメラ姿勢（pose）演算２０６が実施される。カメラ姿勢は、回転、即ち、ロール、ピッチ、及びヨーでつくられる６つの自由度と、ワールドに対するカメラの３Ｄ並進とで構成される。カメラ姿勢演算２０６の出力は、３つの回転度ベクトル及び３つの並進度ベクトルである。ワールドにおけるｎ個の３Ｄ点のセットと或るフレームにおけるそれらの対応する２Ｄ投影が与えられている場合に、較正されたカメラの姿勢を推定する課題は、パースペクティブ・エヌ・ポイント（ＰｎＰ）と称される。回転及び並進の形式のカメラの姿勢は、ｎ個の３Ｄ点のセット及びそれらの対応する２Ｄ画像投影が与えられる場合に見つけることができる。２０１２年７月のＩＥＥＥトランザクションズ・オン・パターン・アナリシス・アンド・マシン・インテリジェンス、Ｖｏｌ．３４、Ｉｓｓｕｅ７、１４４４〜１４５０頁、Ｓ．Ｌｉらの「パースペクティブ・エヌ・ポイントの課題に対するロバストなＯ（ｎ）解決策」に記載される手法など、任意の適切なＰｎＰ解決手法が用いられ得る。
【非特許文献７】S. Li, et al., “A Robust O(n) Solution to the Perspective-n-Point Problem,” IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 34, Issue 7, July, 2012, pp. 1444-1450
【００２４】
ＰｎＰ手法は、ＳｆＭ再構築パイプラインを介して前の反復において生成された点クラウドを必要とする。スタートアップ時に又は前の反復において点クラウドを生成することができなかった後にパイプラインにおいてフレーム処理された第１の対では、用いるために利用可能な点クラウドがない。幾つかの実施例において、このような状況における姿勢推定に、特異値分解（ＳＶＤ）手法が用いられる。ＳＶＤ手法への入力は、２つのフレーム、２つのフレーム間の特徴点対応、及び基本行列である。後続の反復において、点クラウドが利用可能であり、ＰｎＰ手法を用いて姿勢推定が実施される。任意の適切なＳＶＤベースの手法が用いられ得る。例示の手法の一つは、１９８９年１１月／１２月のＩＥＥＥトランザクションズ・オン・システムズ、マン・アンド・サイバネティクス、Ｖｏｌ．１９、Ｉｓｓｕｅ６、１４２６〜１４４６頁、Ｒ．Ｈａｒａｌｉｃｋらの「対応するポイントデータからの姿勢推定」に記載されている。
【非特許文献８】R. Haralick, et al., “Pose Estimation from Corresponding Point Data,” IEEE Transactions on Systems, Man, and Cybernetics, Vol. 19, Issue 6, pp. 1426-1446, Nov/Dec 1989
【００２５】
その後、現在のスライディングウィンドウにおけるフレームに対応する点クラウドを生成するために、三角測量演算２０８が実施される。図４は、３Ｄ点クラウドを生成するために、三角測量演算２０８によって実施される方法のフローチャートである。各トラック４１０に対して、トラックにおける２Ｄ位置に対応する３Ｄ位置を見つけるために三角測量４００が実施される。上述したように、トラックは、現在のスライディングウィンドウにおける二つ又はそれ以上の連続フレームにおける特徴点の位置を記録する。三角測量４００は、トラックにおける２Ｄ座標を用いて、現在の推定されたカメラ姿勢及び現在の基本行列に基づいて対応する３Ｄ位置を見つける。スライディングウィンドウサイズが６フレームであるので、特徴点に対するトラックは、最大６つの２Ｄ座標を有し得る。
【００２６】
任意の適切な三角測量手法が用いられ得る。例えば、幾つかの適切な手法が、１９９７年１１月のコンピュータビジョン・アンド・イメージ・アンダースタンディング  Ｖｏｌ．６８、Ｎｏ．２、１４６〜１５７頁、Ｒ．Ｈａｒｔｌｅｙ及びＰ．Ｓｔｕｒｍの「三角測量」において説明されており（本願において「Ｈａｒｔｌｅｙ」と称する）、これは参照のため本願に組み込まれている。幾つかの実施例において、「Ｈａｒｔｌｅｙ」に記載されるような反復最小二乗手法が用いられる。「Ｈａｒｔｌｅｙ」は、２つのフレームを用いる三角測量を記載しているが、「Ｈａｒｔｌｅｙ」における手法は、２つより多いフレームに拡張し得る。
【非特許文献８】R. Hartley and P. Sturm, “Triangulation,” Computer Vision and Image Understanding, Vol. 68, No. 2, pp. 146-157, November, 1997
【００２７】
トラックに対応する３Ｄ点が推定された後、３Ｄ位置を推定するために用いられる２つの２Ｄ点のフレーム内に３Ｄ点が再投影され（４０２）、各２Ｄ点に対する再投影誤差が判定される（４０２）。概して、再投影誤差は、投影される２Ｄ点と対応する測定された２Ｄ点との間のユークリッド距離に対応する幾何学的誤差である。再投影誤差は、３Ｄ点の推定が、測定された２Ｄ点の真の投影をどの程度緊密に再生成するかを定量化する。理想的には、再投影誤差はゼロであり、非ゼロ値が三角測量における誤差を示す。そのため、再投影誤差は、３Ｄ点のロバスト性を指し得る。
【００２８】
また、３Ｄ点の対角が判定される（４０４）。図５は、推定される３Ｄ点に対する対角を図示する例である。この例では、特徴点のためのトラックは、３つの連続フレームの各々におけるロケーションに対応する３つの２Ｄ点を含む。対角は、３Ｄ点に対する左光線及び右光線の交差により形成される。左光線は、光学的中央とフレームＮにおける測定された２Ｄ点ロケーションとを通過し、右光線は、光学的中央とフレームＮ＋２における測定された２Ｄ点ロケーションとを通過する。より小さな角度が三角測量の品質に悪影響を与え得るので、対角のサイズは３Ｄ点のロバスト性を示し得る。
【００２９】
再び図４を参照すると、３Ｄ点をプルーニングするべきかについて、即ち、点クラウドにおいて３Ｄ点を含むべきかについて判定（４０６）が成される。この判定は、３Ｄ点を推定するために三角測量された２Ｄ点の再投影誤差に、及び、推定された３Ｄ点の対角のサイズに基づく。概して、角度サイズと再投影誤差の和とが、それぞれの経験的に判定される閾値と比較され、比較の結果は、３Ｄ点が点クラウドにおいて含むために充分にロバストであるか否かを判定するために用いられる。
【００３０】
多くのビジョン応用例において、プルーニングのためには、単一の対角閾値及び単一の投影誤差閾値で充分である。しかし、オートモーティブ応用例において、特に、前方搭載カメラを用いる応用例において、単一の閾値を用いることは問題がある。車両が直線で前方に動いているとき、車の前方のオブジェクトに対応する点の対角は非常に小さくなり得る。この効果は、対象のオブジェクトに対応する点が光学的中央近くにあるとき、一層顕著である。光学的中央におけるオブジェクトをロバストに検出することは、このようなオブジェクトに当たることを避けるためのアクションを取るために重要である。テストにより、このようなオートモーティブ応用例は、角度閾値を０．２５度に設定すると、３Ｄ点の密度が下げる光学的中央近くの多く過ぎる３Ｄ点をプルーニングし、角度閾値を０．１２５度に設定すると充分なプルーニングを提供せず、余りに多くの粗悪に再構成された３Ｄ点を保持することが示されている。光学的中央近くの３Ｄ点の良好な密度と粗悪に再構成された３Ｄ点のプルーニングとの両方をもたらすために、単一の角度閾値は存在しない。
【００３１】
幾つかの実施例において、対角閾値のための単一の値及び投影誤差閾値のための単一の値を用いるのではなく、投影誤差及び対角値が、対角のサイズがより大きいときプルーニング判定においてより多くの再投影誤差が許容され、対角のサイズが一層小さいときプルーニング判定においてより少ない投影誤差が許容されるように選ばれた、漸進的に小さいそれぞれの閾値の複数の対に対してテストされる。漸進的に小さい閾値の利用は、そうでない場合に、より小さな対角及び許容可能な投影誤差を有するロバストな３Ｄ点がプルーニングされないことを確実にする。
【００３２】
表１の例示の擬似コードは、プルーニングに対するこのアプローチを図示する。この例示の擬似コードでは、ｓｕｂｔｅｎｄｅＡｎｇｌｅは、対角のサイズであり、ｐｒｏｊｅｃｔｉｏｎＥｒｒｏｒは、２つの２Ｄ点の再投影誤差の和であり、ａｎｇｌｅＴｈは、ベース角度サイズ閾値であり、ｐｒｏｊｅｃｔｉｏｎＥｒｒＴｈは、ベース投影誤差閾値であり、ｋｘ、ｘ＝１、２、３、４は、ａｎｇｌｅＴＨ及びｐｒｏｊｅｃｔｉｏｎＥｒｒＴｈを低減するために用いられるスケールファクタである。対角サイズ又は投影誤差がそれぞれの閾値比較テストで失敗する場合、ベース閾値は、次により大きなスケールファクタにより低減され、閾値比較テストが再び試みられる。スケールファクタの全てが試みられて失敗した場合、３Ｄ点がプルーニングされる。ベース角度サイズ閾値、ベース投影誤差閾値、及び、スケールファクタに対して、任意の適切な値が用いられ得る。幾つかの実施例において、これらの値は経験的に判定される。また、より多い又はより少ないスケールファクタが用いられる実施例が可能である。
【表１】
2019502210.tif 000003
【００３３】
再び図２を参照すると、三角測量演算２０８の後、最終３Ｄ点クラウド生成２１０が実施される。最終３Ｄ点クラウドは、三角測量演算２０８により出力された３Ｄ点クラウドを、前のスライディングウィンドウに対して生成された３Ｄ点クラウドとマージすることによって生成される。現在の点クラウドにおける新たな点は、前の点クラウドにおける一層古い点に対応するオブジェクトを遮る新たなオブジェクトに対応し得るので、これら２つの点クラウドの単純なマージは問題となる。これらの点が新たなオブジェクトを表さないので、このような一層古い点は最終点クラウドに繰り越されるべきではない。
【００３４】
幾つかの実施例において、２つの点クラウドがマージされる前に、前の３Ｄ点クラウドにおける３Ｄ点が、その３Ｄ点が最終３Ｄ点クラウドに繰り越されるべきか否かを判定するために、基本行列関係テストを用いてテストされた。図６は、３Ｄ点が繰り越されるべきか否かを判定するための例示の方法のフローチャートである。最初に、３Ｄ点に対応するトラックから、前の３Ｄ点クラウドにおける３Ｄ点に対応する前のフレーム（ｔ−１）における２Ｄ点が判定される（６００）。その後、前のフレーム（ｔ−１）における２Ｄ点に対応する２Ｄ点が、点対応を用いて現在のフレーム（ｔ）において見つけられる（６０２）。点対応のために、上述した手法など、任意の適切な手法が用いられ得る。点対応が、現在のフレーム（ｔ）において有効な対応する点を見つけない場合（６０４）、前の３Ｄ点クラウドから３Ｄ点が取り除かれ（６１２）、ある場合、次の３Ｄ点を用いて処理が継続する（６１４）。
【００３５】
有効な対応する点が見つかった場合（６０４）、３Ｄ点が繰り越されるべきかを判定するために、基本行列関係テストが適用される（６０６〜６１０）。より具体的には、２Ｄ点に対応するエピポーラ線が、基本行列を用いて演算される（６０６）。従って、ｘが前のフレーム（ｔ−１）における２Ｄ点である場合、ｘ’は、現在のフレーム（ｔ）における対応する２Ｄ点であり、Ｆは基本行列であり、１’＝Ｆｘは、ｘに対応するエピポーラ線であり、１＝ＦＴｘ’は、ｘ’に対応するエピポーラ線である。その後、対応するエピポーラ線までの各２Ｄ点のユークリッド距離が演算される（６０８）。その後、３Ｄ点が繰り越されるべきかを判定するため、ユークリッド距離の和が閾値と比較される（６１０）。和が充分に小さい場合、即ち閾値以下である場合、３Ｄ点が繰り越される。そうでない場合、３Ｄ点は、前の点クラウドから取り除かれる（６１２）。いずれの場合も、ある場合、次の３Ｄ点を用いて処理が継続する（６１４）。任意の適切な値が閾値に用いられ得る。その値は経験的に判定され得る。
【００３６】
他の実施例
ＰｎＰ解決手法を用いてカメラ姿勢推定が演算される例示の実施例を説明してきた。少なくとも一つの例示の実施例において、ＰｎＰ解決手法を用いて見つけられる姿勢推定を高めるために慣性計測ユニット（ＩＭＵ）が用いられ、又はＩＭＵがカメラ姿勢推定を置換する。
【００３７】
別の例において、特徴点検出が実施される実施例を本明細書において説明してきた。少なくとも一つの例示の実施例において、特徴点検出は実施されず、フレームにおける全ての画素（点）に対して点対応が実施される。
【００３８】
少なくとも一つの例示の実施例において、カメラ姿勢推定及び三角測量の連携最適化のため、バンドル調整のための適切な技法がＳｆＭ再構築パイプラインに付加される。
【００３９】
別の例において、ＳｆＭ再構築パイプラインにおいて実施される処理が、マルチプロセッサＳＯＣにおいてプロセッサに対して実行されるソフトウェア命令として実装される実施例を本明細書において説明してきた。ＳｆＭ再構築パイプラインの機能性は、ソフトウェア、ファームウェア、及びハードウェアの任意の適切な組み合わせとして実装され得る。例えば、機能性の幾つかが、一つ又は複数のハードウェアアクセラレータ、特定用途向け集積回路（ＡＳＩＣ）、及び／又は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）において実装され得る。
【００４０】
別の例において、前の点クラウド及び現在の点クラウドをマージする前に、繰り越されるべきでない任意の３Ｄ点を取り除くために、前の点クラウドにおける全ての３Ｄに対して繰り越し処理が実施される実施例を本明細書において説明してきた。更に別の例において、２つの点クラウドがマージされるので、本明細書に記載される繰り越し判定規準が、前の点クラウドにおける点に適用される。
【００４１】
別の例において、本明細書においてオートモーティブセーフティーシステムを参照して実施例を説明してきた。例示の実施例は、産業応用例、ロボット工学、及びコンシューマ応用例（例えば、バキュームクリーナー及びドローン）など、同様の環境的制約を有する他のコンピュータビジョン応用例に対しても可能である。
【００４２】
方法の工程は、本明細書において連続的に提示及び記載され得るが、図示され、本明細書に記載された一つ又は複数の工程が、同時に実施され得、組み合わされ得、及び／又は、図示した及び／又は本明細書に記載された順とは異なる順で実施され得る。従って、実施例は図面に示される及び／又は本明細書に記載される工程の特定の順に限定されない。
【００４３】
本記載において、「結合」という用語およびその派生語は、間接的、直接的、光学的、及び／又はワイヤレス電気的接続を意味する。例えば、第１のデバイスが第２のデバイスに結合する場合、この接続は、直接的な電気的接続を介するもの、他のデバイス及び接続を介した間接的電気的接続を介するもの、光学的電気的接続を介するもの、及び／又はワイヤレス電気的接続を介するものであり得る。
【００４４】
本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得、他の実施例が可能である。
【図１】
2019502210.tif 000004
【図２】
2019502210.tif 000005
【図３】
2019502210.tif 000006
【図４】
2019502210.tif 000007
【図５】
2019502210.tif 000008
【図６】
2019502210.tif 000009
【国際調査報告】
2019502210.tif 000010