(実施の形態1)
図1および図2は、本発明の実施の第1の形態に係る画像処理装置1,1aをそれぞれ備えて成る事故検証システムの電気的構成を示すブロック図である。図1の事故検証システムは、交差点監視カメラのように、事故多発交差点などに設置される定点カメラ2に、交通監視室などに設置される前記画像処理装置1および表示装置3を備えて構成される。また、図2の事故検証システムは、タクシーなどの車輌に搭載されるドライブレコーダ4に、事業所などに設置される前記画像処理装置1aおよび前記表示装置3を備えて構成される。
前記定点カメラ2は、時系列の撮像画像に、その撮像画像中での被写体の3次元位置情報を合わせて取得可能な画像データを作成するものである。このため、この図1で示すように、ステレオカメラ21の撮像画像を画像記録部22に連続記録してゆくような構成で実現でき、この場合には、前記画像処理装置1には、前記画像記録部22からの時系列の撮像画像を入力とし、前記ステレオカメラ21の左右間の画像を対応点探索処理することで、前記撮像画像中での被写体の3次元位置情報を得る3次元位置情報算出部11が設けられる。ステレオカメラ21からの撮像画像による3次元計測については、複数例を後に詳述する。一方、前記定点カメラ2として、単眼カメラの時系列の撮像画像にレーダなどによる距離情報を併せて記録してゆくものであれば、前記画像処理装置1に3次元位置情報算出部11は設けられなくてもよい。すなわち、前記画像処理装置1は、入力画像データとして、時系列の撮像画像に、その撮像画像中での被写体の3次元位置情報を合わせて取得可能なデータが入力されればよい。
前記ドライブレコーダ4は、前記ステレオカメラ21および画像記録部22に、一時記憶部41およびトリガ発生部42を備えて構成され、前記ステレオカメラ21の撮像画像をリングバッファ等の一時記憶部41に記憶し、加速度センサなどのトリガ発生部42で発生されたトリガタイミング(衝突可能性がある等で危険なタイミング)の所定時間だけ以前から所定時間に亘って、前記一時記憶部41から画像記録部22に撮像画像データを転送して記録してゆくような構成で実現できる。前記画像記録部22は、記録すべき画像データが記録容量を超えた場合には、古い画像データに上書きしてゆくように構成される。また、画像記録部22に充分な記録容量が有る場合には、前記ステレオカメラ21からの画像を該画像記録部22が連続記録してゆき、トリガ発生部42でトリガが発生したタイミング、またはその所定時間だけ以前のタイミングからの画像データに、後に抽出し易くするためのマーキングを施すようにしてもよい。
注目すべきは、前記画像処理装置1は、上述のような時系列の撮像画像に、その撮像画像中での被写体の3次元位置情報を合わせて取得し、処理画像を表示装置3に表示させるにあたって、前記時系列の撮像画像から同一の動体を抽出する動体抽出部12と、前記表示にあたっての投影面を設定する面設定部13と、前記面設定部13にて設定された投影面上に、前記動体抽出部12で抽出された動体における前記3次元位置情報を投影した表示画像を作成する3次元位置情報投影部14とを備えて構成されることである。また注目すべきは、前記画像処理装置1aは、前記3次元位置情報算出部11、動体抽出部12、面設定部13および3次元位置情報投影部14に加えて、3次元情報統合部15および3次元位置情報算出部16が設けられることである。
前記3次元位置情報算出部11は、時間的に異なる複数の同一動体の3次元位置を算出するものであり、図1の定点カメラ2のようにステレオカメラ21が固定されている場合には、各画像で得られる動体の3次元位置を算出すればよい。これに対して、図2のドライブレコーダ4のようにステレオカメラ21が車両に搭載されている場合は、各画像で得られる動体の3次元位置は、撮影したときのカメラの位置に対する3次元位置であるので、該ステレオカメラ21を搭載している車両と撮影している動体とが等速に同じ方向に移動している場合は、動体の3次元位置は常に同じ値になるので、該ステレオカメラ21の座標系を、或る基準となるフレームに併せる必要がある。
前記動体抽出部12は、前記時系列の撮像画像から同一の動体を抽出する。ここで、動体とは、自動車やバイク等の車両、自転車、歩行者等の地面に対して実際に移動している物体を言う。以下の説明では、ステレオカメラ21は車両等の移動体に搭載されて撮像を行う、すなわちドライブレコーダ4の場合の動体抽出について説明する。この場合、搭載車両自体が移動するので、ステレオカメラ21の撮像画像中に相対的に移動している物体があっても、動体であるとは限らない。そこで、以下に、ステレオカメラ21で生成された時系列画像における動体対応画像部分の特定方法について説明する。なお、動体対応画像部分の特定においては、前記動体抽出部12は、3次元位置情報算出部11で求められた3次元座標、2次元動きベクトルおよび3次元動きベクトル等の3次元位置情報を用いる。なお、画像上の動体対応画像部分を特定するとは、具体的には、画像として表されている物体のうち動体が表示されている箇所を特定し、その3次元画像情報を取得することを言う。また、動体対応画像部分とは、画像中に表示された動体に対応する箇所を言う。
先ず、動きの消失点を用いて動体対応画像部分を特定する方法がある。ここで、動きの消失点とは、画像上の各点における動きベクトルをその方向に沿って延長した直線が交わる点である。この消失点は、画像上の物体の移動方向に応じて定まる。すなわち、カメラが同一方向に移動している場合において、同一物体であれば同一方向に移動していることから、その物体に対しての消失点が存在する。また、画像上の物体が静止体である場合に、静止体である物体すべてに対して同一の消失点が存在する(「主成分分析を用いた移動物体認識法の検討」,情報処理学会 研究報告 − コンピュータビジョンとイメージメディアVol.1996,No.31,1995−CVIM−099,文献番号:IPSJ−CVIM95099008参照)。なお、ステレオカメラ21で撮像される被写体の画像のほとんどは、信号機や、路面、横断歩道、壁等の静止体に対応する静止体対応画像部分で占められていると考えられる。ここで、静止体対応画像部分とは、画像中に表示された、静止体に対応する箇所を言う。そして、そのように仮定すると、最も多くの動きベクトルに対する消失点が静止体対応画像部分に対応する静止体の消失点であると推測される。したがって、画像において存在する消失点の内、最も多くの動きベクトルに対する消失点を除いた後に存在する各消失点が動体対応画像部分に対応する動体の消失点であると推定できる。
そこで、動体抽出部12は、3次元位置情報算出部11で算出した時系列画像において求められる動きベクトルをその方向に沿って延長して、それらが交わる点である消失点を画像上において求める。そして、それら消失点の内、最も多くの動きベクトルに対する消失点以外の各消失点を動体対応画像部分に対応する消失点であると推定する。さらに、このようにして、推定された動体対応画像部分の消失点をもとに、画像上の動体対応画像部分を特定し、その3次元画像情報を取得する。このようにして、各時系列画像における動体対応画像部分を特定することができる。なお、動きベクトルは、3次元位置情報算出部11で算出されているので、消失点を求めるために新たに動きベクトルを算出する必要はなく、消失点を容易に算出することができる。
次に、パターン認識あるいはテンプレートマッチング等によって動体対応画像部分を特定する方法について説明する。たとえば、自動車、バイク、自転車等の車両や歩行者などのように、被写体として存在することが予想される動体について、パターン認識あるいはテンプレートマッチングを用いて、画像における動体対応画像部分を特定してもよい。パターン認識においては、動体抽出部12は、上記動体に関するパターン認識のためのデータを予め記憶しておき、その記憶されたデータを用いて撮像画像中でパターン認識を行うことで動体対応画像部分を特定し、その3次元位置情報を取得する。さらに、パターン認識においては、例えばSVM(Support vector machine;サポートベクターマシン)やAdaBoost等の手法を用いて、パターンデータを学習してゆくことで、より効率良く動体対応画像部分を特定することができる。また、テンプレートマッチングにおいては、動体抽出部12は、上記動体に関するテンプレートを予め記憶しておき、前述の対応点探索と同様に、そのテンプレートと相関値の高い箇所を画像から探索することで、画像上の動体対応画像部分を特定し、その3次元位置情報を取得する。
また、上記パターン認識およびテンプレートマッチングと同様、動体候補を用いて動体対応画像部分を特定する方法として、画像中のエッジ分布と左右対称性等とから、画像上の車両を特定する方法もある(たとえば、特開平7−334800号公報参照)。この方法によって、動体抽出部12が、画像上における車両等の動体対応画像部分を特定し、その3次元位置情報を取得することとしてもよい。
また、ステレオ時系列画像から求めた3次元動きベクトルに対して、このステレオ時系列画像を生成したステレオカメラ21の移動速度(車速)によってこれらを補正することで、画像上の静止体対応画像部分と動体対応画像部分とを判別する方法もある(たとえば、特開2006−134035号参照)。この方法を用いる場合は、動体抽出部12は、ステレオカメラ21が搭載された車両の速度情報を受け、3次元位置情報算出部11で算出された3次元動きベクトルを用いて、画像上の動体対応画像部分を特定し、その3次元位置情報を取得することができる。
また、ステレオカメラ21で生成された画像を見ながら、使用者がその画像中から動体対応画像部分を選ぶことで、動体対応画像部分が特定されることとしてもよい。図3は使用者が動体対応画像部分を特定する場合について説明するための図である。使用者が図示しない入力部などを用いて、表示装置3および画像記録部22に指示することで、表示装置3は、画像記録部22に記録されている実写画像を、図3(a)で示すように、そのまま表示する。そして、使用者は、前記入力部のマウス等を操作することで、図3(b)において、枠掛けして示すように、表示装置3に表示された画像の一部を選択することができることとすればよい。選択された箇所は前記動体対応画像部分として特定される。
具体的には、3次元位置情報算出部11によって3次元位置情報の算出されている画像が、画像記録部22から読み出されて表示装置3に表示される。表示装置3には、表示された画像以外に、たとえばマウスによって表示装置3の画面上での位置を操作できるカーソル等が表示され、当該カーソルによって前記画面上の特定の部分を選択することで、選択された部分の3次元位置情報が動体抽出部12に入力され、動体対応画像部分が特定される。たとえば、前記図3(a)に示すように、使用者が表示装置3に表示された画像から、自動車m1,m2を含む動体対応画像部分M1,M2と、歩行者m3を含む動体対応画像部分M3とを入力部で選択することで、動体抽出部12はこれらの画像上の動体対応画像部分を特定し、その3次元位置情報を取得する。
このような動体対応画像部分の選択は、画像毎に行われてもよいが、煩雑であるので、動体抽出部12が自動的に追尾して選択を行うようにしてもよい。たとえば、図3(c)は、図3(a)および(b)よりもΔt秒後の画像であるが、この画像についても枠掛けして示すように、自動車および歩行者が動体対応画像部分M1,M2;M3として選択されている。このような動体対応画像部分の自動追尾は前述の対応点探索による方法だけでなく、たとえば後述のLucas−Kanade法等の動きベクトルを算出する演算を用いる方法等がある。前記Lucas−Kanade法は、画像間における動きベクトルを求める手法であるが、動きベクトルを求めることで、画像間における対応付けも可能であることから、動体対応画像部分の追尾も可能である。
また、動体抽出部12は、上述した方法の内、1つの方法によって動体対応画像部分を特定してもよいし、いずれかの方法を選択的に用いて特定してもよい。たとえば、パターン認識またはテンプレートマッチングによって、先ず動体対応画像部分を特定することとし、これらの方法で動体対応画像部分を特定できない場合には、使用者が入力部を用いて動体対応画像部分を特定することとしてもよい。
一方、前記面設定部13からは、使用者が前記表示にあたっての所望とする投影面、すなわち視線方向が設定される。これに応じて前記3次元位置情報投影部14は、前記面設定部13にて設定された投影面上に、前記動体抽出部12で抽出された動体の前記時系列の各点における前記3次元位置情報を投影した表示画像を作成し、前記表示装置3に表示させる。図4は、その投影結果の一例を示す図であり、前記定点カメラ2の撮像画像から得た3次元位置情報をそのまま投影したものである。図4は、道路面51上を走行する自転車52の軌跡を示すものであり、実線53は道路面51上に投影した自転車52の軌跡を示す。この図4では、実写による前記道路面51およびCG合成の自転車52の軌跡の線および点に加えて、該自転車52の実写像自体も重ね合わて投影している。このような軌跡の線および点ならびに動体像自体の内、何れを選択して投影するのかは、煩雑に(見難く)ならない範囲で、より分り易くなるように、適宜選択されればよい。
これに対して、図5には、前記視線方向の切換えを模式的に示す。図5(a)は、前記図4に対応した定点カメラ2の設置位置から見た画像であるが、図5(b)は、図5(a)において参照符号54で示す事故の目撃者などの視線方向から見た画像である。
ここで、図1で示す定点カメラ2の画像処理装置1では、前記動体抽出部12で抽出された動体の動きに伴う3次元位置情報を、順に投影していけばよい。しかしながら、図2で示すドライブレコーダ4の画像処理装置1aでは、自車両も移動しているので、各フレーム間の位置合せが必要となる。このため、前記画像処理装置1aでは、動体抽出部12aは、静止体も合わせて抽出しており、さらに注目すべきは、該画像処理装置1aには、前記動体抽出部12aの出力から、動体の各フレーム間の3次元位置を前記静止体を基準として統合する3次元情報統合部15と、前記3次元情報統合部15で統合されたフレーム間において、或るフレームにおける動体の3次元位置を基準として、残余のフレームにおける動体の3次元位置を算出し、前記3次元位置情報投影部14へ出力する3次元位置情報算出部16とがさらに設けられていることである。
図6は、前記静止体の抽出方法を説明するための図である。前記動体抽出部12はまた、前記3次元位置情報算出部11において算出された3次元座標、2次元動きベクトルおよび3次元動きベクトル等をもとに、各画像における静止体対応画像部分S1〜S4を特定する。ここで、静止体とは、信号機、路面、横断歩道、看板、壁等のランドマークであって、地面に固定されているものである。図6では、道路と歩道との境界付近および壁面等を含む静止体対応画像部分S1、信号機および横断歩道等の路面を含む静止体対応画像部分S2、歩道、路面および壁面等を含む静止体対応画像部分S3および路面および路面に形成された車線等を含む静止体対応画像部分S4が選択され、前記動体抽出部12はこれらの画像上の静止体対応画像部分S1〜S4も特定し、その3次元画像情報を取得する。
ここで、ステレオカメラ21は車両に搭載されていることから、該ステレオカメラ21自体も移動し、時系列画像上において、前記静止体対応画像部分S1〜S4は移動している。このように、画像上では固定されていないが、実際には移動していない静止体における静止体対応画像部分S1〜S4を画像から特定する方法としては、以下の方法がある。前記動体抽出部12は、これらの方法を用いて、撮像画像から前記静止体対応画像部分S1〜S4を特定する。また、撮像画像上において、該動体抽出部12が特定した動体対応画像部分M1〜M3以外を静止体として特定してもよい。
先ず、動きの消失点を用いて静止体対応画像部分を特定する方法について説明する。前記動体抽出部12は、前記3次元位置情報算出部11で算出した時系列画像において消失点を求め、それら消失点の内、最も多くの動きベクトルに対する消失点を静止体対応画像部分に対応する静止体の消失点であると推定する。さらに、このようにして推定された静止体の消失点をもとに、画像上の静止体対応画像部分を特定し、その3次元画像情報を取得する。このようにして、各時系列画像における静止体対応画像部分を特定することができる。なお、動きベクトルは、3次元位置情報算出部11において算出されているので、消失点を求めるために新たに動きベクトルを算出する必要はなく、消失点を容易に算出することができる。
また、動体抽出部12は、前記信号機、標識、看板等のように、存在することが予想される静止体すなわちランドマークを、パターン認識あるいはテンプレートマッチングによって検出することで、静止体対応画像部分を特定してもよい。なお、この際に用いるパターンデータおよびテンプレートは該動体抽出部12に予め記憶しておくこととすればよい。このようにして、動体抽出部12は、画像上の静止体対応画像部分を特定し、その3次元画像情報を取得する。なお、動体抽出時と同様に、パターンデータを学習してゆくことで、より効率良く静止体対応画像部分を特定することができる。また、ステレオカメラ21で生成された画像を見ながら、使用者がその画像中から静止体対応画像部分を選ぶことで、静止体対応画像部分が特定されることとしてもよい。
図7は、前記3次元情報統合部15の処理を説明するための図である。時刻Tにおいて図7(a)で示すような撮像画像が得られており、時刻T+Δtにおいて図7(b)で示すような撮像画像が得られているとき、前述の図5で示すように静止体領域を抽出すると、それぞれ図7(c)および図7(d)で示すような画像となる。これらの図7(c)および図7(d)では、動体領域を黒く塗り潰している。そして、先ず図8(a)および図8(b)で示すように、2つの画像間の対応付けを行う。それには、後述の対応点探索方法を用いてもよいし、前述のLucas−Kanade法を用いてもよい。
図8(a)および図8(b)は、前記図7(c)および図7(d)にそれぞれ対応するものであり、こうして2つの画像間で対応付けが行われると、第1の統合方法では、その対応付けられた点61〜65のうち、同一直線状にない3点を選択し、時刻Tと時刻T+Δtとにおいて、それぞれ3点から構成される面を一致させるような回転(面の法線ベクトルを合わせる)および並進成分(どれか1点を合わせる、または3点の重心位置を合わせる)を算出する。また、第2の方法では、対応付けられた点61〜65のうち、任意の数点を選択し、その選択した数点を初期値として、ICP(Iterative Closest Points)を用いて回転および並進成分を算出する(ICPアルゴリズムについては後述)。
次に、時刻T+Δtの3次元情報を、算出した回転および並進成分を用いて変換する。変換後の時刻T+Δtの3次元情報と、時刻Tの3次元情報とを重ね合わせると、静止体領域は一致するが、動体領域については一致せず、同一被写体が2つ存在することになる。その同一被写体において、時間の異なる3次元位置を重畳することで、前述の図4で示すように動体の軌跡を容易に知ることができる。また、図9(a)には、前述の図3(b)および(c)の運転者による視線の模式図の統合画像を示し、図9(b)には、図9(a)の俯瞰画像を示す。図9からは、右側の車両m2が左側の車両m1よりもスピードを出していることが分かる。
以上、時間の異なる2つの3次元情報を統合する方法について説明したが、より多くの時系列画像についても同様に統合することができ、前述の図4で示すような実写画像を得ることができる。具体的には、第1の方法では、時刻Tの画像を基準として、時刻T+Δt,時刻T+2Δt,・・・の3次元情報を位置合わせする。また、第2の方法では、1つ前の時刻の画像を基準として、3次元情報を逐次位置合わせしてゆく。
また、統合のために選択される点は、各時刻で異なる点を選択しても構わない。たとえば、前記第1の方法において、時刻Tと時刻T+Δtとのペアで選択された点が、時刻Tと時刻T+2Δtでも存在するとは限らないので、時間の変化が生じたときは、選択する点も更新する方が好ましい。また、選択する点が互いに近接している場合は、局所的な部分における3次元の一致を算出することになるので、その局所領域での3次元の一致は正確にできるものの、画像全体で見れば結果が不安定になりやすいので、選択する3点は、できるだけ離れるように選択することで、安定した結果を得ることができ、好ましい。さらにまた、第1の方法では、3点を選択しているけれども、3点のセットを複数選択し、これらの複数の3点のセットから、最小二乗的に解を求めても構わない。こうすることで、安定して解を求めることができる。さらにまた、ドライブレコーダ4の場合、トリガ発生時の画像を基準とすることで、該トリガ発生時の3次元情報を高精度に出力でき、3次元情報を統合するにあたって、誤差の蓄積が生じても、前記トリガ発生前後の3次元情報の誤差は少なくなるので、事故解析などで有用である。
このように構成することで、時系列の3次元撮像画像から解析した動体の3次元の動きを、たとえば図4や図5(a)で示すような俯瞰画像や、図3で示すような運転者の目線からの画像、図5(b)で示すような事故の目撃者の目線からの画像などの任意の視線方向の2次元の画像に変換して表示することができ、前記動体の動きを使用者が容易に理解することができる。
また、前記画像処理装置1aでは、静止体を基準として各フレーム間における動体の位置情報を統合した後、投影を行うので、前記時系列の撮像画像を得るステレオカメラ21が動いている、すなわち前記ステレオカメラ21をドライブレコーダ4の車載カメラとした場合においも、前記運転者の目線だけでなく、路上に居る前記目撃者の目線などの任意の目線(投影面)方向からの表示画像を作成することができる。
好ましくは、前記3次元位置情報投影部14において、前記投影面およびそれに投影される3次元位置情報を、前記面設定部13にて設定された角度から見た模式化された絵図面としてもよい。図10にその一例を示す。図10(a)は前述の図4に類似する実写映像で、それを模式化して前記絵図面とした図が図10(b)で示すものである。参照符号54は、自転車52と同じタイミングでの自車の走行軌跡である。
このように、模式化された絵図面、たとえば前記模式化された道路面51上に、前記模式化された通行区分55や横断歩道56、信号などの道路交通のための識別記号を合成したものに、前記動体位置を投影し、さらに使用者の視線方向を任意に設定して表示可能とすることで、使用者は必要最小限の情報を表示するコンピュータグラフィックのような画像から、前記動体の動きをより容易に理解することができる。前記道路交通のための識別記号は、パターン認識などを利用して抽出すればよい。また、このようなコンピュータグラフィックの道路面51の画像に、前記実写画像を部分的に合成してもよい。具体的には、道路面51や動体位置がコンピュータグラフィックで作成され、前記信号機、標識、看板などのランドマークは、実写画像を使用するというものである。これによって、認識し易いコンピュータグラフィックの画像に、リアリティを持たせることもできる。
さらにまた、画像処理装置1における動体抽出部12および画像処理装置1aにおける3次元情報算出部16からは、前記動体抽出部12,12aで抽出した動体対応画像部分について、投影にあたって、いずれか任意のフレームにおける時系列画像を基準として、他のフレームにおける対応画像部分も統合された3次元座標が算出されることになる。この統合画像を得るための3次元座標のことを、以下では基準化3次元座標と言う。そこで、自身も移動している画像処理装置1aにおける3次元情報算出部16でのこの基準化3次元座標の算出方法について以下に詳しく説明する。先ず、3次元情報統合部15は、前記面設定部13で設定される任意の基準画像における静止体対応画像部分に含まれる任意の3点を選択する。その3点の画像毎の3次元座標は算出されているので、3次元情報統合部15が、同一直線上にない3点を選択することは容易にできる。同様に、3次元情報統合部15は、基準化3次元座標を算出する基準画像とは別フレームの画像上における、前記基準画像において選択された3点に対応する3点を取得する。この対応する3点については動体抽出部12aで算出したデータを用いてもよいし、該3次元情報統合部15で対応点探索または後述のLucas−Kanade法等により求めてもよい。
こうして、3次元情報統合部15は、時刻Tにおける画像の静止体対応画像部分から同一直線上にはない3点を選択し、これらに対応する、時刻T+Δtにおける画像上の点を求める。そして、3次元情報統合部15は、時刻Tにおける3点により構成される面に、時刻T+Δtにおける3点により構成される面を一致させるために必要な、時刻T+Δtにおける3点の3次元座標の座標変換に必要な回転成分および並進成分を算出する。つまり、3次元情報統合部15は、時刻Tにおける3点から構成される面の法線ベクトルに、時刻T+Δtにおける3点から構成される面の法線ベクトルを一致させ、時刻Tにおける3点のいずれか1点に時刻T+Δtにおける3点のいずれかを合わせるか、時刻Tにおける3点の重心に時刻T+Δtにおける3点の重心を合わせるような座標変換を行う回転成分および並進成分を算出する。そして、3次元位置情報算出部15は、時刻T+Δtの画像における特定した動体対応画像部分の3次元座標を、算出された回転成分および並進成分により変換することで、時刻Tの画像を基準とする基準化3次元座標を算出することができる。
ここで、統合画像において選択された3点は、3次元座標においてそれぞれ互いに離れていることが好ましい。それにより、局所的な一致でなく、静止体対応画像部分における広い範囲において、静止体対応画像部分同士が一致することとなり、より確実に一致することとなる。そして、3次元情報統合部15は、これら複数組により、最小二乗的に、上記回転成分および並進成分を算出すればよい。それにより、3次元情報統合部15は、より安定した解(回転成分および並進成分)を求めることができ、3次元座標の変換精度が高くなる。
また、統合画像を基準とする、特定した動体対応画像部分の3次元座標の変換の方法として、別の方法について説明する。具体的には、前記ICPアルゴリズムを用いる方法である。それによれば、3次元情報統合部15は動体抽出部12aで抽出された静止体対応画像部分の任意の複数の点における3次元座標を初期値とし、これら複数の点に対応する、他の時系列画像上の点を取得する。そして、3次元情報統合部15は、前記ICPアルゴリズムを用いることで、時刻Tに撮像された基準画像の静止体対応画像部分における複数の点に、これらに対応する時刻T+Δtの画像の静止体対応画像部分における複数の点を3次元座標において一致させるような座標変換に必要な回転成分および並進成分を算出することができる。さらに3次元情報統合部15は、時刻T+Δtの画像における特定した動体対応画像部分の3次元座標を、算出された回転成分および並進成分により変換することで、時刻Tの画像を基準とする時刻T+Δtの画像における特定した動体対応画像部分の基準化3次元座標を算出することができる。このように、ICPアルゴリズムを用いることで、対応する複数の点について、3次元情報統合部15は、ノイズに影響されにくいロバストな座標変換が可能である。
なお、時刻Tにおける基準画像を基準として、時刻T+Δtにおける画像の特定した動体対応画像部分の3次元座標の変換について説明したが、3次元情報統合部15は他の時系列画像の特定した動体対応画像部分の3次元座標の変換についても、同様に回転成分および並進成分を算出して、変換していけばよい。なお、ステレオカメラ1を搭載した移動体が直進していれば、前方の離れた箇所にある静止体に対応する静止体対応画像部分は、複数の時系列画像に存在するが、移動体が左折あるいは右折する等、曲がった場合は、その後の時系列画像に存在する静止体対応画像部分が変化してゆく。そこで、各時系列画像に応じて、最初に基準画像において選択した点の対応点がなくなる場合もあるが、このような場合であっても、3次元情報統合部15は選択した点を新たな点に変更(更新)していけばよい。そして、座標変換を複数回行うことで、基準化3次元座標の算出は可能である。3次元情報統合部15は、このように、静止体の3次元画像情報を用いて、移動体の動きに制限されることなく、基準化3次元座標を算出することができる。
前記3次元情報統合部15では、こうして特定した動体対応画像部分について、基準化3次元座標を算出しているので、この3次元情報統合部15で求められた、或いは、定点カメラ2につき、予め基準化3次元座標が求められている動体抽出部12の出力から、動体対応画像部分に対応するその動体の動きに関する情報を算出することが可能である。その情報とは、たとえば動体の速度、加速度、速度ベクトル、加速度ベクトル等である。また、3次元画像情報統合部15において算出した動きベクトル等も情報の1つである。そこで、前記基準化3次元座標を用いて、特定した動体対応画像部分に対応する動体の速度、加速度およびベクトルを算出する演算方法について説明する。先ず、t秒のフレーム間隔で、同一の動体に対応する動体対応画像部分における連続した3フレームの基準化3次元座標を用算出した結果を、それぞれ(x1,y1,z1)、(x2,y2,z2)および(x3,y3,z3)とする。次に、(x1,y1,z1)、(x2,y2,z2)から、これらを撮像した際の動体の速度v1は、下式で表すことができる。
v1={(Vx1)2+(Vy1)2+(Vz1)2}1/2
ただし、
(Vx1,Vy1,Vz1)
=((x2−x1)/t,(y2−y1)/t,(z2−z1)/t)
である。
同様に、(x2,y2,z2)、(x3,y3,z3)から、これらを撮像した際の動体の速度v2は、下式で表すことができる。
v2={(Vx2)2+(Vy2)2+(Vz2)2}1/2
ただし、
(Vx2,Vy2,Vz2)
=((x3−x2)/t,(y3−y2)/t,(z3−z2)/t)
である。
したがって、3つの画像の各対応点から求められる動体の加速度aは、下式で表すことができる。
a={(Ax)2+(Ay)2+(Az)2}1/2
ただし、
(Ax,Ay,Az)
=((Vx2−Vx1)/t,(Vy2−Vy1)/t,(Vz2−Vz1)/t)
である。
また、3次元動きベクトル(Ux1,Uy1,Uz1)、(Ux2,Uy2,Uz2)は、
(Ux1,Uy1,Uz1)=(x2−x1,y2−y1,z2−z1)
(Ux2,Uy2,Uz2)=(x3−x2,y3−y2,z3−z2)
である。
好ましくは、前記3次元位置情報投影部14は、こうして求めた動体の動きに関する情報を併せて前記表示画像を作成することである。図11は、前記図5(a)で示す模式化画像に、前記動きに関する情報を併せて投影したものである。具体的に、図11(a)は、フレーム間の動き情報を動きベクトル(動体の同じ位置同士を結んでいる)として表示したものであり、その動きベクトルを矢印で表している。図11(b)は、フレーム間の動き情報を速度ベクトルとして表示したものであり、その速度ベクトルを速度に応じて長さの変わる矢印で表している。図11(c)はフレーム間の動き情報として、速度(km/h)をそのまま重畳表示したものである。このように各動体の動きに関する情報を併せて表示することで、前記動体の動きを使用者がより容易に理解することができる。
一方、図12は、前記図11(a)で示す動きベクトル表示に、マウスなどを使って、クリック(或いは重ねるだけでもよい)すると、他の動き情報(図11(c)の速度)をポップアップ表示したものである。また、図11や図12のように時間的に異なる全てのフレームの動体位置や動き情報を重畳表示するのではなく、図13(a)〜(c)で示すように、それぞれのフレームにおける動体位置を、時系列的に都度表示(アニメーション表示など)するようにしてもよい。
(実施の形態2)
図14は、本発明の実施の第2の形態に係る画像処理装置1bを備えて成る事故検証システムの電気的構成を示すブロック図である。この事故検証システムは、前述の図1および図2で示す事故検証システムに類似し、対応する部分には同一の参照符号を付して示し、その説明を省略する。注目すべきは、本実施の形態では、前記動体抽出部12aは静止体も合わせて抽出し、その後、先ず3次元位置情報投影部14が、面設定部13で設定された投影面上に、フレーム毎に、前記動体抽出部12aで抽出された動体および静止体の3次元位置情報を投影し、その投影された各フレーム画像において、投影画像統合部17が前記静止体の位置合せを行うことで、前記各投影面の統合を行うことである。
図15は、前記絵図面による投影面の位置合せを説明するための図である。各投影面が曲面であっても同様に位置合わせを行うことが可能であるが、説明を簡素化するために、平面として説明する。先ず、図15(a)は、4枚の時系列の各画像において、動体を平面上に投影した状態を表す。これらの時間的に異なる複数の画像を図15(b)では、静止体である前記道路交通のための識別記号に基づいて、平面の位置合わせを行っている。具体的には、図の上下方向は横断歩道56で、左右方向は通行区分55で位置合わせを行っている。そして、図15(c)では、位置合わせ後の平面を統合した状態を表している。
こうして、フレーム毎の投影結果を、静止体を基準として統合することで、前記時系列の撮像画像を得るステレオカメラ21が動いている、すなわち前記ステレオカメラ21をドライブレコーダ4などの車載カメラとした場合においも、前記運転者の目線だけでなく、路上に居る前記目撃者の目線などの任意の目線(投影面)方向からの表示画像を作成することができる。
(実施の形態3)
図16は、本発明の実施の第3の形態に係る画像処理装置1cを備えて成る事故検証システムの電気的構成を示すブロック図である。この事故検証システムは、前述の図1および図2で示す事故検証システムに類似し、対応する部分には同一の参照符号を付して示し、その説明を省略する。注目すべきは、本実施の形態では、前記動体抽出部12aは静止体も合わせて抽出する一方、面設定部13cには前記動体抽出部12aの出力が入力され、或るフレームにおける抽出結果を基準とした仮想投影面が設定され、3次元位置情報投影部14cは、前記動体抽出部12cの出力から、各フレームにおける動体の3次元位置を前記静止体を基準として統合し、前記面設定部13cにて設定された仮想投影面上に投影することである。
図17は、そのような仮想投影面への投影方法を説明するための図である。本実施の形態でも、前記仮想投影面が曲面であっても、同様に位置合わせを行うことが可能であるが、説明を簡素化するために、平面として説明する。前述の図15では、各フレームで設定した平面に動体を投影した後、それらの平面の位置合わせを行うことで、全体を俯瞰できる平面図を作成している。これに対して、本実施の形態では、全体を俯瞰できる仮想平面を用意し、3次元位置情報投影部14cは、図17(a)で示すような各画像の仮想平面の中で、基準となるフレームで設定した仮想平面に、図17(b)で示すように残余のフレームで設定した平面を連結して作成する。
ここで、上り坂の場合の仮想平面は図17(c)で示すようになるので、投影した動体の位置精度が低下する。そこで、このような場合はたとえばナビゲーションシステムからGPSの情報を用いることで、坂道か否かの判断が可能になるので、設定する仮想平面の傾きを変えることで、精度を高めることが可能になる。また、精度をより高めるためには、図17(d)のように、仮想曲面を設定するようにすればよい。
このように静止体を基準として各フレーム間における動体の位置情報を統合した後、仮想投影面に投影を行うことで、前記ステレオカメラ21が動いている、すなわち前記ステレオカメラ21をドライブレコーダ4などの車載カメラとした場合においも、前記運転者の目線だけでなく、路上に居る前記目撃者の目線などの任意の目線(投影面)方向からの表示画像を作成することができる。
図18は、前記ステレオカメラ21(21−1,21−2)の出力画像に対する3次元位置情報算出部11での3次元演算(距離演算)の手法を説明するための図である。説明の簡単化の為に、ステレオカメラ21−1,21−2の収差は良好に補正されており、かつ平行に設置されているものとする。実際のハードがこのような条件に無くても、画像処理により、同等の画像に変換することも可能である。ハード的或いは画像処理によって平行化された画像を用いる利点は、図19(c)や図20で後述するように、対応点の探索領域を1次元に限定できるということであるが、後述する位相限定相関法のように2次元探索が容易な手法の場合であれば、平行化されていないステレオ画像で対応付けを行い、得られた対応点結果を直接3次元化することも可能である(画像処理で平行化することで、画像にノイズが重畳されるので、平行化画像で対応付けを行うと精度が低下する。平行化前の画像から直接対応点を求めてから、最後に3次元化することで、ノイズの影響を最小限に抑えることができる。)。
前記ステレオカメラ21−1,21−2としては、少なくとも焦点距離(f)、撮像面(CCD)S1,S2の画素数、1画素の大きさ(μ)が相互に等しいものを用い、所定の基線(ベースライン)長(B)だけ前記左右に離間させて光軸L1,L2を相互に平行に配置して被写体Pを撮影したとき、撮像面S1,S2上の視差(ずれ画素数)がΔd(=d1+d2)であると、被写体Pまでの距離(D)は、
D=f・B/Δd
で求めることができる。
また、被写体Pの各部の3次元位置(X,Y,Z)は、x、yを画素上での位置とすると、以下で計算される。
X=x・D/f
Y=y・D/f
Z=D
ここで、たとえば車載用のステレオカメラには、前述のように遠方の先行車までの距離を高精度に測定したいというニーズとともに、小型化による設置し易さも求められる。
ステレオカメラの奥行き方向分解能ΔZは、
ΔZ=(D2/B)・(1/f)・Δd
で表されることから、高精度化の方法として、焦点距離fを大きくする、基線長Bを大きくするという方法が考えられる。ところが、前述のように前者では視野範囲が狭くなり、後者では装置が大型化するという欠点がある。上記欠点の無い高精度化の方法として、対応付けのサブピクセル化がある。対応付け演算を画素単位以下の分解能で行うことで、視差の分解能Δdを小さくして、ステレオ3次元計測の分解能を細かくできるからである。
図19は、前記3次元位置情報算出部11において、前記視差Δdを求めるにあたっての基準画像(ステレオカメラ21−1)に対する参照画像(ステレオカメラ21−2)の対応点探索方法を説明するための図である。先ず、図19(a)で示すように、基準画像F1上に、注目点Pを中心または重心とする所定サイズの2次元のウィンドウW1を設定する。同様に、図19(b)で示すように、参照画像F2上に、考えられる全ての位置に、所定サイズのウィンドウW2を多数設定する。ここで、図19(c)で示すように、前述のように基準画像F1と参照画像F2とがほとんど平行に配置されている場合、基準画像F1上の注目点PのY座標位置Py上に、参照画像F2の対応位置が乗っていると仮定できるので、このライン上にのみウィンドウW2を設定すればよい(基本的には1画素ずつずらしながらウィンドウW2を設定する。)。
さらにまた、基準画像F1と参照画像F2とがほとんど平行に配置されていて、かつ、基準画像F1の注目点Pと参照画像F2の対応位置との視差Δdが或る程度分かっている場合は、図19(d)で示すように、その視差Δdの範囲Δd’にのみウィンドウW2を設定すればよい。
一方、前記対応点探索にあたって、多くの対応点を探索するために、或いは高解像の画像から短時間で対応点を探索するのに好適な手法として、多重解像度戦略によるウィンドウ設定を用いてもよい。図20は、前記基準画像F1と参照画像F2とがほとんど平行に配置されていると仮定した場合の前記多重解像度戦略を説明するための図である。図20(a)は、前述の図19(a)および(c)と同様に、基準画像F1上の注目点PのY座標位置Py上に、参照画像F2の複数のウィンドウW2を設定している。しかしながら、次に図20(b)で示すように、それぞれの画像F1,F2を解像度変換して、低解像度の画像F1’,F2’を作成し、この低解像度の画像F1’,F2’間で対応付けを行う。したがって、低解像度の画像F1’,F2’では、画素数が少なくなった分だけ、探索する画素数が少なくなり、たとえば解像度を1/2にすると、探索画素数は1/2になる。
こうして、低解像度で対応位置P’を求めた後は、図20(c)で示すように、高解像度の画像F1,F2に戻って探索を行うが、低解像度で求めた対応位置から、おおよその探索範囲がわかるので、高解像度での探索は非常に狭い範囲でのみ探索を行えばよい。こうして探索範囲ΔWを狭めることで、同じ時間内で、前述のように多くの対応点を探索することができ、或いは高解像の画像から探索を行うことができる。
なお、上述の説明では、低解像度画像を1段階だけ作成しているが、複数段階で作成して、探索位置を順次絞り込んでゆくようにしてもよい。たとえば、入力画像が1280×960ピクセルのとき、第1段階目の低解像度画像として640×480ピクセル、第2段階目の低解像度画像として320×240ピクセル、第3段階目の低解像度画像として160×120ピクセルの3種類の低解像度画像を作成して、160×120ピクセルの画像から順に対応位置を探索してゆく。
さらにまた、前記3次元位置情報算出部11における対応点探索の他の手法としては、ロバストなパターン類似度演算手法として知られている振幅成分を抑制した相関法を用いることができる。そのような相関法は、パターンの周波数分解信号から、振幅成分を抑制した位相成分のみの信号を用いて類似度演算を行うので、ステレオカメラ21の撮影条件の差や、ノイズなどの影響を受けにくく、前記ロバストな相関演算が実現可能である。また、濃淡データを用いた従来の2次元相関法や特徴抽出法とは異なり、外乱に強く、明るさやコントラストの低い画像でも、精度良く演算ができるという特徴を有している。そのようなパターンの周波数分解信号を計算する手法として、フーリエ変換、離散コサイン(サイン)変換、ウエーブレット変換、アダマール変換などが知られている。前記離散コサイン(DCT)符号限定相関法については、たとえば「画像信号処理と画像パターン認識の融合-DCT符号限定相関とその応用」(貴家仁志 首都大学東京 システムデザイン学部 動的画像処理実利用化ワークショップ2007(2007.3.8-9))の論文を参照することができる。
そして、ロバストな相関演算が実現可能な相関法の代表としての位相限定相関法(POC)は、変換にフーリエ変換を用い、フーリエ級数の振幅成分を抑制した位相成分のみの相関演算を行う。以下に、その位相限定相関法(POC)を詳細を説明する。
先ず、画像サイズN1×N2ピクセルの2つの画像F1,F2をf(n1,n2),g(n1,n2)とし、定式化の便宜上、離散空間のインデックスをn1=−M1,・・・M1,n2=−M2,・・・M2とし、画像サイズをN1=2M1+1ピクセル,N2=2M2+1ピクセルとすると、これらの画像の2次元フーリエ変換(2D DFT)は、それぞれ下式で与えられる。
ここで、k1=−M1,・・・M1,k2=−M2,・・・M2
であり、Σn1n2は、
である。また、AF(k1,k2),AG(k1,k2)は振幅成分であり、ejθF(k1,k2),ejθG(k1,k2)は位相成分である。
そして、位相限定相関法(POC)は、こうして求められたフーリエ級数の振幅成分を抑制した位相成分のみの相関演算を行う。それには先ず、パターンf,gの合成位相スペクトル^R(k1,k2)は、下記のように定義される。
ここで、G(k1,k2)の複素共役は、上線を付して示す。また、θ(k1,k2)=θF(k1,k2)−θG(k1,k2)である。
この合成位相スペクトル^R(k1,k2)を逆フーリエ変換することで、相関演算を行うことができる。すなわち、θ(k1,k2)=θF(k1,k2)−θG(k1,k2)であり、POC関数^r(n1,n2)はR(k1,k2)の2次元離散フーリエ逆変換(2D IDFT)であり、次式で定義される。
ここで、Σn1n2は、
である。
上記POC関数の処理で得られるPOC値は、図21に示すように、画像間(基準ウインドウと参照ウインドウ)の移動量の座標に急峻な類似度ピークを持つことが知られており、画像マッチングにおけるロバスト性が高い。そのPOCのピークの高さが、パターン類似度を示す。そして、位置情報算出部11が、POCのピーク位置を推定することにより位置ズレ量(=視差dsub)の推定を行う。このとき、POCは離散的に求まるので、ピーク位置をサブピクセルで補間推定することによって、高分解な対応領域座標を求めることができる。ピーク位置の補間推定方法としては、放物線などの関数をフィッティングして行うことができる。そして、候補領域間の位置ズレ量Δdは、候補領域間のピクセルレベルの位置ズレ量dpixelに、POC法で求めたサブピクセルの位置ズレ量dsubを加えた量となる。
したがって、前記位相限定相関法における具体的な対応点探索の一例としては、以下の通りとなる。前述のようにPOC値は、画像間(基準ウインドウW1と参照ウインドウW2)の移動量の座標に急峻な相関ピークを持つことが知られているので、図22(a)に示すように、基準画像F1上の点Pに対応する参照画像F2上の点をP’とし、点P,P’がそれぞれ重心位置になるようなウィンドウW1,W2を設定すると、ウィンドウW1,W2間のPOC値は、ウィンドウW1,W2の重心位置にピークが立つ。したがって、参照ウインドウW2を点P’が重心位置になるように設定するのではなく、横方向に1画素ずれるように設定すると、POC値も、重心位置から1画素ずれた位置にピークが立つ。同様に、図22(b)に示すように、参照ウインドウW2を点P’が重心位置からさらに横方向に2画素ずれるようにを設定すると、POC値も、重心位置から2画素ずれた位置にピークが立つので、図19で説明したように、参照画像F2側に設定するウィンドウW2は1画素ずつずらす必要はなく、或るサンプリング間隔を持って設定すればよい。そこでどれくらいのサンプリング間隔で設定すればよいかは、探索できる範囲W3に依存するが、一般的には、図23のように、ウィンドウサイズの半分位であると言われている(重心位置に対して、±1/4位)ので、サンプリング間隔としては、たとえばウィンドウサイズの半分位が重なるように設定すればよい。したがって、基準画像F1と参照画像F2での視差の最大を128画素、ウィンドウサイズを31×31、POCで探索できる範囲は重心位置に対して、±8画素と仮定すると、最大128画素の視差を探索するためには、ウィンドウを16画素ずつずらせばよいので、8個のウィンドウを設定すればよい。
さらに、前記多重解像度戦略を用いると、図20で説明したように、画像サイズを縮小することで、探索範囲も縮小することができる。具体的に、上述の図22では、基準画像F1上の或る1点につき、参照画像F2上にウィンドウを8個設定する必要があったが、画像を1/2に縮小すると、設定するウィンドウは半分の4個でよい。さらに1/2に縮小すると設定するウィンドウは2個になり、さらに1/2に縮小すると設定するウィンドウは1個となる。つまり、上述のように視差の最大が128画素の場合は、画像を(1/2)4=1/16に縮小することで、最大視差が8画素になるので、1個のウィンドウで探索することができることになる。したがって、先ずこの1/16に縮小した画像上での対応位置が求まると、その結果を1/8縮小した画像での初期位置としてウィンドウを1個設定して対応位置を求めるという作業を、以降順次繰返せばよい。
前記3次元位置情報算出部11における対応点探索のさらに他の手法としては、SAD(濃度差の絶対値和)法や、SSD(濃度差の二乗和)法、NCC(正規化相互相関)法などを用いることもできる。
また、前述のLucas−Kaneda法による動きベクトル演算について、以下に説明する。時系列画像など、2枚の画像間の見かけの動きは、動きベクトル(オプティカルフロー)と呼ばれる。その動きベクトルいは、同一点は2枚の画像上で同じ輝度であると仮定すると、以下の式が成り立つ。
ただし、Iは画像の輝度、x,yは画像上の座標、vx,vyは動きベクトルである。
上式をテーラー展開することで、次式が得られる。
上式を変形すると、
となる。この式は、オプティカルフローの拘束式を呼ばれる。
ところで、画像上の1点(x,y)に対して、上式1つで動きベクトルを求めることはできない。そこで、Lucas−Kanade法では、画像上の1点(x,y)の周辺にウインドウを設定し、ウインドウ内で、動きベクトルが変化しないという仮定の下、上記拘束式を重み付けして連立させて、(x,y)での動きベクトルを計算する。具体的には、下式を解くことで実現できる。
さらにまた、前述のICPアルゴリズムについて以下に説明する。ICPアルゴリズムとは、反復計算により対応点間の誤差を最小化するものであり、処理のフローとしては以下のようになる。図24で示すように、Nt個の点からなる点群T={ti|i∈Nt}と、異なるNs個の点からなる点群S={si|s∈Ns}の位置合わせを行うとすると、点群Sの各点siにおいて点群Tとの距離は以下のようになるとする。
各点siに対応する点をmi∈Tとすると、点siの対応点集群Mは、
M=C(S,T)
となる。ただし、Cは最近傍点を求める関数である。
こうして点群Sの対応点群Mが求まると、位置合せのパラメータ(回転行列R、移動ベクトルt)は、下式を最小化することで求められる。
この誤差が十分小さくなるまで繰り返すことで、位置合わせを行うことができる。