IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

7633953情報処理装置及び情報処理方法、撮像装置、プログラム、記憶媒体
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-12
(45)【発行日】2025-02-20
(54)【発明の名称】情報処理装置及び情報処理方法、撮像装置、プログラム、記憶媒体
(51)【国際特許分類】
   H04N 17/00 20060101AFI20250213BHJP
   G03B 43/00 20210101ALI20250213BHJP
   H04N 23/60 20230101ALI20250213BHJP
【FI】
H04N17/00 200
H04N17/00 G
G03B43/00
H04N23/60
【請求項の数】 19
(21)【出願番号】P 2022007275
(22)【出願日】2022-01-20
(65)【公開番号】P2023106132
(43)【公開日】2023-08-01
【審査請求日】2023-06-01
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】浅野 元透
(72)【発明者】
【氏名】横関 誠
【審査官】薄井 義明
(56)【参考文献】
【文献】特開2013-219439(JP,A)
【文献】特開2018-202104(JP,A)
【文献】特開2017-138287(JP,A)
【文献】特開2021-044731(JP,A)
【文献】特開2014-155086(JP,A)
【文献】特開2005-003463(JP,A)
【文献】国際公開第2013/038681(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 17/00
H04N 23/60
G03B 43/00
(57)【特許請求の範囲】
【請求項1】
撮像装置に備えられた情報処理装置であって、
撮影レンズの歪曲収差補正用の格子状のパターンを有するチャートを前記撮影レンズが装着された前記撮像装置内の撮像手段で撮影することにより得られる撮影画像を前記撮像手段から取得する第1の取得手段と、
前記チャートの基準となる画像である基準画像を取得する第2の取得手段と、
前記撮影レンズの歪曲収差の情報を取得する第3の取得手段と、
前記基準画像と、前記歪曲収差の情報とに基づいて、前記基準画像に前記歪曲収差を反映した画像である疑似画像を生成する第1の生成手段と、
前記撮影画像と前記疑似画像を合成した合成画像を生成する第2の生成手段と、
前記撮影画像と前記疑似画像とに基づいて画像の乖離度を算出し、さらに該乖離度に基づいて評価値を算出する算出手段と、
前記撮影画像の位置を前記疑似画像の位置に合わせるための前記撮像装置の移動指標であって、ユーザーが前記撮像装置を動かして、前記チャートに対する前記撮像装置の位置及び姿勢を調整するための移動指標、前記評価値に基づいて生成する第3の生成手段と、
前記移動指標を、前記合成画像に重畳表示する表示制御手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記合成画像を表示手段に出力する出力手段をさらに備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示手段をさらに備えることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記歪曲収差の情報は、前記撮影画像と前記基準画像とから推定される歪曲収差に関する情報と、前記撮影レンズにおける記憶手段に記憶されている歪曲収差に関する情報と、前記撮影レンズが装着される前記撮像装置に記憶されている歪曲収差に関する情報の少なくとも1つを含むことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記第1の生成手段は、前記撮影レンズの焦点距離に応じて、前記基準画像を拡大または縮小することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記乖離度は、前記撮影画像の特徴点と、前記疑似画像の対となる特徴点との距離および向きを示すベクトルと、前記撮影画像の特定の領域の重心点と前記疑似画像の対となる特定の領域の重心点との距離および向きを示すベクトルの少なくとも1つを含むことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記算出手段は、前記撮影レンズの歪曲収差の量または前記撮影画像の像高に応じて、前記撮影画像及び前記疑似画像における前記乖離度の算出の範囲を限定することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
【請求項8】
前記第2の生成手段は、前記乖離度に応じて、前記撮影画像と合成する前記疑似画像の一部の色や形態を変更することを特徴とする請求項乃至のいずれか1項に記載の情報処理装置。
【請求項9】
前記撮影レンズの情報、前記撮影レンズの歪曲収差の情報、前記乖離度、前記評価値を、前記撮影画像と関連付けて記憶する記憶手段をさらに備えることを特徴とする請求項乃至のいずれか1項に記載の情報処理装置。
【請求項10】
前記評価値が所定の条件を満たす場合に、自動で画像を撮影するように制御する制御手段をさらに備えることを特徴とする請求項乃至のいずれか1項に記載の情報処理装置。
【請求項11】
前記チャートの情報を生成するための第4の生成手段をさらに備え、該第4の生成手段は、前記撮影画像から前記チャートの情報の生成に必要な情報を検出することによって、前記チャートの情報を生成することを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
【請求項12】
前記撮影画像と前記疑似画像の差分を算出する第2の算出手段と、
前記撮影画像と前記疑似画像の差分が所定値以上である場合に、前記撮影レンズが装着される前記撮像装置の移動量を表示手段に表示するように制御し、前記差分が前記所定値より小さい場合に、前記撮影画像と前記疑似画像を相対的にシフトさせるシフト動作を行うシフト手段に、前記差分を小さくするように前記シフト動作を行わせる制御手段と、
をさらに備えることを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
【請求項13】
前記シフト手段は、前記撮影レンズに備えられている手振れ補正レンズを駆動することにより前記シフト動作を行う手段と、前記撮影画像を撮像する撮像素子を駆動することにより前記シフト動作を行う手段との少なくとも1つを含むことを特徴とする請求項12に記載の情報処理装置。
【請求項14】
前記第2の算出手段は、前記撮影画像と前記疑似画像の相対的な回転量をさらに算出することを特徴とする請求項12または13に記載の情報処理装置。
【請求項15】
前記制御手段は、前記手振れ補正レンズを駆動することにより前記シフト動作を行った場合、または前記撮像素子を駆動することにより前記シフト動作を行った場合に、前記第2の生成手段が、前記シフト動作を行う前の前記撮影画像に基づいて前記合成画像を生成するように制御することを特徴とする請求項13に記載の情報処理装置。
【請求項16】
前記撮影レンズと、
前記撮影画像を撮像するための撮像素子と、
請求項1乃至15のいずれか1項に記載の情報処理装置と、
を備えることを特徴とする撮像装置。
【請求項17】
撮影レンズの歪曲収差補正用の格子状のパターンを有するチャートを前記撮影レンズが装着された撮像装置内の撮像手段で撮影することにより得られる撮影画像を前記撮像手段から取得する第1の取得工程と、
前記チャートの基準となる画像である基準画像を取得する第2の取得工程と、
前記撮影レンズの歪曲収差の情報を取得する第3の取得工程と、
前記基準画像と、前記歪曲収差の情報とに基づいて、前記基準画像に前記歪曲収差を反映した画像である疑似画像を生成する第1の生成工程と、
前記撮影画像と前記疑似画像を合成した合成画像を生成する第2の生成工程と、
前記撮影画像と前記疑似画像とに基づいて画像の乖離度を算出し、さらに該乖離度に基づいて評価値を算出する算出工程と、
前記撮影画像の位置を前記疑似画像の位置に合わせるための前記撮像装置の移動指標であって、ユーザーが前記撮像装置を動かして、前記チャートに対する前記撮像装置の位置及び姿勢を調整するための移動指標、前記評価値に基づいて生成する第3の生成工程と、
前記移動指標を、前記合成画像に重畳表示する表示制御工程と、
を有することを特徴とする情報処理方法。
【請求項18】
請求項17に記載の情報処理方法の各工程をコンピュータに実行させるためのプログラム。
【請求項19】
請求項17に記載の情報処理方法の各工程をコンピュータに実行させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラとチャートの位置合わせを行う情報を取得するための情報処理技術に関する。
【背景技術】
【0002】
近年、画像制作の分野において、VFX(Visual Effects)という技術が注目されている。VFXは、非現実的な画面効果(視覚効果)を実現するためのものであり、CG(Computer Graphics)と実写画像を合成することで実現される。ここで、CGと実写画像を合成する際、撮像レンズによっては、レンズの歪曲量を加味せずに合成しようとすると、レンズの歪曲収差がある実写画像とレンズの歪曲収差がないCG画像に差異が発生してしまう。そのため、ポストプロダクションでは、一旦、実写画像におけるレンズの歪曲収差の補正を行い、CG画像と合成した後に、合成された画像に対して歪曲処理を施す作業を必要としている。
【0003】
歪曲収差の補正は、カメラ(レンズ)からメタデータとして、歪曲情報を取得することで像高に応じた補正が可能になる。しかし、撮像レンズによっては、歪曲情報を取得できない場合がある。歪曲情報を取得できない場合のレンズ歪曲量は、実写撮影時に白と黒が繰り返し配置された格子状のキャリブレーションチャートを撮影しておき、その後、ポストプロダクションにおいて撮像画像から専用のアプリケーションを使用して算出するのが一般的である。このキャリブレーションチャートを撮影する方法では、チャートとカメラの位置合わせ(位置・姿勢)を正確に行う必要がある。現状の撮影現場においては、チャートとカメラの位置合わせは、ユーザによる目視で行われているため、正確に行うことができていない。
【0004】
特許文献1には、画角調整装置(カメラ)内に、画角調整するための基準となる基準画像を記憶しておき、画角未調整のカメラの動画像と基準画像を合成して表示装置に表示する方法が開示されている。
【0005】
特許文献2には、魚眼レンズを前提とし、被写体となる格子状のチャート情報(モデルデータ)を撮像装置内に記憶しておき、撮像画像とチャート情報とからレンズ歪曲量を推定する方法が開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2014-155086号公報
【文献】特許第6859442号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記の特許文献1では、動画像を取得するカメラに装着されているレンズの歪曲までは考慮されていない。そのため、レンズの歪曲収差が大きい場合には、周辺画角(高像高)において、重畳表示した基準画像と撮影した動画像との乖離が大きくなり、位置合わせが難しくなってしまうという問題がある。
【0008】
また、上記の特許文献2では、魚眼レンズを前提として、基準画像情報(チャートモデルデータ)と、撮像画像から推定したレンズの歪曲パラメータとを取得し、その上で撮像装置の位置や姿勢を推定する方法が開示されている。しかし、チャートと撮像装置との位置合わせ方法までは言及されていない。
【0009】
本発明は上述した課題に鑑みてなされたものであり、その目的は、チャートと撮像装置の相対的な位置合わせを行う情報を取得することができる情報処理装置を提供することである。
【課題を解決するための手段】
【0010】
本発明に係わる情報処理装置は、撮像装置に備えられた情報処理装置であって、撮影レンズの歪曲収差補正用の格子状のパターンを有するチャートを前記撮影レンズが装着された前記撮像装置内の撮像手段で撮影することにより得られる撮影画像を前記撮像手段から取得する第1の取得手段と、前記チャートの基準となる画像である基準画像を取得する第2の取得手段と、前記撮影レンズの歪曲収差の情報を取得する第3の取得手段と、前記基準画像と、前記歪曲収差の情報とに基づいて、前記基準画像に前記歪曲収差を反映した画像である疑似画像を生成する第1の生成手段と、前記撮影画像と前記疑似画像を合成した合成画像を生成する第2の生成手段と、前記撮影画像と前記疑似画像とに基づいて画像の乖離度を算出し、さらに該乖離度に基づいて評価値を算出する算出手段と、前記撮影画像の位置を前記疑似画像の位置に合わせるための前記撮像装置の移動指標であって、ユーザーが前記撮像装置を動かして、前記チャートに対する前記撮像装置の位置及び姿勢を調整するための移動指標、前記評価値に基づいて生成する第3の生成手段と、前記移動指標を、前記合成画像に重畳表示する表示制御手段と、を備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、チャートと撮像装置の相対的な位置合わせを行う情報を取得することができる情報処理装置を提供することが可能となる。
【図面の簡単な説明】
【0012】
図1】本発明の第1の実施形態に係わる撮像装置の構成を示すブロック図。
図2】撮像装置のキャリブレーション処理を示すフローチャート。
図3】簡易位置合わせ処理を示すフローチャート。
図4】簡易位置合わせ処理中の表示画面を説明する図。
図5】位置合わせ処理を示すフローチャート。
図6】レンズ歪曲量の推定処理を説明する図。
図7】位置合わせ処理中の表示画面を説明する図。
図8】第2の実施形態の位置合わせ処理を示すフローチャート。
図9】第2の実施形態における撮像画像と擬似画像とから乖離度を算出する処理を説明する図。
図10】乖離度に基づいた指標の表示画面を説明する図。
図11】第3の実施形態におけるキャリブレーション処理を示すフローチャート。
図12】第3の実施形態における画角合わせ処理を示すフローチャート。
図13A】第3の実施形態におけるチャートと撮影画像の差分算出処理を示すフローチャート。
図13B】第4の実施形態におけるチャートと撮影画像の差分算出処理を示すフローチャート。
図14】第3の実施形態におけるカメラ移動量の算出処理を示すフローチャート。
図15】第3の実施形態におけるカメラの移動量の算出を説明する図。
図16】第3の実施形態におけるカメラの移動量の算出を説明する図。
図17】第3の実施形態におけるカメラの移動量の算出を説明する図。
図18】第3の実施形態における画角合わせ中及び完了後のカメラ表示を説明する図。
図19】第3の実施形態におけるチャートと撮影画像の差分算出処理を説明する図。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0014】
<第1の実施形態>
(撮像装置の構成)
以下、本発明の情報処理装置の第1の実施形態である撮像装置の構成について説明する。図1は、撮像装置100の構成を示すブロック図である。
【0015】
図1において、撮像装置100は、撮像制御装置130と撮像制御装置130に交換可能に装着される撮像レンズ110とを備えて構成されている。撮像装置100の例としては、被写体を撮影して、動画や静止画のデータを各種記録メディアに記録可能なビデオカメラやスチルカメラなどが挙げられるが、これらに限定されるものではない。以降、撮像装置100をカメラ100として説明する。
【0016】
演算装置136は、撮像制御装置130全体の制御を行う。また、電気接点ユニット150を介して、撮像レンズ110内のレンズ群、絞りの駆動を行うための指令、撮像レンズ110内で保持しているレンズ情報(光学情報等)を撮像制御装置130へ送信させるための指令などを、レンズ制御部121に送信する。
【0017】
撮像レンズ110は、固定レンズ群111、ズームレンズ112、絞り113、手振れ補正レンズ114、フォーカスレンズ115を含む撮像光学系を備えたレンズユニットとして構成されている。また、各レンズ、絞りを駆動するための駆動部はレンズ制御部121とバス122を介して接続され、レンズ制御部121により制御される。レンズ制御部121は、演算装置136の命令に従い、ズーム駆動部116、絞り駆動部117、手振れ補正駆動部118、フォーカス駆動部119を介して、各種レンズ、絞りを制御する。
【0018】
絞り駆動部117は、絞り113を駆動することにより、絞り113の開口径を調整して撮影時の光量調整を行う。ズーム駆動部116は、ズームレンズ112を駆動することにより、焦点距離を変更する。手振れ補正駆動部118は、撮像レンズ110の振れに応じて、手振れ補正レンズ114を駆動することにより、手振れに起因する像ブレを軽減する。フォーカス駆動部119は、フォーカスレンズ115を駆動することにより、焦点状態(フォーカス状態)を制御する。各種レンズ111,112,114,115は、図1には単レンズとして簡略的に示されているが、通常複数のレンズから構成されている。
【0019】
電気接点ユニット150には、撮像レンズ110と撮像制御装置130の通信に用いられる2本の通信ラインにそれぞれ対応する電気接点(撮像制御装置側端子/撮像レンズ側端子)が、配置されている。レンズ制御部121は、電気接点ユニット150を介して撮像制御装置130と通信を行うとともに、レンズ操作部120からの操作情報に応じてズーム駆動部116、絞り駆動部117、フォーカス駆動部119を駆動制御する。また、レンズ制御部121は、電気接点ユニット150を介して撮像制御装置130と通信を行い、演算装置136からの命令を受信する。さらに、撮像レンズ110内に保持しているレンズ情報(光学情報等)を撮像制御装置130側からの送信要求に基づいて送信する(以降、レンズ制御部121と演算装置136の通信をレンズ通信と呼ぶ)。
【0020】
レンズ操作部120には、ズーム操作リング、フォーカス操作リング、絞り操作リング、レンズ内手振れ補正をオン/オフするための操作スイッチなどの操作部材が設けられている。それらの各操作部材がユーザーにより操作されると、操作指示信号がレンズ制御部121に出力され、レンズ制御部121は該当操作に応じた制御を行う。
【0021】
撮像レンズ110の撮像光学系を通過した光束により撮像素子131上に結像される被写体像は、撮像素子131により電気信号に変換される。撮像素子131は、光電変換により被写体像(光学像)を電気信号に変換する光電変換素子である。撮像素子131上に結像された被写体像を光電変換して得られた電気信号は、撮像信号処理部132により画像信号(画像データ)として処理される。
【0022】
撮像素子制御部133は、演算装置136から、撮像素子131の蓄積時間、撮像素子131から撮像信号処理部132へ出力するゲインの値の指示を受け取り、撮像素子131を制御する。
【0023】
撮像信号処理部132から出力される画像データは、撮像素子制御部133に送られ、一時的に揮発性メモリ138に格納される。さらに画像データは、画像処理部137において補正処理や圧縮処理を施された後、メモリカードなどの記録媒体143に記録される。
【0024】
これと並行して、表示制御部141は、演算装置136の命令に基づき、揮発性メモリ138に格納された画像データに対して、撮像制御装置130に搭載されたディスプレイなどの表示部140に最適なサイズへの縮小、拡大処理を行う。最適なサイズに処理された画像データは、再度揮発性メモリ138の処理前とは異なる領域に一時的に格納される。さらに表示制御部141は、画像データに対して、露出設定などの撮像情報を文字やアイコンなどで重畳する。各種情報が重畳された画像データを表示部140に送信することにより画像が表示される。これにより、ユーザーはリアルタイムで撮像画像を観察することができる(以下、リアルタイムで観察できる画像を、ライブビュー画像と呼ぶ)。また、本実施形態で実施する撮像画像と疑似画像の重畳処理に関しても、表示制御部141で制御を行う。
【0025】
手振れ補正制御部135は、演算装置136からの命令に基づき、手振れ補正駆動部134を介して、撮像素子131を手振れによる像ブレが補正される方向に制御する。また、手振れ補正駆動部134は、撮像レンズ110の手振れ補正駆動部118と連動した駆動も可能であり、単体で補正するよりもさらに大きい範囲の手振れ補正が可能である。
【0026】
操作部142は、ユーザーが撮像制御装置130内の各部への指示を行うための操作部材であり、例えば、撮像動作や焦点調節動作を制御する操作スイッチ、操作リング、操作レバー、または、表示部140上に設置されているタッチパネルなどを含む。ユーザーによる操作部142の操作により入力されたカメラ100の駆動条件に関する指示は、演算装置136へ送信される。そして、演算装置136はその操作指示信号に基づいて、各部に命令を送信する。
【0027】
揮発性メモリ138は、上記の画像データの一時的な格納だけでなく、撮像制御装置130の各部での処理で使用される一時データや撮像レンズ110から取得したレンズ情報等を格納するためにも使用される。
【0028】
不揮発性メモリ139は、カメラ100の動作に必要な制御プログラムを記憶している。ユーザーの操作によりカメラ100が起動されると(電源オフ状態から電源オン状態へ移行すると)、不揮発性メモリ139に格納された制御プログラムが揮発性メモリ138の一部に読込まれる(ロードされる)。演算装置136は、揮発性メモリ138にロードされた制御プログラムに従ってカメラ100の動作の制御を行う。また、不揮発性メモリ139は、書込みも可能であり、不揮発性メモリ139内には、本実施形態で使用されるチャート情報と歪曲収差の情報を記憶する、チャート情報記憶部139aとレンズ歪曲情報記憶部139bとを有する。
【0029】
記憶媒体143は、SDカードのような読み書き可能なメモリカードであり、撮像された画像(動画像または静止画像)、また画像と関連付けられたメタデータなどを保存するために使用される。また、不揮発性メモリ139内のチャート情報記憶部139aとレンズ歪曲情報記憶部139bの代わりとして使用することも想定される。
【0030】
(キャリブレーション処理の概略)
次に、図2を用いて、キャリブレーション処理の概略について説明する。本実施形態では、撮像レンズ110の歪曲収差を補正するために、実際にカメラ100で収差補正用のキャリブレーションチャートを撮像する必要がある。キャリブレーション処理とは、キャリブレーションチャートとカメラ100の位置合わせを行った後、このキャリブレーションチャートをカメラ100で撮像して、撮像レンズ110の歪曲収差の情報を取得する動作を指す。
【0031】
以下、キャリブレーション処理を実行する前に上述した撮像制御が開始され、ライブビュー画像を観察できる状態であることを前提に説明する。また、このキャリブレーション動作自体は、ユーザーが操作部142を介して表示部140に表示されているメニューからキャリブレーション処理を実行するように選択した後の動作となる。また、カメラ100の撮像画像は、常にチャートに対して焦点が合っている状態であることを前提に説明する。焦点を合わせる方法は、手動で行ってもよいし、オートフォーカスで行ってもよく、特に限定されるものではない。
【0032】
まず、ステップS201において、演算装置136は、キャリブレーション処理を開始し、ステップS202へ処理を進める。
【0033】
ステップS202では、演算装置136は、キャリブレーションモードをオン状態とする。具体的には、揮発性メモリ138で格納されているキャリブレーションモード用のフラグをオン状態に変更する。
【0034】
ステップS203では、演算装置136は、カメラ100とキャリブレーションチャートの簡易位置合わせ処理を行う。この簡易位置合わせ処理は、初期位置合わせにあたり、大まかにカメラ100の光軸中心とキャリブレーションチャートの中心の位置合わせや撮影画角合わせを行う。この簡易位置合わせ処理の詳細な内容に関しては後述する。
【0035】
ステップS204では、演算装置136は、ステップS203の簡易位置合わせ処理が完了したか否かを判定する。簡易位置合わせ処理が完了した場合には、ステップS205へ処理を進め、完了しなかった(簡易位置合わせ時にエラーまたはユーザーにより処理が中止された)場合には、ステップS208へ処理を進める。
【0036】
ステップS205では、演算装置136は、カメラ100とキャリブレーションチャートの位置合わせ処理を行う。この位置合わせ処理では、ステップS203の簡易位置合わせ処理に対して、画像周辺(高像高)部分まで確認しながら詳細な位置合わせを行い、レンズの歪曲量を算出するための画像撮影を行える設置状態になるまでを行う。この位置合わせ処理の詳細な内容に関しては後述する。
【0037】
ステップS206では、演算装置136は、ステップS205の位置合わせ処理が完了したか否かを判定する。位置合わせが完了した場合には、ステップS207へ処理を進め、完了しなかった(位置合わせ時にエラーまたはユーザーにより処理が中止された)場合には、ステップS208へ処理を進める。
【0038】
ステップS207では、演算装置136は、位置合わせ処理が完了したカメラ100とチャートの設置状態においてキャリブレーションチャートの撮影を行う。演算装置136は、撮影した画像を記憶媒体143へ保存し、ステップS208へ処理を進める。
【0039】
ステップS208では、演算装置136は、キャリブレーションモードをオフ状態にする。そして、ステップS209へ処理を進め、キャリブレーション処理を終了させる。
【0040】
実際の撮影現場では、複数の撮像レンズや、ズームレンズの場合では複数の焦点距離で撮影を行う場合が想定される。この場合、撮像レンズ毎または焦点距離毎に、図2のステップS201~S209の処理を繰り返し実行する。
【0041】
以上の処理を実行することにより、キャリブレーションチャートとカメラの位置合わせを精度良く行った上でレンズの歪曲量を算出するための画像の取得が可能となる。VFX合成のポストプロダクション作業において、専用のアプリケーションを用いることによって、この撮影された画像からレンズの歪曲量が算出され、各種合成処理などに用いられる。
【0042】
(簡易位置合わせ処理)
次に、図3を用いて、図2のステップS203での簡易位置合わせ処理の詳細動作について説明する。本実施形態におけるフローチャートの処理は、カメラ100の起動時に不揮発性メモリ139から揮発性メモリ138にロードしたコンピュータープログラムに基づいて演算装置136が実行するものとする。以降のフローチャートの動作も同様である。
【0043】
まず、ステップS301において、演算装置136は、簡易位置合わせ処理を開始する。
【0044】
ステップS302では、演算装置136は、上述した撮像制御中の撮像画像を揮発性メモリ138から読み出し、揮発性メモリ138の別領域に一時的に保存する。また、位置合わせのために用いられるチャート情報をチャート情報記憶部139aから取得する。
【0045】
ステップS303では、演算装置136は、ステップS302で取得されたチャート情報に基づいて、疑似画像を生成する。疑似画像は、歪曲処理を施す前または歪曲処理を施さない画像とする。ここで、歪曲処理とは、もともとレンズの歪曲収差が無いチャート画像をレンズの歪曲収差に合わせて意図的に歪ませ、レンズの歪曲収差(歪曲量)を反映させた画像に変換する処理のことである。以下、歪曲処理を施す前または歪曲処理を施さないチャートの疑似画像を基準画像と呼ぶ。
【0046】
チャート情報とは、基準画像や疑似画像を生成するために必要な情報である。例えば、被写体となるキャリブレーションチャート画像そのものや、キャリブレーションチャートの格子1個分のサイズなどである。これらの情報は撮像レンズの焦点距離と関連付けされたものであれば、撮像レンズを交換したり、ズームレンズにおいて焦点距離を変更したりした場合でも、焦点距離に応じた処理を自動で行うことが可能となる。また、キャリブレーション処理の実行前に、ユーザー自身が、チャート情報を撮像制御装置130内のチャート情報記憶部139aや記憶媒体143に記憶させておくことを想定している。
【0047】
ただし、チャート情報が記憶されていない場合や、チャート情報と実際の撮像画像が大きく異なる場合には、次のようにしてもよい。つまり、チャート情報生成モードを設け、撮像制御装置130上でユーザーによる選択や入力により、チャート情報を生成する。あるいは撮像画像の中心部分の格子部分1個分のサイズを検出することにより、チャート情報を生成する。そして、新たなチャート情報として、チャート情報記憶部139aに保存する。
【0048】
ここで、チャート情報に基づいた基準画像生成の一例について説明する。ここでは、焦点距離に対応したチャート画像を不揮発性メモリ139aに記憶していることを前提に説明する。
【0049】
まず、演算装置136は、不揮発性メモリ139aからチャート情報を読み出す。あわせて、レンズ通信によって、撮像制御装置130に装着されている撮像レンズ110の焦点距離の取得を行う。あるいは、レンズ通信不可のレンズでは、ユーザー自身が撮像制御装置130に対して焦点距離を設定してもよい。
【0050】
読み出されたチャート情報は、焦点距離に対応したチャート画像となっているため、レンズ通信によって取得した焦点距離と異なっている場合は、焦点距離の差に応じた処理をチャート画像に施す必要がある。そこで、演算装置136は、画像処理部137に対し、撮像レンズの焦点距離を通知するとともに焦点距離の差(倍率)に応じた拡大/縮小処理を行うように指示する。画像処理部137は、指示に基づいて、読み出されたチャート画像に対し、拡大/縮小処理を行う。続いて、演算装置136は、生成した基準画像を揮発性メモリ138に一時的に保存し、ステップS304へ処理を進める。
【0051】
ステップS304では、演算装置136は、表示部140と表示制御部141により撮像画像に基準画像の重畳処理を行う。まず、表示制御部141は、揮発性メモリ138に一時保存された、撮像画像と基準画像とをそれぞれ読み出す。そして、取得した撮像画像に対して基準画像が上側に重なるように表示されるよう画像合成を行う。以降、この処理を重畳処理と呼ぶ。また、重畳処理された画像を重畳画像(合成画像)と呼ぶ。
【0052】
この時、単純に基準画像を重畳処理するだけでは、下側の撮像画像が観察できず、また、撮像画像と基準画像との差分の観察が難しい。そのため、表示制御部141は、基準画像に対し必要な画像処理を行う。例えば、基準画像から撮像画像を透けて観察できるように基準画像に対して透過処理を施したり、撮像画像のチャート格子部分の黒に対応する、疑似画像の黒の部分を赤などの他の色に変換する処理を施したり、パターン処理を施したりする。そして、表示制御部141は、重畳画像を一時的に揮発性メモリ138へ保存する。
【0053】
続いて、表示制御部141は、表示部140に重畳画像の一時保存先を通知した上で、表示更新を行うように命令する。表示部140は、一時保存された重畳画像を揮発性メモリ138から読み出し、表示する。この表示部140に表示された重畳画像を観察することで、ユーザーは撮像画像と疑似画像の乖離具合を確認することができる。つまり、キャリブレーションチャートとカメラとの位置ずれを観察することが可能となる。そして、ユーザーはこの位置ずれを最小限にするように、カメラ100またはキャリブレーションチャートの位置や姿勢を変更し、位置合わせを行う。
【0054】
簡易位置合わせ中の表示画面の一例を、図4を用いて説明する。図4(a)から図4(e)は、表示部140に表示中の画面を示している。なお、キャリブレーションチャート自体は、上述したように白と黒の格子が繰り返し配置されたチャートであるが、以降は、撮像画像の黒格子部を右下がり斜線のハッチング、基準画像または疑似画像の黒格子部を右上がり斜線のハッチングで表す。
【0055】
図4(a)は、撮像画像410のみが表示されている状態を示している。401と402は、撮像画像の中心が視認しやすいように光学中心で交差するように示した、垂直マーカーと水平マーカーを示す。また、キャリブレーションチャートの中心位置が視認しやすいように、黒の矩形のマーカー403を示したが、実際にキャリブレーションチャートの中心位置にマーカーを配置したり、中心位置を含む矩形部分のみ色を白黒とは異なる色に設定してもよい。あわせて、重畳処理を実施する際、基準画像側の中心位置を含む格子部分をキャリブレーションチャートのマーカーや色に合わせて、中心位置合わせが視認しやすいように表示方法や色を変更してもよい。
【0056】
次に、図4(b)は、図4(a)の撮像画像410のみが表示された状態に対して、基準画像411が重畳表示されている状態を示している。この重畳表示された基準画像411に基づいて簡易位置合わせを行う。この例では、ユーザーがカメラ100の光軸中心とキャリブレーションチャートの中心が合うようにカメラ100の位置や姿勢を変更する。
【0057】
図4(c)は、撮像画像410と基準画像411の中心位置を合わせた状態を示しており、撮像画像410と基準画像411はまだ合っていない(大きさが合っていない)状態である。この状態から、カメラ100をチャートに近づけていき、図4(d)の表示状態になるように、ユーザーは位置を変更する。以上の処理を実行することにより、カメラ100とチャートの簡易位置合わせが完了した状態になる。
【0058】
また、前述したとおり、基準画像は、レンズ通信によって取得またはユーザーよって設定される焦点距離に応じて、拡大/縮小処理を行うことを可能としている。しかし、撮像レンズによっては、焦点距離自体がわからず、基準画像を拡大/縮小することができない場合がある。このような場合は、図4(c)の大きさが合っていない状態から、ユーザーが操作部140を操作し、基準画像411の拡大/縮小を行い、撮像画像410と基準画像411が目視で合っていると判断できるまで(図4(d)と同様の状態になるまで)、操作を行う。
【0059】
次に、ステップS305では、演算装置136は、簡易位置合わせを継続するか否かを判定する。これは、ユーザーが簡易位置合わせを完了させたか否かを判定することを目的とする。例えば、重畳画像に対して、“OK”/“CANCEL”といったボタン状のユーザーインターフェースをさらに重畳表示し、“OK”を完了、“CANCEL”を中止に割り当てておく。そして、ユーザーが簡易位置合わせを完了あるいは中止を決定した場合に、操作部142を介して、“OK”(完了)、“CANCEL”(中止)どちらかを選択する。つづいて、演算装置136は、位置合わせ処理を継続するか否かが選択されているかの判定を行う。もし、完了または中止が選択されていない場合、ステップS302へ処理を戻し、ステップS302~S304の処理を、完了、中止いずれかが選択されるまで、または操作部142を介して強制終了されるまで継続して行う。完了、中止いずれかが選択されている場合は、ステップS306へ処理を進める。
【0060】
ステップS306では、演算装置136は、ステップS305で、完了、中止のどちらが選択されたか、つまり、簡易位置合わせが完了したか否かの判定を行う。演算装置136は、ステップS305において、完了が選択されていた場合は、ステップS307に処理を進め、簡易位置合わせ結果を“OK”と設定する。また、中止の場合は、ステップS308に処理を進め、簡易位置合わせ結果を“CANCEL”と設定する。
【0061】
ステップS309では、演算装置136は、ステップS307またはS308のいずれかで設定された簡易位置合わせ結果を、揮発性メモリ138へ一時的に保存する。あわせて、演算装置136は、簡易位置合わせ完了時の基準画像をチャート情報記憶部139aにチャート情報として保存する。
【0062】
ステップS310では、演算装置136は、簡易位置合わせ処理を終了する。
【0063】
(位置合わせ処理)
続いて、図5を用いて、簡易位置合わせ処理よりも高精度に位置合わせを行う位置合わせ処理について説明する。
【0064】
まず、ステップS501において、演算装置136は、位置合わせ処理を開始する。
【0065】
ステップS502では、演算装置136は、不揮発性メモリ139内のチャート情報記憶部139aからチャート情報の読み出しを行う。
【0066】
ステップS503では、演算装置136は、上述した撮像制御中の撮像画像を揮発性メモリ138から読み出し、揮発性メモリ138の別領域に一時的に保存する。
【0067】
ステップS504では、演算装置136は、レンズ歪曲量取得処理を行い、ステップS504に処理を進める。
【0068】
レンズ歪曲量取得処理のうち、推定処理の一例について図6を用いて説明する。図6(a)は、キャリブレーションチャートの格子情報(各格子と格子4隅の位置を識別するための情報)を説明する図である。
【0069】
ここでは、格子の数が白黒あわせて水平方向に17個、垂直方向に12個配置されており、格子部4隅の位置を識別するために、水平方向に番号0から17を付し(i0~i17)、垂直方向に番号0から11を付す(j0~j11)。次に格子1個ずつを識別するために、左上から連番で0から186の番号を付す(g0~g186)。したがって、左上の格子g0の4隅の座標は、左上(xi0j0,yi0j0)、右上(xi1j0,yi1j0)、左下(xi0j1,yi0j1)、右下(xi1j1,yi1j1)と表すことができる。
【0070】
さらに図6(b)のように、撮像画像と基準画像それぞれの座標を識別できるように撮像画像の格子部601の座標を、左上(Cxi0j0,Cyi0j0)、右上(Cxi1j0,Cyi1j0)、左下(Cxi0j1,Cyi0j1)、右下(Cxi1j1,Cyi1j1)とする。また、基準画像側の格子部602の4隅の座標を、左上(Rxi0j0,Ryi0j0)、右上(Rxi1j0,Ryi1j0)、左下(Rxi0j1,Ryi0j1)、右下(Rxi1j1,Ryi1j1)とする。
【0071】
次に、上記の各格子情報に基づいて行われる推定処理について説明する。まず、レンズ歪曲収差は一般的に下記の式でモデル化される。xd,ydは歪曲ありの座標、xu,yuは歪曲なしの座標であり、K1からK5はレンズ歪曲量を表す係数である。
【0072】
xd=(1+K1r2+K2r4+K5r6)xu+2K3xuyu+K4(r2+2xu2)
yd=(1+K1r2+K2r4+K5r6)yu+K3(r2+2yu2)+2K4xuyu
2=xu2+yu2
これらの式を用いて計算したレンズ歪曲量をレンズ歪曲情報記憶部139bに保存する。この時、レンズ歪曲量とあわせて、撮像レンズの焦点距離やレンズID、シリアル番号などを関連付けして保存してもよい。そうすることで、再度キャリブレーションを行う場合に流用することができる。
【0073】
上記の式のうち、K3とK4が接線方向の歪曲収差を表わすが、実使用上は無視できることも多いため、以下の式のように簡略化したモデルも多く用いられている。
【0074】
xd=(1+K1r2+K2r4+K5r6)xu
yd=(1+K1r2+K2r4+K5r6)yu
図6の格子g=0における左上の座標は下記の通りとなる。
【0075】
Cxi0j0=(1+K1r2+K2r4+K5r6)Rxi0j0
Cyi0j0=(1+K1r2+K2r4+K5r6)Ryi0j0
2=Rxi0j02+Ryi0j02
この関係式を用いて、撮像画像と基準画像の各格子(g=0~186)の4隅の座標が一致または近い値になるように、歪曲量K1,K2,K5を探索する。探索した結果、一致または近い座標を得ることができれば、推定完了と判断できる。
【0076】
本実施形態では、各格子の4隅のみを一致させるように説明したが、ある程度一致した状態で、さらに各格子の4隅の間の座標を分割し、さらに比較する座標を増やすことで推定する歪曲量の精度が向上する。また本実施形態では、推定処理を歪曲量を表す係数の探索としたが、これに限定されるものではない。続いて、演算装置136は、推定したレンズ歪曲量をレンズ歪曲情報記憶部139bに保存する。
【0077】
また、本実施形態では、レンズ歪曲量を、撮像画像と、撮像制御装置130内に記憶したチャート情報とから推定する方法について説明した。しかし、撮像レンズによっては、撮像レンズ110内や撮像制御装置130(不揮発性メモリ139)内に各レンズの状態(焦点距離など)に応じたレンズ歪曲量が記憶されている場合がある。これらのレンズ歪曲量は、撮像レンズ設計時や製造時に決定されるものである。歪曲量が撮像レンズ内に記憶されている場合、ステップS506のレンズ歪曲量取得の処理で、レンズ通信を行い、レンズ側から通信の実行時点の各レンズ位置の歪曲量を取得する。撮像制御装置130側に記憶している場合、まずレンズ通信を行い、各撮像レンズに割り振られている固有の番号(以降、レンズIDとする)を取得する。そして、レンズIDと各レンズ位置に関連付けられたレンズ歪曲量を不揮発性メモリ139から読み出す。これらのレンズ歪曲量に基づいて、後述する疑似画像を生成してもよい。
【0078】
次に、ステップS505では、演算装置136は、ステップ504で取得したレンズ歪曲量とチャート情報とから擬似画像を生成する。歪曲処理を施す前の処理に関しては、図3のステップS303の基準画像生成の処理と同様であるため、説明を省略する。続いて、演算装置136は、揮発性メモリ138に一時保存された基準画像を読み出すとともに、不揮発性メモリ139bに記憶されたレンズ歪曲量を読み出す。そして、演算装置136は、画像処理部137に対して、基準画像に歪曲処理を施すように命令する。画像処理部137は、読み出された基準画像とレンズ歪曲量とから歪曲歪が反映された疑似画像を生成し、揮発性メモリ138に一時的に保存し、ステップS506へ処理を進める。
【0079】
ステップS506では、ステップS505で生成した疑似画像を撮像画像に対して重畳して表示を行う。なお、処理自体は図3のステップS304の処理と同様であるため、処理内容に関しては説明を省略する。ユーザーは、この撮像画像に擬似画像を重畳された重畳画像を観察し、一致させることで、カメラ100とチャートの位置合わせを行う。
【0080】
位置合わせ中の表示画面の一例を、図7を用いて説明する。図7(a)から図7(c)は、表示部140に表示されている画面を示している。図7(a)は、図2のステップS203、S204の簡易位置合わせが完了した状態を示している。図7(b)は、図7(a)の撮像画像710に基準画像711が重畳表示された状態から、基準画像711に歪曲処理を施した疑似画像712を生成し、重畳表示した状態を示している。図7(b)では、基準画像と疑似画像が若干ずれている例を示している。この状態から図7(c)の位置合わせ完了状態となるまで撮像画像と疑似画像が可能な限り一致するように、ユーザーによってカメラ100の位置や姿勢が変更される。
【0081】
位置合わせ処理を実行している間、常にレンズ歪曲量の推定を行った上で、疑似画像が生成される。そのため、カメラ100とチャートの位置関係が正対状態に近づけば近づくほど、歪曲量の推定精度が上がり、撮像画像と疑似画像の乖離具合が小さくなっていくと想定される。また、簡易位置合わせ処理とは異なり、周辺像高まで撮像画像と疑似画像が一致しているか否かの確認を行うことができるので、ユーザーは操作部140を操作し、確認したい画像位置を拡大表示し、一致具合を確認することが可能になる。その結果、歪曲が大きいレンズにおいても、周辺像高まで撮像画像と疑似画像を一致させることで、カメラ100とチャートの位置合わせを精度良く行うことが可能となる。
【0082】
次に、ステップS507では、演算装置136は、位置合わせを継続するか否かを判定する。なお、この処理は図3のステップS305の処理と同様であるため、処理内容に関しては説明を省略する。この時、完了または中止が選択されない場合は、演算装置136は、ステップS503へ処理を戻す。そして、ステップS503~ステップS506までの撮像画像取得から疑似画像の重畳表示までの処理を、完了、中止のいずれかが選択されるまで、または操作部142を介して強制終了されるまで継続して行う。また、完了または中止が選択された場合は、ステップS508へ処理を進める。
【0083】
ここで、ステップS508~ステップS510の処理は、図3のステップS306~S308の処理と同様であるため、説明を省略する。
【0084】
ステップS511では、演算装置136は、ステップS509またはS510いずれかで設定された位置合わせ結果を、揮発性メモリ138へ一時的に保存する。あわせて、演算装置136は、位置あわせ完了時の疑似画像をチャート情報記憶部139aにチャート情報として保存する。
【0085】
ステップS512では、演算装置136は、位置合わせ処理を完了させる。
【0086】
なお、図2のステップS207のレンズ歪曲量の算出用画像の撮影及び保存処理を実行する際、画像本体と併せて、この位置合わせ結果や位置合わせ完了時のレンズ情報、レンズ歪曲量、チャート情報などの各種情報を画像本体または画像と関連付けされた情報(メタデータ)として記憶媒体143に保存してもよい。
【0087】
また、本実施形態では、位置合わせ処理のステップS503~S506までの疑似画像生成の周期に合わせて、重畳画像の表示を更新するように説明した。これは、ステップS504~S506までの重畳画像生成までの処理時間が撮像周期(撮像素子131の読み出し周期)の1周期分の時間より長い場合に、表示されている撮像画像と疑似画像を生成した時の撮像画像とが異なることを避けるためである。ただし、上述した重畳画像生成までの時間が撮像周期1周期分の時間より短い場合は、撮像周期に合わせた重畳画像生成および表示更新が可能となる。また、表示更新の周期が遅くてもよい場合は、カメラ100の動きに合わせて、疑似画像の生成を行った上で、表示更新を行ってもよい。なお、カメラ100の動きは、撮像画像が変化した場合を検出する、または撮像制御装置130内にジャイロセンサなどを設けて姿勢変化などの動きを検出するなどの方法で検出することができる。
【0088】
また、本実施形態では、簡易位置合わせ処理を行った後に、位置合わせ処理を行うように説明した。しかし、上述したレンズ歪曲量が撮像レンズ110または撮像制御装置130内に記憶されている場合や、中心位置合わせをせずともレンズ歪曲量を推定できる(チャートが画角全面に含まれる)場合は、位置合わせ処理から実行するようにしてもよい。
【0089】
以上のように、本実施形態では、撮像制御装置内に被写体となるチャート情報を記憶しておき、レンズ歪曲量の情報とチャート情報とから歪曲処理を施した疑似画像を生成する。そして、撮像画像に重畳表示することで、精度良く且つ効率的に撮像制御装置とチャートの位置合わせを行うことが可能となる。
【0090】
<第2の実施形態>
第1の実施形態では、撮像制御装置内に記憶しておいたチャート情報とレンズ歪曲量の情報とから歪曲処理を施した疑似画像を生成し、撮像画像に重畳表示させることで、撮像制御装置とチャートの位置合わせを精度よく且つ効率的に行う方法について説明した。第2の実施形態では、撮像画像と疑似画像の乖離度を算出し、算出した乖離度に応じた情報及び指示を、撮像画像に疑似画像を重畳表示した画像にさらに重畳させることで、位置合わせを正確に行う方法について説明する。
【0091】
第2の実施形態の処理の概略は、第1の実施形態で説明した図2の処理と同様であるため、説明を省略する。第2の実施形態では、図2のステップS205における位置合わせ処理が第1の実施形態と異なるため、その処理内容について説明する。
【0092】
まず、図8を参照して、第2の実施形態における位置合わせ処理について説明する。なお、ステップS801~S805の処理は、第1の実施形態の図5のステップS501~S505の処理と同様であり、ステップS808~S813の処理は、ステップS507~S512の処理と同様であるため、説明を省略する。
【0093】
演算装置136は、ステップS801~S805までの処理を実行し、揮発性メモリ138に撮像画像と疑似画像をそれぞれ一時的に保存する。
【0094】
ステップS806では、演算装置136は、撮像画像と擬似画像から乖離度を算出する。乖離度の算出方法の一例を、図9を用いて後述する。続いて、演算装置136は、算出した乖離度に基づいた評価値を揮発性メモリ138に一時的に保存する。
【0095】
ステップS807では、演算装置136は、表示部140と表示制御部141により撮像画像に疑似画像の重畳処理を行う。この重畳処理は、第1の実施形態の図5のステップS506の処理と同様であるため、説明を省略する。
【0096】
続いて、演算装置136は、ステップS806で算出された乖離度に基づいた評価値から、撮像画像と疑似画像を一致させるため、ユーザーがカメラ100の位置や姿勢を変更するように促す指標となるGUI(Graphical User Interface)を生成し、重畳画像に対してさらに重畳表示する。カメラ100を移動させる指標の表示の一例を図10を用いて後述する。
【0097】
また、本実施形態では、乖離度を撮像画像と疑似画像の各格子の4隅(特徴点)どうしの距離と方向(ベクトル)で表しているが、撮像画像と疑似画像の各格子(特定の領域)の重心点どうしの距離と方向で表してもよい。
【0098】
ステップS808では、演算装置136は、ユーザーが位置合わせの完了または中止を選択した場合には、ステップS809へ処理を進め、ステップS809~ステップS812までの処理を実行する。
【0099】
そして、演算装置136は、ステップS813において、位置合わせ処理を終了する。
【0100】
次に、乖離度の算出方法の一例を、図9を用いて説明する。ここでは、撮像画像と疑似画像の各格子部分の4隅の位置どうしの距離と方向(ベクトル)を用いるものとする。また、各格子と各格子4隅の位置を識別するための情報(番号)は図6(a)と同等であるものとする。
【0101】
図9(a)は、左上の格子(格子番号:g=0)における乖離度の算出を説明するための図である。撮像画像側の格子部901の4隅の座標を、左上(Cxi0j0,Cyi0j0)、右上(Cxi1j0,Cyi1j0)、左下(Cxi0j1,Cyi0j1)、右下(Cxi1j1,Cyi1j1)とする。また、疑似画像側の格子部902の4隅の座標を、左上(Rxi0j0,Ryi0j0)、右上(Rxi1j0,Ryi1j0)、左下(Rxi0j1,Ryi0j1)、右下(Rxi1j1,Ryi1j1)とする。左上を例にとって、この先の処理について説明する。
【0102】
疑似画像側格子902に対する撮像画像側格子901の左上どうしの距離と方向(ベクトル)Vi0j0を算出する。この時、Vi0j0は(Rxi0j0-Cxi0j0,Ryi0j0-Cyi0j0)で表される。続いて、右上Vi1j0、左下Vi0j1、右下Vi1j1の乖離度を算出する。そして、格子(格子番号:g=0)の乖離度は、Vddg0=(Vi0j0+Vi1j0+Vi0j1+Vi1j1)で表される。この乖離度の算出を、格子部全てか、黒白どちらか一方の格子部に対して行うようにする。続いて、演算装置136は、算出した各格子毎の乖離度を揮発性メモリ138に一時的に保存する。
【0103】
次に、演算装置136は、乖離度に基づいた評価値を算出し、カメラ100の移動指標の表示を行う。乖離度に基づいた評価値算出の一例について説明する。例えば、上述した各格子の乖離度VddgN(N=0~186)の総和を算出する。図9(b)や図9(c)では、撮像画像と疑似画像の乖離がない結果となる。また、図9(d)や図9(e)では、撮像画像に対し疑似画像が、下側もしくは右側にずれた結果となる。また、カメラ100の光軸中心を基準に4象限に分け、象限毎に総和を算出し、さらに象限どうしの差または和を算出してもよい。
【0104】
移動指標の表示例について、図10を用いて説明する。図10(a)は、カメラ100の移動方向のメッセージを、重畳画像に対してさらに重畳表示した例を示している。ユーザーは、メッセージに従ってカメラ100の位置を変更し、メッセージが消える、または完了した旨のメッセージが表示されるまで位置の微調整を行う。
【0105】
図10(b)は、カメラ100の移動方向を示すグラフィカルな図形を表示した例を示している。移動方向を示した矢印マークが表示されているが、移動量の値に応じて矢印の長さや大きさを変更してもよい。
【0106】
図10(c)は、カメラ100の移動方向と大まかな移動量をバーゲージによってガイド表示した例を示している。図10(c)のバーゲージ1003~1006は、カメラ100の移動をガイドするためのユーザーインターフェースである。バーゲージ1003,1004は水平方向、バーゲージ1005,1006は垂直方向を示している。
【0107】
バーゲージを表示するための評価値としては、上述した4象限の乖離度を用いる。水平方向かつ画像上方のバーゲージ1003は第1象限の乖離度と第4象限の乖離度の差、水平方向かつ画像下方のバーゲージ1004は第2象限の乖離度と第3象限の乖離度の差を示す。同様に、垂直方向かつ画像左側のバーゲージ1005は第3象限の乖離度と第4象限の乖離度の差、垂直方向かつ画像右側のバーゲージ1006は第1象限の乖離度と第2象限の乖離度の差を示す。
【0108】
黒塗りした三角が現在の状態を示しており、図10(c)では、垂直方向の位置は合っているが、水平方向の位置は左側にずれている状態を示している。ユーザーは、バーゲージ1003~1006を観察しつつ、カメラ100の位置を変更し、バーゲージ1003~1006がすべて同じ状態になるように微調整を行う。なお、図10(a)~図10(c)の移動指標の表示例は一例であり、これらに限定されるものではない。
【0109】
また、本実施形態では、位置合わせが完了したか否かは、ユーザーの目視確認そして判断によって行われる。そこで、上記の乖離度を使用して、位置合わせが完了したか否かの判定を行うようにする。例えば、乖離度に基づいた評価値が所定値以下になった場合に位置合わせ完了と判断し、必要な終了処理を実施した後に、位置合わせ処理を終了するようにしてもよい。
【0110】
また、ステップS201~S207で説明したキャリブレーション処理の概要では、位置合わせを完了した後に、レンズ歪曲量算出用の画像を撮影するように説明した。しかし、上述の乖離度を使用して位置合わせ完了と判断した場合には、自動でレンズ歪曲量の算出用画像を撮影するようにしてもよい。
【0111】
また、第1の実施形態においては、レンズ歪曲量が撮像レンズ110内または撮像制御装置130内に記憶されている場合について説明した。しかし、これらのレンズ歪曲量は各レンズ位置に対応した値とはなっているが、実際には撮像レンズ110や撮像制御装置130の記憶容量などの制限から、離散的な値となっている場合がある。その場合、レンズ位置によっては、歪曲処理を施した疑似画像でも、撮像画像との乖離が大きいことも想定される。この場合、第1の実施形態で説明した撮像画像とチャート情報とからレンズ歪曲量を推定する処理を並行して実行するようにしてもよい。その場合は、例えば、撮像装置110または撮像制御装置130で記憶しておいたレンズ歪曲量から生成した疑似画像と、推定したレンズ歪曲量から生成した疑似画像のそれぞれと撮像画像の乖離度を算出する。そして、乖離度の絶対値が小さい方の疑似画像を表示する。
【0112】
また、上記の説明では、ステップS806の撮像画像と疑似画像とから乖離度を算出する処理において、撮像画像のチャート格子部分の全てにおいて乖離度を算出するように説明した。しかし、レンズ歪曲量は光学中心から周辺像高(高像高)になるにつれ大きくなる傾向がある。そのため、乖離度を算出する領域をレンズ歪曲量や像高に応じて限定してもよい。その結果、算出処理の負荷を下げることが可能となる。
【0113】
また、このステップS806の処理で使用される疑似画像は、歪曲処理を施した画像としているが、乖離度に基づいた評価値は、乖離度の相対的な差から決定されるので、撮像画像と歪曲処理を施していない基準画像から乖離度を算出するようにしてもよい。
【0114】
また、ステップS807の撮像画像に擬似画像を重畳する処理において、ステップS806で算出した乖離度に応じて、重畳処理の内容を変更してもよい。例えば、乖離度に応じて、透過度を変える、色を変更する、または表示方法を変更するなどが考えられる。具体的には、色を変更する場合では、撮像画像のチャート格子部分の黒に対応する、疑似画像の黒の部分を赤にしている場合、乖離度が所定値以下の場合には、表示している色に対して視認しやすい対称となる色に変更する。この場合では、赤を青系(青やシアン)に変更する。そうすることで、乖離度が大きい部分の位置がわかりやすくなるため、より位置合わせを行いやすくなる。また、表示方法を変更する場合では、例えば、乖離度に基づく評価値が所定値を満たす場合には、疑似画像の格子部分を枠部分のみ表示するようにする。こうすることにより、色変更の場合と同様に乖離度が大きい部分の位置がわかりやすくなる。
【0115】
以上のように、本実施形態では、撮像画像と疑似画像とから乖離度を算出し、乖離度に基づいた指標を、撮像画像に擬似画像を重畳した画像に対してさらに重畳する。これにより、撮像装置とチャートとの位置合わせをより正確に行うことが可能となる。
【0116】
<第3の実施形態>
次に、キャリブレーション処理において、チャートとカメラの目視による位置合わせを行う際に発生する課題について説明する。また、ユーザーにカメラを移動させる量と方向を指示するとともに、最終的な微調整をカメラで行うことで手間を削減する方法について説明する。
【0117】
目視によりチャートとカメラの位置合わせを行う場合、位置が合っていない状態から位置が合う状態となるまでユーザーがあとどの程度カメラを移動させればよいのかわからない恐れがある。したがって、ユーザーはLCD上に表示されている表示チャートと撮影されている撮影チャートの一致を目視で確認しながら移動させる必要がある。またユーザーが目視で一致したと判断した場合でも、実際はLCD上では目視できない微小なズレが残っている可能性がある。微小なズレが残ってしまうと、キャリブレーション処理において取得したいレンズデータが画面中央を原点とした同心円状に取得できないことが考えられ、正確なレンズ情報を取得できない可能性がある。さらに、正確な画角合わせを行うために微小なズレも残さないようユーザーが画角合わせの追い込み作業を行うと、作業時間が増加するなどしてキャリブレーション作業に支障をきたす。
【0118】
上記の課題に対して、図11図19を用いて、チャートとカメラの位置合わせのためにユーザーにカメラを移動させる量と方向を指示するとともに、最終的な微調整をカメラで行う方法について説明する。
【0119】
図11図14は、本実施形態におけるキャリブレーション処理のためにカメラの位置合わせを行う処理を説明するためのフローチャートである。
【0120】
図11は、キャリブレーション処理における画角合わせ処理とキャリブレーション処理の手順を示している。
【0121】
まず、操作部142を介してユーザーがカメラ100をVFX合成のためのレンズデータを取得するキャリブレーションモードに変更すると、図11の処理が開始される。
【0122】
ステップS2101では、演算装置136は、画角合わせ処理を行い、処理をステップS2102に進める。画角合わせ処理の詳細については後述する。
【0123】
ステップS2102では、演算装置136は、ステップS2101において画角合わせ処理が完了したか否かを判断し、画角合わせ処理が完了していると判断した場合は画角合わせ処理を終了し、処理をステップS2103に進める。
【0124】
次に、ステップS2103ではキャリブレーション処理を実施して処理を終了する。
【0125】
次に、図12を用いて、ステップS2101における画角合わせ処理の詳細について説明する。
【0126】
まず、ステップS2201では、演算装置136は、前述したステップS2102において画角合わせ処理が完了したか否かを判断するためのフラグ情報を、未完了状態に初期化する。
【0127】
ステップS2202では、演算装置136は、チャート情報記憶部139aに記録されているチャートのモデルデータを読み出す。モデルデータは、第1及び第2の実施形態で説明したチャート情報から生成した疑似画像または基準画像に相当する。
【0128】
ステップS2203では、演算装置136は、ステップS2202で読み出したチャートのモデルデータとカメラが撮影したチャートの撮影画像とから、ズレ量を表す差分を算出する。本処理の詳細については図13を用いて後述する。
【0129】
ステップS2204では、演算装置136は、ステップS2203で算出したズレ量からカメラ100を移動させるべき方向と量を算出する。本処理の詳細については図14を用いて後述する。
【0130】
ステップS2205では、演算装置136は、ステップS2203で算出したズレ量または、ズレ量に基づいてステップS2204で算出したカメラ100の移動量Gが閾値未満であるか否かを判断する。閾値未満であると判断した場合は、処理をステップS2206に進め、閾値以上であると判断した場合は処理をステップS2209に進める。
【0131】
ステップS2206は、演算装置136が、ステップS2205においてカメラ100の移動量Gが閾値未満であると判断した場合である。カメラ100の移動量Gが小さい場合とは、ユーザーが手動で行う調整では、それ以上チャートに対するカメラ位置の微調整が困難であると判断した場合の処理である。従って、ユーザーにはカメラの移動を行わせず、カメラ内部で画角の中心位置合わせを実施する。
【0132】
具体的には、演算装置136が、チャートと撮影画像の差分が最小となるように、ステップS2203で算出した差分に基づいて手振れ補正レンズ114の駆動量を算出する。そして、電気接点ユニット150を介してレンズ制御部121に対して、手振れ補正レンズ114を駆動する指示を出力する。この指示を受信したレンズ制御部121は手振れ補正駆動部118に対して手振れ補正レンズ114を駆動する命令を出力し、手振れ補正駆動部118は実際に手振れ補正レンズ114を駆動する。もしくは、演算装置136がステップS2203で算出した差分に基づいて撮像素子131に対する手振れ補正駆動部134の駆動量を算出し、手振れ補正制御部135に対して撮像素子131を駆動する命令を出力する。そして、手振れ補正駆動部134は、実際に撮像素子131を駆動する。もしくは、上述した手振れ補正レンズ114と撮像素子131の両方を駆動してもよい。これらの2つの部材を駆動した場合に、各レンズ110~115及び撮像素子131が光軸上にある状態と比較して、最も歪曲量のデータ変化が小さくなる位置に駆動することが望ましい。
【0133】
ステップS2207では、演算装置136は、ステップS2206においてカメラ100の内部で画角の中心合わせを実施したため、表示制御部141が、ユーザーによる画角合わせ操作が完了した旨の表示を表示部140に表示する。
【0134】
ステップS2208では、演算装置136は、画角合わせが完了した旨のフラグをONにして処理を終了する。なお、本フラグはステップS2102において画角合わせが完了したか否かを判断するために用いる。
【0135】
ステップS2209は、ステップS2205においてズレ量が閾値以上であると判断した場合であり、ユーザーが画角合わせを行う量が残っている場合である。従って、表示制御部141は、ユーザーによる画角合わせが完了していない旨の表示を表示部140に行う。一例として、ステップS2204で算出したカメラ100の移動量Gのうち、チャートに対して垂直方向の移動量と水平方向の移動量及び移動方向を表示する方法が考えられる。
【0136】
以上の処理により、チャートに対してカメラ100の位置ずれが大きい場合はユーザーがカメラの移動量と移動方向を認識した上で移動させることができる。かつ、ユーザーが合わせきれないような微小なズレについては、ユーザーが調整を行う必要がなくなり、キャリブレーション処理のための画角合わせ作業時間が短縮される。
【0137】
次に、図13Aを用いて、ステップS2203で説明したチャートと撮影画像の差分の算出処理の詳細について説明する。
【0138】
まず、ステップS2301では、演算装置136は、撮像素子制御部133に指示を出し、所定の周期で撮像素子131からチャートを撮影した画像信号を取得し、取得した画像信号を画像処理部137に送る。画像処理部137は、画像信号に対して適切な画像処理を施し、揮発性メモリ138に一時的に記憶する。
【0139】
ステップS2302では、演算装置136は、画像処理部137に指示して、一時的に記憶したチャートの画像を2値化処理するなどして、後述するステップS2304で差分を算出しやすいような画像処理を行う。なお、画像信号の処理については2値化に限らない。
【0140】
次に、ステップS2303では、演算装置136は、画像処理を施したチャート画像に対して撮影画像のシフト処理を行う。
【0141】
具体的には、ステップS2202で読み出したチャートのモデルデータとの差分が最も小さくなる位置を探索するための一例として、撮影画像とチャートのモデルデータの比較位置を変更しながら差分の最小位置を算出する方法が挙げられる。チャート画像を水平左方向にN画素、垂直上方向にN画素動かした状態の画像を生成して差分を算出する。また、この処理の結果、後述するステップS2309で所定位置の差分算出が完了していないと判断した場合は、垂直左方向にN―1画素、垂直上方向にN画素などと、前回とは異なる画像の移動を行って再度画像の差分を算出する。
【0142】
画像をどの範囲内でシフトさせるかに関するシフト範囲と、シフト範囲内をどようなステップ量(間引き量)でシフトさせるかに関するシフトステップ量はカメラ内で設定してもよいし、ユーザーが与えてもよい。カメラ内で設定する場合は、まずシフトステップ量を大きく設定して差分が最小となる位置を探索してから、差分が最小となった位置を再度より小さなシフトステップ量を設定して探索する方法が考えられる。ステップS2303では画像処理部137が上述したシフト範囲をステップS2303が実行されるたびに、設定したシフトステップ量だけ変更して画像を切り出して演算装置136に出力する。
【0143】
また、ステップS2202で読み出したチャートのモデルデータとの差分が最も小さくなる位置を探索するためのさらなる一例として、次のような方法も考えられる。すなわち、手振れ補正レンズ114の位置を変更しながら撮影した画像とチャートのモデルデータとを毎回比較し、差分が最小となる手振れ補正レンズ114の位置を算出する。具体的な方法については図16を用いて後述する。
【0144】
さらに、ステップS2202で読み出したチャートのモデルデータとの差分が最も小さくなる位置を探索するための別の例として、さらに次のような方法も考えられる。すなわち、撮像素子131の位置を変更しながら撮影した画像とチャートのモデルデータとを毎回比較し、差分が最小となる撮像素子131の位置を算出する。具体的な方法については図17を用いて後述する。
【0145】
さらに、撮影画像とチャートのモデルデータの比較位置を変更しながら最小位置を算出する方法を実施する場合は、水平、垂直方向へのシフト位置変更だけでなく回転方向への位置変更を行った上での比較も可能となる。
【0146】
上述した、撮影画像とチャートのモデルデータの比較位置及び回転量rを変更する方法、手振れ補正レンズ114の位置を変更する方法、撮像素子131の位置を変更する方法はいずれか1つのみで実施してもよいし、複数を組み合わせて実施してもよい。
【0147】
次に、ステップS2304では、演算装置136は、ステップS2303で撮像及び生成された画像とチャートのモデルデータの比較を行い、差分Sを算出する。差分Sの算出方法の一例を図19を用いて説明する。
【0148】
図19の2900は画角を表す領域、2901はチャートのモデルデータ、2902は撮影画像におけるチャートの領域を表している。また、2910が指し示す領域(右上がりハッチングと右下がりハッチングが重なる領域)はチャートのモデルデータ2901の黒の部分と撮影画像2902の黒の部分が重なる領域であり、差分がない領域として算出される部分である。同様に、2911が指し示す領域(空白領域)はチャートのモデルデータ2901の白の部分と撮影画像2902の白の部分が重なる領域であり、差分がない領域として算出される部分である。2912が指し示す領域(右下がりハッチングのみの領域)はチャートのモデルデータ2901の黒の部分と撮影画像2902の白の部分が重なる領域であり、差分領域として算出される部分である。同様に、2913が指し示す領域(右上がりハッチングのみの領域)はチャートのモデルデータ2901の白の部分と撮影画像2902の黒の部分が重なる領域であり、差分領域として算出される部分である。
【0149】
なお、上記の説明では、同色か否かで差分領域を算出していたが、チャートの格子領域一つ一つにIDなどの識別子を設けて、同じIDの同色の領域の重なりであるか否かで差分領域を算出する方式を用いてもよい。
【0150】
次に、ステップS2305では、演算装置136は、前述した手法で算出した差分領域の面積を保存されている差分最小値と比較する。そして、差分Sが差分最小値よりも小さい場合はステップS2306に処理を進め、差分Sが差分最小値以上の場合はステップS2309に処理を進める。
【0151】
ステップS2306では、演算装置136は、差分Sを差分最小値として保存しなおす。
【0152】
ステップS2307では、演算装置136は、差分Sが最小となったときのシフト位置を記憶する。具体的には、差分が最小となったときのチャート画像の画素移動量p、手振れ補正レンズ114の駆動量ω、撮像素子131の移動量iをシフト量として記憶する。
【0153】
ステップS2308では、演算装置136は、表示制御部141に指示して、チャートのモデルデータと撮影画像を合成処理し、表示部140に表示する。ユーザーは、表示部140に表示されたチャートのモデルデータと撮影画像のズレを目視し、ズレを補正するようにカメラを動かす。
【0154】
ステップS2309では、演算装置136は、ステップS2303で実施するべき探索箇所を全て探索し終わったか否かを判断する。そして、すべて探索し終わったと判断した場合は処理を終了し、探索するべき探索箇所が残っていると判断した場合は処理をステップS2301に戻す。
【0155】
以上の処理によって、チャートのモデルデータと撮影されたチャート画像の差分からチャートとカメラの差分を求めるためのズレ量を算出することが可能となる。
【0156】
次に、図14を用いて、ステップS2204で説明したカメラ移動量算出処理の詳細について説明する。
【0157】
まず、ステップS2401では、演算装置136は、レンズ制御部121とコマンドの送受信を行い、レンズの焦点距離情報f、手振れ補正レンズ114の駆動量ωを取得する。また、フォーカスレンズ115の位置情報や各種レンズの駆動状態に関する情報、絞り113の状態に関する情報を取得する。
【0158】
ステップS2402では、演算装置136は、被写体距離情報dを取得する。被写体距離情報dは、チャートに対してピントを合わせた後に前述したフォーカスレンズ115の位置情報から算出してもよいし、ユーザーが入力した被写体距離情報dを取得しもよい。または、撮像素子131が撮像面位相差方式のデフォーカス量を算出できる撮像素子である場合は、前述したフォーカスレンズ115の位置情報とデフォーカス量とから被写体距離情報dを算出してもよい。
【0159】
ステップS2403では、演算装置136は、取得したレンズの焦点距離情報fと被写体距離情報d、図12の画角合わせ処理の中で算出した画素移動量p、回転量r、手振れ補正レンズ114の駆動量ω、撮像素子131の移動量iを用いてカメラ100を移動させるべき量である移動量G及び回転量を算出し処理を終了する。
【0160】
次に、図13AのステップS2303の撮影画像のシフト処理において、カメラ100の移動量Gを算出する例について説明する。図15は、シフト処理をカメラ100の内部の仮想的な画像移動で行い、移動量Gを算出する場合を示す。図16は、シフト処理を手振れ補正レンズ114で行い、移動量Gを算出する場合を示す。図17は、シフト処理を撮像素子131で行い、移動量Gを算出する場合を示す。なお、図面において、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0161】
図15(a)において、2500はキャリブレーションに用いるチャートを示し、点Oはチャートの中央位置を示している。2501はカメラ100の光軸を示している。2502はカメラ100の画角を示している。本実施形態の目的の一つは、点Oと光軸2501の乖離距離Gを算出し、ユーザーに乖離距離(移動量)Gを呈示することである。
【0162】
図15(b)は、図15(a)の状況で撮影しているときのLCD画面上の表示を示している。
【0163】
画角2900に対して、画像を合わせる目標となるチャートのモデルデータ2901が画面の中央に表示されている。また、図15(a)では、カメラ100がチャート2500に対して若干右方向にずれているため、図15(b)においては、撮影画像におけるチャート2902は若干左方向にずれて合成される。
【0164】
図15(c)は、ステップS2303において毎回実施される撮影画像のシフト処理の一例を示す図である。撮影画像をシフトしない場合は図15(b)のようなズレとなるが、ステップS2303の1回目の処理で撮影画像を仮想的に左上方向にずらしてチャートのモデルデータと合成すると、図15(c)の左上図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となるずらし量を更新する。
【0165】
次に、2回目の処理として、撮影画像を仮想的に右上方向にずらしてチャートのモデルデータと合成すると、図15(c)の右上図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となるずらし量を更新する。
【0166】
次に、3回目の処理として、撮影画像を仮想的に左下方向にずらしてチャートのモデルデータと合成すると、図15(c)の左下図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となるずらし量を更新する。
【0167】
次に、4回目の処理として、撮影画像を仮想的に右下方向にずらしてチャートのモデルデータと合成すると、図15(c)の右下図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となるずらし量を更新する。
【0168】
上記の処理を行い、記録された差分最小値に対応する画素移動量をpとし、乖離距離Gを算出する。乖離距離Gは図15(d)の関係から、下記の式で求めることができる。
【0169】
G=(d×p)/f
次に、手振れ補正レンズ114を駆動して乖離距離Gを算出する方法について図16を用いて説明する。
【0170】
図16(a)において、2503は、手振れ補正レンズ114が移動したときの光軸を示している。一例として、光軸2503は点Oを通過し、その時の補正角がωdegであるパターンを図示している。また、2504は、手振れ補正レンズ114が移動した場合の変化後の画角を表す線である。
【0171】
図16(b)は、図16(a)の状況で撮影しているときの手振れ補正レンズ114の駆動の様子を図示している。図16(b)の左図は、手振れ補正レンズ114が光軸の中心2505を保持している状況を示している。一方、図16(b)の右図は、手振れ補正レンズ114が光軸の中心2505に対してωdegだけ左方向にずれている状況を示している。また、図16(b)の下図は、上記の状況において撮影しているときのLCD画面上の表示を示している。
【0172】
画角2900に対して、画像を合わせる目標となるチャートのモデルデータ2901が画面の中央に表示されている。また、図16(a)及び図16(b)の左図では、カメラ100がチャート2500に対して若干右方向にずれているため、撮影画像におけるチャート2902は若干左方向にずれて合成される。一方、図16(a)及び図16(b)の右図では、カメラ100の光軸2503が点Oを通過するため、撮影画像におけるチャート2902とチャートのモデルデータ2901の中心は一致している。
【0173】
図16(c)は、ステップS2303において毎回実施される撮影画像のシフト処理の一例を示す図である。手振れ補正レンズ114をシフトしない場合は図16(b)の左図のようなズレとなるが、ステップS2303の1回目の処理で撮影画像を左上方向にずらしてチャートのモデルデータと合成すると、図16(c)の左上図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となる手振れ補正レンズ114のずらし量を更新する。
【0174】
次に、2回目の処理として、撮影画像を右上方向にずらしてチャートのモデルデータと合成すると、図16(c)の右上図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となる手振れ補正レンズ114のずらし量を更新する。
【0175】
次に、3回目の処理として、撮影画像を左下方向にずらしてチャートのモデルデータと合成すると、図16(c)の左下図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となる手振れ補正レンズ114のずらし量を更新する。
【0176】
次に、4回目の処理として、撮影画像を右下方向にずらしてチャートのモデルデータと合成すると、図16(c)の右下図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となる手振れ補正レンズ114のずらし量を更新する。
【0177】
上記の処理を行い、記録された差分最小値に対応する手振れ補正レンズ114の駆動量をωとし、乖離距離Gを算出する。乖離距離Gは、図16(d)の関係から、下記の式で求めることができる。
【0178】
G=d・tanω
なお、手振れ補正レンズ114を駆動する上述の方法では、カメラ内部で撮影画像を仮想的にずらす前述の方法とは異なり、実際に撮影される画像が手振れ補正レンズ114の駆動に連動して動くことになる。撮影画像が動いてしまうと、ユーザーがカメラをチャートの中心に合わせようとする場合、移動方向と移動距離が表示されていても、カメラを中央に合わせにくくなってしまうことが考えられる。したがって、手振れ補正レンズ114を駆動して差分を算出する場合、ステップS2308において、手振れ補正レンズ114が光学中心にある場合の画像のみに対して合成処理を行うこととする。もしくは、手振れ補正レンズ114をシフト処理した分に相当する量だけ撮影画像を仮想的に戻した画像で合成処理を行うことで、ユーザーがカメラの位置合わせをしにくくなってしまうことを防止する。
【0179】
次に、撮像素子131を駆動して乖離距離Gを算出する方法について図17を用いて説明する。
【0180】
図17(a)において、2506は、撮像素子131が移動したときの光軸を示している。一例として、2506は点Oを通過し、その時の撮像素子131の補正量がimmであるパターンを図示している。また、2507は、撮像素子131が移動した場合の変化後の画角を示している。
【0181】
図17(b)は、図17(a)の状況で撮影しているときの撮像素子131の駆動の様子を図示している。図17(b)の左図は、撮像素子131が光軸の中心2508を保持している状況を示している。一方、図17(b)の右図は、撮像素子131が光軸の中心2501に対してimmだけ右方向にずれている状況を示している。また、図17(b)の下図は、上記の状況において撮影しているときのLCD画面上の表示を示している。
【0182】
画角2900に対して、画像を合わせる目標となるチャートのモデルデータ2901が画面の中央に表示されている。また、図17(a)及び図17(b)の左図では、カメラ100がチャート2500に対して若干右方向にずれているため、撮影画像におけるチャート2902は若干左方向にずれて合成される。一方、図17(a)及び図17(b)の右図では、カメラ100の光軸2506が点Oを通過するため、撮影画像におけるチャート2902とチャートのモデルデータ2901の中心は一致している。
【0183】
図17(c)は、ステップS2303において毎回実施される撮影画像シフト処理の一例を示す図である。撮像素子131をシフトしない場合は図17(b)の左図のようなズレとなるが、ステップS2303の1回目の処理で撮影画像を左上方向にずらしてチャートのモデルデータと合成すると、図17(c)の左上図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となる撮像素子131のずらし量を更新する。
【0184】
次に、2回目の処理として、撮影画像を右上方向にずらしてチャートのモデルデータと合成すると、図17(c)の右上図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となる撮像素子131のずらし量を更新する。
【0185】
次に、3回目の処理として、撮影画像を左下方向にずらしてチャートのモデルデータと合成すると、図17(c)の左下図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となる撮像素子131のずらし量を更新する。
【0186】
次に、4回目の処理として、撮影画像を右下方向にずらしてチャートのモデルデータと合成すると、図17(c)の右下図のようなズレとなる。この状態で差分を算出し、差分最小値と比較の上、必要に応じて差分最小値と差分最小となる撮像素子131のずらし量を更新する。
【0187】
上記の処理を行い、記録された差分最小値に対応する撮像素子131の駆動量をiとして、乖離距離Gを算出する。乖離距離Gは、図17(d)の関係から、下記の式で求めることができる。
【0188】
G=(d×i)/f
なお、撮像素子131を駆動する上述の方法では、カメラ内部で撮影画像を仮想的にずらす前述の方法とは異なり、実際に撮影される画像が撮像素子131の駆動に連動して動くことになる。撮影画像が動いてしまうと、ユーザーがカメラをチャートの中心に合わせようとする場合、移動方向と移動距離が表示されていても、カメラを中央に合わせにくくなってしまうことが考えられる。したがって、撮像素子131を駆動して差分を算出する場合、ステップS2308において、撮像素子131が光学中心にある場合の画像のみに対して合成処理を行うこととする。もしくは、撮像素子131をシフト処理した分に相当する量だけ撮影画像を仮想的に戻した画像で合成処理を行うことで、ユーザーがカメラの位置合わせをしにくくなってしまうことを防止する。
【0189】
以上の処理を行うことで、カメラとチャート中央との乖離距離Gが求まり、ユーザーに対してカメラの移動量を通知することができる。そのため、キャリブレーション処理のための画角合わせの手間を削減することが可能となる。
【0190】
なお、上述の説明では、説明を分かりやすくするために、ずらしの回数を4回として説明したが、実際は4回より多い回数で実施する。
【0191】
次に図18を用いて、ステップS2209及びステップS2207においてユーザーによる画角合わせが完了するまでの、カメラ100の移動量G(垂直・水平方向の移動量と移動方向)の表示方法の一例について説明する。
【0192】
図18(a)は、カメラ100とキャリブレーションチャートとのズレ量が閾値以上であると判断した場合の表示部140の表示を示している。
【0193】
図中の2800は画角を表す領域、2801はチャートのモデルデータ、2802は撮影画像におけるチャートの領域をそれぞれ示している。図18(a)において、カメラ100とチャートとのズレ量が閾値以上であるため、チャートのモデルデータ2801に対して撮影画像におけるチャート2802がずれた位置に表示されている。また、2803はカメラ100と撮影チャートとのズレ量が閾値以上(所定値以上)であると判断した場合にユーザーに対してカメラの移動量と移動方向を指示する表示例を示している。表示2803では、カメラを右方向に54mm、下方向に23mm動かすとチャートのモデルデータ2801と撮影画像におけるチャート2802の位置の中心が合うことを示している。
【0194】
図18(b)は、カメラ100とチャートとのズレ量が閾値未満であると判断した場合の表示部140の表示を示している。
【0195】
図18(b)の表示2804では、カメラ100と撮影チャートとのズレ量がなくなった旨の表示を行っている。ユーザーは表示2804に基づいて、カメラの位置移動を終了する。一方で、カメラ100と撮影チャートとのズレ量が完全に0になることはまれであるため、ステップS2206で前述したように、差分が最小となる位置に手振れ補正レンズ114や撮像素子131を駆動(シフト動作)させる。これにより、チャートのモデルデータ2801と撮影画像におけるチャートの領域2802の差分が最小となり、ユーザーが微小な位置合わせを行うことなくカメラ100の位置合わせを完了させることができる。
【0196】
以上で説明した手法を用いることにより、目視によってチャートとカメラの位置合わせを行う場合よりも、ユーザーがカメラをどの方向にどれだけ動かせばよいかが分かりやすくなるため、位置合わせのための作業時間が削減される。
【0197】
さらに、LCD上では目視できない微小なズレが残っている場合においても、手振れ補正レンズ114や撮像素子131の駆動によりズレを補正することで、さらなる作業時間の削減が実現される。
【0198】
なお、チャートパターンは、上記で説明したような形式に限らず、チャートの水平方向、垂直方向が所定の間隔で表される図柄であれば良い。例えば、格子状に区切られる矩形領域のうち隣り合う矩形で白黒が逆転するようなチェッカーのパターンでもよいし、バーコードのようなものでもよい。
【0199】
さらに、第1の実施形態において前述のように、チャートのモデルデータについて、撮影画像から仮に算出した歪曲量とあおり量に基づいて歪ませた上で、表示や差分算出を行ってもよい。
【0200】
さらに、焦点距離に応じてチャートのモデルデータの拡大率を変更して表示や差分算出を行ってもよい。
【0201】
<第4の実施形態>
図13Aにおけるチャートと撮影画像の差分算出処理において、チャート2500に対してカメラ100のズレ量が大きく、画像の仮想的な移動、手振れ補正レンズ114の移動、撮像素子131の移動のいずれか1つの方法だけではカメラの移動量Gが算出できない場合について図13Bを用いて説明する。なお、図13Bにおいて、図13Aと同じ処理については、同じステップ番号を付して説明を省略する。
【0202】
ステップS2301~ステップS2309の処理を実行した結果、差分最小値となるシフト位置が探索を実行した範囲の端に位置している場合、探索範囲を超えた位置に差分最小値となるシフト位置がある可能性がある。したがって、探索範囲をより広げるために下記のパターンで処理を行う。
【0203】
ステップS2303の撮影画像シフト処理において、画像移動によるシフト処理を行っている場合は、手振れ補正レンズ114と撮像素子131のいずれかの位置を、差分最小となる方向に画像がシフトするように駆動することで探索範囲を広げる。
【0204】
また、ステップS2303の撮影画像シフト処理において、手振れ補正レンズ114によるシフト処理を行っている場合は、撮像素子131の位置を差分最小となる方向に画像がシフトするように駆動することで探索範囲を広げる。
【0205】
また、ステップS2303の撮影画像シフト処理において、撮像素子131によるシフト処理を行っている場合は、手振れ補正レンズ114の位置を差分最小となる方向に画像がシフトするように駆動することで探索範囲を広げる。
【0206】
上述の判断は、図13BのステップS2321において行われ、ステップS2322では上述したパターンに応じて、手振れ補正レンズ114と撮像素子131のいずれかを駆動して位置を固定する。その上で、ステップS2301に処理を戻して再度差分最小となるシフト位置の算出を行う。
【0207】
なお、撮影画像のシフト処理において、画像移動によるシフト処理を行っている場合は、手振れ補正レンズ114と撮像素子131の両方を駆動することで探索範囲をさらに広げてもよい。
【0208】
以上の方法により、カメラ100とキャリブレーション用のチャート2500との位置が大きくずれている場合でも、カメラ100の移動するべき方向と量を算出及び呈示することが可能となり、ユーザーの画角合わせ作業工数を削減することができる。
【0209】
(他の実施形態)
また本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現できる。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現できる。
【0210】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0211】
100:撮像装置(カメラ)、110:撮像レンズ、114:手振れ補正レンズ、121:レンズ制御部、130:撮像制御装置、131:撮像素子、132:撮像信号処理部、133:撮像素子制御部、134:手振れ補正駆動部、136:演算装置(CPU)、137:画像処理部、138:揮発性メモリ(RAM)、139:不揮発性メモリ(ROM)、140:表示部、141:表示制御部、142:操作部、143:記憶媒体(メモリカード)、150:電気接点ユニット
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13A
図13B
図14
図15
図16
図17
図18
図19