IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テキサス インスツルメンツ インコーポレイテッドの特許一覧

特許7222582コンピュータビジョンシステムにおけるストラクチャフロムモーション(SfM)処理のための方法
<>
  • 特許-コンピュータビジョンシステムにおけるストラクチャフロムモーション(SfM)処理のための方法 図1
  • 特許-コンピュータビジョンシステムにおけるストラクチャフロムモーション(SfM)処理のための方法 図2
  • 特許-コンピュータビジョンシステムにおけるストラクチャフロムモーション(SfM)処理のための方法 図3
  • 特許-コンピュータビジョンシステムにおけるストラクチャフロムモーション(SfM)処理のための方法 図4
  • 特許-コンピュータビジョンシステムにおけるストラクチャフロムモーション(SfM)処理のための方法 図5
  • 特許-コンピュータビジョンシステムにおけるストラクチャフロムモーション(SfM)処理のための方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-07
(45)【発行日】2023-02-15
(54)【発明の名称】コンピュータビジョンシステムにおけるストラクチャフロムモーション(SfM)処理のための方法
(51)【国際特許分類】
   G06T 7/579 20170101AFI20230208BHJP
   G06T 7/00 20170101ALI20230208BHJP
   G08G 1/16 20060101ALI20230208BHJP
【FI】
G06T7/579
G06T7/00 C
G06T7/00 650A
G08G1/16 C
【請求項の数】 11
(21)【出願番号】P 2021065159
(22)【出願日】2021-04-07
(62)【分割の表示】P 2018534727の分割
【原出願日】2016-12-29
(65)【公開番号】P2021119477
(43)【公開日】2021-08-12
【審査請求日】2021-04-26
(31)【優先権主張番号】7029/CHE/2015
(32)【優先日】2015-12-29
(33)【優先権主張国・地域又は機関】IN
(31)【優先権主張番号】15/197,749
(32)【優先日】2016-06-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】ソエブ ナゴリ
(72)【発明者】
【氏名】マヌ マシュー
(72)【発明者】
【氏名】プラシャンス ラマナスプール ヴィスァナス
(72)【発明者】
【氏名】ディーパク クマル ポッダル
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2007-256029(JP,A)
【文献】米国特許出願公開第2014/0139635(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01B 11/00-11/30
G06T 1/00- 1/40
G06T 3/00- 9/40
G06V 10/00-20/90
G08G 1/00-99/00
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法であって、
単眼カメラにより捕捉された複数の連続フレームに基づいて3次元(3D)点のクラウドを生成することと、
3D点の最終クラウドを生成するために前記クラウドを3D点の前のクラウドとマージすることであって、前記前のクラウドにおける各3D点に対して、前記最終クラウドにおいて前記3D点を含むべきか否かを判定することが、
前記3D点に対応する次の直近フレームにおける第2の2D点に対応する直近フレームにおける第1の2D点を位置特定することを試みるために、前記複数の連続フレームにおける直近フレームと前記複数の連続フレームにおける次の直近フレームとの間の点対応を実施することと、
前記第1の2D点が位置特定される場合に、前記第1の2D点に対するエピポーラ線と前記第2の2D点に対するエピポーラ線とを演算することと、
閾値以下である前記第1の2D点と前記第2の2D点とのそれぞれのエピポーラ線までのユークリッド距離の和に基づく前記最終クラウドにおける前記3D点を含むことと、
前記閾値以下でない前記第1の2D点と前記第2の2D点とのそれぞれのエピポーラ線までのユークリッド距離の和に基づく前記最終クラウドにおける前記3D点を含まないことと、
を含む、前記マージすることと、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記3D点のクラウドを生成することが、
前記複数の連続フレームにおける点の推定される2D位置の複数のトラックを受け取ることと、
前記複数のトラックの各トラックに対応する3D点を推定することにより前記3D点のクラウドを演算することと、
を含み、
N個の連続フレームのスライディングウィンドウにおける2つの直近フレームが、前記トラックにおける前記2D位置を推定するための点対応に用いられ、各トラックが最大N個の2D位置を含み、前記複数の連続フレームにおけるフレームの数がNであり、N>2である、方法。
【請求項3】
請求項2に記載の方法であって、
N=6である、方法。
【請求項4】
コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法であって、
単眼カメラにより捕捉されたN個の連続フレームにおける点の推定される2次元(2D)位置の複数のトラックを受け取ることと、
前記複数のトラックの各トラックに対応する3次元(3D)点を推定することによって3D点クラウドを演算することであって、N個の連続フレームのスライディングウィンドウにおける2つの直近フレームが、前記複数のトラックにおける前記2D位置を推定するための点対応に用いられ、各トラックが最大N個の2D位置を含み、N>2である、前記演算することと、
最終3D点クラウドを生成するために前記3D点クラウドを前の3D点クラウドとマージすることであって、前記前のクラウドにおける各3D点に対して、前記最終3D点クラウドにおいて前記3D点を含むべきか否かを判定することが、
前記3D点に対応する次の直近フレームにおける第2の2D点に対応する直近フレームにおける第1の2D点を位置特定することを試みるために、前記N個の連続フレームにおける直近フレームと前記N個の連続フレームにおける次の直近フレームとの間の点対応を実施することと、
前記第1の2D点が位置特定される場合に、前記第1の2D点に対するエピポーラ線と前記第2の2D点に対するエピポーラ線とを演算することと、
閾値以下である前記第1の2D点と前記第2の2D点とのそれぞれのエピポーラ線までのユークリッド距離の和に基づく前記最終3D点クラウドにおける前記3D点を含むことと、
を含む、前記マージすることと、
を含む、方法。
【請求項5】
コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法であって、
単眼カメラにより捕捉された複数の連続フレームに基づいて3次元(3D)点のクラウドを生成することと、
3D点の最終クラウドを生成するために前記クラウドを前の3D点のクラウドとマージすることであって、前記前のクラウドにおける各3D点に対して、前記最終クラウドにおいて前記3D点を含むべきか否かを判定することが、
前記3D点に対応する次の直近フレームにおける第2の2D点に対応する直近フレームにおける第1の2D点を位置特定することを試みるために、前記複数の連続フレームにおける直近フレームと前記複数の連続フレームにおける次の直近フレームとの間の点対応を実施することと、
前記第1の2D点が位置特定される場合に、前記第1の2D点に対するエピポーラ線と前記第2の2D点に対するエピポーラ線とを演算することと、
閾値以下でない前記第1の2D点と前記第2の2D点とのそれぞれのエピポーラ線までのユークリッド距離の和に基づく前記最終クラウドにおける前記3D点を含まないことと、
を含む、前記マージすることと、
を含む、方法。
【請求項6】
請求項5に記載の方法であって、
前記3D点のクラウドを生成することが、
前記複数の連続フレームにおける点の推定される2D位置の複数のトラックを受信することと、
前記複数のトラックの各トラックに対応する3D点を推定することによって前記クラウドを演算することと、
を含み、
N個の連続フレームのスライディングウィンドウにおける2つの直近フレームが、前記複数のトラックにおける前記2D位置を推定するための点対応に用いられ、各トラックが最大N個の2D位置を含み、前記複数の連続フレームにおけるフレームの数がNであり、N>2である、方法。
【請求項7】
請求項6に記載の方法であって、
N=6である、方法。
【請求項8】
請求項5に記載の方法であって、
前記3D点のクラウドを生成することが、
前記複数の連続フレームにおける点の推定される2次元(2D)位置の複数のトラックを受け取ることと、
3次元(3D)点のクラウドを生成することであって、前記複数のトラックの各トラックに対して、
前記トラックにおける前記2D位置に基づいて3D点の推定される位置を三角測量することと、
前記3D点の対角(subtended angle)のサイズと前記3D点の投影誤差とが、前記3D点が包含のために充分にロバストであることを示すときに、前記クラウドにおいて前記3D点を含むことと、
によって、前記3D点のクラウドを生成することと、
を含み、
前記3D点が充分にロバストであるか否かを判定するために前記対角のサイズと前記投影誤差とが漸進的に小さいそれぞれの閾値の複数の対の1つ又は複数に対してテストされ、一対の閾値が角度サイズ閾値と投影誤差閾値とで構成される、方法。
【請求項9】
請求項8に記載の方法であって、
前記閾値の複数の対の初期閾値対が、ベース角度サイズ閾値とベース投影誤差閾値とを含み、対応する所定の漸進的に大きいスケールファクタを前記ベース角度サイズ閾値と前記ベース投影誤差閾値とに適用することによって、前記漸進的に小さいそれぞれの閾値の他の対における閾値が決定される、方法。
【請求項10】
請求項9に記載の方法であって、
漸進的に小さいそれぞれの閾値の5つの対があり、前記漸進的に大きいスケールファクタが2、4、8及び16である、方法。
【請求項11】
コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法であって、
単眼カメラによって捕捉されたN個の連続フレームにおける点の推定される2次元(2D)位置の複数のトラックを生成することと、
前記複数のトラックの各トラックに対応する3次元(3D)点を推定することによって3D点クラウドを演算することであって、N個の連続フレームのスライディングウィンドウにおける2つの直近フレームが、前記複数のトラックにおける前記2D位置を推定するための点対応に用いられ、各トラックが最大N個の2D位置を含み、N>2である、前記3D点クラウドを演算することと、
最終3D点クラウドを生成するために前記3D点クラウドを前の3D点クラウドとマージすることであって、前記前のクラウドにおける各3D点に対して、前記最終3D点クラウドにおいて前記3D点を含むべきか否かを判定することが、
前記3D点に対応する次の直近フレームにおける第2の2D点に対応する直近フレームにおける第1の2D点を位置特定することを試みるために、前記N個の連続フレームにおける直近フレームと前記N個の連続フレームにおける次の直近フレームとの間の点対応を実施することと、
前記第1の2D点が位置特定される場合に、前記第1の2D点に対するエピポーラ線と前記第2の2D点に対するエピポーラ線とを演算することと、
閾値以下である前記第1の2D点と前記第2の2D点とのそれぞれのエピポーラ線までのユークリッド距離の和に基づく前記最終3D点クラウドにおける前記3D点を含むことと、
を含む、前記マージすることと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、概してコンピュータビジョンシステムに関し、更に特定して言えば、コンピュータビジョンシステムにおけるストラクチャフロムモーション(structure from motion)に関連する。
【背景技術】
【0002】
人間によるオペレーション誤差を低減するために、先進運転支援システム(ADAS)と称される新たな部類の埋め込みセーフティーシステムが、自動車に導入されてきている。このようなシステムは、後方カメラ、電子安定性制御、及びビジョンベースの歩行者検出システムなどの機能性を提供し得る。これらのシステムの多くは、単眼カメラを用い、一つ又は複数のカメラの視野におけるオブジェクトを検出するためにコンピュータビジョン処理に依存する。ストラクチャフロムモーション(SfM)処理は、単眼カメラにより捕捉された二次元画像から3次元環境を理解するために、このようなシステムにおける重要なオペレーションである。
【発明の概要】
【0003】
記載される例は、コンピュータビジョンシステムにおけるリアルタイムのストラクチャフロムモーション(SfM)処理のための方法及びシステムを含む。一つの態様において、コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法が、単眼カメラにより捕捉された連続フレームにおける点の推定される2次元(2D)ロケーションのトラックを受け取ること、及び、トラックの各々に対して、3次元(3D)点のクラウドを生成することを含む。3D点のクラウドは、トラックにおける2Dロケーションに基づいて3D点の推定されるロケーションを三角測量すること、及び、3D点の対角(subtended angle)のサイズと3D点の投影誤差とが、3D点が包含のために充分にロバストであることを示すとき、クラウドにおいて3D点を含むことにより生成される。3D点が充分にロバストであるか否かを判定するため、対角のサイズと投影誤差とが、漸進的に小さいそれぞれの閾値の一対又は複数対に対してテストされる。閾値の一対は、角度サイズ閾値及び投影誤差閾値で構成される。
【0004】
一つの態様において、コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法が、単眼カメラにより捕捉された連続フレームに基づいて3次元(3D)点のクラウドを生成すること、及び、このクラウドを3D点の前のクラウドとマージして、3D点の最終クラウドを生成することを含む。前のクラウドにおける各3D点に対して、最終クラウドにおいて3D点を含むべきか否かを判定することが、連続フレームにおける直近フレームとそれらのフレームにおける次の直近フレームとの間の点対応を実施して、3D点に対応する次の直近フレームにおける第2の2次元(2D)点に対応する直近フレームにおける第1の2D点を位置特定することを試みることと、第1の2D点が位置特定される場合に、第1の2D点に対するエピポーラ線、及び第2の2D点に対するエピポーラ線を演算することと、それぞれのエピポーラ線までの第1の2D点及び第2の2D点の、最終クラウドベースのユークリッド距離における3D点を含む又は含まないこととを含む。
【0005】
一つの態様において、コンピュータビジョンシステムにおけるストラクチャフロムモーション処理のための方法が、単眼カメラにより捕捉されたN個の連続フレームにおける点の推定される2次元(2D)ロケーションのトラックを受け取ること、及びトラックの各々に対応する3次元(3D)点を推定することにより3D点クラウドを演算することを含む。N個の連続フレームにおける2つの直近フレームのスライディングウィンドウが、トラックにおける2Dロケーションを推定するための点対応に用いられ、各トラックは最大N個の2Dロケーションを含み、ここで、N>2である。
【図面の簡単な説明】
【0006】
図1】単眼カメラベースのオートモーティブセーフティー応用例に用いるために構成される、例示のマルチプロセッサシステムオンチップ(SOC)のハイレベルブロック図である。
【0007】
図2図1の例示のSOCに対して実装される例示のリアルタイムのストラクチャフロムモーション(SfM)再構築パイプラインを介するデータフローを図示する図である。
【0008】
図3図2のSfM再構築パイプラインにおけるスライディングウィンドウ処理を図示する例である。
【0009】
図4図2のSfM再構築パイプラインにおいて3D点クラウドを生成するための方法のフローチャートである。
【0010】
図5】推定された3D点に対する角度を図示する例である。
【0011】
図6】点クラウドにおいて3D点が繰り越されるべきかを判定するための方法のフローチャートである。
【発明を実施するための形態】
【0012】
一貫性を保つため、種々の図面における同様の要素は同様の参照符号で示している。
【0013】
上述したように、ストラクチャフロムモーション(SfM)処理は、多くのカメラベースの埋め込みセーフティーシステムにおいて実施されるコンピュータビジョン処理における重要なオペレーションである。従来のSfMアプローチの多くは、画像が種々のビューポイントから及び場合によっては異なるカメラによって取得される画像収集からの3次元(3D)再構築に向けられる。マイクロソフトフォトツーリズム、及びコーネル大学において開発されたバンドラーが、このSfMアプローチの2つの例である。このようなSfMアプローチは、360度3次元(3D)再構築に向けられ、典型的に、リアルタイムの再構築に用いるのには適していない。オートモーティブセーフティーシステムでは、画像(フレーム)はリアルタイムで生成され、用いられる如何なるSfMアプローチも、リアルタイムで画像を処理する必要がある。例示の実施例は、単眼カメラから画像を受け取るコンピュータビジョンシステムにおいてリアルタイムのSfM処理を提供する。本明細書に記載されるリアルタイムSfM処理は、オートモーティブ応用例のために想定され得る3D環境の制約を利用する。
【0014】
図1は、単眼カメラベースのADASにおいて用いるために構成される、例示のマルチプロセッサシステムオンチップ(SOC)100のハイレベルブロック図である。少なくとも一つの例において、SOC100は、テキサス・インスツルメンツ社から入手可能なTDA3X SOCの一実施例である。本説明は、SOC100の構成要素の高レベルの説明を含む。例示の構成要素のより詳細な説明は、インド バンガロールにおける2015年12月16~19日の高性能コンピューティングに関する2015 IEEE第22回国際会議の議事録、456~463頁、M.Modyらの「TIのTDA3Xプラットフォームに関する高性能前方カメラADAS応用例」、及び、2014年10月のテキサス・インスツルメンツ、SPRT704A、「先進運転支援システム(ADAS)テクニカルブリーフのためのTDA3x SOCプロセッサ」1~6頁にあり、これらは参照のため本願に組み込まれている。
【文献】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 System (ADAS) Technical Brief”, Texas Instruments, SPRT704A, October, 2014, pp. 1-6
【0015】
SOC100は、デュアル汎用プロセッサ(GPP)102、デュアルデジタルシグナルプロセッサ(DSP)104、及び、高速相互接続122を介して結合されるビジョンプロセッサ106を含む。SOC100は更に、ダイレクトメモリアクセス(DMA)構成要素108、ディスプレイ管理構成要素114に結合されるカメラ捕捉構成要素110、オンチップランダムアクセス(RAM)メモリ116、及び種々の入力/出力(FO)周辺機器120を含み、すべて、相互接続122を介してプロセッサに結合される。また、SOC100は、オートモーティブセーフティー要件に準拠し得るようにするためセーフティー関連機能性を含むセーフティー構成要素118を含む。このような機能性は、データのCRC(巡回冗長検査)のためのサポート、ドリフト検出のためのクロックコンパレータ、誤差シグナリング、窓付きのウォッチドッグタイマー、並びに、損傷及び欠陥に対するSOCの自己テストを含み得る。本明細書に記載するようなリアルタイムSfMを実装するソフトウェアは、メモリ116にストアされ得、SOC100の一つ又は複数のプログラマブルプロセッサに対して実行し得る。
【0016】
図2は、図1の例示のSOC100に対して実装されるコンピュータビジョンシステムの一部として実装されるようなリアルタイムSfM再構築パイプラインの一実施例を介するデータフローを示す図である。SfM再構築パイプラインは、各入力フレームが受け取られた後、3D点クラウドを生成する。高レベルにおいて、SfM再構築パイプラインは、連続フレームにわたって特徴点(interest point)の2次元(2D)ロケーションを検出及び追跡し、特徴点に対応するトラック(tracks)における2Dロケーションをストアする。そのため、トラックは、時間にわたる特徴点の2Dフレーム座標のシーケンスである。3D点クラウドを生成するためにトラックの各々に対して三角測量が実施され、3D点クラウドは、その後、最終3D点クラウドを生成するために用いられる。
【0017】
また、パイプラインは、図3に図示するようにスライディングウィンドウ様式で動作する。ウィンドウはN個のフレームを含み、N個のフレームは、予め処理されたN-1個のフレーム及び現在のフレームである。本願においてより詳細に説明されるように、各出力点クラウドは、現在のウィンドウにおけるフレームに基づく。更に、3D点を推定するために実施される三角測量は、各特徴点に対して現在のスライディングウィンドウにおけるN個のフレームにおいて、最大、N個の2Dロケーションを用いる。任意の適切な値のNが用いられ得、Nの値は、点クラウド品質(Nの値が増大するにつれて品質が増大する)と、演算複雑性、性能、及びメモリサイズなどの考慮との間のトレードオフとして選ばれ得る。説明し易くするため、以降の記載においてN=6が想定される。
【0018】
図2を参照すると、フレームが単眼カメラ124から捕捉構成要素110を介して受信される度に、フレーム、即ち、特徴点を検出するためのフレーム(t)、に対して特徴点検出200が実施される。フレーム(t)及び検出された特徴点が、メモリ201にストアされる。例えば、メモリ201は、図1のオンチップRAM116であり得る。キーポイント又はフィーチャー(feature)と称されることもある特徴点の検出200が、特徴点検出のための任意の適切な手法を用いて実施され得る。また、例えば、特徴点検出は、Harrisコーナー検出又はFAST(features from accelerated test)検出に基づき得る。Harrisコーナー検出は、英国マンチェスターにおける1988年の第4回アルビー・ビジョン・コンファレンスの議事録、147~151頁、C.Harris及びM.Stephensの「コンバインド・コーナー・アンド・エッジ・ディテクター」において記載されている。FASTは、オーストリア グラーツにおける2006年5月7~13日の第9回ヨーロピアン・コンファレンス・オン・コンピュータビジョンの議事録、Vol.1、430~443頁、E.Rosten及びT.Drummondの「高速コーナー検出のためのマシンラーニング」に記載されている。
【文献】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
【0019】
フレーム(t)において特徴点が検出された後、現在のフレーム(t)と前のフレーム(t-1)との間の点対応202が実施される。概して、点対応は、前のフレーム(t-1)において見つかった特徴点と、現在のトラックの各々とを、現在のフレーム(t)にマッチングさせる。後者の場合、現在のトラックにおける最新の2D点が点対応に用いられる。トラックにおける最新の2D点は、点対応がフレーム(t-1)とフレーム(t-2)との間で実施されたとき、フレーム(t-1)において見つかった2D点である。また、現在のトラックがメモリ201にストアされる。前のフレーム(t-1)において検出された特徴点に対する対応が、現在のフレーム(t)において見つからなかった場合、その特徴点は削除される。また、既存の或るトラックに対する対応が、現在のフレーム(t)において見つからなかった場合、そのトラックは削除される。光学フロー手法など、点対応のための任意の適切な手法が用いられ得る。例えば、幾つかの適切な光学フロー手法が、1994年のインターナショナル・ジャーナル・オブ・コンピュータビジョン、Vol.12、No.1、43~77頁、J.Barronらの「光学フロー手法の性能」において説明されている。
【文献】J. Barron, et al., “Performance of Optical Flow Techniques”, International Journal of Computer Vision, Vol. 12, No. 1, pp. 43-77, 1994
【0020】
その後、前のフレーム(t-1)と現在のフレーム(t)との間の点対応を検証するため、対応検証204が実施される。検証を実施するため、現在のフレーム(t)と前のフレーム(t-1)との間の対応する特徴点に基づいて、カメラ基本行列が演算される。基本行列を演算するための任意の適切な手法が用いられ得る。例示の手法の一つが、2016年5月14日付けでhttps://en.wikipedia.org/wiki/Eight-point_algorithmからアクセス可能な、ウィキペディア、「8点アルゴリズム」に記載されている。その後、基本行列は、点対応の品質を評価するため、即ち、点対応を検証するために用いられる。点対応を検証するための基本行列の利用は既知であり、そのため、本願において更なる説明はしない。
【文献】“Eight-point Algorithm”, Wikipedia.org/wiki/Eight-point_algorithm on May 14, 2016
【0021】
特徴点に対して点対応が有効でない場合、その特徴点は削除される。そうでない場合、特徴点の2Dロケーションとフレーム(t)における対応する点の2Dロケーションとを含む新たなトラックが形成される。また、既存の或るトラックに対する点対応が有効である場合、対応する点の2Dロケーションがトラックに付加される。そうでない場合、そのトラックは削除される。また、フレーム(t)において検出された特徴点がプルーニングされる(pruned)。従って、フレーム(t)において検出される特徴点は、現在のトラックにおける任意の2Dロケーションに非常に近い又はそれと正確に同じ座標を有し、検出された特徴点は削除される。
【0022】
トラックにおける2Dロケーションの数は、スライディングウィンドウにおけるフレームの数によって制限される。即ち、任意の所与のトラックが、最大6つの点座標、即ち、前の5フレームからの5座標、及び現在のフレームからの座標、を有し得る。フレーム(t)が処理されるとき既に6つの座標がトラックにある場合、最も古い座標がトラックから削除され、フレーム(t)からの座標が付加される。
【0023】
その後、カメラ姿勢(pose)演算206が実施される。カメラ姿勢は、回転、即ち、ロール、ピッチ、及びヨーでつくられる6つの自由度と、ワールドに対するカメラの3D並進とで構成される。カメラ姿勢演算206の出力は、3つの回転度ベクトル及び3つの並進度ベクトルである。ワールドにおけるn個の3D点のセットと或るフレームにおけるそれらの対応する2D投影が与えられている場合に、較正されたカメラの姿勢を推定する課題は、パースペクティブ・エヌ・ポイント(PnP)と称される。回転及び並進の形式のカメラの姿勢は、n個の3D点のセット及びそれらの対応する2D画像投影が与えられる場合に見つけることができる。2012年7月のIEEEトランザクションズ・オン・パターン・アナリシス・アンド・マシン・インテリジェンス、Vol.34、Issue7、1444~1450頁、S.Liらの「パースペクティブ・エヌ・ポイントの課題に対するロバストなO(n)解決策」に記載される手法など、任意の適切なPnP解決手法が用いられ得る。
【文献】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
【0024】
PnP手法は、SfM再構築パイプラインを介して前の反復において生成された点クラウドを必要とする。スタートアップ時に又は前の反復において点クラウドを生成することができなかった後にパイプラインにおいてフレーム処理された第1の対では、用いるために利用可能な点クラウドがない。幾つかの実施例において、このような状況における姿勢推定に、特異値分解(SVD)手法が用いられる。SVD手法への入力は、2つのフレーム、2つのフレーム間の特徴点対応、及び基本行列である。後続の反復において、点クラウドが利用可能であり、PnP手法を用いて姿勢推定が実施される。任意の適切なSVDベースの手法が用いられ得る。例示の手法の一つは、1989年11月/12月のIEEEトランザクションズ・オン・システムズ、マン・アンド・サイバネティクス、Vol.19、Issue6、1426~1446頁、R.Haralickらの「対応するポイントデータからの姿勢推定」に記載されている。
【文献】R. Haralick, et al., “Pose Estimatin from Corresponding Point Data”, IEEE Transactions on Systems, Man, and Cybernetics, Vol. 19, Issue 6, pp. 1426-1446, November/December 1989
【0025】
その後、現在のスライディングウィンドウにおけるフレームに対応する点クラウドを生成するために、三角測量演算208が実施される。図4は、3D点クラウドを生成するために、三角測量演算208によって実施される方法のフローチャートである。各トラック410に対して、トラックにおける2D位置に対応する3D位置を見つけるために三角測量400が実施される。上述したように、トラックは、現在のスライディングウィンドウにおける二つ又はそれ以上の連続フレームにおける特徴点の位置を記録する。三角測量400は、トラックにおける2D座標を用いて、現在の推定されたカメラ姿勢及び現在の基本行列に基づいて対応する3D位置を見つける。スライディングウィンドウサイズが6フレームであるので、特徴点に対するトラックは、最大6つの2D座標を有し得る。
【0026】
任意の適切な三角測量手法が用いられ得る。例えば、幾つかの適切な手法が、1997年11月のコンピュータビジョン・アンド・イメージ・アンダースタンディング Vol.68、No.2、146~157頁、R.Hartley及びP.Sturmの「三角測量」において説明されており(本願において「Hartley」と称する)、これは参照のため本願に組み込まれている。幾つかの実施例において、「Hartley」に記載されるような反復最小二乗手法が用いられる。「Hartley」は、2つのフレームを用いる三角測量を記載しているが、「Hartley」における手法は、2つより多いフレームに拡張し得る。
【文献】R. Hartley and P. Sturm, “Triangulation”, Computer Vision and Image Understanding, Vol. 68, No. 2, pp. 146-157, November, 1997
【0027】
トラックに対応する3D点が推定された後、3D位置を推定するために用いられる2つの2D点のフレーム内に3D点が再投影され(402)、各2D点に対する再投影誤差が判定される(402)。概して、再投影誤差は、投影される2D点と対応する測定された2D点との間のユークリッド距離に対応する幾何学的誤差である。再投影誤差は、3D点の推定が、測定された2D点の真の投影をどの程度緊密に再生成するかを定量化する。理想的には、再投影誤差はゼロであり、非ゼロ値が三角測量における誤差を示す。そのため、再投影誤差は、3D点のロバスト性を指し得る。
【0028】
また、3D点の対角が判定される(404)。図5は、推定される3D点に対する対角を図示する例である。この例では、特徴点のためのトラックは、3つの連続フレームの各々におけるロケーションに対応する3つの2D点を含む。対角は、3D点に対する左光線及び右光線の交差により形成される。左光線は、光学的中央とフレームNにおける測定された2D点ロケーションとを通過し、右光線は、光学的中央とフレームN+2における測定された2D点ロケーションとを通過する。より小さな角度が三角測量の品質に悪影響を与え得るので、対角のサイズは3D点のロバスト性を示し得る。
【0029】
再び図4を参照すると、3D点をプルーニングするべきかについて、即ち、点クラウドにおいて3D点を含むべきかについて判定(406)が成される。この判定は、3D点を推定するために三角測量された2D点の再投影誤差に、及び、推定された3D点の対角のサイズに基づく。概して、角度サイズと再投影誤差の和とが、それぞれの経験的に判定される閾値と比較され、比較の結果は、3D点が点クラウドにおいて含むために充分にロバストであるか否かを判定するために用いられる。
【0030】
多くのビジョン応用例において、プルーニングのためには、単一の対角閾値及び単一の投影誤差閾値で充分である。しかし、オートモーティブ応用例において、特に、前方搭載カメラを用いる応用例において、単一の閾値を用いることは問題がある。車両が直線で前方に動いているとき、車の前方のオブジェクトに対応する点の対角は非常に小さくなり得る。この効果は、対象のオブジェクトに対応する点が光学的中央近くにあるとき、一層顕著である。光学的中央におけるオブジェクトをロバストに検出することは、このようなオブジェクトに当たることを避けるためのアクションを取るために重要である。テストにより、このようなオートモーティブ応用例は、角度閾値を0.25度に設定すると、3D点の密度が下げる光学的中央近くの多く過ぎる3D点をプルーニングし、角度閾値を0.125度に設定すると充分なプルーニングを提供せず、余りに多くの粗悪に再構成された3D点を保持することが示されている。光学的中央近くの3D点の良好な密度と粗悪に再構成された3D点のプルーニングとの両方をもたらすために、単一の角度閾値は存在しない。
【0031】
幾つかの実施例において、対角閾値のための単一の値及び投影誤差閾値のための単一の値を用いるのではなく、投影誤差及び対角値が、対角のサイズがより大きいときプルーニング判定においてより多くの再投影誤差が許容され、対角のサイズが一層小さいときプルーニング判定においてより少ない投影誤差が許容されるように選ばれた、漸進的に小さいそれぞれの閾値の複数の対に対してテストされる。漸進的に小さい閾値の利用は、そうでない場合に、より小さな対角及び許容可能な投影誤差を有するロバストな3D点がプルーニングされないことを確実にする。
【0032】
表1の例示の擬似コードは、プルーニングに対するこのアプローチを図示する。この例示の擬似コードでは、subtendeAngleは、対角のサイズであり、projectionErrorは、2つの2D点の再投影誤差の和であり、angleThは、ベース角度サイズ閾値であり、projectionErrThは、ベース投影誤差閾値であり、kx、x=1、2、3、4は、angleTH及びprojectionErrThを低減するために用いられるスケールファクタである。対角サイズ又は投影誤差がそれぞれの閾値比較テストで失敗する場合、ベース閾値は、次により大きなスケールファクタにより低減され、閾値比較テストが再び試みられる。スケールファクタの全てが試みられて失敗した場合、3D点がプルーニングされる。ベース角度サイズ閾値、ベース投影誤差閾値、及び、スケールファクタに対して、任意の適切な値が用いられ得る。幾つかの実施例において、これらの値は経験的に判定される。また、より多い又はより少ないスケールファクタが用いられる実施例が可能である。
【表1】
【0033】
再び図2を参照すると、三角測量演算208の後、最終3D点クラウド生成210が実施される。最終3D点クラウドは、三角測量演算208により出力された3D点クラウドを、前のスライディングウィンドウに対して生成された3D点クラウドとマージすることによって生成される。現在の点クラウドにおける新たな点は、前の点クラウドにおける一層古い点に対応するオブジェクトを遮る新たなオブジェクトに対応し得るので、これら2つの点クラウドの単純なマージは問題となる。これらの点が新たなオブジェクトを表さないので、このような一層古い点は最終点クラウドに繰り越されるべきではない。
【0034】
幾つかの実施例において、2つの点クラウドがマージされる前に、前の3D点クラウドにおける3D点が、その3D点が最終3D点クラウドに繰り越されるべきか否かを判定するために、基本行列関係テストを用いてテストされた。図6は、3D点が繰り越されるべきか否かを判定するための例示の方法のフローチャートである。最初に、3D点に対応するトラックから、前の3D点クラウドにおける3D点に対応する前のフレーム(t-1)における2D点が判定される(600)。その後、前のフレーム(t-1)における2D点に対応する2D点が、点対応を用いて現在のフレーム(t)において見つけられる(602)。点対応のために、上述した手法など、任意の適切な手法が用いられ得る。点対応が、現在のフレーム(t)において有効な対応する点を見つけない場合(604)、前の3D点クラウドから3D点が取り除かれ(612)、ある場合、次の3D点を用いて処理が継続する(614)。
【0035】
有効な対応する点が見つかった場合(604)、3D点が繰り越されるべきかを判定するために、基本行列関係テストが適用される(606~610)。より具体的には、2D点に対応するエピポーラ線が、基本行列を用いて演算される(606)。従って、xが前のフレーム(t-1)における2D点である場合、x’は、現在のフレーム(t)における対応する2D点であり、Fは基本行列であり、1’=Fxは、xに対応するエピポーラ線であり、1=FTx’は、x’に対応するエピポーラ線である。その後、対応するエピポーラ線までの各2D点のユークリッド距離が演算される(608)。その後、3D点が繰り越されるべきかを判定するため、ユークリッド距離の和が閾値と比較される(610)。和が充分に小さい場合、即ち閾値以下である場合、3D点が繰り越される。そうでない場合、3D点は、前の点クラウドから取り除かれる(612)。いずれの場合も、ある場合、次の3D点を用いて処理が継続する(614)。任意の適切な値が閾値に用いられ得る。その値は経験的に判定され得る。
【0036】
他の実施例
PnP解決手法を用いてカメラ姿勢推定が演算される例示の実施例を説明してきた。少なくとも一つの例示の実施例において、PnP解決手法を用いて見つけられる姿勢推定を高めるために慣性計測ユニット(IMU)が用いられ、又はIMUがカメラ姿勢推定を置換する。
【0037】
別の例において、特徴点検出が実施される実施例を本明細書において説明してきた。少なくとも一つの例示の実施例において、特徴点検出は実施されず、フレームにおける全ての画素(点)に対して点対応が実施される。
【0038】
少なくとも一つの例示の実施例において、カメラ姿勢推定及び三角測量の連携最適化のため、バンドル調整のための適切な技法がSfM再構築パイプラインに付加される。
【0039】
別の例において、SfM再構築パイプラインにおいて実施される処理が、マルチプロセッサSOCにおいてプロセッサに対して実行されるソフトウェア命令として実装される実施例を本明細書において説明してきた。SfM再構築パイプラインの機能性は、ソフトウェア、ファームウェア、及びハードウェアの任意の適切な組み合わせとして実装され得る。例えば、機能性の幾つかが、一つ又は複数のハードウェアアクセラレータ、特定用途向け集積回路(ASIC)、及び/又は、フィールドプログラマブルゲートアレイ(FPGA)において実装され得る。
【0040】
別の例において、前の点クラウド及び現在の点クラウドをマージする前に、繰り越されるべきでない任意の3D点を取り除くために、前の点クラウドにおける全ての3Dに対して繰り越し処理が実施される実施例を本明細書において説明してきた。更に別の例において、2つの点クラウドがマージされるので、本明細書に記載される繰り越し判定規準が、前の点クラウドにおける点に適用される。
【0041】
別の例において、本明細書においてオートモーティブセーフティーシステムを参照して実施例を説明してきた。例示の実施例は、産業応用例、ロボット工学、及びコンシューマ応用例(例えば、バキュームクリーナー及びドローン)など、同様の環境的制約を有する他のコンピュータビジョン応用例に対しても可能である。
【0042】
方法の工程は、本明細書において連続的に提示及び記載され得るが、図示され、本明細書に記載された一つ又は複数の工程が、同時に実施され得、組み合わされ得、及び/又は、図示した及び/又は本明細書に記載された順とは異なる順で実施され得る。従って、実施例は図面に示される及び/又は本明細書に記載される工程の特定の順に限定されない。
【0043】
本記載において、「結合」という用語およびその派生語は、間接的、直接的、光学的、及び/又はワイヤレス電気的接続を意味する。例えば、第1のデバイスが第2のデバイスに結合する場合、この接続は、直接的な電気的接続を介するもの、他のデバイス及び接続を介した間接的電気的接続を介するもの、光学的電気的接続を介するもの、及び/又はワイヤレス電気的接続を介するものであり得る。
【0044】
本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得、他の実施例が可能である。
図1
図2
図3
図4
図5
図6