以下、図1~図14を参照して、本発明に係る情報処理装置の実施形態について説明する。なお、後述する図に示す機能ブロックの1つ以上は、ASICやプログラマブルロジックアレイ(PLA)などのハードウェアによって実現されてもよいし、CPUやMPU等のプログラマブルプロセッサがソフトウェアを実行することによって実現されてもよい。また、ソフトウェアとハードウェアの組み合わせによって実現されてもよい。したがって、以下の説明において、異なる機能ブロックが動作主体として記載されている場合であっても、同じハードウェアが主体として実現されうる。
(実施例1)
(基本構成)
図1は、本発明の実施例1係る撮像制御システムの構成を例示的に説明するブロック図である。図1に示す撮像制御システムは、監視カメラ101と、ネットワーク102、クライアント装置103と、入力装置104、表示装置105から構成されている。なお、監視カメラ101は、動画像を取得するための被写体の撮像および画像処理が可能な装置である。そして、監視カメラ101とクライアント装置103とは、ネットワーク102を介して相互に通信可能な状態で接続されている。
図2は、本発明の実施例1に係る監視カメラ101の内部構成を例示的に説明するブロック図である。撮像光学系201はズームレンズ、フォーカスレンズ、ブレ補正レンズ、絞りやシャッターなどから構成され、被写体の光情報を集光する光学部材群である。
撮像素子202は、撮像光学系201にて集光される光束を電流値(信号値)へと変換するCMOSやCCDなどの電荷蓄積型の固体撮像素子であって、カラーフィルタなどと組み合わせることで色情報を取得する撮像部である。なお、撮像素子202は、画素に対して任意の露光時間を設定可能な撮像センサーである。
カメラCPU203は、監視カメラ101の動作を統括的に制御する制御部である。カメラCPU203は、ROM(Read Only Memory)204や、RAM(Random Access Memory)205に格納された命令を読み込み、その結果に従って処理を実行する。また、撮像系制御部206は、撮像光学系201に対して、フォーカス制御、シャッター制御、絞り調整などの(カメラCPU203から指示に基づく)監視カメラ101の各部の制御を行う。通信制御部207は、クライアント装置103との通信によって、監視カメラ101の各部に係る制御をカメラCPU203に伝達するための制御を行う。
A/D変換部208は、撮像素子202にて検知した被写体の光量をデジタル信号値に変換する。画像処理部209は、撮像素子202から出力されたデジタル信号の画像データに対して、画像処理を行う画像処理手段である。エンコーダ部210は、画像処理部209にて処理された画像データをMotion JpegやH264、H265などのファイルフォーマットに変換処理を行う変換手段である。ネットワークI/F211は、クライアント装置103等の外部の装置とのネットワーク102を介した通信に利用されるインターフェースであって、通信制御部207により制御される。
ネットワーク102は、監視カメラ101と、クライアント装置103を接続するIPネットワークである。ネットワークは、例えばEthernet(登録商標)等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成される。本実施形態では、ネットワーク102は、監視カメラ101とクライアント装置103との間の通信を行うことができるものであればよく、その通信規格、規模、構成などを問わない。例えば、ネットワーク102は、インターネットや有線LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)等により構成されてもよい。
図3は、本発明の実施例1に係る情報処理装置であるクライアント装置103の内部構成を例示的に説明するブロック図である。クライアント装置103は、クライアントCPU301、主記憶装置302、補助記憶装置303、入力I/F304、出力I/F305、ネットワークI/F306を含む。各要素は、システムバスを介して、相互に通信可能に接続されている。
クライアントCPU301は、クライアント装置103の動作を統括的に制御する中央演算装置である。なお、クライアントCPU301によって、ネットワーク102を介して監視カメラ101の統括的な制御を実行する構成であってもよい。主記憶装置302は、クライアントCPU301のデータの一時的な記憶場所として機能するRAM等の記憶装置である。補助記憶装置303は、各種プログラム、各種設定データ等を記憶するHDD、ROM、SSD等の記憶装置である。入力I/F304は、入力装置104等からの入力を受付ける際に利用されるインターフェースである。出力I/F305は、表示装置105等への情報の出力に利用されるインターフェースである。ネットワークI/F306は、監視カメラ101等の外部の装置とのネットワーク102を介した通信に利用されるインターフェースである。
クライアントCPU301が、補助記憶装置303に記憶されたプログラムに基づき処理を実行することによって、図4に示すクライアント装置103の機能及び処理が実現される。この詳細については後述する。
図1に図示するように、入力装置104は、マウスやキーボード等から構成される入力装置である。表示装置105は、クライアント装置103出力した画像を表示するモニタ等の表示装置である。本実施形態では、クライアント装置103と入力装置104と表示装置105とがそれぞれ独立した構成であるがこれに限定されるものではない。例えば、クライアント装置103と表示装置105とが、一体化されていてもよいし、入力装置104と表示装置105とが一体化されていてもよい。また、クライアント装置103と入力装置104と表示装置105とが、一体化されていてもよい。
図4は、本発明の実施例1に係る、クライアント装置103が実行する機能・構成を例示的に説明する図である。換言すると、図4に図示する各部は、クライアントCPU301により実行され得る機能・構成であって、これらの各部はクライアントCPU301と同義である。すなわち、クライアント装置103のクライアントCPU301は、入力情報取得部401、通信制御部402、入力画像取得部403、カメラ情報取得部404、検出方法設定部405、被写体検出部406、露出決定部407、表示制御部408を含む。なお、クライアント装置103が、クライアントCPU301とは別の構成として、図4に図示する各部を備える構成であってもよい。
入力信号取得部401は、入力装置104を介したユーザーによる入力を受け付ける入力手段である。
通信制御部402は、監視カメラ101から送信された画像を、ネットワーク102を介して受信するための制御を実行する。また、通信制御部402は、監視カメラ101への制御命令を、ネットワーク102を介して送信するための制御を実行する。
入力画像取得部403は、通信制御部402を介して、監視カメラ101により撮影された画像を、被写体の検出処理の対象である画像として取得する画像取得手段である。検出処理の詳細については後述する。カメラ情報取得部404は、通信制御部402を介して、監視カメラ101による被写体を撮像する際のカメラ情報(撮像情報)を取得する取得手段である。カメラ情報(撮像情報)は、被写体を撮像して画像を取得する際の種々の情報であり、情報の詳細については後述する。
検出方法設定部405は、入力画像取得部403により取得された画像に対して、顔領域の検出(顔検出)や人体領域の検出(人体検出)を含む様々な検出方法(手段)の中から、所定の検出方法を設定する検出方法設定手段である。顔検出を行う場合、後述する被写体検出部406は、画像における顔領域を優先して検出し、人体検出を行う場合、被写体検出部406は、画像における人体領域を優先して検出する。なお、本実施例では、画像(画面)内の複数の領域に対して検出対象の領域を設定することができる。
ここで、本実施例における検出方法設定部405は、顔検出と人体検出の中から任意の方法を設定する構成だが、これに限定されるものではない。例えば、人物の上半身、顏の目、鼻、口などの一部領域などの人物の一部分の特徴領域検出する構成を選択可能であってもよい。また、本実施例では、検出対象の被写体として人物について説明するが、人物以外の所定の被写体に係る特定領域を検出可能な構成であってもよい。例えば、動物の顔や自動車など、クライアント装置103において予め設定された所定の被写体を検出可能な構成であってもよい。
被写体検出部406は、検出方法設定部405で設定された検出方法に基づいて、所定の被写体領域の検出を行う被写体検出手段である。
露出決定部407は、被写体検出部406から得られる検出結果に基づき、被写体を撮像し画像を取得する際の露出を決定する露出決定手段である。なお、露出決定部407が決定する露出としては、クライアント装置103に予め記録された露出制御用のプログラム線図に従う露出値の他に、この露出値を補正するための露出補正値を含む。露出決定部407で決定された露出に関する情報は、通信制御部402によって、監視カメラ101に送信され、監視カメラ101の内部における露出制御が実行される。検出方法設定部405、被写体検出部406、露出決定部407の動作に係る詳細な処理については、図5のフローチャートを参照して後述する。表示制御部408は、クライアントCPU301からの指示に従い、露出決定部で決定された露出が反映された画像を表示装置105へ出力する表示制御手段である。
(被写体の検出処理・露出決定処理)
以下、図5に図示するフローチャートを参照して、本実施例に係る被写体の検出処理および露出決定処理について説明する。図5は、本発明の実施例1に係る検出処理および露出決定処理を例示的に説明するフローチャートである。なお、図1に図示する撮像システムにおいて、各装置の電源がオンされ、監視カメラ101とクライアント装置103の接続(通信)が確立した状態を前提とする。そして、この状態で、当該撮像システムにおいて所定の更新周期で被写体の撮像および画像データの送信、表示装置での画像表示が繰り返されているものとする。そして、ネットワーク102を介して監視カメラ101からクライアント装置103のクライアントCPU301が、被写体を撮像することで得られた画像が入力されたことに応じて、図5に図示するフローチャートが開始されるものとする。
まず、ステップS501において、カメラ情報取得部404から、監視カメラ101によって被写体を撮像して画像を取得した際のカメラ情報(撮像情報)を取得する。例えば、当該カメラ情報としては、監視カメラ101における測光モードなどに関する情報を取得する。本実施例では、監視カメラ101における測光モードとして、カスタム測光、中央重点測光、評価測光の3つを設定可能な構成について説明するが、これに限定されるものでなく、スポット測光や、部分測光などの他測光モードを設定可能であってもよい。なお、測光モードは、クライアント装置103側においてユーザーが任意に設定した測光モードを記録しておき、当該記録された情報に基づいてステップS501の処理を実行してもよい。
図6は、本発明に係る測光モードと測光領域の関係について例示的に説明する図である。ここで、本実施例におけるカスタム測光モードとは、図6(a)に示すように、画像(画面)内の任意の位置に、ユーザーが測光領域601を指定できる測光モードである。この場合、カスタム測光モードにおいては、ユーザーが意図する撮像(監視)の対象が、ユーザーによって指定された測光領域(特定領域)に含まれる可能性が高いと考えられる。また、中央重点測光とは、図6(b)に示すように、画像の中央付近に測光領域601が設定された測光モードであり、この場合、ユーザーが意図する撮像(監視)の対象が画像の略中央部に存在する可能性が高いと考えられる。更に、評価測光モードとは、図6(c)に示すように、画像全体が測光領域601に設定される測光モードである。この評価測光モードでは、ユーザーは自身が撮像を意図する被写体を任意の領域に絞り込むことなく、画像全体の何れかにユーザーが撮像(監視)を意図する対象が存在すると考えられる。
上述した各測光モードにおける測光領域601は、露出を決定する際の重み付けを他の領域よりも大きくする領域である。なお、重み付けの仕方としては、測光領域601の内部に存在する被写体のみを測光対象とする(すなわち、測光領域601外の重み付けを0に設定する)構成を含み得る。
次に、ステップS502において、検出方法設定部405は、測光モードに応じて被写体の検出方法(手段)を領域ごとに設定する。図7は、本発明の実施例1に係る測光領域と被写体の検出領域の関係について例示的に説明する図である。例えば、カスタム測光が選択されている場合、図7(a)に示すように、ユーザーが選択した測光領域601に合わせて顔領域を優先的に検出する顔検出領域701を設定し、測光領域周辺部分に合わせて人体領域を優先的に検出する人体検出領域702を設定する。これは、人物を被写体とした撮像(監視)を行う場合、測光領域601として設定されている画像内の領域には、ユーザーが撮像(監視)を意図する主たる被写体として顔領域が存在する可能性が高いと想定できるためである。また、人物を被写体とした撮像(監視)を行う場合、測光領域601として設定されている画像内の領域の近傍(周辺領域)に、主たる被写体に対応する人体領域や他の人物の人体領域が存在する可能性が高いと想定できるためである。
なお、顔検出領域と人体検出領域とでは、画像に適用する検出方法が異なる。例えば、顔検出領域や人体検出領域においては、顏の特徴部分や人体の特徴部分に対応するそれぞれのパターンが予めクライアント装置103側に格納されており、このパターンに基づくパターンマッチングにより顔領域と人体領域を検出する。顔領域を検出する場合は、顏を高精度に検出することができ、顔領域と顔以外の被写体とを明確に識別することができる。しかしながら、顏の向きや顏の大きさ、顏の明るさなどが顔検出に適した条件でない場合、顔領域を正確に検出することはできない。これに対して、人体検出を行う場合は、顏の向きや顏の大きさ、顏の明るさなどによらず人物が存在する領域を検出することができる。
本実施例の撮像システムであれは、顏が存在する確率が高い領域と人体が存在する確率が高い領域のそれぞれに最適な検出方法が設定された検出領域を適用でき、その他の領域では、被写体検出処理を省略することができる。この構成により、本実施例の撮像システムは、領域ごとに最適な検出方法を設定することで、被写体の検出精度の向上を実現しつつ、検出に係る処理負荷を低減することができる。
カスタム測光と同様に、中央重点測光モードにおいても、図7(b)に示すように、画面の中央領域については、顔検出領域を設定し、その周辺については人体検出領域を設定し、その他の領域については検出を行わないように設定する。また、評価測光モードの場合は、図7(c)に示すように、顔検出領域あるいは人体検出領域の一方、または、顏と人体を合わせた検出方法に対応する検出領域を、測光領域601に合わせて画面全体に設定する。
図5に戻り、ステップS504において、被写体検出部406は、検出方法設定部405で、画像の領域ごとに設定された検出方法に基づき、被写体の検出を行う。なお、被写体の検出方法としては、前述したパターンマッチング方法として統計学習を使って作成されたパターン(識別器)を用いてもよいし、パターンマッチング以外の方法として、局所領域内の輝度勾配を用いた被写体検出を行う構成でもよい。すなわち、検出方法として限定されるものではなく、機械学習をベースにした検出や、距離情報に基づく検出など、種々の方法を採用できる。
次に、ステップS505において、露出決定部407は、被写体検出部406から得られる検出結果に基づいて、顔領域の平均輝度値Ifaceおよび人体領域Ibodyの平均輝度値を算出する。具体的に、露出決定部407は、被写体検出部406から得られる検出結果に基づいて、顔および人体が検出された検出数や、検出位置や、検出サイズに関する情報を下記の式(1)および式(2)に適用する。なお、本実施例では、輝度値の単位としては、APEX(ADDITIVE SYSTEM OF PHOTOGRAPHIC EXPOSURE)単位におけるBV値として算出する。
ここで、I(x、y)は画像内における水平方向(x軸方向)と垂直方向(y軸方向)の2次元座標位置(x、y)の輝度値を表す。また、f、gは検出された顔および人体の検出数を表し、(v、h)は顔および人体が検出された中心座標を表し、k、lはそれぞれ水平方向および、垂直方向の被写体の検出サイズを表す。なお、人体検出領域702において検出された人体部分のうち、顔検出領域701において既に検出されている顔に対応する人体部分については、式(1)、(2)における演算から除外する構成であれば、より高精度な被写体検出を行うことができる。
ステップS506において、ステップS505で算出される顔領域の平均輝度値Ifaceと人体領域の平均輝度値Ibodyに基づき、顔人体ブレンド平均輝度値Iblendを算出する。例えば、式(3)、(4)を用いて顔人体ブレンド平均輝度値Iblendを算出する。
ここで、パラメータαは、顔領域の平均輝度値Ifaceと、人体領域の平均輝度値Ibodyが顔人体ブレンド平均輝度値Iblendに与える影響を制御するパラメータであり、ユーザーの意図に応じて変更することができる。例えば、ユーザーが、画面全体の人物をカウントするような意図で被写体を撮像する場合、画面全体に存在する被写体の露出が適正であることが望ましい。そこで、このような場合は、例えば、α=0.5とすることで、画面全体に存在する被写体に対する平均輝度値をステップS507以降の処理で比較・評価する測光値として用いることができる。また、ユーザーが、特定の領域に対する顔領域や人物領域を特定するような意図で被写体を撮像する場合、特定の顔領域に対して露出が適正であることが望ましい。従って、α=0.9とすることで、特定領域の顔に対する平均輝度値をステップS507以降の処理で比較・評価する測光値として用いることができる。
次に、ステップS507において、露出決定部407は、式(5)のように、予め定められた顔および人体領域の目標輝度値Itargetと、ステップS506において算出される顔人体ブレンド平均輝度値Iblendとの差分値ΔDiffを算出する。
ここで、顔および人体領域の目標輝度値Itargetは、ユーザーが予め設定した目標値であってもよいし、ハードウェア上に予め設定される固定値であってもよい。
最後に、ステップS508において、ステップS507で算出される差分値ΔDiffと、予め定められた閾値Thと現在の露出に係る露出値EVcurrentに基づき、露出の補正量EVcorrectionを決定する。例えば、式(6)のように補正量EVcorrectionを決定する。なお、EVcurrentは、前述した測光領域601に基づいて求めた被写体輝度値(BV値)に基づくAPEX換算のEV値であって、クライアント装置103に予め格納された、露出制御に係るプログラム線図に基づいて設定される。
ここで、パラメータβは、現在の露出値EVcurrentを中心とし、露出のアンダー側あるいは露出のオーバー側に露出を補正する際の補正度合(速度)に影響を与える係数である。パラメータβの値を大きく設定することで、目標値に達するまでに係る処理速度(または時間)は高速になるが、検出結果に誤判定が生じた場合や、被写体の検出が安定しない場合に、画面全体の明るさが急峻に変動する。一方、パラメータβの値を小さく設定すると、露出が目標に到達するまでに係る処理速度(または時間)は遅くなるが、誤検出や撮影条件にロバストになる。このパラメータβは、ステップS507で算出される差分ΔDiffが、設定された閾値Th以上であった場合に、現在の露出値EVcurrentに対する露出の補正値として設定される。
以上説明したように、本実施例の撮像システムでは、測光モードに基づいて、撮像時にユーザーが注目する領域(関心領域)を類推し、画像内の領域ごとに最適な被写体の検出領域(検出方法)を設定する。従って、本実施例の撮像システムであれば、ユーザーの意図に沿って、被写体の顔が視認しやすい明るさに露出の補正量が決定でき、被写体の検出精度を向上することができる。また、ユーザーが注目する関心領域の周辺に対しては、被写体の顔の向きや、顏を構成する期間のサイズ、顏の明るさなどによらず被写体の検出が可能になるため、顔検出領域では検出困難な人物に精度よく検出を行うことができ、検出の見逃しが軽減される。さらにユーザーが注目する関心領域以外の領域については、被写体の検出処理を行わないことで、誤検出の発生を抑えるとともに、被写体検出に係る処理負荷を低減することができる。
なお、本実施例では、検出方法設定部405が、監視カメラ101を用いて被写体を撮像する際の所定の情報(撮像情報)として、撮像時の測光モードに基づいて画像における所定の領域ごとに被写体の検出領域(方法)を設定する構成について説明した。しかしながら、本発明の実施例はこれに限定されるものではない。例えば、焦点調節に係るAF(AUTO FOCUS)処理に係るモードや、ホワイトバランスに係るモード、被写体の距離情報などの撮像情報に基づいて、被写体の検出方法(領域)を設定する変形例を採用する構成であってもよい。また、撮像情報として、入力装置104を介してユーザーが任意に設定した領域に関する情報に基づいて、画像内の所定の領域ごとに検出方法(領域)を設定する構成であってもよい。
上述した変形例として、被写体の距離情報に基づいて検出方法(領域)を設定する場合について、図8を参照して具体的に説明する。図8は、本発明の実施例1の変形例に係る被写体の検出領域の設定方法について例示的に説明する図である。図8(a)にあるように、様々な距離位置の被写体が存在する撮影シーンにおいて、図8(b)のような各被写体の距離情報が得られる構成を前提とする。なお、被写体の距離情報は、監視カメラ101により得られた画像のコントラス情報や位相差情報に基づくフォーカス評価値に基づいて取得する構成や、ユーザーの手動入力により、画像内の任意の領域を被写体距離ごとにグルーピングする構成であればよい。
この場合、図8(c)に示すように、被写体距離に応じて類推される顔や人体の被写体のサイズに応じて、被写体の検出領域(方法)を設定する。例えば、監視カメラ101を基準とした被写体距離が5m以内の比較的近い範囲(第1の範囲)であれば、得られる顔の大きさが顔検出処理を実行する上で十分な大きさであると考えられるため、この領域を顔検出領域として設定する。また、監視カメラ101を基準とした被写体距離が5m~20mの範囲(第2の範囲)については、顔を検出するには被写体の大きさが不十分(小さい)だが、人体を検出には問題ない領域であると考え、この領域を人体検出領域として設定する。そして、その他領域については、顏や人体を精度よく検出できないと考え、この領域には被写体の検出領域を設定せず、被写体の検出を行わないように制御する。
以上説明した構成であれば、例えば、予め撮像時の画角やズーム位置を特定できる監視カメラなどを用いた被写体の監視を行う際に、画面内の領域ごとに最適な被写体の検出方法を適用できるため、被写体を精度よく検出しつつ、誤検出を低減することができる。このように、被写体を検出するための検出領域を設定するために参照するカメラ情報としては、被写体を撮像する際の種々の情報を選択することで、ユーザーが撮像を意図する主たる被写体に応じた最適な被写体検出が可能となる。
なお、本変形例では、被写体距離に応じて被写体の検出方法(領域)を設定するため、例えば、監視カメラ101のようなセキュリティーカメラなどの、設置後の撮像画角の変化が少ない構成において特に有効である。例えば、監視カメラ101を設置する際に、ユーザーが表示装置105に表示された画像における所定の範囲を選択し、距離情報を入力することで、その後、距離情報の取得や被写体の検出領域の再設定が不要になる。なお、監視カメラ101がズームや、パンニング、チルト動作が可能な構成であれば、監視カメラ101の撮像画角の変化に応じて距離情報の取得や被写体の検出領域の設定を行う構成であればよい。
さらに、例えば、検出対象の被写体が人物である場合、画像において道路や通路などに該当する領域とは異なり、建物の外観部分や空や海などに該当する領域は、人物が通過する確率は低い。そこで、本変形例に係る監視カメラ101を設置する際に、予め、所定の被写体検出を行わない領域を設定しておく構成であってもよい。すなわち、被写体の検出領域として設定され得ない領域を予めユーザーが指定可能な構成であってもよい。この構成であれば、画像(または撮像画角)において、予め被写体の検出に用いない領域を決めておくので、被写体の検出処理に係る処理負荷を低減することもできる。
(実施例2)
本実施例では、ユーザーが入力装置104を介して手動で選択(設定)した領域に関する情報に基づいて、被写体を検出する際の検出方法(領域)を設定し、当該検出方法による被写体の検出結果に基づいて露出を決定する構成について説明する。なお、本実施例に係る撮像システムを構成する監視カメラ101、ネットワーク102、クライアント装置103、入力装置104、表示装置105の構成については、前述した実施例1と同一なので説明を省略する。
以下、図9に図示するフローチャートを参照して、本実施例に係る被写体の検出処理および露出決定処理について説明する。図9は、本発明の実施例2に係る検出処理および露出決定処理を例示的に説明するフローチャートである。なお、処理の開始タイミングについては実施例1と同様なので説明は省略する。
まず、ステップS901において、入力装置104を介して、ユーザーが手動で設定(選択)した領域に関する情報を取得する。ここで、図10は、本発明の実施例2に係るユーザーが手動で操作可能なUIを例示的に説明する図である。例えば、図10に図示するようなUIに基づいて、ユーザーは、画像における顔検出領域および人体検出領域を、入力装置104および表示装置105を用いて選択(設定)することができる。ここで、図10に図示する、各検出領域の各頂点に重畳する矩形部分は、被写体の検出領域を設定するための操作子である。ユーザーは、この矩形部分を選択し(表示装置105に表示された)画像内で移動させることで、被写体の検出領域の形状を任意の大きさに変更することができる。なお、矩形部分の選択方法はどのような構成を採用してもよい。例えば、図10に示すマウス型の入力装置104を用いる場合は、入力装置104を用いたクリック操作で矩形部分を選択してもよい。また、入力装置104が表示装置105と一体となっている構成(例えば、タッチパネル方式を採用した表示装置105など)であれば、表示装置105に表示されている画像をユーザーが直接タッチ操作して任意の矩形部分を選択する構成であってもよい。
ステップS902の処理は、前述した実施例1のステップS502の処理と略同様の構成なので説明は省略する。次に、ステップS903において、被写体検出部406は、ステップS901で取得されたユーザーが選択した顔領域に基づいて、顔検出を実行する。顔検出の方法は、前述した実施例1と同様なので説明は省略する。
ステップS904においてクライアントCPU301は、ステップS903で実行される顔検出において、画像内に顔領域が検出されたかを判定する。顔領域が検出されていない場合はステップS908の処理に進み、少なくとも1つ以上の顔領域が検出されている場合はステップS905の処理に進む。
ステップS905において、露出決定部407は、監視カメラ101において設定されている測光モードと、ステップS903の処理で取得される顔検出の結果に基づき、画像における顔領域の平均輝度値を算出する。以下、図と数式を用いて詳細な算出方法について説明する。
図11は、本発明に係る測光領域と顔検出結果との関係を例示的に説明する図である。実施例1でも前述したように、被写体を撮像する際の測光モードおよび測光領域は、撮像時にユーザーが注目する領域(関心領域)として意図し、主要な被写体が存在する可能性が高いと類推できる。さらに、本実施例では、ユーザーの手動操作により被写体の検出領域(顔検出領域など)を画像における任意の領域に設定するため、ユーザーが手動操作によって設定した画像内の領域に、ユーザーが撮像を意図する主要な被写体が存在する可能性が高い。
そこで、本実施例では、図11に図示するように、撮像時の測光領域と、ユーザーが手動で設定した被写体の検出領域に基づいて検出された被写体の検出結果と、に基づいて露出を決定する。より具体的には、図11に図示するように、測光領域(図11に図示する例ではカスタム測光モードとする)の中心位置からの距離が近い被写体の検出結果ほど、撮像(監視)の対象としての重要度が高いと類推する。例えば、図11に図示する例だと、顔検出結果1に対応する被写体が撮像の対象としての重要度が高いと推定し、次いで、顔検出結果2、顔検出結果3の順に重要度が高いと推定する。そして、測光領域の位置と被写体の検出結果の相対的な位置関係を考慮して、被写体の検出領域に係る平均輝度値を算出する。例えば、下記の式(7)~(9)のように算出する。
ここで、式(7)は、測光領域の中心から検出された被写体までの距離を考慮した顔平均輝度値、式(8)は、検出された被写体(顔領域)の平均輝度値、式(9)は測光領域の中心から検出された被写体までの距離の逆数の算出式である。なお、(Xp、Yp)は画像内における測光領域の中心位置(2次元座標)を表し、(Xs、Ys)は検出された各被写体の画像内における位置(2次元座標)を表し、更に、Zsは検出された各被写体の平均輝度を表す。なお、式(7)~(9)におけるsは、検出された被写体を識別する番号(sは1以上の整数となる)を示しており、本実施例では、測光領域の中心からの距離が近い被写体に対して順に番号を付す。例えば、図11に図示する例では、顔検出結果1の位置が(X1、Y1)であり、顔検出結果1の顏平均輝度がZ1である。その他の記号については式(1)で用いたものと同じ意味を持つ。
前述した実施例1における式(1)では、複数の顔領域が検出された場合、どの顔領域の平均値についても等しい重みづけで、顔平均輝度値を算出していた。これに対して、本実施例においては、式(7)に示すように、測光領域からの距離wsに応じた重み付け度合が設定される。これにより、測光領域に近い被写体ほど、以降に説明するステップS906~S907で決定される露出に与える影響が大きくなる。
ステップS906において、前述した式(5)と同様に、予め定められた顔領域の目標輝度値と、ステップS905で算出された顔平均輝度値との差分(差分値)を算出する。そして、ステップS907において、前述した式(6)と同様に、ステップS906で算出した差分と、予め定められた閾値と現在の露出に基づいて、露出の補正量を決定する。ステップS906-S907に係る処理は、平均輝度値が顏平均輝度値である点以外は、前述した実施例1におけるステップS506-S507の処理と略同一の演算式に基づいて実行されるため、詳細な説明は省略する。以上が、本実施例において、少なくとも1つ以上の顔領域が検出された場合の処理である。
次に、本実施例に係る顔領域が検出されない場合の処理について説明する。ステップ904の処理で顔領域が検出されない場合、ステップS909において、被写体検出部406は、ステップS901で取得された情報に基づいて、ユーザーが設定した人体検出領域における人体検出を実行する。
次に、ステップS909において、ステップS908で実行された人体検出の結果に基づき、画像において人体領域が検出されたか否か判定する。少なくとも1つ以上の人体領域が検出されている場合はステップS910に進み、人体領域が検出されていない場合はステップS913に進む。ステップS913の処理に進む(すなわち、顔領域および人体領域が検出されない)場合は、被写体の検出結果に基づく露出補正は行わない。なお、ステップS910-ステップS912の処理は、人体領域の平均輝度値を算出し露出を決定する点以外は、前述したステップS905~ステップS907と略同一の演算式に基づいて実行されるため、詳細な説明は省略する。
以上説明したように、本実施例に係る撮像システムであれば、カメラ情報取得部404から得られる情報に加えて、入力装置104を介して得られるユーザーが手動設定した被写体の検出領域に関する情報に基づいて、露出を決定することができる。これにより、より効果的に、ユーザーが撮像を意図する主要な被写体に対して適正な露出を設定することができる。
なお、本実施例では、ユーザーが設定した被写体の検出領域に関する情報に加えて、画像内における測光領域の位置に基づいて、検出された被写体の輝度値の算出に重み付けを行い、露出を決定する構成について説明した、これに限定されるものではない。例えば、測光領域を鑑みた被写体への重み付けを行わない構成であってもよい。この場合、ユーザーの意図を類推することなく、ユーザーが任意に設定した被写体の検出領域に基づいて検出された被写体の輝度値を算出することができる。
(実施例3)
本実施例では、検出手段から算出される検出スコアに基づいて、被写体を検出する際の検出方法(領域)を設定し、当該検出方法による被写体の検出結果に基づいて露出を決定する構成について説明する。ここで、検出スコアとは検出手段による検出結果に対する信頼度合を示す評価値である。当該検出スコアは、値が大きいほど、設定された検出方法(領域)において、検出対象が存在する確率が高く、値が小さいほど、検出対象が存在しない(すなわち誤検出)の可能性が高いことを示す。なお、本実施例で説明する検出スコアは、便宜的に最小値を0、最大値を100とする値域で正規化された値を使って説明するが、これに制限されるものではない。
図12は、本発明の実施例3に係る、クライアント装置103が実行する機能・構成を例示的に説明する図である。なお、本実施例に係る撮像システムを構成する監視カメラ101、ネットワーク102、入力装置104、表示装置105の構成については、前述した実施例と同一なので説明を省略する。また、本実施例に係るクライアント装置1103は、前述した実施例1に係るクライアント装置(図4に図示)と一部の構成が共通である。例えば、クライアント装置1103の入力信号取得部1201、通信制御部1202、入力画像取得部1203、カメラ情報所得部1204、検出手段設定部1205、被写体検出部1206、露出量決定部1207、表示制御部1208については、前述した実施例1におけるクライアント装置103(図4に図示)が備える各部と同一なので説明を省略する。したがって、本実施例に係るクライアント装置1103については、実施例1におけるクライアント装置103とは異なる構成についてのみ、以降で説明する。
スコアマップ算出部1209は、被写体検出部1206により算出される被写体検出位置および検出スコアに基づき、スコアマップを算出する算出手段である。スコアマップの算出方法の詳細については後述する。スコアマップ保持部1210は、スコアマップ算出部1209により算出されたスコアマップを保持する記録手段である。
図13は、本発明の実施例3に係る、スコアマップの算出方法を例示的に説明する図である。図13(a)は、画角(画像)全体における被写体検出結果を例示的に説明する図であって、図13(b)は、単一スコアマップを例示し、図13(c)は、単一スコアマップによって得られたスコアマップを複数のフレームで蓄積した蓄積スコアマップを例示している。以降の説明では、顔検出の結果から得られるスコアを顔検出スコア、人体検出の結果から得られるスコアを人体検出スコア、単一フレームで得たスコアマップを単一スコアマップ、複数のフレームで蓄積したスコアマップを蓄積スコアマップと称する。なお、顔検出および人体検出の方法としては、前述した実施例と同一であるため、本実施例での説明は省略する。
図13(a)に図示するように、例えば、奥行き方向に複数の被写体(被写体A~F)が存在するシーンを想定する。このうち、被写体Aは画角の中で最も近い距離に存在する被写体であり、全身は画角の中に収まらないが、顔領域が最も大きい。一方、被写体Fは画角の中で最も遠い距離に存在する被写体であり、顔領域は最も小さいが、全身が画角の中に収まっている。ここで、被写体距離は、被写体A~Fの順に遠い。図13(a)に図示する矩形の実線は、顔検出結果に基づく顔検出領域を示し、楕円の破線は、人体検出結果に基づく人体検出領域を示す。
また、図13(a)に図示する表(図中右上)は、各被写体の顔検出スコア、および、人体検出スコアの結果を示している。例えば、被写体A、被写体Bは、顔領域が大きく撮影されているため、顔検出スコアは大きな値になるが、画角内に全身収まっていないため、人体検出スコアは小さくなる。一方、被写体C、被写体Dは、顔領域のサイズが小さいため、顔検出スコアは小さくなるが、画角内に全身が収まっているため人体検出スコアは大きな値になる。また、被写体E、被写体Fは、被写体距離が遠く、顔だけでなく全身形状を検出することが困難であるため、顔領域および人体領域はいずれも小さく、顔検出スコア、人体検出スコアはともに小さくなる。
上述した被写体検出結果および検出スコアのうち、顔領域の検出結果に基づいて、生成された単一スコアマップを示すのが図13(b)である。本実施例では、図13(b)に図示するように、例えば、検出対象の被写体領域(図13(b)では顔領域)を中心に、スコアに応じたガウシアンフィルタを適用することで算出される。ここで、図13(b)に示す単一スコアマップにおける濃淡は、顔検出スコアが大きい領域ほど色が濃く(画素値が小さく)、顔検出スコアが小さい領域ほど色が薄く(画素値が大きく)表される。画角内において、各被写体に対応する濃淡は、被写体領域を超えて表されるように表示しているが、これに限るものでなく、被写体領域の範囲内で濃淡を表してもよい。図13(c)に図示するのは、前述した単一スコアマップを複数フレーム分蓄積して得られた蓄積スコアマップである。例えば、時刻t>2における単一スコアマップをM(v、h、t)、蓄積スコアマップをN(v、h、t)、時刻t-1の蓄積スコアマップをN′(v、h、t-1)とする。この場合、時刻tの蓄積マップは、式(10)、式(11)に表される重み付け加算の演算によって算出される。なお、(v、h、t)は顔および人体が検出された中心座標と時刻をそれぞれ示している。
ここで、式(10)、式(11)で定義できない、時刻t=1の蓄積スコアマップについては、前述の実施例1および、実施例2で述べたカメラ情報、距離情報および、ユーザーの手動操作に基づき算出される。例えば、距離情報に基づき、時刻t=1の蓄積スコアマップを算出する場合、顔検出スコアが大きいと推定される近距離領域については、濃淡マップの濃度を濃く設定し、遠距離領域については薄く設定する。
また、式(10)、式(11)におけるパラメータγは、過去フレームの蓄積スコアマップおよび、現フレームの単一スコアマップが現フレームの蓄積スコアマップに与える影響を制御する係数であり、任意に変更可能である。例えば、屋内の商業施設のように、照度変化が少なく、時間経過によらず人の出入りが絶え間なく発生するような環境では、γ=0.5に設定する。この場合、時間経過による単一スコアマップの遷移に対して、過去の結果と現在の結果の双方に同等の重み付けがされるため、時間変化の少ない環境で安定した蓄積スコアマップを算出できる。一方、屋外のスタジアム出入り口のように、時間経過に伴い照度変化や人の出入りが激しく変化する環境では、γ=0.8に設定する。この場合、時間経過による単一スコアマップの遷移に対して、現在の撮影環境に対する追従性が高いスコアマップを算出できる。
なお、式(10)、(11)では、IIR(無限インパルス応答)フィルタの特性を持つ関数によって蓄積スコアマップを算出したが、これに限るものではない。例えば、FIR(有限インパルス応答)フィルタの特性を持つ関数や非線形の関数から導き出してもよいし、参照するフレームも過去フレームに限るものではない。また、人体検出に基づく蓄積スコアマップも、顔検出に基づく蓄積スコアマップと同様に算出されるため、詳細な説明は省略する。以上が、検出スコアマップに係る説明になる。
(被写体の検出処理・露出決定処理)
続いて、図14を参照して、本実施例に係る被写体の検出処理および露出決定処理について説明する。図14は、本発明の実施例3に係る検出処理および露出決定処理を例示的に説明するフローチャートである。
まず、ステップS1401において、スコアマップ算出部1209は、前述したような方法に基づいて、各検出被写体に応じた蓄積スコアマップを取得し、スコアマップ保持部1210で当該蓄積スコアマップを保持する。ここで、蓄積スコアマップとは、図13(c)に図示したような、時間経過による検出スコアの推移が反映されたマップである。
次に、ステップS1402において、検出手段設定部1205は、ステップ1401で取得した蓄積スコアマップに基づき、被写体の検出手段(検出対象)を設定する。本実施例に係る蓄積スコアマップでは、マップ上の濃淡に基づき、濃度が濃い(画素値が小さい)ほど検出の信頼性が高く、直近のフレームで被写体が存在した可能性が高い。そこで、蓄積スコアマップの濃度(画素値)と任意に設定された閾値THとを画素単位で比較することで、濃度が濃い(画素値が小さい)領域に対して、被写体の検出手段を設定する。
なお、上述した閾値THは、時間経過に伴う被写体の検出頻度に応じて動的に設定されてもよい。例えば、時間経過に伴い顔領域の検出回数や人体領域の検出回数が減少する場合は、閾値THを大きく設定する。すなわち、スコアマップ上の低濃度の領域を被写体の検出対象として設定し、検出領域全体を拡大する。この構成により、より広い範囲を検出対象とすることができるため、時間経過に応じて変化する被写体の検出頻度の揺らぎに左右されにくい検出領域を設定できる。
一方、時間経過に伴い被写体の出入りが激しく、システム全体の処理負荷が大きくなる場合は、閾値THを小さく設定する。すなわち、スコアマップ上の低濃度の領域を被写体の検出対象から除外されるように設定し、検出対象領域を制限する。この構成により、被写体の検出頻度が最も高い(被写体が存在する確率が最も高い)領域に限定して、被写体検出を行うことができる。
次に、ステップS1403において、被写体検出部1206は、ステップS1402で設定された検出手段に基づいて、任意の被写体を検出する。例えば、検出手段の検出対象として顔領域が設定されている領域に対して、顔領域の検出を実行する。検出の方法は、前述した実施例と同様なので説明は省略する。また、被写体検出後に算出される、被写体検出位置および、検出スコアの情報は、スコアマップ算出部1209に送られる。
次に、ステップS1404において、スコアマップ算出部1209は、被写体検出位置および、検出スコアに基づき、単一スコアマップを算出する。単一スコアマップの算出方法は、図13(b)を参照して説明した通りである。
次に、ステップS1405において、スコアマップ算出部1209は、ステップS1404で算出される現フレームの単一スコアマップおよび、スコアマップ保持部1210から取得される過去フレームの蓄積スコアマップに基づき、蓄積スコアマップを更新する。蓄積スコアマップの更新方法は、図13(c)を参照して説明した通りである。
なお、前述のパラメータγについて、撮影環境に応じて変更する例を示したが、これに限定されるものではない。例えば、顔認証を実行する場合、顔検出スコアに加えて、顔認証スコアを求め、これらに応じてパラメータγを変更する構成であってもよい。ここで、認証スコアとは、予めユーザーが登録した顔データと、被写体検出部1206により検出された顔データとを照合して得た一致度に基づく評価値である。この構成により、時間経過により変化する様々な顔検出情報に加えて、ユーザーが注目する被写体情報に重み付けした蓄積スコアマップを算出することができる。
次に、ステップS1406において、露出決定部1207は、ステップS1403で算出される検出結果に基づき、顔および人体の平均輝度値を算出する。なお、本実施例では、蓄積スコアマップに基づいて、顔領域と人体領域を検出対象とする設定がされている場合を想定する。また、算出方法は、前述した実施例における、ステップS505と略同一の方法であるため、詳細な説明は省略する。
次に、ステップS1407において、ステップS1406で算出される顔領域の平均輝度値と人体領域の平均輝度値、ステップS1405で更新された蓄積スコアマップに基づき、顔領域と人体領域とをブレンドした平均輝度値を算出する。なお、算出方法は前述した実施例における、ステップS506と略同一の方法であって、式(4)のパラメータαを蓄積スコアマップに基づき制御する。例えば、人体検出の蓄積スコアマップと比較して、顔検出の蓄積スコアマップの精度が高ければ、αの値を大きく設定する。このように、パラメータαを制御することで、検出スコアの精度が高い検出領域に対して重み付けを大きくして露出制御を行うことが可能になる。以降のステップS1408~S1409の処理は、前述した実施例におけるステップS506~S507と略同一の処理であるため、詳細な説明は省略する。
以上説明したように、本実施例に係る撮像システムであれば、カメラ情報取得部404から得られる情報に加えて、スコアマップ算出部1209から得られる被写体ごとのスコアマップに基づいて、露出を決定することができる。これにより、撮影環境の変化や被写体が出現する頻度に応じて、最適な検出手段(検出対象の被写体)が設定され、より精度の高い露出設定が可能となる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらに限定されず、その要旨の範囲内で種々の変形および変更が可能である。例えば、変更可能な露出のパラメータとしては、前述した絞りの開口径に係る絞り値(AV値)や、撮像素子202の蓄積時間に係る値(TV値)、撮像時の感度(ISO感度)などに係る値(SV値)を設定可能な構成だが、これに限定されるものではない。例えば、撮像素子202に入射する光量を減光するNDフィルタなどの減光手段を設ける構成であれば、NDフィルタの濃度に係る露出制御値を鑑みて露出制御を行うことができる構成であってもよい。
また、前述した実施例では、応じて予め設定されている測光モードに基づいて算出されたEVcurrentに対する露出補正量を加味して、補正後の露出EVcorrectionを算出する構成について説明したが、これに限定されるものではない。例えば、単に、顔人体ブレンド平均輝度値Iblendとして求めたBV値(輝度値)に基づいて露出制御を行い、露出を決定する構成であってもよい。具体的に、監視カメラ101あるいはクライアント装置103の何れかにおいて予め設定されている露出制御に係るプログラム線図と、顔人体ブレンド平均輝度値Iblendとに基づいて露出の各パラメータを決定する構成であってもよい。
なお、前述した実施例では、クライアント装置103が、監視カメラ101から入力された画像を取得したことに応じて、前述した被写体の検出処理および露出決定処理が自動的に開始される構成について説明したが、これに限定されるものではない。例えば、ユーザーによる手動の操作入力に応じて被写体の検出処理および露出決定処理を実行する構成であってもよい。また、被写体の検出処理については、露出制御における露出の更新周期よりも長い周期で実行する構成であってもよいし、ユーザーによる手動操作や撮像(記録)開始、ズーム操作やパンニング、チルトなどによる画角の変化に応じて実行する構成であってもよい。また、前述した実施例1のように、測光領域やその周辺領域に合わせて顔検出領域や人体検出領域を設定する場合は、測光モードの切り替えや測光領域の変更に応じて、被写体の検出処理を実行する構成であってもよい。
また、前述した実施例では、クライアント装置103がPCなどの情報処理装置であって、監視カメラ101とクライアント装置103が有線または無線で接続される撮像システムを想定したが、これに限定されるものではない。例えば、監視カメラ101などの撮像装置自体がクライアント装置103と同等の情報処理装置として機能し、当該撮像装置に入力装置104や表示装置105を備える構成であってもよい。また、前述したクライアント装置103が実行する動作の一部を監視カメラ101などの撮像装置が実行する構成であってもよい。
また、前述した実施例では、本発明を実施する撮像装置の一例として監視カメラ101に撮像光学系201が一体的に形成された、所謂レンズ一体型の撮像装置について説明したが、これに限定されるものではない。例えば、監視カメラ101と撮像光学系201を備えたレンズユニットとがそれぞれ別々に設けられた、所謂レンズ交換式の撮像装置を、本発明を実施する撮像装置としてもよい。
また、前述した実施例では、本発明を実施する撮像装置の一例として監視カメラを想定して説明したが、これに限定されるものではない。例えば、デジタルカメラ、デジタルビデオカメラやスマートフォンなどの可搬デバイスやウェアラブル端末など、監視カメラ以外の撮像装置を採用する構成であってもよい。さらに、前述した実施例では、本発明を実施する情報処理装置であるクライアント装置103の一例としてPCなどの電子機器を想定したが、これに限定されるものではない。例えば、クライアント装置103としては、スマートフォンやタブレット端末など、他の電子機器を採用する構成であってもよい。
また、前述した実施例では、クライアント装置103のクライアントCPU301が図4に図示するような各機能を実行する構成であったが、当該各機能をクライアントCPU301とは異なる手段として備える構成であってもよい。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。