(57)【特許請求の範囲】
【請求項１】
行列状に配置された複数の画素を含む画素アレイの複数の行の読み出しを順次にずらした第１の撮像素子および第２の撮像素子を含み、前記複数の行の読み出しが前記第１の撮像素子および前記第２の撮像素子で互いに逆である撮像装置で撮影された画像から被写体の速度を算出する画像処理装置において、
前記第１の撮像素子から読み出された第１の画像および前記第２の撮像素子から読み出された第２の画像を用いて、前記第１の画像上の被写体である第１の被写体の位置と前記第２の画像上の被写体である第２の被写体の位置との差を示す視差を算出する第１の算出部と、
前記第１の被写体と前記第２の被写体との形状の差異である歪み情報を算出する第２の算出部と、
前記視差および前記歪み情報を用い、前記被写体の速度を算出する第３の算出部と
を備えていることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記第１の撮像素子が有する前記複数の画素および前記第２の撮像素子が有する前記複数の画素を前記行の配列方向に複数の画素領域に分割し、前記画素領域毎に前記画素信号を行毎に順番に読み出す走査の向きを前記第１の撮像素子と前記第２の撮像素子とで互いに逆にする駆動処理を、前記撮像装置に実行させる制御部を備えることを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記第１の算出部は、前記各画素領域を行方向に分割して得られる前記第２の画像上の第２の画像領域と前記第２の画像領域に対応する前記第１の画像上の第１の画像領域との位置の差を、前記視差として前記第２の画像領域毎に算出し、
前記第２の算出部は、前記第２の被写体の形状を前記第１の被写体の形状に一致させるように変形する変形処理を実行することで、前記歪み情報を前記第２の画像領域毎に算出し、
前記第３の算出部は、前記視差および前記歪み情報を用い、前記被写体の速度を前記第２の画像領域毎に算出する
ことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記第２の算出部は、前記変形処理としてせん断変形を前記第２の被写体に実行し、前記せん断変形による前記第２の被写体の変形量を前記歪み情報として算出することを特徴とする画像処理装置。
【請求項５】
請求項３または請求項４に記載の画像処理装置において、
前記第２の算出部は、前記変形処理として前記第２の被写体を拡大あるいは縮小させる拡縮処理を実行し、前記拡縮処理による前記第２の被写体の変形量を前記歪み情報として算出することを特徴とする画像処理装置。
【請求項６】
行列状に配置された複数の画素を含む画素アレイの複数の行の読み出しを順次にずらした第１の撮像素子および第２の撮像素子を含み、前記複数の行の読み出しが前記第１の撮像素子および前記第２の撮像素子で互いに逆である撮像装置で撮影された画像から被写体の速度を算出する画像処理方法において、
前記第１の撮像素子から読み出された第１の画像および前記第２の撮像素子から読み出された第２の画像を用いて、前記第１の画像上の被写体である第１の被写体の位置と前記第２の画像上の被写体である第２の被写体の位置との差を示す視差を算出し、
前記第１の被写体と前記第２の被写体との形状の差異である歪み情報を算出し、
前記視差および前記歪み情報を用い、前記被写体の速度を算出する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
ステレオカメラ等の撮像装置は、互いに異なるレンズを介して被写体を撮像する２つの撮像素子を有し、被写体までの距離を三角測量の原理を用いて測定する。例えば、ステレオカメラで撮影された２つの動画を用いて、２つの動画間における被写体の視差から実空間における被写体の位置を算出し、算出した位置の時間変化から実空間における被写体の速度を算出する技術が提案されている（例えば、特許文献１参照）。
【０００３】
ＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサを用いた撮像装置は、複数の画素が行列状に配置された画素アレイの各行の露光時刻を順次にずらして被写体を撮像する。このため、移動する被写体がＣＭＯＳイメージセンサを用いた撮像装置により撮像される場合、被写体の画像が歪む、いわゆるローリングシャッタ歪みが発生する場合がある。
【０００４】
一方、２つの撮像素子における行の走査順序を互いに逆にして撮影された２つの画像における被写体に対するローリングシャッタ歪みの違いから被写体の動きと移動方向とを検出する撮像装置が提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０１５８１５号公報
【特許文献２】特開２０１１−２０５２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ステレオカメラで撮像される２つの動画を用いて、移動する被写体の速度を算出する場合、２つの動画のそれぞれにおいて、少なくとも２フレーム（合計４フレーム）が使用される。すなわち、被写体の速度を算出するために、メモリ等の記憶装置は、記憶領域の一部が少なくとも４フレームに占有される。
【０００７】
一つの側面では、本発明が開示する画像処理装置および画像処理方法は、被写体の速度を算出するために用いる画像のデータ量を削減することを目的とする。
【課題を解決するための手段】
【０００８】
一つの観点の画像処理装置は、行列状に配置された複数の画素を含む画素アレイの複数の行の読み出しを順次にずらした第１の撮像素子および第２の撮像素子を含み、複数の行の読み出しが第１の撮像素子および第２の撮像素子で互いに逆である撮像装置で撮影された画像から被写体の速度を算出する画像処理装置において、第１の撮像素子から読み出された第１の画像および第２の撮像素子から読み出された第２の画像を用いて、第１の画像上の被写体である第１の被写体の位置と第２の画像上の被写体である第２の被写体の位置との差を示す視差を算出する第１の算出部と、第１の被写体と第２の被写体との形状の差異である歪み情報を算出する第２の算出部と、視差および歪み情報を用い、被写体の速度を算出する第３の算出部とを有する。
【０００９】
別の観点の画像処理方法は、行列状に配置された複数の画素を含む画素アレイの複数の行の読み出しを順次にずらした第１の撮像素子および第２の撮像素子を含み、複数の行の読み出しが第１の撮像素子および第２の撮像素子で互いに逆である撮像装置で撮影された画像から被写体の速度を算出する画像処理方法において、第１の撮像素子から読み出された第１の画像および第２の撮像素子から読み出された第２の画像を用いて、第１の画像上の被写体である第１の被写体の位置と第２の画像上の被写体である第２の被写体の位置との差を示す視差を算出し、第１の被写体と第２の被写体との形状の差異である歪み情報を算出し、視差および歪み情報を用い、被写体の速度を算出する。
【発明の効果】
【００１０】
本発明が開示する画像処理装置および画像処理方法は、被写体の速度を算出するために用いる画像のデータ量を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】画像処理装置および画像処理方法の一実施形態を示す図である。
【図２】画像処理装置および画像処理方法の別の実施形態を示す図である。
【図３】図２に示した撮像素子から画素信号が読み出されるタイミングの一例を示す図である。
【図４】図２に示した撮像素子が図３に示したタイミング図に基づいて撮影した画像の一例を示す図である。
【図５】図２に示した視差算出部における視差の算出処理の一例を示す図である。
【図６】図２に示した歪み算出部における演算処理の一例を示す図である。
【図７】図２に示した画像処理装置における画像処理の一例を示す図である。
【図８】画像処理装置および画像処理方法の別の実施形態を示す図である。
【図９】図８に示した撮像素子が図３に示したタイミング図に基づいて撮影した画像の一例を示す図である。
【図１０】図８に示した歪み算出部における演算処理の一例を示す図である。
【図１１】図８に示した画像処理装置における画像処理の一例を示す図である。
【図１２】画像処理装置および画像処理方法の別の実施形態を示す図である。
【図１３】図１２に示した撮像素子が図３に示したタイミング図に基づいて撮影した画像の一例を示す図である。
【図１４】図１２に示した歪み算出部における演算処理の一例を示す図である。
【図１５】図１２に示した画像処理装置における画像処理の一例を示す図である。
【図１６】画像処理装置および画像処理方法の別の実施形態を示す図である。
【図１７】図１６に示した画像処理装置における画像処理の一例を示す図である。
【図１８】図１７に示した画像処理の続きを示す図である。
【図１９】画像処理装置および画像処理方法の別の実施形態を示す図である。
【図２０】図１９に示した撮像素子が図３に示したタイミング図に基づいて撮影した画像の一例を示す図である。
【図２１】図１９に示した歪み算出部における演算処理の一例を示す図である。
【図２２】図１９に示した画像処理装置における画像処理の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を用いて実施形態を説明する。
【００１３】
図１は、画像処理装置および画像処理方法の一実施形態を示す。図１の破線の矢印は、信号等の情報の流れを示す。図１に示した画像処理装置１００は、被写体ＯＢＪを互いに異なる位置から同時に撮像するステレオカメラ等の撮像装置ＣＡＭに記憶部ＭＥＭを介して接続される。記憶部ＭＥＭは、フレームメモリ等であり、撮像装置ＣＡＭが撮影した画像を記憶する。なお、記憶部ＭＥＭは、撮像装置ＣＡＭ内に配置されてもよく、画像処理装置１００内に配置されてもよい。また、画像処理装置１００と記憶部ＭＥＭとの間、あるいは記憶部ＭＥＭと撮像装置ＣＡＭとの間は、有線で接続されてもよく、無線で接続されてもよい。
【００１４】
撮像装置ＣＡＭは、レンズＬＥＮ１、ＬＥＮ２、レンズＬＥＮ１を介して被写体ＯＢＪを撮像する撮像素子ＩＳＥＮ１、レンズＬＥＮ２を介して被写体ＯＢＪを撮像する撮像素子ＩＳＥＮ２、および撮像素子ＩＳＥＮ１、ＩＳＥＮ２を駆動する駆動部ＤＲＶを有する。
【００１５】
撮像素子ＩＳＥＮ１、ＩＳＥＮ２は、ＣＭＯＳイメージセンサ等であり、複数の画素が行列状に配置された画素アレイを有する。駆動部ＤＲＶは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の各々に対して、画素アレイの各行の露光（走査）の開始時刻を順次にずらす制御を実行し、露光により得られる画素信号の読み出しを行毎に順番に実行する。撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２は、記憶部ＭＥＭに出力される。
【００１６】
なお、図１に示す撮像装置ＣＡＭにおいて、２つの括弧内に示すタイミング図に含まれる横に長い矩形は、時刻ｔ０から時刻ｔｅまでの、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の画素アレイの行Ｌ１、・・・Ｌｅの露光時間を示す。タイミング図に示すように、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の画素アレイの各行Ｌ１、・・・Ｌｅにおける露光の開始時刻および画素信号の読み出し時刻は、互いに時間Δｔずらされる。
【００１７】
例えば、行Ｌ１は、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の一番上の行を示し、行Ｌｅは、各撮像素子ＩＳＥＮ１、ＩＳＥＮ２の一番下の行を示す。撮像素子ＩＳＥＮ１では、露光により画素アレイに蓄積された電荷は、向きＤ１で示される順に各行から読み出され、撮像素子ＩＳＥＮ２では、露光により画素アレイに蓄積された電荷は、向きＤ２で示される順に各行から読み出される。すなわち、撮像素子ＩＳＥＮ１は、画素アレイの上側の行から画素アレイの下側の行に向けて露光を行毎に実行し、撮像素子ＩＳＥＮ２は、画素アレイの下側の行から画素アレイの上側の行に向けて露光を行毎に実行する。例えば、時刻ｔ０に、撮像素子ＩＳＥＮ１の最初の行Ｌ１および撮像素子ＩＳＥＮ２の最初の行Ｌｅの露光が開始される。
【００１８】
そして、時刻ｔ１に、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１の行Ｌ１および撮像素子ＩＳＥＮ２の行Ｌｅから画素信号をそれぞれ読み出す。以降、駆動部ＤＲＶは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の各行の露光が終了する毎に、各行から画素信号を読み出す。これにより、画像ＩＭＧ（ＩＭＧ１、ＩＭＧ２）が撮像素子ＩＳＥＮ（ＩＳＥＮ１、ＩＳＥＮ２）から読み出され、記憶部ＭＥＭに記憶される。なお、画像ＩＭＧ１、ＩＭＧ２は、画像処理装置１００に出力されてもよい。
【００１９】
このように、駆動部ＤＲＶは、露光を実行する行の順序および画素信号を読み出す行の順序（すなわち、向きＤ１、Ｄ２）を、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で互いに逆にする。なお、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きＤ１、Ｄ２は、駆動部ＤＲＶに予め設定されていてもよく、画像処理装置１００の制御により駆動部ＤＲＶに設定されてもよい。
【００２０】
各撮像素子ＩＳＥＮ１、ＩＳＥＮ２において、画素アレイの各行の露光時刻を互いにずらす場合、撮像で得られる画像ＩＭＧ１、ＩＭＧ２にローリングシャッタ歪みが発生する場合がある。
【００２１】
画像処理装置１００は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮影された２つの画像ＩＭＧ１、ＩＭＧ２を用い、画像ＩＭＧ１、ＩＭＧ２に含まれる被写体ＯＢＪの速度を算出する。例えば、画像処理装置１００は、画像処理プログラムを実行するＣＰＵ（Central Processing Unit）等の演算処理装置により実現されてもよく、専用のハードウェアにより実現されてもよい。画像処理装置１００は、視差算出部１０、歪み算出部２０および速度算出部３０を有する。視差算出部１０は、記憶部ＭＥＭから画像ＩＭＧ１、ＩＭＧ２を取得し、画像ＩＭＧ１上の被写体ＯＢＪの位置と画像ＩＭＧ２上の被写体ＯＢＪの位置との差を示す視差ＤＰＦを算出する第１の算出部の一例である。
【００２２】
図１において、画像処理装置１００に示す２つの括弧内の図は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からそれぞれ読み出された画像ＩＭＧ１、ＩＭＧ２の一例を示す。図１に示す例では、細長い矩形の形状を有する被写体ＯＢＪは、所定の速度で移動しているため、ローリングシャッタ歪みにより、画像ＩＭＧ１上では、被写体ＯＢＪ１として表れ、画像ＩＭＧ２上では、被写体ＯＢＪ２として表れる。括弧内に示す画像ＩＭＧ１、ＩＭＧ２において、破線で示す矩形は、ローリングシャッタ歪みがない場合の本来の被写体ＯＢＪの形状を示す。
【００２３】
被写体ＯＢＪが画角内を左から右に移動する場合、画像ＩＭＧ１上の被写体ＯＢＪ１は、画角の下に向かうほど、本来の形状に対して右側にずれた形状を示す。また、画像ＩＭＧ２上の被写体ＯＢＪ２は、画角の上に向かうほど、本来の形状に対して右側にずれた形状を示す。各被写体ＯＢＪ１、ＯＢＪ２の歪みは、被写体ＯＢＪの上と下とで互いに逆向きの力を被写体ＯＢＪが受けたように見えるため（すなわち、せん断変形）、以下の説明ではせん断歪みとも称される。画像ＩＭＧ１上の被写体ＯＢＪ１の位置と画像ＩＭＧ２上の被写体ＯＢＪ２の位置とのずれは、互いに異なる位置に配置されたレンズＬＥＮ１、ＬＥＮ２を介して被写体ＯＢＪを撮像したことにより生じる。
【００２４】
視差算出部１０は、例えば、画像ＩＭＧ１を基準にして画像ＩＭＧ２に対するテンプレートマッチング等の画像処理を実行し、画像ＩＭＧ１上の被写体ＯＢＪ１の位置と画像ＩＭＧ２上の被写体ＯＢＪ２の位置との差を示す視差ＤＰＦを算出する。そして、視差算出部１０は、算出した視差ＤＰＦを歪み算出部２０および速度算出部３０に出力する。
【００２５】
歪み算出部２０は、被写体ＯＢＪの速度を算出するために、画像ＩＭＧ１と画像ＩＭＧ２とを比較する第２の算出部の一例である。例えば、歪み算出部２０は、走査の向きＤ１、Ｄ２を撮像素子ＩＳＥＮ１、ＩＳＥＮ２で互いに逆にすることで、互いに異なる歪みが生じた被写体ＯＢＪ１、ＯＢＪ２の形状の差異を示す歪み情報ＩＮＦを算出する。歪み算出部２０は、視差算出部１０により算出された視差ＤＰＦを用い、被写体ＯＢＪ１、ＯＢＪ２を互いに重ねる処理を実行する。例えば、歪み算出部２０は、画像ＩＭＧ１上の被写体ＯＢＪ１の位置に画像ＩＭＧ２上の被写体ＯＢＪ２の位置を合わせる。そして、歪み算出部２０は、被写体ＯＢＪ１の形状に一致させるように、被写体ＯＢＪ２の上側と下側とで行に沿う方向に互いに逆向きに変形させるせん断変形等の変形処理を被写体ＯＢＪ２に実行する。例えば、歪み算出部２０は、せん断変形の変形量を変化させて変形処理を複数回実行し、被写体ＯＢＪ２の形状と被写体ＯＢＪ１の形状との一致の度合いを示すＳＡＤ（Sum of Absolute Difference）値等を算出する。歪み算出部２０は、ＳＡＤ値が最小値を示す（被写体ＯＢＪ２の形状が被写体ＯＢＪ１の形状に合わせ込まれた）際の被写体ＯＢＪ２に対するせん断変形による変形量を、歪み情報ＩＮＦとして算出する。例えば、歪み算出部２０は、画像ＩＭＧ１上の被写体ＯＢＪ１が示すせん断歪み（ローリングシャッタ歪み）の変化量（被写体ＯＢＪ１が示す傾き）を歪み情報ＩＮＦとして算出する。歪み算出部２０は、算出した歪み情報ＩＮＦを速度算出部３０に出力する。
【００２６】
速度算出部３０は、視差算出部１０により算出された視差ＤＰＦおよび歪み算出部２０により算出された歪み情報ＩＮＦを用い、実空間における被写体ＯＢＪの速度ＶＬを算出する第３の算出部の一例である。例えば、速度算出部３０は、撮像素子ＩＳＥＮ１における画素の行数（走査の向きＤ１の画素数）と画像ＩＭＧ１上の被写体ＯＢＪ１が示すせん断歪みの傾きとから、被写体ＯＢＪが撮像素子ＩＳＥＮ１上を移動した画素数（距離）を算出する。次に、速度算出部３０は、算出した画素数を、撮像素子ＩＳＥＮ１が画素信号を読み出す時刻ｔ１から時刻ｔｅまでの読み出し時間で除算し、被写体ＯＢＪが撮像素子ＩＳＥＮ１上を移動する速度（撮像素子ＩＳＥＮ１上の被写体ＯＢＪの速度）を算出する。そして、速度算出部３０は、例えば、視差ＤＰＦ、レンズＬＥＮ１とレンズＬＥＮ２とにおける光軸間の距離、およびレンズＬＥＮ１の焦点距離を用いて、撮像素子ＩＳＥＮ１上の被写体ＯＢＪの速度から実空間における被写体ＯＢＪの速度ＶＬを算出する。速度算出部３０は、算出した速度ＶＬをモニタ等の外部の出力装置に出力する。なお、速度算出部３０は、算出した速度ＶＬと画像ＩＭＧ１、ＩＭＧ２とを記憶部ＭＥＭに格納してもよい。
【００２７】
以上、図１に示す実施形態では、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しは、行の配列方向の走査の向きＤ１、Ｄ２を互いに逆にして実行される。これにより、撮像素子ＩＳＥＮ１で撮影された画像ＩＭＧ１上の被写体ＯＢＪ１と、撮像素子ＩＳＥＮ２で撮影された画像ＩＭＧ２上の被写体ＯＢＪ２とは、互いに異なる形状（ローリングシャッタ歪み）を示す。そこで、画像処理装置１００は、画像ＩＭＧ２上の被写体ＯＢＪ２に対してせん断変形等の変形処理を実行し、被写体ＯＢＪ２の形状を被写体ＯＢＪ１の形状に合わせ込むことで、歪み情報ＩＮＦを算出する。画像処理装置１００は、歪み情報ＩＮＦに含まれるせん断変形の変形量と、撮像素子ＩＳＥＮ１における画素の行数（走査の向きＤ１の画素数）とから、被写体ＯＢＪが撮像素子ＩＳＥＮ１上を移動した画素数を算出する。画像処理装置１００は、算出した画素数を画素信号の読み出し時間で除算した除算値（撮像素子ＩＳＥＮ１上の被写体ＯＢＪの速度）と視差ＤＰＦ等とを用いて、実空間における被写体ＯＢＪの速度ＶＬを算出する。
【００２８】
これにより、画像処理装置１００は、撮像装置ＣＡＭにおける撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの静止画像（画像ＩＭＧ１、ＩＭＧ２）を記憶部ＭＥＭから取得することで、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００は、走査の向きが互いに同じ撮像素子を２つ有するステレオカメラが撮像した少なくとも４つのフレームを用いる場合と比べて、記憶部ＭＥＭに記憶される画像のデータ量を削減できる。
【００２９】
また、画像処理装置１００は、撮像装置ＣＡＭにおける撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの画像ＩＭＧ１、ＩＭＧ２を用いて、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００は、実空間における被写体ＯＢＪの速度ＶＬを算出するために、撮像装置ＣＡＭに２回以上撮影させなくてもよい。
【００３０】
なお、１つの撮像素子を有する１つの撮像装置が撮像した動画の２フレームを用いる場合でも、被写体ＯＢＪの速度を算出できることがある。しかしながら、１つの撮像装置が撮像した２フレームから撮像装置と被写体ＯＢＪとの間の距離を算出することは困難なため、実空間における被写体ＯＢＪの速度を画像処理装置１００と同一あるいは同様の精度で算出することは困難である。
【００３１】
図２は、画像処理装置および画像処理方法の別の実施形態を示す。図２に示した画像処理装置１００Ａは、撮像装置ＣＡＭ２に接続される。撮像装置ＣＡＭ２は、図１に示した撮像装置ＣＡＭと同一または同様である。図１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図２の破線の矢印は、信号等の情報の流れを示す。撮像装置ＣＡＭ２の撮像素子ＩＳＥＮ１、ＩＳＥＮ２および駆動部ＤＲＶは、画像処理装置１００Ａ内のバスＢＵＳに接続される。
【００３２】
駆動部ＤＲＶは、例えば、画像処理装置１００Ａの制御に基づいて、画素信号の読み出しを行毎に順番に実行する際の行の配列方向の走査の向きを撮像素子ＩＳＥＮ１、ＩＳＥＮ２で互いに逆にして、撮像素子ＩＳＥＮ１、ＩＳＥＮ２をそれぞれ駆動する。駆動部ＤＲＶは、画素信号の読み出しを、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２とで共通のクロックを用いて実行する。なお、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きは、駆動部ＤＲＶに予め設定されていてもよい。駆動部ＤＲＶの動作については、図３で説明する。
【００３３】
撮像素子ＩＳＥＮ１の行の配列方向の走査の向きと撮像素子ＩＳＥＮ２の行の配列方向の走査の向きとを互いに逆にして撮像素子ＩＳＥＮ１、ＩＳＥＮ２から読み出された画像ＩＭＧ１、ＩＭＧ２は、画像処理装置１００Ａに出力される。また、駆動部ＤＲＶは、読み出しの開始時刻および終了時刻等を示す読み出し時間情報ＴＩＮＦを画像処理装置１００Ａに出力する。
【００３４】
画像処理装置１００Ａは、制御部ＣＮＴＬ、視差算出部１０ａ、歪み算出部２０ａ、速度算出部３０ａ、記録部ＲＥＣ、表示部ＤＩＰ、メモリＭＥＭ１、ＭＥＭ２およびバスＢＵＳを有する。制御部ＣＮＴＬ、視差算出部１０ａ、歪み算出部２０ａ、速度算出部３０ａ、記録部ＲＥＣ、表示部ＤＩＰおよびメモリＭＥＭ１、ＭＥＭ２は、バスＢＵＳに接続される。
【００３５】
メモリＭＥＭ１は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２を記憶するフレームメモリ等である。また、メモリＭＥＭ２は、視差ＤＰＦ、歪み情報ＩＮＦ、読み出し時間情報ＴＩＮＦ等を記憶するＲＡＭ（Random Access Memory）等である。
【００３６】
制御部ＣＮＴＬは、ＣＰＵ（Central Processing Unit）等の演算処理装置であり、画像処理装置１００Ａおよび撮像装置ＣＡＭ２の各要素を制御する。例えば、制御部ＣＮＴＬは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きを互いに逆にする駆動処理を、駆動部ＤＲＶに実行させる。制御部ＣＮＴＬの動作については、図３で説明する。
【００３７】
視差算出部１０ａは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２をバスＢＵＳを介してメモリＭＥＭ１から受け、画像ＩＭＧ１上の被写体ＯＢＪの位置と画像ＩＭＧ２上の被写体ＯＢＪの位置との差を示す視差ＤＰＦを算出する。すなわち、視差算出部１０ａは、第１の算出部の一例である。視差算出部１０ａは、算出した視差ＤＰＦをバスＢＵＳを介してメモリＭＥＭ２に出力する。視差算出部１０ａの動作については、図５および図７で説明する。
【００３８】
歪み算出部２０ａは、画像ＩＭＧ１、ＩＭＧ２をバスＢＵＳを介してメモリＭＥＭ１から受ける。そして、歪み算出部２０ａは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で走査の向きが互いに逆のために生じた画像ＩＭＧ１の被写体ＯＢＪ１と画像ＩＭＧ２の被写体ＯＢＪ２との形状の差異を示す歪み情報ＩＮＦを算出する。すなわち、歪み算出部２０ａは、第２の算出部の一例である。歪み算出部２０ａは、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。歪み算出部２０ａの動作については、図６で説明する。
【００３９】
速度算出部３０ａは、視差ＤＦＰ、歪み情報ＩＮＦ、読み出し時間情報ＴＩＮＦ等をバスＢＵＳを介してメモリＭＥＭ２から受け、実空間における被写体ＯＢＪの速度ＶＬを算出する第３の算出部の一例である。速度算出部３０ａは、算出した速度ＶＬを記録部ＲＥＣおよび表示部ＤＩＰに出力する。速度算出部３０ａの動作については、図４で説明する。
【００４０】
記録部ＲＥＣは、画像ＩＭＧ１、ＩＭＧ２および速度ＶＬ等を記録するメモリ等である。表示部ＤＩＰは、画像ＩＭＧ１、ＩＭＧ２および速度ＶＬ等を表示する液晶ディスプレイ等である。
【００４１】
図３は、図２に示した撮像素子ＩＳＥＮ１、ＩＳＥＮ２から画素信号が読み出されるタイミングの一例を示す。図３に示すタイミング図では、画像ＩＭＧ１、ＩＭＧ２の読み出しタイミングを示す。タイミング図が示すように、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の画素アレイに配置された複数の画素は、行の配列方向にｋ行毎にｎ個の画素領域ＡＲ（ＡＲ１、ＡＲ２、・・・ＡＲｎ）に分割される。タイミング図の縦軸のＬ１、Ｌ１＋ｋ、Ｌ１＋２ｋ、・・・Ｌｅは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行を示し、タイミング図の横軸は、時刻を示す。行Ｌ１、Ｌ１＋ｋ、Ｌ１＋２ｋ、・・・Ｌｅ−（ｋ−１）は、各画素領域ＡＲの上側の境界に位置する行である。タイミング図の符号ＶＤは、垂直同期信号の周期（フレームの周期）に対応する。なお、図３では、図を見やすくするために、各行の境界線の記載を省略している。
【００４２】
撮像素子ＩＳＥＮ１のタイミング図は、図１に示した撮像素子ＩＳＥＮ１のタイミング図と同一または同様である。例えば、撮像素子ＩＳＥＮ１は、時刻ｔ０に画素領域ＡＲ１の行Ｌ１の露光を開始し、時刻ｔ１に行Ｌ１の画素信号を読み出す。撮像素子ＩＳＥＮ１は、露光（走査）の開始時刻を順次に、例えば図１に示したΔｔずらす制御を実行し、画素領域ＡＲ１の行Ｌ１＋（ｋ−１）に向けて（図３の破線の矢印）露光を行毎に実行する。撮像素子ＩＳＥＮ１は、画素領域ＡＲ１の行Ｌ１＋（ｋ−１）の露光を開始した時刻からΔｔずらした時刻に、画素領域ＡＲ２の行Ｌ１＋ｋの露光を開始する。すなわち、撮像素子ＩＳＥＮ１は、図１に示した撮像素子ＩＳＥＮ１のタイミング図と同一または同様に、露光（走査）の開始時刻を順次にずらす制御を実行し、画素領域ＡＲｎの行Ｌｅに向けて（図３の破線の矢印）露光を行毎に実行する。撮像素子ＩＳＥＮ１は、時刻ｔｅに行Ｌｅの画素信号を読み出す。
【００４３】
一方、撮像素子ＩＳＥＮ２のタイミング図では、撮像素子ＩＳＥＮ２は、時刻ｔ０に画素領域ＡＲ１の行Ｌ１＋（ｋ−１）の露光を開始し、時刻ｔ１に行Ｌ１＋（ｋ−１）の画素信号を読み出す。撮像素子ＩＳＥＮ２は、露光の開始時刻を順次にずらす制御を実行し、画素領域ＡＲ１の行Ｌ１に向けて（図３の破線の矢印）露光を行毎に実行する。撮像素子ＩＳＥＮ２は、画素領域ＡＲ１の行Ｌ１の露光を開始した時刻からΔｔずらした時刻（撮像素子ＩＳＥＮ１が画素領域ＡＲ２の行Ｌ＋ｋを露光を開始する時刻）に、画素領域ＡＲ２の行Ｌ１＋（２ｋ−１）の露光を開始する。そして、撮像素子ＩＳＥＮ２は、露光の開始時刻を順次にずらす制御を実行し、画素領域ＡＲ２の行Ｌ１＋ｋに向けて（図３の破線の矢印）露光を行毎に実行する。撮像素子ＩＳＥＮ２は、このような露光処理を画素領域ＡＲｎまで繰り返し実行する。撮像素子ＩＳＥＮ２は、時刻ｔｅに画素領域ＡＲｎの行Ｌｅ−（ｋ−１）の画素信号を読み出す。撮像素子ＩＳＥＮ２が図３に示したタイミング図で露光を実行することで、画像処理装置１００Ａは、撮像素子ＩＳＥＮ１と撮像素子ＩＳＥＮ２との間の読み出し時刻が一致する行を画素領域ＡＲ毎に得ることができる。
【００４４】
図４は、図２に示した撮像素子ＩＳＥＮ１、ＩＳＥＮ２が図３に示したタイミング図に基づいて撮影した画像ＩＭＧ１、ＩＭＧ２の一例を示す。図４では、被写体ＯＢＪは、画角内を左から右に移動する。また、図４では、図を見やすくするために、画素領域ＡＲは３つ（ｎ＝３）とする。この場合、画像ＩＭＧ１上の被写体ＯＢＪ１は、図１と同様に、画角の下に向かうほど、破線の矩形で示す本来の形状に対して右側にずれる。一方、画像ＩＭＧ２上の被写体ＯＢＪ２（ＯＢＪ２ａ、ＯＢＪ２ｂ、ＯＢＪ２ｃ）は、画素領域ＡＲが３つのため３つに分れる。そして、画像ＩＭＧ２上の被写体ＯＢＪ２の形状は、画素領域ＡＲ１から画素領域ＡＲ３に向かうほど、且つ各画素領域ＡＲにおける画角の上に向かうほど、破線の矩形で示す本来の形状に対して右側にずれる。なお、図１で説明したように、画像ＩＭＧ１上の被写体ＯＢＪ１と画像ＩＭＧ２上の被写体ＯＢＪ２の左右方向のずれは、互いに異なる位置に配置されたレンズＬＥＮ１、ＬＥＮ２を介して被写体ＯＢＪを撮像したことにより生じる。
【００４５】
図５は、図２に示した視差算出部１０ａにおける視差ＤＰＦの算出処理の一例を示す。図５（ａ）に示した画像ＩＭＧ１、ＩＭＧ２は、図４と同一または同様であり、詳細な説明は省略する。図５（ｂ）は、図５（ａ）に示した画像ＩＭＧ１、ＩＭＧ２のうち被写体ＯＢＪ１、ＯＢＪ２ｂをそれぞれ含む画像領域を示す。
【００４６】
視差算出部１０ａは、例えば、画像ＩＭＧ１の被写体ＯＢＪ１と画像ＩＭＧ２の被写体ＯＢＪ２との視差ＤＰＦを算出するために、画像ＩＭＧ２の各画素領域ＡＲを行方向（図５の横方向）にｋ列毎に分割する。図５（ａ）では、視差算出部１０ａは、画像ＩＭＧ１、ＩＭＧ２の各画素領域ＡＲを５つに分割する。すなわち、画像ＩＭＧ１は、画像領域ＭＢａ（ＭＢａ１１−ＭＢａ１５、ＭＢａ２１−ＭＢａ２５、ＭＢａ３１−ＭＢａ３５）に区分けされる。画像ＩＭＧ２は、画像領域ＭＢｂ（ＭＢｂ１１−ＭＢｂ１５、ＭＢｂ２１−ＭＢｂ２５、ＭＢｂ３１−ＭＢｂ３５）に区分けされる。画像領域ＭＢａ、ＭＢｂは、第１の画像領域の一例であり、マクロブロックとも称される。
【００４７】
視差算出部１０ａは、例えば、マクロブロックＭＢａ、ＭＢｂ毎に画像ＩＭＧ１、ＩＭＧ２の画素の値を平滑化する。視差算出部１０ａは、平滑化した画像ＩＭＧ２のうち処理対象のマクロブロックＭＢｂと、平滑化した画像ＩＭＧ１のうち処理対象のマクロブロックＭＢｂが含まれる画素領域ＡＲの各マクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行する。例えば、視差算出部１０ａは、処理対象のマクロブロックＭＢｂと各マクロブロックＭＢａとにおける一致の度合いを示すＳＡＤ（Sum of Absolute Difference）値を算出する。視差算出部１０ａは、最小のＳＡＤ値を示す画像ＩＭＧ１のマクロブロックＭＢａ（すなわち画像ＩＭＧ２の処理対象のマクロブロックＭＢｂと最も一致する画像領域）を抽出する。図５（ａ）では、視差算出部１０ａは、画像ＩＭＧ２のうち網掛けで示した画素領域ＡＲ２のマクロブロックＭＢｂ２４が処理対象の場合、網掛けで示した画像ＩＭＧ１の画素領域ＡＲ２におけるマクロブロックＭＢａ２２で最小のＳＡＤ値を算出する。すなわち、図５（ａ）に示したマクロブロックＭＢａ２２の被写体ＯＢＪ１は、マクロブロックＭＢｂ２４の被写体ＯＢＪ２ｂに対応することを示す。
【００４８】
そして、視差算出部１０ａは、処理対象のマクロブロックＭＢｂの位置と、処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａの位置との差から、被写体ＯＢＪの視差ＤＰＦを算出する。視差算出部１０ａは、画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出した視差ＤＰＦをメモリＭＥＭ２に出力する。
【００４９】
なお、視差算出部１０ａがマクロブロックＭＢａ、ＭＢｂ毎に画像ＩＭＧ１、ＩＭＧ２を平滑化するため、視差ＤＰＦの精度は、マクロブロックＭＢａ、ＭＢｂの大きさ程度である。そこで、視差算出部１０ａは、視差ＤＰＦの精度を上げる処理を実行してもよい。例えば、視差算出部１０ａは、図５（ｂ）に示すように、処理対象のマクロブロックＭＢｂと処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａとのうち、中央の行ＬＭＢＣを含む網掛けで示したｍ行の幅の画像領域を抽出する。なお、ｍ行は、マクロブロックＭＢａ、ＭＢｂの行数ｋより少ない。図５（ｂ）では、視差算出部１０ａは、抽出した処理対象のマクロブロックＭＢｂ２４と対応するマクロブロックＭＢａ２２とのｍ行の幅の画像領域でテンプレートマッチング等の画像処理を実行する。
【００５０】
視差算出部１０ａは、ｍ行の幅の画像領域においてＳＡＤ値が最小値を示す位置を算出し、算出した位置で視差ＤＰＦを補正する。マクロブロックＭＢａ、ＭＢｂの行数ｋより小さいｍ行の幅の画像領域で位置を算出するため、補正した視差ＤＰＦは画素単位の精度を有する。また、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の走査の向きが画素領域ＡＲ毎に互いに逆のため、画像ＩＭＧ２のマクロブロックＭＢｂと画像ＩＭＧ１のマクロブロックＭＢａとの中央に位置する行ＬＭＢＣの画素信号の読み出し時刻は互いに一致またはほぼ一致する。すなわち、ｍ行の幅の画像領域における被写体ＯＢＪ１、ＯＢＪ２の形状は、マクロブロックＭＢａ、ＭＢｂの大きさにおける被写体ＯＢＪ１、ＯＢＪ２の形状と比べて互いに一致する。これにより、補正した視差ＤＰＦは画素単位の精度で良くなる。
【００５１】
また、視差算出部１０ａは、図７で示すように、歪み算出部２０ａにより算出された歪み情報ＩＮＦを用いて、視差を再算出してもよい。
【００５２】
図６は、図２に示した歪み算出部２０ａにおける演算処理の一例を示す。図６に示した処理では、歪み算出部２０ａは、図５（ｂ）に示した画像ＩＭＧ１のマクロブロックＭＢａ２２と画像ＩＭＧ２のマクロブロックＭＢｂ２４とを用い、被写体ＯＢＪ１、ＯＢＪ２の形状の差異を示す歪み情報ＩＮＦを算出する。なお、歪み算出部２０ａは、画像ＩＭＧ２のマクロブロックＭＢｂ２４以外の他のマクロブロックＭＢｂに対しても、マクロブロックＭＢｂ２４と同一あるいは同様の演算処理を実行する。
【００５３】
歪み算出部２０ａは、視差算出部１０ａにより画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出された視差ＤＰＦを用い、被写体ＯＢＪ１、ＯＢＪ２を互いに重ね合わせる処理を実行する。例えば、歪み算出部２０ａは、処理対象のマクロブロックＭＢｂ２４における視差ＤＰＦを用いて、マクロブロックＭＢｂ２４における被写体ＯＢＪ２ｂの位置と、マクロブロックＭＢａ２２における被写体ＯＢＪ１の位置とを互いに合わせる。そして、歪み算出部２０ａは、マクロブロックＭＢａ２２の被写体ＯＢＪ１の形状に一致させるように、せん断変形の変形処理（被写体ＯＢＪ２ｂの上下を図６の点線の矢印で示したように互いに逆向きで変形させる処理）をマクロブロックＭＢｂ２４に実行する。例えば、歪み算出部２０ａは、アフィン変換の行列を含む式（１）を用いて処理対象のマクロブロックＭＢｂ２４にせん断変形の変形処理を実行し、せん断変形された破線で示すマクロブロックＭＢｃを得る。
【００５４】
【数１】
0006477193.tif 000002
【００５５】
（ｘ，ｙ）は、処理対象のマクロブロックＭＢｂ２４の画素の位置を示し、（ｘａ，ｙａ）はせん断変形されたマクロブロックＭＢｃの画素の位置を示す。変数αは、せん断変形の変形量であり、マクロブロックＭＢａ２２の被写体ＯＢＪ１が示すせん断歪み（ローリングシャッタ歪み）の傾きを示す。以下、変数αは、せん断率とも称する。変数Ｔｘは、マクロブロックＭＢｂ２４とマクロブロックＭＢａ２２との位置の差（すなわち視差）を示す。
【００５６】
歪み算出部２０ａは、例えば、せん断率α、変数Ｔｘをそれぞれ変化させてせん断変形したマクロブロックＭＢｃとマクロブロックＭＢａ２２との間でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。なお、変数Ｔｘをせん断率αおよびマクロブロックＭＢｂの行数（行の配列方向の画素数）ｋとを用い、式（２）のように定義ことにより、式（１）を用いた変形処理で変化させる変数の数をせん断率αの１つにすることができる。
【００５７】
Ｔｘ＝−α×ｋ／２    …（２）
これにより、歪み算出部２０ａは、変形処理の演算量を削減できる。また、歪み算出部２０ａは、式（２）を用いることでマクロブロックＭＢｂ２４に変形処理を実行しても、せん断変形したマクロブロックＭＢｃとマクロブロックＭＢａ２２との中心を互いに一致させることができる。
【００５８】
歪み算出部２０ａは、ＳＡＤ値が最小値を示す際のせん断変形された被写体ＯＢＪ２ｂが被写体ＯＢＪ１に最も一致すると判定し、ＳＡＤ値が最小値を示す際のせん断率αを歪み情報ＩＮＦとして算出する。
【００５９】
速度算出部３０ａは、視差算出部１０ａにより算出された視差ＤＰＦ、歪み算出部２０ａにより算出された歪み情報ＩＮＦおよび読み出し時間情報ＴＩＮＦを用い、実空間における被写体ＯＢＪの速度ＶＬを算出する。例えば、被写体ＯＢＪが撮像素子ＩＳＥＮ１上を移動した画素数（距離）ΔＰＸは、マクロブロックＭＢａにおける行数（行の配列方向の画素数）ｋとマクロブロックＭＢａの被写体ＯＢＪ１が示すせん断率αとを用いて、式（３）で表される。速度算出部３０ａは、式（３）から画素数ΔＰＸを算出する。
【００６０】
ΔＰＸ＝α×ｋ／２    …（３）
次に、速度算出部３０ａは、撮像素子ＩＳＥＮ１がマクロブロックＭＢａにおける画素信号を読み出す読み出し時間ΔｔＲを式（４）から算出する。
【００６１】
ΔｔＲ＝（ｔｅ−ｔ１）×ｋ／（Ｌｅ−Ｌ１＋１）  …（４）
変数ｔ１、ｔｅは、読み出し時間情報ＴＩＮＦに含まれる図３に示した画素信号の読み出しの開始時刻および終了時刻を示す。変数ｋは、マクロブロックＭＢａの行数（行の配列方向の画素数）を示す。変数Ｌ１、Ｌｅは、図３に示した撮像素子ＩＳＥＮ１の１番目の行および最終行をそれぞれ示し、（Ｌｅ−Ｌ１＋１）は、撮像素子ＩＳＥＮ１の画素アレイの全行数（行の配列方向の全画素数）を示す。
【００６２】
速度算出部３０ａは、撮像素子ＩＳＥＮ１上を移動した画素数ΔＰＸを読み出し時間ΔｔＲで除算し、撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度を算出する。そして、速度算出部３０ａは、撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度、視差ＤＰＦ、レンズＬＥＮ１とレンズＬＥＮ２との光軸間の距離、およびレンズＬＥＮ１の焦点距離を用いて、実空間における被写体ＯＢＪの速度ＶＬを算出する。例えば、撮像装置ＣＡＭ２と被写体ＯＢＪとの距離ＤＩＳは、視差ＤＰＦ、レンズＬＥＮ１とレンズＬＥＮ２との光軸間の距離Ｂ、およびレンズＬＥＮ１の焦点距離ｆとを用い、式（５）で表される。
【００６３】
ＤＩＳ＝Ｂ×ｆ／ＤＰＦ  …（５）
速度算出部３０ａは、式（６）を用いて実空間における被写体ＯＢＪの速度ＶＬを算出する。
ＶＬ＝Ｖ０×ＤＩＳ／ｆ＝Ｖ０×（Ｂ×ｆ／ＤＰＦ）／ｆ＝Ｖ０×Ｂ／ＤＰＦ  …（６）
変数Ｖ０は、撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度を示す。速度算出部３０ａは、算出した速度ＶＬを、画像ＩＭＧ１、ＩＭＧ２とともに記録部ＲＥＣおよび表示部ＤＩＰに出力する。
【００６４】
図７は、図２に示した画像処理装置１００Ａにおける画像処理の一例を示す。図７に示した処理は、制御部ＣＮＴＬが画像処理プログラムを実行することにより実現される。なお、図７に示した処理は、画像処理装置１００Ａに設けられるハードウェアにより実行されてもよい。この場合、図２に示した視差算出部１０ａ、歪み算出部２０ａおよび速度算出部３０ａは、画像処理装置１００Ａ内に配置される回路により実現される。
【００６５】
ステップＳ１００では、視差算出部１０ａは、撮像装置ＣＡＭ２で撮影された画像ＩＭＧ１、ＩＭＧ２をメモリＭＥＭ１から取得する。
【００６６】
ステップＳ１１０では、視差算出部１０ａは、画像ＩＭＧ２のマクロブロックＭＢｂのうち処理対象のマクロブロックＭＢｂと、処理対象のマクロブロックＭＢｂに対応する画像ＩＭＧ１のマクロブロックＭＢａとの位置の差から視差ＤＰＦを算出する。例えば、視差算出部１０ａはマクロブロックＭＢａ、ＭＢｂ毎に画像ＩＭＧ１、ＩＭＧ２の画素の値を平滑化する。視差算出部１０ａは、平滑化した画像ＩＭＧ２のうち処理対象のマクロブロックＭＢｂを選択する。視差算出部１０ａは、選択した処理対象のマクロブロックＭＢｂと、平滑化した画像ＩＭＧ１のうち処理対象のマクロブロックＭＢｂが含まれる画素領域ＡＲの各マクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。視差算出部１０ａは、最小のＳＡＤ値を示す画像ＩＭＧ１のマクロブロックＭＢａ（すなわち画像ＩＭＧ２の処理対象のマクロブロックＭＢｂと最も一致する画像領域）を抽出する。そして、視差算出部１０ａは、処理対象のマクロブロックＭＢｂの位置と抽出したマクロブロックＭＢａの位置との差から、被写体ＯＢＪの視差ＤＰＦを算出する。視差算出部１０ａは、マクロブロックＭＢｂ毎に算出した視差ＤＰＦをメモリＭＥＭ２に出力する。
【００６７】
ステップＳ１２０では、視差算出部１０ａは、ステップＳ１１０で算出した視差ＤＰＦを補正する。例えば、視差算出部１０ａは、ステップＳ１１０で用いたマクロブロックＭＢａ、ＭＢｂのうち、中央の行ＬＭＢＣを含むｍ行の幅の画像領域でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。視差算出部１０ａは、ｍ行の幅の画像領域においてＳＡＤ値が最小値を示す位置を算出し、算出した位置で視差ＤＰＦを補正する。視差算出部１０ａは、補正した視差ＤＰＦをメモリＭＥＭ２に出力する。なお、視差ＤＰＦを補正するステップＳ１２０の処理は、省略されてもよい。
【００６８】
ステップＳ１３０では、歪み算出部２０ａは、ステップＳ１２０で補正された視差ＤＰＦを用いて、処理対象のマクロブロックＭＢｂの位置を対応する画像ＩＭＧ１のマクロブロックＭＢａの位置に合わせる。
【００６９】
ステップＳ１４０では、歪み算出部２０ａは、画像ＩＭＧ２の処理対象のマクロブロックＭＢｂに変形処理を実行し歪み情報ＩＮＦを算出する。例えば、歪み算出部２０ａは、被写体ＯＢＪ２の形状をステップＳ１１０で抽出されたマクロブロックＭＢａの被写体ＯＢＪ１の形状に一致させるように、式（１）のせん断率αを変化させて処理対象のマクロブロックＭＢｂにせん断変形の変形処理を実行する。歪み算出部２０ａは、せん断変形した処理対象のマクロブロックＭＢｂとステップＳ１１０で抽出したマクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。歪み算出部２０ａは、ＳＡＤ値が最小値を示す場合、せん断変形した被写体ＯＢＪ２の形状が被写体ＯＢＪ１の形状に最も一致すると判定する。そして、歪み算出部２０ａは、ＳＡＤ値が最小値を示す際のせん断率αを歪み情報ＩＮＦとして算出し、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。
【００７０】
ステップＳ１５０では、歪み算出部２０ａは、ステップＳ１４０で算出した歪み情報ＩＮＦのせん断率αが０か否かを判定する。例えば、歪み算出部２０ａは、せん断率αが０（すなわち被写体ＯＢＪのローリングシャッタ歪みがない）の場合、被写体ＯＢＪは動いていない（すなわち実空間上の速度ＶＬが０）と判定する。この場合、画像処理装置１００Ａの処理は、ステップＳ１８０に移る。一方、歪み算出部２０ａが、せん断率αが０でない（すなわち被写体ＯＢＪのローリングシャッタ歪みがある）と判定する場合、画像処理装置１００Ａの処理は、ステップＳ１６０に移る。
【００７１】
ステップＳ１６０では、視差算出部１０ａは、ステップＳ１４０で算出された歪み情報ＩＮＦを用い視差ＤＰＦを再算出する。視差算出部１０ａは、ステップＳ１２０で、マクロブロックＭＢａ、ＭＢｂのうち中央の行ＬＭＢＣを含むｍ行の幅の画像領域を用い視差ＤＰＦを補正する。しかしながら、ｍ行の幅の画像領域における被写体ＯＢＪ１、ＯＢＪ２の形状は依然として互いに異なる。このため、ステップＳ１２０で補正された視差ＤＰＦは、互いに異なる位置に配置されたレンズＬＥＮ１、ＬＥＮ２を介して被写体ＯＢＪを撮像したことにより生じる視差との誤差を含む。そこで、視差算出部１０ａは、例えば、ステップＳ１４０で算出されたせん断率αを用い処理対象のマクロブロックＭＢｂに対してせん断変形を実行する。視差算出部１０ａは、せん断変形した処理対象のマクロブロックＭＢｂと処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａとの間でテンプレートマッチングを実行し、ＳＡＤ値を算出する。視差算出部１０ａは、ＳＡＤ値が最小値を示す場合、せん断変形した処理対象のマクロブロックＭＢｂと処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａとの位置の差から、被写体ＯＢＪの視差ＤＰＦを再算出する。視差算出部１０ａは、再算出した視差ＤＰＦをメモリＭＥＭ２に出力する。
【００７２】
ステップＳ１７０では、速度算出部３０ａは、ステップＳ１６０で再算出した視差ＤＰＦおよびステップＳ１４０で算出した歪み情報ＩＮＦ等を用い、式（３）−式（６）から実空間における被写体の速度ＶＬを算出する。
【００７３】
ステップＳ１８０では、制御部ＣＮＴＬは、画像ＩＭＧ２において次のマクロブロックＭＢｂがあるか否かを判定する。制御部ＣＮＴＬが次の処理対象となるマクロブロックＭＢｂがあると判定した場合、画像処理装置１００Ａの処理は、ステップＳ１１０に移る。一方、制御部ＣＮＴＬが次の処理対象となるマクロブロックＭＢｂがないと判定した場合、画像処理装置１００Ａの処理は終了する。
【００７４】
以上、図２から図７に示す実施形態では、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しは、行の配列方向の走査の向きを画素領域ＡＲ毎に互いに逆にして実行される。これにより、撮像素子ＩＳＥＮ１で撮影された画像ＩＭＧ１上の被写体ＯＢＪ１と、撮像素子ＩＳＥＮ２で撮影された画像ＩＭＧ２上の被写体ＯＢＪ２とは、画素領域ＡＲ毎に互いに異なる形状（ローリングシャッタ歪み）を示す。そこで、画像処理装置１００Ａは、画像ＩＭＧ２上の被写体ＯＢＪ２に対してマクロブロックＭＢｂ毎にせん断変形等の変形処理を実行し、被写体ＯＢＪ２の形状を被写体ＯＢＪ１の形状に合わせ込むことで、歪み情報ＩＮＦを算出する。画像処理装置１００Ａは、歪み情報ＩＮＦに含まれるせん断率αとマクロブロックＭＢａの行数ｋとから、被写体ＯＢＪが撮像素子ＩＳＥＮ１上を移動した画素数ΔＰＸを算出する。画像処理装置１００Ａは、算出した画素数ΔＰＸを画素信号の読み出し時間ΔｔＲで除算した除算値（速度Ｖ０）と視差ＤＰＦ等とを用いて、実空間における被写体ＯＢＪの速度ＶＬを算出する。
【００７５】
これにより、画像処理装置１００Ａは、撮像装置ＣＡＭ２における撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの静止画像（画像ＩＭＧ１、ＩＭＧ２）から、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００Ａは、走査の向きが互いに同じ撮像素子を２つ有するステレオカメラが撮像した少なくとも４つのフレームを用いる場合と比べて、メモリＭＥＭ１に記憶される画像のデータ量を削減できる。
【００７６】
また、画像処理装置１００Ａは、撮像装置ＣＡＭ２における撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの画像ＩＭＧ１、ＩＭＧ２を用いて、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００Ａは、実空間における被写体ＯＢＪの速度ＶＬを算出するために、撮像装置ＣＡＭ２に２回以上撮影させなくてもよい。そして、画像処理装置１００Ａは、実空間における被写体ＯＢＪの速度を算出する演算量を、従来と比べて削減できる。
【００７７】
なお、１つの撮像素子を有する１つの撮像装置が撮像した動画の２フレームを用いる場合でも、被写体ＯＢＪの速度を算出できることがある。しかしながら、１つの撮像装置が撮像した２フレームから撮像装置と被写体ＯＢＪとの間の距離ＤＩＳを算出することは困難なため、実空間における被写体ＯＢＪの速度を画像処理装置１００Ａと同一あるいは同様の精度で算出することは困難である。
【００７８】
図８は、画像処理装置および画像処理方法の別の実施形態を示す。図２で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図８の破線の矢印は、信号等の情報の流れを示す。
【００７９】
画像処理装置１００Ｂは、制御部ＣＮＴＬ、視差算出部１０ｂ、歪み算出部２０ｂ、速度算出部３０ｂ、記録部ＲＥＣ、表示部ＤＩＰ、メモリＭＥＭ１、ＭＥＭ２およびバスＢＵＳを有する。制御部ＣＮＴＬ、視差算出部１０ｂ、歪み算出部２０ｂ、速度算出部３０ｂ、記録部ＲＥＣ、表示部ＤＩＰおよびメモリＭＥＭ１、ＭＥＭ２は、バスＢＵＳに接続される。
【００８０】
制御部ＣＮＴＬは、ＣＰＵ等の演算処理装置であり、画像処理装置１００Ｂおよび撮像装置ＣＡＭ２の各要素を制御する。例えば、制御部ＣＮＴＬは、図３に示したタイミング図のように、撮像素子ＩＳＥＮ１、ＩＳＥＮ２の行の配列方向の走査の向きを画素領域ＡＲ毎に互いに逆にする駆動処理を、駆動部ＤＲＶに実行させる。
【００８１】
視差算出部１０ｂは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２をバスＢＵＳを介してメモリＭＥＭ１から受ける。視差算出部１０ｂは、図２に示した視差算出部１０ａと同様に、画像ＩＭＧ１上の被写体ＯＢＪ１の位置と画像ＩＭＧ２上の被写体ＯＢＪ２の位置との差を示す視差ＤＰＦを、画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出する。視差算出部１０ｂは、第１の算出部の一例である。視差算出部１０ｂの動作については、図９で説明する
歪み算出部２０ｂは、画像ＩＭＧ１、ＩＭＧ２をバスＢＵＳを介してメモリＭＥＭ１から受ける。歪み算出部２０ｂは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で走査の向きが互いに逆のために生じた画像ＩＭＧ１の被写体ＯＢＪ１と画像ＩＭＧ２の被写体ＯＢＪ２との形状の差異を示す歪み情報ＩＮＦを、画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出する。歪み算出部２０ｂは、第２の算出部の一例である。歪み算出部２０ｂは、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。歪み算出部２０ｂの動作については、図１０で説明する。
【００８２】
速度算出部３０ｂは、視差ＤＰＦ、歪み情報ＩＮＦ、読み出し時間情報ＴＩＮＦ等をバスＢＵＳを介してメモリＭＥＭ２から受け、実空間における被写体ＯＢＪの速度ＶＬを算出する第３の算出部の一例である。速度算出部３０ｂは、算出した速度ＶＬを記録部ＲＥＣおよび表示部ＤＩＰに出力する。速度算出部３０ｂの動作については、図１０で説明する。
【００８３】
図９は、図８に示した撮像素子ＩＳＥＮ１、ＩＳＥＮ２が図３に示したタイミング図に基づいて撮影した画像ＩＭＧ１、ＩＭＧ２の一例を示す。図９では、被写体ＯＢＪは、例えば、画角内を上から下（撮像素子ＩＳＥＮ１の走査の向き）に移動する。また、図９では、図を見やすくするために、図４と同様に、画素領域ＡＲは３つ（ｎ＝３）とする。さらに、画像ＩＭＧ１、ＩＭＧ２は、図５と同様に、視差算出部１０ｂにより各画素領域ＡＲを行方向（図９の横方向）にｋ列毎に分割される。すなわち、画像ＩＭＧ１は、画像領域ＭＢａ（ＭＢａ１１−ＭＢａ１５、ＭＢａ２１−ＭＢａ２５、ＭＢａ３１−ＭＢａ３５）に区分けされる。画像ＩＭＧ２は、画像領域ＭＢｂ（ＭＢｂ１１−ＭＢｂ１５、ＭＢｂ２１−ＭＢｂ２５、ＭＢｂ３１−ＭＢｂ３５）に区分けされる。
【００８４】
撮像素子ＩＳＥＮ１の画素領域ＡＲにおける走査の向きと被写体ＯＢＪが移動する向きとは、互いに同じである。このため、撮像素子ＩＳＥＮ１が画素信号を読み出す行の配列方向の走査速度と撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度との相対的な速度差は、小さくなる。これにより、画像ＩＭＧ１上の被写体ＯＢＪ１は、網掛けの矩形で示す本来の形状に対して下の方向に伸びた形状を示す。一方、撮像素子ＩＳＥＮ２における行の配列方向の走査速度と撮像素子ＩＳＥＮ２上を移動する被写体ＯＢＪの速度との相対的な速度差は、撮像素子ＩＳＥＮ２の画素領域ＡＲにおける走査の向きと被写体ＯＢＪが移動する向きが互いに逆のため大きくなる。このため、画像ＩＭＧ２上の被写体ＯＢＪ２は、網掛けの矩形で示す本来の形状に対して上下方向に縮んだ形状を示す。なお、図１で説明したように、画像ＩＭＧ１上の被写体ＯＢＪ１と画像ＩＭＧ２上の被写体ＯＢＪ２の左右方向のずれは、互いに異なる位置に配置されたレンズＬＥＮ１、ＬＥＮ２を介して被写体ＯＢＪを撮像したことにより生じる。
【００８５】
視差算出部１０ｂは、例えば、図２に示した視差算出部１０ａと同様に、マクロブロックＭＢａ、ＭＢｂ毎に画像ＩＭＧ１、ＩＭＧ２の画素の値を平滑化する。視差算出部１０ｂは、平滑化した画像ＩＭＧ２のうち処理対象のマクロブロックＭＢｂと、平滑化した画像ＩＭＧ１のうち処理対象のマクロブロックＭＢｂが含まれる画素領域ＡＲの各マクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行する。そして、視差算出部１０ｂは、処理対象のマクロブロックＭＢｂと各マクロブロックＭＢａとにおける一致の度合いを示すＳＡＤ値を算出する。視差算出部１０ｂは、最小のＳＡＤ値を示す画像ＩＭＧ１のマクロブロックＭＢａ（すなわち画像ＩＭＧ２の処理対象のマクロブロックＭＢｂと最も一致する画像領域）を抽出する。図９では、視差算出部１０ｂは、画像ＩＭＧ２のうち画素領域ＡＲ１のマクロブロックＭＢｂ１４が処理対象の場合、画像ＩＭＧ１の画素領域ＡＲ１におけるマクロブロックＭＢａ１２で最小のＳＡＤ値を算出する。すなわち、図９に示したマクロブロックＭＢａ１２の被写体ＯＢＪ１は、マクロブロックＭＢｂ１４の被写体ＯＢＪ２に対応することを示す。
【００８６】
そして、視差算出部１０ｂは、処理対象のマクロブロックＭＢｂの位置と処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａの位置との差から、被写体ＯＢＪの視差ＤＰＦを算出する。視差算出部１０ｂは、画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出した視差ＤＰＦをメモリＭＥＭ２に出力する。
【００８７】
図１０は、図８に示した歪み算出部２０ｂにおける演算処理の一例を示す。図１０に示した例では、歪み算出部２０ｂは、図９に示した画像ＩＭＧ２のマクロブロックＭＢｂ１４とマクロブロックＭＢｂ１４に対応する画像ＩＭＧ１のマクロブロックＭＢａ１２とを用い、被写体ＯＢＪ１、ＯＢＪ２の形状の差異を示す歪み情報ＩＮＦを算出する。なお、歪み算出部２０ｂは、画像ＩＭＧ２のマクロブロックＭＢｂ１４以外の他のマクロブロックＭＢｂに対しても、マクロブロックＭＢｂ１４と同一あるいは同様の演算処理を実行する。
【００８８】
歪み算出部２０ｂは、視差算出部１０ｂにより画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出された視差ＤＰＦを用い、被写体ＯＢＪ１、ＯＢＪ２を互いに重ね合わせる処理を実行する。例えば、歪み算出部２０ｂは、処理対象のマクロブロックＭＢｂ１４における視差ＤＰＦを用いて、マクロブロックＭＢｂ１４における被写体ＯＢＪ２の位置と、マクロブロックＭＢａ１２における被写体ＯＢＪ１の位置とを互いに合わせる。そして、歪み算出部２０ｂは、マクロブロックＭＢａ１２の被写体ＯＢＪ１の形状に一致させるように、被写体ＯＢＪ２を図１０に示す矢印の向きで拡大（あるいは縮小）する変形処理（以下、拡縮変形とも称する）をマクロブロックＭＢｂ１４に実行する。例えば、歪み算出部２０ｂは、アフィン変換の行列を含む式（７）を用いて処理対象のマクロブロックＭＢｂ１４に拡縮処理を実行し、拡縮された破線で示すマクロブロックＭＢｄを得る。
【００８９】
【数２】
0006477193.tif 000003
【００９０】
（ｘ，ｙ）は、処理対象のマクロブロックＭＢｂ１４の画素の位置を示し、（ｘａ，ｙａ）は拡縮されたマクロブロックＭＢｄの画素の位置を示す。変数βは、拡縮処理による変形量であり、拡縮率とも称される。変数Ｔｙは、被写体ＯＢＪ１における行の配列方向の中心位と被写体ＯＢＪ２における行の配列方向の中心との差を示す。
【００９１】
歪み算出部２０ｂは、例えば、拡縮率β、変数Ｔｙをそれぞれ変化させて拡縮したマクロブロックＭＢｄとマクロブロックＭＢａ１２との間でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。歪み算出部２０ｂは、ＳＡＤ値が最小値を示す場合、拡縮した被写体ＯＢＪ２が被写体ＯＢＪ１に最も一致すると判定する、そして、歪み算出部２０ｂは、ＳＡＤ値が最小値を示す際の拡縮率βを歪み情報ＩＮＦとして算出する。
【００９２】
速度算出部３０ｂは、視差算出部１０ｂにより算出された視差ＤＰＦ、歪み算出部２０ｂにより算出された歪み情報ＩＮＦおよび読み出し時間情報ＴＩＮＦを用い、実空間における被写体ＯＢＪの速度ＶＬを算出する。例えば、図９に示したように、撮像素子ＩＳＥＮ１における行の配列方向の走査速度と撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度との相対的な速度差が小さくなるため、画像ＩＭＧ１上の被写体ＯＢＪ１は、被写体ＯＢＪが下方向に伸びた形状を示す。一方、撮像素子ＩＳＥＮ２における行の配列方向の走査速度と撮像素子ＩＳＥＮ２上を移動する被写体ＯＢＪの速度との相対的な速度差が大きくなるため、画像ＩＭＧ２上の被写体ＯＢＪ２は、被写体ＯＢＪを上下方向に縮めた形状を示す。換言すれば、図９は、行の配列方向の被写体ＯＢＪ１、ＯＢＪ２の大きさは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２における行の配列方向の走査速度と、撮像素子ＩＳＥＮ１、ＩＳＥＮ２上を移動する被写体ＯＢＪの速度との速度差に反比例することを示す。被写体ＯＢＪ１、ＯＢＪ２の行の配列方向における大きさの比が拡縮率βとする場合、拡縮率βは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２における行の配列方向の走査速度および撮像素子ＩＳＥＮ１、ＩＳＥＮ２上の被写体ＯＢＪの速度とを用い、式（８）で表される。
【００９３】
【数３】
0006477193.tif 000004
【００９４】
変数Ｌ１、Ｌ２は、被写体ＯＢＪ１、ＯＢＪ２の行の配列方向における大きさ（画素数）を示す。変数Ｖｓｒは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２における行の配列方向の走査速度を示す。変数Ｖ０は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２上を移動する被写体ＯＢＪの速度を示す。そして、式（８）から撮像素子ＩＳＥＮ１、ＩＳＥＮ２上を移動する被写体ＯＢＪの速度Ｖ０を算出する式（９）が導かれる。
【００９５】
【数４】
0006477193.tif 000005
【００９６】
また、式（４）が示すように、撮像素子ＩＳＥＮ１、ＩＳＥＮ２が行数ｋのマクロブロックＭＢａ、ＭＢｂから画素信号を読み出すのに、読み出し時間ΔｔＲかかる。このことから、撮像素子ＩＳＥＮ１、ＩＳＥＮ２における行の配列方向の走査速度Ｖｓｒは、式（１０）のように表される。
【００９７】
Ｖｓｒ＝ｋ／ΔｔＲ＝（Ｌｅ−Ｌ１＋１）／（ｔｅ−ｔ１）  …（１０）
速度算出部３０ｂは、拡縮率β、読み出し時間情報ＴＩＮＦを用い、式（９）、式（１０）から撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度Ｖ０を算出する。速度算出部３０ｂは、撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度Ｖ０、視差ＤＰＦ、レンズＬＥＮ１とレンズＬＥＮ２との光軸間の距離Ｂ、およびレンズＬＥＮ１の焦点距離ｆを用い、式（６）から実空間における被写体ＯＢＪの速度ＶＬを算出する。そして、速度算出部３０ｂは、算出した速度ＶＬを、画像ＩＭＧ１、ＩＭＧ２とともに記録部ＲＥＣおよび表示部ＤＩＰに出力する。
【００９８】
図１１は、図８に示した画像処理装置１００Ｂにおける画像処理の一例を示す。図１１に示した処理は、制御部ＣＮＴＬが画像処理プログラムを実行することにより実現される。なお、図１１に示したステップの動作のうち、図７に示したステップと同一または同様の処理を示すものについては、同一のステップ番号を付し、詳細な説明を省略する。
【００９９】
また、図１１に示した処理は、画像処理装置１００Ｂに設けられるハードウェアにより実行されてもよい。この場合、図８に示した視差算出部１０ｂ、歪み算出部２０ｂおよび速度算出部３０ｂは、画像処理装置１００Ｂ内に配置される回路により実現される。
【０１００】
画像処理装置１００Ｂは、図１１に示したステップＳ１００、ステップＳ１１０およびステップＳ１３０の処理を実行した後、ステップＳ１４０ａの処理を実行する。
【０１０１】
ステップＳ１４０ａでは、歪み算出部２０ｂは、画像ＩＭＧ２の処理対象のマクロブロックＭＢｂに変形処理を実行し歪み情報ＩＮＦを算出する。例えば、歪み算出部２０ｂは、被写体ＯＢＪ２の形状をステップＳ１１０で抽出されたマクロブロックＭＢａの被写体ＯＢＪ１の形状に一致させるように、式（７）の拡縮率βおよび変数Ｔｙを変化させて処理対象のマクロブロックＭＢｂに拡縮処理を実行する。歪み算出部２０ｂは、拡縮処理した処理対象のマクロブロックＭＢｂとステップＳ１１０で抽出されたマクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。歪み算出部２０ｂは、ＳＡＤ値が最小値を示す場合、拡縮された被写体ＯＢＪ２の形状が被写体ＯＢＪ１の形状に最も一致すると判定する。そして、歪み算出部２０ｂは、ＳＡＤ値が最小値を示す際の拡縮率βを歪み情報ＩＮＦとして算出し、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。
【０１０２】
ステップＳ１５０ａでは、歪み算出部２０ｂは、ステップＳ１４０ａで算出した歪み情報ＩＮＦの拡縮率βが１か否かを判定する。例えば、歪み算出部２０ｂは、拡縮率βが１（すなわち被写体ＯＢＪのローリングシャッタ歪みがない）の場合、被写体ＯＢＪは動いていない（すなわち実空間上の速度ＶＬが０）と判定する。この場合、画像処理装置１００Ｂの処理は、ステップＳ１８０に移る。一方、歪み算出部２０ｂが、拡縮率βが１でない（すなわち被写体ＯＢＪのローリングシャッタ歪みがある）と判定する場合、画像処理装置１００Ｂの処理は、ステップＳ１６０ａに移る。
【０１０３】
ステップＳ１６０ａでは、視差算出部１０ｂは、ステップＳ１４０ａで算出された歪み情報ＩＮＦを用い視差ＤＰＦを再算出する。視差算出部１０ｂは、例えば、ステップＳ１４０ａで算出された拡縮率βを用い処理対象のマクロブロックＭＢｂに対して拡縮処理を実行する。視差算出部１０ｂは、拡縮した処理対象のマクロブロックＭＢｂの被写体ＯＢＪ２の形状を、処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａの被写体ＯＢＪ１の形状に合わせる。視差算出部１０ｂは、拡縮した処理対象のマクロブロックＭＢｂと処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａとの間でテンプレートマッチングを実行し、ＳＡＤ値を算出する。視差算出部１０ｂは、ＳＡＤ値が最小値を示す場合、拡縮した処理対象のマクロブロックＭＢｂと処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａとの位置の差から、被写体ＯＢＪの視差ＤＰＦを再算出する。視差算出部１０ｂは、再算出した視差ＤＰＦをメモリＭＥＭ２に出力する。
【０１０４】
ステップＳ１７０ａでは、速度算出部３０ｂは、ステップＳ１６０ａで再算出された視差ＤＰＦおよびステップＳ１４０ａで算出された歪み情報ＩＮＦ等を用い、式（６）、式（９）、式（１０）から実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１０５】
画像処理装置１００Ｂは、ステップＳ１７０ａの処理を実行した後、ステップＳ１８０の処理を実行する。
【０１０６】
以上、図８から図１１に示す実施形態では、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しは、行の配列方向の走査の向きを画素領域ＡＲ毎に互いに逆にして実行される。これにより、撮像素子ＩＳＥＮ１で撮影された画像ＩＭＧ１上の被写体ＯＢＪ１と、撮像素子ＩＳＥＮ２で撮影された画像ＩＭＧ２上の被写体ＯＢＪ２とは、画素領域ＡＲ毎に互いに異なる形状（ローリングシャッタ歪み）を示す。そこで、画像処理装置１００Ｂは、画像ＩＭＧ２上の被写体ＯＢＪ２に対してマクロブロックＭＢｂ毎に拡縮する変形処理を実行し、被写体ＯＢＪ２の形状を被写体ＯＢＪ１の形状に合わせ込むことで、歪み情報ＩＮＦを算出する。画像処理装置１００Ｂは、視差ＤＰＦ、歪み情報ＩＮＦの拡縮率β、および読み出し時間情報ＴＩＮＦ等を用いて、実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１０７】
これにより、画像処理装置１００Ｂは、撮像装置ＣＡＭ２における撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの静止画像（画像ＩＭＧ１、ＩＭＧ２）から、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００Ｂは、走査の向きが互いに同じ撮像素子を２つ有するステレオカメラが撮像した少なくとも４つのフレームを用いる場合と比べて、メモリＭＥＭ１に記憶される画像のデータ量を削減できる。
【０１０８】
また、画像処理装置１００Ｂは、撮像装置ＣＡＭ２における撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの画像ＩＭＧ１、ＩＭＧ２を用いて、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００Ｂは、実空間における被写体ＯＢＪの速度ＶＬを算出するために、撮像装置ＣＡＭ２に２回以上撮影させなくてもよい。そして、画像処理装置１００Ｂは、実空間における被写体ＯＢＪの速度を算出する演算量を、従来と比べて削減できる。
【０１０９】
なお、１つの撮像素子を有する１つの撮像装置が撮像した動画の２フレームを用いる場合でも、被写体ＯＢＪの速度を算出できることがある。しかしながら、１つの撮像装置が撮像した２フレームから撮像装置と被写体ＯＢＪとの間の距離ＤＩＳを算出することは困難なため、実空間における被写体ＯＢＪの速度を画像処理装置１００Ｂと同一あるいは同様の精度で算出することは困難である。
【０１１０】
図１２は、画像処理装置および画像処理方法の別の実施形態を示す。図８で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図１２の破線の矢印は、信号等の情報の流れを示す。
【０１１１】
画像処理装置１００Ｃは、制御部ＣＮＴＬ、視差算出部１０ｃ、歪み算出部２０ｃ、速度算出部３０ｃ、記録部ＲＥＣ、表示部ＤＩＰ、メモリＭＥＭ１、ＭＥＭ２およびバスＢＵＳを有する。制御部ＣＮＴＬ、視差算出部１０ｃ、歪み算出部２０ｃ、速度算出部３０ｃ、記録部ＲＥＣ、表示部ＤＩＰおよびメモリＭＥＭ１、ＭＥＭ２は、バスＢＵＳに接続される。
【０１１２】
視差算出部１０ｃは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２をバスＢＵＳを介してメモリＭＥＭ１から受ける。視差算出部１０ｃは、図８に示した視差算出部１０ｂと同様に、画像ＩＭＧ１上の被写体ＯＢＪ１の位置と画像ＩＭＧ２上の被写体ＯＢＪ２の位置との差を示す視差ＤＰＦを、画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出する。視差算出部１０ｃは、第１の算出部の一例である。視差算出部１０ｃの動作については、図１３で説明する
歪み算出部２０ｃは、画像ＩＭＧ１、ＩＭＧ２をバスＢＵＳを介してメモリＭＥＭ１から受ける。歪み算出部２０ｃは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で走査の向きが互いに逆のために生じた画像ＩＭＧ１の被写体ＯＢＪ１と画像ＩＭＧ２の被写体ＯＢＪ２との形状の差異を示す歪み情報ＩＮＦを、画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出する。歪み算出部２０ｃは、第２の算出部の一例である。歪み算出部２０ｃは、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。歪み算出部２０ｃの動作については、図１４で説明する。
【０１１３】
速度算出部３０ｃは、視差ＤＰＦ、歪み情報ＩＮＦ、読み出し時間情報ＴＩＮＦ等をバスＢＵＳを介してメモリＭＥＭ２から受け、実空間における被写体ＯＢＪの速度ＶＬを算出する第３の算出部の一例である。速度算出部３０ｃは、算出した速度ＶＬを記録部ＲＥＣおよび表示部ＤＩＰに出力する。速度算出部３０ｃの動作については、図１４で説明する。
【０１１４】
図１３は、図１２に示した撮像素子ＩＳＥＮ１、ＩＳＥＮ２が図３に示したタイミング図に基づいて撮影した画像ＩＭＧ１、ＩＭＧ２の一例を示す。図１３では、被写体ＯＢＪは、例えば、画角内を上から下（撮像素子ＩＳＥＮ１の走査の向き）に移動する。また、図１３では、図を見やすくするために、図９と同様に、画素領域ＡＲは３つ（ｎ＝３）とする。さらに、画像ＩＭＧ１、ＩＭＧ２は、図９と同様に、視差算出部１０ｃにより各画素領域ＡＲを行方向（図１３の横方向）にｋ列毎に分割される。すなわち、画像ＩＭＧ１は、画像領域ＭＢａ（ＭＢａ１１−ＭＢａ１５、ＭＢａ２１−ＭＢａ２５、ＭＢａ３１−ＭＢａ３５）に区分けされる。画像ＩＭＧ２は、画像領域ＭＢｂ（ＭＢｂ１１−ＭＢｂ１５、ＭＢｂ２１−ＭＢｂ２５、ＭＢｂ３１−ＭＢｂ３５）に区分けされる。
【０１１５】
撮像素子ＩＳＥＮ１の画素領域ＡＲにおける走査の向きと被写体ＯＢＪが移動する向きとが互いに同じため、撮像素子ＩＳＥＮ１における行の配列方向の走査速度Ｖｓｒと撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度Ｖ０との相対的な速度差は、小さくなる。これにより、例えば、画像ＩＭＧ１上の被写体ＯＢＪ１（ＯＢＪ１ａ、ＯＢＪ１ｂ）は、網掛けの矩形で示す本来の形状に対して下の方向に、画素領域ＡＲ１、ＡＲ２に跨って伸びた形状を示す。一方、撮像素子ＩＳＥＮ２の画素領域ＡＲにおける走査の向きと被写体ＯＢＪが移動する向きが互いに逆のため、撮像素子ＩＳＥＮ２での行の配列方向の走査速度Ｖｓｒと撮像素子ＩＳＥＮ２上を移動する被写体ＯＢＪの速度Ｖ０との相対的な速度差は、大きくなる。このため、例えば、画像ＩＭＧ２上の被写体ＯＢＪ２（ＯＢＪ２ａ、ＯＢＪ２ｂ）は、網掛けの矩形で示す本来の形状に対して上下方向に縮んだ形状を各画素領域ＡＲ１、ＡＲ２で示す。なお、図１で説明したように、画像ＩＭＧ１上の被写体ＯＢＪ１と画像ＩＭＧ２上の被写体ＯＢＪ２の左右方向のずれは、互いに異なる位置に配置されたレンズＬＥＮ１、ＬＥＮ２を介して被写体ＯＢＪを撮像したことにより生じる。
【０１１６】
視差算出部１０ｃは、例えば、図８に示した視差算出部１０ｂと同様に、マクロブロックＭＢａ、ＭＢｂ毎に画像ＩＭＧ１、ＩＭＧ２の画素の値を平滑化する。視差算出部１０ｃは、平滑化した画像ＩＭＧ２のうち処理対象のマクロブロックＭＢｂと、平滑化した画像ＩＭＧ１のうち処理対象のマクロブロックＭＢｂが含まれる画素領域ＡＲの各マクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行する。そして、視差算出部１０ｃは、処理対象のマクロブロックＭＢｂと各マクロブロックＭＢａとにおける一致の度合いを示すＳＡＤ値を算出する。視差算出部１０ｂは、最小のＳＡＤ値を示す画像ＩＭＧ１のマクロブロックＭＢａ（すなわち画像ＩＭＧ２の処理対象のマクロブロックＭＢｂと最も一致する画像領域）を抽出する。図１３では、視差算出部１０ｃは、画像ＩＭＧ２のうち画素領域ＡＲ１のマクロブロックＭＢｂ１４が処理対象の場合、画像ＩＭＧ１の画素領域ＡＲ１におけるマクロブロックＭＢａ１２で最小のＳＡＤ値を算出する。すなわち、図１３に示したマクロブロックＭＢａ１２の被写体ＯＢＪ１ａは、マクロブロックＭＢｂ１４の被写体ＯＢＪ２ａに対応することを示す。
【０１１７】
また、視差算出部１０ｃは、画像ＩＭＧ２のうち画素領域ＡＲ２のマクロブロックＭＢｂ２４が処理対象の場合、画像ＩＭＧ１の画素領域ＡＲ２におけるマクロブロックＭＢａ２２で最小のＳＡＤ値を算出する。すなわち、図１３に示したマクロブロックＭＢａ２２の被写体ＯＢＪ１ｂは、マクロブロックＭＢｂ２４の被写体ＯＢＪ２ｂに対応する。そして、視差算出部１０ｃは、処理対象のマクロブロックＭＢｂの位置と、処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａの位置との差から、被写体ＯＢＪの視差ＤＰＦを算出する。視差算出部１０ｃは、画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出した視差ＤＰＦをメモリＭＥＭ２に出力する。
【０１１８】
なお、視差算出部１０ｃがマクロブロックＭＢａ、ＭＢｂ毎に画像ＩＭＧ１、ＩＭＧ２を平滑化するため、視差ＤＰＦの精度は、マクロブロックＭＢａ、ＭＢｂの大きさ程度である。そこで、視差算出部１０ｃは、視差ＤＰＦの精度を上げる処理を実行してもよい。視差算出部１０ｃは、例えば、処理対象のマクロブロックＭＢｂおよび処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａにおいて、行方向（図１３の横方向）における輝度の変化から被写体ＯＢＪ１、ＯＢＪ２のエッジを検出する。視差算出部１０ｃは、検出した被写体ＯＢＪ１、ＯＢＪ２のエッジの位置の差を算出し、算出した位置の差で視差ＤＰＦを補正する。マクロブロックＭＢａ、ＭＢｂ内の被写体ＯＢＪ１、ＯＢＪ２のエッジの位置に基づいて視差ＤＰＦを補正することで、補正した視差ＤＰＦは画素単位の精度を有する。
【０１１９】
また、図１３に示すように、被写体ＯＢＪ１が画素領域ＡＲ１、ＡＲ２に跨るため、画像ＩＭＧ１のマクロブロックＭＢａ１２、ＭＢａ２２は互いに被写体ＯＢＪ１の一部が欠ける。このため、例えば、図８に示した歪み算出部２０ｂは、式（７）を用い画像ＩＭＧ２の処理対象のマクロブロックＭＢｂ１４、ＭＢｂ２４それぞれに拡縮処理を実行しても、被写体ＯＢＪ１、ＯＢＪ２の形状を互いに一致またはほぼ一致させることが困難となる。すなわち、図８に示した歪み算出部２０ｂは、最小のＳＡＤ値を算出することが困難となり、歪み情報ＩＮＦを算出することが困難となる。
【０１２０】
図１４は、図１２に示した歪み算出部２０ｃにおける演算処理の一例を示す。図１４（ａ）は、図１３に示した画像ＩＭＧ２のマクロブロックＭＢｂ１４の被写体ＯＢＪ２ａを示す。図１４（ｂ）は、図１３に示した画像ＩＭＧ１のマクロブロックＭＢａ１２の被写体ＯＢＪ１ａを示す。すなわち、図１４に示した例では、歪み算出部２０ｃは、処理対象のマクロブロックＭＢｂ１４とマクロブロックＭＢｂ１４に対応するマクロブロックＭＢａ１２とを用い、被写体ＯＢＪ１、ＯＢＪ２の形状の差異を示す歪み情報ＩＮＦを算出する。なお、歪み算出部２０ｃは、画像ＩＭＧ２のマクロブロックＭＢｂ１４以外の他のマクロブロックＭＢｂに対しても、マクロブロックＭＢｂ１４と同一あるいは同様の演算処理を実行する。
【０１２１】
例えば、歪み算出部２０ｃは、画像ＩＭＧ１のマクロブロックＭＢａ１２および画像ＩＭＧ２のマクロブロックＭＢｂ１４の各々の輝度分布に基づいて、行の配列方向における輝度の変化から被写体ＯＢＪ１、ＯＢＪ２のエッジをそれぞれ検出する。例えば、図１４（ａ）に示した画像ＩＭＧ２のマクロブロックＭＢｂ１４では、被写体ＯＢＪ２ａが行ＥＧ２ａ、ＥＧ２ｂ間に存在することから、行ＥＧ２ａ、ＥＧ２ｂの位置で画像ＩＭＧ２の輝度が所定値より大きく変化する。すなわち、歪み算出部２０ｃは、行ＥＧ２ａ、ＥＧ２ｂの位置における所定値より大きい輝度の変化から被写体ＯＢＪ２ａのエッジを検出する。また、図１４（ｂ）に示した画像ＩＭＧ１のマクロブロックＭＢａ１２では、被写体ＯＢＪ１ａが行ＥＧ１より下側の行に存在することから、行ＥＧ１の位置で画像ＩＭＧ１の輝度が所定値より大きく変化する。歪み算出部２０ｃは、行ＥＧ１の位置における所定値より大きい輝度の変化から被写体ＯＢＪ１ａのエッジを検出する。なお、歪み算出部２０ｃが画像ＩＭＧ１のマクロブロックＭＢａ１２から被写体ＯＢＪ１ａのエッジを２つ検出しないのは、図１３に示すように、被写体ＯＢＪ１が画素領域ＡＲ１、ＡＲ２に跨っているためである。
【０１２２】
歪み算出部２０ｃは、行の配列方向における輝度の変化に基づいて、検出した被写体ＯＢＪ１ａのエッジ（行ＥＧ１）と被写体ＯＢＪ２ａのエッジ（行ＥＧ２ａ、ＥＧ２ｂ）とのうち、互いに対応するエッジを抽出する。例えば、図１４に示すように、被写体ＯＢＪ１ａの行ＥＧ１および被写体ＯＢＪ２ａの行ＥＧ２ａより下側に被写体ＯＢＪ１ａ、ＯＢＪ２ａがそれぞれ存在する。このことから、行ＥＧ１および行ＥＧ２ａの位置における行の配列方向の輝度は、互いに同一あるいは同様の変化を示す。歪み算出部２０ｃは、被写体ＯＢＪ１ａの行ＥＧ１と被写体ＯＢＪ２ａの行ＥＧ２ａとを互いに対応するエッジとして抽出する。歪み算出部２０ｃは、被写体ＯＢＪ１ａのエッジの位置を示す行ＥＧ１、被写体ＯＢＪ２ａのエッジの位置を示す行ＥＧ２ａ、ＥＧ２ｂ、および被写体ＯＢＪ１ａ、ＯＢＪ２ａ間で互いに対応するエッジを、歪み情報ＩＮＦとして算出する。歪み算出部２０ｃは、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。
【０１２３】
速度算出部３０ｃは、視差算出部１０ｃにより算出された視差ＤＰＦ、歪み算出部２０ｃにより算出された歪み情報ＩＮＦおよび読み出し時間情報ＴＩＮＦを用い、実空間における被写体ＯＢＪの速度ＶＬを算出する。例えば、図１４では、被写体ＯＢＪ１ａの行ＥＧ１のエッジが被写体ＯＢＪ２ａの行ＥＧ２ａのエッジに対応することから、式（１１）−（１４）の関係が成り立つ。
【０１２４】
Ｙ０＋Ｖ０×Ｔ１＝Ｖｓｒ×Ｔ１  …（１１）
Ｙ０＋Ｖ０×Ｔ１＝ＥＧ１  …（１２）
Ｙ０＋Ｖ０×Ｔ２＝ｋ−Ｖｓｒ×Ｔ２  …（１３）
Ｙ０＋Ｖ０×Ｔ２＝ＥＧ２ａ  …（１４）
変数Ｙ０は、撮像素子ＩＳＥＮ１、ＩＳＥＮ２が露光を開始した時刻ｔ０における被写体ＯＢＪの行の配列方向の位置を示す。変数Ｔ１は、撮像素子ＩＳＥＮ１がマクロブロックＭＢａ１２内の画素信号を読み出す行が行ＥＧ１である時刻を示す。変数Ｔ２は、撮像素子ＩＳＥＮ２がマクロブロックＭＢｂ１４の画素信号を読み出す行が行ＥＧ２ａである時刻を示す。変数ｋは、マクロブロックＭＢａ１２、ＭＢｂ１４の行数（行の配列方向の画素数）を示す。
【０１２５】
式（１１）および式（１２）は、時刻Ｔ１において、撮像素子ＩＳＥＮ１上における被写体ＯＢＪ１ａのエッジが、マクロブロックＭＢａ１２の行ＥＧ１に位置することを示す。式（１３）および式（１４）は、時刻Ｔ２において、撮像素子ＩＳＥＮ２上における被写体ＯＢＪ２ａのエッジが、マクロブロックＭＢｂ１４の行ＥＧ２ａに位置することを示す。式（１１）−式（１４）から、撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度Ｖ０を算出する式（１５）が導かれる。なお、式（１５）の行ＥＧ１、ＥＧ２ａには、処理対象のマクロブロックＭＢｂの被写体ＯＢＪ２と処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａの被写体ＯＢＪ１との間で互いに対応するエッジを示す行が代入される。
【０１２６】
【数５】
0006477193.tif 000006
【０１２７】
速度算出部３０ｃは、歪み情報ＩＮＦ、読み出し時間情報ＴＩＮＦを用い、式（１０）、式（１５）から撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度Ｖ０を算出する。速度算出部３０ｃは、撮像素子ＩＳＥＮ１上を移動する被写体ＯＢＪの速度Ｖ０、視差ＤＰＦ、レンズＬＥＮ１とレンズＬＥＮ２との光軸間の距離Ｂ、およびレンズＬＥＮ１の焦点距離ｆを用い、式（６）から実空間における被写体ＯＢＪの速度ＶＬを算出する。そして、速度算出部３０ｂは、算出した速度ＶＬを、画像ＩＭＧ１、ＩＭＧ２とともに記録部ＲＥＣおよび表示部ＤＩＰに出力する。
【０１２８】
図１５は、図１２に示した画像処理装置１００Ｃにおける画像処理の一例を示す。図１５に示した処理は、制御部ＣＮＴＬが画像処理プログラムを実行することにより実現される。なお、図１５に示したステップの動作のうち、図１１に示したステップと同一または同様の処理を示すものについては、同一のステップ番号を付し、詳細な説明を省略する。
【０１２９】
また、図１５に示した処理は、画像処理装置１００Ｃに設けられるハードウェアにより実行されてもよい。この場合、図１２に示した視差算出部１０ｃ、歪み算出部２０ｃおよび速度算出部３０ｃは、画像処理装置１００Ｃ内に配置される回路により実現される。
【０１３０】
画像処理装置１００Ｃは、図１５に示したステップＳ１００およびステップＳ１１０の処理を実行した後、ステップＳ１２０ａの処理を実行する。
【０１３１】
ステップＳ１２０ａでは、視差算出部１０ｃは、ステップＳ１１０で算出した視差ＤＰＦを補正する。例えば、視差算出部１０ｃは、処理対象のマクロブロックＭＢｂおよび処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａにおいて、行方向における輝度の変化から被写体ＯＢＪ１、ＯＢＪ２のエッジを検出する。視差算出部１０ｃは、検出した被写体ＯＢＪ１、ＯＢＪ２のエッジの位置の差を算出し、算出した位置の差で視差ＤＰＦを補正する。視差算出部１０ｃは、補正した視差ＤＰＦをメモリＭＥＭ２に出力する。なお、視差ＤＰＦを補正するステップＳ１２０ａの処理は、省略されてもよい。
【０１３２】
ステップＳ１４５では、歪み算出部２０ｃは、画像ＩＭＧ２の処理対象のマクロブロックＭＢｂと処理対象のマクロブロックＭＢｂに対応する画像ＩＭＧ１のマクロブロックＭＢａとから、被写体ＯＢＪ１、ＯＢＪ２のエッジを検出し歪み情報ＩＮＦを算出する。例えば、歪み算出部２０ｃは、画像ＩＭＧ２の処理対象のマクロブロックＭＢｂの輝度分布に基づいて、行の配列方向における輝度の変化から被写体ＯＢＪ２のエッジを検出する。歪み算出部２０ｃは、処理対象のマクロブロックＭＢｂに対応する画像ＩＭＧ１のマクロブロックＭＢａの輝度分布に基づいて、行の配列方向における輝度の変化から被写体ＯＢＪ１のエッジを検出する。そして、歪み算出部２０ｃは、行の配列方向における輝度の変化に基づいて、検出された被写体ＯＢＪ１のエッジと被写体ＯＢＪ２のエッジとのうち、互いに対応するエッジを抽出する。歪み算出部２０ｃは、検出した被写体ＯＢＪ１、ＯＢＪ２のエッジおよび抽出した被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジを歪み情報ＩＮＦとして算出する。歪み算出部２０ｃは、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。
【０１３３】
ステップＳ１５５では、歪み算出部２０ｃは、ステップＳ１４５において被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジが抽出されたか否かを判定する。例えば、歪み算出部２０ｃは、被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジが抽出されなかった場合、実空間における被写体ＯＢＪの速度ＶＬを算出することが困難と判定する。この場合、画像処理装置１００Ｃの処理は、ステップＳ１８０に移る。一方、歪み算出部２０ｃが、被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジが抽出された場合、画像処理装置１００Ｃの処理は、ステップＳ１７０ｂに移る。
【０１３４】
ステップＳ１７０ｂでは、速度算出部３０ｃは、ステップＳ１２０ａで補正された視差ＤＰＦおよびステップＳ１４５で算出された歪み情報ＩＮＦ等を用い、式（６）、式（１０）、式（１５）から実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１３５】
画像処理装置１００Ｃは、ステップＳ１７０ｂの処理を実行した後、ステップＳ１８０の処理を実行する。
【０１３６】
以上、図１２から図１５に示す実施形態では、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しは、行の配列方向の走査の向きを画素領域ＡＲ毎に互いに逆にして実行される。これにより、撮像素子ＩＳＥＮ１で撮影された画像ＩＭＧ１上の被写体ＯＢＪ１と、撮像素子ＩＳＥＮ２で撮影された画像ＩＭＧ２上の被写体ＯＢＪ２とは、画素領域ＡＲ毎に互いに異なる形状（ローリングシャッタ歪み）を示す。そこで、画像処理装置１００Ｃは、マクロブロックＭＢａ、ＭＢｂにおける輝度分布に基づいて、被写体ＯＢＪ１、ＯＢＪ２のエッジを検出し、被写体ＯＢＪ１ａ、ＯＢＪ２間で互いに対応するエッジを抽出することで、歪み情報ＩＮＦを算出する。画像処理装置１００Ｃは、視差ＤＰＦ、歪み情報ＩＮＦおよび読み出し時間情報ＴＩＮＦ等を用いて、実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１３７】
これにより、画像処理装置１００Ｃは、撮像装置ＣＡＭ２における撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの静止画像（画像ＩＭＧ１、ＩＭＧ２）から、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００Ｃは、実空間における被写体ＯＢＪの速度ＶＬを算出するために、撮像装置ＣＡＭ２に２回以上撮影させなくてもよい。そして、画像処理装置１００Ｃは、実空間における被写体ＯＢＪの速度を算出する演算量を、従来と比べて削減できる。
【０１３８】
また、画像処理装置１００Ｃは、マクロブロックＭＢａ、ＭＢｂにおける輝度分布に基づいて、被写体ＯＢＪ１、ＯＢＪ２のエッジを検出し、被写体ＯＢＪ１ａ、ＯＢＪ２間で互いに対応するエッジを抽出する。これにより、画像処理装置１００Ｃは、被写体ＯＢＪ１、ＯＢＪ２が複数の画素領域ＡＲを跨ぐ場合でも実空間における被写体ＯＢＪの速度ＶＬを算出できる。
【０１３９】
なお、１つの撮像素子を有する１つの撮像装置が撮像した動画の２フレームを用いる場合でも、被写体ＯＢＪの速度を算出できることがある。しかしながら、１つの撮像装置が撮像した２フレームから撮像装置と被写体ＯＢＪとの間の距離ＤＩＳを算出することは困難なため、実空間における被写体ＯＢＪの速度を画像処理装置１００Ｃと同一あるいは同様の精度で算出することは困難である。
【０１４０】
図１６は、画像処理装置および画像処理方法の別の実施形態を示す。図８および図１２で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図１６の破線の矢印は、信号等の情報の流れを示す。
【０１４１】
画像処理装置１００Ｄは、制御部ＣＮＴＬ、算出部ＣＡＬ、記録部ＲＥＣ、表示部ＤＩＰ、メモリＭＥＭ１、ＭＥＭ２およびバスＢＵＳを有する。制御部ＣＮＴＬ、算出部ＣＡＬ、記録部ＲＥＣ、表示部ＤＩＰおよびメモリＭＥＭ１、ＭＥＭ２は、バスＢＵＳに接続される。
【０１４２】
算出部ＣＡＬは、図８に示した視差算出部１０ｂ、歪み算出部２０ｂ、速度算出部３０ｂと図１２に示した視差算出部１０ｃ、歪み算出部２０ｃ、速度算出部３０ｃとを有する。すなわち、画像処理装置１００Ｄは、図８に示した画像処理装置１００Ｂが有する機能と図１２に示した画像処理装置１００Ｃが有する機能とを有する。
【０１４３】
図１７および図１８は、図１６に示した画像処理装置１００Ｄにおける画像処理の一例を示す。図１７および図１８に示した処理は、制御部ＣＮＴＬが画像処理プログラムを実行することにより実現される。なお、図１７および図１８に示した処理は、画像処理装置１００Ｄに設けられるハードウェアにより実行されてもよい。この場合、図１６に示した算出部ＣＡＬは、画像処理装置１００Ｄ内に配置される回路により実現される。
【０１４４】
ステップＳ２００では、視差算出部１０ｃは、撮像装置ＣＡＭ２で撮影された画像ＩＭＧ１、ＩＭＧ２をメモリＭＥＭ１から取得する。
【０１４５】
ステップＳ２１０では、視差算出部１０ｃは、画像ＩＭＧ２のマクロブロックＭＢｂのうち処理対象のマクロブロックＭＢｂと、処理対象のマクロブロックＭＢｂに対応する画像ＩＭＧ１のマクロブロックＭＢａとの位置の差から視差ＤＰＦを算出する。例えば、視差算出部１０ｃは、マクロブロックＭＢａ、ＭＢｂ毎に画像ＩＭＧ１、ＩＭＧ２の画素の値を平滑化する。視差算出部１０ｃは、平滑化した画像ＩＭＧ２のうち処理対象のマクロブロックＭＢｂを選択する。視差算出部１０ｃは、選択した処理対象のマクロブロックＭＢｂと、平滑化した画像ＩＭＧ１のうち処理対象のマクロブロックＭＢｂが含まれる画素領域ＡＲの各マクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。視差算出部１０ｃは、最小のＳＡＤ値を示す画像ＩＭＧ１のマクロブロックＭＢａ（すなわち画像ＩＭＧ２の処理対象のマクロブロックＭＢｂと最も一致する画像領域）を抽出する。そして、視差算出部１０ａは、処理対象のマクロブロックＭＢｂの位置と抽出したマクロブロックＭＢａの位置との差から、被写体ＯＢＪの視差ＤＰＦを算出する。視差算出部１０ａは、マクロブロックＭＢｂ毎に算出した視差ＤＰＦをメモリＭＥＭ２に出力する。
【０１４６】
ステップＳ２２０では、視差算出部１０ｃは、ステップＳ２１０で算出した視差ＤＰＦを補正する。例えば、視差算出部１０ｃは、処理対象のマクロブロックＭＢｂおよび処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａにおいて、行方向における輝度の変化から被写体ＯＢＪ１、ＯＢＪ２のエッジを検出する。視差算出部１０ｃは、検出した被写体ＯＢＪ１、ＯＢＪ２のエッジの位置の差を算出し、算出した位置の差で視差ＤＰＦを補正する。視差算出部１０ｃは、補正した視差ＤＰＦをメモリＭＥＭ２に出力する。
【０１４７】
ステップＳ２３０では、歪み算出部２０ｃは、処理対象のマクロブロックＭＢｂと処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａとにおける輝度分布に基づいて、行の配列方向における被写体ＯＢＪ１、ＯＢＪ２のエッジを検出する。
【０１４８】
ステップＳ２４０では、歪み算出部２０ｃは、ステップＳ２３０で検出した被写体ＯＢＪ１、ＯＢＪ２のエッジの数が互いに一致するか否かを判定する。歪み算出部２０ｃは、エッジの数が互いに一致する場合、例えば図１０に示すように、被写体ＯＢＪ１、ＯＢＪ２が１つのマクロブロック内にそれぞれ収まっていると判定する。この場合、画像処理装置１００Ｄの処理は、ステップＳ２８０に移る。一方、歪み算出部２０ｃは、エッジの数が互いに一致しない場合、例えば図１４に示すように、少なくとも被写体ＯＢＪ１、ＯＢＪ２のいずれかが複数のマクロブロックを跨いでいると判定する。この場合、画像処理装置１００Ｄの処理は、ステップＳ２５０に移る。
【０１４９】
ステップＳ２５０では、歪み算出部２０ｃは、ステップＳ２３０で検出した被写体ＯＢＪ１、ＯＢＪ２のエッジを用い歪み情報ＩＮＦを算出する。例えば、歪み算出部２０ｃは、処理対象のマクロブロックＭＢｂと対応するマクロブロックＭＢａとにおける行の配列方向の輝度の変化に基づいて、ステップＳ２３０で検出した被写体ＯＢＪ１と被写体ＯＢＪ２とのエッジのうち互いに対応するエッジを抽出する。歪み算出部２０ｃは、検出した被写体ＯＢＪ１、ＯＢＪ２のエッジおよび抽出した被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジを歪み情報ＩＮＦとして算出する。歪み算出部２０ｃは、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。
【０１５０】
ステップＳ２６０では、歪み算出部２０ｃは、ステップＳ２５０において被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジが抽出されたか否かを判定する。例えば、歪み算出部２０ｃは、被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジが抽出されなかった場合、実空間における被写体ＯＢＪの速度ＶＬを算出することが困難と判定する。この場合、画像処理装置１００Ｄの処理は、ステップＳ３７０に移る。一方、歪み算出部２０ｃが、被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジが抽出された場合、画像処理装置１００Ｄの処理は、ステップＳ２７０に移る。
【０１５１】
ステップＳ２７０では、速度算出部３０ｃは、ステップＳ２２０で補正された視差ＤＰＦおよびステップＳ２５０で算出された歪み情報ＩＮＦ等を用い、式（６）、式（１０）、式（１５）から実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１５２】
ステップＳ２８０では、歪み算出部２０ｂは、ステップＳ２２０で補正された視差ＤＰＦを用いて、画像ＩＭＧ２の処理対象のマクロブロックＭＢｂの位置を、処理対象のマクロブロックＭＢｂに対応する画像ＩＭＧ１のマクロブロックＭＢａの位置に合わせる。
【０１５３】
ステップＳ２９０では、歪み算出部２０ｂは、画像ＩＭＧ２の処理対象のマクロブロックＭＢｂに変形処理を実行し歪み情報ＩＮＦを算出する。例えば、歪み算出部２０ｂは、被写体ＯＢＪ２の形状をステップＳ２１０で抽出されたマクロブロックＭＢａの被写体ＯＢＪ１の形状に一致させるように、式（７）の拡縮率βおよび変数Ｔｙを変化させて処理対象のマクロブロックＭＢｂに拡縮処理を実行する。歪み算出部２０ｂは、拡縮処理した処理対象のマクロブロックＭＢｂとステップＳ２１０で抽出されたマクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。歪み算出部２０ｂは、ＳＡＤ値が最小値を示す場合、拡縮された被写体ＯＢＪ２の形状が被写体ＯＢＪ１の形状に最も一致すると判定する。そして、歪み算出部２０ｂは、ＳＡＤ値が最小値を示す際の拡縮率βを歪み情報ＩＮＦとして算出し、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。
【０１５４】
図１８に示したステップＳ３００では、歪み算出部２０ｂは、ステップＳ２９０で算出した歪み情報ＩＮＦの拡縮率βが１か否かを判定する。例えば、歪み算出部２０ｂは、拡縮率βが１（すなわち被写体ＯＢＪのローリングシャッタ歪みがない）の場合、被写体ＯＢＪは動いていない（すなわち実空間上の速度ＶＬが０）と判定する。この場合、画像処理装置１００Ｄの処理は、ステップＳ３３０に移る。一方、歪み算出部２０ｂが、拡縮率βが１でない（すなわち被写体ＯＢＪのローリングシャッタ歪みがある）と判定する場合、画像処理装置１００Ｄの処理は、ステップＳ３１０に移る。
【０１５５】
ステップＳ３１０では、視差算出部１０ｂは、ステップＳ２９０で算出された歪み情報ＩＮＦを用い視差ＤＰＦを再算出する。視差算出部１０ｂは、例えば、ステップＳ２９０で算出された拡縮率βを用い処理対象のマクロブロックＭＢｂに対して拡縮処理を実行する。視差算出部１０ｂは、拡縮した処理対象のマクロブロックＭＢｂの被写体ＯＢＪ２の形状を、処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａの被写体ＯＢＪ１の形状に合わせる。視差算出部１０ｂは、拡縮した処理対象のマクロブロックＭＢｂと処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａとの間でテンプレートマッチングを実行し、ＳＡＤ値を算出する。視差算出部１０ｂは、ＳＡＤ値が最小値を示す場合、拡縮した処理対象のマクロブロックＭＢｂと処理対象のマクロブロックＭＢｂに対応するマクロブロックＭＢａとの位置の差から、被写体ＯＢＪの視差ＤＰＦを再算出する。視差算出部１０ｂは、再算出した視差ＤＰＦをメモリＭＥＭ２に出力する。
【０１５６】
ステップＳ３２０では、速度算出部３０ｂは、ステップＳ３１０で再算出された視差ＤＰＦおよびステップＳ２９０で算出された歪み情報ＩＮＦ等を用い、式（６）、式（９）、式（１０）から実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１５７】
ステップＳ３３０では、歪み算出部２０ｃは、ステップＳ２３０で検出した被写体ＯＢＪ１、ＯＢＪ２のエッジを用い歪み情報ＩＮＦを算出する。例えば、歪み算出部２０ｃは、処理対象のマクロブロックＭＢｂと対応するマクロブロックＭＢａとにおける行の配列方向の輝度の変化に基づいて、ステップＳ２３０で検出した被写体ＯＢＪ１と被写体ＯＢＪ２とのエッジのうち互いに対応するエッジを抽出する。歪み算出部２０ｃは、検出した被写体ＯＢＪ１、ＯＢＪ２のエッジおよび抽出した被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジを歪み情報ＩＮＦとして算出する。歪み算出部２０ｃは、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。
【０１５８】
ステップＳ３４０では、歪み算出部２０ｃは、ステップＳ３３０において被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジが抽出されたか否かを判定する。例えば、歪み算出部２０ｃは、被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジが抽出されなかった場合、実空間における被写体ＯＢＪの速度ＶＬを算出することが困難と判定する。この場合、画像処理装置１００Ｄの処理は、ステップＳ３６０に移る。一方、歪み算出部２０ｃが、被写体ＯＢＪ１、ＯＢＪ２間で互いに対応するエッジが抽出された場合、画像処理装置１００Ｄの処理は、ステップＳ３５０に移る。
【０１５９】
ステップＳ３５０では、速度算出部３０ｃは、式（６）、式（１０）、式（１５）から実空間における被写体ＯＢＪの速度ＶＬを算出する。なお、速度算出部３０ｃは、実空間における被写体ＯＢＪの速度ＶＬを算出するために、ステップＳ２２０で補正された視差ＤＰＦあるいはステップＳ３１０で再算出された視差ＤＰＦ、およびステップＳ３３０で算出された歪み情報ＩＮＦ等を用いる。
【０１６０】
ステップＳ３６０では、算出部ＣＡＬは、ステップＳ３２０およびステップＳ３５０でそれぞれ算出された速度ＶＬの平均値を、実空間における被写体ＯＢＪの速度ＶＬとして算出する。算出部ＣＡＬは、算出した実空間における被写体ＯＢＪの速度ＶＬをメモリＭＥＭ２に出力する。なお、ステップＳ３５０の処理が飛ばされた場合、算出部ＣＡＬは、ステップＳ３２０で算出された速度ＶＬを、実空間における被写体ＯＢＪの速度ＶＬとする。
【０１６１】
ステップＳ３７０では、制御部ＣＮＴＬは、画像ＩＭＧ２において次のマクロブロックＭＢｂがあるか否かを判定する。制御部ＣＮＴＬが次の処理対象となるマクロブロックＭＢｂがあると判定した場合、画像処理装置１００Ｄの処理は、ステップＳ２１０に移る。一方、制御部ＣＮＴＬが次の処理対象となるマクロブロックＭＢｂがないと判定した場合、画像処理装置１００Ｄの処理は終了する。
【０１６２】
以上、図１６から図１８に示す実施形態では、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しは、行の配列方向の走査の向きを画素領域ＡＲ毎に互いに逆にして実行される。これにより、撮像素子ＩＳＥＮ１で撮影された画像ＩＭＧ１上の被写体ＯＢＪ１と、撮像素子ＩＳＥＮ２で撮影された画像ＩＭＧ２上の被写体ＯＢＪ２とは、画素領域ＡＲ毎に互いに異なる形状（ローリングシャッタ歪み）を示す。そこで、画像処理装置１００Ｄは、マクロブロックＭＢａ、ＭＢｂにおける輝度分布に基づいて被写体ＯＢＪ１、ＯＢＪ２のエッジを検出し、検出されたエッジの数に応じて実空間における被写体ＯＢＪの速度ＶＬを算出する処理を切り替える。
【０１６３】
すなわち、画像処理装置１００Ｄは、被写体ＯＢＪ１、ＯＢＪ２のエッジの数が互いに一致する場合、図８に示した画像処理装置１００Ｂおよび図１２に示した画像処理装置１００Ｃの画像処理と同一または同様の処理をそれぞれ実行し、被写体ＯＢＪの速度ＶＬをそれぞれ算出する。そして、画像処理装置１００Ｄは、それぞれの画像処理から算出した速度ＶＬの平均値を、実空間における被写体ＯＢＪの速度ＶＬとする。一方、画像処理装置１００Ｄは、被写体ＯＢＪ１、ＯＢＪ２のエッジの数が互いに一致しない場合、図１２に示した画像処理装置１００Ｃにおける画像処理と同一または同様の処理を実行し、実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１６４】
これにより、画像処理装置１００Ｄは、マクロブロックＭＢａ、ＭＢｂにおける被写体ＯＢＪ１、ＯＢＪ２の状態に応じて、実空間における被写体ＯＢＪの速度ＶＬを確実に算出できる。
【０１６５】
また、画像処理装置１００Ｄは、撮像装置ＣＡＭ２における撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの静止画像（画像ＩＭＧ１、ＩＭＧ２）から、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００Ｄは、走査の向きが互いに同じ撮像素子を２つ有するステレオカメラが撮像した少なくとも４つのフレームを用いる場合と比べて、メモリＭＥＭ１に記憶される画像のデータ量を削減できる。
【０１６６】
また、画像処理装置１００Ｄは、撮像装置ＣＡＭ２における撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの画像ＩＭＧ１、ＩＭＧ２を用いて、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００Ｄは、実空間における被写体ＯＢＪの速度ＶＬを算出するために、撮像装置ＣＡＭ２に２回以上撮影させなくてもよい。そして、画像処理装置１００Ｄは、実空間における被写体ＯＢＪの速度を算出する演算量を、従来と比べて削減できる。
【０１６７】
なお、１つの撮像素子を有する１つの撮像装置が撮像した動画の２フレームを用いる場合でも、被写体ＯＢＪの速度を算出できることがある。しかしながら、１つの撮像装置が撮像した２フレームから撮像装置と被写体ＯＢＪとの間の距離ＤＩＳを算出することは困難なため、実空間における被写体ＯＢＪの速度を画像処理装置１００Ｄと同一あるいは同様の精度で算出することは困難である。
【０１６８】
図１９は、画像処理装置および画像処理方法の別の実施形態を示す。図２および図８で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図１９の破線の矢印は、信号等の情報の流れを示す。
【０１６９】
画像処理装置１００Ｅは、制御部ＣＮＴＬ、視差算出部１０ｄ、歪み算出部２０ｄ、速度算出部３０ｄ、記録部ＲＥＣ、表示部ＤＩＰ、メモリＭＥＭ１、ＭＥＭ２およびバスＢＵＳを有する。制御部ＣＮＴＬ、視差算出部１０ｄ、歪み算出部２０ｄ、速度算出部３０ｄ、記録部ＲＥＣ、表示部ＤＩＰおよびメモリＭＥＭ１、ＭＥＭ２は、バスＢＵＳに接続される。
【０１７０】
視差算出部１０ｄは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で撮像された画像ＩＭＧ１、ＩＭＧ２をバスＢＵＳを介してメモリＭＥＭ１から受ける。視差算出部１０ｄは、画像ＩＭＧ１上の被写体ＯＢＪ１の位置と画像ＩＭＧ２上の被写体ＯＢＪ２の位置との差を示す視差ＤＰＦを、画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出する。視差算出部１０ｄは、第１の算出部の一例である。視差算出部１０ｄの動作については、図２０で説明する。
【０１７１】
歪み算出部２０ｄは、画像ＩＭＧ１、ＩＭＧ２をバスＢＵＳを介してメモリＭＥＭ１から受ける。歪み算出部２０ｄは、撮像素子ＩＳＥＮ１、ＩＳＥＮ２で走査の向きが互いに逆のために生じた画像ＩＭＧ１の被写体ＯＢＪ１と画像ＩＭＧ２の被写体ＯＢＪ２との形状の差異を示す歪み情報ＩＮＦを、画像ＩＭＧ２のマクロブロックＭＢｂ毎に算出する。歪み算出部２０ｄは、第２の算出部の一例である。歪み算出部２０ｄは、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。歪み算出部２０ｄの動作については、図２１で説明する。
【０１７２】
速度算出部３０ｄは、視差ＤＰＦ、歪み情報ＩＮＦ、読み出し時間情報ＴＩＮＦ等をバスＢＵＳを介してメモリＭＥＭ２から受け、実空間における被写体ＯＢＪの速度ＶＬを算出する第３の算出部の一例である。速度算出部３０ｄは、算出した速度ＶＬを記録部ＲＥＣおよび表示部ＤＩＰに出力する。速度算出部３０ｄの動作については、図２１で説明する。
【０１７３】
図２０は、図１９に示した撮像素子ＩＳＥＮ１、ＩＳＥＮ２が図３に示したタイミング図に基づいて撮影した画像ＩＭＧ１、ＩＭＧ２の一例を示す。図２０では、被写体ＯＢＪは、例えば、画角内を斜めの方向ＯＤ（すなわち行の配列方向ＯＤ１および行方向ＯＤ２）に移動する。以下、行の配列方向ＯＤ１は、列方向ＯＤ１とも称される。また、図２０では、図を見やすくするために、図４と同様に、画素領域ＡＲは３つ（ｎ＝３）とする。さらに、画像ＩＭＧ１、ＩＭＧ２は、図５と同様に、視差算出部１０ｄにより各画素領域ＡＲを行方向（図２０の横方向）にｋ列毎に分割される。すなわち、画像ＩＭＧ１は、画像領域ＭＢａ（ＭＢａ１１−ＭＢａ１５、ＭＢａ２１−ＭＢａ２５、ＭＢａ３１−ＭＢａ３５）に区分けされる。画像ＩＭＧ２は、画像領域ＭＢｂ（ＭＢｂ１１−ＭＢｂ１５、ＭＢｂ２１−ＭＢｂ２５、ＭＢｂ３１−ＭＢｂ３５）に区分けされる。
【０１７４】
図２０では、被写体ＯＢＪが行方向ＯＤ２に移動するため、画像ＩＭＧ１上の被写体ＯＢＪ１は、図１と同様に画角の下に向かうほど、破線の矩形で示す本来の形状に対して右側にずれる。一方、画像ＩＭＧ２上の被写体ＯＢＪ２は、画角の上に向かうほど、破線の矩形で示す本来の形状に対して右側にずれる。また、図２０では、被写体ＯＢＪが列方向ＯＤ１に移動するため、画像ＩＭＧ１上の被写体ＯＢＪ１は、図９と同様に破線の矩形で示す本来の形状に対して下方向に伸びた形状を示す。一方、画像ＩＭＧ２上の被写体ＯＢＪ２は、破線の矩形で示す本来の形状に対して上下方向に縮んだ形状を示す。なお、図１で説明したように、画像ＩＭＧ１上の被写体ＯＢＪ１と画像ＩＭＧ２上の被写体ＯＢＪ２の左右方向のずれは、互いに異なる位置に配置されたレンズＬＥＮ１、ＬＥＮ２を介して被写体ＯＢＪを撮像したことにより生じる。
【０１７５】
例えば、視差算出部１０ｄは、例えば、マクロブロックＭＢａ、ＭＢｂ毎に画像ＩＭＧ１、ＩＭＧ２の画素の値を平滑化する。視差算出部１０ｄは、平滑化した画像ＩＭＧ２のうち処理対象のマクロブロックＭＢｂと、平滑化した画像ＩＭＧ１のうち処理対象のマクロブロックＭＢｂが含まれる画素領域ＡＲの各マクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行する。そして、視差算出部１０ｄは、処理対象のマクロブロックＭＢｂと各マクロブロックＭＢａとにおける一致の度合いを示すＳＡＤ値を算出する。視差算出部１０ｄは、最小のＳＡＤ値を示す画像ＩＭＧ１のマクロブロックＭＢａ（すなわち画像ＩＭＧ２の処理対象のマクロブロックＭＢｂと最も一致する画像領域）を抽出する。図２０では、視差算出部１０ｄは、画像ＩＭＧ２のうち画素領域ＡＲ１のマクロブロックＭＢｂ１４が処理対象の場合、画像ＩＭＧ１の画素領域ＡＲ１におけるマクロブロックＭＢａ１２で最小のＳＡＤ値を算出する。視差算出部１０ｄは、マクロブロックＭＢａ１２を抽出する。すなわち、図２０に示したマクロブロックＭＢａ１２の被写体ＯＢＪ１は、マクロブロックＭＢｂ１４の被写体ＯＢＪ２に対応することを示す。
【０１７６】
図２１は、図１９に示した歪み算出部２０ｄにおける演算処理の一例を示す。図２１に示した例では、歪み算出部２０ｄは、図２０に示した画像ＩＭＧ２のマクロブロックＭＢｂ１４とマクロブロックＭＢｂ１４に対応する画像ＩＭＧ１のマクロブロックＭＢａ１２とを用い、被写体ＯＢＪ１、ＯＢＪ２の形状の差異を示す歪み情報ＩＮＦを算出する。なお、歪み算出部２０ｄは、マクロブロックＭＢｂ１４以外の他のマクロブロックＭＢｂに対しても、マクロブロックＭＢｂ１４と同一あるいは同様の演算処理を実行する。
【０１７７】
歪み算出部２０ｄは、例えば、網掛けで示した被写体ＯＢＪ２を、マクロブロックＭＢａ１２の被写体ＯＢＪ１の形状に一致させるように、マクロブロックＭＢｂ１４にせん断変形および拡縮する変形処理を実行する。例えば、歪み算出部２０ｄは、アフィン変換の行列を含む式（１６）を用いてマクロブロックＭＢｂ１４にせん断変形および拡縮の変形処理を実行し、変形処理された破線で示すマクロブロックＭＢｅを得る。
【０１７８】
【数６】
0006477193.tif 000007
【０１７９】
（ｘ，ｙ）は、マクロブロックＭＢｂ１４の画素の位置を示し、（ｘａ，ｙａ）は変形処理されたマクロブロックＭＢｅの画素の位置を示す。すなわち、式（１６）は、せん断変形を示す式（１）と拡縮処理を示す式（７）とを合わせたものである。
【０１８０】
歪み算出部２０ｄは、例えば、せん断率α、拡縮率β、変数Ｔｘ、Ｔｙをそれぞれ変化させて変形処理したマクロブロックＭＢｅとマクロブロックＭＢａ１２とのテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。歪み算出部２０ｄは、ＳＡＤ値が最小値を示す場合、変形処理した被写体ＯＢＪ２の形状が被写体ＯＢＪ１の形状に最も一致すると判定する。そして、歪み算出部２０ｄは、ＳＡＤ値が最小値を示す際のせん断率αおよび拡縮率βを歪み情報ＩＮＦとして算出する。また、視差算出部１０ｄは、ＳＡＤ値が最小値を示す際の変数Ｔｘを視差ＤＰＦとする。
【０１８１】
なお、歪み算出部２０ｄは、式（２）を用いて式（１６）の変数Ｔｘをせん断率αに置き換え、式（１６）の変形処理で変化させる変数の数を削減してもよい。この場合、歪み算出部２０ｄは、変形処理における演算量を削減できる。
【０１８２】
あるいは、歪み算出部２０ｄは、図１２に示した歪み算出部２０ｃと同様に、マクロブロックＭＢａ、ＭＢｂの行の配列方向における輝度の変化から被写体ＯＢＪ１、ＯＢＪ２のエッジそれぞれを予め検出してもよい。この場合、歪み算出部２０ｄは、検出した被写体ＯＢＪ１、ＯＢＪ２における行の配列方向のエッジ間の距離の比から拡縮率βを算出することで、式（１６）を用いた変形処理で変化させる変数の数を削減でき、変形処理における演算量を削減できる。
【０１８３】
速度算出部３０ｄは、視差算出部１０ｄにより算出された視差ＤＰＦ、歪み算出部２０ｄにより算出された歪み情報ＩＮＦおよび読み出し時間情報ＴＩＮＦを用い、実空間における被写体ＯＢＪの速度ＶＬを算出する。例えば、速度算出部３０ｄは、被写体ＯＢＪの速度ＶＬを列方向ＯＤ１と行方向ＯＤ２との成分に分けて算出する。すなわち、速度算出部３０ｄは、視差ＤＰＦ、せん断率αおよび読み出し時間情報ＴＩＮＦを用い、式（３）−式（６）から速度ＶＬのうち列方向ＯＤ１の成分を算出する。また、速度算出部３０ｄは、視差ＤＰＦ、拡縮率βおよび読み出し時間情報ＴＩＮＦを用い、式（６）、式（９）、式（１０）から速度ＶＬのうち行方向ＯＤ２の成分を算出する。そして、速度算出部３０ｄは、算出した列方向ＯＤ１および行方向ＯＤ２の成分をベクトル合成し、実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１８４】
なお、速度算出部３０ｄは、歪み算出部２０ｄが被写体ＯＢＪ１、ＯＢＪ２のエッジを検出する場合、図１２に示した速度算出部３０ｃと同様に、式（１５）から被写体ＯＢＪの速度ＶＬのうち列方向ＯＤ１の成分を算出してもよい。この場合、画像処理装置１００Ｄは、式（１６）における拡縮率βを算出する演算量を削減できる。
【０１８５】
図２２は、図１９に示した画像処理装置１００Ｅにおける画像処理の一例を示す。図２２に示した処理は、制御部ＣＮＴＬが画像処理プログラムを実行することにより実現される。また、図２２に示した処理は、画像処理装置１００Ｅに設けられるハードウェアにより実行されてもよい。この場合、図１９に示した視差算出部１０ｄ、歪み算出部２０ｄおよび速度算出部３０ｄは、画像処理装置１００Ｅ内に配置される回路により実現される。
【０１８６】
ステップＳ４００では、視差算出部１０ｄは、撮像装置ＣＡＭ２で撮影された画像ＩＭＧ１、ＩＭＧ２をメモリＭＥＭ１から取得する。
【０１８７】
ステップＳ４１０では、視差算出部１０ｄは、画像ＩＭＧ２の処理対象のマクロブロックＭＢｂに対応する画像ＩＭＧ１のマクロブロックＭＢａを抽出する。例えば、視差算出部１０ｄはマクロブロックＭＢａ、ＭＢｂ毎に画像ＩＭＧ１、ＩＭＧ２の画素の値を平滑化する。視差算出部１０ｄは、平滑化した画像ＩＭＧ２のうち処理対象のマクロブロックＭＢｂを選択する。視差算出部１０ａは、選択した処理対象のマクロブロックＭＢｂと、平滑化した画像ＩＭＧ１のうち処理対象のマクロブロックＭＢｂが含まれる画素領域ＡＲの各マクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。視差算出部１０ｄは、最小のＳＡＤ値を示す画像ＩＭＧ１のマクロブロックＭＢａ（すなわち画像ＩＭＧ２の処理対象のマクロブロックＭＢｂと最も一致する画像領域）を抽出する。
【０１８８】
ステップＳ４２０では、歪み算出部２０ｄは、画像ＩＭＧ２の処理対象のマクロブロックＭＢｂに変形処理を実行し歪み情報ＩＮＦを算出する。例えば、歪み算出部２０ｄは、被写体ＯＢＪ２の形状をステップＳ４１０で抽出されたマクロブロックＭＢａの被写体ＯＢＪ１の形状に一致させるように、式（１６）のせん断率α及び拡縮率β等を変化させて処理対象のマクロブロックＭＢｂに変形処理を実行する。歪み算出部２０ｄは、変形処理した処理対象のマクロブロックＭＢｂとステップＳ４１０で抽出されたマクロブロックＭＢａとの間でテンプレートマッチング等の画像処理を実行し、ＳＡＤ値を算出する。歪み算出部２０ｄは、ＳＡＤ値が最小値を示す場合、変形処理した被写体ＯＢＪ２の形状が被写体ＯＢＪ１の形状に最も一致すると判定する。そして、歪み算出部２０ｄは、ＳＡＤ値が最小値を示す際のせん断率αおよび拡縮率βを歪み情報ＩＮＦとして算出する。歪み算出部２０ｄは、算出した歪み情報ＩＮＦをメモリＭＥＭ２に出力する。また、視差算出部１０ｄは、ＳＡＤ値が最小値を示す際の変数Ｔｘを視差ＤＰＦとし、視差ＤＰＦをメモリＭＥＭ２に出力する。
【０１８９】
ステップＳ４３０では、速度算出部３０ｄは、ステップＳ４２０で算出された視差ＤＰＦおよび歪み情報ＩＮＦと読み出し時間情報ＴＩＮＦとを用い、式（３）−式（６）から実空間における被写体ＯＢＪ１の速度ＶＬのうち列方向ＯＤ１の成分を算出する。
【０１９０】
ステップＳ４４０では、速度算出部３０ｄは、ステップＳ４２０で算出された視差ＤＰＦおよび歪み情報ＩＮＦと読み出し時間情報ＴＩＮＦとを用い、式（６）、式（９）、式（１０）から実空間における被写体ＯＢＪ１の速度ＶＬのうち行方向ＯＤ２の成分を算出する。
【０１９１】
ステップＳ４５０では、速度算出部３０ｄは、ステップＳ４３０で算出した列方向ＯＤ１の成分とＳ４４０で算出した行方向ＯＤ２の成分とをベクトル合成し、実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１９２】
ステップＳ４６０では、制御部ＣＮＴＬは、画像ＩＭＧ２において次のマクロブロックＭＢｂがあるか否かを判定する。制御部ＣＮＴＬが次の処理対象となるマクロブロックＭＢｂがあると判定した場合、画像処理装置１００Ｅの処理は、ステップＳ４１０に移る。一方、制御部ＣＮＴＬが次の処理対象となるマクロブロックＭＢｂがないと判定した場合、画像処理装置１００Ｅの処理は終了する。
【０１９３】
以上、図１９から図２２に示す実施形態では、撮像素子ＩＳＥＮ１、ＩＳＥＮ２からの画素信号の読み出しは、行の配列方向の走査の向きを画素領域ＡＲ毎に互いに逆にして実行される。これにより、撮像素子ＩＳＥＮ１で撮影された画像ＩＭＧ１上の被写体ＯＢＪ１と、撮像素子ＩＳＥＮ２で撮影された画像ＩＭＧ２上の被写体ＯＢＪ２とは、画素領域ＡＲ毎に互いに異なる形状（ローリングシャッタ歪み）を示す。そこで、画像処理装置１００Ｅは、画像ＩＭＧ２上の被写体ＯＢＪ２に対してマクロブロックＭＢｂ毎にせん断変形および拡縮処理を合わせて実行し、被写体ＯＢＪ２の形状を被写体ＯＢＪ１の形状に合わせ込むことで、視差ＤＰＦおよび歪み情報ＩＮＦを算出する。画像処理装置１００Ｅは、算出した視差ＤＰＦおよび歪み情報ＩＮＦと読み出し時間情報ＴＩＮＦとを用いて、実空間における被写体ＯＢＪの速度ＶＬを算出する。
【０１９４】
これにより、画像処理装置１００Ｅは、撮像装置ＣＡＭ２における撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの静止画像（画像ＩＭＧ１、ＩＭＧ２）から、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００Ｅは、走査の向きが互いに同じ撮像素子を２つ有するステレオカメラが撮像した少なくとも４つのフレームを用いる場合と比べて、メモリＭＥＭ１に記憶される画像のデータ量を削減できる。
【０１９５】
また、画像処理装置１００Ｅは、撮像装置ＣＡＭ２における撮像素子ＩＳＥＮ１、ＩＳＥＮ２により１回の撮影で得られた２つの画像ＩＭＧ１、ＩＭＧ２を用いて、実空間における被写体ＯＢＪの速度ＶＬを算出できる。すなわち、画像処理装置１００Ｅは、実空間における被写体ＯＢＪの速度ＶＬを算出するために、撮像装置ＣＡＭ２に２回以上撮影させなくてもよい。そして、画像処理装置１００Ｅは、実空間における被写体ＯＢＪの速度を算出する演算量を、従来と比べて削減できる。
【０１９６】
なお、１つの撮像素子を有する１つの撮像装置が撮像した動画の２フレームを用いる場合でも、被写体ＯＢＪの速度を算出できることがある。しかしながら、１つの撮像装置が撮像した２フレームから撮像装置と被写体ＯＢＪとの間の距離ＤＩＳを算出することは困難なため、実空間における被写体ＯＢＪの速度を画像処理装置１００Ｅと同一あるいは同様の精度で算出することは困難である。
【０１９７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【０１９８】
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
行列状に配置された複数の画素を含む画素アレイの複数の行の読み出しを順次にずらした第１の撮像素子および第２の撮像素子を含み、前記複数の行の読み出しが前記第１の撮像素子および前記第２の撮像素子で互いに逆である撮像装置で撮影された画像から被写体の速度を算出する画像処理装置において、
前記第１の撮像素子から読み出された第１の画像および前記第２の撮像素子から読み出された第２の画像を用いて、前記第１の画像上の被写体である第１の被写体の位置と前記第２の画像上の被写体である第２の被写体の位置との差を示す視差を算出する第１の算出部と、
前記第１の被写体と前記第２の被写体との形状の差異である歪み情報を算出する第２の算出部と、
前記視差および前記歪み情報を用い、前記被写体の速度を算出する第３の算出部と
を備えていることを特徴とする画像処理装置。
（付記２）
付記１に記載の画像処理装置において、
前記第１の撮像素子が有する前記複数の画素および前記第２の撮像素子が有する前記複数の画素を前記行の配列方向に複数の画素領域に分割し、前記画素領域毎に前記画素信号を行毎に順番に読み出す走査の向きを前記第１の撮像素子と前記第２の撮像素子とで互いに逆にする駆動処理を、前記撮像装置に実行させる制御部を備えることを特徴とする画像処理装置。
（付記３）
付記２に記載の画像処理装置において、
前記第１の算出部は、前記各画素領域を行方向に分割して得られる前記第２の画像上の第２の画像領域と前記第２の画像領域に対応する前記第１の画像上の第１の画像領域との位置の差を、前記視差として前記第２の画像領域毎に算出し、
前記第２の算出部は、前記第２の被写体の形状を前記第１の被写体の形状に一致させるように変形する変形処理を実行することで、前記歪み情報を前記第２の画像領域毎に算出し、
前記第３の算出部は、前記視差および前記歪み情報を用い、前記被写体の速度を前記第２の画像領域毎に算出する
ことを特徴とする画像処理装置。
（付記４）
付記３に記載の画像処理装置において、
前記第２の算出部は、前記変形処理としてせん断変形を前記第２の被写体に実行し、前記せん断変形による前記第２の被写体の変形量を前記歪み情報として算出することを特徴とする画像処理装置。
（付記５）
付記３または付記４に記載の画像処理装置において、
前記第２の算出部は、前記変形処理として前記第２の被写体を拡大あるいは縮小させる拡縮処理を実行し、前記拡縮処理による前記第２の被写体の変形量を前記歪み情報として算出することを特徴とする画像処理装置。
（付記６）
行列状に配置された複数の画素を含む画素アレイの複数の行の読み出しを順次にずらした第１の撮像素子および第２の撮像素子を含み、前記複数の行の読み出しが前記第１の撮像素子および前記第２の撮像素子で互いに逆である撮像装置で撮影された画像から被写体の速度を算出する画像処理方法において、
前記第１の撮像素子から読み出された第１の画像および前記第２の撮像素子から読み出された第２の画像を用いて、前記第１の画像上の被写体である第１の被写体の位置と前記第２の画像上の被写体である第２の被写体の位置との差を示す視差を算出し、
前記第１の被写体と前記第２の被写体との形状の差異である歪み情報を算出し、
前記視差および前記歪み情報を用い、前記被写体の速度を算出する
ことを特徴とする画像処理方法。
（付記７）
付記６に記載の画像処理方法において、
前記第１の撮像素子が有する前記複数の画素および前記第２の撮像素子が有する前記複数の画素を前記行の配列方向に複数の画素領域に分割し、前記画素領域毎に前記画素信号を行毎に順番に読み出す走査の向きを前記第１の撮像素子と前記第２の撮像素子とで互いに逆にする駆動処理を、前記撮像装置に実行させることを特徴とする画像処理方法。
（付記８）
付記７に記載の画像処理方法において、
前記視差を算出する処理は、前記各画素領域を行方向に分割して得られる前記第２の画像上の第２の画像領域と前記第２の画像領域に対応する前記第１の画像上の第１の画像領域との位置の差を、前記視差として前記第２の画像領域毎に算出し、
前記歪み情報を算出する処理は、前記第２の被写体の形状を前記第１の被写体の形状に一致させるように変形する変形処理を実行することで、前記歪み情報を前記第２の画像領域毎に算出し、
前記被写体の速度を算出する処理は、前記視差および前記歪み情報を用い、前記被写体の速度を前記第２の画像領域毎に算出する
ことを特徴とする画像処理方法。
（付記９）
付記８に記載の画像処理方法において、
前記歪み情報を算出する処理は、前記変形処理としてせん断変形を前記第２の被写体に実行し、前記せん断変形による前記第２の被写体の変形量を前記歪み情報として算出することを特徴とする画像処理方法。
（付記１０）
付記８または付記９に記載の画像処理装置において、
前記歪み情報を算出する処理は、前記変形処理として前記第２の被写体を拡大あるいは縮小させる拡縮処理を実行し、前記拡縮処理による前記第２の被写体の変形量を前記歪み情報として算出することを特徴とする画像処理装置。
【符号の説明】
【０１９９】
１０，１０ａ，１０ｂ，１０ｃ，１０ｄ…視差算出部；２０，２０ａ，２０ｂ，２０ｃ，２０ｄ…歪み算出部；３０，３０ａ，３０ｂ，３０ｃ，３０ｄ…速度算出部；１００，１００Ａ，１００Ｂ，１００Ｃ，１００Ｄ，１００Ｅ…画像処理装置；ＡＲ１−ＡＲｎ…画素領域；ＣＡＭ，ＣＡＭ２…撮像装置；ＢＵＳ…バス；ＣＡＬ…算出部；ＣＮＴＬ…制御部；ＤＩＰ…表示部；ＤＰＦ…視差；ＤＲＶ…駆動部；ＩＭＧ１，ＩＭＧ２…画像；ＩＮＦ…歪み情報；ＩＳＥＮ１，ＩＳＥＮ２…撮像素子；ＬＥＮ１，ＬＥＮ２…レンズ；ＭＢａ１１−ＭＢａ１５，ＭＢａ２１−ＭＢａ２５，ＭＢａ３１−ＭＢａ３５，ＭＢｂ１１−ＭＢｂ１５，ＭＢｂ２１−ＭＢｂ２５，ＭＢｂ３１−ＭＢｂ３５，ＭＢｃ，ＭＢｄ，ＭＢｅ…マクロブロック；ＭＥＭ…記憶部；ＭＥＭ１，ＭＥＭ２…メモリ；ＯＢＪ，ＯＢＪ１，ＯＢＪ１ａ，ＯＢＪ１ｂ、ＯＢＪ２，ＯＢＪ２ａ，ＯＢＪ２ｂ，ＯＢＪ２ｃ…被写体；ＲＥＣ…記録部；ＴＩＮＦ…読み出し時間情報
【図１】
0006477193.tif 000008
【図２】
0006477193.tif 000009
【図３】
0006477193.tif 000010
【図４】
0006477193.tif 000011
【図５】
0006477193.tif 000012
【図６】
0006477193.tif 000013
【図７】
0006477193.tif 000014
【図８】
0006477193.tif 000015
【図９】
0006477193.tif 000016
【図１０】
0006477193.tif 000017
【図１１】
0006477193.tif 000018
【図１２】
0006477193.tif 000019
【図１３】
0006477193.tif 000020
【図１４】
0006477193.tif 000021
【図１５】
0006477193.tif 000022
【図１６】
0006477193.tif 000023
【図１７】
0006477193.tif 000024
【図１８】
0006477193.tif 000025
【図１９】
0006477193.tif 000026
【図２０】
0006477193.tif 000027
【図２１】
0006477193.tif 000028
【図２２】
0006477193.tif 000029