(57)【要約】      （修正有）【課題】メカニカルシャッタを用いることなく、高精度にローリングシャッタ歪みを補正する画像処理装置およびその方法、並びに、撮像装置を提供する。【解決手段】RS（ローリングシャッター方式）画像取得部501とGS（グローバルシャッター方式）画像取得部502は、一部が互いに異なる時刻に露光される第一の画素、および、略同時に露光される第二の画素を有する撮像部から画像データを取得する。位置ずれ算出部503は、第一の画素を用いて撮像された第一の画像データが示す画像と、第二の画素を用いて撮像された第二の画像データが示す画像の間の位置ずれを示す位置ずれデータを算出する。位置合わせ部504は、位置ずれデータに基づき、第一の画像データの画素位置を第二の画像データの画素位置に合わせる。【選択図】図５
2017059998.tif 000002
【特許請求の範囲】
【請求項１】
一部が互いに異なる時刻に露光される第一の画素、および、略同時に露光される第二の画素を有する撮像部から画像データを取得する取得手段と、
前記第一の画素を用いて撮像された第一の画像データが示す画像と、前記第二の画素を用いて撮像された第二の画像データが示す画像の間の位置ずれを示す位置ずれデータを算出する第一の算出手段と、
前記位置ずれデータに基づき、前記第一の画像データの画素位置を前記第二の画像データの画素位置に合わせる位置合わせ手段とを有する画像処理装置。
【請求項２】
前記第一の画素はローリングシャッタ方式の画像であり、前記第二の画素はグローバルシャッタ方式の画素である請求項1に記載された画像処理装置。
【請求項３】
前記第一の算出手段は、
前記第一の画像データから、前記第二の画像データと同じ成分をもつ第三の画像データを生成する手段と、
前記第二および第三の画像データの間の差分を示す差分データを生成する手段と、
前記第二の画像データの微分データを生成する手段と、
前記差分データ、前記微分データおよび前記位置ずれデータを用いる反復演算によって前記位置ずれデータを更新する手段とを有する請求項1または請求項2に記載された画像処理装置。
【請求項４】
前記第一の画素は異なる分光特性をもつ複数の画素によって構成され、前記第二の画素は分光特性をもたない単一の画素である請求項3に記載された画像処理装置。
【請求項５】
前記第一の算出手段は、
前記第一および第二の画像データの間の差分を示す差分データを生成する手段と、
前記第二の画像データの微分データを生成する手段と、
前記差分データ、前記微分データおよび前記位置ずれデータを用いる反復演算によって前記位置ずれデータを更新する手段とを有する請求項1または請求項2に記載された画像処理装置。
【請求項６】
前記第一の画素は異なる分光特性をもつ複数の画素によって構成され、前記第二の画素は前記複数の画素の一部の画素と略同じ分光特性をもつ単一の画素である請求項5に記載された画像処理装置。
【請求項７】
前記第一の算出手段は、
前記位置ずれデータの初期値を設定する手段と、
前記反復演算の反復回数が所定回数に達すると前記位置ずれデータを出力する手段とを有する請求項3から請求項6の何れか一項に記載された画像処理装置。
【請求項８】
前記撮像部による複数の撮影時における前記撮像部の姿勢を、前記複数の撮影時に撮像された複数の前記第二の画像データに基づき推定する推定手段を有する請求項1から請求項7の何れか一項に記載された画像処理装置。
【請求項９】
前記推定された姿勢に基づき、合成すべき画像の画素位置と前記複数の第二の画像データの画素位置の対応を算出する第二の算出手段と、
前記画素位置の対応に基づき、前記位置合わせ手段が出力する複数の画像データを合成した画像を生成する合成手段とを有する請求項8に記載された画像処理装置。
【請求項１０】
前記撮像部による複数の撮影時における撮影シーンの距離情報を、前記複数の撮影時に撮像された複数の前記第二の画像データに基づき推定する推定手段を有する請求項1から請求項7の何れか一項に記載された画像処理装置。
【請求項１１】
前記推定された距離情報に基づき、合成すべき画像の画素位置と前記複数の第二の画像データの画素位置の対応を算出する第二の算出手段と、
前記画素位置の対応に基づき、前記位置合わせ手段が出力する複数の画像データを合成した画像を生成する合成手段とを有する請求項10に記載された画像処理装置。
【請求項１２】
前記撮像部による複数の撮影時における前記撮像部の姿勢を、前記複数の撮影時に撮像された複数の前記第二の画像データに基づき推定する第一の推定手段と、
前記複数の撮影時における撮影シーンの距離情報を、前記複数の第二の画像データに基づき推定する第二の推定手段とを有する請求項1から請求項7の何れか一項に記載された画像処理装置。
【請求項１３】
前記推定された姿勢および距離情報に基づき、合成すべき画像の画素位置と前記複数の第二の画像データの画素位置の対応を算出する第二の算出手段と、
前記画素位置の対応に基づき、前記位置合わせ手段が出力する複数の画像データを合成した画像を生成する合成手段とを有する請求項12に記載された画像処理装置。
【請求項１４】
一部が互いに異なる時刻に露光される第一の画素、および、略同時に露光される第二の画素を有する撮像部と、
請求項1から請求項13の何れか一項に記載された画像処理装置とを有する撮像装置。
【請求項１５】
一部が互いに異なる時刻に露光される第一の画素、および、略同時に露光される第二の画素を有する撮像部から画像データを取得し、
前記第一の画素を用いて撮像された第一の画像データが示す画像と、前記第二の画素を用いて撮像された第二の画像データが示す画像の間の位置ずれを示す位置ずれデータを算出し、
前記位置ずれデータに基づき、前記第一の画像データの画素位置を前記第二の画像データの画素位置に合わせる画像処理方法。
【請求項１６】
コンピュータを請求項1から請求項13の何れか一項に記載された画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ローリングシャッタ歪みを補正する画像処理に関する。
【背景技術】
【０００２】
近年、ディジタルカメラやビデオカメラの撮像デバイスとしてCMOSイメージセンサが広く用いられるようになった。CMOSイメージセンサは、CCDイメージセンサに対して、低消費電力、低コストなどの優れた特徴を有する。
【０００３】
CMOSイメージセンサは、画素値の読み出しをもって露光が完了するため、画素ごとに露光タイミングに時間差がある。CMOSイメージセンサは、ラインごとに画素値を同時に読み出す機構をもち、時間の経過と伴に読出ラインを走査して像全体の画像を取得するライン露光順次読出方式（以下、ローリングシャッタ方式）を採用する。そのため、撮像中に手振れなどで被写体像が移動すると、取得される画像に歪が発生し、この現象を「ローリングシャッタ歪み」と呼ぶ。
【０００４】
ローリングシャッタ歪みを伴わないCMOSイメージセンサとして、各画素の電荷を一時的に退避させて保持する構造により全画素同時露光一括読出方式（以下、グローバルシャッタ方式）を採用するものがある。しかし、そのようなCMOSイメージセンサには、SN比やダイナミックレンジなどの性能面で問題がある。
【０００５】
ローリングシャッタ歪みを補正する方法として、メカニカルシャッタを用いて撮影した画像に、ローリングシャッタ方式の電子シャッタで撮影した画像を重ね合わせて歪みを補正する方法が提案されている（特許文献1）。また、間引き読み出しによる高速シャッタで撮影した画像に、通常のローリングシャッタ方式の電子シャッタで撮影した画像を重ね合わせて歪みを補正する方法が提案されている（特許文献2）。
【０００６】
しかし、特許文献1の方法は、メカニカルシャッタを必要とし、高いフレームレートの動画の撮影には不向きである。特許文献2の方法は、間引き読み出しにより擬似的に高速シャッタを実現するため、補正精度が低いという問題がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2008-016885公報
【特許文献２】特開2011-087203公報
【特許文献３】特開2011-124917公報
【非特許文献】
【０００８】
【非特許文献１】Richard Szeliski「Computer Vision: Algorithms and Applications」Springer、NewYork、2010年
【非特許文献２】Berthold K.P. Horn、Brian G. Rhunck「Determining Optical Flow」Artificial Intelligence Lab.、MIT、17:185-203、1981年
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、メカニカルシャッタを用いることなく、高精度にローリングシャッタ歪みを補正することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１１】
本発明にかかる画像処理は、一部が互いに異なる時刻に露光される第一の画素、および、略同時に露光される第二の画素を有する撮像部から画像データを取得し、前記第一の画素を用いて撮像された第一の画像データが示す画像と、前記第二の画素を用いて撮像された第二の画像データが示す画像の間の位置ずれを示す位置ずれデータを算出し、前記位置ずれデータに基づき、前記第一の画像データの画素位置を前記第二の画像データの画素位置に合わせる。
【発明の効果】
【００１２】
本発明によれば、メカニカルシャッタを用いることなく、高精度にローリングシャッタ歪みを補正することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例の撮像装置の構成例を示すブロック図。
【図２】撮像部の構成例を示すブロック図。
【図３】撮像デバイスの画素配置例を説明する図。
【図４】制御部による撮像時の撮像デバイスの制御例を説明する図。
【図５】画像処理部の構成例を示すブロック図。
【図６】画像処理部の処理を説明するフローチャート。
【図７】位置ずれ算出部の構成例を示すブロック図。
【図８】位置ずれ算出部の処理を説明するフローチャート。
【図９】実施例2の画像処理部の構成例を示すブロック図。
【図１０】実施例2の画像処理部の処理を説明するフローチャート。
【図１１】姿勢推定部の構成例を示すブロック図。
【図１２】姿勢推定部の処理を説明するフローチャート。
【図１３】距離推定部の構成例を示すブロック図。
【図１４】距離推定部の処理を説明するフローチャート。
【発明を実施するための形態】
【００１４】
以下、本発明にかかる実施例の撮像装置、画像処理装置および画像処理方法を図面を参照して詳細に説明する。なお、実施例は特許請求の範囲にかかる本発明を限定するものではなく、また、実施例において説明する構成の組み合わせのすべてが本発明の解決手段に必須とは限らない。
【実施例１】
【００１５】
［装置の構成］
図1のブロック図により実施例の撮像装置の構成例を示す。CPU101は、RAM103をワークメモリとして、ROM102などに格納されたプログラムを実行し、システムバス110を介して撮像装置の各構成を制御する。
【００１６】
操作部104は、ボタンやモードダイヤルなどに相当する。CPU101は、操作部104を介して、ユ  ーザ指示を入力する。表示制御部105は、CPU101の制御に従いキャラクタジェネレータ109が生成した文字列やグラフィックス、撮像部113が撮像した画像、記憶メディア108に格納された画像などを表示部106に表示する。表示部106は、例えば液晶ディスプレイであり、タッチスクリーン機能を備える場合は操作部104の一部として機能する。
【００１７】
詳細は後述するが、撮像部113は、光学系によって結像された像を撮像デバイスにより画像データに変換する。ディジタル信号処理部(DSP)111は、撮像部113から出力されるRAWデータにデモザイキングや欠陥画素の補間を含む現像処理、輝度値の調整、信号値から例えばsRGB値への色変換など、各種画像処理を施す。
【００１８】
画像処理部114は、DSP111から出力される画像データにローリングシャッタ歪みを補正する画像処理を施し、処理後の画像データを表示制御部105やメディアインタフェイス107を介して記憶メディア108などに出力する。
【００１９】
メディアインタフェイス107は、各種メモリカードを接続するインタフェイスやUSBインタフェイスであり、メディアインタフェイス107を介して画像データの入出力が可能である。なお、メディアインタフェイス107に一部として、Bluethooth（登録商標）や無線LAN用のネットワークインタフェイスを備えてもよい。
【００２０】
［撮像部］
図2のブロック図により撮像部113の構成例を示す。被写体からの光は、フォーカスレンズ群201、ズームレンズ群202、絞り部203、赤外線カットフィルタ204、ローパスフィルタ205、カラーフィルタ206を通過して、撮像デバイス207上に結像する。
【００２１】
図2に示す光学系の構成は、説明のために単純化した例であり、撮像デバイス207上に被写体の像を結像させる機能を有すればどのような構成でも構わない。また、カラー画像を取得する構成について説明するが、取得する画像は白黒画像や四色以上の画像、画素ごと毎に露出が異なる画像でも構わない。さらに、オートフォーカスなどの機構を持たせても構わない。
【００２２】
撮像デバイス207には撮像素子が二次元の格子状に配列され、各撮像素子は結像された像をアナログの電気信号に変換する。アナログ-ディジタル変換部(ADC)208は、撮像デバイス207が出力する電気信号が示す像をディジタル信号に変換する。バッファ209は、ADC 208が出力するディジタル信号（RAWデータ）を一時的に格納し、CPU101の要求に応じて、RAWデータをシステムバス110を介してRAM103に転送する。制御部211は、詳細は後述するが、システムバス110を介したCPU101の指示に従い、撮像デバイス207を制御して撮像を実施する。
【００２３】
撮像デバイス207およびADC 208はCMOSイメージセンサなどのイメージセンサ部に相当する。撮像デバイス207には、詳細は後述するが、ラインごとに順次露光を行い電気信号を順次読み出すローリングシャッタ方式の動作を行う撮像素子と、全ラインで略同時露光を行い電気信号を順次読み出すグローバルシャッタ方式の動作を行う撮像素子が混在する。このような構成を有するイメージセンサとしては、特許文献3に記載されたものなどがある。以下、ローリングシャッタ方式の動作を行う撮像素子を「RS画素」、グローバルシャッタ方式の動作を行う撮像素子を「GS画素」と呼ぶ。
【００２４】
●撮像素子の配置
撮像デバイス207は、三つのRS画素と一つのGS画素を有する2×2画素の単位構造の繰り返を有する。三つのRS画素はそれぞれ、その前面に配置されたRGB三色の何れかを透過するカラーフィルタ206のセルにより異なる色情報を取得する。言い替えれば、RS画素は異なる分光特性をもつ複数の画素によって構成される。一方、GS画素の前面には、特定の波長域を透過するフィルタは設置されず、GS画素は、分光特性をもたず明るさの情報のみを取得する単一の画素である。
【００２５】
図3により撮像デバイス207の画素配置例を説明する。図3において、RRS、GRS、BRSはそれぞれ、RGB各色の像を光電変換するRS画素を表す。YGSは、像の明るさを光電変換するGS画素を表す。図3には、単位構造を縦横それぞれ二回繰り返した16画素の範囲を示すが、実際には、同様の構造が図示の範囲外にも繰り返されている。
【００２６】
図3に示す撮像素子の配置（画素配置）は一例であり、RS画素とGS画素が混在するならばどのような配置でも構わない。例えば、RS画素にカラーフィルタを設置せず、輝度情報のみ取得するような構成でも構わない。また、GS画素にカラーフィルタを設置しても構わないし、RS画素の複数の画素の一部（例えばGRS）と略同じ分光特性をもつ単一の画素をGS画素としてもよい。
【００２７】
●撮像デバイスの制御
図4により制御部211による撮像時の撮像デバイス207の制御例を説明する。撮像デバイス207は、例えば図3に示す撮像素子の配置（画素配置）を有する。図3においては、全体がRS画素の行（RS行）と、行の半数がRS画素で残り半数がGS画素になるように列ごとにRS画素とGS画素が交互に配置された行（RS/GS行）が存在し、RS行とRS/GS行が交互に配置されている。各行を構成する画素は並列動作が可能であり、リセット動作、電荷の蓄積動作、電荷の転送動作、電荷の読出動作を順に行うことで、像が電気信号に変換される。
【００２８】
RS画素の場合、行ごとに、転送動作と読出動作を行う必要があり、転送動作と読出動作に要する時間（以下、ΔT）だけずらした露光が行われる。図4に示すように、時刻T1から行ごとにΔTずつずらしてRS画素のリセット動作を行い、光電変換によって電荷を蓄積する。そして、時刻T3から行ごとΔTずつずらして電荷の転送動作と読出動作を行い、一行目のRSL1画素から最終行のRSLn画素によって撮像されたRAWデータが取得される。
【００２９】
GS画素の場合、露光によって蓄積された電荷の保持機構を有し、電荷の保持動作を行うことで、任意のタイミングで電荷の転送動作と読出動作を行うことができる。図4に示すように、時刻T0で一括してGS画素のリセット動作を行い、光電変換によって電荷を蓄積し、時刻T2で一括して電荷の保持動作を行う。
【００３０】
RS画素に関する読出動作が終了した後、時刻T4から行ごとにΔTずつずらして、保持した電荷の転送動作と読出動作を行い、二行目のGSL2画素、四行目のGSL4画素、…、最終行のGSLn画素によって撮像された輝度データが取得される。
【００３１】
このように、GS画素は略同時に露光される画素であり、RS画素の一部が互いに異なる時刻に露光される画素である。上記の制御は一例であり、GS画素が概略同時に露光され、RS画素の一部が互いに異なるタイミングで露光されるならば、どのような制御を行っても構わない。
【００３２】
［画像処理部］
図5のブロック図により画像処理部114の構成例を示す。RS画像取得部501は、システムバス110を介してRAM103からRSデータを取得する。RSデータは、撮像デバイス207のRS画素によって撮像され、DSP111によって現像処理などが施された画像データであり、撮像デバイス207の画素数に対して縦横それぞれ1/2の画素数を有し、各画素はRGBの三成分データを有する。
【００３３】
GS画像取得部502は、システムバス110を介してRAM103からGSデータを取得する。GSデータは、撮像デバイス207のGS画素によって撮像され、DSP111によって欠陥画素の補正や輝度値の調整などが施された画像データである。GSデータは、撮像デバイス207の画素数に対して縦横それぞれ1/2の画素数（RSデータと同一画素数）を有し、各画素は輝度成分データを有する。
【００３４】
位置ずれ算出部503は、詳細は後述するが、RSデータが表す画像とGSデータが表す画像の間の位置ずれを示す位置ずれデータを算出する。位置ずれデータは、GSデータの各画素位置（整数）に対応するRSデータ上の位置（有理数）の関係を示す。
【００３５】
位置合わせ部504は、位置ずれデータを用いて、RSデータの画素位置をGSデータの画素位置に合わせる。そのため、GSデータと同じ大きさ（画素数）、かつ、RGB3プレーンのデータ領域を画像領域としてRAM103などに確保する。そして、GSデータと同一の座標を有する画像領域の各画素について、注目画素の位置に対応するRSデータ上の注目位置を位置ずれデータに基づき取得し、注目位置のRSデータや注目位置周辺のRSデータから注目画素のRGBデータを補間演算する。補間演算にはバイリニア法やバイキュービック法を用いればよい。
【００３６】
GSデータには、上述したローリングシャッタ歪みが含まれないので、位置合わせにより、RSデータが表す画像の位置をGSデータが表す画像の位置に合わせることで、RSデータのローリングシャッタ歪みを高精度に補正することが可能になる。出力部505は、位置合わせ部504によって画像領域に形成された画像データ（つまり、位置合わせ後のRSデータ）を撮像結果の画像データとしてシステムバス110に出力する。
【００３７】
●画像処理手順
図6のフローチャートにより画像処理部114の処理を説明する。図6に示す処理は、静止画撮影の場合は例えばレリーズボタンが押されるごと、動画撮影の場合は1フレームの撮影ごとに、CPU101の指示によって開始される。
【００３８】
撮像が行われると、RS画像取得部501はRSデータを取得し(S601)、GS画像取得部502はGSデータを取得する(S602)。次に、位置ずれ算出部503は取得されたGSデータとRSデータから位置ずれデータを算出し(S603)、位置合わせ部504は、位置ずれデータに基づき、RSデータをGSデータに位置合わせした画像データを生成する(S604)。そして、出力部505は、位置合わせによって得られた画像データを出力する(S605)。
【００３９】
●位置ずれデータの算出
位置ずれ算出部503は、RSデータとGSデータから位置ずれデータを算出する。位置ずれデータは、GSデータの各画素位置からRSデータ上の位置への対応として算出される。以下では、非特許文献2が提案するHorn-Schunckの方法を用いて位置データずれを算出する手順を説明する。Horn-Schunckの方法は、下式で表されるエネルギ関数Eを最小化する位置ずれ(u, v)を反復演算によって求める。
E = ∬{(Ixu + Iyv + It)2 + α2(||∇u||2 + ||∇v||2)}dxdy；      …(1)
ここで、Ixは基準画像データの画素値のx方向の微分、
Iyは基準画像データの画素値のy方向の微分、
Itは位置ずれを求める画像間の輝度変動、
積分内の第1項は、位置ずれを求める画像間の画素値が一定という条件を一次まで展開して得られる項、
積分内の第2項は、位置ずれの変動が連続的という条件を表す正則化項、
αは正則化の強さを調整するパラメータ、αが大きいほど位置ずれの変動が滑らかになる。
【００４０】
実施例において式(1)の基準画像データはGSデータであり、式(1)をEuler-Lagrange方程式を用いて解くと下式が得られる。
Ix(Ixu + Iyv + It) - α2Δu = 0；
Iy(Ixu + Iyv + It) - α2Δv = 0；      …(2)
【００４１】
位置ずれ(u, v)のラプラシアンをΔu=u'-u、Δv=v'-vとして式(2)に代入すると下式が得られる。なお、u'、v'は、位置ずれの近傍領域における重み付き平均を表す。
(Ix2 + α2)u + IxIyv = α2u' - IxIt；
IxIyu + (Iy2 + α2)v +  = α2v' - IyIt；      …(3)
【００４２】
式(3)は位置ずれの近傍領域における重み付き平均(u', v')を含むため、すべての画素位置の位置ずれ(u, v)が関連性を有し、解析的に解くには問題が大きい。そのため、下式の演算を繰り返すことで、式(3)の解を近似的に求める。
uk+1 = u'k - Ix(Ixu'k + Iyv'k + It)/(α2 + Ix2 + Iy2)；
vk+1 = v'k - Iy(Ixu'k + Iyv'k + It)/(α2 + Ix2 + Iy2)；      …(4)
ここで、kは反復回数、
uk、vkはk回目の繰り返しにおける位置ずれの値。
【００４３】
図7のブロック図により位置ずれ算出部503の構成例を示す。輝度画像生成部701は、RSデータを輝度データに変換する。つまり、図3に示すRRS、GRS、BRSの三画素それぞれのRGB値を、バイリニア補間などを用いてRSデータから生成し、それらRGB値の線形和を輝度値（輝度データ）とする。必須ではないが、輝度画像生成部701は、RSデータから生成した輝度データの分光特性をGSデータの分光特性に近付ける補正を行う。こうすれば、位置ずれ(u, v)を高精度に算出することが可能になる。
【００４４】
差分生成部702は、輝度画像生成部701が生成した輝度データとGSデータの間の、式(1)の輝度変動Itに相当する差分データを生成する。位置(i, j)における、GSデータの画素値をI(i, j)、輝度データの画素値をY(i, j)とすると、差分データIt(i, j)は下式によって算出される。
It(i, j) = {Y(i, j) - I(i, j) + Y(i+1, j) - I(i+1, j)
+ Y(i, j+1) - I(i, j+1) + Y(i+1, j+1) - I(i+1, j+1)}/4；  …(5)
【００４５】
微分画像生成部703は、式(1)の基準画像データの画素値のxy方向の微分IxとIyに相当するGSデータのx方向の微分データとy方向の微分データを生成する。位置(i, j)におけるGSデータのx方向微分Ix(i, j)とy方向微分Iy(i, j)は下式によって算出される。
Ix(i, j) = {I(i, j+1) - I(i, j) + I(i+1, j+1) - I(i+1, j)
+ Y(i, j+1) - Y(i, j) + Y(i+1, j+1) - Y(i+1, j}/4；
Iy(i, j) = {I(i+1, j) - I(i, j) + I(i+1, j+1) - I(i, j+1)
+ Y(i+1, j) - Y(i, j) + Y(i+1, j+1) - Y(i, j+1}/4；  …(6)
【００４６】
初期化部704は、反復処理で算出する位置ずれデータの初期値を設定し、バッファ705に格納する。位置ずれデータの初期値として、(u, v)=(0, 0)のような「位置ずれなし」を示すデータを用いる。式(4)に基づく反復処理の間、バッファ705には計算途中の位置ずれデータが格納される。
【００４７】
更新部706は、微分画像生成部703が生成した微分データ、差分生成部702が生成した差分データおよびバッファ705に格納された位置ずれデータから、式(4)に基づき、位置ずれデータを算出する。そして、バッファ705に格納されたk回目の反復処理による位置ずれデータ（計算途中の位置ずれデータ）をk+1回目の反復処理による位置ずれデータによって更新する。
【００４８】
出力部707は、更新部706による反復処理が所定回数に達すると、バッファ705に格納された位置ずれデータを出力する。反復回数kの取得は、例えば、更新部706がバッファ705に反復回数kを書き込み、位置ずれデータの更新を出力部707に通知し、通知を受けた出力部707がバッファ705から反復回数kを読み出せばよい。
【００４９】
図8のフローチャートにより位置ずれ算出部503の処理を説明する。初期化部704は、位置ずれデータの初期値をバッファ705に格納する(S801)。輝度画像生成部701はRSデータから輝度データを生成し(S801)、差分生成部702は輝度データとGSデータの間の差分データを生成し(S802)、微分画像生成部703はGSデータの微分データを生成する(S803)。
【００５０】
次に、更新部706は、差分データ、微分データ、および、バッファ705に格納された位置ずれデータ（前回の演算によって得られた位置ずれデータ）に基づき位置ずれデータを算出する(S804)。そして、算出した位置ずれデータによって、バッファ705に格納された位置ずれデータを更新する(S805)。
【００５１】
次に、出力部707は、更新部706による反復処理が所定回数に達したか否かを判定する(S806)。反復処理が所定回数に達していない場合、出力部707は、処理をステップS804に戻し、更新部706に位置ずれデータの更新（反復処理）を繰り返させる。一方、反復処理が所定回数に達すると、出力部707は、バッファ705に格納された位置ずれデータを出力する(S807)。
【００５２】
このように、GS画素とRS画素が混在する撮像デバイスを用い、GS画素によって撮像した画像（例えば輝度画像）を基準画像として、RS画素によって撮像したカラー画像のローリングシャッタ歪みを補正することができる。これにより、メカニカルシャッタを用いることなく、高いフレームレートの動画の撮影においても高精度なローリングシャッタ歪みの補正が可能になる。
【００５３】
［変形例］
上記の位置ずれデータの算出方法は一例であり、別の手法によって位置ずれデータを算出しても構わない。例えば、領域ごとにブロックマッチングを行う方法や、特徴点の対応を補間して画素位置の対応を求める方法により、位置ずれデータを算出しても構わない。
【００５４】
位置ずれデータとして、GSデータからRSデータへの対応を求める代わりに、RSデータからGSデータへの対応を求めても構わない。位置ずれデータとして、画素間の対応を規定する情報ならばどのような形態の情報を取得しても構わない。
【００５５】
RSデータを輝度データに変換し、輝度データとGSデータの間の位置ずれデータを算出する例を説明したが、当該変換は行わなくても構わない。例えば、GS画素の前面にRS画素の一部と同じカラーフィルタを設置し、共通するカラーフィルタが設置されているRS画素とGS画素の情報を用いて位置ずれデータを算出すればよい。
【００５６】
つまり、RS画素の組の一部の画素と略同じ分光特性をもつ単一の画素をGS画素として、略同じ分光特性をもつRS画素とGS画素の情報を用いて位置ずれデータを算出する。この場合、輝度画像生成部701が不要になり、処理速度の向上と位置ずれデータの精度向上が期待される。また、差分生成部702は、RSデータの一部（例えばGRS画素のGRSデータ）とGSデータの間の差分データを生成する。
【実施例２】
【００５７】
以下、本発明にかかる実施例2の撮像装置、画像処理装置および画像処理方法を説明する。なお、実施例2において、実施例1と略同様の構成については、同一の符号を付して、その詳細な説明を省略する場合がある。
【００５８】
実施例1では、RS画素とGS画素を混載した撮像デバイスを用いて画像データを取得し、RS画素が取得した画像データを補正して、ローリングシャッタ歪みを抑制した画像データを取得する例を説明した。しかし、補正によって得られた画像データは補正誤差を含み、当該画像データをカメラ姿勢推定、距離推定、仮想視点画像の合成などの画像処理に用いる場合、それら画像処理の精度が悪化する問題がある。
【００５９】
実施例2では、RS画素とGS画素を混載した撮像デバイスを用いて取得した画像データを用いてカメラ姿勢推定、距離推定、仮想視点合成を行う例を説明する。詳細は後述するが、GS画素が取得した画像データをカメラ姿勢推定と距離推定に用いることで高精度な画像処理が可能になる。
【００６０】
実施例2においては、撮像部113による複数の撮影時に取得された複数の画像データを用いてカメラ姿勢推定、距離推定、仮想視点合成を行う。複数回の撮影それぞれについて、実施例1と同様に、RSデータの取得、GSデータの取得、位置ずれデータの算出、位置合わせ処理が行われる。
【００６１】
［画像処理部］
図9のブロック図により実施例2の画像処理部114の構成例を示す。パラメータ取得部511は、姿勢推定部512、距離推定部513、対応画素算出部514が用いるカメラパラメータをシステムバス110を介して取得する。
【００６２】
カメラパラメータには、撮像部113をピンホールカメラと見做したときの内部パラメータ、仮想視点合成を行う視点の内部パラメータと外部パラメータが含まれる。内部パラメータは画像データの画素位置と光線の向きの関係を規定するようなパラメータであり、外部パラメータは視点の位置と向きを表すパラメータである。なお、カメラパラメータは予めROM102やRAM103などに格納されているものとする。
【００６３】
姿勢推定部512は、詳細は後述するが、カメラパラメータとGS画像取得部502が取得した複数のGSデータに基づきカメラ姿勢を推定する。なお、カメラ姿勢は、撮像時の撮像部113の動きに相当する。
【００６４】
距離推定部513は、詳細は後述するが、推定されたカメラ姿勢、カメラパラメータ、複数のGSデータに基づき撮影シーンの距離情報を推定する。対応画素算出部514は、推定された距離情報、推定されたカメラ姿勢、カメラパラメータに基づき、仮想視点画像の画素位置と複数のGSデータの画素位置の対応を算出する。
【００６５】
画像合成部515は、算出された画素位置の対応に基づき、位置合わせ部504が出力する複数の画像データから仮想視点画像を合成する。位置合わせ後の各画像データの画素位置は対応するGSデータの画素位置に一致する。従って、仮想視点画像の画素位置に対応するGSデータの画素位置に基づき、バイリニア補間などを用いて位置合わせ後の複数の画像データから仮想視点画像の画素値が算出される。出力部505は、合成された仮想視点画像の画像データをシステムバス110に出力する。
【００６６】
●画像処理手順
図10のフローチャートにより実施例2の画像処理部114の処理を説明する。図10に示す処理は、仮想視点画像の生成が指示され、例えばレリーズボタンが押された後に開始される。
【００６７】
CPU101は、撮像部113によって撮像されたすべての画像データの画像処理部114による取得が完了したか否かを判定する(S101)。取得が完了していない場合、CPU101は、処理をステップ
【００６８】
S102に進めて、画像処理部114にステップS102からS106の処理を繰り返させる。また、取得が完了した場合、CPU101は、画像処理部114にステップS107以降の処理を実行させる。
【００６９】
撮像部113によって撮像されたすべての画像データの取得が未了の場合、RS画像取得部501は新たなRSデータを取得する(S102)。また、GS画像取得部502は、ステップS102で取得されたRSデータと同時に撮像された新たなGSデータを取得する(S103)。
【００７０】
次に、位置ずれ算出部503は、取得されたGSデータとRSデータから位置ずれデータを算出する(S104)。位置合わせ部504は、位置ずれデータに基づき、RSデータをGSデータに位置合わせした画像データを生成し(S105)、GSデータと位置合わせ後の画像データを関連付けてRAM103の所定領域に格納する(S106)。この後、処理はステップS101に戻る。
【００７１】
撮像部113によって撮像されたすべての画像データの取得が完了すると、パラメータ取得部511は、カメラパラメータを取得する(S107)。次に、詳細は後述するが、姿勢推定部512がカメラ姿勢を推定し(S108)、距離推定部513が距離情報を推定し(S109)、対応画素算出部514が画素位置の対応を算出し(S110)、画像合成部515が仮想視点画像を生成する(S111)。そして、出力部505は、仮想視点画像を出力する(S112)。
【００７２】
画像処理部114は、ローリングシャッタ歪みを含まないGSデータをカメラ姿勢推定と距離推定に用い、高画質でRGBの三成分を有するRSデータをもっぱら画像合成時の画素値の算出に用いる。そのため、ローリングシャッタ歪みの補正による補正誤差の影響を大きく受けることなく、高精度な画像合成処理が可能になる。
【００７３】
［姿勢推定部］
図11のブロック図により姿勢推定部512の構成例を示す。姿勢推定部512は、GSデータを撮像したときのカメラ姿勢を、GSデータとカメラパラメータから推定する。
【００７４】
カメラ姿勢は、GSデータを撮像した撮像部113の向きと位置に対応する。なお、画像データから推定したカメラ姿勢には、一様な向き、位置、スケールの変換に関する不定性が残る。従って、最初に撮像された一番目のGSデータに対応するカメラ位置を原点とし、光軸をZ軸方向に、画像の垂直方向をY方向に固定し、一番目の対応点が表す空間上の点までの距離を「1」に固定するなどして、不定性を解消する。
【００７５】
また、カメラパラメータは、画像データ上の位置とそれに対応する光線の方向を規定するような情報であり、撮像部113をピンホールカメラと見做したときの内部パラメータに相当する。内部パラメータ行列Aは次式のように表される。
┌             ┐
│LxNx/s 0 Nx/2│
A = │0 LyNy/s Ny/2│      …(7)
│  0   0    1 │
└             ┘
ここで、sは主点と撮像デバイス207の間の距離、
(Lx, Ly)は撮像デバイス207の大きさ、
(Nx, Ny)は撮像デバイス207の画素数。
【００７６】
●対応点探索部
対応点探索部801は、(i)GSデータから特徴点を抽出し、(ii)特徴点近傍の画素値から特徴量を算出し、(iii)特徴量の類似度から特徴点をマッチングして、複数のGSデータの間における対応点を探索する。
【００７７】
特徴点は、例えば、暗い背景の中にある明るい四角形の角など、点として位置が特定可能な画像構造に相当する。特徴点の抽出方法には、非特許文献1の4.1.1項に説明されているように、様々な方法がある。ここでは、一例としてSIFT (scale-invariant feature transform)特徴点を用いる。特徴点抽出の結果として、特徴点の画像データ上の位置が得られる。また、SIFT特徴点のような手法の場合、合わせて特徴点の向き、スケールが得られる。
【００７８】
特徴量は、抽出された特徴点の近傍の画素の値を当該GSデータから取得して算出される。特徴量は、特徴点の近傍の画像構造を用いて記述される、当該特徴点を他の特徴点と識別するためのデータである。特徴量には、非特許文献1の4.1.2項で説明されているように様々な種類がある。ここでは、一例としてSIFT特徴量を用いる。SIFT特徴量の場合、特徴点の位置だけでなく、特徴点の向きやスケールも利用することになる。特徴量は、一般に多次元のベクトルとして表される。
【００７９】
そして、算出された特徴量を用いて、基準GSデータの特徴点群と、他のGSデータの特徴点群のマッチングが行われる。ここでは、最初に撮像された一番目のGSデータを基準GSデータとする。マッチング方法には、非特許文献1の4.1.3項で説明されているように様々な手法がある。ここでは、基準GSデータの各特徴点について、特徴量の差分二乗和が最小になる特徴点を、他のGSデータから総当りで探索する方法を用いる。マッチングの結果、基準GSデータの各特徴点に対して、他のGSデータの特徴点が対応付けられた状態になる。
【００８０】
●基本行列推定部
基本行列推定部802は、対応点探索部801が出力するGSデータの間の対応点の組に基づき、二つのGSデータの間の関係を表す基本行列Eを推定する。基本行列Eは下式のような関係を満たす3×3行列である。
m'TA'-TEA-1m = 0      …(8)
ここで、mとm'はある対応点の組の座標、
mは基準GSデータ上での斉次座標、
m'は姿勢推定対象のGSデータ上での斉次座標、
Aは基準GSデータに対応する式(7)で表されるような内部パラメータ、
A'は姿勢推定対象のGSデータに対応する式(7)で表されるような内部パラメータ。
【００８１】
複数の対応点の組について式(8)の関係を用いると、非特許文献1の7.2節で説明されているような方法で、基本行列Eを推定することができる。
【００８２】
●インライア抽出部
インライア抽出部803は、対応点の組から、推定された基本行列Eによる式(8)の関係を満たす組を抽出する。式(8)は、点mとm'がそれぞれ下式で表されるようなエピポーラ線λとλ'上にある、と解釈することができる。ここでは、この解釈に基づき、mとλの距離、および、m'とλ'の距離が閾値以下になるような対応点の組をインライアとして抽出する。
λ' = A'-TEA-1m
λ = A-TETA'-1m'      …(9)
【００８３】
インライア(inlier)は、測定値の中で想定される誤差範囲内にある測定値であり、また、測定値の中で想定される誤差範囲外にある測定値（明らかに誤りである外れ値）がアウトライア(outlier)である。
【００８４】
●基本行列分解部
基本行列分解部804は、推定された基本行列Eをカメラ姿勢を表す回転行列Rと並進ベクトルTに分解する。回転行列Rと並進ベクトルTは、X'=RX+Tの演算により、世界座標系で表された三次元点Xをカメラ座標系で表された三次元点X'に変換するような回転行列と並進ベクトルである。基本行列E、回転行列R、並進ベクトルTは、下式で表されるような関係を有し、非特許文献1の7.2節で説明されているような方法で分解することができる。
E = [T]×R      …(10)
【００８５】
式(10)における[T]×は、並進ベクトルTとの外積の演算に相当する歪対称行列を意味する。また、基本行列Eからカメラ姿勢を表す回転行列Rと並進ベクトルTへの分解において、カメラ姿勢として四つの候補が算出される。
【００８６】
●復元部
復元部805は、インライアとして抽出された対応点の組について、非特許文献1の7.1節で説明されているような三角測量により、その三次元位置を算出する。三次元位置の算出には、カメラ姿勢が必要であり、基本行列分解部804が算出した四つのカメラ姿勢候補が用いられる。
【００８７】
●カメラ姿勢選択部
カメラ姿勢選択部806は、基本行列分解部804が算出した四つのカメラ姿勢候補から正しいカメラ姿勢を選択し、選択したカメラ姿勢を出力する。復元部805が算出した対応点の組の三次元位置が、より多くカメラの前方になるようなカメラ姿勢が、正しいカメラ姿勢として選択される。以上の構成により、二つのGSデータに対して、一方のGSデータを基準とする相対的なカメラ姿勢を算出することができる。
【００８８】
●カメラ姿勢の推定処理
図12のフローチャートにより姿勢推定部512の処理を説明する。対応点探索部801は、複数のGSデータを入力し、例えば一番目のGSデータを基準GSデータとして、GSデータの間の対応点を探索する(S121)。基本行列推定部802は、対応点探索部801が出力するGSデータの間の対応点の組に基づき基本行列Eを推定する(S122)。
【００８９】
次に、インライア抽出部803は、推定された基本行列Eと整合性をもつような対応点の組をインライアとして抽出する(S123)。基本行列分解部804は、推定された基本行列Eを分解してカメラ姿勢の候補を算出する(S124)。
【００９０】
次に、復元部805は、算出されたカメラ姿勢の候補に基づき、インライアとして抽出された対応点の組の三次元位置を算出する(S125)。カメラ姿勢選択部806は、算出された三次元位置に基づき、算出されたカメラ姿勢の候補から正しいものを選択し、選択したカメラ姿勢を出力する(S126)。
【００９１】
上記では、対応点探索にSIFTを用いる例を説明したが、ブロックマッチングなど他の方法を用いても構わない。また、二つのGSデータを基にカメラ姿勢を推定する例を説明したが、より多くのGSデータを基にカメラ姿勢の推定を行う構成としても構わない。三つ以上のGSデータを基にカメラ姿勢の推定を行う方法として、因子分解法、多焦点テンソルを用いる方法、三次元復元された点と三番目以降のGSデータとの対応から三番目以降のGSデータのカメラ姿勢を求める方法などがある。また、線形解法によりカメラ姿勢を算出する例を説明したが、高精度化のために非線形最適化を用いても構わない。
【００９２】
［距離推定部］
距離推定部513は、複数のGSデータと対応するカメラ姿勢、および、カメラパラメータから撮影シーンの距離情報を推定する。なお、カメラ姿勢には上述した回転行列Rと並進ベクトルTが使用され、カメラパラメータには上述した内部パラメータAが使用される。
【００９３】
距離推定には、GSデータの間の視差が利用される。つまり、距離を定義するための仮想視点の光軸方向の奥行きを距離と定義して、複数のGSデータの間の画素値の整合度を幾つかの離散的な距離で算出し、最も整合性が高い距離を仮想視点の画素ごとに探索することで、撮影シーンの距離情報を推定する。なお、ここでは、画像合成部515による合成処理における仮想視点を距離推定用の仮想視点に用いる。この仮想視点におけるカメラ姿勢は、距離推定部513にカメラパラメータとして入力されるものとする。
【００９４】
図13のブロック図により距離推定部513の構成例を示す。距離決定部811は、GSデータの間の画素値の整合度を算出する離散的な距離を複数決定する。整合度の算出する距離は、例えば距離の逆数が等間隔になるように、複数設ける。
【００９５】
参照行列生成部812は、距離を定義するための仮想視点上の画素位置から、GSデータ上の画素位置に変換を行う射影変換行列を生成する。仮想視点上の画素位置の斉次座標mと、GSデータ上の画素位置の斉次座標m'の間には下式によって表されるような関係がある。
┌       ┐
│1 0 0 0│┌     ┐┌   ┐-1┌     ┐
βm' = A'│0 1 0 0││R' T'││R T│  │dA-1m│
│0 0 1 0││0  1 ││0 1│  │  1  │      …(11)
└       ┘└     ┘└   ┘  └     ┘
ここで、[R T]は仮想視点のカメラ姿勢、
[R' T']はGSデータのカメラ姿勢、
Aは仮想視点の内部パラメータ行列、
A'はGSデータの内部パラメータ、
dは整合度の算出を行う距離、
βは適当な数であり、定数倍の不定性に相当する。
【００９６】
式(11)を整理すると、mからm'への射影変換を表す画素参照行列Hが下式のように得られる。
H = A'(dR'R-1A-1 - R'R-1TD + T'D)；      …(12)
ここで、D = (0 0 1)。
【００９７】
整合度算出部813は、参照行列生成部812が生成した画素参照行列Hによる射影変換に基づき、仮想視点によって定義された画素位置と距離ごとにGSデータの画素値を参照し、複数のGSデータの間の画素値の整合度Cを算出する。GSデータ上の画素位置は、通常、小数点以下の数値を含むので、バイキュービック法やバイリニア法などの補間を用いて画素値を参照する。整合度Cの例として、n番目のGSデータの画素値がInとした時、
【００９８】
下式で表されるものが考えられる。
C = Σn(In - Σn'In'/N)2；      …(13)
ここで、Inはn番目のGSデータの画素値、
In'はn+1番目のGSデータの画素値、
NはGSデータの数（本実施例においては2）、
Σnの範囲はn=1からN、
Σn'の範囲はn'=n+1からN、
【００９９】
整合度算出部813は、整合度Cの算出を仮想視点に対して定義されたすべての画素とすべての距離について行う。なお、整合度Cは、整合性が高い程小さい値をとり、整合性が低い程大きい値をとる。
【０１００】
フィルタ処理部814は、整合度算出部813が算出した整合度Cに対して、空間方向のフィルタ処理を行う。整合度算出部813が算出する整合度Cは、画素単位の整合度であり、ノイズの影響を受け易い。また、距離推定部513は整合性が高い（整合度Cが小さい）距離を、最終的な距離情報として選択する。しかし、GSデータの画素値の変動が小さい場合、画素単位の整合度Cは距離によって変化しないため距離情報を算出することができない。これらの問題を解決するために、フィルタ処理部814によるフィルタ処理を適用する。
【０１０１】
最適距離選択部815は、フィルタ処理された整合度Cに基づき、仮想視点の画素ごとに距離について探索を行い、最も整合性が高い距離を選択する。そして、このような処理を仮想視点の全画素について行い、推定結果の距離情報を出力する。
【０１０２】
図14のフローチャートにより距離推定部513の処理を説明する。距離決定部811は、GSデータの間の画素値の整合度を算出する複数の距離を決定する(S141)。参照行列生成部812は、決定された距離ごとに、距離を定義する仮想視点上の画素からGSデータの画素を参照する射影変換行列Hを生成する(S142)。
【０１０３】
次に、整合度算出部813は、射影変換行列Hに基づいて、距離ごとに、複数のGSデータの間の画素値の整合度Cを算出する(S143)。フィルタ処理部814は、算出された整合度Cに空間方向のフィルタ処理を適用する(S144)。最適距離選択部815は、フィルタ処理された整合度Cに基づき、仮想視点の画素ごとに距離について探索を行い、最も整合性が高い距離を選択する処理を仮想視点の全画素について行い、推定結果の距離情報を出力する(S145)。
【０１０４】
上記では、二つのGSデータから距離情報を算出する例を説明したが、二つ以上ならばGSデータの数は幾つでも構わない。また、限られた数の距離について、GSデータの間の整合性を検証し、最適な距離を選択するという方法により距離情報を推定する例を説明したが、視点が異なるGSデータと対応するカメラ姿勢から距離情報を求める方法であれば、どのような方法でも構わない。距離情報を求めるその他の方法として、非線形最適化によりGSデータの間のオプティカルフローを求める方法や、エピポーラ線上でブロックマッチングを行う方法などがある。
【０１０５】
［対応画素算出部］
距離推定部513は、画像合成部515が合成する仮想視点画像の各画素位置に対して距離情報を推定する。仮想視点画像の各画素位置に対応するGSデータ上の画素位置は、式(12)で表される射影変換によって与えられる。従って、対応画素算出部514は、仮想視点画像の画素位置ごとに、推定された距離情報を式(12)に代入して射影変換することで、仮想視点上の画素位置からGSデータ上の画素位置への対応を算出する。
【０１０６】
このように、カメラ姿勢の推定と距離情報の推定にローリングシャッタ歪みを含まないGSデータを用い、高画質でRGB三成分をもつRSデータは、もっぱら画像合成時の画素値の算出に用いる。そのため、ローリングシャッタ歪み補正による補正誤差の影響を大きく受けることなく、高精度な画像合成処理が可能になる。
【０１０７】
上記では、カメラ姿勢と撮影シーンの距離情報の二つの推定に基づき仮想視点画像の合成処理を行う例を説明したが、一方の推定結果に基づき合成画像を生成する場合もある。つまり、カメラ姿勢を推定して、推定したカメラ姿勢に基づき位置合わせ後の画像データから合成画像を生成する場合や、撮影シーンの距離情報を推定して、推定した距離情報に基づき位置合わせ後の画像データから合成画像を生成する場合である。
【０１０８】
［その他の実施例］
本発明は、上述の実施形態の一以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、一以上の機能を実現する回路（例えば、ASIC）によっても実現可能である。
【符号の説明】
【０１０９】
501 … RS画像取得部、502 … GS画像取得部、503 … 位置ずれ算出部、504 … 位置合わせ部
【図１】
2017059998.tif 000003
【図２】
2017059998.tif 000004
【図３】
2017059998.tif 000005
【図４】
2017059998.tif 000006
【図５】
2017059998.tif 000007
【図６】
2017059998.tif 000008
【図７】
2017059998.tif 000009
【図８】
2017059998.tif 000010
【図９】
2017059998.tif 000011
【図１０】
2017059998.tif 000012
【図１１】
2017059998.tif 000013
【図１２】
2017059998.tif 000014
【図１３】
2017059998.tif 000015
【図１４】
2017059998.tif 000016