(57)【要約】【課題】撮像装置の向きが変わることに起因する被写体の明るさの変動を、フリッカとして誤って検出し難くする。【解決手段】撮像装置１は、撮像する被写体の明るさを変動させるフリッカを検出するフリッカ検出手段（Ｓ３０９、Ｓ３１１）と、フリッカを抑制するためのフリッカ情報を生成する生成手段（Ｓ３１３）と、生成されたフリッカ情報を用いて、フリッカを抑えた撮像を行う撮像手段（Ｓ２０７）と、撮像装置１の向きを変える際の角速度を検出する角速度検出手段１０７と、を有する。フリッカ検出手段（Ｓ３０９、Ｓ３１１）は、撮像装置１の角速度に応じて変更される閾値を用いて、フリッカを判断する。【選択図】図４
2019220921.tif 000002
【特許請求の範囲】
【請求項１】
被写体の明るさを変動させるフリッカを検出するフリッカ検出手段と、
フリッカを抑制するためのフリッカ情報を生成する生成手段と、
フリッカが検出されている場合に、生成された前記フリッカ情報を用いて、フリッカを抑えた撮像を行う撮像手段と、
を有する撮像装置であって、
前記撮像装置の向きを変える際の角速度を検出する角速度検出手段、を設け、
前記フリッカ検出手段は、
前記撮像装置の角速度に応じて変更される閾値を用いて、フリッカを判断する、
撮像装置。
【請求項２】
前記フリッカ検出手段は、
前記撮像装置の角速度が速いほど、フリッカを検出する前記閾値を、フリッカを検出し難くなるように変更する、
請求項１記載の撮像装置。
【請求項３】
撮像する被写体の輝度を測定するための測光用センサ、を有し、
前記フリッカ検出手段は、
検出対象のフリッカの少なくとも１周期に相当する期間において前記測光用センサにより測定された最大の輝度と最小の輝度との輝度差である振幅が、前記撮像装置の角速度が速いほど大きな値に変更される振幅閾値より大きい場合に、
検出対象のフリッカの２周期に相当する期間において前記測光用センサにより測定される２周期分の輝度の波形についての周期毎に累積した輝度の差分が、前記撮像装置の角速度が速いほど小さな値に変更される周波数閾値より小さいか否かを判断し、
周期毎に累積した輝度の差分が前記周波数閾値より小さい場合に、検出対象の周波数のフリッカがあるとし、
それ以外の場合には、検出対象の周波数のフリッカがないとする、
請求項１または２記載の撮像装置。
【請求項４】
前記生成手段は、前記フリッカ検出手段において検出対象の周波数のフリッカがあると判断された場合、検出対象の周波数のフリッカを抑制するためのフリッカ情報を生成する、
請求項１から３のいずれか一項記載の撮像装置。
【請求項５】
前記生成手段により生成された前記フリッカ情報を保持する記憶手段、を有し、
前記生成手段は、前記撮像装置の角速度が角速度閾値以下である場合に、フリッカ情報を生成し、
前記撮像手段は、
前記撮像装置の角速度が角速度閾値より大きい場合には、前記記憶手段に保持されている前記フリッカ情報を用いて、フリッカを抑えた撮像を行う、
請求項１から４のいずれか一項記載の撮像装置。
【請求項６】
前記撮像手段は、
前記記憶手段による前記フリッカ情報の保持時間が閾値時間より長い場合、フリッカを抑えた撮像に替えて、フリッカを抑える制御を実行しない通常の撮像を行う、
請求項５記載の撮像装置。
【請求項７】
前記フリッカ検出手段は、
前記撮像装置が静止している状態で前記生成手段により生成された前記フリッカ情報を用いて、前記撮像装置の角速度に応じた閾値を変更して、フリッカを判断する、
請求項１から６のいずれか一項記載の撮像装置。
【請求項８】
前記測光用センサは、撮像する被写体の像を含む輝度画像を生成し、
前記フリッカ検出手段は、
前記測光用センサによる輝度画像から、輝度閾値より明るい領域を除いた画像範囲に基づいて、フリッカを判断する、
請求項３記載の撮像装置。
【請求項９】
前記測光用センサは、撮像する被写体の像を含む輝度画像を生成し、
前記フリッカ検出手段は、
前記測光用センサによる輝度画像において、前記撮像装置の角速度による回転方向に沿って周期的な輝度変化がある場合、フリッカを検出する前記閾値を、フリッカを検出し難くなるように変更する、
請求項３記載の撮像装置。
【請求項１０】
前記測光用センサは、撮像する被写体の像を含む輝度画像を生成し、
前記測光用センサによる輝度画像について動き検出をする動き検出手段、を有し、
前記フリッカ検出手段は、
前記動き検出手段により検出された動く主被写体の画像範囲に基づいて、フリッカを判断する、
請求項３記載の撮像装置。
【請求項１１】
撮像装置の向きを変える際の角速度を検出する角速度検出工程と、
撮像する被写体の明るさを変動させるフリッカを検出するフリッカ検出工程と、
フリッカを抑制するためのフリッカ情報を生成する生成工程と、
フリッカが検出されている場合に、生成された前記フリッカ情報を用いて、フリッカを抑えた撮像を行う撮像工程と、
を有する撮像装置の制御方法であって、
前記フリッカ検出工程では、
前記撮像装置の角速度に応じて変更される閾値を用いて、フリッカを判断する、
撮像装置の制御方法。
【請求項１２】
撮像する被写体の明るさを変動させるフリッカを抑えた撮像を行う撮像装置の制御方法をコンピュータに実行させるプログラムであって、
前記撮像装置の制御方法は、
撮像装置の向きを変える際の角速度を検出する角速度検出工程と、
撮像する被写体の明るさを変動させるフリッカを検出するフリッカ検出工程と、
フリッカを抑制するためのフリッカ情報を生成する生成工程と、
フリッカが検出されている場合に、生成された前記フリッカ情報を用いて、フリッカを抑えた撮像を行う撮像工程と、
を有し、
前記フリッカ検出工程では、
前記撮像装置の角速度に応じて変更される閾値を用いて、フリッカを判断する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、その制御方法およびプログラムに関する。
【背景技術】
【０００２】
特許文献１は、光源の光量の変動に起因する被写体の明るさの変動であるフリッカを検出し、フリッカを抑えた撮像を行う撮像装置を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２２０７６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、被写体の明るさは、光源の光量の変動以外にも起因して生じえる。たとえばパンニング方向に沿って複数の点光源が配列されている環境において撮像がなされる場合、撮像装置の向きがパンニング方向へ変化すると、撮像される被写体の明るさは、複数の点光源の配列にしたがって変動する。そして、被写体の明るさの変動の周波数がたとえばフリッカの周波数と一致すると、撮像装置は、そのパンニングに起因する被写体の明るさの変動を、フリッカとして誤って検出してしまう可能性がある。このように撮像装置では、撮像装置の向きが変わることに起因する被写体の明るさの変動を、フリッカとして誤って検出し難くすることが求められている。
【課題を解決するための手段】
【０００５】
本発明に係る撮像装置は、撮像する被写体の明るさを変動させるフリッカを検出するフリッカ検出手段と、フリッカを抑制するためのフリッカ情報を生成する生成手段と、フリッカが検出されている場合に、生成された前記フリッカ情報を用いて、フリッカを抑えた撮像を行う撮像手段と、を有する撮像装置であって、前記撮像装置の向きを変える際の角速度を検出する角速度検出手段、を設け、前記フリッカ検出手段は、前記撮像装置の角速度に応じて変更される閾値を用いて、フリッカを判断する。
【発明の効果】
【０００６】
本発明では、フリッカが生じていない撮像環境において撮像装置の向きを変える撮像がなされている場合において、フリッカを抑えた撮像を行わないようにできる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係る撮像装置の模式的な構成図である。
【図２】光源フリッカの影響を低減する撮像装置における課題を説明するための図である。
【図３】本実施形態での撮像処理の流れを示すフローチャートである。
【図４】図３のステップＳ２０３による光源フリッカを検出して設定する処理についての詳細な処理を示すフローチャートである。
【図５】光源フリッカと、測光用センサによる蓄積処理および読み出し処理との対応関係を示すタイミングチャートである。
【図６】判定に係る複数の撮像シーンと各々のシーンの判定条件との対応関係を示す説明図である。
【図７】振幅閾値ＤＣ＿ｔｈ、周波数閾値Ｆ＿ｔｈ１００、および周波数閾値Ｆ＿ｔｈ１２０の選択の仕方を説明する図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。しかしながら、以下の実施形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は実施形態に記載されている構成によって限定されることはない。
【０００９】
図１は、本発明の実施形態に係る撮像装置１の模式的な構成図である。図１の撮像装置１は、装置本体１００、交換レンズ２００、を有する。交換レンズ２００は、複数のレンズや絞りを有し、装置本体１００に取り外し可能に取り付けられる。装置本体１００は、ＣＰＵ１０１、メモリ１０２、撮像素子１０３、シャッタ１０４、ハーフミラー１０５、ピント板１０６、角速度センサ１０７、測光用センサ１０８、ペンタプリズム１０９、焦点検出部１１０、タイマ１１１、を有する。撮像素子１０３は、赤外カットフィルタやローパスフィルタ等を含むＣＣＤ撮像センサまたはＣＭＯＳ撮像センサである。撮像素子１０３は、撮像時に交換レンズ２００による被写体の像が結像し、その記録画像を撮像してメモリ１０２などに保存する。ハーフミラー１０５、およびシャッタ１０４は、交換レンズ２００と撮像素子１０３との間に配置される。ハーフミラー１０５およびシャッタ１０４は、非撮像時には閉じて撮像素子１０３を遮光する。ハーフミラー１０５およびシャッタ１０４は、撮像時には開いて撮像素子１０３へ光線を導く。焦点検出部１１０は、撮像素子１０３に集光される光について焦点を検出する。ピント板１０６、およびペンタプリズム１０９は、非撮像時にハーフミラー１０５により反射される光を、図示外の光学ファインダに導く。測光用センサ１０８は、ＣＣＤ撮像センサまたはＣＭＯＳ撮像センサである。測光用センサ１０８は、非撮像時にピント板１０６により分光された光を受光し、撮像する被写体の輝度を測定するために、撮像する被写体の像を含む輝度画像を生成する。角速度センサ１０７は、ジャイロセンサである。角速度センサ１０７は、撮像装置１の向き（姿勢）を変える際の角速度を検出する角速度検出手段である。タイマ１１１は、時間や時刻を計測する。メモリ１０２は、ＲＡＭ、ＲＯＭなどの記録デバイスである。メモリ１０２は、ＣＰＵ１０１が実行するプログラムおよび各種のデータを保持する。ＣＰＵ１０１は、マイクロコンピュータである。ＣＰＵ１０１には、角速度センサ１０７、タイマ１１１、メモリ１０２などが接続される。ＣＰＵ１０１は、メモリ１０２に記憶されるプログラムを実行する。これにより、撮像装置１には、撮像装置１の動作を制御する制御部が実現される。制御部は、メモリ１０２に記憶される各種のデータを用いて、撮像装置１の動作を制御する。ＣＰＵ１０１は、たとえば撮像装置１の図示外のレリーズボタンがＳＷ１状態に押下されることで、撮像のための測光などを実行し、レリーズボタンがＳＷ２状態に押下されることで、撮像を実行する。
【００１０】
ところで、撮像装置１は、近年の高ＩＳＯ化に伴い、フリッカの発生する人工光源下でも高速でシャッタが切れるようになってきている。これにより、室内スポーツの撮像などでブレのない画像を撮像できる。しかしながら、フリッカ光源の下で高速で撮像をすると、フリッカの影響により撮像する被写体などの明るさが変動し、画像の露出が適切でなくなったり、色ムラが発生したりする。このため、高機能の撮像装置１では、フリッカを検出し、最も明るくなるフリッカのピークタイミングにおいて撮像タイミングを調整する。しかしながら、このようにフリッカの影響を低減する撮像装置１では、フリッカを低減する機能を有するがゆえに、パンニングでの撮像の際に良好な記録画像を撮像することができなくなる可能性がある。
【００１１】
図２は、フリッカの影響を低減する撮像装置１に固有の課題を説明するための図である。図２では、室内の床上を人が左から右へ移動している。また、室内の天井には、左右方向に沿って複数の点光源３００が周期的に配列されている。このような光源環境で人を撮像する場合、撮像装置１は、左から右へ向かって偏向するようにパンニングされる。ユーザは、撮像装置１のレリーズボタンをＳＷ１状態に押下しながら、撮像装置１をパンニングさせて、移動する被写体を捕捉し続ける。レリーズボタンが半押しされてＳＷ１状態に押下されている場合、撮像装置１のＣＰＵ１０１は、ＡＦ処理、ＡＥ処理、フリッカの検出処理を行う。そして、フリッカの検出処理では、パンニング方向に沿って配列されている複数の点光源３００により、被写体の輝度が変動する。
【００１２】
この場合、撮像装置１のＣＰＵ１０１は、光源がフリッカが生じ難いＤＣ光源であったとしても、フリッカの検出処理においてフリッカが生じていると誤って判断してしまう可能性がある。フリッカが生じていると誤って判断すると、撮像タイミングが調整される。撮像装置１は、レリーズボタンがＳＷ２状態に押下されたタイミングで撮像するのではなく、その操作タイミングから遅延された撮像タイミングにおいて撮像を実行することになる。よって、たとえばユーザが図２のゴールシーンでレリーズボタンがＳＷ２状態に押下したとしても、撮像装置１は、ゴール通過後の画像を撮像して記録してしまう。ユーザは決定的シーンを撮り逃してしまう。
【００１３】
また、光源がフリッカを生じ得る交流で発光する交流光源であったとしても、撮像装置１のＣＰＵ１０１は、パンニング方向に沿って配列されている複数の点光源３００による被写体の輝度の変動を、フリッカとして誤って判断してしまう可能性がある。この場合、撮像装置１のＣＰＵ１０１は、実際に生じているフリッカではなく、複数の点光源３００による被写体の輝度の変動に基づいて撮像タイミングを調整してしまう。よって、たとえばユーザがレリーズボタンをＳＷ２状態に押下してから調整されたタイミングで撮像がなされたとしても、そのタイミングにおいては実際のフリッカにより被写体が暗くなっている可能性がある。撮像した画像には、実際に生じているフリッカの影響により、露出不足や色ムラが生じてしまう可能性がある。
【００１４】
このように、撮像装置１では、撮像装置１の向きがパンニングにより変化することに起因する被写体の明るさの変動を、フリッカとして誤って検出し難くすることが求められている。
【００１５】
図３は、本実施形態での撮像処理の流れを示すフローチャートである。撮像装置１のＣＰＵ１０１は、レリーズボタンが押下操作されると、図３の撮像処理を実行する。ステップＳ２００において、ＣＰＵ１０１は、各種の設定値を初期化し、ユーザの設定操作に応じた設定処理を実行する。ＣＰＵ１０１は、設定処理において、フリッカを検出してフリッカの影響を抑制するための処理を実行するか否かの設定を行う。メモリ１０２は、フリッカの実行についての設定値などの各種の設定データを保持する。ステップＳ２０１において、ＣＰＵ１０１は、レリーズボタンが第１のストロークまで押し込まれたＳＷ１状態にあるか否かを判断する。ＣＰＵ１０１は、レリーズボタンがＳＷ１状態に操作されるまで、ステップＳ２０１の判断処理を繰り返する。レリーズボタンがＳＷ１状態に操作されると、ＣＰＵ１０１は、処理をステップＳ２０２へ進める。ステップＳ２０２において、ＣＰＵ１０１は、測光用センサ１０８を用いて、被写体の輝度を計測するＡＥ動作を行う。ＣＰＵ１０１は、測光用センサ１０８から得られる輝度画像について、複数の領域ごとに輝度を検出し、撮像する被写体の輝度を測光する。ステップＳ２０３において、ＣＰＵ１０１は、フリッカの実行が設定されている場合、測光用センサ１０８を用いてフリッカの有無を検出し、フリッカの影響を抑制するためのフリッカ情報およびフリッカのピークタイミングを生成する。メモリ１０２は、フリッカ情報およびピークタイミングの情報を保持する。ステップＳ２０４において、ＣＰＵ１０１は、レリーズボタンが第２のストロークまで押し込まれたＳＷ２状態にあるか否かを判断する。レリーズボタンがＳＷ２状態に操作されていない場合、ＣＰＵ１０１は、処理をステップＳ２０８へ進める。レリーズボタンがＳＷ２状態に操作されると、ＣＰＵ１０１は、撮像処理を開始するために、処理をステップＳ２０５へ進める。
【００１６】
ステップＳ２０５において、ＣＰＵ１０１は、測光用センサ１０８を用いて、フリッカの有無を判断する。フリッカが検出されていない場合、ＣＰＵ１０１は、ステップＳ２０６において、フリッカに応じて撮像タイミングを遅延調整していない、通常の撮像を実行する。この場合、ＣＰＵ１０１は、撮像のために主シャッタ１０４などをメカ駆動する処理を実行した直後に、記録画像の撮像を実行する。フリッカが検出されている場合、ＣＰＵ１０１は、ステップＳ２０７において、メモリ１０２に保持されているフリッカ情報およびピークタイミングの情報を用いて、フリッカの影響を抑制するように撮像タイミングを遅延調整する。フリッカ情報とは、フリッカの周波数と位相の情報である。この場合、ＣＰＵ１０１は、撮像のために主シャッタ１０４などをメカ駆動する処理を実行し終えた後、ピークタイミングをタイマ１１１に計測させて、ピークタイミングにおいて記録画像の撮像を実行する。これにより、ＣＰＵ１０１は、フリッカのピークタイミングに同期して撮像されて、明るい被写体を含む記録画像を撮像できる。ＣＰＵ１０１は、撮像した画像をメモリ１０２に保存する。記録画像のための撮像を終えると、ＣＰＵ１０１は、処理をステップＳ２０８へ進める。
【００１７】
ステップＳ２０８において、ＣＰＵ１０１は、レリーズボタンがＳＷ１状態に操作されているか否かを判断する。  レリーズボタンがＳＷ１状態に操作されていない場合、ＣＰＵ１０１は、図３の撮像処理を終了する。レリーズボタンがＳＷ１状態に操作されている場合、ＣＰＵ１０１は、処理をステップＳ２０２へ戻す。ＣＰＵ１０１は、レリーズボタンがＳＷ１状態に継続して操作されている場合、ステップＳ２０２からステップＳ２０４およびステップＳ２０８の処理を繰り返す。
【００１８】
図４は、図３のステップＳ２０３によるフリッカを検出して設定する処理についての詳細な処理を示すフローチャートである。図４の処理を実施するために、メモリ１０２は、図４の処理で生成されるフリッカ対策のための各種のデータを、たとえばタイマ１１１で計測される時刻に基づく有効期限と対応付けて記憶する。ステップＳ３００において、ＣＰＵ１０１は、測光用センサ１０８を制御する。測光用センサ１０８は、検出用の信号の蓄積処理と信号読み出し処理とを実行し、フリッカを検出するための輝度画像を出力する。図５は、フリッカと測光用センサ１０８による蓄積処理および読み出し処理との対応関係を示すタイミングチャートである。図５（ａ）には、５０Ｈｚの商用交流電源により発光するについてのフリッカの波形が２周期分で図示されている。この場合、フリッカは、商用交流電源の二倍の１００Ｈｚの周波数を有する。この場合、測光用センサ１０８は、６００ｆｐｓに対応する約１．６６７ｍｓの周期で蓄積・読み出しを連続して１２回行うことにより、１００Ｈｚの周波数のフリッカについて、２周期分の波形をサンプリングできる。図５（ｂ）には、６０Ｈｚの商用交流電源により発光する光源についてのフリッカの波形が２周期分で図示されている。この場合、フリッカは、商用交流電源の二倍の１２０Ｈｚの周波数を有する。この場合、測光用センサ１０８は、６００ｆｐｓに対応する約１．６６７ｍｓの周期で蓄積・読み出しを連続して１０回行うことにより、１２０Ｈｚの周波数のフリッカについて、２周期分の波形をサンプリングできる。このように、測光用センサ１０８は、予め予想している２種類のフリッカの周波数（１００Ｈｚと１２０Ｈｚ）の公倍数の周波数６００ｆｐｓで、蓄積・読み出し処理を繰り返す。
【００１９】
ステップＳ３０１において、ＣＰＵ１０１は、角速度センサ１０７から、撮像装置１のパンニングによる角速度を取得する。ＣＰＵ１０１は、好ましくは、ステップＳ３００において取得した期間における角速度を取得する。ステップＳ３０２において、ＣＰＵ１０１は、取得した角速度が、所定の角速度閾値より速いか否かを判断する。角速度が角速度閾値より速い場合、ＣＰＵ１０１は、処理をＳ３０３に進める。これは、フリッカ検出用の蓄積制御中の角速度が速すぎる場合は、それに基づいて得られるフリッカ情報の信頼性が低いためである。角速度が角速度閾値以下である場合、ＣＰＵ１０１は、処理をＳ３０６に進める。ここで、角速度閾値は、たとえばフリッカの有無を判断可能な最速の角速度に対応するものでよい。この場合、撮像装置１のパンニング速度がフリッカの有無判断に適さない程度に速い場合には、ＣＰＵ１０１は、後述するようにフリッカの有無を判断しないようにできる。ＣＰＵ１０１は、後の撮像において、不正確なフリッカ情報に基づいて撮像を制御しないようにできる。なお、撮像装置１がパンニングされない通常の撮像の場合、ＣＰＵ１０１は、処理をＳ３０６に進める。
【００２０】
ステップＳ３０６において、ＣＰＵ１０１は、ステップＳ３００で取得した輝度画像について被写体領域の動きを検出する。ＣＰＵ１０１は、被写体領域の動きベクトルを算出する。ステップＳ３０７において、ＣＰＵ１０１は、角速度から検出される撮像装置１のパンニング状態と、動きベクトルの値とから、撮像シーンを判定する。図６は、判定に係る複数の撮像シーンと各々のシーンの判定条件との対応関係を示す説明図である。図６に示すシーン１は、撮像装置１がパンニングされずに静止している状態であって、被写体の動きがない状態である。この場合、撮像装置１は、静止した状態で、静止している被写体を撮像している。シーン２は、撮像装置１がパンニングされずに静止している状態であって、被写体に動きがある状態である。この場合、撮像装置１は、静止した状態で、動く被写体を撮像している。シーン３は、撮像装置１がパンニングされている状態であって、被写体の動きがない状態である。この場合、撮像装置１は、パンニングしている状態で、パンニングと同じ方向へ移動している被写体を撮像している。シーン４は、撮像装置１がパンニングされている状態であって、被写体に動きがある状態である。この場合、撮像装置１は、パンニングしている状態で、パンニングとは異なる方向や異なる速度で移動している被写体を撮像している。ユーザが撮像する画像の構図を変更する場合に、このような状態が生じ得る。
【００２１】
ステップＳ３０８において、ＣＰＵ１０１は、輝度画像に対して、フリッカを検出する領域（画像範囲）を設定する。ＣＰＵ１０１は、ステップＳ３０７で判定した撮像シーンに基づいて、フリッカの周波数などを判断するための、フリッカを検出する領域を設定する。たとえば、図６のシーン１またはシーン２を判定した場合、撮像装置１が静止状態にあるため、ＣＰＵ１０１は、輝度画像の全領域を、フリッカを検出する領域として設定する。図６のシーン３を判定した場合、ＣＰＵ１０１は、輝度画像において動きベクトルが小さい領域を、フリッカを検出する領域として設定する。シーン３は、ユーザが移動する被写体を追従して捕捉している場合であり、動きベクトルが小さい領域は、主被写体を撮像する領域となる可能性が高い。したがって、動きベクトルが小さい領域を、フリッカを判断する領域とすることで、ＣＰＵ１０１は、主被写体ではない背景の輝度の変動の影響を抑制して、動いている主被写体についてのフリッカを検出することが可能になる。図６のシーン４を判定した場合、ＣＰＵ１０１は、輝度画像において、所定の明るさの輝度閾値より明るい領域を除いた暗い画像範囲を、フリッカを検出する領域として設定する。シーン４は、基本的にユーザが撮像する画像の構図を変更しようとパンニングしている場合であり、このような場合には撮像することによりフリッカを誤検出する可能性が高い。したがって、を撮像することにより明るくなっている領域を除いてフリッカを検出することにより、ＣＰＵ１０１は、光源を撮像することによるフリッカの誤検出を低減できる。なお、シーン４のように主被写体の領域が不明でありかつ撮像装置１がパンニングしている場合、ＣＰＵ１０１は、人の顔の検出情報やＡＦ情報を用いて主被写体を撮像している領域を特定し、その特定した領域をフリッカの検出領域に設定してもよい。
【００２２】
ステップＳ３０９において、ＣＰＵ１０１は、フリッカを検出してフリッカ情報を演算する処理を開始する。具体的には、ＣＰＵ１０１は、まず、ステップＳ３０９においてフリッカが存在するか否かを判断する。ＣＰＵ１０１は、ステップＳ３０８で設定したフリッカの検出領域について、フリッカが存在するか否かを判断する。また、ＣＰＵ１０１は、フリッカ情報を、角速度の情報や、情報の保持時間とともに、メモリ１０２に保存させる。そして、ＣＰＵ１０１は、フリッカが存在するか否か、すなわちＤＣであるかフリッカであるか否かを判断する。ＣＰＵ１０１は、ステップＳ３００で取得している連続した１２個の輝度画像について輝度の測光値を算出し、最大の測光値と最小の測光値との輝度差を、フリッカの振幅として算出する。なお、ここでは、ＣＰＵ１０１は、処理の便宜上、１２個の輝度画像から最大の測光値と最小の測光値とを算出している。１２個の輝度画像は、フリッカの２周期分に相当する。ＣＰＵ１０１は、少なくとも１周期分に相当する期間である６個の輝度画像から最大の測光値と最小の測光値とを算出してもよい。次に、ＣＰＵ１０１は、算出したフリッカの振幅と、振幅閾値ＤＣ＿ｔｈと比較する。算出したフリッカの振幅が振幅閾値ＤＣ＿ｔｈ以下である場合、ＣＰＵ１０１は、光源がフリッカを生じないＤＣ光源と判断し、処理をステップＳ３１０へ進める。算出したフリッカの振幅が振幅閾値ＤＣ＿ｔｈより大きい場合、ＣＰＵ１０１は、光源がフリッカを生じる可能性があるため、処理をステップＳ３１１へ進める。
【００２３】
なお、ＣＰＵ１０１は、上述した算出したフリッカの振幅との比較において振幅閾値ＤＣ＿ｔｈに固定値を使用してもよいが、本実施形態では各種の状況に応じて値が変更される振幅閾値ＤＣ＿ｔｈを用いる。図７は、振幅閾値ＤＣ＿ｔｈ、周波数閾値Ｆ＿ｔｈ１００、および周波数閾値Ｆ＿ｔｈ１２０の選択の仕方を説明する図である。図７（ａ）は、振幅閾値ＤＣ＿ｔｈとして固定値を用いる場合の比較のための説明図である。図７（ｂ）は、本実施形態のように振幅閾値ＤＣ＿ｔｈとして変動する値を用いる場合の説明図である。図７（ｂ）では、振幅閾値ＤＣ＿ｔｈは、角速度が速くなるほど、大きな値へ変更される。このように撮像装置１の角速度に応じて変更される振幅閾値ＤＣ＿ｔｈを用いてフリッカの振幅を判断するのは、撮像装置１の角速度が速いほど、ＤＣ光源をフリッカ光源と誤判断してしまう可能性が高く、そのような誤判断を抑制するためである。図７（ｂ）では、振幅閾値ＤＣ＿ｔｈは、３つの角速度の区間に対応して３段階で変化しているが、振幅閾値ＤＣ＿ｔｈが変化する段数は、２段階でも、４段階以上でもよい。ＣＰＵ１０１は、図７（ｂ）に基づいて、振幅閾値ＤＣ＿ｔｈを設定する。なお、ＣＰＵ１０１は、図７（ｂ）に替えて、角速度から振幅閾値ＤＣ＿ｔｈの値を計算してもよい。
【００２４】
また、ＣＰＵ１０１は、メモリ１０２に記憶されている過去のフリッカ情報に基づいて、振幅閾値ＤＣ＿ｔｈの値をさらに演算してもよい。メモリ１０２に、撮像装置１が静止している状態での過去のフリッカ情報が記憶されている場合、ＣＰＵ１０１は、撮像装置１の角速度に応じた振幅閾値ＤＣ＿ｔｈの値を、さらに変更する。たとえば、静止している場合の判定結果がＤＣ光源であった場合、振幅閾値ＤＣ＿ｔｈをより大きな値とすることにより、ＣＰＵ１０１は、振幅の比較においてＤＣ光源との判断をし易くなる。この他にもたとえば、静止している場合の判定結果がフリッカ光源であった場合、振幅閾値ＤＣ＿ｔｈをより小さな値とすることにより、ＣＰＵ１０１は、振幅の比較においてＤＣ光源と判断し難くなる。
【００２５】
ステップＳ３１１において、ＣＰＵ１０１は、ステップＳ３０９であると判断したフリッカの周波数が、１００Ｈｚに基づくものであるか、１２０Ｈｚに基づくものであるかを判断する。実際には、ＣＰＵ１０１は、検出対象の１００Ｈｚのフリッカの２周期に相当する期間の輝度波形について周期毎に累積し、周期毎の累積輝度の差分と周波数閾値Ｆ＿ｔｈ１００と比較する。また、ＣＰＵ１０１は、検出対象の１２０Ｈｚのフリッカの２周期に相当する期間の輝度波形について周期毎に累積し、周期毎の累積輝度の差分と周波数閾値Ｆ＿ｔｈ１２０と比較する。そして、いずれかの周波数において累積輝度差が周波数閾値より小さい場合、その周波数のフリッカが存在することになるので、ＣＰＵ１０１は、ステップＳ３１２において検出対象の周波数のフリッカがあるとして、処理をステップＳ３１３へ進める。それ以外の場合には、ＣＰＵ１０１は、光源をフリッカを生じないＤＣ光源と判断し、処理をステップＳ３１０へ進める。ＣＰＵ１０１は、ステップＳ３１０において最終的にはフリッカがないと判断し、すなわちＤＣ光源であると判断し、図４の処理を終了する。この場合、撮像装置１のＣＰＵ１０１は、ステップＳ２０６において、フリッカの影響を抑制する制御を実行しない通常の撮像を実行することになる。
【００２６】
ところで、測光用センサ１０８は、図５に示すようにフリッカを検出するために、６００ｆｐｓ、約１．６６７ｍｓ周期で蓄積・読み出し連続的に実施している。６００ｆｐｓという周波数は、フリッカ光源の１００Ｈｚの周波数と１２０Ｈｚの周波数との公倍数である。そして、たとえば、１００Ｈｚのフリッカが存在する場合、測光用センサ１０８の蓄積および出力の処理と、フリッカとは、図５（ａ）に例示する関係になる。ここで、ｎ回目の蓄積を「蓄積ｎ」と、蓄積ｎの読み出しを「読み出しｎ」と、読み出しｎの結果から得られる測光値を「ＡＥ（ｎ）」と記述する。また、図５（ａ）に記載する各測光値の取得時間には、蓄積が有限の時間で行われているため、各蓄積期間の中央に相当する時間を用いればよい。１００Ｈｚのフリッカの発光周期は、１０ｍｓである。そして、「１０÷１．６６７≒６」である。よって、ＣＰＵ１０１は、図５（ａ）に示すように、蓄積のタイミングによらず、６回周期で同じ測光値を得られる。すなわち、フリッカが１００Ｈｚで定常的に発生している場合、ＡＥ（ｎ）＝ＡＥ（ｎ＋６）になる。同様に、１２０Ｈｚのフリッカの発光周期は、約８．３３ｍｓである。そして、「８．３３÷１．６６７≒５」である。よって、ＣＰＵ１０１は、図５（ｂ）に示すように、蓄積のタイミングによらず、５回周期で同じ測光値を得られる。すなわち、フリッカが１２０Ｈｚで定常的に発生している場合、ＡＥ（ｎ）＝ＡＥ（ｎ＋５）になる。また、フリッカがない環境下では、ｎによらずＡＥ（ｎ）は一定となる。
【００２７】
ここで、ステップＳ３１１の処理の具体例についてさらに説明する。上述した関係性を考慮して、ステップＳ３１１において、ＣＰＵ１０１は、下記式１を用いて１００Ｈｚのフリッカの周期毎の累積輝度差である評価値Ｆ１００を演算し、周波数閾値Ｆ＿ｔｈ１００と比較する。また、ＣＰＵ１０１は、下記式２を用いて、１２０Ｈｚのフリッカの周期毎の累積輝度差である評価値Ｆ１２０を演算し、周波数閾値Ｆ＿ｔｈ１２０と比較する。
【００２８】
【数１】
2019220921.tif 000003
【００２９】
【数２】
2019220921.tif 000004
【００３０】
そして、ＣＰＵ１０１は、以下の比較判断により、ステップＳ３０９において存在するとしたフリッカの周波数を特定する。［比較判断１］  Ｆ１００＜Ｆ＿ｔｈ１００  かつ  Ｆ１２０＜Ｆ＿ｔｈ１２０が成り立つ場合、ＣＰＵ１０１は、フリッカが生じないＤＣ光源として処理する。［比較判断２］  Ｆ１００＜Ｆ＿ｔｈ１００  かつ  Ｆ１２０≧Ｆ＿ｔｈ１２０が成り立つ場合、ＣＰＵ１０１は、１００Ｈｚのフリッカが生じているとして処理する。［比較判断３］  Ｆ１００≧Ｆ＿ｔｈ１００  かつ  Ｆ１２０＜Ｆ＿ｔｈ１２０が成り立つ場合、ＣＰＵ１０１は、１２０Ｈｚのフリッカが生じているとして処理する。［比較判断４］  Ｆ１００≧Ｆ＿ｔｈ１００  かつ  Ｆ１２０≧Ｆ＿ｔｈ１２０が成り立つ場合、ＣＰＵ１０１は、フリッカが生じないＤＣ光源として処理する。
【００３１】
なお、ＣＰＵ１０１は、上述した算出したフリッカの周波数との比較において周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０に固定値を使用してもよいが、本実施形態では各種の状況に応じて値が変更される周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０を用いる。図７（ｃ）は、周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０として変動する値を用いる場合の説明図である。周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０は、角速度が速くなるほど、小さな値に変更される。このようにＣＰＵ１０１は、撮像装置１の角速度に応じて変更される周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０を用いてフリッカの周波数を判断する。これにより、ＣＰＵ１０１は、撮像装置１の角速度が速いほど、ＤＣ光源をフリッカ光源と誤判断してしまう可能性が高くなるが、そのような誤判断を抑制できる。図７（ｃ）では、周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０は、角速度の区間に対応して３段階で変化しているが、周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０が変化する段数は、２段階でも、４段階以上でもよい。ＣＰＵ１０１は、図７（ｃ）に基づいて、周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０を設定する。なお、ＣＰＵ１０１は、図７（ｃ）に替えて、角速度から周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０の値を計算してもよい。
【００３２】
また、輝度画像において、撮像装置１の画角変化方向であるパンニング方向と同じ回転方向に沿って周期的な輝度変化が生じている領域がある場合、ＣＰＵ１０１は、周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０を小さく設定する。これにより、フリッカの周波数が誤って判定されにくくなる。これにより、光源の輝度が、ステップＳ３０８で説明した輝度閾値より低い場合であっても、ＣＰＵ１０１は、図２のようなシーンにおいて誤検出をさらに生じ難くなる。
【００３３】
また、ＣＰＵ１０１は、メモリ１０２に記憶されている過去のフリッカ情報に基づいて、周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０の値を演算してもよい。メモリ１０２に、撮像装置１が静止している状態での過去のフリッカ情報が記憶されている場合、ＣＰＵ１０１は、上述した角速度に基づいて、計算した周波数閾値Ｆ＿ｔｈ１００、Ｆ＿ｔｈ１２０の値をさらに変更する。たとえば、静止している場合の判定結果が１００Ｈｚであった場合、周波数閾値Ｆ＿ｔｈ１００をより大きな値とすることにより、ＣＰＵ１０１は、周波数の比較において１００Ｈｚのフリッカであると判断し易くなる。この他にもたとえば、静止している場合の判定結果が１２０Ｈｚであった場合、周波数閾値Ｆ＿ｔｈ１２０をより小さな値とすることにより、ＣＰＵ１０１は、周波数の比較において１００Ｈｚのフリッカであると判断し易くなる。
【００３４】
ステップＳ３１３において、ＣＰＵ１０１は、フリッカの有無や周波数についてのフリッカ情報を生成して、メモリ１０２に保持されているフリッカ情報を更新する。また、ＣＰＵ１０１は、フリッカにより被写体が明るくなるピークタイミングを算出し、メモリ１０２に保持されているピークタイミングの情報を更新する。この場合、撮像装置１のＣＰＵ１０１は、ステップＳ２０７において、更新されたフリッカ情報と、更新されたピークタイミングの情報とを用いて、撮像を実行することになる。その後、ＣＰＵ１０１は、図４の処理を終了する。
【００３５】
ところで、ステップＳ３０２において検出している角速度が角速度閾値より速いと判断した場合、ＣＰＵ１０１は、処理をステップＳ３０３に進める。この場合、ＣＰＵ１０１は、今回のステップＳ３００で取得した計測データは、フリッカの検出のために利用されない。ステップＳ３０３において、ＣＰＵ１０１は、フリッカ情報の保持期間が、所定の時間より長いか否かを判定する。ある過去のタイミングで取得したフリッカ情報についての保持期間が長くなるにつれ、これを用いて算出されるフリッカの位相は、算出時点において実際に発生しているフリッカ光源の位相に対しずれてゆく。このずれは、たとえば、光源の周波数の変動、撮像装置１のタイミング精度（ＣＰＵ１０１のシステムクロック精度など）に起因する。このため、ＣＰＵ１０１は、ステップＳ３０３においてフリッカ情報の保持期間を判定する。そして、フリッカ情報の保持期間が所定の閾値時間以下である場合、保持しているフリッカ情報の信頼性がある可能性が高い。ＣＰＵ１０１は、処理をステップＳ３０５へ進めて、フリッカ情報を更新することなく、フリッカのピークタイミングを算出して更新する。この場合、撮像装置１のＣＰＵ１０１は、ステップＳ２０７において、更新されていないフリッカ情報と、更新されたピークタイミングの情報を用いて、撮像を実行することになる。これに対し、フリッカ情報の保持期間が所定の閾値時間より長い場合、保持しているフリッカ情報の信頼性が低い。ＣＰＵ１０１は、処理をステップＳ３０４へ進めて、光源をフリッカのないＤＣ光源として設定する。この場合、撮像装置１のＣＰＵ１０１は、ステップＳ２０６において、フリッカの影響を抑制する制御を実行しない通常の撮像を実行することになる。このように、ＣＰＵ１０１は、ステップＳ３０９およびステップ３１１において、撮像環境のフリッカの有無の判断と、フリッカが有る場合はその基本周波数である１００もしくは１２０Ｈｚの判断とを実施する。
【００３６】
以上のように、本実施形態では、撮像装置１の向きが変わる場合、撮像する被写体についてのフリッカの影響を検出する際に、検出した撮像装置１の角速度に応じて閾値を変更し、変更された閾値を用いてフリッカ有無および周波数を判断する。ＣＰＵ１０１は、たとえば、撮像装置１の角速度が速いほど、フリッカを検出する前記閾値を、フリッカを検出し難くなるように変更する。よって、ＣＰＵ１０１は、撮像装置１の向きが変わることに起因する被写体の明るさの変動を、光源の光量の変動に起因する被写体の明るさの変動であるフリッカとして誤って検出し難くなる。ＣＰＵ１０１は、撮像装置１の角速度が速くなるほど、それに起因する被写体の明るさの変動をフリッカとして誤って検出する可能性が高くなるが、そのように角速度が速い場合であってもフリッカについての誤検出を生じ難くできる。その結果、撮像装置１ＣＰＵ１０１は、たとえばフリッカが生じていない撮像環境において撮像装置１の向きを変えるパンニング撮像がなされている場合において、フリッカを抑えた撮像を行わないで、通常の撮像を適切に実施できる。
【００３７】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【００３８】
上記実施形態では、ＣＰＵ１０１は、図５に示すように、１２回の連続する輝度画像からフリッカの検出およびフリッカピークタイミングを取得している。この他にもたとえば連続撮像のコマ間においては、ＣＰＵ１０１は、６回の連続する画像からフリッカのピークタイミングのみを取得してもよい。
【００３９】
本発明は、上述の実施の形態の１以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの１つ以上のプロセッサーがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４０】
１  撮像装置
１０１  ＣＰＵ
１０２  メモリ
１０３  撮像素子
１０７  角速度センサ
１０８  測光用センサ
１１１  タイマ
３００  点光源
【図１】
2019220921.tif 000005
【図２】
2019220921.tif 000006
【図３】
2019220921.tif 000007
【図４】
2019220921.tif 000008
【図５】
2019220921.tif 000009
【図６】
2019220921.tif 000010
【図７】
2019220921.tif 000011