(57)【特許請求の範囲】
【請求項１】
所定の点を中心とした放射状のオプティカルフローが生じる撮影画像を補正する画像補正処理装置において、
複数のブロックに分割された撮影画像の各ブロックの動きベクトルを検出する動きベクトル検出部と、
前記ブロック毎に、動きベクトルを検出する際の基準点である代表点を通り、かつ、そのブロックの動きベクトルと傾きが同じ直線を算出する一次関数算出部と、
算出された直線の傾きが異なる少なくとも二つのブロックを選択し、その選択されたブロックの直線の交点を求めることにより、前記所定の点である消失点の位置を算出する消失点算出部と、
前記消失点の位置と撮影画像の中心とが一致するように撮影画像を補正する中心位置補正部とを含むことを特徴とする画像補正処理装置。
【請求項２】
前記消失点算出部は、あるブロックにおいて検出された動きベクトルの信頼度を、そのブロックに含まれる画素の輝度レベルに基づいて判断し、その信頼度が所定の閾値よりも低い場合には、そのブロックを選択対象から外すことを特徴とする請求項１に記載の画像補正処理装置。
【請求項３】
前記消失点算出部は、ブロックの対を複数選択し、その複数のブロックの対それぞれに基づいて消失点の位置を算出し、その算出した消失点の位置を平均化し、
前記中心位置補正部は、前記消失点算出部が算出した、平均化された消失点の位置と、撮影画像の中心とが一致するように撮影画像を補正することを特徴とする請求項１または２に記載の画像補正処理装置。
【請求項４】
前記消失点算出部は、二つのブロックの動きベクトルがなす角度が直角に近いブロックの組み合わせを優先して選択し、その優先して選択したブロックの直線の交点を求めることにより、前記消失点を算出することを特徴とする請求項１から３のいずれかに記載の画像補正処理装置。
【請求項５】
各ブロックの動きベクトルの傾きが所定の許容範囲内で一致する場合に、前記消失点の位置と撮影画像の中心とが一致するように撮影画像を補正する補正処理を中断させ、画像ぶれ補正処理に切り替える補正モード切替部をさらに含むことを特徴とする請求項１から４のいずれかに記載の画像補正処理装置。
【請求項６】
所定の点を中心とした放射状のオプティカルフローが生じる撮影画像を補正する画像補正処理方法において、
複数のブロックに分割された撮影画像の各ブロックの動きベクトルを検出するステップと、
前記ブロック毎に、動きベクトルを検出する際の基準点である代表点を通り、かつ、そのブロックの動きベクトルと傾きが同じ直線を算出するステップと、
算出された直線の傾きが異なる少なくとも二つのブロックを選択し、その選択されたブロックの直線の交点を求めることにより、前記所定の点である消失点の位置を算出するステップと、
前記消失点の位置と撮影画像の中心とが一致するように撮影画像を補正するステップとを含むことを特徴とする画像補正処理方法。
【請求項７】
コンピュータに、所定の点を中心とした放射状のオプティカルフローが生じる撮影画像を補正する機能を実現させる画像補正処理プログラムにおいて、
複数のブロックに分割された撮影画像の各ブロックの動きベクトルを検出する機能と、
前記ブロック毎に、動きベクトルを検出する際の基準点である代表点を通り、かつ、そのブロックの動きベクトルと傾きが同じ直線を算出する機能と、
算出された直線の傾きが異なる少なくとも二つのブロックを選択し、その選択されたブロックの直線の交点を求めることにより、前記所定の点である消失点の位置を算出する機能と、
前記消失点の位置と撮影画像の中心とが一致するように撮影画像を補正する機能とをコンピュータに実現させることを特徴とする画像補正処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像の中心位置を補正するための画像補正処理装置、画像補正処理方法、及び画像補正処理プログラムに関する。
【背景技術】
【０００２】
小型で高性能のビデオカメラが一般ユーザに手に入るようになり、外出時に持ち歩く機会が増えている。自動車で外出したり、旅行するときも、助手席や後部座席に同乗した人がビデオカメラで外の風景を撮影したり、車のダッシュボード上にカメラを固定して、運転中に車両の前方を撮影することがある。
【０００３】
特許文献１には、車載カメラによって車両の前方を連続して撮像する際、車両の走行により画像に生じたぶれを補正する画像補正装置および画像補正方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３１８５６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の画像補正装置および画像補正方法は、同文献の段落００３２に記載されるように、画像内におけるオブジェクトの動きを示すオプティカルフローは、車両の進行方向とカメラの光軸方向が一致している場合、消失点から放射状に生じることを前提として、車両の走行により画像に生じたぶれを補正する。
【０００６】
車両にカメラを搭載して走行中に前方を撮影すると、車両がカーブを曲がるときは、車両の走行方向がカメラの光軸方向からずれる。たとえば、左に曲がろうとしてハンドルを左に切って走行すると、走行方向は左前方であるのに対して、カメラの光軸方向は真正面を向いている。そのため、車両に乗っている人が走行方向である左前方を見ていても、カメラが撮影している方向は真正面のままであり、車両がカーブを曲がるときに撮影された映像は右から左に視野が大きくシフトし、映像を視聴する人に目が回るような不快感を与える。
【０００７】
このように、車両がカーブを曲がる際、車両の走行方向とカメラの光軸方向が一致しないため、撮影画像において放射状のオプティカルフローの消失点がカメラの光軸中心からずれる現象が起こる。一般に、動画において放射状のオプティカルフローの消失点がカメラの光軸中心からずれた場合、動画を見たときに違和感が生じる。
【０００８】
本発明はこうした状況に鑑みてなされたものであり、その目的は、撮影画像における放射状のオプティカルフローの消失点と撮影画像の中心とのずれを補正することができる画像補正処理装置、画像補正処理方法、及び画像補正処理プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある態様の画像補正処理装置は、所定の点を中心とした放射状のオプティカルフローが生じる撮影画像を補正する。この装置は、複数のブロックに分割された撮影画像の各ブロックの動きベクトルを検出する動きベクトル検出部と、前記ブロック毎に、動きベクトルを検出する際の基準点である代表点を通り、かつ、そのブロックの動きベクトルと傾きが同じ直線を算出する一次関数算出部と、算出された直線の傾きが異なる少なくとも二つのブロックを選択し、その選択されたブロックの直線の交点を求めることにより、前記所定の点である消失点の位置を算出する消失点算出部と、前記消失点の位置と撮影画像の中心とが一致するように撮影画像を補正する中心位置補正部とを含む。
【００１０】
本発明の別の態様は、画像補正処理方法であり、所定の点を中心とした放射状のオプティカルフローが生じる撮影画像を補正する。この方法は、複数のブロックに分割された撮影画像の各ブロックの動きベクトルを検出するステップと、前記ブロック毎に、動きベクトルを検出する際の基準点である代表点を通り、かつ、そのブロックの動きベクトルと傾きが同じ直線を算出するステップと、算出された直線の傾きが異なる少なくとも二つのブロックを選択し、その選択されたブロックの直線の交点を求めることにより、前記所定の点である消失点の位置を算出するステップと、前記消失点の位置と撮影画像の中心とが一致するように撮影画像を補正するステップとを含む。
【００１１】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、撮像された画像において、放射状のオプティカルフローの消失点と撮影画像の中心とのずれを補正することができる。
【図面の簡単な説明】
【００１３】
【図１】２５個のブロックに分割された撮影画像において、各ブロックの代表点と動きベクトルを示す図である。
【図２】手ぶれ補正をしてフレームメモリから出力画像を切り出す処理を説明する図である。
【図３】撮影画像の各ブロックで検出される動きベクトルを説明する図である。
【図４】図４（ａ）、（ｂ）は、車両が前進中に車載カメラで前方を撮影したときに撮影画像の各ブロックで検出される動きベクトルを説明する図である。
【図５】図５（ａ）、（ｂ）は、車両がカーブを曲がる際に車載カメラで前方を撮影したときに撮影画像の各ブロックで検出される動きベクトルを説明する図である。
【図６】図５（ｂ）の前方撮影画像から中心位置をずらして画像を切り出す処理を説明する図である。
【図７】撮影画像の各ブロックの番号を示す図である。
【図８】図７に示す第４ブロックにおける代表点と代表点の動きベクトルを示す図である。
【図９】図７に示す第２５ブロックにおける代表点と代表点の動きベクトルを示す図である。
【図１０】図８の第４ブロックのフロー放射線と図９の第２５ブロックのフロー放射線を合成した図である。
【図１１】撮影画像の中心と各ブロックの代表点を結ぶ直線を示す図である。
【図１２】車両が上にバウンドしたときの撮影画像の消失点の位置を示す図である。
【図１３】車両が下にバウンドしたときの撮影画像の消失点の位置を示す図である。
【図１４】本発明の実施の形態に係る中心位置補正機能を搭載した撮像装置の構成図である。
【図１５】図１４の中心位置補正処理ブロックの構成図である。
【発明を実施するための形態】
【００１４】
本発明の実施の形態に係る中心位置補正処理方法を図１〜図１３を参照して説明し、その後、図１４および図１５を参照して、中心位置補正機能を搭載した撮像装置の構成を説明する。
【００１５】
図１〜３を参照して、一般的な手ぶれ補正処理を説明する。図１は、２５個のブロックに分割された撮影画像において、各ブロックの動きベクトルを示す図である。代表点は各ブロックの中心の画素であり、手ぶれによる代表点画素の輝度をもつ画素の動きを検出することで、手ぶれによる動きベクトル（以下、単に「手ぶれベクトル」と呼ぶ）が求まる。方向と大きさは、代表点の画素の輝度に最も近い輝度をもつ画素をブロック内で探索することによってｘ、ｙで検出することができる。
【００１６】
ここで、「代表点」は動きベクトルを検出する際の基準となる点であり、「代表点」はブロックの中心の画素に限定されず、ブロック内の任意の位置の特徴点であってもよい。
【００１７】
図２は、手ぶれ補正をしてフレームメモリから出力画像を切り出す処理を説明する図である。図１の２５ブロックで求められた手ぶれベクトルを平均化し、平均化された手ぶれベクトルによって、出力画像をフレームメモリから切り出す中心位置をずらす。図２の左側は、フレームメモリ内に格納された撮影画像である。手ぶれがなければ、撮影画像の中心から出力画像を切り出せばよいが、図１のような手ぶれベクトルが検出された場合は、平均化された手ぶれベクトルが示す動きの方向と量でもって切り出す中心位置をずらし、図２の右側に示すような出力画像を切り出す。これにより手ぶれが補正された画像が出力される。
【００１８】
図３は、撮影画像の各ブロックで検出される動きベクトルを説明する図である。図１では、撮影画像を２５個のブロックに分割し、各ブロックの動きベクトルを検出するとしたが、実装上は、図３の右側に示すように、各ブロックをさらにたとえば２０個にエリアに分割し、各エリアの中心画素を代表点とし、エリア毎に動きベクトルを求め、２０エリアで平均化したものを当該ブロックの動きベクトルとする。ただし、以下では、説明を簡単にするため、各ブロックに一つの代表点があるものとして説明する。
【００１９】
ビデオカメラやデジタルスチルカメラなどの撮像装置には、一般に、手ぶれ補正機能が搭載されており、動きベクトルをブロック単位で検出し、得られた動きベクトル値を全ブロックで平均することで手ぶれベクトルを算出することが行われている。
【００２０】
しかしながら、カメラを走行中の車両に搭載して撮影したり、助手席や後部座席に乗っている人がカメラを手に持って撮影すると、撮影対象のオブジェクトの移動フローが放射状になるため、各ブロックで同じ方向の動きベクトルが検出されることを前提とした一般的な手ぶれ補正機能は有効に働かなくなる。
【００２１】
図４（ａ）、（ｂ）は、車両が前進中に車載カメラで前方を撮影したときに撮影画像の各ブロックで検出される動きベクトルを説明する図である。図４（ａ）に示すようなまっすぐな道路を車両が走行中は、周囲のオブジェクトの動きを示すオプティカルフローは走行方向を中心に放射状になる。したがって、車載カメラで前方撮影した場合、図４（ｂ）に示すように、撮影画像の中心から放射状に広がる方向に動きベクトルが検出される。動きベクトルの大きさは走行速度によって変化する。この放射状のオプティカルフローの中心を「消失点」と呼ぶ。
【００２２】
図５（ａ）、（ｂ）は、車両がカーブを曲がる際に車載カメラで前方を撮影したときに撮影画像の各ブロックで検出される動きベクトルを説明する図である。図５（ａ）に示すような左にカーブした道路を車両が走行中は、周囲のオブジェクトの動きを示すオプティカルフローは走行方向である左前方の点を中心に放射状に生じる。したがって、車載カメラで前方撮影した場合、図５（ｂ）に示すように、撮影画像の左上の消失点を中心として放射状に広がる方向に動きベクトルが検出される。すなわち、車両がカーブを曲がる際に前方撮影された画像では、オプティカルフローの消失点は、撮影画像の中心からずれた位置に生じる。これは、車両の走行方向とカメラの光軸方向がずれることによって起こる現象である。
【００２３】
本実施の形態は、このように車両の走行方向がカメラの光軸方向からずれることが原因で発生する、撮影画像における放射状のオプティカルフローの消失点と撮影画像の中心とのずれを補正する画像補正処理方法を提供する。
【００２４】
図６は、図５（ｂ）の前方撮影画像から中心位置をずらして画像を切り出す処理を説明する図である。撮影画像を保持するフレームメモリから出力画像を切り出す中心位置を、図５（ｂ）の前方撮影画像において検出されたオプティカルフローの消失点にずらす。これにより、出力される画像は消失点を中心とする画像に補正される。
【００２５】
図７〜図１３を参照して、本発明の実施の形態に係る画像補正処理方法を説明する。
【００２６】
図７は、撮影画像の各ブロックの番号を示す図である。左上隅を第１ブロックとし、左から右、上から下に進むにしたがってブロックの番号を順番に振る。ここでは、撮影画像は縦横それぞれ５ブロックで分割され、第１〜第２５のブロックに分割されている。説明の便宜上、撮影画像の横方向をＸ軸、縦方向をＹ軸とし、撮影画像の中心点の座標を（０，０）とし、１つのブロックのサイズを３０×３０、撮影画像全体のサイズを１５０×１５０であるとして、撮影画像内の点の座標を表す。たとえば、第４ブロックの代表点の座標は（３０，６０）であり、第２５ブロックの代表点の座標は（６０，−６０）である。
【００２７】
図８は、図７に示す第４ブロックにおける代表点と代表点の動きベクトルを示す。第４ブロックの代表点の座標は（３０，６０）であり、撮影画像において、この代表点は、図８の矢印で示す動きベクトルの方向に、動きベクトル量だけ移動する。
【００２８】
図８の一点鎖線で示された直線は、撮影画像のオプティカルフローの消失点と第４ブロックの代表点を結ぶ直線ｙ＝ａｘ＋ｂを示す。カーブを走行中はこの一点鎖線上に代表点の動きベクトルが検出される。この一点鎖線で示される直線を「フロー放射線」と呼ぶ。
【００２９】
フロー放射線の傾きａは、代表点の動きベクトルの傾きから求められる。図８に示すように、代表点の動き検出量は、Ｘ方向に１０、Ｙ方向に１０であるから、傾きａ＝１である。
【００３０】
フロー放射線の切片ｂは、代表点の座標値（３０，６０）を、傾きａ＝１のフロー放射線の式ｙ＝ｘ＋ｂに代入することで求めることができ、ｂ＝６０−３０＝３０である。こうして、フロー放射線の式ｙ＝ｘ＋３０が得られる。求めたい撮影画像のオプティカルフローの消失点はこのフロー放射線上にある。
【００３１】
図９は、図７に示す第２５ブロックにおける代表点と代表点の動きベクトルを示す。第２５ブロックの代表点の座標は（６０，−６０）であり、撮影画像において、この代表点は、図８の矢印で示す動きベクトルの方向に、動きベクトル量だけ移動する。
【００３２】
図８と同様、図９の一点鎖線は、撮影画像のオプティカルフローの消失点と第２５ブロックの代表点を結ぶ直線（フロー放射線）ｙ＝ａｘ＋ｂを示す。このフロー放射線上に代表点の動きベクトルが検出される。
【００３３】
フロー放射線の傾きａは、代表点の動きベクトルの傾きから求められる。図９に示すように、代表点の動き検出量は、Ｘ方向に１２、Ｙ方向に−１２であるから、傾きａ＝−１である。
【００３４】
フロー放射線の切片ｂは、代表点の座標値（６０，−６０）を、傾きａ＝−１のフロー放射線の式ｙ＝−ｘ＋ｂに代入することで求めることができ、ｂ＝−６０＋６０＝０である。こうして、フロー放射線の式ｙ＝−ｘが得られる。求めたい撮影画像のオプティカルフローの消失点はこのフロー放射線上にある。
【００３５】
図１０は、図８の第４ブロックのフロー放射線と図９の第２５ブロックのフロー放射線を合成した図である。撮影画像のオプティカルフローの消失点は、第４ブロックのフロー放射線ｙ＝ｘ＋３０と第２５ブロックのフロー放射線ｙ＝−ｘの交点として求めることができる。図１０において、その交点を二重丸で示す。連立方程式ｙ＝ｘ＋３０、ｙ＝−ｘを解くことにより、交点のｘ座標−１５、ｙ座標１５が求まる。こうして得られた消失点（−１５，１５）を中心に撮影画像を切り出せば、消失点を中心とした出力画像が得られる。
【００３６】
傾きが異なるフロー放射線をもつ任意の二つのブロックを選択し、選択された二つのブロックのフロー放射線の交点を求めることにより、撮影画像の消失点を得ることができる。ここで、二本のフロー放射線が鋭角に交わる場合は、交点として求められる消失点の精度は一般的に良くない。できるだけ直角に近い角度で交わるフロー放射線を選択することで算出される消失点の精度を高めることができる。また、二つのブロックの異なる組み合わせを複数用いて、消失点を複数回求め、平均を求めることで精度を高めることもできる。
【００３７】
図１１は、撮影画像の中心と各ブロックの代表点を結ぶ直線を示す図である。符号Ａ〜Ｈで示される８本の一点鎖線は、撮影画像の中心から各ブロックの代表点へ引いた直線である。たとえば、符号Ａで示す一点鎖線は、撮影画像の中心から第１１〜１５のブロックの代表点へ引いた直線であり、符号Ｇで示す一点鎖線は、撮影画像の中心から第５、９、１３、１７、２１のブロックの代表点へ引いた直線である。
【００３８】
同一の一点鎖線上にあるブロックから二つのブロックを選択し、各ブロックのフロー放射線の交点を求めると、二つのフロー放射線の傾きの差が小さいため、誤差が大きくなる可能性がある。直交する二本の一点鎖線からそれぞれ一つずつブロックを選択して、各ブロックのフロー放射線の傾きを求めると、傾きの差は大きいため、交点を求めた場合の精度が向上することが期待できる。
【００３９】
たとえば、直線Ａと直線Ｅは直交するから、直線Ａ上の第１１、１２、１４、１５ブロックのいずれか一つのブロックと、直線Ｅ上の第３、８、１８、２３ブロックのいずれか一つのブロックとを組み合わせ、各ブロックのフロー放射線の交点を求める。この場合、ブロックの組み合わせは１６通りある。
【００４０】
同様に、直線Ｂ上の第６、２０ブロックのいずれか一つと直線Ｆ上の第４、２２ブロックのいずれか一つの組み合わせ（４通り）からフロー放射線の交点を求める。直線Ｃ上の第１、７、１９、２５ブロックのいずれか一つと直線Ｇ上の第５、９、１７、２１ブロックのいずれか一つの組み合わせ（１６通り）からフロー放射線の交点を求める。直線Ｄ上の第２、２４ブロックのいずれか一つと直線Ｈ上の第１０、１６ブロックのいずれか一つの組み合わせ（４通り）からフロー放射線の交点を求める。
【００４１】
これら４０通りのブロックの組み合わせについて、二本のフロー放射線の交点を求めて、消失点を得る。得られた４０個の消失点の座標値を平均することで、高い精度の消失点を求めることができる。
【００４２】
上記の説明では、図１１において直交する二本の一点鎖線のそれぞれから一つずつブロックを選択すると、二つのブロックのフロー放射線の傾きの差は大きくなると仮定したが、消失点が撮影画像の中心からずれるため、撮影中心から見て直交する位置関係にあった二つのブロックであっても、消失点から見た場合に、二つのブロックのフロー放射線が直角に近い角度で交わるとは限らない。また、同一の一点鎖線上の二つのブロックであっても、消失点から見ると、傾きが異なるフロー放射線をもつことになる。
【００４３】
そこで、撮影画像の各ブロックにおいて動きベクトルの検出値からフロー放射線の傾きを求めたとき、傾きの差が大きいブロックの組み合わせを選択するようにしてもよい。具体的には、各ブロックの動きベクトルを単位ベクトル化し、二つのブロックの動きベクトルの内積を求めることで二つのブロックの動きベクトルが作る角度を評価し、動きベクトルが作る角度が直角に近い二つのブロックを選択すればよい。
【００４４】
次に、車両走行時の車両の揺れが撮影画像に及ぼす影響について説明する。車両の走行中は、道路の凸凹によって車両が上下にバウンドすることがある。車両が上下にバウンドしたとき、車載カメラの撮影視野も上下にシフトする。
【００４５】
図１２は、車両が上にバウンドしたときの撮影画像の消失点の位置を示す図である。車両が上にバウンドすると、車載カメラの光軸中心も上にシフトし、カメラの撮影中心が上にずれる。このとき、切り出すべき出力画像の中心点、言い換えれば、オプティカルフローの消失点は相対的に下に移動している。したがって、オプティカルフローの消失点から出力画像を切り出す上述の中心位置補正処理をここでも用いて、フロー放射線の交点から消失点を求め、下方に生じた消失点に中心位置をずらす補正処理を行えばよい。
【００４６】
図１３は、車両が下にバウンドしたときの撮影画像の消失点の位置を示す図である。車両が下にバウンドすると、車載カメラの光軸中心も下にシフトし、カメラの撮影中心が下にずれる。このとき、切り出すべき出力画像の中心点、言い換えれば、オプティカルフローの消失点は相対的に上に移動している。図１２と同様に、フロー放射線の交点から消失点を求め、上方に生じた消失点に中心位置をずらせばよい。
【００４７】
このように、車両走行時の車両の揺れについても、カーブを曲がるときと同様、オプティカルフローの消失点に撮影画像の中心位置をずらす中心位置補正処理方法を用いて、撮影画像の中心位置を補正することができる。
【００４８】
さらに、車両の走行停止時の車両の揺れが撮影画像に及ぼす影響について説明する。交差点で信号待ちのために車両の走行を一時停止しているとき、エンジンがかかっているため、一般に車載カメラに振動が伝わり、撮影画像がぶれる。車両が走行を停止しているため、撮影画像内のオブジェクトは走行に伴う動きがなく、放射状のオプティカルフローは生じていない。そのため、フロー放射線がそもそも存在しないため、消失点を求めて中心位置を補正する処理は機能しない。そこで、走行停止時は、中心位置補正処理を中断し、カメラに搭載されている通常の手ぶれ補正処理に切り替える。走行停止時は、エンジンによる車両の揺れにより、放射状ではなく、一定方向に振動する動きになるため、手ぶれと同じような動きベクトルが検出される。したがって、通常の手ぶれ補正処理によって手ぶれを補正した画像を出力すればよい。なお、通常の手ぶれ補正処理を行う機能は、後述のカメラ制御マイコン４０が有していてもよいし、図示しない他の制御部が有していてもよい。
【００４９】
本実施の形態では、撮影画像の各ブロックで検出される動きベクトルが所定の許容範囲内で一致する場合は、車両が走行を停止しているものと判断し、オプティカルフローの消失点を求めて撮影画像の中心位置を補正する「中心位置補正処理モード」から、通常撮影時の「手ぶれ補正処理モード」に切り替える。あるいは、ユーザがカメラを走行モードに設定すると、手ぶれ補正処理モードから中心位置補正処理モードに切り替わるようにしてもよい。
【００５０】
図７〜図１３を参照して説明した中心位置補正処理方法を実行するための撮像装置を以下、説明する。
【００５１】
図１４は、本発明の実施の形態に係る中心位置補正機能を搭載した撮像装置１００の構成図である。ここで説明する撮像装置１００は、一実施例として動画を撮影してフラッシュメモリやハードディスクなどに記録するビデオカメラである。図１４において、実線矢印は映像情報の流れを示し、点線矢印は制御情報の流れを示す。
【００５２】
レンズ１０に入射する被写体の像は電荷結合素子（ＣＣＤ）１２に結像する。ＣＣＤ１２から出力される撮影画像は、Ａ／Ｄ変換器１４によってデジタル信号に変換され、カメラ信号処理ＬＳＩ３０に入力される。
【００５３】
カメラ信号処理ＬＳＩ３０において、色信号処理部１６は、Ａ／Ｄ変換器１４から出力されたデジタル信号を色信号（Ｃ）に変換し、Ｙ信号処理部１８は、Ａ／Ｄ変換器１４から出力されたデジタル信号を輝度信号（Ｙ）に変換する。色信号処理部１６から出力される色信号は、フィールドメモリ２０に記憶される。Ｙ信号処理部１８から出力される輝度信号は、ローパスフィルタ（ＬＰＦ）１９にかけられた後、フィールドメモリ２０に記憶されるとともに、動きベクトル検出に使用するためにベクトル検出部２２に入力される。
【００５４】
ベクトル検出部２２は撮影画像の輝度信号にもとづいて動きベクトルを検出し、フィールドメモリ２０から撮影画像を切り出す指示をフィールドメモリ２０に与える。
【００５５】
ここで、ベクトル検出部２２は、フィールドメモリ２０から撮影画像を切り出すときの中心位置を光軸中心からオプティカルフローの消失点に移動させるために、カメラ制御マイコン４０に設けられた中心位置補正処理ブロック５０と協働して動きベクトルを検出する。ベクトル検出部２２は、撮影画像から検出された動きベクトルを中心位置補正処理ブロック５０に供給し、中心位置補正処理ブロック５０はベクトル検出部２２により検出された動きベクトルからオプティカルフローの消失点を算出し、算出した消失点を撮影画像をフィールドメモリ２０から切り出す中心位置としてベクトル検出部２２に供給する。
【００５６】
フィールドメモリ２０の指定された中心位置（オプティカルフローの消失点）から切り出された撮影画像の色信号と輝度信号はコーデックＬＳＩ２４に供給される。コーデックＬＳＩ２４は、ＳＤＲＡＭ３８を一時記憶として利用しながら、撮影画像を圧縮符号化し、符号化された画像情報をＣＦ/ＡＴＡインタフェース３４に与える。また、記録された画像を再生する際は、コーデックＬＳＩ２４は、ＣＦ/ＡＴＡインタフェース３４から供給される符号化された画像情報を復号する。
【００５７】
ＣＦ/ＡＴＡインタフェース３４は、コンパクトフラッシュ（商標）のような小型カードに対する読み書きのインタフェース、またはＡＴＡ規格等のハーディスクに対する読み書きのインタフェースである。コーデックＬＳＩ２４により圧縮符号化された画像情報は、ＣＦ/ＡＴＡインタフェース３４を介してメモリカードやハードディスク３６に書き込まれる。コーデックＬＳＩ２４がメモリカードやハードディスク３６から画像情報を読み出す際にもＣＦ/ＡＴＡインタフェース３４を介して行われる。
【００５８】
コーデックＬＳＩ２４により処理された撮影画像の色信号と輝度信号はＤ／Ａ変換器２６に供給され、アナログ信号に変換される。Ｙ／Ｃ信号混合部２８は、Ｄ／Ａ変換器２６から出力された輝度信号と色信号を混合してビデオ出力部３２に供給する。ビデオ出力部３２は、画面にビデオ信号を表示させる。
【００５９】
操作部４４は、ユーザから撮像装置１００を操作する命令を受け付け、操作命令をカメラ制御マイコン４０に与える。カメラ制御マイコン４０は、撮像装置１００全体を制御する制御部であり、操作命令にもとづいてレンズ機構を制御したり、ディスプレイの設定を変更したりする。
【００６０】
たとえば、操作部４４により光学ズームが指示された場合、カメラ制御マイコン４０は、レンズ１０のズームを調整する。操作部４４により録画の指示がなされた場合、カメラ制御マイコン４０はコーデックＬＳＩ２４に動画記録の指示を与える。操作部４４により、メモリカードやハードディスク３６に記録された画像の再生指示がなされると、カメラ制御マイコン４０はコーデックＬＳＩ２４に動画再生の指示を与える。
【００６１】
図１５は、図１４の中心位置補正処理ブロック５０の構成図である。動きベクトル取得部５２は、ベクトル検出部２２から撮影画像の各ブロックの動きベクトルの情報を受け取る。
【００６２】
撮像装置１００は車両に搭載されるか、車両に同乗している人が手に持っている。車両が停止しているときは、車両の揺れまたは手ぶれによって、図１で説明したように、撮影画像のすべてのブロックで一定の方向を向いた動きベクトルが検出される。車両がまっすぐ前進しているときは、図４（ｂ）で説明したように、撮影画像の中心から放射状に広がる方向に動きベクトルが検出される。車両がカーブを曲がるときは、図５（ｂ）で説明したように、撮影画像の中心からずれた走行方向の一点にオプティカルフローの消失点が生じ、その消失点を中心として放射状に広がる方向に動きベクトルが検出される。
【００６３】
一次関数算出部５４は、撮影画像のブロック毎に、代表点の動き検出量からフロー放射線の傾きａを求める。次に、一次関数算出部５４は、代表点の座標値を傾きａのフロー放射線の式ｙ＝ａｘ＋ｂに代入することでフロー放射線の切片ｂを求める。各ブロックのフロー放射線を示す一次関数の傾きａと切片ｂの情報は一次関数情報記憶部６０に記憶される。一次関数算出部５４による処理の具体例は、図８および図９を参照して上述した通りである。
【００６４】
消失点算出部５６は、一次関数情報記憶部６０を参照し、傾きが異なるフロー放射線をもつ二つのブロックを選択し、選択したブロックのフロー放射線の交点を求めることにより、消失点を算出する。消失点算出部５６による処理の具体例は、図１０を参照して上述した通りである。
【００６５】
消失点算出部５６は、フロー放射線の傾きが異なる任意の二つのブロックを選択して求めた消失点を消失点記憶部６２に記憶する。消失点算出部５６は、複数の消失点を平均化して最終的な消失点を求め、消失点記憶部６２に記憶する。
【００６６】
ここで、消失点算出部５６が消失点算出の際に利用する二つのブロックを選択するとき、あるブロックにおいて検出された動きベクトルの信頼度が所定の閾値よりも低い場合には、そのブロックは選択対象から外すようにしてもよい。動きベクトルの検出精度が低下するのは、たとえば、撮影画像に空や壁が写っていたり、格子模様が写っている場合、輝度の同じ画素を探索することで動きベクトルを検出することには限界が生じるからである。そのため、ブロックによっては動きベクトルの信頼性が著しく低いことがある。
【００６７】
動きベクトルを代表点の輝度にもとづいて探索する際、代表点画素の輝度レベルと最も近い輝度レベルをもつ画素とのレベル差が閾値よりも大きい場合、消失点算出部５６は、そのブロックの動きベクトル検出点の信頼度が低いと判断し、当該代表点が属するブロックは選択対象から除外する。ただし、この信頼度の判断基準の場合、撮影画像に空や壁が含まれると一様の輝度レベルになり差が閾値よりも小さくなるため、信頼度が高いと判断されてしまう可能性がある。そこで、信頼性判断のひとつの方法として、代表点の画素の輝度レベルと最も近い輝度レベルをもつ画素と、２番目に近い輝度レベルをもつ画素との輝度レベルの差が所定の閾値よりも小さい場合に、消失点算出部５６が、そのブロックの動きベクトル検出点の信頼度が低いと判断し、当該代表点が属するブロックは選択対象から除外することが、より好ましい。また、被写体が動いたために、あるブロックだけ他のブロックとは異なる動きを示している場合、消失点算出部５６は、そのブロックを信頼度が低いと判断し、選択対象から除外してもよい。
【００６８】
中心位置補正部５８は、消失点記憶部６２から最終的な消失点を読み出し、ベクトル検出部２２に与える。ベクトル検出部２２は、フィールドメモリ２０から撮影画像を切り出すときの中心位置を、中心位置補正部５８から与えられた消失点の座標位置にずらす。
【００６９】
なお、ベクトル検出部２２による動きベクトル検出機能は、中心位置補正処理ブロック５０の動きベクトル取得部５２にもたせてもよく、ベクトル検出部２２による消失点の座標にもとづく撮影画像のメモリ切り出し機能は、中心位置補正処理ブロック５０の中心位置補正部５８にもたせてもよい。
【００７０】
中心位置補正処理ブロック５０は、さらに、補正モード切替部６４を備える。補正モード切替部６４は、車両が走行中であるか、停止中であるかを判定し、車両が走行中であれば、フロー放射線の交点から消失点を求め、撮影画像を切り出す中心位置を消失点の座標位置にずらす「中心位置補正処理」を実行するが、車両が停止中であれば、図１〜図３で説明した通常の「手ぶれ補正処理」に切り替える。
【００７１】
補正モード切替部６４は、一次関数情報記憶部６０を参照し、撮影画像の各ブロックで検出された動きベクトルの方向（フロー放射線の傾き）が所定の許容範囲で一致する場合は、車両が停止中であると判定する。図１に示すように、車両が停止しているときは、車両の揺れまたは手ぶれにより、撮影画像の各ブロックで動きベクトルは一定方向に向いているからである。ここで「所定の許容範囲」とは、動きベクトルの検出精度のもとで、動きベクトルが同一方向を向いていると判断しうる最大誤差範囲である。
【００７２】
より、具体的には、図１１で述べた、撮影画像の中心から見た場合に直交する位置関係にある二つのブロックの動きベクトルの方向があらかじめ定めた誤差範囲で一致するときは、他のブロックの組み合わせについて動きベクトルの傾きの一致・不一致を判断することなく、走行停止中であると判断し、手ぶれ補正処理モードに切り替えてもよい。あるいは、全ブロックの動きベクトルを求め、検出された動きベクトル値のばらつきを評価して、ばらつきが所定の閾値よりも小さく、動きベクトルがいずれのブロックでもほぼ同じ方向を向いている場合、走行停止中であると判断し、手ぶれ補正モードに切り替えてもよい。
【００７３】
他方、補正モード切替部６４は、一次関数情報記憶部６０を参照し、撮影画像の各ブロックで検出された動きベクトルが異なる方向を向いている場合は、車両が走行中であると判定する。図４（ｂ）、図５（ｂ）で示すように、車両が走行しているときは、放射状に動きベクトルが検出されるからである。
【００７４】
この場合も特定の二つのブロックの動きベクトルが作る角度が所定の閾値を超える場合、他のブロックの組み合わせについて動きベクトルが作る角度が所定の閾値を超えるかどうかを判断することなく、走行中であると判断し、中心位置補正処理モードに切り替えてもよい。あるいは、全ブロックの動きベクトルを求め、検出された動きベクトルの方向、すなわちフロー放射線の傾きのばらつきを評価して、ばらつきが所定の閾値よりも大きい場合、走行中であると判断し、中心位置補正処理モードに切り替えてもよい。
【００７５】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。また、本発明は画像補正処理装置の機能をコンピュータに実現させるためのプログラムを含むものである。これらのプログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。
【００７６】
上記の実施の形態では、撮影画像において放射状のオプティカルフローの消失点がカメラの光軸中心からずれる現象が起こる一例として、カーブを曲がる車から前方を撮影した場合を説明したが、消失点と撮影画像の中心（光軸中心）とがずれる現象はこの場合に限らず、発生しうる。そのような場合でも本発明を適用することができる。また、撮像装置が撮影している方向に移動している例について説明したが、本発明は撮像装置が撮影している方向とは逆の方向に移動している場合についても適用できる。また、各実施形態において、放射状のオプティカルフローとは、撮像装置が撮影している方向とは逆の方向に移動して、動きベクトルそれぞれが消失点の方向を向いている場合のオプティカルフローも含むものとする。また、各実施形態において、「手ぶれ」とは、手による画像ぶれに限らず、車の振動等による画像ぶれも含むものとする。
【符号の説明】
【００７７】
２０  フィールドメモリ、  ２２  動きベクトル検出部、  ２４  コーデックＬＳＩ、  ３０  カメラ信号処理ＬＳＩ、  ３２  ビデオ出力部、  ４０  カメラ制御マイコン、  ４４  操作部、  ５０  中心位置補正処理ブロック、  ５２  動きベクトル取得部、  ５４  一次関数算出部、  ５６  消失点算出部、  ５８  中心位置補正部、  ６０  一次関数情報記憶部、  ６２  消失点記憶部、  ６４  補正モード切替部、  １００  撮像装置。
【図１】
0005321540.tif 000002
【図２】
0005321540.tif 000003
【図３】
0005321540.tif 000004
【図４】
0005321540.tif 000005
【図５】
0005321540.tif 000006
【図６】
0005321540.tif 000007
【図７】
0005321540.tif 000008
【図８】
0005321540.tif 000009
【図９】
0005321540.tif 000010
【図１０】
0005321540.tif 000011
【図１１】
0005321540.tif 000012
【図１２】
0005321540.tif 000013
【図１３】
0005321540.tif 000014
【図１４】
0005321540.tif 000015
【図１５】
0005321540.tif 000016