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

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

▶ キヤノン株式会社の特許一覧

特許7490397画像処理装置、判定方法およびプログラム
<>
  • 特許-画像処理装置、判定方法およびプログラム 図1
  • 特許-画像処理装置、判定方法およびプログラム 図2
  • 特許-画像処理装置、判定方法およびプログラム 図3
  • 特許-画像処理装置、判定方法およびプログラム 図4
  • 特許-画像処理装置、判定方法およびプログラム 図5
  • 特許-画像処理装置、判定方法およびプログラム 図6
  • 特許-画像処理装置、判定方法およびプログラム 図7
  • 特許-画像処理装置、判定方法およびプログラム 図8
  • 特許-画像処理装置、判定方法およびプログラム 図9
  • 特許-画像処理装置、判定方法およびプログラム 図10
  • 特許-画像処理装置、判定方法およびプログラム 図11
  • 特許-画像処理装置、判定方法およびプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-17
(45)【発行日】2024-05-27
(54)【発明の名称】画像処理装置、判定方法およびプログラム
(51)【国際特許分類】
   H04N 23/60 20230101AFI20240520BHJP
   H04N 23/745 20230101ALI20240520BHJP
   H04N 7/18 20060101ALI20240520BHJP
   G03B 15/00 20210101ALI20240520BHJP
