(57)【特許請求の範囲】
【請求項１】
被写体を含む周辺を撮像する複数の撮像装置に接続される画像処理装置であって、
前記撮像装置から画像データをそれぞれ取得する取得部と、
前記画像データからそれぞれオプティカルフローを計算するオプティカルフロー計算部と、
前記画像データからそれぞれの前記撮像装置の角度及び位置を示すポーズをそれぞれ計算するポーズ計算部と、
前記オプティカルフロー及び前記撮像装置のポーズに基づいて前記被写体の３次元座標を計算する３次元座標計算部と、
前記３次元座標に基づいて前記周辺を示す３次元データを生成する生成部と、
複数のフレームにおいて、それぞれの前記３次元座標について、同一の被写体を示す前記３次元座標をマッチングさせるマッチング部と、
前記マッチングに基づいて前記複数のフレームのうち、いずれかに前記同一の被写体を示す前記３次元座標がないと、前記３次元座標のデータを削除する削除部と
を含む画像処理装置。
【請求項２】
被写体を含む周辺を撮像する複数の撮像装置に接続される画像処理装置が行う画像処理方法であって、
前記画像処理装置が、前記撮像装置から画像データをそれぞれ取得する取得手順と、
前記画像処理装置が、前記画像データからそれぞれオプティカルフローを計算するオプティカルフロー計算手順と、
前記画像処理装置が、前記画像データからそれぞれの前記撮像装置の角度及び位置を示すポーズをそれぞれ計算するポーズ計算手順と、
前記画像処理装置が、前記オプティカルフロー及び前記撮像装置のポーズに基づいて前記被写体の３次元座標を計算する３次元座標計算手順と、
前記画像処理装置が、前記３次元座標に基づいて前記周辺を示す３次元データを生成する生成手順と、
前記画像処理装置が、複数のフレームにおいて、それぞれの前記３次元座標について、同一の被写体を示す前記３次元座標をマッチングさせるマッチング手順と、
前記画像処理装置が、前記マッチングに基づいて前記複数のフレームのうち、いずれかに前記同一の被写体を示す前記３次元座標がないと、前記３次元座標のデータを削除する削除手順と
を含む画像処理方法。
【請求項３】
被写体を含む周辺を撮像する複数の撮像装置及び１以上の画像処理装置を有する画像処理システムであって、
前記撮像装置から画像データをそれぞれ取得する取得部と、
前記画像データからそれぞれオプティカルフローを計算するオプティカルフロー計算部と、
前記画像データからそれぞれの前記撮像装置の角度及び位置を示すポーズをそれぞれ計算するポーズ計算部と、
前記オプティカルフロー及び前記撮像装置のポーズに基づいて前記被写体の３次元座標を計算する３次元座標計算部と、
前記３次元座標に基づいて前記周辺を示す３次元データを生成する生成部と、
複数のフレームにおいて、それぞれの前記３次元座標について、同一の被写体を示す前記３次元座標をマッチングさせるマッチング部と、
前記マッチングに基づいて前記複数のフレームのうち、いずれかに前記同一の被写体を示す前記３次元座標がないと、前記３次元座標のデータを削除する削除部と
を含む画像処理システム。
【請求項４】
被写体を含む周辺を撮像する複数の撮像装置に接続されるコンピュータに画像処理を実行させるためのプログラムであって、
前記コンピュータが、前記撮像装置から画像データをそれぞれ取得する取得手順と、
前記コンピュータが、前記画像データからそれぞれオプティカルフローをそれぞれ計算するオプティカルフロー計算手順と、
前記コンピュータが、前記画像データからそれぞれの前記撮像装置の角度及び位置を示すポーズを計算するポーズ計算手順と、
前記コンピュータが、前記オプティカルフロー及び前記撮像装置のポーズに基づいて前記被写体の３次元座標を計算する３次元座標計算手順と、
前記コンピュータが、前記３次元座標に基づいて前記周辺を示す３次元データを生成する生成手順と、
前記コンピュータが、複数のフレームにおいて、それぞれの前記３次元座標について、同一の被写体を示す前記３次元座標をマッチングさせるマッチング手順と、
前記コンピュータが、前記マッチングに基づいて前記複数のフレームのうち、いずれかに前記同一の被写体を示す前記３次元座標がないと、前記３次元座標のデータを削除する削除手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理システム、及びプログラムに関する。
【背景技術】
【０００２】
従来、車両等の移動体に複数のカメラを取り付け、それぞれのカメラによって撮像された画像を用いて、移動体の周辺環境を３次元的に認識する方法が知られている。
【０００３】
さらに、移動体の周辺環境のうち、撮像された画像に基づくいわゆるオプティカルフロー（ｏｐｔｉｃａｌ  ｆｌｏｗ）によって、移動体の運動量を推定する方法が知られている。
【０００４】
例えば、移動体の運動量を推定する方法において、まず、画像におけるオプティカルフローの向きに基づいてサンプリングされた特徴点がグループに振り分けられる。次に、振り分けられた特徴点を収束させて基礎行列が求められ、求められた基礎行列に基づいて、移動体の運動量を推定する方法が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、画像にノイズ（ｎｏｉｓｅ）の入力、画像の分解能不足、又は遮蔽物の写り込み等が起きた場合、被写体を追跡できない場合がある。ゆえに、３次元データの生成において、被写体の位置が精度よく計算されない場合がある。
【０００６】
本発明の１つの側面は、３次元データの生成において、被写体の位置を精度よく計算できる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様における、被写体を含む周辺を撮像する複数の撮像装置に接続される画像処理装置は、前記撮像装置から画像データをそれぞれ取得する取得部と、前記画像データからそれぞれオプティカルフローを計算するオプティカルフロー計算部と、前記画像データからそれぞれの撮像装置の角度及び位置を示すポーズをそれぞれ計算するポーズ計算部と、前記オプティカルフロー及び前記撮像装置のポーズに基づいて３次元座標を計算する３次元座標計算部と、前記３次元座標に基づいて前記周辺を示す３次元データを生成する生成部と、複数のフレームにおいて、それぞれの前記３次元座標について、同一の被写体を示す前記３次元座標をマッチングさせるマッチング部と、前記マッチングに基づいて前記複数のフレームのうち、いずれかに前記同一の被写体を示す前記３次元座標がないと、前記３次元座標のデータを削除する削除部とを含む。
【発明の効果】
【０００８】
３次元データの生成において、被写体の位置を精度よく計算できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る画像処理システムの全体構成の一例を示す全体構成図である。
【図２】本発明の一実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。
【図３】本発明の一実施形態に係る画像処理装置による全体処理の一例を示すフローチャートである。
【図４】本発明の一実施形態に係る画像処理装置によるカメラのポーズの計算の一例を示す図である。
【図５】本発明の一実施形態に係るピンホールカメラモデルの一例を示す図である。
【図６】本発明の一実施形態に係る３次元座標の計算の一例を示す図である。
【図７】本発明の一実施形態に係る３次元データの一例を示す図である。
【図８】本発明の一実施形態に係る画像処理装置による全体処理の処理結果の一例を示す図である。
【図９】本発明の一実施形態に係る遮蔽物の一例を示す図である。
【図１０】本発明の一実施形態に係る画像処理装置によるマッチングの一例を示す図である。
【図１１】本発明の一実施形態に係る第２実施形態の画像処理システムの全体構成の一例を示す全体構成図である。
【図１２】本発明の一実施形態に係る第２実施形態の画像処理装置による全体処理の処理結果の一例を示す図である。
【図１３】本発明の一実施形態に係る第２実施形態の画像処理装置によって計算される３次元座標の一例を示す図である。
【図１４】本発明の一実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について説明する。
【００１１】
（第１実施形態）
（全体構成例）
図１は、本発明の一実施形態に係る画像処理システムの全体構成の一例を示す全体構成図である。具体的には、図１は、撮像装置としてカメラを使用する例であり、画像処理システム１が有する第１カメラ１０及び第２カメラ１１を移動体の一例である車両２に設置した例である。
【００１２】
以下、図１では、車両２の進行方向をＺ軸とする。さらに、図示するように、第１カメラ１０の光軸１０Ｚは、Ｚ軸と同一方向とし、これに対して、第２カメラ１１の光軸１１Ｚは、Ｚ軸と反対方向となるように設置される例で説明する。
【００１３】
なお、画像処理システム１は、３つ以上のカメラを有してもよい。
【００１４】
図２は、本発明の一実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。具体的には、画像処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００Ｈ１と、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１００Ｈ２と、記憶装置１００Ｈ３と、入出力Ｉ／Ｆ（ｉｎｔｅｒｆａｃｅ）１００Ｈ４とを有する。
【００１５】
ＣＰＵ１００Ｈ１は、画像処理装置１００が行う画像処理に係る各種処理及び画像データ等の各種データの加工を行う演算装置である。さらに、ＣＰＵ１００Ｈ１は、画像処理装置１００が有する装置等を制御する制御装置である。
【００１６】
ＡＳＩＣ１００Ｈ２は、画像処理装置１００が行う画像処理に係る各種処理及び画像データ等の各種データの加工を行う電子回路である。なお、ＡＳＩＣ１００Ｈ２は、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）でもよい。
【００１７】
記憶装置１００Ｈ３は、画像処理装置１００が使うデータ、プログラム、及び設定値等を記憶する。また、記憶装置１００Ｈ３は、いわゆるメモリ（ｍｅｍｏｒｙ）等である。なお、記憶装置１００Ｈ３は、ハードディスク（ｈａｒｄｄｉｓｋ）等の補助記憶装置等を有してもよい。
【００１８】
入出力Ｉ／Ｆ１００Ｈ４は、画像処理装置１００にデータを入出力するインタフェースである。具体的には、入出力Ｉ／Ｆ１００Ｈ４は、コネクタ等である。なお、入出力Ｉ／Ｆ１００Ｈ４は、ネットワーク又は無線等を使用してもよい。
【００１９】
また、画像処理装置１００は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置でもよい。
【００２０】
画像処理システム１は、画像処理装置１００を有し、画像処理装置１００は、図１に示す第１カメラ１０及び第２カメラ１１に接続される。なお、画像処理装置１００は、ネットワークを介して他の１以上の情報処理装置と接続され、各種処理の全部又は一部を分散、並列、又は冗長して処理を行ってもよい。
【００２１】
以下、ロボット又は車両等の移動体の位置を推定するＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ）においてカメラを使うＶｉｓｕａｌ  ＳＬＡＭについて説明する。具体的には、Ｖｉｓｕａｌ  ＳＬＡＭでは、カメラによって撮像された画像データに基づいて移動体の周辺を示す地図が生成され、移動体の位置が推定される。即ち、Ｖｉｓｕａｌ  ＳＬＡＭでは、移動体の周辺を示す地図及び移動体の位置を示す３次元データが生成される。
【００２２】
（全体処理例）
図３は、本発明の一実施形態に係る画像処理装置による全体処理の一例を示すフローチャートである。
【００２３】
（初期値の入力例（ステップＳ１））
ステップＳ１では、画像処理装置は、３次元データの初期値を入力する。
【００２４】
例えば、初期値となる３次元データは、ステレオカメラ等によって生成される。なお、３次元データは、レーダ等を用いて距離を計測するセンサ、速度を計測するセンサ、加速度センサ、ジャイロ（ｇｙｒｏ）センサ、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）、又はこれらを組み合わせたシステムによって生成されてもよい。また、３次元データの初期値は、画像処理システム１（図１）が有するカメラから取得される画像データ等から生成されてもよい。
【００２５】
（画像データの取得例（ステップＳ２））
ステップＳ２では、画像処理装置は、それぞれのカメラから画像データを取得する。具体的には、画像処理装置は、第１カメラ１０（図１）及び第２カメラ１１（図２）からそれぞれ画像データを取得する。
【００２６】
（特徴点の算出例（ステップＳ３））
ステップＳ３では、画像処理装置は、画像データ内に含まれる特徴点を画像データごとにそれぞれ算出する。具体的には、ステップＳ３では、画像処理装置は、Ｈａｒｒｉｓ行列等によって、ステップＳ２で取得されるそれぞれの画像データ内に含まれる特徴点を算出する。
【００２７】
（オプティカルフローの計算例（ステップＳ４））
ステップＳ４では、画像処理装置は、ステップＳ３で算出される特徴点のオプティカルフローを画像データごとにそれぞれ計算する。具体的には、ステップＳ４では、画像処理装置は、勾配法又はＬｕｃａｓ−Ｋａｎａｄｅ法等によって、オプティカルフローをそれぞれ計算する。
【００２８】
オプティカルフローは、連続して撮像される複数枚の静止画又は動画において、撮像される被写体の動きをベクトルで示す。即ち、同一の被写体が複数のフレームでそれぞれ撮像され、オプティカルフローが計算されると、被写体が有する特徴点の軌跡がオプティカルフローとして示される。
【００２９】
（カメラのポーズの計算例（ステップＳ５））
ステップＳ５では、画像処理装置は、ステップＳ４で計算されるオプティカルフローに基づいてカメラのポーズを計算する。
【００３０】
図４は、本発明の一実施形態に係る画像処理装置によるカメラのポーズの計算の一例を示す図である。具体的には、図４（Ａ）は、カメラが位置ＰＡから位置ＰＢに移動する例を示す図である。なお、位置ＰＡで撮像される画像を画像Ｉｍｇ１とし、位置ＰＢで撮像される画像を画像Ｉｍｇ２とする。また、画像Ｉｍｇ１の次のフレームで画像Ｉｍｇ２が撮像されるとする。
【００３１】
また、カメラのポーズは、例えば、６ＤＯＦ（Ｄｅｇｒｅｅｓ  Ｏｆ  Ｆｒｅｅｄｏｍ、自由度）で示される。即ち、カメラのポーズは、ＸＹＺ軸に対するそれぞれの位置及びＸＹＺ軸に対するそれぞれの角度で示される。
【００３２】
具体的には、図４（Ｂ）で示すように、３次元上の点Ｐ２、点Ｐ３、点Ｐ４、及び点Ｐ５のそれぞれの被写体が、画像Ｉｍｇ１及び画像Ｉｍｇ２にそれぞれ撮像される。次に、画像処理装置は、画像Ｉｍｇ１及び画像Ｉｍｇ２から特徴点ＦＰ２、特徴点ＦＰ３、特徴点ＦＰ４、及び特徴点ＦＰ５をステップＳ３の処理により、それぞれ算出する。また、図４（Ｂ）で示すように、画像処理装置は、特徴点ＦＰ２、特徴点ＦＰ３、特徴点ＦＰ４、及び特徴点ＦＰ５のそれぞれの各特徴点から位置ＰＡ及び位置ＰＢをそれぞれ計算することができる。
【００３３】
具体的には、カメラのポーズを示す位置ＰＡ及び位置ＰＢは、例えば各特徴点から下記（式１）に基づいてそれぞれ計算される。即ち、下記（式１）で示すように、カメラのポーズは、各特徴点の投影点の座標ｘ及び各投影点が実際に観測される座標ｘ'の差をそれぞれ計算し、それぞれの差の総和が最小となる位置である。
【００３４】
【数１】
0006603993.tif 000002
なお、上記（式１）では、Ｐは、射影行列を示す。また、ｉは、図４（Ｂ）に示す各特徴点を特定する値であり、Ｘｗは、３次元座標系である世界座標系での座標を示す。さらに、[Ｒ｜ｔ]は、座標を世界座標系から画像上の２次元座標系であるカメラ座標系に変換する変換行列である。
【００３５】
図５は、本発明の一実施形態に係るピンホールカメラモデルの一例を示す図である。例えば、図５（Ａ）に示すピンホールモデルでは、図５（Ｂ）に示すような関係で、世界座標系及びカメラ座標系の関係が示せる。なお、図５（Ａ）では、レンズＬＺの右側が世界座標系ＣＲ＿Ｗである。これに対して、レンズＬＺの左側がカメラ座標系ＣＲ＿Ｃである。
【００３６】
上記（式１）での射影行列Ｐは、図５（Ｂ）の行列Ａと、図５（Ｃ）に示すアスペクト比等のカメラの内部パラメータから定まる行列とを乗算して求める。
【００３７】
また、上記（式１）では、求める位置ＰＡ（図４）及び位置ＰＢ（図４）は、［Ｒ｜ｔ］によってそれぞれ示される。また、［Ｒ｜ｔ］は、例えば下記（式２）のように示せる。
【００３８】
【数２】
0006603993.tif 000003
上記（式１）では、実際に観測される座標ｘ'は、オプティカルフローに基づいて求められる。なお、実際に観測される座標ｘ'は、観測の対象となる特徴点が動いたり、異なる３次元座標と対応してしまう場合もあるため、フレームごとに計算されるのが好ましい。即ち、画像処理装置は、フレームごとにオプティカルフローを求めると、フレームごとにカメラのポーズを計算することができる。したがって、画像処理装置は、フレームごとにカメラのポーズが計算できるため、カメラのポーズを示す精度を向上できる。
【００３９】
さらに、ステップＳ４（図３）でオプティカルフローが計算されているため、画像処理装置は、画像Ｉｍｇ１（図４）に撮像される各特徴点が、画像Ｉｍｇ２（図４）の撮像される各特徴点であるか対応させることができる。つまり、オプティカルフローによって、画像処理装置は、各特徴点をそれぞれ追跡することができる。したがって、オプティカルフローによって、画像処理装置は、精度よく特徴点を対応させることができるため、画像処理装置は、カメラのポーズを精度よく計算することができる。
【００４０】
（３次元座標の計算例（ステップＳ６））
図３に戻り、ステップＳ６では、画像処理装置は、オプティカルフローに基づいて３次元座標を計算する。
【００４１】
図６は、本発明の一実施形態に係る３次元座標の計算の一例を示す図である。具体的には、図６は、３次元座標Ｘ０を、画像Ｉｍｇ１及び画像Ｉｍｇ２に基づいて計算する例を示す図である。なお、画像Ｉｍｇ１で、３次元座標Ｘ０に係る被写体が２次元座標ｘ１に撮像されるとし、さらに、画像Ｉｍｇ２で、３次元座標Ｘ０に係る被写体が２次元座標ｘ２に撮像されるとする。
【００４２】
ここで、画像Ｉｍｇ１によるカメラの射影行列を射影行列Ｐ１とすると、３次元座標Ｘ０及び２次元座標ｘ１の関係は、下記（式３）のように示せる。なお、射影行列Ｐ１は、上記（式１）では、射影行列Ｐに相当する。
【００４３】
ｘ１×Ｐ１Ｘ０＝０・・（式３）
なお、上記（式３）において、射影行列Ｐ１は、ステップＳ５（図３）で計算されるカメラのポーズによって定まる。また、上記（式３）において、２次元座標ｘ１は、画像Ｉｍｇ１における座標値によって定まる。
【００４４】
したがって、画像処理装置は、上記（式３）より、２次元座標ｘ１から３次元座標Ｘ０を計算することができる。
【００４５】
さらに、オプティカルフローによって、画像処理装置は、画像Ｉｍｇ２では、画像Ｉｍｇ１で計算対象となる３次元座標Ｘ０の被写体を追跡することができる。つまり、オプティカルフローによって、画像処理装置は、それぞれ異なる画像である画像Ｉｍｇ１及び画像Ｉｍｇ２において、同一の３次元座標Ｘ０についてそれぞれ計算することができる。
【００４６】
なお、異なる画像に基づいて３次元座標がそれぞれ計算されるため、３次元座標は、異なる値がそれぞれ計算される場合がある。この場合に、画像処理装置は、最小二乗法等によって、複数の計算結果から３次元座標を求めるため、画像処理装置は、３次元座標を精度よく計算することができる。
【００４７】
（マッチング処理例（ステップＳ７））
図３に戻り、ステップＳ７では、画像処理装置は、マッチングを行う。具体的には、ステップＳ７では、画像処理装置は、ステップＳ６で一方の画像（例えば画像Ｉｍｇ１（図６））から計算される３次元座標について、同一の被写体を示す３次元座標が他方の画像（例えば画像Ｉｍｇ２（図６））にあるかを探索する。
【００４８】
（対応する３次元座標があるか否かの判断例（ステップＳ８））
ステップＳ８では、画像処理装置は、対応する３次元座標があるか否かを判断する。例えば、被写体が移動体であると、画像Ｉｍｇ１（図４）には、被写体が撮像されても、画像Ｉｍｇ２（図４）には、被写体が撮像されない場合がある。したがって、被写体が移動体である場合等では、ステップＳ７の処理によって、対応する３次元座標が探索されない場合がある。ゆえに、ステップＳ８では、画像処理装置は、ステップＳ７の結果に基づいて、対応する３次元座標があるか否かを判断する。
【００４９】
なお、ステップＳ８では、画像処理装置は、同一の被写体を示す複数の３次元座標を１つのグループ（以下、単にグループという。）にして処理してもよい。
【００５０】
次に、ステップＳ８で、対応する３次元座標があると画像処理装置が判断する場合（ステップＳ８でＹＥＳ）、画像処理装置は、ステップＳ９に進む。一方、ステップＳ８で、対応する３次元座標がないと画像処理装置が判断する場合（ステップＳ８でＮＯ）、画像処理装置は、ステップＳ１０に進む。
【００５１】
（３次元データの生成例（ステップＳ９））
ステップＳ９では、画像処理装置は、３次元データを生成する。具体的には、画像処理装置は、例えば、ステップＳ１で入力される初期値等に、ステップＳ６で計算される３次元座標を上書きして３次元データを生成する。
【００５２】
（３次元座標の削除例（ステップＳ１０））
ステップＳ１０では、画像処理装置は、３次元座標を削除する。即ち、対応する３次元座標がないと判断される場合（ステップＳ８でＮＯ）は、対象となる座標の被写体が移動体等であるため、前フレームの画像で撮像されていた被写体が、次フレームの画像に撮像されていない場合等である。したがって、ステップＳ１０では、画像処理装置は、３次元データのうち、対応する３次元座標がない３次元座標を削除する。
【００５３】
（全体処理の処理結果例）
図７は、本発明の一実施形態に係る３次元データの一例を示す図である。具体的には、３次元データＤ１は、例えば、３次元座標Ｄ２及びカメラのポーズを示す軌跡Ｄ３を有する。まず、３次元座標Ｄ２は、ステップＳ１（図３）で初期値として入力される。次に、３次元データＤ１は、ステップＳ９（図３）の処理及びステップＳ１０（図３）の処理によって、３次元座標Ｄ２が変更されて生成される。さらに、３次元データＤ１は、ステップＳ５の処理で計算されるカメラのポーズを軌跡Ｄ３として示す。
【００５４】
図８は、本発明の一実施形態に係る画像処理装置による全体処理の処理結果の一例を示す図である。具体的には、図８では、車両２に設置される第１カメラ１０によって撮像される画像を画像Ｉｍｇ１とし、第２カメラ１１によって撮像される画像を画像Ｉｍｇ２とする。また、図８（Ａ）に示す状態で撮像される画像Ｉｍｇ１を図８（Ｂ）に示す画像とし、図８（Ｃ）に示す状態で撮像される画像Ｉｍｇ２を図８（Ｄ）に示す画像とする。なお、図８では、車両２は、画像Ｉｍｇ１を撮像する図８（Ａ）に示す位置から画像Ｉｍｇ２を撮像する図８（Ｃ）に示す位置に移動する例である。
【００５５】
さらに、図８（Ａ）及び図８（Ｃ）では、車両２の進行方向及び第１カメラ１０の光軸１０ＺをＺ軸とし、図の上下方向とする。さらにまた、図８（Ａ）及び図８（Ｃ）では、車両２の進行方向に直交方向をＸ軸とし、図の左右方向とする。
【００５６】
また、図８では、複数の被写体があり、複数の被写体のうち、移動体２Ａは、被写体が移動する車両等の移動体とする。一方、複数の被写体のうち、建物３１、建物３２、建物３３、及び建物３４は、それぞれ建築物等であり、建物３１、建物３２、建物３３、及び建物３４は、被写体が移動しない静止体とする。
【００５７】
以下、ステップＳ２（図３）の処理で、画像処理装置が、画像Ｉｍｇ１及び画像Ｉｍｇ２の画像データをそれぞれ取得する例で説明する。
【００５８】
例えば、画像Ｉｍｇ１では、建物３２及び建物３３のように、被写体の全体が撮像されるのに対して、建物３１のように、移動体２Ａが遮蔽物となり、被写体が撮像されない場合がある。なお、遮蔽物は、移動体２Ａ以外の物体でもよい。
【００５９】
図９は、本発明の一実施形態に係る遮蔽物の一例を示す図である。具体的には、例えば、図９に示すように、第１カメラ１０（図１）の画角内に車両２（図１）が有するワイパー４等が写り込むと、画像Ｉｍｇ１には、ワイパー４が撮像される。また、図９では、ワイパー４が遮蔽物となるため、ワイパー４等によって、建物３２及び建物３３のように、被写体の一部又は全部が撮像されない場合がある。さらに、ノイズの入力又は画像の分解能不足等によって、同様に、被写体の一部又は全部が撮像されない場合がある。
【００６０】
画像処理システム１（図１）は、図９に示す建物３２及び建物３３のように、第１カメラ１０では、遮蔽物等によって被写体の一部又は全部が撮像されない場合でも、第２カメラ１１（図１）によって撮像される画像Ｉｍｇ２（図８）では、被写体が撮像される場合がある。したがって、画像処理システム１は、複数のカメラを有するため、一方のカメラで追跡ができない被写体を他方のカメラで追跡できる。
【００６１】
画像処理システム１が有する複数のカメラのうち、いずれか１つのカメラで撮像することができると、画像処理装置は、ステップＳ３（図３）の処理によって、画像から特徴点を算出することができる。例えば、一方のカメラで追跡できなかった被写体であるため、３次元座標が削除されてしまう場合でも、画像処理装置は、他方のカメラで撮像した被写体に基づいて３次元座標を計算することができる。ゆえに、画像処理装置は、特徴点を算出することができる確率を高くすることができるため、遮蔽物等があっても、被写体の３次元座標を精度よく計算することができる。
【００６２】
図１０は、本発明の一実施形態に係る画像処理装置によるマッチングの一例を示す図である。なお、ステップＳ７（図３）の処理は、例えば図１０に示す処理である。例えば、マッチングは、ステップＳ６（図３）で計算される３次元座標のうち、同一の被写体を示す複数の３次元座標をグループ化してグループごとに行われる。具体的には、図１０（Ａ）は、図８（Ｂ）に示す画像Ｉｍｇ１に基づいて計算される３次元座標の例を示す図である。一方、図１０（Ｂ）は、図８（Ｄ）に示す画像Ｉｍｇ２に基づいて計算される３次元座標を示す図である。なお、図１０では、車両２（図８）の軌跡は、軌跡Ｄ３のデータで示すとする。
【００６３】
画像処理装置は、複数の３次元座標のうち、同一の被写体を示す３次元座標を図示するように、グループ化する。例えば、図１０では、画像処理装置は、建物３１を示す３次元座標を１つのグループとする。同様に、図１０では、画像処理装置は、移動体２Ａ、建物３３、及び建物３４を示す３次元座標をそれぞれグループとする。
【００６４】
次に、画像処理装置は、ＩＣＰ（Ｉｎｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ）アルゴリズム等によってステップＳ７（図３）の処理を行う。具体的には、図１０（Ａ）に示す各グループについて、他方の図１０（Ｂ）に近傍点があるかを検索する。
【００６５】
例えば、図１０では、図１０（Ａ）に示す建物３１を示すグループは、図１０（Ｂ）にも示されるため、マッチングの処理によって、対応する３次元座標があると判断される。一方、図１０では、図１０（Ａ）に示す移動体２Ａを示すグループは、図１０（Ｂ）には示されないため、マッチングの処理によって、対応する３次元座標がないと判断される。
【００６６】
したがって、移動体２Ａを示す３次元座標は、３次元データからステップＳ１０（図３の処理によって削除される。ＳＬＡＭの処理において、移動体を示す３次元座標が削除されると、地図の生成の際に、移動体によるミスマッチを減らすことができるため、被写体の位置を精度よく計算できる。
【００６７】
また、画像処理装置は、被写体を精度よく抽出できるため、画像処理装置は、画像データのうち、背景を精度よく区別することができる。なお、画像処理装置は、背景と被写体とを区別して各種処理を行ってもよい。例えば、画像処理装置は、被写体と認識する部分についてマッチングを行う。これによって、画像処理装置は、背景と被写体とがミスマッチするのを少なくすることができる。また、画像処理装置は、背景部分について処理を行わないため、計算コストを少なくできる。
【００６８】
さらに、画像処理装置は、被写体を建物等の静止体と車両等の移動体とを区別して各種処理を行ってもよい。例えば、画像処理装置は、静止体と認識する部分についてマッチングを行う。これによって、画像処理装置は、静止体と移動体とがミスマッチするのを少なくすることができる。また、画像処理装置は、移動体部分について処理を行わないため、計算コストを少なくできる。
【００６９】
（第２実施形態）
画像処理システムは、３つ以上のカメラを有してもよい。以下、図１に示す画像処理システム１にさらにカメラを２つ加えた４つのカメラを有する画像処理システム１Ａを例に説明する。なお、画像処理装置は、第１実施形態と同様のハードウェア構成の装置であるとする。したがって、ハードウェア構成の説明は、省略する。
【００７０】
図１１は、本発明の一実施形態に係る第２実施形態の画像処理システムの全体構成の一例を示す全体構成図である。
【００７１】
画像処理システム１Ａは、画像処理システム１と同様に、第１カメラ１０及び第２カメラ１１を有する。なお、第１カメラ１０及び第２カメラ１１のそれぞれの設置位置及びそれぞれの設置向きは、画像処理システム１と同様とする。さらに、画像処理システム１Ａは、第３カメラ１２及び第４カメラ１３を有する。
【００７２】
第３カメラ１２及び第４カメラ１３は、例えば、各光軸がＺ軸に対して直交になるようにそれぞれ設置される。即ち、図示するように、第３カメラ１２は、第３カメラ１２の光軸１２Ｘが車両２の進行方向に対して右手方向になるように設置される。また、図示するように、第４カメラ１３は、第４カメラ１３の光軸１３Ｘが車両２の進行方向に対して左手方向になるように設置される。
【００７３】
図１２は、本発明の一実施形態に係る第２実施形態の画像処理装置による全体処理の処理結果の一例を示す図である。具体的には、図１２では、車両２に設置される第３カメラ１２によって撮像される画像を画像Ｉｍｇ３とし、第４カメラ１３によって撮像される画像を画像Ｉｍｇ４とする。また、図１２（Ａ）に示す状態で撮像される画像Ｉｍｇ３を図１２（Ｂ）に示す画像とし、図１２（Ｃ）に示す状態で撮像される画像Ｉｍｇ４を図１２（Ｄ）に示す画像とする。なお、図１２に示す車両２の周辺環境は、図８と同様とする例である。
【００７４】
さらに、図１２（Ａ）及び図１２（Ｃ）では、図８と同様に、車両２の進行方向及び第１カメラ１０の光軸１０ＺをＺ軸とし、図の上下方向とする。これに対して、図１２（Ａ）及び図１２（Ｃ）では、車両２の進行方向に直交方向及び第３カメラ１２の光軸１２ＸをＸ軸とし、図の左右方向とする。
【００７５】
以下、ステップＳ２（図３）の処理で、画像処理装置が、図８に示す画像Ｉｍｇ１及び画像Ｉｍｇ２を示すそれぞれの画像データに加えて、画像Ｉｍｇ３及び画像Ｉｍｇ４を示すそれぞれの画像データをさらに取得する例で説明する。
【００７６】
ステップＳ２の処理で画像Ｉｍｇ３及び画像Ｉｍｇ４を示すそれぞれの画像データがさらに取得されると、画像Ｉｍｇ１及び画像Ｉｍｇ２と同様に、画像処理装置は、ステップＳ６（図３）の処理で、画像Ｉｍｇ３及び画像Ｉｍｇ４に基づいて３次元座標をそれぞれ計算する。
【００７７】
図１３は、本発明の一実施形態に係る第２実施形態の画像処理装置によって計算される３次元座標の一例を示す図である。具体的には、図１３（Ａ）は、図１２（Ｂ）に示す画像Ｉｍｇ３に基づいて計算される３次元座標を示す図である。一方、図１３（Ｂ）は、図１２（Ｄ）に示す画像Ｉｍｇ４に基づいて計算される３次元座標を示す図である。
【００７８】
第２実施形態では、画像処理装置は、ステップＳ７（図３）の処理で、画像Ｉｍｇ１及び画像Ｉｍｇ２に基づく３次元座標に加えて、図１３（Ａ）及び図１３（Ｂ）に示す３次元座標をそれぞれ使用する。
【００７９】
例えば、ステップＳ７の処理では、画像処理装置は、図１０（Ａ）に示す３次元座標及び図１３（Ｂ）にそれぞれ示す３次元座標について、同一の被写体を示す３次元座標があるかを探索する。具体的には、図１０（Ａ）に示す３次元座標及び図１３（Ｂ）に示す３次元座標が、建物３３を示す３次元座標のデータをそれぞれ有する。そのため、画像処理装置は、建物３３を示す３次元座標について、対応する３次元座標があると判断する。したがって、画像処理装置は、ステップＳ９（図３）の処理で、建物３３を示す３次元座標について、計算される建物３３の３次元座標を使用して３次元データを生成する。
【００８０】
なお、マッチングに使用する画像は、他の組み合わせでもよい。
【００８１】
画像処理システム１Ａ（図１１）は、４つのカメラを有するため、２つのカメラを有する画像処理システム１（図１）より多く周辺を撮像することができる。そのため、画像処理装置は、被写体の３次元座標をより多く計算することができる。ゆえに、ＳＬＡＭの処理等において、多くの３次元座標を使用できるため、位置を精度よく計算できる。
【００８２】
（機能構成例）
図１４は、本発明の一実施形態に係る画像処理装置の機能構成の一例を示す機能ブロック図である。具体的には、画像処理装置１００は、取得部１００Ｆ１と、オプティカルフロー計算部１００Ｆ２と、３次元座標計算部１００Ｆ３と、マッチング部１００Ｆ４と、削除部１００Ｆ５と、ポーズ計算部１００Ｆ６と、生成部１００Ｆ７とを含む。
【００８３】
取得部１００Ｆ１は、接続される複数のカメラから画像データをそれぞれ取得する。具体的には、取得部１００Ｆ１は、第１カメラ１０から画像Ｉｍｇ１の画像データを取得する。同様に、取得部１００Ｆ１は、第２カメラ１１から画像Ｉｍｇ２の画像データを取得する。なお、取得部１００Ｆ１は、入出力Ｉ／Ｆ１００Ｈ４（図２）等によって実現される。
【００８４】
オプティカルフロー計算部１００Ｆ２は、取得部１００Ｆ１が取得する画像データからオプティカルフローを計算する。なお、オプティカルフロー計算部１００Ｆ２は、ＣＰＵ１００Ｈ１（図２）及びＡＳＩＣ１００Ｈ２（図２）等によって実現される。
【００８５】
３次元座標計算部１００Ｆ３は、ポーズ計算部１００Ｆ６によって計算される各カメラのポーズ及びオプティカルフロー計算部１００Ｆ２によって計算されるオプティカルフローに基づいて、図６等に示すように、被写体の３次元座標を計算する。なお、３次元座標計算部１００Ｆ３は、ＣＰＵ１００Ｈ１及びＡＳＩＣ１００Ｈ２等によって実現される。
【００８６】
マッチング部１００Ｆ４は、３次元座標計算部１００Ｆ３によって計算される３次元座標について、同一の被写体を示す３次元座標をマッチングする。なお、マッチング部１００Ｆ４は、ＣＰＵ１００Ｈ１及びＡＳＩＣ１００Ｈ２等によって実現される。
【００８７】
削除部１００Ｆ５は、マッチングの結果に基づいて３次元座標のデータを削除する。具体的には、削除部１００Ｆ５は、マッチングの処理によって、対応する３次元座標がないと判断された３次元座標のデータを３次元データから削除する。なお、削除部１００Ｆ５は、ＣＰＵ１００Ｈ１及びＡＳＩＣ１００Ｈ２等によって実現される。
【００８８】
ポーズ計算部１００Ｆ６は、各カメラについての各座標系における座標軸に対する角度及び各座標系における座標によって示される位置を示すポーズを図４等に示すように、計算する。なお、ポーズ計算部１００Ｆ６は、ＣＰＵ１００Ｈ１及びＡＳＩＣ１００Ｈ２等によって実現される。
【００８９】
生成部１００Ｆ７は、３次元座標計算部１００Ｆ３によって計算される３次元座標で初期値等を上書きして３次元データを生成する。また、削除部１００Ｆ５が３次元座標を削除する場合、生成部１００Ｆ７は、削除部１００Ｆ５が削除した以外の３次元座標等を示すデータを生成する。なお、生成部１００Ｆ７は、ＣＰＵ１００Ｈ１及びＡＳＩＣ１００Ｈ２等によって実現される。
【００９０】
画像処理装置１００は、複数のカメラから画像データを取得する。次に、画像処理装置１００は、取得した画像データからオプティカルフローを計算する。さらに、画像処理装置１００は、取得した画像データからカメラのポーズを計算する。さらにまた、画像処理装置１００は、計算したオプティカルフロー及びカメラのポーズから３次元座標を計算できる。
【００９１】
画像処理装置１００は、計算される被写体の３次元座標に基づいて３次元データを生成することができる。３次元データの生成において、画像処理装置１００は、オプティカルフローを使うため、遮蔽物等があっても一方のカメラで追跡ができない被写体を他方のカメラで追跡できる。即ち、いずれか１つのカメラで被写体を撮像することができると、画像処理装置は、特徴点を算出できるため、被写体の３次元座標を計算することができる。ゆえに、画像処理装置は、被写体の特徴点を算出することができる確率を高くすることができるため、遮蔽物等があっても、被写体の３次元座標を精度よく計算することができる。
【００９２】
また、被写体の３次元座標が精度よく計算されるため、ＳＬＡＭにおいて、移動体の周辺を示す地図が精度よく生成できる。よって、ＳＬＡＭ等で、移動体が自己の位置等を精度よく計算できる。
【００９３】
なお、各処理の全部又は一部は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、及びＪａｖａ（登録商標）等のレガシープログラミング言語又はオブジェクト指向プログラミング言語等で記述されたコンピュータに実行させるためのプログラムによって実現されてもよい。即ち、プログラムは、画像処理装置又は情報処理装置等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
【００９４】
また、プログラムは、ＲＯＭ又はＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）等のコンピュータが読み取り可能な記録媒体に格納して頒布することができる。さらに、記録媒体は、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ブルーレイディスク、ＳＤ（登録商標）カード、又はＭＯ等でもよい。さらにまた、プログラムは、電気通信回線を通じて頒布することができる。
【００９５】
実施形態は、例えば周辺を撮像する複数の撮像装置に接続される画像処理装置であって、第１カメラ１０（図１）及び第２カメラ１１（図１）から画像データをそれぞれ取得する入出力Ｉ／Ｆ１００Ｈ４（図２）と、前記画像データからそれぞれオプティカルフローを計算するＣＰＵ１００Ｈ１（図２）と、前記画像データから第１カメラ１０及び第２カメラ１１の角度及び位置を示すポーズをそれぞれ計算するＣＰＵ１００Ｈ１と、前記オプティカルフロー及び第１カメラ１０と第２カメラ１１のポーズに基づいて３次元座標を計算するＣＰＵ１００Ｈ１と、前記３次元座標に基づいて前記周辺を示す３次元データを生成するＣＰＵ１００Ｈ１とを含む画像処理装置である。
【００９６】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【００９７】
１、１Ａ  画像処理システム
２  車両
２Ａ  移動体
１０  第１カメラ
１１  第２カメラ
１２  第３カメラ
１３  第４カメラ
１００  画像処理装置
１００Ｈ１  ＣＰＵ
１００Ｈ２  ＡＳＩＣ
１００Ｈ３  記憶装置
Ｉｍｇ１、Ｉｍｇ２、Ｉｍｇ３、Ｉｍｇ４  画像
３１、３２、３３、３４  建物
【先行技術文献】
【特許文献】
【００９８】
【特許文献１】特開２０１３−１０４６６０号公報
【特許文献２】特許４６５４１６３号公報
【特許文献３】特開２０１１−１５０６８９号公報
【特許文献４】特許５１３６３１４号公報
【特許文献５】特開２００９−６８２４号公報
【特許文献６】特開２０１１−２４８８３０号公報
【特許文献７】特開２００９−１９３２５７号公報
【図１】
0006603993.tif 000004
【図２】
0006603993.tif 000005
【図３】
0006603993.tif 000006
【図４】
0006603993.tif 000007
【図５】
0006603993.tif 000008
【図６】
0006603993.tif 000009
【図７】
0006603993.tif 000010
【図８】
0006603993.tif 000011
【図９】
0006603993.tif 000012
【図１０】
0006603993.tif 000013
【図１１】
0006603993.tif 000014
【図１２】
0006603993.tif 000015
【図１３】
0006603993.tif 000016
【図１４】
0006603993.tif 000017