画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
【課題】複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行う。
【解決手段】撮像素子の撮像部10に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得部40と、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得部30と、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得部50と、を備え、出力領域取得部50は、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得する。
【解決手段】撮像素子の撮像部10に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得部40と、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得部30と、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得部50と、を備え、出力領域取得部50は、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に関するものである。
【背景技術】
【0002】
従来、撮像した動画フレーム間の動きデータに基づいて動画の補正処理を行う装置が知られている。例えば、下記特許文献1には、基準画像と比較画像間の動きデータを算出し、動きデータによって対応付けられるブロックごとに画像間の画素値の差分を算出し、その画素値の差分に基づいて、基準画像と比較画像の重ね合わせ比率をブロックごとに決定し、重ね合わせ処理を行って合成画像を得ることで、より鮮明な手ぶれ補正画像を得る装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−164857号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、複数のカメラにより撮影された画像を合成することで奥行きを持つ立体画像を取得する技術が知られている。また、このような立体画像を連続して撮像、表示することにより立体動画を取得する技術も知られている。このような立体動画では、通常の動画と同様に、手ぶれ補正や歪み補正等の補正処理を行うことが要請されている。複数の撮像素子から取得した画像のそれぞれに対して、特許文献1に記載の手ぶれ補正を独立に行った場合、各撮像素子から取得した画像間における手ぶれ補正の整合性がとれずに、適切な補正処理が行えないおそれがある。
【0005】
そこで、本発明は、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる画像処理装置、画像処理方法、画像処理プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る画像処理装置は、第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理する画像処理装置であって、撮像素子の撮像装置に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得部と、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得部と、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得部と、を備え、出力領域取得部は、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得することを特徴とする。
【0007】
本発明に係る画像処理方法は、第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理する画像処理方法であって、撮像素子の撮像装置に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得ステップと、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得ステップと、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得ステップと、を含み、出力領域取得ステップは、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得することを特徴とする。
【0008】
本発明に係る画像処理プログラムは、第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理するようにコンピュータを動作させる画像処理プログラムであって、撮像素子の撮像装置に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得部、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得部、及び第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得部としてコンピュータを機能させ、出力領域取得部は、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得することを特徴とする。
【0009】
本発明に係る画像処理プログラムを記録したコンピュータ読取可能な記録媒体は、第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理するようにコンピュータを動作させる画像処理プログラムが記憶された記憶媒体であって、プログラムは、撮像素子の撮像装置に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得部、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得部、及び第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得部としてコンピュータを機能させ、出力領域取得部は、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得することを特徴とする。
【0010】
このような発明によれば、基準撮像素子の第2出力領域が、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得され、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域が、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得される。ここで、基準撮像素子の第2出力領域と、他の撮像素子の第2出力領域が、これらの撮像素子の間で共通の動き情報に基づいて取得されるため、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる。
【0011】
ここで、第2出力領域の位置情報が第2フレーム画像内に位置するか否かを全ての撮像素子について判定する判定部を備え、出力領域取得部は、第2出力領域の位置情報が第2フレーム画像内に位置しない場合には、全ての撮像素子において第2出力領域の位置情報が第2フレーム画像内に位置するまで、第1出力領域の位置情報及び第2出力領域の位置情報の差分により求まる移動量を小さく調整することとしてもよい。この場合には、第2出力領域が、第2フレーム画像内に位置しないことにより画像処理が行えなくなることを防止することができる。
【0012】
動き情報取得部は、基準撮像素子において撮像された第1フレーム画像及び第2フレーム画像から動き情報を取得することとしてもよい。この場合には、画像から動き情報を取得することができるので、新たなハードウェアの構成を必要とせずに、複数の撮像素子において共通の動き情報を取得することができる。
【0013】
動き情報取得部は、ジャイロセンサにより動き情報を取得することとしてもよい。この場合には、ジャイロセンサから複数の撮像素子において共通の動き情報を取得することができることから、演算負荷を低減することができる。
【0014】
動き情報取得部は、複数の撮像素子において撮像された第1フレーム画像及び第2フレーム画像から得た動き情報の加重平均を動き情報として取得する。この場合には、動き情報が複数の撮像素子に基づいて取得されるため、動き情報を精度良く取得することができる。
【0015】
また、基準撮像素子は、撮像条件に基づいて複数の撮像素子の中から選択されることとしてもよい。この場合には、例えば性能の優れた撮像素子を基準撮像素子として選択することにより、動き情報を精度良く取得することができる。
【0016】
出力領域取得部は、複数の撮像素子を備えることによって必要となる出力領域以外の領域を、動きによって補正する際に用いる領域として利用することとしてもよい。この場合、立体画像を得るためのマージンと動きによって補正する際のマージンとを共有することが、一つのマージンで複数の補正処理を行うことができる。そのため、マージンを確保することに起因する補正処理後の有効画素数の低下を少なくすることができる。
【発明の効果】
【0017】
本発明によれば、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる。
【図面の簡単な説明】
【0018】
【図1】複数の撮像素子による手ぶれ補正の概要を説明する図である。
【図2】第1実施形態の画像処理装置の機能構成を示すブロック図である。
【図3】第1撮像素子及び第2撮像素子の設置情報を説明する図である。
【図4】画像処理装置のハードウェア構成を示す図である。
【図5】動き情報を説明する図である。
【図6】出力領域取得部における演算処理の手順を示す図である。
【図7】第1実施形態の第2出力領域の取得処理を示すフローチャートである。
【図8】第2実施形態の画像処理装置の機能構成を示すブロック図である。
【図9】動き補正行列の再計算方法を説明する図である。
【図10】第2実施形態の第2出力領域の取得処理を示すフローチャートである。
【図11】第3実施形態の画像処理装置の機能構成を示すブロック図である。
【図12】平均動き補正行列の取得処理の手順を示す図である。
【図13】第3実施形態の第2出力領域の取得処理を示すフローチャートである。
【図14】平均動き補正行列の取得処理を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、添付図面を参照して本発明の実施形態について説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
【0020】
(第1実施形態)
第1実施形態の画像処理装置は、複数の撮像素子から入力した画像間で整合性のある手ぶれ補正処理を行う装置であって、携帯電話、デジタルカメラ、ビデオカメラ、又は通常のコンピュータシステムに搭載されるものである。例えば、多眼カメラに用いられる。本実施形態では、複数の撮像素子の例として、2つの撮像素子を備える構成について説明する。
【0021】
始めに、発明の理解を容易にするために、2つの撮像素子から立体画像の取得する方法について説明する。図1は、2つの撮像素子である第1撮像素子及び第2撮像素子が撮像した入力フレームと、当該入力フレームの一部の画素領域を切り出した出力フレームを示している。以下では、第1撮像素子で撮像した第1フレーム、第2フレームから切り出される領域(第1出力領域)をそれぞれ第1出力領域A11、第2出力領域A12と称する。また、第2撮像素子で撮像した第1フレーム、第2フレームから切り出される領域(第2出力領域)をそれぞれ第1出力領域A21、第2出力領域A22と称する。第1撮像素子及び第2撮像素子を用いて立体画像を得るには、第1撮像素子が撮像した第1フレーム画像のうち、対象物Tを含む所定の画像領域を第1出力領域A11として切り出し、第2撮像素子12が撮像した第1フレーム画像から、第1出力領域A11に対応する第1出力領域A21を切り出す。そして、第1出力領域A11と第1出力領域A21との間の視差情報から、立体画像を得る。ここで、第1出力領域A12に対応する第1出力領域A21の位置は、第1撮像素子に対する第2撮像素子の設置位置、設置角度等の設置情報により一意に定まるものである。また、第1出力領域A21に対応する第1出力領域A11の位置は、第2撮像素子に対する第1撮像素子の設置位置、設置角度等の設置情報により一意に定まるものである。設置情報の詳細については後述する。
【0022】
本実施形態に係る画像処理装置は、第1フレーム画像及び第2フレーム画像間における撮像部10の動き情報を検出し、撮像部の移動量に応じて、第1撮像素子及び第2撮像素子の第2出力領域A12、A22の位置を移動し、移動した第2出力領域A12、A22の位置情報を取得する。ここで、それぞれの撮像素子で独立に手ぶれ補正を行うと、第2出力領域A12と第2出力領域A22との間の対応がとれずに、適切な視差情報が得られないおそれがある。そこで、本実施形態に係る画像処理装置は、一方の撮像素子の動き情報に基づいて得られた出力領域の移動量を他方の撮像素子の出力領域に反映することで、設置位置に関わらず整合のとれた手ぶれ補正を行うものである。以下、本実施形態に係る画像処理装置について説明する。
【0023】
図2は、本実施形態に係る画像処理装置1の機能構成を示すブロック図である。画像処理装置1は、複数の撮像素子を備える撮像部10によって撮像された画像を画像処理する装置である。本実施形態の撮像部10は、2つの撮像素子を備えている。
【0024】
撮像部10は、第1撮像素子11及び第2撮像素子12を備えている。第1撮像素子11及び第2撮像素子12は、撮像対象物を撮像する手段であり、例えば、C−MOS(Complementary Metal Oxide Semiconductor)やCCD(Charged CoupledDevice)などの撮像素子を主要部品として構成される。第1撮像素子11及び第2撮像素子12は、第1フレーム画像及び第2フレーム画像を連続して順次撮像する。ここで、第1撮像素子11及び第2撮像素子12は、図3(a),(b)に示すように、互いに所定の間隔、角度をもって配置される。このように配置された撮像部10は、図3(a)に示すように、同一の撮像対象物Tを撮像する。
【0025】
撮像部10は、複数の撮像素子のうち基準となる基準撮像素子と、基準撮像素子とは異なる他の撮像素子である参照撮像素子によって構成される。基準撮像素子で撮像された画像は、画像の補正処理を行う際に用いられる動き情報を生成する際に用いられる。本実施形態では、第1撮像素子11を基準撮像素子とし、第2撮像素子12を参照撮像素子とする。第1撮像素子11及び第2撮像素子12は、撮像した第1フレーム画像及び第2フレーム画像を画像データとして、画像処理装置1に出力する。
【0026】
図4は、画像処理装置1のハードウェア構成図である。図4に示すように、画像処理装置1は、物理的には、CPU(Central Processing Unit)100、ROM(Read Only Memory)101及びRAM(Random Access Memory)102等の主記憶装置、キーボード等の入力デバイス103、ディスプレイ等の出力デバイス104、ハードディスク等の補助記憶装置105などを含む通常のコンピュータシステムとして構成される。後述する画像処理装置1の各機能は、CPU100、ROM101、RAM102等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU100の制御の元で入力デバイス103及び出力デバイス104を動作させるとともに、主記憶装置や補助記憶装置105におけるデータの読み出し及び書き込みを行うことで実現される。また、画像処理装置1は、通信モジュール等を備えてもよい。
【0027】
画像処理装置1は、機能的には、図2に示すように、第1入力部21、第2入力部22、動き情報取得部30、設置情報取得部40、設置情報記憶部41、出力領域取得部50を備えている。
【0028】
第1入力部21は、基準撮像素子である第1撮像素子11により撮像された画像データ(以下、基準画像ともいう)を取得する機能である。第1入力部21は、第1撮像素子が撮像した第1フレーム画像及び第2フレーム画像を動き情報取得部30及び出力領域取得部50に出力する。
【0029】
第2入力部22は、参照撮像素子である第2撮像素子12により撮像された画像データ(以下、参照画像ともいう)を取得する機能である。第2入力部22は、第2撮像素子12が撮像した第1フレーム画像及び第2フレーム画像をそれぞれ取得する。第2入力部22は、第2撮像素子が撮像した第1フレーム画像及び第2フレーム画像を出力領域取得部50に出力する。
【0030】
動き情報取得部30は、第1フレーム画像及び第2フレーム画像間における撮像部10の動き情報を取得する機能である。動き情報は、基準となる第1フレーム画像及び第2フレーム画像間の空間的な変位量に基づいて算出される値である。詳細には、第1フレーム画像及び第2フレーム画像において、所定の大きさに分割されたブロック内の画像信号パターンに最も類似する画像信号パターンがフレーム間で探索され、フレーム間における最も類似する画像信号パターン間の空間的な変位量(動きベクトル)が動き情報として算出される。具体的には、動き情報取得部30は、図5に示すように、動き情報として、第1フレーム画像に対する第2フレーム画像の回転量θ、画像原点のシフト量dx,dy、拡大量sを取得する。動き情報取得部30は、取得した動き情報を出力領域取得部50に出力する。
【0031】
設置情報取得部40は、第1撮像素子11及び第2撮像素子12の撮像部10に対する設置状態を示す設置情報を取得する。設置情報とは、撮像部10に対する撮像素子の設置位置、設置角度等を示すパラメータである。これらのパラメータは、撮像部10の設計時に設定されるパラメータであり、撮像部10と画像処理装置1との接続時に、撮像部10に記憶されている設置情報が取得され、設置情報記憶部41に記憶される。設置情報取得部40は、第1撮像素子11及び第2撮像素子12の設置情報を、設置情報記憶部41から取得する。設置情報取得部40は、取得した第1撮像素子11及び第2撮像素子12の設置情報を出力領域取得部50に出力する。なお、設置情報取得部40は、設置情報を撮像部10から直接取得してもよい。
【0032】
出力領域取得部50は、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域A11、A21に対応する第2出力領域域A12、A22の位置情報を取得する。ここで、第1出力領域A11、A21に対応する第2出力領域A12、A22とは、第1出力領域A11、A21と対になっている第2出力領域A12、A22を意味している。出力領域取得部50は、第1フレーム画像における第1出力領域A11、A21に対してブレがなくなるように第2フレーム画像の第2出力領域A12、A22の位置を設定する。設定された第2出力領域A12、A22の位置は、第1出力領域A11、A21と一致する位置である場合もあるし、第1出力領域A11、A21とは異なる位置である場合もある。出力領域取得部50は、第2出力領域を撮像素子ごとに取得する。以下に、第1撮像素子11及び第2撮像素子12の第2出力領域域A12、A22の位置情報を取得するための演算処理について説明する。
【0033】
図6は、第1撮像素子11及び第2撮像素子12の第2出力領域A12、A22の位置情報を取得するための演算処理の手順を示している。図6に沿って出力領域取得部50の演算処理について説明する。
【0034】
まず、出力領域取得部50は、式(1)により、参照画像の第1フレーム画像内の任意の座標(x’,y’)を正規座標系の座標(xn,yn)に変換する。正規化行列とは、入力画像の座標系から正規座標系への変換を行う行列である。ここで、式(1)の正規化行列M’−1は、式(2)に示す第2撮像素子12の逆正規化行列M’の逆行列である。逆正規化行列M’は、正規座標系から参照画像の座標系への変換を行う行列である。逆正規化行列M’は、第2撮像素子12の第1フレーム画像の第1出力領域A21の切り出し位置である(x1’,y1’)、(x2’,y2’)、(x3’,y3’)により求められるものであり、設置情報取得部40から出力された撮像部10に対する第2撮像素子12の位置情報により定まる行列である。
【0035】
【数1】
【0036】
【数2】
【0037】
次に、出力領域取得部50は、式(3)により、正規座標系の座標(xn,yn)を第1撮像素子11の座標系の座標(x,y)に変換する。ここで、式(3)の逆正規化行列Mは、正規行列を基準画像の座標系に変換する行列である。逆正規化行列Mを式(4)に示す。逆正規化行列Mは、第1撮像素子11の第1フレーム画像の第1出力領域A11の切り出し位置である(x1,y1)、(x2,y2)、(x3,y3)により求められるものであり、設置情報取得部40から出力された撮像部10に対する第1撮像素子11の位置情報により定まる行列である。
【0038】
【数3】
【0039】
【数4】
【0040】
次に、出力領域取得部50は、動き情報取得部30から取得した動き情報に基づいて式(5)に示す動き補正行列Cを求める。
【0041】
【数5】
【0042】
次に、出力領域取得部50は、式(6)に示すように、第1撮像素子11の座標系の座標(x,y)に対して、動き補正行列Cを掛けることで、第1撮像素子11の補正後の座標(xc,yc)を得る。座標(x,y)から座標(xc,yc)までの、移動量及び移動方向は、第1出力領域A11に対する第2出力領域A12の移動量及び移動方向に相当する。このようにして、出力領域取得部50は、第1出力領域A11に対応する第2出力領域A12の位置情報を取得する。
【0043】
【数6】
【0044】
次に、出力領域取得部50は、式(7)により、第1撮像素子11の座標系における補正後の座標(xc,yc)を、正規座標系の座標(xnc,ync)に変換する。その後、式(8)により、正規座標系の座標(xn,yn)を第2撮像素子12の座標系の補正後の座標(x’c,y’c)を得る。座標(x’,y’)から座標(x’c,y’c)までの移動量及び移動方向は、第1出力領域A21に対する第2出力領域A22の移動量及び移動方向に相当する。このようにして、出力領域取得部50は、第1出力領域A21に対応する第2出力領域A22の位置情報を取得する。
【数7】
【0045】
【数8】
【0046】
以上に示した出力領域取得部50が行う演算処理をまとめると、参照画像の第1フレーム画像内の任意の座標(x’,y’)は、式(9)により、補正後の座標(x’c,y’c)に変換される。式(9)においてM’M−1CMM’−1をC’とおくと、C’は、参照撮像素子である第2撮像素子12の動き補正行列となる。
【0047】
【数9】
【0048】
次に、図7を用いて、画像処理装置1の動作を説明するとともに本実施形態に係る画像処理方法について説明する。
【0049】
まず、設置情報取得部40は、第1撮像素子11及び第2撮像素子12の設置情報を設置情報記憶部41から取得する(S11)。次に、動き情報取得部30は、第1入力部21から基準画像の第1フレーム画像及び第2フレーム画像から動き情報を取得する(S12)。続いて、出力領域取得部50は、参照画像内の任意の座標(x’,y’)を上記式(1)により、正規座標(xn,yn)に変換する(S13)。その後、出力領域取得部50は、正規座標(xn,yn)を上記式(3)により、基準画像内の座標(x,y)に変換する(S14)。ここで、基準画像内の座標(x,y)への変換に用いられる逆正規化行列Mは、撮像部10に対する第1撮像素子11の設置情報から定まる値である。
【0050】
次に、出力領域取得部50は、上記式(6)のように、動き情報取得部30により取得された動き情報から定まる動き補正行列Cにより、座標(x,y)を座標(xc,yc)に変換する(S15)。続いて、出力領域取得部50は、座標(x,y)に対する座標(xc,yc)の移動量から、第2出力領域A12の位置情報を取得する(S16)。次に、出力領域取得部50は、式(7)により、座標(xc,yc)を正規座標(xcn,ycn)に変換する(S17)。その後、出力領域取得部50は、式(8)により、正規座標(xcn,ycn)を参照画像内の座標(x’c,y’c)に変換する(S18)。続いて、出力領域取得部50は、座標(x’,y’)に対する座標(x’c,y’c)の移動量から、第2出力領域A22の位置情報を取得する(S19)。第2出力領域A12の位置情報を取得すると、画像処理装置は、図7の画像処理を終了する。
【0051】
次に、コンピュータを画像処理装置1として機能させるための画像処理プログラムを説明する。
【0052】
画像処理プログラムは、メインモジュール、入力モジュール、動き情報取得モジュール、設置情報取得モジュール、設置情報記憶モジュール、及び出力領域取得モジュールを備えている。メインモジュールは、画像処理を統括的に制御する部分である。入力モジュールは、第1撮像素子11及び第2撮像素子12から入力画像を取得するようにコンピュータを動作させる。動き情報取得モジュール、設置情報取得モジュール、設置情報記憶モジュール、及び出力領域取得モジュールを実行することにより実現される機能はそれぞれ、動き情報取得部30、設置情報取得部40、設置情報記憶部41、及び出力領域取得部50の機能と同様である。
【0053】
画像処理プログラムは、例えば、ROM等の記憶媒体または半導体メモリによって提供される。また、画像処理プログラムは、データ信号としてネットワークを介して提供されてもよい。
【0054】
以上説明したように、本実施形態によれば、基準撮像素子である第1撮像素子11の第2出力領域A12が、設置情報により定まる第1出力領域A11の位置情報及び動き情報に基づいて取得され、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子である第2撮像素子12の第2出力領域A22が、第1撮像素子11の設置情報、第2撮像素子12の設置情報、及び動き情報に基づいて取得される。ここで、第1撮像素子11の第2出力領域A12と、第2撮像素子12の第2出力領域A22が、第1撮像素子11及び第2撮像素子12において共通である動き情報に基づいて取得されるため、第1撮像素子11及び第2撮像素子12から得られた画像の間で整合性がとれた補正処理を行うことができる。また、立体画像を得るために用いられるマージンを手ぶれ補正で用いるマージンとして利用しているため、出力を狭くせずに手ぶれ補正が実現された出力画像を得ることができる。
【0055】
(第2実施形態)
次に、第2実施形態に係る画像処理装置について説明する。この画像処理装置は、第2出力領域A12、A22の位置情報が第2フレーム画像内に位置しない場合には、全ての撮像素子において第2出力領域の位置情報が第2フレーム画像内に位置するまで、第1出力領域A11、A21の位置情報及び第2出力領域A12、A22の位置情報の差分により求まる移動量を小さく調整する点で第1実施形態と異なる。
【0056】
図8は、本実施形態に係る画像処理装置1Aの機能構成を示すブロック図である。本実施形態に係る画像処理装置1Aは、出力領域取得部50に代えて出力領域取得部50Aを備えている。また、第1実施形態に係る画像処理装置1に加えて、判定部60を備えている。その他の構成は、第1実施形態と同じである。
【0057】
判定部60は、第1、第2撮像装置の第2フレームにおける第2出力領域A12、A22がそれぞれの第2フレーム画像内に位置するか否かを判定する機能を有する。判定部60は、式(6)により算出された第2出力領域A12の4つの頂点の座標(xc1,yc1)、(xc2,yc2)、(xc3,yc3)、(xc4,yc4)が第1撮像素子11の第2フレーム画像内にあるか否かを判定する。また判定部60は、式(9)により算出された第2出力領域A22の4つの頂点の座標(x’c1,y’c1)、(x’c2,y’c2)、(x’c3,y’c3)、(x’c4,y’c4)が第2撮像素子12の撮像した第2フレーム画像内にあるか否かを判定する。判定部60は、第2出力領域A12または第2出力領域A22の少なくとも何れか一方において、4つの頂点の座標の何れかが第2フレーム画像内にないと判定した場合、第2出力領域A12、A22が第2フレーム画像外にあること示す逸脱信号を出力領域取得部50Aに出力する。
【0058】
出力領域取得部50Aは、判定部60から逸脱信号を取得すると、全ての撮像素子において第2出力領域A12、A22の位置情報が第2フレーム画像内に位置するまで、第1出力領域A11、A21の位置情報及び第2出力領域A12、A22の位置情報の差分により求まる移動量が小さくなるように調整する。第2出力領域A12、A22の位置情報を調整するための再計算について図9を参照して以下に説明する。
【0059】
図9(a)は、第2出力領域A12が、第1撮像素子11の第2フレーム外に位置している例である。この例では、第2出力領域A12のうち、座標C(x3,y3)及び座標C(x4,y4)が第2フレーム外に位置している。この場合、出力領域取得部50Aは、画面内外比率rを求める。以下では、座標C(x3,y3)について画面内外比率rを求めているが、座標C(x4,y4)について画面内外比率rを求めても良い。
【0060】
画面内外比率rは、第1出力領域の座標と、該座標に対応する座標であって、第2フレーム外に位置する座標を直線で結んだ場合における、第2フレーム内の当該線分の長さに対する第2フレーム外の当該線分の長さの比である。出力領域取得部50Aは、画面内外比率rを求めた後、式(10)により補正行列Cを更新する。式(10)において、Iは単位行列である。その後、出力領域取得部50Aは、基準画像の座標系の座標(x,y)に対して、更新後の動き補正行列Cを掛けることで、第2出力領域A12の位置情報を取得する。また、出力領域取得部50Aは、更新した第2出力領域A12の位置情報に基づいて式(7)、(8)により第2出力領域A22の位置情報を取得する。
【0061】
【数10】
【0062】
その後、再び判定部60は、更新した補正行列Cにより決定された第2出力領域A12の4つの頂点が第1撮像素子11の第2フレーム画像内にあるか否かを判定し、全ての頂点が第2フレーム画像内に位置するまで、式(10)により補正行列を更新する。また、更新した補正行列に基づいて第2出力領域A12及び第2出力領域A22を取得する。判定部60において、すべての頂点の座標が第2フレーム画像内に位置すると判定されると、その時点における第2出力領域A12及び第2出力領域A22を出力する。
【0063】
図9(b)は、第2出力領域A22が、第1撮像素子12の第2フレーム外に位置している例である。この例では、第2出力領域A12のうち、座標C’(x’3,y’3)及び座標C’(x’4,y’4)が第2フレーム外に位置している。この場合、出力領域取得部50Aは、画面内外比率r’を求める。以下では、座標C’(x’4,y’4)について画面内外比率rを求めているが、座標C’(x’3,y’3)について画面内外比率rを求めても良い。
【0064】
出力領域取得部50Aは、画面内外比率r’を求めた後、式(11)により補正行列Cを更新する。その後、出力領域取得部50Aは、第1撮像素子11の座標系の座標(x,y)に対して、更新した動き補正行列Cを掛けることで、第2出力領域A12の位置情報を取得する。また、出力領域取得部50Aは、更新した第2出力領域A12の位置情報に基づいて式(7)、(8)により第2出力領域A22の位置情報を取得する。
【0065】
【数11】
【0066】
その後、再び判定部60は、更新した補正行列Cにより決定された第2出力領域A12の4つの頂点が第1撮像素子11の第2フレーム画像内にあるか否かを判定し、全ての頂点が第2フレーム画像内に位置するまで、式(11)により補正行列を更新する。また、更新した補正行列に基づいて第2出力領域A12及び第2出力領域A22を取得する。判定部60において、すべての頂点の座標が第2フレーム画像内に位置すると判定されると、その時点における第2出力領域A12及び第2出力領域A22を出力する。
【0067】
次に、図10を用いて、画像処理装置1Aの動作を説明するとともに本実施形態に係る画像処理方法について説明する。
【0068】
図10に示すステップS21〜26、S28〜30は、それぞれ図7に示すステップS11〜S19と同じ動作であるため、説明を省略する。S26において、基準画像の第2出力領域A12を取得すると、出力領域取得部50Aは、基準画像の第2出力領域A12位置が基準画像内である否かについて判定する(S27)。出力領域取得部50Aは、基準画像の第2出力領域A12位置が基準画像内にないと判定した場合には、式(10)により、補正行列Cを再計算した後に(S32)、ステップS25の処理に移行する。他方、基準画像の第2出力領域A12位置が基準画像内にあると判定した場合には、ステップS28の処理に移行する。
【0069】
また、出力領域取得部50Aは、S30において、参照画像の第2出力領域A22を取得すると、参照画像の第2出力領域A22位置が参照画像内である否かについて判定する(S31)。出力領域取得部50Aは、参照画像の第2出力領域A22位置が参照画像内にないと判定した場合には、式(11)により、補正行列Cを再計算した後に(S32)、ステップS25の処理に移行する。他方、参照画像の第2出力領域A22位置が参照画像内にあると判定した場合には、図11に示す画像処理を終了する。
【0070】
以上説明したように、本実施形態によれば、基準撮像素子である第1撮像素子11の第2出力領域A12が、設置情報により定まる第1出力領域A11の位置情報及び動き情報に基づいて取得され、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子である第2撮像素子12の第2出力領域A22が、第1撮像素子11の設置情報、第2撮像素子12の設置情報、及び動き情報に基づいて取得される。ここで、第1撮像素子11の第2出力領域A12と、第2撮像素子12の第2出力領域A22が、複数の撮像素子において共通の動き情報に基づいて取得されるため、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる。
【0071】
また、本実施形態の画像処理装置1Aは、第2出力領域A11,A12の位置情報が第2フレーム画像内に位置するか否かを全ての撮像素子について判定する判定部60を備え、出力領域取得部50Aは、第2出力領域A11,A12の位置情報が第2フレーム画像内に位置しない場合には、全ての撮像素子において第2出力領域の位置情報が第2フレーム画像内に位置するまで、第1出力領域の位置情報及び第2出力領域の位置情報の差分により求まる移動量を小さく調整する。このため、第2出力領域A11,A12が、第2フレーム画像内に位置しないことにより画像処理が行えなくなることを防止することができる。
【0072】
(第3実施形態)
次に、第3実施形態に係る画像処理装置について説明する。本実施形態に係る画像処理装置は、複数の撮像素子において動き情報を取得し、各撮像素子で得られた動き情報を加重平均した動き情報を用いて第2出力領域の位置情報を取得する点で第1実施形態と異なる。
【0073】
図11は、本実施形態に係る画像処理装置1Bの機能構成を示すブロック図である。本実施形態に係る画像処理装置1Bは、出力領域取得部50に代えて出力領域取得部50Bを備えている。また、本実施形態に係る画像処理装置1Bでは、第2入力部22が、第2撮像素子12から取得した参照画像から動き情報取得部30に出力し、動き情報取得部30が、第1入力部21から取得した基準画像及び第2入力部22から取得した参照画像の1フレーム画像及び第2フレーム画像間における撮像部10の動き情報を取得する。本実施形態の動き情報取得部30は、基準画像から得た動き情報と、参照画像から得た動き情報とを出力領域取得部50Bに出力する。
【0074】
出力領域取得部50Bは、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する。以下に、第1撮像素子11及び第2撮像素子12の第2出力領域A12,A22の位置情報を取得するための演算処理について説明する。
【0075】
図12は、第1撮像素子11及び第2撮像素子12の第2出力領域A12、A22の位置情報を取得するための演算処理の手順を示している。図12に沿って出力領域取得部50Bにおける演算処理について説明する。
【0076】
まず、出力領域取得部50Bは、動き情報取得部30から出力される基準画像に基づく動き情報を取得し、式(5)と同様の処理により基準動き補正行列Corgを取得する。
【0077】
次に、基準画像内の任意の座標(x,y)に正規化行列M−1を掛けることで、座標(x,y)を正規座標系の座標(xn,yn)に変換する。次に、出力領域取得部50Bは、逆正規化行列M’を掛けることで、座標(xn,yn)を参照画像の座標系の座標(x’,y’)に変換する。
【0078】
また、出力領域取得部50Bは、動き情報取得部30から出力される参照画像に基づく動き情報を取得し、式(5)と同様の処理により参照動き補正行列C’orgを取得する。次に、出力領域取得部50Bは、式(6)に示すように、座標(x’,y’)に対して、参照動き補正行列C’orgを掛けることで、補正後の座標(x’c,y’c)を得る。座標(x’,y’)から座標(x’c,y’c)までの、移動量及び移動方向は、第1出力領域A21に対する第2出力領域A22の移動量及び移動方向に相当する。このようにして、出力領域取得部50Bは、第2出力領域A22の位置情報を取得する。
【0079】
その後、出力領域取得部50Bは、座標(x’c,y’c)に正規化行列M’−1を掛けることで、座標(x’c,y’c)を正規座標系の座標(x’nc,y’nc)に変換する。次に、出力領域取得部50Bは、逆正規化行列Mを掛けることで、座標(x’nc,y’nc)を基準画像の座標系の座標(xc,yc)に変換する。
【0080】
基準画像の第1出力領域A11を第2出力領域A12へ移動させるための動き補正行列を変換後動き補正行列C’convとおくと、ここまでの出力領域取得部50Bが行う演算処理は、式(12)のように表せる。
【0081】
【数12】
【0082】
ここで、出力領域取得部50Bは、式(13)のように、基準画像から得た基準動き補正行列Corgと、変換後動き補正行列C’convとの加重平均をとることで、平均動き補正行列Cavrを得る。式(13)において、worg、wconvは、それぞれ第1撮像素子11、第2撮像素子12に対する重みであり、第1撮像素子11、第2撮像素子12の信頼度によって設定される値である。例えば、夜間の撮影において、第1撮像素子11が赤外線カメラであり、第2撮像素子12が一般的な可視光カメラである場合には、暗所での撮影に優れる第1撮像素子11の重みを高く設定するようにしても良い。
【0083】
【数13】
【0084】
その後、出力領域取得部50Bは、式(13)で得た平均動き補正行列Cavrを用いて、第1実施形態で示す式(1)〜(4)、(6)〜(9)の演算を行うことで、基準画像の第2出力領域A12及び参照画像の第2出力領域A22の位置情報を取得する。また、出力領域取得部50Bは、第2実施形態で示す式(10)、(11)の演算を行うことで、基準画像及び参照画像の第2フレーム画像外に第2出力領域A12、A22が設定されることを防止するようにしても良い。
【0085】
次に、図13、14を用いて、画像処理装置1Bの動作を説明するとともに本実施形態に係る画像処理方法について説明する。
【0086】
図13に示すステップS41、S42、S44、S45、S47〜S50は、それぞれ図7に示すステップS11〜S14、S16〜S19と同じ動作であるため、説明を省略する。出力領域取得部50Bは、S26において、動き情報を取得すると、平均動き補正行列Cavr取得処理を行う(S43)。平均動き補正行列Cavr取得処理の手順を図14に示す。
【0087】
平均動き補正行列Cavr取得処理では、出力領域取得部50Bは、基準画像内の任意の座標(x,y)を正規座標に変換する(S61)。次に、出力領域取得部50は、正規座標を、参照画像内の座標(x’,y’)に変換する(S62)。ここで、基準画像内の座標(x,y)への変換に用いられる逆正規化行列M’は、第2撮像素子12の設置情報から定まる値である。
【0088】
次に、出力領域取得部50Bは、動き情報取得部30により取得された動き情報から定まる動き補正行列C’convにより、座標(x’,y’)を座標(x’c,y’c)に変換する(S63)。次に、出力領域取得部50Bは、座標(x’c,y’c)を正規座標に変換する(S64)。その後、出力領域取得部50Bは、正規座標を基準画像内の座標(xc,yc)に変換する(S65)。式(12)に示すように、上記ステップS61〜S65までの一連の処理により、変換後動き補正行列Cconvを得る。続いて、出力領域取得部50Bは、式(13)により、平均動き補正行列Cavrを取得する(S66)。
【0089】
その後、処理は図13に戻る。出力領域取得部50Bは、ステップS46において、平均動き補正行列Cavrにより座標(x,y)を座標(xc,yc)に変換する(S46)。
【0090】
以上説明したように、本実施形態においても、基準撮像素子である第1撮像素子11の第2出力領域A12が、設置情報により定まる第1出力領域A11の位置情報及び動き情報に基づいて取得され、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子である第2撮像素子12の第2出力領域A22が、第1撮像素子11の設置情報、第2撮像素子12の設置情報、及び動き情報に基づいて取得される。ここで、第1撮像素子11の第2出力領域A12と、第2撮像素子12の第2出力領域A22が、複数の撮像素子において共通の動き情報に基づいて取得されるため、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる。
【0091】
また、本実施形態の画像処理装置1Bは、第1撮像素子11から得た動き情報と第2撮像素子から得た動き情報の加重平均から平均動き補正行列Cavrを取得する。この場合、平均動き補正行列Cavrで示される動き情報が複数の基準撮像素子によって取得された動き情報を考慮したものであるためであるため、精度の良い動き情報を取得することができる。
【0092】
(変形例)
上記実施形態では、出力領域取得部が、複数の撮像素子を備えることによって必要となる出力領域以外の領域を、手ぶれ補正を行うための領域として用いている。ここで、出力領域以外の領域を、手ぶれ補正とは異なる他の画像処理で用いても良い。例えば、複数の撮像素子を備えることによって必要となる出力領域以外の領域を、撮像部10や対象物Tの動きによって生じる歪みを補正する際に用いる領域として利用してもよい。設置位置がずれた場合には、各撮像素子で歪み補正係数が異なるため、例えば基準画像での動きベクトルを基に各撮像素子での歪み補正係数を計算してもよい。
【0093】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0094】
例えば、上記実施形態では、第1撮像素子11及び第2撮像素子12において撮像された1フレーム画像及び第2フレーム画像から動き情報を取得しているが、ジャイロセンサ等の外部ハードウェアにより動き情報を取得しても良い。
【0095】
上記実施形態では、第1撮像素子11を基準撮像素子とし、第2撮像素子12を参照撮像素子としたが、いずれの撮像素子を前記基準撮像素子とするかは、撮像条件に基づいて選択されてもよい。例えば、第1撮像素子11が赤外線カメラであり、第2撮像素子12が一般的な可視光カメラである場合には、夜間の撮影では、第1撮像素子11を基準撮像素子と選択し、明るい場所での撮影では、第2撮像素子12を基準撮像素子と選択する素子選択部を備えてもよい。これにより、特性の異なる撮像素子のうち、手ぶれ補正に適した撮像素子の情報を用いて各撮像素子の画像を補正することができる。
【符号の説明】
【0096】
1,1A,1B…画像処理装置、10…撮像部、11…第1撮像素子、12…第2撮像素子、21…第1入力部、22…第2入力部、30…情報取得部、40…設置情報取得部、41…設置情報記憶部、50,50A,50B…出力領域取得部、60…判定部。
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に関するものである。
【背景技術】
【0002】
従来、撮像した動画フレーム間の動きデータに基づいて動画の補正処理を行う装置が知られている。例えば、下記特許文献1には、基準画像と比較画像間の動きデータを算出し、動きデータによって対応付けられるブロックごとに画像間の画素値の差分を算出し、その画素値の差分に基づいて、基準画像と比較画像の重ね合わせ比率をブロックごとに決定し、重ね合わせ処理を行って合成画像を得ることで、より鮮明な手ぶれ補正画像を得る装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−164857号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、複数のカメラにより撮影された画像を合成することで奥行きを持つ立体画像を取得する技術が知られている。また、このような立体画像を連続して撮像、表示することにより立体動画を取得する技術も知られている。このような立体動画では、通常の動画と同様に、手ぶれ補正や歪み補正等の補正処理を行うことが要請されている。複数の撮像素子から取得した画像のそれぞれに対して、特許文献1に記載の手ぶれ補正を独立に行った場合、各撮像素子から取得した画像間における手ぶれ補正の整合性がとれずに、適切な補正処理が行えないおそれがある。
【0005】
そこで、本発明は、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる画像処理装置、画像処理方法、画像処理プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る画像処理装置は、第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理する画像処理装置であって、撮像素子の撮像装置に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得部と、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得部と、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得部と、を備え、出力領域取得部は、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得することを特徴とする。
【0007】
本発明に係る画像処理方法は、第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理する画像処理方法であって、撮像素子の撮像装置に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得ステップと、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得ステップと、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得ステップと、を含み、出力領域取得ステップは、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得することを特徴とする。
【0008】
本発明に係る画像処理プログラムは、第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理するようにコンピュータを動作させる画像処理プログラムであって、撮像素子の撮像装置に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得部、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得部、及び第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得部としてコンピュータを機能させ、出力領域取得部は、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得することを特徴とする。
【0009】
本発明に係る画像処理プログラムを記録したコンピュータ読取可能な記録媒体は、第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理するようにコンピュータを動作させる画像処理プログラムが記憶された記憶媒体であって、プログラムは、撮像素子の撮像装置に対する設置状態を示す設置情報を、撮像素子ごとに取得する設置情報取得部、第1フレーム画像及び第2フレーム画像間における撮像装置の動き情報を取得する動き情報取得部、及び第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する出力領域取得部としてコンピュータを機能させ、出力領域取得部は、複数の撮像素子のうち基準となる基準撮像素子の第2出力領域を、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得し、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域を、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得することを特徴とする。
【0010】
このような発明によれば、基準撮像素子の第2出力領域が、設置情報により定まる第1出力領域の位置情報及び動き情報に基づいて取得され、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子の第2出力領域が、基準撮像素子の設置情報、他の撮像素子の設置情報、及び動き情報に基づいて取得される。ここで、基準撮像素子の第2出力領域と、他の撮像素子の第2出力領域が、これらの撮像素子の間で共通の動き情報に基づいて取得されるため、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる。
【0011】
ここで、第2出力領域の位置情報が第2フレーム画像内に位置するか否かを全ての撮像素子について判定する判定部を備え、出力領域取得部は、第2出力領域の位置情報が第2フレーム画像内に位置しない場合には、全ての撮像素子において第2出力領域の位置情報が第2フレーム画像内に位置するまで、第1出力領域の位置情報及び第2出力領域の位置情報の差分により求まる移動量を小さく調整することとしてもよい。この場合には、第2出力領域が、第2フレーム画像内に位置しないことにより画像処理が行えなくなることを防止することができる。
【0012】
動き情報取得部は、基準撮像素子において撮像された第1フレーム画像及び第2フレーム画像から動き情報を取得することとしてもよい。この場合には、画像から動き情報を取得することができるので、新たなハードウェアの構成を必要とせずに、複数の撮像素子において共通の動き情報を取得することができる。
【0013】
動き情報取得部は、ジャイロセンサにより動き情報を取得することとしてもよい。この場合には、ジャイロセンサから複数の撮像素子において共通の動き情報を取得することができることから、演算負荷を低減することができる。
【0014】
動き情報取得部は、複数の撮像素子において撮像された第1フレーム画像及び第2フレーム画像から得た動き情報の加重平均を動き情報として取得する。この場合には、動き情報が複数の撮像素子に基づいて取得されるため、動き情報を精度良く取得することができる。
【0015】
また、基準撮像素子は、撮像条件に基づいて複数の撮像素子の中から選択されることとしてもよい。この場合には、例えば性能の優れた撮像素子を基準撮像素子として選択することにより、動き情報を精度良く取得することができる。
【0016】
出力領域取得部は、複数の撮像素子を備えることによって必要となる出力領域以外の領域を、動きによって補正する際に用いる領域として利用することとしてもよい。この場合、立体画像を得るためのマージンと動きによって補正する際のマージンとを共有することが、一つのマージンで複数の補正処理を行うことができる。そのため、マージンを確保することに起因する補正処理後の有効画素数の低下を少なくすることができる。
【発明の効果】
【0017】
本発明によれば、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる。
【図面の簡単な説明】
【0018】
【図1】複数の撮像素子による手ぶれ補正の概要を説明する図である。
【図2】第1実施形態の画像処理装置の機能構成を示すブロック図である。
【図3】第1撮像素子及び第2撮像素子の設置情報を説明する図である。
【図4】画像処理装置のハードウェア構成を示す図である。
【図5】動き情報を説明する図である。
【図6】出力領域取得部における演算処理の手順を示す図である。
【図7】第1実施形態の第2出力領域の取得処理を示すフローチャートである。
【図8】第2実施形態の画像処理装置の機能構成を示すブロック図である。
【図9】動き補正行列の再計算方法を説明する図である。
【図10】第2実施形態の第2出力領域の取得処理を示すフローチャートである。
【図11】第3実施形態の画像処理装置の機能構成を示すブロック図である。
【図12】平均動き補正行列の取得処理の手順を示す図である。
【図13】第3実施形態の第2出力領域の取得処理を示すフローチャートである。
【図14】平均動き補正行列の取得処理を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、添付図面を参照して本発明の実施形態について説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
【0020】
(第1実施形態)
第1実施形態の画像処理装置は、複数の撮像素子から入力した画像間で整合性のある手ぶれ補正処理を行う装置であって、携帯電話、デジタルカメラ、ビデオカメラ、又は通常のコンピュータシステムに搭載されるものである。例えば、多眼カメラに用いられる。本実施形態では、複数の撮像素子の例として、2つの撮像素子を備える構成について説明する。
【0021】
始めに、発明の理解を容易にするために、2つの撮像素子から立体画像の取得する方法について説明する。図1は、2つの撮像素子である第1撮像素子及び第2撮像素子が撮像した入力フレームと、当該入力フレームの一部の画素領域を切り出した出力フレームを示している。以下では、第1撮像素子で撮像した第1フレーム、第2フレームから切り出される領域(第1出力領域)をそれぞれ第1出力領域A11、第2出力領域A12と称する。また、第2撮像素子で撮像した第1フレーム、第2フレームから切り出される領域(第2出力領域)をそれぞれ第1出力領域A21、第2出力領域A22と称する。第1撮像素子及び第2撮像素子を用いて立体画像を得るには、第1撮像素子が撮像した第1フレーム画像のうち、対象物Tを含む所定の画像領域を第1出力領域A11として切り出し、第2撮像素子12が撮像した第1フレーム画像から、第1出力領域A11に対応する第1出力領域A21を切り出す。そして、第1出力領域A11と第1出力領域A21との間の視差情報から、立体画像を得る。ここで、第1出力領域A12に対応する第1出力領域A21の位置は、第1撮像素子に対する第2撮像素子の設置位置、設置角度等の設置情報により一意に定まるものである。また、第1出力領域A21に対応する第1出力領域A11の位置は、第2撮像素子に対する第1撮像素子の設置位置、設置角度等の設置情報により一意に定まるものである。設置情報の詳細については後述する。
【0022】
本実施形態に係る画像処理装置は、第1フレーム画像及び第2フレーム画像間における撮像部10の動き情報を検出し、撮像部の移動量に応じて、第1撮像素子及び第2撮像素子の第2出力領域A12、A22の位置を移動し、移動した第2出力領域A12、A22の位置情報を取得する。ここで、それぞれの撮像素子で独立に手ぶれ補正を行うと、第2出力領域A12と第2出力領域A22との間の対応がとれずに、適切な視差情報が得られないおそれがある。そこで、本実施形態に係る画像処理装置は、一方の撮像素子の動き情報に基づいて得られた出力領域の移動量を他方の撮像素子の出力領域に反映することで、設置位置に関わらず整合のとれた手ぶれ補正を行うものである。以下、本実施形態に係る画像処理装置について説明する。
【0023】
図2は、本実施形態に係る画像処理装置1の機能構成を示すブロック図である。画像処理装置1は、複数の撮像素子を備える撮像部10によって撮像された画像を画像処理する装置である。本実施形態の撮像部10は、2つの撮像素子を備えている。
【0024】
撮像部10は、第1撮像素子11及び第2撮像素子12を備えている。第1撮像素子11及び第2撮像素子12は、撮像対象物を撮像する手段であり、例えば、C−MOS(Complementary Metal Oxide Semiconductor)やCCD(Charged CoupledDevice)などの撮像素子を主要部品として構成される。第1撮像素子11及び第2撮像素子12は、第1フレーム画像及び第2フレーム画像を連続して順次撮像する。ここで、第1撮像素子11及び第2撮像素子12は、図3(a),(b)に示すように、互いに所定の間隔、角度をもって配置される。このように配置された撮像部10は、図3(a)に示すように、同一の撮像対象物Tを撮像する。
【0025】
撮像部10は、複数の撮像素子のうち基準となる基準撮像素子と、基準撮像素子とは異なる他の撮像素子である参照撮像素子によって構成される。基準撮像素子で撮像された画像は、画像の補正処理を行う際に用いられる動き情報を生成する際に用いられる。本実施形態では、第1撮像素子11を基準撮像素子とし、第2撮像素子12を参照撮像素子とする。第1撮像素子11及び第2撮像素子12は、撮像した第1フレーム画像及び第2フレーム画像を画像データとして、画像処理装置1に出力する。
【0026】
図4は、画像処理装置1のハードウェア構成図である。図4に示すように、画像処理装置1は、物理的には、CPU(Central Processing Unit)100、ROM(Read Only Memory)101及びRAM(Random Access Memory)102等の主記憶装置、キーボード等の入力デバイス103、ディスプレイ等の出力デバイス104、ハードディスク等の補助記憶装置105などを含む通常のコンピュータシステムとして構成される。後述する画像処理装置1の各機能は、CPU100、ROM101、RAM102等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU100の制御の元で入力デバイス103及び出力デバイス104を動作させるとともに、主記憶装置や補助記憶装置105におけるデータの読み出し及び書き込みを行うことで実現される。また、画像処理装置1は、通信モジュール等を備えてもよい。
【0027】
画像処理装置1は、機能的には、図2に示すように、第1入力部21、第2入力部22、動き情報取得部30、設置情報取得部40、設置情報記憶部41、出力領域取得部50を備えている。
【0028】
第1入力部21は、基準撮像素子である第1撮像素子11により撮像された画像データ(以下、基準画像ともいう)を取得する機能である。第1入力部21は、第1撮像素子が撮像した第1フレーム画像及び第2フレーム画像を動き情報取得部30及び出力領域取得部50に出力する。
【0029】
第2入力部22は、参照撮像素子である第2撮像素子12により撮像された画像データ(以下、参照画像ともいう)を取得する機能である。第2入力部22は、第2撮像素子12が撮像した第1フレーム画像及び第2フレーム画像をそれぞれ取得する。第2入力部22は、第2撮像素子が撮像した第1フレーム画像及び第2フレーム画像を出力領域取得部50に出力する。
【0030】
動き情報取得部30は、第1フレーム画像及び第2フレーム画像間における撮像部10の動き情報を取得する機能である。動き情報は、基準となる第1フレーム画像及び第2フレーム画像間の空間的な変位量に基づいて算出される値である。詳細には、第1フレーム画像及び第2フレーム画像において、所定の大きさに分割されたブロック内の画像信号パターンに最も類似する画像信号パターンがフレーム間で探索され、フレーム間における最も類似する画像信号パターン間の空間的な変位量(動きベクトル)が動き情報として算出される。具体的には、動き情報取得部30は、図5に示すように、動き情報として、第1フレーム画像に対する第2フレーム画像の回転量θ、画像原点のシフト量dx,dy、拡大量sを取得する。動き情報取得部30は、取得した動き情報を出力領域取得部50に出力する。
【0031】
設置情報取得部40は、第1撮像素子11及び第2撮像素子12の撮像部10に対する設置状態を示す設置情報を取得する。設置情報とは、撮像部10に対する撮像素子の設置位置、設置角度等を示すパラメータである。これらのパラメータは、撮像部10の設計時に設定されるパラメータであり、撮像部10と画像処理装置1との接続時に、撮像部10に記憶されている設置情報が取得され、設置情報記憶部41に記憶される。設置情報取得部40は、第1撮像素子11及び第2撮像素子12の設置情報を、設置情報記憶部41から取得する。設置情報取得部40は、取得した第1撮像素子11及び第2撮像素子12の設置情報を出力領域取得部50に出力する。なお、設置情報取得部40は、設置情報を撮像部10から直接取得してもよい。
【0032】
出力領域取得部50は、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域A11、A21に対応する第2出力領域域A12、A22の位置情報を取得する。ここで、第1出力領域A11、A21に対応する第2出力領域A12、A22とは、第1出力領域A11、A21と対になっている第2出力領域A12、A22を意味している。出力領域取得部50は、第1フレーム画像における第1出力領域A11、A21に対してブレがなくなるように第2フレーム画像の第2出力領域A12、A22の位置を設定する。設定された第2出力領域A12、A22の位置は、第1出力領域A11、A21と一致する位置である場合もあるし、第1出力領域A11、A21とは異なる位置である場合もある。出力領域取得部50は、第2出力領域を撮像素子ごとに取得する。以下に、第1撮像素子11及び第2撮像素子12の第2出力領域域A12、A22の位置情報を取得するための演算処理について説明する。
【0033】
図6は、第1撮像素子11及び第2撮像素子12の第2出力領域A12、A22の位置情報を取得するための演算処理の手順を示している。図6に沿って出力領域取得部50の演算処理について説明する。
【0034】
まず、出力領域取得部50は、式(1)により、参照画像の第1フレーム画像内の任意の座標(x’,y’)を正規座標系の座標(xn,yn)に変換する。正規化行列とは、入力画像の座標系から正規座標系への変換を行う行列である。ここで、式(1)の正規化行列M’−1は、式(2)に示す第2撮像素子12の逆正規化行列M’の逆行列である。逆正規化行列M’は、正規座標系から参照画像の座標系への変換を行う行列である。逆正規化行列M’は、第2撮像素子12の第1フレーム画像の第1出力領域A21の切り出し位置である(x1’,y1’)、(x2’,y2’)、(x3’,y3’)により求められるものであり、設置情報取得部40から出力された撮像部10に対する第2撮像素子12の位置情報により定まる行列である。
【0035】
【数1】
【0036】
【数2】
【0037】
次に、出力領域取得部50は、式(3)により、正規座標系の座標(xn,yn)を第1撮像素子11の座標系の座標(x,y)に変換する。ここで、式(3)の逆正規化行列Mは、正規行列を基準画像の座標系に変換する行列である。逆正規化行列Mを式(4)に示す。逆正規化行列Mは、第1撮像素子11の第1フレーム画像の第1出力領域A11の切り出し位置である(x1,y1)、(x2,y2)、(x3,y3)により求められるものであり、設置情報取得部40から出力された撮像部10に対する第1撮像素子11の位置情報により定まる行列である。
【0038】
【数3】
【0039】
【数4】
【0040】
次に、出力領域取得部50は、動き情報取得部30から取得した動き情報に基づいて式(5)に示す動き補正行列Cを求める。
【0041】
【数5】
【0042】
次に、出力領域取得部50は、式(6)に示すように、第1撮像素子11の座標系の座標(x,y)に対して、動き補正行列Cを掛けることで、第1撮像素子11の補正後の座標(xc,yc)を得る。座標(x,y)から座標(xc,yc)までの、移動量及び移動方向は、第1出力領域A11に対する第2出力領域A12の移動量及び移動方向に相当する。このようにして、出力領域取得部50は、第1出力領域A11に対応する第2出力領域A12の位置情報を取得する。
【0043】
【数6】
【0044】
次に、出力領域取得部50は、式(7)により、第1撮像素子11の座標系における補正後の座標(xc,yc)を、正規座標系の座標(xnc,ync)に変換する。その後、式(8)により、正規座標系の座標(xn,yn)を第2撮像素子12の座標系の補正後の座標(x’c,y’c)を得る。座標(x’,y’)から座標(x’c,y’c)までの移動量及び移動方向は、第1出力領域A21に対する第2出力領域A22の移動量及び移動方向に相当する。このようにして、出力領域取得部50は、第1出力領域A21に対応する第2出力領域A22の位置情報を取得する。
【数7】
【0045】
【数8】
【0046】
以上に示した出力領域取得部50が行う演算処理をまとめると、参照画像の第1フレーム画像内の任意の座標(x’,y’)は、式(9)により、補正後の座標(x’c,y’c)に変換される。式(9)においてM’M−1CMM’−1をC’とおくと、C’は、参照撮像素子である第2撮像素子12の動き補正行列となる。
【0047】
【数9】
【0048】
次に、図7を用いて、画像処理装置1の動作を説明するとともに本実施形態に係る画像処理方法について説明する。
【0049】
まず、設置情報取得部40は、第1撮像素子11及び第2撮像素子12の設置情報を設置情報記憶部41から取得する(S11)。次に、動き情報取得部30は、第1入力部21から基準画像の第1フレーム画像及び第2フレーム画像から動き情報を取得する(S12)。続いて、出力領域取得部50は、参照画像内の任意の座標(x’,y’)を上記式(1)により、正規座標(xn,yn)に変換する(S13)。その後、出力領域取得部50は、正規座標(xn,yn)を上記式(3)により、基準画像内の座標(x,y)に変換する(S14)。ここで、基準画像内の座標(x,y)への変換に用いられる逆正規化行列Mは、撮像部10に対する第1撮像素子11の設置情報から定まる値である。
【0050】
次に、出力領域取得部50は、上記式(6)のように、動き情報取得部30により取得された動き情報から定まる動き補正行列Cにより、座標(x,y)を座標(xc,yc)に変換する(S15)。続いて、出力領域取得部50は、座標(x,y)に対する座標(xc,yc)の移動量から、第2出力領域A12の位置情報を取得する(S16)。次に、出力領域取得部50は、式(7)により、座標(xc,yc)を正規座標(xcn,ycn)に変換する(S17)。その後、出力領域取得部50は、式(8)により、正規座標(xcn,ycn)を参照画像内の座標(x’c,y’c)に変換する(S18)。続いて、出力領域取得部50は、座標(x’,y’)に対する座標(x’c,y’c)の移動量から、第2出力領域A22の位置情報を取得する(S19)。第2出力領域A12の位置情報を取得すると、画像処理装置は、図7の画像処理を終了する。
【0051】
次に、コンピュータを画像処理装置1として機能させるための画像処理プログラムを説明する。
【0052】
画像処理プログラムは、メインモジュール、入力モジュール、動き情報取得モジュール、設置情報取得モジュール、設置情報記憶モジュール、及び出力領域取得モジュールを備えている。メインモジュールは、画像処理を統括的に制御する部分である。入力モジュールは、第1撮像素子11及び第2撮像素子12から入力画像を取得するようにコンピュータを動作させる。動き情報取得モジュール、設置情報取得モジュール、設置情報記憶モジュール、及び出力領域取得モジュールを実行することにより実現される機能はそれぞれ、動き情報取得部30、設置情報取得部40、設置情報記憶部41、及び出力領域取得部50の機能と同様である。
【0053】
画像処理プログラムは、例えば、ROM等の記憶媒体または半導体メモリによって提供される。また、画像処理プログラムは、データ信号としてネットワークを介して提供されてもよい。
【0054】
以上説明したように、本実施形態によれば、基準撮像素子である第1撮像素子11の第2出力領域A12が、設置情報により定まる第1出力領域A11の位置情報及び動き情報に基づいて取得され、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子である第2撮像素子12の第2出力領域A22が、第1撮像素子11の設置情報、第2撮像素子12の設置情報、及び動き情報に基づいて取得される。ここで、第1撮像素子11の第2出力領域A12と、第2撮像素子12の第2出力領域A22が、第1撮像素子11及び第2撮像素子12において共通である動き情報に基づいて取得されるため、第1撮像素子11及び第2撮像素子12から得られた画像の間で整合性がとれた補正処理を行うことができる。また、立体画像を得るために用いられるマージンを手ぶれ補正で用いるマージンとして利用しているため、出力を狭くせずに手ぶれ補正が実現された出力画像を得ることができる。
【0055】
(第2実施形態)
次に、第2実施形態に係る画像処理装置について説明する。この画像処理装置は、第2出力領域A12、A22の位置情報が第2フレーム画像内に位置しない場合には、全ての撮像素子において第2出力領域の位置情報が第2フレーム画像内に位置するまで、第1出力領域A11、A21の位置情報及び第2出力領域A12、A22の位置情報の差分により求まる移動量を小さく調整する点で第1実施形態と異なる。
【0056】
図8は、本実施形態に係る画像処理装置1Aの機能構成を示すブロック図である。本実施形態に係る画像処理装置1Aは、出力領域取得部50に代えて出力領域取得部50Aを備えている。また、第1実施形態に係る画像処理装置1に加えて、判定部60を備えている。その他の構成は、第1実施形態と同じである。
【0057】
判定部60は、第1、第2撮像装置の第2フレームにおける第2出力領域A12、A22がそれぞれの第2フレーム画像内に位置するか否かを判定する機能を有する。判定部60は、式(6)により算出された第2出力領域A12の4つの頂点の座標(xc1,yc1)、(xc2,yc2)、(xc3,yc3)、(xc4,yc4)が第1撮像素子11の第2フレーム画像内にあるか否かを判定する。また判定部60は、式(9)により算出された第2出力領域A22の4つの頂点の座標(x’c1,y’c1)、(x’c2,y’c2)、(x’c3,y’c3)、(x’c4,y’c4)が第2撮像素子12の撮像した第2フレーム画像内にあるか否かを判定する。判定部60は、第2出力領域A12または第2出力領域A22の少なくとも何れか一方において、4つの頂点の座標の何れかが第2フレーム画像内にないと判定した場合、第2出力領域A12、A22が第2フレーム画像外にあること示す逸脱信号を出力領域取得部50Aに出力する。
【0058】
出力領域取得部50Aは、判定部60から逸脱信号を取得すると、全ての撮像素子において第2出力領域A12、A22の位置情報が第2フレーム画像内に位置するまで、第1出力領域A11、A21の位置情報及び第2出力領域A12、A22の位置情報の差分により求まる移動量が小さくなるように調整する。第2出力領域A12、A22の位置情報を調整するための再計算について図9を参照して以下に説明する。
【0059】
図9(a)は、第2出力領域A12が、第1撮像素子11の第2フレーム外に位置している例である。この例では、第2出力領域A12のうち、座標C(x3,y3)及び座標C(x4,y4)が第2フレーム外に位置している。この場合、出力領域取得部50Aは、画面内外比率rを求める。以下では、座標C(x3,y3)について画面内外比率rを求めているが、座標C(x4,y4)について画面内外比率rを求めても良い。
【0060】
画面内外比率rは、第1出力領域の座標と、該座標に対応する座標であって、第2フレーム外に位置する座標を直線で結んだ場合における、第2フレーム内の当該線分の長さに対する第2フレーム外の当該線分の長さの比である。出力領域取得部50Aは、画面内外比率rを求めた後、式(10)により補正行列Cを更新する。式(10)において、Iは単位行列である。その後、出力領域取得部50Aは、基準画像の座標系の座標(x,y)に対して、更新後の動き補正行列Cを掛けることで、第2出力領域A12の位置情報を取得する。また、出力領域取得部50Aは、更新した第2出力領域A12の位置情報に基づいて式(7)、(8)により第2出力領域A22の位置情報を取得する。
【0061】
【数10】
【0062】
その後、再び判定部60は、更新した補正行列Cにより決定された第2出力領域A12の4つの頂点が第1撮像素子11の第2フレーム画像内にあるか否かを判定し、全ての頂点が第2フレーム画像内に位置するまで、式(10)により補正行列を更新する。また、更新した補正行列に基づいて第2出力領域A12及び第2出力領域A22を取得する。判定部60において、すべての頂点の座標が第2フレーム画像内に位置すると判定されると、その時点における第2出力領域A12及び第2出力領域A22を出力する。
【0063】
図9(b)は、第2出力領域A22が、第1撮像素子12の第2フレーム外に位置している例である。この例では、第2出力領域A12のうち、座標C’(x’3,y’3)及び座標C’(x’4,y’4)が第2フレーム外に位置している。この場合、出力領域取得部50Aは、画面内外比率r’を求める。以下では、座標C’(x’4,y’4)について画面内外比率rを求めているが、座標C’(x’3,y’3)について画面内外比率rを求めても良い。
【0064】
出力領域取得部50Aは、画面内外比率r’を求めた後、式(11)により補正行列Cを更新する。その後、出力領域取得部50Aは、第1撮像素子11の座標系の座標(x,y)に対して、更新した動き補正行列Cを掛けることで、第2出力領域A12の位置情報を取得する。また、出力領域取得部50Aは、更新した第2出力領域A12の位置情報に基づいて式(7)、(8)により第2出力領域A22の位置情報を取得する。
【0065】
【数11】
【0066】
その後、再び判定部60は、更新した補正行列Cにより決定された第2出力領域A12の4つの頂点が第1撮像素子11の第2フレーム画像内にあるか否かを判定し、全ての頂点が第2フレーム画像内に位置するまで、式(11)により補正行列を更新する。また、更新した補正行列に基づいて第2出力領域A12及び第2出力領域A22を取得する。判定部60において、すべての頂点の座標が第2フレーム画像内に位置すると判定されると、その時点における第2出力領域A12及び第2出力領域A22を出力する。
【0067】
次に、図10を用いて、画像処理装置1Aの動作を説明するとともに本実施形態に係る画像処理方法について説明する。
【0068】
図10に示すステップS21〜26、S28〜30は、それぞれ図7に示すステップS11〜S19と同じ動作であるため、説明を省略する。S26において、基準画像の第2出力領域A12を取得すると、出力領域取得部50Aは、基準画像の第2出力領域A12位置が基準画像内である否かについて判定する(S27)。出力領域取得部50Aは、基準画像の第2出力領域A12位置が基準画像内にないと判定した場合には、式(10)により、補正行列Cを再計算した後に(S32)、ステップS25の処理に移行する。他方、基準画像の第2出力領域A12位置が基準画像内にあると判定した場合には、ステップS28の処理に移行する。
【0069】
また、出力領域取得部50Aは、S30において、参照画像の第2出力領域A22を取得すると、参照画像の第2出力領域A22位置が参照画像内である否かについて判定する(S31)。出力領域取得部50Aは、参照画像の第2出力領域A22位置が参照画像内にないと判定した場合には、式(11)により、補正行列Cを再計算した後に(S32)、ステップS25の処理に移行する。他方、参照画像の第2出力領域A22位置が参照画像内にあると判定した場合には、図11に示す画像処理を終了する。
【0070】
以上説明したように、本実施形態によれば、基準撮像素子である第1撮像素子11の第2出力領域A12が、設置情報により定まる第1出力領域A11の位置情報及び動き情報に基づいて取得され、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子である第2撮像素子12の第2出力領域A22が、第1撮像素子11の設置情報、第2撮像素子12の設置情報、及び動き情報に基づいて取得される。ここで、第1撮像素子11の第2出力領域A12と、第2撮像素子12の第2出力領域A22が、複数の撮像素子において共通の動き情報に基づいて取得されるため、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる。
【0071】
また、本実施形態の画像処理装置1Aは、第2出力領域A11,A12の位置情報が第2フレーム画像内に位置するか否かを全ての撮像素子について判定する判定部60を備え、出力領域取得部50Aは、第2出力領域A11,A12の位置情報が第2フレーム画像内に位置しない場合には、全ての撮像素子において第2出力領域の位置情報が第2フレーム画像内に位置するまで、第1出力領域の位置情報及び第2出力領域の位置情報の差分により求まる移動量を小さく調整する。このため、第2出力領域A11,A12が、第2フレーム画像内に位置しないことにより画像処理が行えなくなることを防止することができる。
【0072】
(第3実施形態)
次に、第3実施形態に係る画像処理装置について説明する。本実施形態に係る画像処理装置は、複数の撮像素子において動き情報を取得し、各撮像素子で得られた動き情報を加重平均した動き情報を用いて第2出力領域の位置情報を取得する点で第1実施形態と異なる。
【0073】
図11は、本実施形態に係る画像処理装置1Bの機能構成を示すブロック図である。本実施形態に係る画像処理装置1Bは、出力領域取得部50に代えて出力領域取得部50Bを備えている。また、本実施形態に係る画像処理装置1Bでは、第2入力部22が、第2撮像素子12から取得した参照画像から動き情報取得部30に出力し、動き情報取得部30が、第1入力部21から取得した基準画像及び第2入力部22から取得した参照画像の1フレーム画像及び第2フレーム画像間における撮像部10の動き情報を取得する。本実施形態の動き情報取得部30は、基準画像から得た動き情報と、参照画像から得た動き情報とを出力領域取得部50Bに出力する。
【0074】
出力領域取得部50Bは、第2フレーム画像内の領域であって第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を撮像素子ごとに取得する。以下に、第1撮像素子11及び第2撮像素子12の第2出力領域A12,A22の位置情報を取得するための演算処理について説明する。
【0075】
図12は、第1撮像素子11及び第2撮像素子12の第2出力領域A12、A22の位置情報を取得するための演算処理の手順を示している。図12に沿って出力領域取得部50Bにおける演算処理について説明する。
【0076】
まず、出力領域取得部50Bは、動き情報取得部30から出力される基準画像に基づく動き情報を取得し、式(5)と同様の処理により基準動き補正行列Corgを取得する。
【0077】
次に、基準画像内の任意の座標(x,y)に正規化行列M−1を掛けることで、座標(x,y)を正規座標系の座標(xn,yn)に変換する。次に、出力領域取得部50Bは、逆正規化行列M’を掛けることで、座標(xn,yn)を参照画像の座標系の座標(x’,y’)に変換する。
【0078】
また、出力領域取得部50Bは、動き情報取得部30から出力される参照画像に基づく動き情報を取得し、式(5)と同様の処理により参照動き補正行列C’orgを取得する。次に、出力領域取得部50Bは、式(6)に示すように、座標(x’,y’)に対して、参照動き補正行列C’orgを掛けることで、補正後の座標(x’c,y’c)を得る。座標(x’,y’)から座標(x’c,y’c)までの、移動量及び移動方向は、第1出力領域A21に対する第2出力領域A22の移動量及び移動方向に相当する。このようにして、出力領域取得部50Bは、第2出力領域A22の位置情報を取得する。
【0079】
その後、出力領域取得部50Bは、座標(x’c,y’c)に正規化行列M’−1を掛けることで、座標(x’c,y’c)を正規座標系の座標(x’nc,y’nc)に変換する。次に、出力領域取得部50Bは、逆正規化行列Mを掛けることで、座標(x’nc,y’nc)を基準画像の座標系の座標(xc,yc)に変換する。
【0080】
基準画像の第1出力領域A11を第2出力領域A12へ移動させるための動き補正行列を変換後動き補正行列C’convとおくと、ここまでの出力領域取得部50Bが行う演算処理は、式(12)のように表せる。
【0081】
【数12】
【0082】
ここで、出力領域取得部50Bは、式(13)のように、基準画像から得た基準動き補正行列Corgと、変換後動き補正行列C’convとの加重平均をとることで、平均動き補正行列Cavrを得る。式(13)において、worg、wconvは、それぞれ第1撮像素子11、第2撮像素子12に対する重みであり、第1撮像素子11、第2撮像素子12の信頼度によって設定される値である。例えば、夜間の撮影において、第1撮像素子11が赤外線カメラであり、第2撮像素子12が一般的な可視光カメラである場合には、暗所での撮影に優れる第1撮像素子11の重みを高く設定するようにしても良い。
【0083】
【数13】
【0084】
その後、出力領域取得部50Bは、式(13)で得た平均動き補正行列Cavrを用いて、第1実施形態で示す式(1)〜(4)、(6)〜(9)の演算を行うことで、基準画像の第2出力領域A12及び参照画像の第2出力領域A22の位置情報を取得する。また、出力領域取得部50Bは、第2実施形態で示す式(10)、(11)の演算を行うことで、基準画像及び参照画像の第2フレーム画像外に第2出力領域A12、A22が設定されることを防止するようにしても良い。
【0085】
次に、図13、14を用いて、画像処理装置1Bの動作を説明するとともに本実施形態に係る画像処理方法について説明する。
【0086】
図13に示すステップS41、S42、S44、S45、S47〜S50は、それぞれ図7に示すステップS11〜S14、S16〜S19と同じ動作であるため、説明を省略する。出力領域取得部50Bは、S26において、動き情報を取得すると、平均動き補正行列Cavr取得処理を行う(S43)。平均動き補正行列Cavr取得処理の手順を図14に示す。
【0087】
平均動き補正行列Cavr取得処理では、出力領域取得部50Bは、基準画像内の任意の座標(x,y)を正規座標に変換する(S61)。次に、出力領域取得部50は、正規座標を、参照画像内の座標(x’,y’)に変換する(S62)。ここで、基準画像内の座標(x,y)への変換に用いられる逆正規化行列M’は、第2撮像素子12の設置情報から定まる値である。
【0088】
次に、出力領域取得部50Bは、動き情報取得部30により取得された動き情報から定まる動き補正行列C’convにより、座標(x’,y’)を座標(x’c,y’c)に変換する(S63)。次に、出力領域取得部50Bは、座標(x’c,y’c)を正規座標に変換する(S64)。その後、出力領域取得部50Bは、正規座標を基準画像内の座標(xc,yc)に変換する(S65)。式(12)に示すように、上記ステップS61〜S65までの一連の処理により、変換後動き補正行列Cconvを得る。続いて、出力領域取得部50Bは、式(13)により、平均動き補正行列Cavrを取得する(S66)。
【0089】
その後、処理は図13に戻る。出力領域取得部50Bは、ステップS46において、平均動き補正行列Cavrにより座標(x,y)を座標(xc,yc)に変換する(S46)。
【0090】
以上説明したように、本実施形態においても、基準撮像素子である第1撮像素子11の第2出力領域A12が、設置情報により定まる第1出力領域A11の位置情報及び動き情報に基づいて取得され、複数の撮像素子のうち基準撮像素子とは異なる他の撮像素子である第2撮像素子12の第2出力領域A22が、第1撮像素子11の設置情報、第2撮像素子12の設置情報、及び動き情報に基づいて取得される。ここで、第1撮像素子11の第2出力領域A12と、第2撮像素子12の第2出力領域A22が、複数の撮像素子において共通の動き情報に基づいて取得されるため、複数の撮像素子から得られた画像の間で整合性がとれた補正処理を行うことができる。
【0091】
また、本実施形態の画像処理装置1Bは、第1撮像素子11から得た動き情報と第2撮像素子から得た動き情報の加重平均から平均動き補正行列Cavrを取得する。この場合、平均動き補正行列Cavrで示される動き情報が複数の基準撮像素子によって取得された動き情報を考慮したものであるためであるため、精度の良い動き情報を取得することができる。
【0092】
(変形例)
上記実施形態では、出力領域取得部が、複数の撮像素子を備えることによって必要となる出力領域以外の領域を、手ぶれ補正を行うための領域として用いている。ここで、出力領域以外の領域を、手ぶれ補正とは異なる他の画像処理で用いても良い。例えば、複数の撮像素子を備えることによって必要となる出力領域以外の領域を、撮像部10や対象物Tの動きによって生じる歪みを補正する際に用いる領域として利用してもよい。設置位置がずれた場合には、各撮像素子で歪み補正係数が異なるため、例えば基準画像での動きベクトルを基に各撮像素子での歪み補正係数を計算してもよい。
【0093】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0094】
例えば、上記実施形態では、第1撮像素子11及び第2撮像素子12において撮像された1フレーム画像及び第2フレーム画像から動き情報を取得しているが、ジャイロセンサ等の外部ハードウェアにより動き情報を取得しても良い。
【0095】
上記実施形態では、第1撮像素子11を基準撮像素子とし、第2撮像素子12を参照撮像素子としたが、いずれの撮像素子を前記基準撮像素子とするかは、撮像条件に基づいて選択されてもよい。例えば、第1撮像素子11が赤外線カメラであり、第2撮像素子12が一般的な可視光カメラである場合には、夜間の撮影では、第1撮像素子11を基準撮像素子と選択し、明るい場所での撮影では、第2撮像素子12を基準撮像素子と選択する素子選択部を備えてもよい。これにより、特性の異なる撮像素子のうち、手ぶれ補正に適した撮像素子の情報を用いて各撮像素子の画像を補正することができる。
【符号の説明】
【0096】
1,1A,1B…画像処理装置、10…撮像部、11…第1撮像素子、12…第2撮像素子、21…第1入力部、22…第2入力部、30…情報取得部、40…設置情報取得部、41…設置情報記憶部、50,50A,50B…出力領域取得部、60…判定部。
【特許請求の範囲】
【請求項1】
第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理する画像処理装置であって、
前記撮像素子の前記撮像装置に対する設置状態を示す設置情報を、前記撮像素子ごとに取得する設置情報取得部と、
前記第1フレーム画像及び前記第2フレーム画像間における前記撮像装置の動き情報を取得する動き情報取得部と、
前記第2フレーム画像内の領域であって前記第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を前記撮像素子ごとに取得する出力領域取得部と、
を備え、
前記出力領域取得部は、
複数の前記撮像素子のうち基準となる基準撮像素子の前記第2出力領域を、前記設置情報により定まる前記第1出力領域の位置情報及び前記動き情報に基づいて取得し、
複数の前記撮像素子のうち前記基準撮像素子とは異なる他の前記撮像素子の前記第2出力領域を、前記基準撮像素子の設置情報、他の前記撮像素子の設置情報、及び前記動き情報に基づいて取得する
ことを特徴とする画像処理装置。
【請求項2】
前記第2出力領域の位置情報が前記第2フレーム画像内に位置するか否かを全ての撮像素子について判定する判定部を備え、
前記出力領域取得部は、前記第2出力領域の位置情報が前記第2フレーム画像内に位置しない場合には、全ての撮像素子において前記第2出力領域の位置情報が前記第2フレーム画像内に位置するまで、前記第1出力領域の位置情報及び前記第2出力領域の位置情報の差分により求まる移動量を小さく調整する
請求項1に記載の画像処理装置。
【請求項3】
前記動き情報取得部は、前記基準撮像素子において撮像された前記第1フレーム画像及び前記第2フレーム画像から動き情報を取得する
請求項1又は2に記載の画像処理装置。
【請求項4】
前記動き情報取得部は、ジャイロセンサにより動き情報を取得する
請求項1又は2に記載の画像処理装置。
【請求項5】
前記動き情報取得部は、複数の前記撮像素子において撮像された前記第1フレーム画像及び前記第2フレーム画像から得た動き情報の加重平均を動き情報として取得する
請求項1又は2に記載の画像処理装置。
【請求項6】
前記基準撮像素子は、撮像条件に基づいて複数の前記撮像素子の中から選択される
請求項1〜5の何れか一項に記載の画像処理装置。
【請求項7】
前記出力領域取得部は、複数の撮像素子を備えることによって必要となる出力領域以外の領域を、動きによって補正する際に用いる領域として利用する
請求項1〜6の何れか一項に記載の画像処理装置。
【請求項8】
第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理する画像処理方法であって、
前記撮像素子の前記撮像装置に対する設置状態を示す設置情報を、前記撮像素子ごとに取得する設置情報取得ステップと、
前記第1フレーム画像及び前記第2フレーム画像間における前記撮像装置の動き情報を取得する動き情報取得ステップと、
前記第2フレーム画像内の領域であって前記第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を前記撮像素子ごとに取得する出力領域取得ステップと、
を含み、
前記出力領域取得ステップは、
複数の前記撮像素子のうち基準となる基準撮像素子の前記第2出力領域を、前記設置情報により定まる前記第1出力領域の位置情報及び前記動き情報に基づいて取得し、
複数の前記撮像素子のうち前記基準撮像素子とは異なる他の前記撮像素子の前記第2出力領域を、前記基準撮像素子の設置情報、他の前記撮像素子の設置情報、及び前記動き情報に基づいて取得する
ことを特徴とする画像処理方法。
【請求項9】
第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理するようにコンピュータを動作させる画像処理プログラムであって、
前記撮像素子の前記撮像装置に対する設置状態を示す設置情報を、前記撮像素子ごとに取得する設置情報取得部、
前記第1フレーム画像及び前記第2フレーム画像間における前記撮像装置の動き情報を取得する動き情報取得部、及び
前記第2フレーム画像内の領域であって前記第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を前記撮像素子ごとに取得する出力領域取得部
として前記コンピュータを機能させ、
前記出力領域取得部は、
複数の前記撮像素子のうち基準となる基準撮像素子の前記第2出力領域を、前記設置情報により定まる前記第1出力領域の位置情報及び前記動き情報に基づいて取得し、
複数の前記撮像素子のうち前記基準撮像素子とは異なる他の前記撮像素子の前記第2出力領域を、前記基準撮像素子の設置情報、他の前記撮像素子の設置情報、及び前記動き情報に基づいて取得する
ことを特徴とする画像処理プログラム。
【請求項10】
第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理するようにコンピュータを動作させる画像処理プログラムが記憶された記憶媒体であって、
前記プログラムは、
前記撮像素子の前記撮像装置に対する設置状態を示す設置情報を、前記撮像素子ごとに取得する設置情報取得部、
前記第1フレーム画像及び前記第2フレーム画像間における前記撮像装置の動き情報を取得する動き情報取得部、及び
前記第2フレーム画像内の領域であって前記第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を前記撮像素子ごとに取得する出力領域取得部
として前記コンピュータを機能させ、
前記出力領域取得部は、
複数の前記撮像素子のうち基準となる基準撮像素子の前記第2出力領域を、前記設置情報により定まる前記第1出力領域の位置情報及び前記動き情報に基づいて取得し、
複数の前記撮像素子のうち前記基準撮像素子とは異なる他の前記撮像素子の前記第2出力領域を、前記基準撮像素子の設置情報、他の前記撮像素子の設置情報、及び前記動き情報に基づいて取得する
ことを特徴とする前記画像処理プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項1】
第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理する画像処理装置であって、
前記撮像素子の前記撮像装置に対する設置状態を示す設置情報を、前記撮像素子ごとに取得する設置情報取得部と、
前記第1フレーム画像及び前記第2フレーム画像間における前記撮像装置の動き情報を取得する動き情報取得部と、
前記第2フレーム画像内の領域であって前記第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を前記撮像素子ごとに取得する出力領域取得部と、
を備え、
前記出力領域取得部は、
複数の前記撮像素子のうち基準となる基準撮像素子の前記第2出力領域を、前記設置情報により定まる前記第1出力領域の位置情報及び前記動き情報に基づいて取得し、
複数の前記撮像素子のうち前記基準撮像素子とは異なる他の前記撮像素子の前記第2出力領域を、前記基準撮像素子の設置情報、他の前記撮像素子の設置情報、及び前記動き情報に基づいて取得する
ことを特徴とする画像処理装置。
【請求項2】
前記第2出力領域の位置情報が前記第2フレーム画像内に位置するか否かを全ての撮像素子について判定する判定部を備え、
前記出力領域取得部は、前記第2出力領域の位置情報が前記第2フレーム画像内に位置しない場合には、全ての撮像素子において前記第2出力領域の位置情報が前記第2フレーム画像内に位置するまで、前記第1出力領域の位置情報及び前記第2出力領域の位置情報の差分により求まる移動量を小さく調整する
請求項1に記載の画像処理装置。
【請求項3】
前記動き情報取得部は、前記基準撮像素子において撮像された前記第1フレーム画像及び前記第2フレーム画像から動き情報を取得する
請求項1又は2に記載の画像処理装置。
【請求項4】
前記動き情報取得部は、ジャイロセンサにより動き情報を取得する
請求項1又は2に記載の画像処理装置。
【請求項5】
前記動き情報取得部は、複数の前記撮像素子において撮像された前記第1フレーム画像及び前記第2フレーム画像から得た動き情報の加重平均を動き情報として取得する
請求項1又は2に記載の画像処理装置。
【請求項6】
前記基準撮像素子は、撮像条件に基づいて複数の前記撮像素子の中から選択される
請求項1〜5の何れか一項に記載の画像処理装置。
【請求項7】
前記出力領域取得部は、複数の撮像素子を備えることによって必要となる出力領域以外の領域を、動きによって補正する際に用いる領域として利用する
請求項1〜6の何れか一項に記載の画像処理装置。
【請求項8】
第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理する画像処理方法であって、
前記撮像素子の前記撮像装置に対する設置状態を示す設置情報を、前記撮像素子ごとに取得する設置情報取得ステップと、
前記第1フレーム画像及び前記第2フレーム画像間における前記撮像装置の動き情報を取得する動き情報取得ステップと、
前記第2フレーム画像内の領域であって前記第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を前記撮像素子ごとに取得する出力領域取得ステップと、
を含み、
前記出力領域取得ステップは、
複数の前記撮像素子のうち基準となる基準撮像素子の前記第2出力領域を、前記設置情報により定まる前記第1出力領域の位置情報及び前記動き情報に基づいて取得し、
複数の前記撮像素子のうち前記基準撮像素子とは異なる他の前記撮像素子の前記第2出力領域を、前記基準撮像素子の設置情報、他の前記撮像素子の設置情報、及び前記動き情報に基づいて取得する
ことを特徴とする画像処理方法。
【請求項9】
第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理するようにコンピュータを動作させる画像処理プログラムであって、
前記撮像素子の前記撮像装置に対する設置状態を示す設置情報を、前記撮像素子ごとに取得する設置情報取得部、
前記第1フレーム画像及び前記第2フレーム画像間における前記撮像装置の動き情報を取得する動き情報取得部、及び
前記第2フレーム画像内の領域であって前記第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を前記撮像素子ごとに取得する出力領域取得部
として前記コンピュータを機能させ、
前記出力領域取得部は、
複数の前記撮像素子のうち基準となる基準撮像素子の前記第2出力領域を、前記設置情報により定まる前記第1出力領域の位置情報及び前記動き情報に基づいて取得し、
複数の前記撮像素子のうち前記基準撮像素子とは異なる他の前記撮像素子の前記第2出力領域を、前記基準撮像素子の設置情報、他の前記撮像素子の設置情報、及び前記動き情報に基づいて取得する
ことを特徴とする画像処理プログラム。
【請求項10】
第1フレーム画像及び第2フレーム画像を連続して順次撮像する撮像素子を複数備える撮像装置によって撮像された複数のフレーム画像を画像処理するようにコンピュータを動作させる画像処理プログラムが記憶された記憶媒体であって、
前記プログラムは、
前記撮像素子の前記撮像装置に対する設置状態を示す設置情報を、前記撮像素子ごとに取得する設置情報取得部、
前記第1フレーム画像及び前記第2フレーム画像間における前記撮像装置の動き情報を取得する動き情報取得部、及び
前記第2フレーム画像内の領域であって前記第1フレーム画像内の第1出力領域に対応する第2出力領域の位置情報を前記撮像素子ごとに取得する出力領域取得部
として前記コンピュータを機能させ、
前記出力領域取得部は、
複数の前記撮像素子のうち基準となる基準撮像素子の前記第2出力領域を、前記設置情報により定まる前記第1出力領域の位置情報及び前記動き情報に基づいて取得し、
複数の前記撮像素子のうち前記基準撮像素子とは異なる他の前記撮像素子の前記第2出力領域を、前記基準撮像素子の設置情報、他の前記撮像素子の設置情報、及び前記動き情報に基づいて取得する
ことを特徴とする前記画像処理プログラムを記録したコンピュータ読取可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−81091(P2013−81091A)
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願番号】特願2011−220269(P2011−220269)
【出願日】平成23年10月4日(2011.10.4)
【出願人】(505277358)株式会社モルフォ (18)
【Fターム(参考)】
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願日】平成23年10月4日(2011.10.4)
【出願人】(505277358)株式会社モルフォ (18)
【Fターム(参考)】
[ Back to top ]