【FI】
H04N23/60 500
H04N23/745
H04N7/18 D
H04N7/18 K
G03B15/00 S
【請求項の数】 19
(21)【出願番号】P 2020041050
(22)【出願日】2020-03-10
(65)【公開番号】P2021145178
(43)【公開日】2021-09-24
【審査請求日】2023-03-01
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100109380
【弁理士】
【氏名又は名称】小西 恵
(74)【代理人】
【識別番号】100109036
【弁理士】
【氏名又は名称】永岡 重幸
(72)【発明者】
【氏名】金子 成悟
【審査官】村山 絢子
(56)【参考文献】
【文献】特開2004-157979(JP,A)
【文献】特開2004-118424(JP,A)
【文献】特開2019-179389(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/00
H04N 23/40-23/76
H04N 23/9-23/959
H04N 5/222-5/257
H04N 7/18
G03B 15/00-15/035
G03B 15/06-15/16
(57)【特許請求の範囲】
【請求項1】
画像を取得する取得手段と、
前記画像の一部の領域である部分領域と、前記部分領域に含まれる画素とは異なる画素を少なくとも一部に含む領域である参照領域とのそれぞれについて、フレーム間での明るさの変化の割合を算出する算出手段と、
前記部分領域の明るさの変化の割合と、前記参照領域の明るさの変化の割合に基づいて、前記部分領域が動体を含む動体領域であるか否かを判定する判定手段と、
を備える像処理装置であって、
前記判定手段は、前記参照領域の明るさの変化が所定値以下の場合、前記部分領域の明るさの変化に基づいて、前記部分領域が前記動体領域であるか否かを判定することを特徴とする画像処理装置
【請求項2】
前記判定手段は、前記部分領域の明るさの変化の割合と、前記参照領域の明るさの変化の割合との差を閾値と比較し、前記差が前記閾値を超えている場合、前記部分領域が、動体を含む動体領域であると判定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記参照領域の画素数は、前記部分領域の画素数より多いことを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記判定手段は、前記参照領域の明るさの変化が所定値を超えている場合、前記画像にフリッカがあると判定することを特徴とする請求項1からのいずれか1項に記載の画像処理装置。
【請求項5】
前記動体を含まない非動体領域の明るさの変化の周期性に基づいて、前記画像におけるフリッカによる明るさの変化を補正する第1補正手段を備えることを特徴とする請求項1からのいずれか1項に記載の画像処理装置。
【請求項6】
前記動体領域に隣接し、前記動体を含まない非動体領域の明るさの変化の周期性に基づいて、前記動体領域におけるフリッカによる明るさの変化を補正する第2補正手段を備えることを特徴とする請求項1からのいずれか1項に記載の画像処理装置。
【請求項7】
前記判定手段は、前記画像に含まれるフリッカ成分を補正した領域ごとの明るさを示す明るさマップを生成することを特徴とする請求項1からのいずれか1項に記載の画像処理装置。
【請求項8】
前記判定手段は、前記閾値に複数の値を設定し、前記複数の値ごとの判定結果を前記部分領域ごとに段階的に示す動体マップを生成することを特徴とする請求項に記載の画像処理装置。
【請求項9】
前記画像の全体の明るさの周期的な変化に基づいて、フリッカの予測値を出力する予測手段と、
前記フリッカの予測値に基づいて、次フレームの画像をデジタルゲインで補正する第3補正手段と、
を備えることを特徴とする請求項1からのいずれか1項に記載の画像処理装置。
【請求項10】
前記動体領域または前記動体を含まない非動体領域に対して、シャッタスピード、ISO感度、前記閾値、前記部分領域の範囲およびフリッカの補正値のうち少なくともいずれか1つを含むパラメータを変更する変更手段を備えることを特徴とする請求項2または8に記載の画像処理装置。
【請求項11】
前記変更手段は、前記画像の明るさの変化が所定値を超えている場合、前記所定値以下の場合よりも、シャッタスピードを長くするか、前記シャッタスピードの設定数を減らすかまたは使用するシャッタの種類を減らし、
前記画像の明るさの範囲が所定値以下の場合、前記画像の全体に同一のシャッタスピードを適用することを特徴とする請求項10に記載の画像処理装置。
【請求項12】
前記部分領域のシャッタスピードと前記参照領域のシャッタスピードは、同一であるかまたは所定範囲内にあることを特徴とする請求項1から11のいずれか1項に記載の画像処理装置。
【請求項13】
前記判定手段は、前記動体領域または前記動体を含まない非動体領域であると判定された部分領域に対して、前記判定した結果を所定のフレーム数の分だけ維持し続けることを特徴とする請求項1から12のいずれか1項に記載の画像処理装置。
【請求項14】
前記判定手段は、前記部分領域以外の領域に対しては、前記領域の周辺の画素あるいは領域の判定結果を適用することを特徴とする請求項1から13のいずれか1項に記載の画像処理装置。
【請求項15】
前記判定手段は、前記参照領域の明るさの変化が所定値を超えている場合、前記所定値以下の場合よりも、前記閾値の値を大きくすることを特徴とする請求項2、8、10のいずれか1項に記載の画像処理装置。
【請求項16】
前記判定手段は、前記参照領域の明るさの変化が所定値を超えている場合、前記所定値以下の場合よりも、前記部分領域が動体領域であるか否かの判定の頻度を上げることを特徴とする請求項1から15のいずれか1項に記載の画像処理装置。
【請求項17】
前記部分領域と前記参照領域は、撮像素子の走査方向にある画素または領域あるいは前記走査方向に対して所定範囲内の上下方向にある画素または領域であることを特徴とする請求項1から16のいずれか1項に記載の画像処理装置。
【請求項18】
画像を取得するステップと、
前記画像の一部の領域である部分領域と、前記部分領域に含まれる画素とは異なる画素を少なくとも一部に含む領域である参照領域とのそれぞれについて、フレーム間での明るさの変化の割合を算出するステップと、
前記部分領域の明るさの変化の割合と、前記参照領域の明るさの変化の割合に基づいて、前記部分領域が動体を含む動体領域であるか否かを判定するステップと、
を備える定方法であって、
前記判定するステップは、前記参照領域の明るさの変化が所定値以下の場合、前記部分領域の明るさの変化に基づいて、前記部分領域が前記動体領域であるか否かを判定することを特徴とする判定方法。
【請求項19】
コンピュータを請求項1から17のいずれか1項に記載の画像処理装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、判定方法およびプログラムに関する。
【背景技術】
【0002】
監視映像の経時的な差分成分をそのまま利用して監視映像の変化を判定し、この変化に基づいて監視映像を伝送するか否かを自己判定してから、当該監視映像を警備センタに伝送する技術が知られている(例えば、特許文献1参照)。
また、画像から動体を含む動体領域を検出する場合、明るさの変化から動体領域を検出することが行われている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2000-20857号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、フリッカなどがある環境下などでは、そのフリッカに起因する明るさの変化が撮像画像に発生し、動体領域を適正に判定できなくなるおそれがあった。
本発明が解決しようとする課題は、画像から動体を含む動体領域を適正に判定することである。
【課題を解決するための手段】
【0005】
本発明の1つの態様による画像処理装置は、画像を取得する取得手段と、記画像の一部の領域である部分領域と、前記部分領域に含まれる画素とは異なる画素を少なくとも一部に含む領域である参照領域とのそれぞれについて、フレーム間での明るさの変化の割合を算出する算出手段と、前記部分領域の明るさの変化の割合と、前記参照領域の明るさの変化の割合に基づいて、前記部分領域が動体を含む動体領域であるか否かを判定する判定手段と、を備え、前記判定手段は、前記参照領域の明るさの変化が所定値以下の場合、前記部分領域の明るさの変化に基づいて、前記部分領域が前記動体領域であるか否かを判定する
【図面の簡単な説明】
【0006】
図1】第1実施形態に係る撮像装置の構成例を示すブロック図。
図2】第1実施形態に係る撮像画像および明るさマップを示す模式図。
図3】第1実施形態に係る撮像画像、明るさマップおよび差分画像を示す模式図。
図4】第1実施形態に係る撮像処理を示すフローチャート。
図5】第1実施形態に係る動体領域判定処理を示すフローチャート。
図6】第1実施形態に係る撮像画像、明るさマップおよび動体マップを示す模式図。
図7】第1実施形態に係る撮像条件設定処理を示すフローチャート。
図8】第2実施形態に係る動体領域判定処理を示すフローチャート。
図9】第2実施形態に係る撮像画像、明るさマップおよび動体マップを示す模式図。
図10】第3実施形態に係る撮像装置の構成例を示すブロック図。
図11】第3実施形態に係る明るさマップ補正処理を示すフローチャート。
図12】第3実施形態に係る撮像画像および明るさマップを示す模式図。
【発明を実施するための形態】
【0007】
以下、添付図面を参照して本発明の実施形態を詳細に説明する。なお、以下の実施形態は本発明を限定するものではなく、また、実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。実施形態の構成は、本発明が適用される装置の仕様や各種条件(使用条件、使用環境等)によって適宜修正または変更され得る。本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されない。
【0008】
<第1実施形態>
図1は、第1実施形態に係る撮像装置の構成例を示すブロック図である。
図1に示す撮像装置1Aの各機能モジュールのうち、ソフトウェアにより実現される機能については、各機能モジュールの機能を提供するためのプログラムがROM(Read Only Memory)等のメモリに記憶される。そして、そのプログラムをRAM(Random Access Memory)に読み出してCPU(Central Processing Unit)が実行することにより実現される。ハードウェアにより実現される機能については、例えば、所定のコンパイラを用いることで、各機能モジュールの機能を実現するためのプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてゲートアレイ回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。なお、図1に示した機能ブロックの構成は一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、いずれかの機能ブロックが複数の機能を行うブロックに分かれてもよい。
【0009】
図1において、撮像装置1Aは、撮像領域を分割した領域ごとまたは画素ごとにシャッタスピードおよびISO感度などの撮像条件を設定し、領域ごとまたは画素ごとに露光量を制御して画像を撮像することができる。撮像装置1Aは、単体で利用してもよいし、スマートフォンまたは監視装置などに搭載してもよい。
撮像装置1Aは、撮像部101、信号処理部103、D/A(Digital/Analog)変換部104、エンコーダ部105、メディアI/F(インターフェース)部106を備える。また、撮像装置1Aは、CPU107、ROM108およびRAM109を備える。さらに、撮像装置1Aは、撮像系制御部110、操作部111、キャラクタジェネレーション部112、表示部113、動体マップ取得部114、明るさ変化比較部115Aおよび明るさマップ取得部116を備える。
【0010】
撮像部101は、被写体からの光を画素ごとに検出する。被写体は、例えば、照明20下における動体21および非動体22である。撮像部101は、例えば、ズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッタ、光学ローパスフィルタ、IR(Infrared Rays)カットフィルタ、カラーフィルタおよび撮像センサなどを備える。撮像センサは、例えば、CMOS(Complementary Metal Oxide Semiconductor)センサまたはCCD(Charge Coupled Device)センサである。
【0011】
A/D変換部102は、被写体からの光の検出量をアナログ値からデジタル値に変換する。
信号処理部103は、A/D変換部102から出力されたデジタル値を信号処理し、デジタル画像を生成する。信号処理部103で行われる信号処理は、例えば、デモザイキング処理、ホワイトバランス処理およびガンマ処理などである。
D/A変換部104は、信号処理部103で生成されたデジタル画像を表示用にアナログ変換する。
【0012】
エンコーダ部105は、信号処理部103で生成されたデジタル画像に対してデータ圧縮処理を行う。例えば、エンコーダ部105は、JPEG(Joint Photographic Experts Group)方式でデータ圧縮するなどの処理を行う。
メディアI/F部106は、撮像装置1Aをメディア117に接続するインターフェースである。メディア117は、例えば、ハードディスク、メモリーカード、CF(CompactFlash)カード、SDカードまたはUSB(Universal Serial Bus)メモリなどである。メディア117は、PC(Personal Computer)であってもよい。
【0013】
CPU107は、撮像装置1A全体の処理を行う。ROM108とRAM109は、処理に必要なプログラム、データおよび作業領域などをCPU107に提供する。また、後述する処理に必要な制御プログラムがROM108に格納されている場合には、一旦RAM109に読み込まれた後に、CPU107によって実行される。CPU107は、撮像系制御部110、動体マップ取得部114、明るさ変化比較部115Aおよび明るさマップ取得部116を画像処理装置として用いることで、後述する動体領域判定処理および撮像条件設定処理を実施することができる。
なお、CPU107は、GPU(Graphics Processing Unit)であってもよい。CPU107は、シングルコアプロセッサであってもよいし、マルチコアプロセッサであってもよい。CPU107は、ニューラルネットワークとして動作する機能を備えていてもよい。
【0014】
操作部111は、ユーザからの指示を入力する。操作部111は、例えば、ボタン、モードダイヤル、表示部113に付随するタッチパネルなどである。ユーザは、HDR(ハイダイナミックレンジ)出力と標準出力との切り替えのための入力も操作部111で行うことができる。
キャラクタジェネレーション部112は、数字、文字、記号およびグラフィックなどを生成する。
表示部113は、撮像画像およびGUI(Graphical User Interface)などの画像を表示する。表示部113は、例えば、CRT(Cathode-Ray Tube)、液晶ディスプレイまたはタッチスクリーンである。タッチスクリーンによる入力は、操作部111の入力として扱うことも可能である。
【0015】
動体マップ取得部114は、撮像部101で取得される被写体に動きがあるか否かを検出する。動体マップ取得部114は、例えば、撮像部101から時系列に沿った撮像データを取得し、撮像データ間の明るさの変化を複数画素で平均化することにより、画素ごとの被写体の動き情報を生成する。動体マップ取得部114は、明るさの変化の平均値が大きい場合は、動きのある画素として動き情報を生成し、明るさの変化の平均値が小さい場合は動きのない画素として動き情報を生成する。動体マップ取得部114は、明るさの変化に基づいて生成した動き情報を画像における各画素または各領域に対して生成することで、動体マップとして保持する。動体マップの詳細については後述する。なお、動体マップは、上記の方法だけでなく、他の方法を用いて取得してもよい。例えば、動体マップ取得部114は、時系列に沿った2つの撮像データ間においては、同じ画素位置の画素値の差分を所定の閾値と比較し、差分が大きい画素は動体領域、差分が小さい画素は非動体領域とすることで、動体マップを生成することもできる。
【0016】
明るさ変化比較部115Aは、画像の一部の領域である部分領域と、部分領域に含まれる画素とは異なる画素を少なくとも一部に含む領域である参照領域とのそれぞれについて、フレーム間での明るさの変化の割合を算出する。そして、明るさ変化比較部115Aは、部分領域の明るさの変化の割合と、参照領域の明るさの変化の割合に基づいて、部分領域が動体を含む動体領域であるか否かを判定する。例えば、明るさ変化比較部115Aは、部分領域の明るさの変化の割合と、参照領域の明るさの変化の割合との差を閾値と比較し、その差が閾値を超えている場合、部分領域が動体領域であると判定する。
【0017】
なお、参照領域の画素数は、部分領域の画素数より多くすることができる。また、参照領域は、動体領域であるか否かの判定対象となる部分領域を含んでもよいし含まなくてもよい。参照領域の位置または画素数は固定されてもよいし、参照領域の位置または画素数を変化させてもよい。例えば、撮像画像全体に参照領域を固定してもよいし、非動体領域であると判定された領域または非動体領域であると予測される領域に参照領域の位置を適宜変更してもよい。また、参照領域は、必ずしも連続している領域である必要はなく、分離した複数の領域であってもよい。例えば、参照領域は、画像の4隅に設けてもよい。また、ニューラルネットワークなどの学習モデルに非動体領域と判定された部分を学習させ、その学習結果に基づいて参照領域を設定してもよい。
【0018】
例えば、部分領域は、画像に含まれる画素または画像を分割した領域とし、参照領域は、画像全体とすることができる。そして、明るさ変化比較部115Aは、動体マップ取得部114で取得された明るさの変化に対して、画素ごとまたは領域ごとの明るさの変化の割合と画像全体の明るさの変化の割合を比較する。明るさ変化比較部115Aは、画素ごとまたは領域ごとの明るさの変化の割合と画像全体の明るさの変化の割合が一致している場合には非動体領域、一致していない場合には動体領域として判定することができる。これにより、明るさ変化比較部115Aは、撮像画像を用いた動体判定の補正を行うことができる。このとき、蛍光灯のフリッカなどの照明23の影響により、画像全体に明るさの変化が発生する場合においても、画像全体の明るさの変化と、動体の動きに伴う明るさの変化とを切り分け、動体領域の検出精度を向上させることができる。また、蛍光灯のフリッカ以外にも、LED(Light Emitting Diode)照明の点灯および消灯または太陽光の日照変動などの影響による明るさの変化がある場合においても同様に、動体領域の検出精度を向上させることができる。
【0019】
以下の説明では、フリッカがある環境下で撮像された撮像画像から、動体領域を検出する場合を例にとる。
明るさマップ取得部116は、撮像部101で取得される撮像データから、画素ごとまたは領域ごとに被写体の明るさを示す明るさマップを取得する。例えば、明るさマップ取得部116は、撮像センサから得られた画素ごとの明るさ情報を複数画素で平均化し、画像の明るさマップとして保持する。明るさマップの詳細については後述する。
なお、図1の例では、動体マップ取得部114、明るさ変化比較部115Aおよび明るさマップ取得部116をCPU107とは別個のブロックで示した。動体マップ取得部114、明るさ変化比較部115Aおよび明るさマップ取得部116で実行される処理は、CPU107で実現される機能の一部としてCPU107が実行してもよい。
【0020】
撮像系制御部110は、CPU107で指示された撮像系の制御を行う。撮像系制御部110は、シャッタスピードおよびISO感度などの撮像条件を、撮像部101に対して画素ごとまたは領域ごとに設定する。また、撮像系制御部110は、フォーカスの調整、シャッタの開閉および絞りの調節などの制御も行う。
なお、撮像装置1Aは、上記の構成要素以外にも様々な構成要素を含むことができるが、その説明は省略する。
【0021】
本実施形態で説明する撮像条件設定処理は、動体マップ取得部114から動体マップを取得し、明るさマップ取得部116から明るさマップを取得し、動体マップおよび明るさマップに基づいて撮像系制御部110を制御する撮像条件データを生成する。CPU107は、ROM108に格納された制御プログラムをRAM109に読み込み実行することで、撮像条件設定処理を実施する。
【0022】
なお、上述した説明では、撮像装置1Aが撮像した撮像画像から動体領域を判定する場合を説明したが、撮像装置1Aは、メディア117またはネットワークを介して撮像画像を取得し、その撮像画像から動体領域を判定するようにしてもよい。
また、動体マップ取得部114、明るさ変化比較部115Aおよび明るさマップ取得部116を画像処理装置として、上述した動体検出機能を持たない機器に組み込み可能としてもよい。例えば、動体マップ取得部114、明るさ変化比較部115Aおよび明るさマップ取得部116に機能をプログラムに記述することができる。そして、画像を取得可能な通信機能または撮像機能を有するスマートフォンなどの機器に、そのプログラムをインストールすることで、上述した動体検出機能を付加できるようにしてもよい。
【0023】
図2は、第1実施形態に係る撮像画像および明るさマップを示す模式図である。なお、図2(a)はフリッカの明状態での撮像画像の例を示し、図2(b)は明るさマップの例を示す。
図2(a)において、撮像画像11Aは、図1の動体21に対応する動体画像201、非動体22に対応する非動体画像202および背景画像203を含む。動体画像201は、動体21の動きによってフレーム間の明るさが大きく変化する画像、非動体画像202および背景画像203は、動体21の動きによるフレーム間の明るさの変化がない画像である。
図2(b)において、明るさマップ11Bは、例えば、図2(a)の撮像画像11Aを分割した領域ごとの明るさを示す。明るさマップ11Bは、領域の値が高いほど、その領域の明るさが高いことを示す。図2(b)の例では、値の大きさを白黒の濃淡で表現している。値が高い領域は白、値が低い領域は黒で表現される。明るさマップ11Bでは、動体画像201および非動体画像202は暗く表現され、背景画像203は明るく表現される。
【0024】
図3は、第1実施形態に係る撮像画像、明るさマップおよび差分画像を示す模式図である。図3(a)はフリッカの滅状態での撮像画像の例を示し、図3(b)は明るさマップの例を示し、図3(c)は差分画像の例を示す。
図3(a)の撮像画像12Aでは、図1の照明20によるフリッカによって、図2(a)の撮像画像11Aに対して画像全体の明るさが暗く変化している。撮像画像12Aが暗くなり、画像全体の明るさの値も小さくなる、図3(b)の明るさマップ12Bも、図2(b)の明るさマップ11Bよりも、全ての領域211で暗くなる。
【0025】
図3(c)において、差分画像12Cは、図2(b)の撮像画像11Aの明るさと、図3(b)の撮像画像12Aの明るさを画素ごとまたは領域ごとに比較した画像である。図2(b)および図3(b)に示すように、フリッカによって画像全体の明るさが変化しているため、図3(c)の差分画像12Cは、画像全面が明るさの変化によって値が高くなる。図3(c)の差分画像12Cも値が高い領域は白、値が低い領域は黒の濃淡で表現している。
図3(c)に示すように、差分画像12Cでは、動体の有無に関わらず、全ての領域221で明るさが一様に変化するため、差分画像12Cからは、フリッカ環境下における動体領域を適切に判定することができない。
明るさ変化比較部115Aは、差分画像12Cの値を補正し、フリッカ環境下においても、動体領域と非動体領域の切り分けを行うことができる。差分画像221の補正に関しては、図5および図6を用いて後述する。
【0026】
図4は、第1実施形態に係る撮像処理を示すフローチャートである。なお、フローチャートで示される一連の処理は、CPU107がROM108に格納されている制御プログラムをRAM109に読み込み、実行することにより行われる。あるいは、フローチャートにおけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。この場合、図4に示すフローチャートにおける各ブロックは、ハードウェアブロックと見做すことができる。なお、複数のブロックをまとめて1つのハードウェアブロックとして構成してもよく、1つのブロックを複数のハードウェアブロックとして構成してもよい。あるいは、CPU107は、ネットワークを介してクラウド上のコンピュータなどに、フローチャートにおけるステップの一部または全部の処理の実行を依頼し、その実行結果を受け取るようにしてもよい。
【0027】
図4において、例えば、図1の操作部111により、HDR出力が指定された撮像開始の指示が入力されると、以下の撮像処理が開始される。
S30において、CPU107は、前フレームの撮像画像と現フレームの撮像画像の全体の明るさを所定値である閾値と比較し、フリッカの有無を判定する。画像全体の明るさの変化が小さく、明るさの変化の値が閾値以下の場合には、フリッカが発生している可能性が低いため、S31へ移行する。
S31では、CPU107は、フリッカが発生していないと判定し、S33およびS34の処理を行う。
【0028】
S33において、CPU107は、明るさマップ取得部116を用いて、被写体の画像の明るさマップを取得する。明るさマップは、画素ごとまたは領域ごとの撮像条件および明るさから予測される明るさを示す。画素ごとではなく、複数の画素をまとめて領域として扱う場合には、その領域内の画素の明るさを平均化する。ただし、フリッカが発生していないため、フリッカの補正処理を行う必要がなく、S35の明るさマップ生成処理の負荷が低減する。
S34において、CPU107は、画素ごとまたは領域ごとに明るさの変化を確認する差分画像を生成し、S37に進む。なお、S30、S31、S33およびS34の処理は省略してもよく、省略した場合でも、本実施形態は実施可能である。
【0029】
ここで、CPU107は、フリッカなどに起因して撮像画像全体に明るさの変化が発生している場合にも、動体領域と非動体領域の切り分けを有効に行うことができる。このため、画像全体の明るさに変化がない場合には、CPU107は、画像全体の明るさの変化を確認する必要がない。このとき、CPU107は、画素ごとまたは領域ごとに明るさの変化があるか否かの確認のみで動体判定することで、処理の負荷を減らすことができる。
【0030】
一方、画像全体の明るさの変化が大きく、変化の値が閾値を超えている場合には、フリッカが発生している可能性が高いため、CPU107は、S32へ移行する。
S32では、CPU107は、フリッカが発生していると判定し、S35およびS36の処理を行う。
【0031】
S35において、CPU107は、明るさマップ取得部116を用いて、被写体の明るさマップを取得する。
S36において、CPU107は、動体マップ取得部114を用いて、被写体の動体マップを取得し、S37に進む。動体マップの取得方法は後述する。
【0032】
S37において、CPU107は、S34で取得した差分画像またはS35で取得した明るさマップおよびS36で取得した動体マップに基づいて、撮像部101が撮像を行う際の撮像条件を設定する。このとき、CPU107は、画素ごとまたは領域ごとに異なる撮像条件を適用することができる。すなわち、CPU107は、撮像条件設定手段として機能する。
S38において、CPU107は、S37で設定した撮像条件データを撮像系制御部110に送り、撮像部101を駆動させて撮像を行わせ、撮像データを取得する。
【0033】
S39において、CPU107は、S38で得られた撮像データに対して、画素ごとまたは領域ごとの露光量差に合わせてデジタルゲインを適用し、画像全体の明るさを合わせる。S38で得られる撮像データは、画素ごとまたは領域ごとに異なる撮像条件が適用されているため、CPU107は、各画素または領域に対して露光量差に相当するデジタルゲインを適用し、これらの撮像条件を疑似的に統一する。
【0034】
図5は、第1実施形態に係る動体領域判定処理を示すフローチャートである。
図5において、CPU107は、画像全体の明るさの変化の割合と、画素ごとまたは領域ごとの明るさの変化の割合とを比較することで、動体マップを生成する。CPU107は、画像全体の明るさの値と、画素ごとまたは領域ごとの明るさの値をフレームごとにRAM109に保存する。
【0035】
S40において、CPU107は、前フレームの画像全体の明るさの値と、画素ごとまたは領域ごとの明るさの値をRAM109から読み出す。
S41において、CPU107は、現フレームの画像全体の明るさの値と、画素ごとまたは領域ごとの明るさの値を算出する。画像全体の明るさは、画像に含まれる全ての画素の明るさの平均値とすることができる。
S42において、CPU107は、S43以降の処理のために画素位置を初期化する。
【0036】
S43において、CPU107は、S40で読み出した明るさの値とS41で算出した明るさの値を用いて、画像全体と、画素ごとまたは領域ごとのそれぞれについて、前フレームと現フレームの明るさの変化の割合を算出する。
フリッカは、周期的に明るさが変化し、同一の照明環境下であれば、画像全体と、画素ごとまたは領域ごとのそれぞれについて、同様の割合で明るさが変化する。明るさの変化の割合が一致している場合にはフリッカ以外には明るさの変化がない領域であり、その画素または領域は、非動体領域である可能性が高い。一方、明るさの変化の割合が一致していない場合にはフリッカ以外にも明るさの変化がある領域であり、その画素または領域は、動体領域である可能性が高い。
そのため、CPU107は、画素または領域における明るさの変化の割合と、画像全体の明るさの変化の割合を比較し、その比較結果に基づいて、画素ごとまたは領域ごとに動体領域であるか非動体領域であるかを判定する。
【0037】
画素または領域の明るさ値をYc、画素または領域の明るさの変化の割合をXc、画像全体の明るさ値をYa、画像全体の明るさの変化の割合をXaとすると、XcおよびXaはそれぞれ、下記の数式(1)および数式(2)で表される。数式中の(n)は、現フレーム、(n-1)は、前フレームを示す。また、数式(1)および数式(2)において、変化の割合は段数として扱ってもよい。
【0038】
Xc={Yc(n)-Yc(n-1)}/Yc(n-1)・・・(1)
Xa={Ya(n)-Ya(n-1)}/Ya(n-1)・・・(2)
【0039】
S44において、CPU107は、明るさ変化比較部115Aにて非動体領域と動体領域の切り分けを行う。このとき、CPU107は、画素または領域の明るさの変化の割合Xcおよび画像全体の明るさの変化の割合Xaを比較し、非動体領域と動体領域の切り分けを行う。
非動体領域と動体領域の切り分けを行うために、明るさ変化の割合の差を判定するための閾値Tを設けることができる。明るさの変化の割合の差と閾値Tとの関係を、以下の数式(3)に示す。
|Xa-Xc|>T ・・・(3)
【0040】
数式(3)において、明るさの変化の割合の差が閾値Tよりも大きい画素または領域は、動体領域である可能性が高い。明るさの変化の割合の差が閾値T以下の画素または領域は、非動体領域である可能性が高い。なお、非動体領域であっても、ノイズなどにより、フリッカ以外の明るさの変化が多少あるため、明るさの変化の割合も完全には一致しない可能性が高い。このため、非動体領域が誤って動体領域と判定されるのを防止するため、余裕を持った閾値Tを設けることが望ましい。
【0041】
S45において、CPU107は、明るさの変化の割合の差が閾値T以下の画素または領域は、非動体領域と判定する。
S46において、CPU107は、明るさの変化の割合の差が閾値Tよりも大きい画素または領域は、動体領域と判定する。
S47において、CPU107は、S45またはS46の判定結果を動体マップに反映する。
【0042】
S48において、CPU107は、撮像条件設定処理が全画素で終了したか判定する。終了していれば処理を終了し、終了していなければS49へ戻る。
S49において、CPU107は、処理対象の画素位置または領域位置を次の画素位置または領域位置に移行する。1つの画素または領域に対する処理が終わると、1つ右の画素または領域へ移動する。画素または領域が右端部にある場合には、1つ下の左端部の画素または領域へ移動する。
【0043】
図6は、第1実施形態に係る撮像画像、明るさマップおよび動体マップを示す模式図である。図6(a)はフリッカの滅状態での撮像画像の例を示し、図6(b)は明るさマップの例を示し、図6(c)は動体マップの例を示す。
図6(a)および図6(b)は、図3(a)および図3(b)と同一である。図6(c)は、明るさ変化比較部115Aを用いて1つの閾値に基づいて生成されたフリッカ環境下における次フレームの動体マップを示す。
【0044】
フリッカ環境下において、図2(a)の明状態の撮像画像11Aが前フレームで撮像され、図6(a)の滅状態の撮像画像12Aが現フレームで撮像されたものとする。
CPU107は、図2(a)の明状態の撮像画像11Aから図2(b)の明るさマップ11Bを生成し、図6(a)の明状態の撮像画像12Aから図6(b)の明るさマップ12Bを生成する。
次に、CPU107は、領域211を含む全体領域と、領域211ごとのそれぞれについて、明るさマップ11B、12B間での明るさの変化の割合を取得する。そして、CPU107は、領域211を含む全体領域の明るさの変化の割合と、領域211ごとの明るさの変化の割合を比較し、領域211ごとに動体領域であるか非動体領域であるかを判定する。
【0045】
ここで、非動体画像202および背景画像203では、領域211を含む全体領域の明るさの変化の割合と、領域211Bごとの明るさの変化の割合の差が小さい。このとき、CPU107は、明るさの変化の割合の差が閾値T以下の場合、領域211Bにある非動体画像202および背景画像203を非動体領域と判定する。一方、動体画像201では、領域211を含む全体領域の明るさの変化の割合と、領域211Aごとの明るさの変化の割合の差が大きい。このとき、CPU107は、明るさの変化の割合の差が閾値Tより大きい場合、領域211Aにある動体画像201を動体領域と判定する。
【0046】
CPU107は、図6(c)の動体マップ12Dにおいて、動体領域は値を高く設定し、それ以外の非動体領域は値を低く設定する。このとき、CPU107は、明るさマップおよび差分画像と同様に、動体マップ12Dについても、値が高い領域は白、値が低い領域は黒の濃淡で表現する。図5の処理では閾値を1つ設け、図6(c)の動体マップ12Dを2値で表現した例を示した。閾値が複数ある場合については第2実施形態で示す。
【0047】
なお、図5の処理は、必ずしも毎フレーム行う必要はない。負荷を減らすために、一定期間を空けて図5の処理を実施するようにしてもよい。このとき、動体領域または非動体領域と判定された領域に対して、その判定した結果を所定のフレーム数の分だけ維持し続け、動体領域であるか非動体領域であるかの判定を省略するようにしてもよい。
例えば、動体領域と判定された領域に関しては、数フレームの間は動体領域として、その数フレームの間は動体マップを生成する処理を止めることができる。また、非動体領域に対しても同様に、非動体領域と判定された領域に関しては、数フレームの間は非動体領域として、その数フレームの間は動体マップを生成する処理を止めることができる。
また、図5の処理は、必ずしも画素ごとに実施する必要はなく、隣接する複数の画素をまとめた領域ごとに実施してもよい。この場合、領域内の明るさを平均化するなどの処理が必要となるが、単一の画素ごとに処理する場合と比べて、処理数が減り、負荷を減らすことができる。
【0048】
また、上述した説明では、動体領域の判定対象となる画素または領域の比較対象として画像全体を例にとったが、画像全体ではなく、判定対象とする画素または領域よりも広い領域である広域領域を参照領域としてもよい。
また、フリッカによる撮像画像の明るさは、シャッタスピードによっても変化する。シャッタスピードが長い場合には、フリッカ成分が平均化されるため、撮像画像の明るさへの影響が小さくなる。一方、シャッタスピードが短い場合には、フリッカ成分が平均化されないため、撮像画像の明るさへの影響が大きくなる。そのため、広域領域は、同一あるいは類似のシャッタスピードの領域に限定することで、フリッカが与える明るさのずれを低減させることができ、判定精度を向上させることができる。シャッタスピードの類似の範囲は、シャッタスピードの所定範囲内とすることができる。例えば、類似の範囲は、シャッタスピードの±10%範囲または、フリッカの周期からの明るさへの影響の大きい範囲と少ない範囲というように、一定の閾値を設けて判断すればよい。フリッカの周期が50Hz(20ms)の場合には、例えば、フリッカの周期の10倍である2msを閾値として、閾値を用いた判定結果が同一である領域を類似の領域とすればよい。
【0049】
また、撮像画像の明るさの範囲が狭く、画像全体で単一のシャッタスピードでダイナミックレンジが足りている場合には、全ての画素のシャッタスピードを揃えることで、フリッカの影響を揃えることができる。そのため、全画素でフリッカが与える影響の差がなくなり、判定精度を向上させることができる。画像全体で単一のシャッタスピードではダイナミックレンジが足りない場合においても、シャッタスピードの設定数を減らすことで、比較する領域が増えるため、判定精度を向上させることができる。
【0050】
例えば、短秒露光の1つのシャッタスピードと、長秒露光の1つのシャッタスピードの計2つのシャッタスピードにすることで、ダイナミックレンジを広げつつ、フリッカの影響を2パターンに限定することができる。そのため、比較する対象が2つのどちらかに限定され、比較する領域が増えるため、判定精度を向上させることができる。また、シャッタスピードを限定すると、ダイナミックレンジが低下する。このため、図4のS30で全体の明るさの変化が大きく、フリッカが発生していると判定された場合にのみ、シャッタスピードを限定するようにしてもよい。
【0051】
また、図4のS30において、全体の明るさの変化が大きい場合にはフリッカによる影響が大きいため、動体判定の頻度を上げることが望ましい。さらに、明るさの変化が大きい分、ノイズおよびばらつきなどによって誤検知が発生しやすくなるため、動体を判定するための閾値を大きくすることが望ましい。また、明るさの変化が大きい分、撮像画像への明滅の影響が大きくなる。このため、全体の明るさの変化が大きい場合には、シャッタスピードが長くなるように設定値を制限し、フリッカの影響を低減することが望ましい。全体の明るさの変化が大きいか否かを判定するために、図4のS30の閾値かそれよりも値が大きい閾値を用意する。また、全体の明るさの変化が大きい場合には、使用するシャッタの種類を減らすようにしてもよい。これらの処理によって、動体判定の精度を向上させることができる。
S40の明るさの値の読み出しおよびS41の明るさの値の算出は、S43以降の画素ごとの処理内で行ってもよい。データ削減のため、現フレーム内の処理が終了したら、S40で読み出された値を削除することが望ましい。CPU107は、S43で算出された値を次フレームで使用するため、RAM109に保存する。
【0052】
以下、図4のS37に示した撮像条件設定処理について、図7のフローチャートを参照しながら説明する。図5の処理では、動体マップを用いて、動体領域と非動体領域とで異なるパラメータを設定することができる。
図7は、第1実施形態に係る撮像条件設定処理を示すフローチャートである。
図7のS50において、CPU107は、S36で取得した動体マップをRAM109へ入力する。
【0053】
S51において、CPU107は、RAM109へ入力した動体マップに基づいて、動体に対応する領域を動体領域として特定する。具体的には、CPU107は、動体マップのうち、値が所定の閾値以上である部分を動体領域と判定し、動体マップの値を最大値に更新する。一方、CPU107は、動体マップのうち、値が所定の閾値より小さい部分を非動体領域と判定し、動体マップの値を最小値に更新する。このように、CPU107は、動体領域特定手段として機能する。
S52において、CPU107は、図4のS35で取得した明るさマップをRAM109へ入力する。
【0054】
S53において、CPU107は、撮像時の基本露出量を決定する。CPU107は、例えば、ユーザが指定したシャッタスピード、ISO感度および絞り値に基づいて、基本露出量を決定する。なお、CPU107は、明るさマップ取得部116から得られた明るさマップを参照して平均明るさを露出量に変換して基本露出量を決定してもよいし、他の方法で決定してもよい。
S54において、CPU107は、撮像条件が設定される画素の位置を初期化する。例えば、CPU107は、左上の座標を初期値として設定する。以降、CPU107は、各画素の撮像条件設定処理を右下へ向かって順次行う。
【0055】
S55において、CPU107は、撮像条件設定処理が行われる対象画素の位置(すなわち、処理対象の画素位置)に対応する動体マップの値が、動体領域を示す値(すなわち、255)であるか否かを判定する。CPU107は、動体領域でないと判定した場合はS56へ進み、動体領域であると判定した場合はS57へ進む。
S56において、CPU107は、処理対象の画素位置に対応する明るさマップの値を参照し、シャッタスピードを変更した撮像条件を設定する。すなわち、CPU107は、非動体領域については、ISO感度またはシャッタスピードを変更する。これにより、ダイナミックレンジの拡張が可能となる。また、ISO感度およびシャッタスピードの変更は、いずれか一方だけでもよく、両方でもよい。CPU107は、フリッカがある場合においても、非動体領域を判定できるため、非動体領域に適切なパラメータ設定が可能となる。
【0056】
S57において、CPU107は、処理対象の画素位置に対応する明るさマップの値を参照し、ISO感度を変更した撮像条件を設定する。すなわち、CPU107は、動体領域については、シャッタスピードを変更せずに、ISO感度を変更する。従って、1つの動体の中で明るさが異なる領域が存在する場合でも、同一のシャッタスピードが適用されるので、動体がぶれたとしても、そのぶれ量は同じになり、違和感を生じさせないようにすることができる。
CPU107は、画像全面にフリッカによる明るさの変化が発生している状態でも、動体領域と非動体領域の切り分けが可能となる。このため、CPU107は、S56およびS57に示すように、動体領域と非動体領域とでそれぞれパラメータが適正化されるように異なるパラメータを設定することができる
【0057】
S58において、CPU107は、撮像条件設定処理が全画素で終了したか判定する。終了していれば処理を終了し、そうでなければS59へ進む。
S59において、CPU107は、処理対象の画素位置を次の画素位置に移行する。CPU107は、1つの画素に対する処理が終わると、1つ右の画素へ移動する。CPU107は、画素が右端部にある場合には、1つ下の行の左端部の画素へ移動する。
【0058】
なお、S56の非動体画素またはS57の動体画素に適用するパラメータは、ISO感度およびシャッタスピードの撮像条件に限定されない。これらの画素に適用するパラメータは、領域切り分けの閾値、領域の範囲およびフリッカ補正にも適用できる。
領域切り分けの閾値に関して、動体領域と判定された領域において、動体の動きが小さくなると、明るさの変化として見えづらくなることがあり得る。動体領域あるいはその近傍では、次フレームでも動体領域である可能性が高い。そのため、一度動体領域と判定された領域あるいはその近傍の領域では、閾値Tを大きくすることで、動体の動きが小さくなって動体による明るさの変化が小さくなった場合においても、同一領域が動体領域であると判定しやすくできる。
【0059】
領域の範囲に関して、動体領域と判定された領域の隣接領域には、次フレームで動体が移動して明るさの変化が発生する可能性が高い。そのため、動体領域と判定された領域においては、その隣接領域に関しても動体領域と判定することで、次フレームの動体領域を予測できる。また、隣接領域を動体領域と判定しなくても、閾値Tを上げることで、動体と判定しやすくなる。
例えば、非動体領域に関しては、明るさの変化の周期性から適切なフリッカの補正値を算出できる。しかし、動体領域では動体の明るさの変化も含まれるため、適切なフリッカの補正値を算出しにくい。そこで、非動体領域では、その非動体領域で算出されたフリッカの補正値を用い、動体領域では周辺の非動体領域と同一のフリッカの補正値を用いることで、動体領域においても適切なフリッカの補正が可能となる。
【0060】
本実施形態では、画像内の全ての画素ごとまたは領域ごとに動体領域の判定する場合を例にとったが、必ずしも画像内の全ての画素ごとまたは領域ごとに動体領域の判定を行わなくてもよい。このとき、判定を行わない領域に対しては、その領域の周辺の画素あるいは領域が動体領域であるか非動体領域であるかの判定結果を適用することができる。例えば、動体判定処理の負荷を減らすために、画素あるいは領域を1つ飛ばしで動体領域の判定を行うようにしてもよい。この場合、動体領域の判定を飛ばされた画素または領域に関しては、その周辺画素または周辺領域の判定結果から、動体領域の判定を行えばよい。動体領域の判定を飛ばされた画素または領域周辺に動体領域が多い場合には動体領域と判定し、非動体領域が多い場合には非動体領域と判定すればよい。ただし、全ての画素ごとまたは領域ごとに動体領域の判定を行う場合、周辺画素から補完する必要がないため、判定精度を向上させることができる。
【0061】
領域ごとに撮像条件が変更できる撮像素子を用いる場合には、領域ごとの撮像条件の差を反映させずに明るさの変化だけで動体領域を判定すると、判定精度が低下する。このため、CPU107は、領域ごとの撮像条件の差から、領域ごとの明るさの差を予測して動体領域を判定するようにしてもよい。例えば、2つの領域で明るさとシャッタスピードが同じであっても、ISO感度が2倍高ければ、明るさは半分となる。2つの領域で明るさとISO感度が同じであっても、シャッタスピードが2倍速ければ、明るさは2倍となる。
【0062】
以上説明したように、上述した第1実施形態によれば、明るさ変化比較部は、部分領域と、参照領域とのそれぞれについて、フレーム間での明るさの変化の割合を算出する。そして、明るさ変化比較部は、部分領域の明るさの変化の割合と、参照領域の明るさの変化の割合に基づいて、部分領域が動体領域であるか否かを判定する。これにより、被写体の照明に明るさの変化がある場合においても、画像の動体領域と非動体領域とを切り分けることが可能となり、部分領域が動体領域であるか非動体領域であるかを適正に判定することができる。
【0063】
<第2実施形態>
以下、第2実施形態に係る撮像装置について説明する。なお、第2実施形態において、第1実施形態と同様の構成および機能については、その詳細な説明は省略し、異なる点についてのみ説明する。第1実施形態との相違は、第1実施形態では、動体マップを生成するための閾値を1つ設けて、動体マップの値を2値としたが、第2実施形態では、動体マップを生成するための閾値を複数設けて、動体マップの値を3値以上とした。これにより、明るさの変化に応じて、どの程度の信頼性で動体が存在する可能性があるか否かを段階的に判断することが可能となる。閾値の数は動体マップのビット数に応じて変更することが望ましい。例えば、ビット数で表現できる数に対して、1つだけ少ない数の閾値を持つことが望ましい。ビット数が1の場合には閾値は1つ、ビット数が2の場合には閾値は3つ、ビット数が8の場合には255つとすることで、動体マップのビット数を最大限まで活かすことができる。
【0064】
図8は、第2実施形態に係る動体領域判定処理を示すフローチャートである。
図8において、S40~S43、S48およびS49については第1実施形態と同様であるため、説明を省略する。
S61において、S61以降の処理のために閾値T(m)を初期化する。閾値T(m)は、閾値段階mによって値が変化する。閾値段階mは0以上の整数であり、初期化時にはm=0となるため、閾値T(m)は、閾値T(0)として表現される。閾値段階mが増えるにつれて、閾値T(m)も大きくなる。
S62において、CPU107は、明るさ変化比較部115Aにて、明るさの変化の割合の差が閾値T(m)以内であるか否かを判定する。CPU107は、明るさの変化の割合の差が閾値T(m)以内の場合にはS65に進み、閾値段階mに応じた判定結果を動体マップに反映する。CPU107は、明るさの変化の割合の差が閾値T(m)よりも大きい場合にはS63に進む。
S63において、CPU107は、閾値段階mが最大値の場合にはS65に進み、動体マップに最大値として反映する。CPU107は、閾値段階mが最大ではない場合にはS64に進み、閾値段階mを1段増やし、S62で再度判定を行う。
S65において、CPU107は、閾値段階mに応じた値を動体マップに反映する。閾値段階mが小さいほど、判定対象の画素または領域は動体領域である可能性が低くなり、動体マップには低い値で表現される。
【0065】
図9は、第2実施形態に係る撮像画像、明るさマップおよび動体マップを示す模式図である。図9(a)はフリッカの滅状態での撮像画像の例を示し、図9(b)は明るさマップの例を示し、図9(c)は動体マップの例を示す。
図9(a)および図9(b)は、図6(a)および図6(b)と同一である。図6(c)は、明るさ変化比較部115Aを用いて複数の閾値に基づいて生成されたフリッカ環境下における次フレームの動体マップを示す。
【0066】
図9(c)において、動体マップ12Eの値は、閾値段階mに基づいて設定されている。閾値段階mが小さければ、動体マップ12Eの値は小さくなる。閾値段階mが大きければ、動体マップ12Eの値は大きくなる。動体マップ12Eにおいて、動体画像201の領域は値が高く設定され、非動体画像202および背景画像203の領域は値が低く設定される。ここで、CPU107は、閾値段階mに基づいて動体マップ12Eの値を設定することにより、動体画像201の領域のうち、動体が存在する可能性が高くなるほど、動体マップ12Eの値を段階的に大きくすることができる。このとき、CPU107は、動体マップ12Eについて、値が高い領域は白、値が低い領域は黒の濃淡で段階的に表現する。例えば、動体画像201から複数の動体領域221C、221Dが抽出され、動体領域221Cを動体領域221Dよりも濃度を濃くすることにより、動体領域221Cは、動体領域221Dよりも動体が存在する可能性が低いことを示すことができる。このように、複数の段階で動体マップ12Eが示されることで、動体が存在する可能性を領域ごとに細かく判定することが可能となる。
【0067】
なお、図8のS62では、閾値を複数用意し、明るさの変化の割合の差がどの範囲にあるか判定する場合、閾値を1ずつ増加させながら、繰り返し比較する処理を示した。繰り返し比較する処理以外にも、CPU107は、明るさの変化の割合の差を複数の閾値と比較し、変化の割合の差がどの範囲にあるかを一括して判定してもよい。
また、動体マップにおいて、CPU107は、ある対象領域に対して隣接する領域の値と比較し、その対象領域の周囲に動体マップの値が高い領域が多い場合には、その対象領域を動体と判定してもよい。これにより、CPU107は、ノイズや動体の動き方によって動体の明るさの変化が小さくなる領域に対しても、動体領域と判定することができる。
【0068】
以上説明したように、上述した第2実施形態によれば、動体領域か否かの判定に用いる閾値を複数設けることにより、どの程度の信頼性で動体が存在する可能性があるか否かを段階的に判断することが可能となる。
<第3実施形態>
以下、第3実施形態に係る撮像装置について説明する。なお、第3実施形態において、第1実施形態および第2実施形態と同様の構成および機能については、その詳細な説明は省略し、異なる点についてのみ説明する。第1実施形態および第2実施形態との相違は、第3実施形態では、明るさマップにおいてフリッカの明るさの変化自体を補正する。
【0069】
第1の実施形態および第2の実施形態では、フリッカによる明るさの変化自体を補正していないため、フリッカの明滅に応じて、図2(b)の明るさマップ11Bが、図3(b)および図6(b)の明るさマップ12Bに変化する。従って、明るさマップ11Bに対して、基本露出量を設定すると、次フレームではフリッカによって明るさが変化するため、適切な露出量に設定できない可能性が高い。そのため、第3実施形態では、明るさマップを補正することで、フリッカにより明るさが変化する場合においても、異なるフレーム間での基本露出量を適正化する。
図10において、撮像装置1Bは、図1の撮像装置1Aの明るさ変化比較部115Aの代わりに、明るさ変化比較部115Bを備える。明るさ変化比較部115Bは、非動体領域と判定した領域の明るさの変化に基づいて、明るさマップの補正を行う。
【0070】
図11は、第3実施形態に係る明るさマップ補正処理を示すフローチャートである。
図11において、S40~S43、S48およびS49については、第1実施形態の図5の処理と同様であるため、説明を省略する。
S71において、CPU107は、画像全体の明るさの変化の周期性を判定する。フリッカは、50Hzまたは60Hzという電源の周期で発生する。そのため、CPU107は、画像全体の明るさの変化の周期を特定の周期と比較し、画像全体の明るさの変化の周期が特定の周期と一致しているか否かを判定する。
【0071】
画像全体の明るさの変化の周期が判定された場合には、画像全体の明るさの周期的な変化を算出することが可能になる。例えば、60Hzの周期でフリッカが撮像されている場合に、60fpsのフレームレートで撮像を行うと、明暗が繰り返される画像が撮像される。このとき、CPU107は、次フレームの明るさを予測することができるため、フリッカの補正値を算出することができる。
また、動体領域では、明るさの変化以外にも動体の移動による明るさの変化が発生するため、フリッカの補正値を明るさの変化から正確に算出することができない。そのため、フリッカの補正値を算出する領域は非動体領域であることが望ましい。
S72において、CPU107は、S71で予測された次フレームの明るさに合わせたフリッカの補正値を明るさマップに反映する。CPU107は、フリッカの補正値を明るさマップに反映することにより、次フレームで撮像される画像のフリッカ成分を低減することができ、撮像画像全体に周期的に現れる明暗を低減することができる。
また、フリッカの補正値を明るさマップに反映せず、撮像画像全体に周期的に現れる明暗の予測値のみを出力してもよい。その場合、撮像画像全体に周期的に現れる明暗を後段のデジタルゲインで補正することが可能となる。
これにより、CPU107は、フリッカによって非動体領域および動体領域の明るさが周期的に変化している場合であっても、適切な基本露出量を算出することができる。
【0072】
図12は、第3実施形態に係る撮像画像および明るさマップを示す模式図である。図12(a)はフリッカの滅状態での撮像画像の例を示し、図12(b)は明るさマップの例を示す。
図12(a)は、図3(a)および図6(a)と同一である。図12(b)は、図12(a)の撮像画像12Aについて、明るさ変化比較部115Bを用いてフリッカ補正が適用された次フレームの明るさマップを示す。
図6(a)の撮像画像12Aについて、フリッカ補正が適用されてない図6(b)の明るさマップ12Bでは、フリッカが滅状態にあるときに全体が暗くなっている。一方、図12(a)の撮像画像12Aについて、フリッカ補正が適用された図12(b)の明るさマップ12Fでは、図2(a)の撮像画像11Aについての図2(b)の明るさマップ11Bと同等の明るさを示す。このため、フリッカ環境下においても、撮像画像12Aに周期的に現れる明滅を低減することができる。
【0073】
なお、本実施形態では説明を容易にするために、フリッカとフレームレートが同期している場合について示したが、同期していない場合であっても明るさの変化の周期性からフリッカの周期を予測できる。また、ユーザがフリッカの周期を知っている場合には、CPU107は、フリッカの周期を画像から予測せずに、操作部111から入力された値を用いてもよい。
【0074】
CPU107は、フリッカを補正する場合には、領域ごとまたは画像全体の明るさを1フレーム内で平均化し、フレームごとの値を積算することで、フリッカ成分の影響を除いた明るさを算出できる。CPU107は、動体による明るさの変化がない領域においては、フリッカ成分の影響を除いた明るさと、フレームごとの明るさを比較することで、フリッカ成分による明るさを比較することができる。
【0075】
以上説明したように、上述した第3実施形態によれば、画像に含まれるフリッカ成分を補正した領域ごとの明るさを示す明るさマップを生成する。これにより、フリッカにより明るさが変化する場合においても、異なるフレーム間での基本露出量を適正化することができる。
【0076】
<第4実施形態>
以下、第4実施形態に係る撮像装置について説明する。なお、第4実施形態において、第1実施形態から第3実施形態と同様の構成および機能については、その詳細な説明は省略し、異なる点についてのみ説明する。第1実施形態から第3実施形態では、フレームごとに明滅する面間フリッカがある環境下において、画素または領域ごとに動体領域であるか否かを判定した。第4実施形態では、ローリングシャッタに起因する面内フリッカによって撮像画像に横縞の明暗が発生する環境下において、画素または領域ごとに動体領域であるか否かを判定する。
【0077】
面内フリッカは、シャッタ動作に基づく露光タイミングのずれによって発生する。撮像素子の走査方向(水平方向)では同一のタイミングで露光されるため、撮像画像には面内フリッカによって横縞の明暗が発生する。そのため、面内フリッカ環境下において、動体領域であるか非動体領域であるかを判定するためには、画素ごとの比較対象を画像全体ではなく、同一の水平方向の領域とすればよい。
また、比較対象とする領域は、上下方向の一定の範囲の水平画素(同一の水平方向の画素)の明るさを平均化した領域であってもよい。平均化する上下方向の範囲は、例えば、垂直方向の画素または領域の±10%範囲や、フリッカの周期性から明滅する列の範囲というように、一定の閾値を設けて判断すればよい。また、上方向もしくは下方向のみに平均化する範囲を広げてもよい。
【0078】
以上説明したように、上述した第4実施形態によれば、動体領域であるか否かの判定時に参照される参照領域として、撮像素子の走査方向にある画素または領域あるいは査方向に対して所定範囲内の上下方向にある画素または領域に設定する。これにより、面内フリッカによって撮像画像に横縞の明暗が発生する環境下においても、動体領域であるか否かの判定の適正化を図ることができる。
【0079】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給してもよい。そして、上述の実施形態の1以上の機能は、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、FPGAまたはASIC)でも実現可能である。
【符号の説明】
【0080】
101 撮像部、102 A/D変換部、103 信号処理部、104 D/A変換部、105 エンコーダ部、106 メディアI/F部、107 CPU、108 ROM、109 RAM、110 撮像系制御部、111 操作部、112 キャラクタジェネレーション部、113 表示部、114 動体マップ取得部、115 明るさ変化比較部、116 明るさマップ取得部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12