(57)【要約】【課題】  被写体領域を適切に追尾可能な撮像装置及びその制御方法を実現する。【解決手段】  連続して撮像される画像に対し、画像認識による被写体検出と、動き検出による被写体検出とを併用可能な撮像装置において、画像認識による被写体検出結果の信頼度を、以前の検出結果に基づいて判定する（Ｓ６０１〜Ｓ６０４）。そして、信頼度が高いと判定された場合には、動き検出による被写体検出の実行を決定し（Ｓ６０５）、信頼度が低いと判定された場合には、動き検出による被写体検出を実行しないことを決定する。【選択図】  図７
2010056692.tif 000002
【特許請求の範囲】
【請求項１】
撮像素子を用いて連続して撮像された画像を取得する取得手段と、
前記画像に対し、画像認識により予め定めた被写体を継続的に検出する第１の被写体検出手段と、
前記画像のうち連続する画像に対し、前記第１の被写体検出手段で検出された前記被写体の領域の動きを順次検出することにより、前記被写体を検出する第２の被写体検出手段と、
直近の予め定めた複数の画像に対する第１の被写体検出手段の検出結果に基づいて、前記検出結果の信頼度を継続的に判定する判定手段とを有し、
前記第２の被写体検出手段は、前記判定手段により前記検出結果の信頼度が高いと判定された場合に、前記第１の被写体検出手段で検出された前記被写体の領域の動きを検出し、前記判定手段により前記検出結果の信頼度が低いと判定された場合には、前記第１の被写体検出手段で検出された前記被写体の領域の動きを検出しないことを特徴とする撮像装置。
【請求項２】
前記判定手段が、前記直近の予め定めた複数の画像に対して第１の被写体検出手段によって被写体が検出された回数に基づいて前記検出結果の信頼度を判定することを特徴とする請求項１記載の撮像装置。
【請求項３】
前記判定手段が、さらに、前記第１の被写体検出手段によって検出された被写体の領域の移動量及びサイズの変動量に基づいて前記検出結果の信頼度を判定することを特徴とする請求項２記載の撮像装置。
【請求項４】
前記第１の被写体検出手段が、前記予め定めた被写体として、人間の顔を検出することを特徴とする請求項１乃至請求項３のいずれか１項に記載の撮像装置。
【請求項５】
撮像素子を用いて連続して撮像された画像を取得する取得工程と、
前記画像に対し、画像認識により予め定めた被写体を継続的に検出する第１の被写体検出工程と、
前記画像のうち連続する画像に対し、前記第１の被写体検出工程で検出された前記被写体の領域の動きを順次検出することにより、前記被写体を検出する第２の被写体検出工程と、
直近の予め定めた複数の画像に対する第１の被写体検出工程の検出結果に基づいて、前記検出結果の信頼度を継続的に判定する判定工程とを有し、
前記第２の被写体検出工程は、前記判定工程により前記検出結果の信頼度が高いと判定された場合に、前記第１の被写体検出工程で検出された前記被写体の領域の動きを検出し、前記判定工程により前記検出結果の信頼度が低いと判定された場合には、前記第１の被写体検出工程で検出された前記被写体の領域の動きを検出しないことを特徴とする撮像装置の制御方法。
【請求項６】
撮像装置が有するコンピュータに、請求項５記載の撮像装置の制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置及びその制御方法に関し、特には被写体を検出する機能を有する撮像装置及びその制御方法に関する。
【背景技術】
【０００２】
デジタルカメラやビデオカメラのような、光電変換素子を用いた撮像装置においては、画像処理技術を用いて撮像画像から被写体を検出することが可能である。そのため、検出された被写体に焦点を合わせる自動焦点制御（ＡＦ）や、検出された被写体が適正露出となるような自動露出制御（ＡＥ）を行う撮像装置も実現されている。
【０００３】
例えば、撮像素子が有する表示装置を電子ビューファインダ（ＥＶＦ）として機能させるために連続的に撮像されるＥＶＦ画像（ライブ画像、スルー画像、ライブビュー画像などとも呼ばれる）において、継続的に被写体検出を行う場合を考える。この場合、例えば、顔検出のような画像認識技術を用いて個々の画像から被写体として検出する方法（特許文献１参照）や、被写体領域として指定された領域の動きを検出（追尾）する方法（特許文献２参照）を用いることが可能である。
【０００４】
顔検出は目や口など顔の特徴を画像から抽出し、顔であるか判別することによって、個々の画像から被写体を検出する。一方、被写体領域を追尾する方法は、あるフレーム画像で選択された被写体領域と相関の高い領域を別のフレーム画像から探索することによって、個々の画像から被写体を検出する。以下、本明細書においては、便宜上、顔検出のような画像認識を用いた被写体の検出を「顔検出」、被写体領域の動き検出に基づく被写体の検出を「動体検出」と呼ぶ。しかしながら、この呼び名には、被写体を人間の顔に限定する意図を含まない点に留意されたい。
【０００５】
【特許文献１】特開２００７−２７４５８７号公報
【特許文献２】特開２００１−２４３４７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
顔検出は顔を構成する複数の部位をそれぞれ認識する必要があるため、被写体の検出精度は高いが、演算が複雑で処理に時間を要するため、被写体の検出速度（追従性）において動体検出に劣る。これに対し、動体検出は、複数のフレーム画像間の差分演算によって被写体を検出するため、顔検出よりも高速に実行できるが、被写体の輝度が変化した場合に検出が困難になるなど、検出精度において顔検出に劣る。
このように、従来の被写体領域の追尾方法では、被写体の検出精度を優先すれば検出速度が低下し、検出速度を優先すれば検出精度が低下してしまう。
【０００７】
本発明はこのような従来技術の課題に鑑みてなされたものであり、被写体領域を適切に追尾可能な撮像装置及びその制御方法の実現を目的とする。
【課題を解決するための手段】
【０００８】
上述の目的は、撮像素子を用いて連続して撮像された画像を取得する取得手段と、画像に対し、画像認識により予め定めた被写体を継続的に検出する第１の被写体検出手段と、画像のうち連続する画像に対し、第１の被写体検出手段で検出された被写体の領域の動きを順次検出することにより、被写体を検出する第２の被写体検出手段と、直近の予め定めた複数の画像に対する第１の被写体検出手段の検出結果に基づいて、検出結果の信頼度を継続的に判定する判定手段とを有し、第２の被写体検出手段は、判定手段により検出結果の信頼度が高いと判定された場合に、第１の被写体検出手段で検出された被写体の領域の動きを検出し、判定手段により検出結果の信頼度が低いと判定された場合には、第１の被写体検出手段で検出された被写体の領域の動きを検出しないことを特徴とする撮像装置によって達成される。
【０００９】
また、上述の目的は、撮像素子を用いて連続して撮像された画像を取得する取得工程と、画像に対し、画像認識により予め定めた被写体を継続的に検出する第１の被写体検出工程と、画像のうち連続する画像に対し、第１の被写体検出工程で検出された被写体の領域の動きを順次検出することにより、被写体を検出する第２の被写体検出工程と、直近の予め定めた複数の画像に対する第１の被写体検出工程の検出結果に基づいて、検出結果の信頼度を継続的に判定する判定工程とを有し、第２の被写体検出工程は、判定工程により検出結果の信頼度が高いと判定された場合に、第１の被写体検出工程で検出された被写体の領域の動きを検出し、判定工程により検出結果の信頼度が低いと判定された場合には、第１の被写体検出工程で検出された被写体の領域の動きを検出しないことを特徴とする撮像装置の制御方法によっても達成される。
【発明の効果】
【００１０】
このような構成により、本発明によれば、被写体領域を適切に追尾可能な撮像装置及びその制御方法を実現できる
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明を好適かつ例示的な実施形態に基づき詳細に説明する。
本実施形態に係る撮像装置は、顔検出と、顔検出により検出された被写体領域の動体検出による被写体追尾とを併用することで、被写体の安定した検出を実現する。また、誤検出された顔領域の追尾を抑制する。
図１は、本発明の実施形態に係る撮像装置の一例としてのデジタルカメラの機能構成例を示すブロック図である。
【００１２】
（デジタルカメラの構成）
操作部１０１は、デジタルカメラ１００のユーザがデジタルカメラ１００に対して各種の指示を入力するためのユーザインタフェースであり、スイッチやボタンなどの入力デバイスにより構成されている。
【００１３】
操作部１０１にはシャッタースイッチが含まれる。そして、シャッタースイッチの半押し状態で信号ＳＷ１が、全押し状態で信号ＳＷ２がそれぞれ制御部１０２に対して通知される。
【００１４】
制御部１０２は、操作部１０１からの指示に応じてデジタルカメラ１００の各部の動作を制御し、デジタルカメラ１００の機能を実現する。制御部１０２は例えばＣＰＵと、ＣＰＵが実行するプログラムを記憶する不揮発性メモリと、プログラムを読み込んだりワークエリアとして用いたりするためのＲＡＭから構成される。
【００１５】
制御部１０２は、後述する画像処理部１０５が出力するデジタル画像データから被写体輝度を算出し、撮影モードに応じてシャッタースピード及び絞りの少なくとも一方を自動的に決定する自動露出制御（ＡＥ）機能を実現する。また、制御部１０２は、設定感度に応じたゲイン調整量をＡ／Ｄ変換部１０４へ通知する。設定感度は、ユーザが設定した固定感度であってもよいし、制御部１０２がＡＥ処理の結果に基づいて動的に設定した感度であってもよい。また、制御部１０２は、フラッシュ設定や自動決定したシャッタースピードなどに応じ、本撮影時のフラッシュ部１１１の発光要否を決定する。フラッシュの発光を決定した場合、制御部１０２は、ＥＦ処理部１１０に、フラッシュオンを指示する。ＥＦ処理部１１０は、制御部１０２からフラッシュオンの指示を受けると、フラッシュ部１１１を制御し、露出機構１０９が有するシャッターが開くタイミングに応じてフラッシュ部１１１を発光させる。
【００１６】
さらに制御部１０２は、レンズ駆動部１０８を用いてレンズ１０８ａのフォーカスレンズを駆動させ、画像処理部１０５が出力するデジタル画像データのコントラストの変化を検出することで、自動合焦制御機能を実現する。
【００１７】
撮像素子１０３は、ＣＣＤイメージセンサ、ＣＭＯＳイメージセンサなどの光電変換デバイスであり、レンズ１０８ａ、露出機構１０９ａを介して結像される被写体光学像を画素単位のアナログ電気信号（アナログ画像データ）に変換する。
【００１８】
レンズ１０８ａはＡＦ機能を有し、後述するレンズ駆動部１０８からの制御に従ってフォーカスレンズを駆動する。露出機構１０９ａは絞り及びメカニカルシャッターを有し、後述するメカ駆動部１０９の制御に従った絞りとシャッタースピードでレンズ１０８ａと撮像素子１０３の間の光路を開くことにより、被写体光学像で撮像素子１０３を露光させる。
【００１９】
Ａ／Ｄ変換部１０４は、撮像素子１０３から出力されたアナログ画像データに対して、相関二重サンプリング、ゲイン調整、Ａ／Ｄ変換等を行い、デジタル画像データとして出力する。適用するゲイン調整量（増幅率）は、制御部１０２から与えられる。ゲインが大きければ、結果として、画像中に含まれるノイズ成分も大きくなる。
【００２０】
画像処理部１０５は、Ａ／Ｄ変換部１０４から出力されたデジタル画像データに対してホワイトバランス補正、画素補間処理、ガンマ補正処理、色差信号生成などの画像処理を行い、例えばＹＵＶ画像データを処理済みのデジタル画像データとして出力する。
【００２１】
顔検出部１０６は、画像認識により継続的に被写体検出を行う第１の被写体検出手段として機能する。顔検出部１０６は、Ａ／Ｄ変換部１０４が出力するデジタル画像データの画像から、被写体の一例としての人間の顔を検出する。そして、顔検出部１０６は、検出した顔の位置や範囲（大きさ）、信頼度（顔としての確からしさ）など、顔領域に係る情報（顔情報）を制御部１０２及び動体検出部１１５に通知する。顔の位置としては、顔領域の中心座標であってよい。
【００２２】
なお、本実施形態における顔検出には、公知の顔検出技術を利用できる。公知の顔検出技術としては、ニューラルネットワークなどを利用した学習に基づく手法、テンプレートマッチングを用いて目、鼻、口等の形状に特徴のある部位を画像から探し出し、類似度が高ければ顔とみなす手法などがある。また、他にも、肌の色や目の形といった画像特徴量を検出し、統計的解析を用いた手法等、多数提案されている。一般的にはこれらの手法を複数組み合わせ、顔検出の精度を向上させている。具体的な例としては特開２００２−２５１３８０号公報に記載のウェーブレット変換と画像特徴量を利用して顔検出する方法などが挙げられる。
【００２３】
動体検出部１１５は、動体検出により被写体検出を行う第２の被写体検出手段として機能する。動体検出部１１５は、画像処理部１０５が出力する、時系列上で連続する２フレームのデジタル画像データの画像から被写体（顔領域）の動きを検出し動体を判別し、被写体の動体情報（位置、範囲、移動量）を算出する。動体検出部１１５は、３フレーム以上の連続するデジタル画像データに対して順次動体検出を行うことにより、動体（被写体）追尾機能を実現する。
【００２４】
また、顔検出部１０６は、動体検出部１１５から得た動体情報に基づいて、次回の顔検出処理に使用するパラメータの値を設定することができる。
例えば、顔領域が画面の端にあり移動量が少ない場合よりも、顔領域が画面中央部にあり移動量が大きい場合の方が、顔と見なす信頼度（顔であることの確からしさ）の閾値を下げ、動いている顔にも追従可能として、検出率を向上させることができる。
【００２５】
ＥＶＦ表示部１０７は、ＬＣＤなどの表示装置を含み、画像処理部１０５による処理済みのデジタル画像データに基づく画像を表示する。
【００２６】
フォーマット変換部１１２は、画像処理部１０５から出力されたデジタル画像データから、例えばＤＣＦ(Design fule for Camera File System)に準拠した記録用のデータファイルを生成する。フォーマット変換部１１２は、データファイル生成の過程で、ＪＰＥＧ形式への符号化や、ファイルヘッダの生成などを行う。
【００２７】
画像記録部１１３は、フォーマット変換部１１２が生成したデータファイルを、デジタルカメラ１００の内蔵メモリや、デジタルカメラ１００に装着されているリムーバブルメディアなどに記録する。
【００２８】
外部接続部１１４は、デジタルカメラ１００をＰＣ（パーソナルコンピュータ）やプリンタといった外部装置に接続するためのインターフェースである。外部接続部１１４は、例えばＵＳＢ、ＩＥＥＥ１３９４、ＩＥＥＥ８０２．１１などの一般的な規格に準拠して、外部装置との通信を行う。
【００２９】
このように、本実施形態のデジタルカメラ１００では、顔検出部１０６による顔検出機能と、動体検出部１１５による動体追尾機能とを組み合わせて、顔検出機能で顔検出ができない場合にも継続した顔領域の追尾を可能にしている。
【００３０】
例えば、一般的に用いられている顔検出機能は、正面向きの顔については精度良く検出可能だが、横向きの顔や後ろ向きの顔を検出することが困難である。このような状況において、検出できていた顔領域に対して動体検出を適用して追尾することで、継続して顔領域を特定することができる。
【００３１】
図２は、上述した、顔検出機能と動体追尾機能の併用による被写体検出を模式的に示す図である。
図２（ａ）では人物が正面を向いており、この状態では顔検出機能によって精度良く顔を検出することができる。顔枠１０は、検出されている顔をユーザに知らせるための表示であり、ＥＶＦ画像上に重畳表示される。
【００３２】
図２（ｂ）では人物が少し右向きになっているが、まだ顔検出機能によって顔が検出できている。人物がさらに右を向き、横向きの状態（図２（ｃ））になると、顔検出機能で顔を検出できなくなっている。この場合、検出できていた際の顔領域に対して動き検出による動体追尾機能を用いることで、顔を追尾することが可能になる。図２（ｃ）において、顔枠１１は、動体追尾機能に基づくものであることを示すために点線で記載されている。人物がさらに向きを変えて後ろ向きの状態（図２（ｄ））になっても、動体追尾機能によって顔領域の追尾ができているかぎり、顔枠１１を表示し続けることができる。
【００３３】
このように、顔検出機能と動体追尾機能との組み合わせには効果があるが、以下に示す問題が発生しうる。
顔検出機能は、顔が有する一般的な特徴を有する画像領域を顔として検出するため、顔でない領域であっても、顔の特徴と類似した特徴を有する画像領域であれば顔として認識してしまう場合がある。なお、顔でない画像領域を顔として認識することを本明細書では誤検出と呼ぶ。
【００３４】
また、動体追尾機能は、画像間の相関に基づいて画像領域の動きを検出するものであり、画像の内容については何ら関知しない。そのため、顔検出機能で誤検出が生じた場合、その結果に基づいて動体追尾すると、顔でない領域を顔領域と認識し続けてしまう。また、図２に示すように顔領域に顔枠を表示する場合、誤った領域に顔枠が表示され続けることになる。
【００３５】
図３は、この問題を模式的に示した図である。図２と同様、顔検出機能に基づく顔枠１０は実線で、動体追尾機能に基づく顔枠１１は点線でそれぞれ図示している。
顔検出機能では、環境光の状況などにより誤検出することがある（図３（ｂ））。この誤検出は短時間で解消することが多く、顔枠１０が表示される時間も短時間である。しかし、顔検出機能と動体追尾機能を組み合わせると、誤検出が解消された際に、ただしい検出ができなくなった場合と同様に動体追尾に基づく被写体検出が行われ、顔でない部分に顔枠１１が表示され続けてしまう（図３（ｃ）、（ｄ））。
そのため、本実施形態では、動体追尾機能を用いるか否かを顔検出の状態に基づいて判定することにより、誤検出された顔領域を動体追尾することを抑制する。
【００３６】
（動作の説明）
次に、本実施形態のデジタルカメラ１００の動作について説明する。
先ず、デジタルカメラ１００のユーザが、操作部１０１に含まれている電源スイッチをオンにすると、制御部１０２はこれを検知し、デジタルカメラ１００を構成する各部に図示しない電池やＡＣ入力から電源を供給する。
【００３７】
本実施形態のデジタルカメラ１００は、電源が供給されるとＥＶＦ表示動作を開始するように構成されている。具体的には、露出機構１０９ａが有するメカニカルシャッターが開き、撮像素子１０３が露光される。撮像素子１０３の各画素で蓄積した電荷を、予め定められたフレームレートを実現する周期で順次読み出し、Ａ／Ｄ変換部１０４にアナログ画像データとして出力する。このように、本実施形態では、ＥＶＦ表示用の画像を、所謂電子シャッターを用いて連続して撮像することにより取得する。
【００３８】
Ａ／Ｄ変換部１０４は、撮像素子１０３から出力されたアナログ画像データに対して、相関二重サンプリング、ゲイン調整、Ａ／Ｄ変換等を行い、デジタル画像データとして出力する。
【００３９】
画像処理部１０５は、Ａ／Ｄ変換部１０４から出力されたデジタル画像データに対してホワイトバランス補正、画素補間処理、ガンマ補正処理、色差信号生成などの画像処理を行い、例えばＹＵＶ画像データを処理済みのデジタル画像データとして出力する。
【００４０】
顔検出部１０６は、Ａ／Ｄ変換部１０４が出力するデジタル画像データの画像から、画像認識によって人間の顔を検出し、検出した顔の位置や範囲、信頼度（顔としての確からしさ）など、顔領域に係る情報（顔情報）を制御部１０２に通知する。
【００４１】
動体検出部１１５は、画像処理部１０５が出力する、時系列上で連続する複数のデジタル画像データの画像から動体を検出し、その位置、範囲、移動量を算出する。なお、３枚以上の連続する画像に対して動体検出を行う場合、動体検出部１１５は、最初の２枚に対して行った検出結果を用いて、次の２枚以降についても順次検出を継続する。さらに、動体検出部１１５は角速度センサにより、デジタルカメラ１００の動きも検出する。
【００４２】
制御部１０２は、Ａ／Ｄ変換部１０４に通知するゲイン調整量を決定する。また制御部１０２は、ゲイン調整量に応じて、顔検出部１０６による被写体検出結果のみを用いて被写体領域を決定するか、動体検出部１１５による被写体検出結果も用いて被写体領域を決定するかを切り替える。切り替え制御の詳細については後述する。
【００４３】
画像処理部１０５は、Ａ／Ｄ変換部１０４から出力されたデジタル画像データに対して各種画像処理を行い、処理済みのデジタル画像データを出力する。
また、ＥＶＦ表示部１０７は、画像処理部１０５が出力する画像データに従った画像を逐次表示する。
【００４４】
制御部１０２は、操作部１０１から信号ＳＷ１の通知（即ち、シャッタースイッチの半押しの通知）を受けていない限り、上記のＥＶＦ表示処理を繰り返して実行するように各部を制御する。
【００４５】
一方、制御部１０２が信号ＳＷ１の通知を受けると、通知を受けた時点で最新の撮像画像を用いてＡＦ、ＡＥ処理を行い、合焦位置および露出条件を決定する。さらに制御部１０２は、フラッシュ部１１１の発光要否を決定する。フラッシュを発光するか否かは、操作部１０１を用いて予め設定しておき、その設定データを読み取ることで判断するようにしても良いし、また周囲の暗さを検知し自動的に判断するようにしても良い。
【００４６】
制御部１０２は、操作部１０１から信号ＳＷ１の通知が継続している限り、かつ信号ＳＷ２の通知（即ち、シャッタースイッチの全押しの通知）を受けるまで待機する。制御部１０２は、信号ＳＷ２の通知を受ける前に信号ＳＷ１の通知が途絶えた場合には、ＥＶＦ表示処理を再開させる。
【００４７】
信号ＳＷ２の通知を受けると制御部１０２は、フラッシュ部１１１を発光させる場合にはＥＦ処理部１１０を制御し、フラッシュ部１１１にプリ発光を行わせ、発光量の算出、ＥＦ枠の重み付けなどの処理を行う。そして、制御部１０２は、プリ発光により計算された本発光量でフラッシュ部１１１を発光させるようにＥＦ処理部１１０に指示する。フラッシュ部１１１を発光させない場合、制御部１０２は上述の調光制御を行わずに本撮影処理に移行する。
【００４８】
本撮影処理は、ＥＶＦ表示処理時の撮像処理と、ＡＥ処理で決定された絞り及びシャッタースピードによって露出機構１０９ａを制御して撮像素子１０３を露光すること、一般には撮像素子１０３から読み出す画素数が多い点で主に異なる。
【００４９】
また、本撮影は記録用の画像を撮像する処理であるため、画像処理部１０５が出力する処理済みのデジタル画像データは、フォーマット変換部１１２によって記録用のデータファイルに変換され、画像記録部１１３によって記録媒体に記録される。
【００５０】
＜顔検出処理＞
次に、顔検出部１０６が行う被写体検出処理（顔検出処理）について説明する。
本実施形態において、顔検出部１０６は、複数の検出モードを有し、そのいずれか１つで顔検出処理を行う。検出モードに特に制限はないが、例えば、検出できる顔の条件が狭い代わりにすばやく顔検出処理を行うことが可能な高速顔検出モードと、検出できる顔の条件が広い代わりに顔検出処理に要する時間が長い低速顔検出モードとが含まれてもよい。さらに、これらのモードにおける顔検出処理に要する時間を短縮するため、顔検出を行う画面内の領域を過去の顔検出結果に応じて制限する領域制限モードと、制限のない領域非制限モードが含まれてもよい。
【００５１】
以下の説明において、顔検出部１０６は、これら検出モードを動的に選択しながら顔検出処理を行うものとする。
顔検出部１０６は、顔検出処理を実行した後、実行した顔検出処理に関する情報を表す各種のフラグを設定する。そして、フラグの値に応じて次の顔検出処理の検出モードを決定する。図４に示すフローチャートは、顔検出処理が終了した後で実行されるフラグ設定及び検出モード決定処理を示している。
【００５２】
Ｓ４０１で顔検出部１０６は、前回の顔検出処理を高速顔検出モードで動作したか否か判定する。顔検出部１０６は、前回の顔検出処理を高速顔検出モードで行った場合は１を（Ｓ４０２）、低速顔検出モードで行った場合は０（Ｓ４０３）をフラグ(Flag_PreFast)に設定する。なお、各種フラグは例えば顔検出部１０６の図示しない内部メモリの特定アドレスに割り当てられた記憶領域として実現されるものとする。
【００５３】
Ｓ４０４で顔検出部１０６は、前回の顔検出処理で、顔検出する領域を１フレーム分の画像に対して一定割合以上制限したか判定する。顔検出部１０６は、前回の顔検出処理において顔検出する領域を一定割合以上制限した場合は１（Ｓ４０５）を、領域を制限しなかったか、制限が一定割合未満の場合は０（Ｓ４０６）をフラグ(Flag_PreRegion)に設定する。
【００５４】
Ｓ４０７で顔検出部１０６は、前回の顔検出処理で１つ以上の顔が検出されたか否かを判定する。顔検出部１０６は、顔検出部１０６は、前回の顔検出処理で１つ以上の顔が検出された場合は１（Ｓ４０８）を、顔が１つも検出されなかった場合は０（Ｓ４０９）をフラグ(Flag_PreFind)に設定する。
【００５５】
前回の顔検出処理で１つ以上の顔が検出された場合、顔検出部１０６はさらに、後述するフラグ(Flag_LostCycle)の値を０に設定する（Ｓ４１０）。一方、前回の顔検出処理で顔が１つも検出されなかった場合、顔検出部１０６は、１つも顔が検出されなかった時間が予め定めた一定時間以上経過したか否かを判定する（Ｓ４１１）。顔検出部１０６は、１つも顔が検出されなかった時間が予め定めた一定時間以上である場合には１を（Ｓ４１２）、１つも顔が検出されなかった時間が予め定めた一定時間に達していない場合は０を（Ｓ４１３）、フラグ(Flag_LostCycle)に設定する。
【００５６】
Ｓ４１４で顔検出部１０６は、前回の顔検出処理で検出された顔の大きさが全て、あるしきい値以上（検出された顔のうち最小のものの大きさがあるしきい値以上）か否かを判定する。顔検出部１０６は、前回の顔検出処理で検出された顔の大きさが全て、あるしきい値以上の場合は１を（Ｓ４１５）、しきい値未満の大きさの顔が１つでも検出された場合は０を（Ｓ４１６）、フラグ(Flag_PreFaceSize)に設定する。
【００５７】
Ｓ４１７で顔検出部１０６は、前回の顔検出処理で検出された顔のうち、顔領域が検出領域に収まらないものがあったか否かを判定する。顔検出部１０６は、全ての顔領域が検出領域に収まっていた場合には１を（Ｓ４１８）、検出領域に収まらない顔領域があった場合には０を（Ｓ４１９）、フラグ(Flag_PreInside)に設定する。
Ｓ４２０で顔検出部１０６は、Ｓ４０１〜Ｓ４１９の処理で設定した６つのフラグの値を参照して、次回の顔検出処理に対する検出モードを決定する。
【００５８】
図５は、図４のＳ４２０における検出モード決定処理の詳細を説明するフローチャートである。
Ｓ４２０１において顔検出部１０６は、Flag_PreFindの値が１か否か判別する。Flag_PreFindの値が１であれば、前回の顔検出処理で顔が検出されている。そのため、前回検出された顔の座標、角度といった情報を元に、検出できる顔の条件を狭くして高速検出モードを実行可能であり、顔検出部１０６は高速検出モードを決定する（Ｓ４２０９）。
【００５９】
一方、Flag_PreFindの値が０の場合、顔検出部１０６は、Flag_LostCycleの値が１か否か判別する。Flag_LostCycleの値が０の場合、顔検出部１０６はさらにFlag_PreFastの値が１か否か判別する。
【００６０】
Flag_LostCycleの値が０の場合、被写体の人物が横を向くなどして一時的に顔が検出できなくなっている可能性がある。そのため、Flag_PreFastの値が１（前回、高速検出モード）の場合、顔検出部１０６は、高速検出モードを決定（維持）する（Ｓ４２０９）。これにより、照明や顔の角度が一瞬変化したような場合でも、高速検出モードを一定時間継続することができ、顔が検出できるような状態に戻った時にすぐに認識できるようにしている。
【００６１】
一方、Flag_LostCycleの値が１である場合、もしくはFlag_LostCycleの値が０であるが、Flag_PreFastの値が０（前回、低速検出モード）の場合、顔検出部１０６は、低速検出モードに決定する（Ｓ４２０７）。これにより、顔検出処理に要する時間は長いが、検出できる顔の条件を広くして、顔が検出できる可能性を高める。
【００６２】
次に顔検出部１０６は、Flag_PreRegionの値が１であるか否かを判別する（Ｓ４２１１）。Flag_PreRegionの値が１の場合、顔検出部１０６はさらに、Flag_PreInsideの値が１か否か判別する（Ｓ４２１３）。
【００６３】
Flag_PreRegion及びFlag_PreInsideの値がいずれも１の場合、顔検出領域を制限したが、検出された顔がいずれも顔検出領域内に収まっていることを意味する。そのため、顔検出部１０６は、引き続き領域制限モードを決定（維持）する（Ｓ４２１５）。なお、この際、さらに領域制限の割合及び顔検出処理時の電子ズーム倍率を高めてもよい。
【００６４】
一方、Flag_PreRegionの値が１で、Flag_PreInsideの値が０の場合には、制限された顔検出領域に収まらない顔領域が存在することを意味するので、顔検出部１０６は領域非制限モードを決定する（Ｓ４２１９）。これにより、フレーム画像全体から顔検出を実行することができる。なお、Ｓ４２１３でFlag_PreInsideの値が０の場合、段階的に制限割合を低下させてもよい。
【００６５】
Ｓ４２１１でFlag_PreRegionの値が０の場合、顔検出部１０６はさらに、Flag_PreFaceSizeの値が１か否か判別する（Ｓ４２１７）。Flag_PreFaceSizeの値が１であれば、いずれの顔も十分な大きさで検出できているので、顔検出領域を制限する（電子ズームを用いる）必要はない。従って、顔検出部１０６は、領域非制限モードを決定する（Ｓ４２１９）。
【００６６】
一方、Flag_PreFaceSizeの値が０であれば、大きさが十分でない顔が存在する。この場合、顔検出領域を制限し（電子ズームを用い）、小さな顔の検出を容易にするため、顔検出部１０６は領域制限モードを決定する（Ｓ４２１５）。例えば、検出できる最小の顔の大きさが大きいほど処理時間が短くなるような顔検出アルゴリズムを使用する場合、検出する領域を制限して電子ズームを実行することにより処理時間を抑えつつ小さい顔でも検出することが可能となる。
【００６７】
＜動体追尾処理＞
次に、動体検出部１１５が行う被写体検出（追尾）処理について、図６に示すフローチャートを用いて説明する。
Ｓ５０１で動体検出部１１５は、顔検出部１０６から、顔情報（顔の信頼度、顔の座標、顔の大きさ等）を取得する。顔情報は検出されている全ての顔について取得する。動体検出部１１５は、顔検出部１０６から取得した顔情報を、顔検出の履歴として予め定めた複数フレーム分、図示しない内部メモリなどに保存しておく。
【００６８】
Ｓ５０２で動体検出部１１５は、Ｓ５０１で複数の顔情報が得られた場合には、顔情報に基づいて主要被写体となる顔を決定する。主要被写体の決定方法に特段の制限はなく、例えば顔の信頼度、画像全体における顔の位置、顔の大きさを元に決定することができる。一例として、検出された各顔について複数の重みを算出し、重みに基づいて主要被写体を決定する方法を以下に述べる。なお、顔が１つしか検出されていない場合には、動体検出部１１５はその顔を主要被写体として選択する。
【００６９】
まず、動体検出部１１５は、検出された各顔の信頼度をもとに第１の重みを決定する。例えば、動体検出部１１５は、信頼度が上位にある場合、つまり顔である可能性が高いものに対しては重みを１またはそれに近い値とし、信頼度が下位にある場合は重みを０またはそれに近い値に決定する。また、動体検出部１１５は、中間の信頼度については、信頼度に応じて上位と下位の重みの間の任意の値になるように決定する。
【００７０】
続いて、動体検出部１１５は、顔の大きさをもとに第２の重みを決定する。ここで、例えば、動体検出部１１５は、顔検出部１０６が正方形の顔領域を検出するとする。また、顔領域の一辺の長さのしきい値をTh_Length_1、Th_Length_2（Th_Length_1＞Th_Length_2）としする。この場合、動体検出部１１５は、一辺がTh_Length_1以上の大きさを有する顔の重みを１またはそれに近い値とする。また、動体検出部１１５は、一辺がTh_Length_2以下の大きさの顔の重みを０またはそれに近い値に決定する。また、動体検出部１１５は、一辺がTh_Length_1とTh_Length_2の間の大きさを有する顔は、一辺の長さに応じて０〜１の間で重みを決定する。この場合、一辺が長いほど重みを大きく決定する。
【００７１】
さらに動体検出部１１５は、画像全体における顔の位置をもとに第３の重みを決定する。例えば、動体検出部１１５は、画像中心から顔領域の中心までの距離を求め、距離が短いほどその顔の重みを大きく決定する。距離は、例えば２つの中心座標がｘｙ座標系で表されるとすると、ｘ方向成分の差と、ｙ方向成分の差の合計として求めても、三平方の定理を利用して求めてもよい。
【００７２】
例えば距離のしきい値をTh_CenterDist_1、Th_CenterDist_2（Th_CenterDist_1＞Th_CenterDist_2）とする。動体検出部１１５は、距離がTh_CenterDist_1以上の顔は重みを０またはそれに近い値とし、距離がTh_CenterDist_2以下の、画像中心近くにある顔には重みを１またはそれに近い値とする。また動体検出部１１５は、距離がTh_CenterDist_1とTh_CenterDist_2の間の顔については、距離に応じて０〜１の間で重みを決定する。なお、距離が近いほど重みを大きくする。
【００７３】
そして、動体検出部１１５は、これら第１から第３の重みをもとに主要被写体を決定する。重みの用い方にも特に制限はないが、例えば３つの重みの加算や乗算の結果が最も大きい顔を主要被写体として決定することができる。
【００７４】
Ｓ５０３で動体検出部１１５は、Ｓ５０２で決定した主要被写体の顔に対して動き検出を実行する。例えば、連続した画像フレーム間で主要被写体の顔領域周辺の輝度値の差分比較を行うことで、被写体（顔）の動きを検出することができる。
【００７５】
具体的には、時系列上で連続した２つのフレーム画像のうち、まず前のフレーム画像で主要被写体の顔を決定する。そこでは例えば顔の信頼度、顔の位置、顔の大きさを保存しておいてもよい。そして、後のフレーム画像では、主要被写体の存在した座標に対して動体追尾を実行する。動体追尾は前のフレーム画像で検出された主要被写体（顔領域）の動きを検出し、後のフレーム画像における移動先を決定する処理である。例えば、動き検出の対象である前のフレームでの顔領域の輝度値のパターンをもとに、後のフレーム画像で輝度値の変動量が一番少ない領域をパターンマッチングによって探索し、移動先の領域として決定する。
【００７６】
＜主要被写体の追尾処理＞
次に、図７に示すフローチャートを用いて、本実施形態のデジタルカメラにおける、動体検出に基づく被写体追尾の実行可否の判定方法について説明する。この判定処理は、例えば顔検出部１０６から顔検出結果の通知を受けることにより、動体検出部１１５が継続的に実行する。
【００７７】
Ｓ６０１で動体検出部１１５は、ある一定回数（ここでは定数Count_1の値として設定されているものとする）以上連続で顔が検出されたかどうか判定する。動体検出部１１５は、Count_1回以上連続で顔が検出されている場合はＳ６０３に、そうでない場合はＳ６０２に処理を進める。
【００７８】
Ｓ６０２で動体検出部１１５は、Count_1回以上連続で顔が検出されていない場合、直近の予め定めた数（ｎとする）のフレーム画像において、予め定めた回数以上顔が検出されたかどうか判定する。ここで、この回数は、定数Count_2（＜ｎ）の値として設定されているものとし、また、ｎの値をCount_1の値と等しく設定してもよい。この判定では、顔の検出が連続しているか否かは問わない。動体検出部１１５は、Count_2回以上顔が検出されている場合はＳ６０３に、そうでない場合はＳ６０６に処理を進める。
【００７９】
Ｓ６０３で動体検出部１１５は、Count_1回以上連続して、またはｎフレーム中Count_2回以上顔が検出されている場合、次はそれらの顔検出結果に注目する。動体検出部１１５は、上述のようにして選択した主要被写体の顔領域について、内部メモリに保存した顔情報を参照して、直近の一定時間（一定フレーム数）における中心座標の移動量を算出する。ここで、移動量は例えば一定時間に含まれるフレーム間の移動量の合計であっても、一定時間の始まりと終わりに対応するフレーム画像間の移動量であってもよい。そして、動体検出部１１５は、算出した移動量が予め定めたしきい値Th_Dist以上か否かを判定する。移動量がTh_Dist未満の場合はＳ６０４に、移動量がTh_Dist以上の場合はＳ６０６に処理を進める。
【００８０】
Ｓ６０４で動体検出部１１５は、Ｓ６０３により一定時間の主要被写体の顔領域の中心座標の移動量がTh_Dist以内の場合、次は顔領域の大きさの変動量に注目する。Ｓ６０３と同様に、直近の一定時間（一定フレーム数）における主要被写体の顔領域の大きさの変動量を算出し、算出した変動量が予め定めたしきい値Th_Size以上か否かの判定を行う。
【００８１】
ここで、変動量は例えば一定時間に含まれるフレーム間の変動量の合計であっても、一定時間の始まりと終わりに対応するフレーム画像間の変動量であってもよい。変動量は例えば顔領域が正方形であればその一辺の長さの差や比として求めることができる。そして、動体検出部１１５は、算出した変動量がTh_Size未満の場合はＳ６０５に、変動量がTh_Size以上の場合はＳ６０６に処理を進める。
【００８２】
なお、しきい値Th_DistとTh_Sizeはそれぞれ独立に決定してもよく、また２つの値に相関を持たせてもよい。例えば、顔がデジタルカメラ１００から離れた位置に存在するならば、近い位置に存在する場合に比較して、その顔が同じように動いたとしても、その顔領域の中心座標の移動量も、顔領域の大きさの変動量も小さくなる。そこで、しきい値Th_Distを低減するのであればしきい値Th_Sizeも低減し、しきい値Th_Distを増加するのであればしきい値Th_Sizeも増加する。こうすることで、被写体とデジタルカメラ１００との距離に適した顔検出結果の信頼度の判定を行うことができる。
【００８３】
Ｓ６０５で動体検出部１１５は、動体検出に基づく被写体追尾の実行を決定する。すなわち、動体検出部１１５は、
・Count_1回以上連続して、またはｎフレーム中Count_2回以上顔が検出され、
・かつ直近の一定時間（一定フレーム数）における主要被写体である顔領域の動き及びサイズの変化が少ない
場合に、顔検出結果の信頼度が高いと判定し、被写体追尾の実行を決定する。
【００８４】
一方、Ｓ６０６で動体検出部１１５は、動体検出に基づく被写体追尾を実行しないことを決定する。すなわち、顔の検出頻度が少なかったり、かつ直近の一定時間（一定フレーム数）における主要被写体である顔領域の動きまたはサイズの変化が大きい場合には、顔検出結果の信頼度が低いものとして被写体追尾を実行しない。
【００８５】
このようにして被写体追尾の実行を行うか否かを決定することで、例えば、複数の顔が検出され、その中で主要被写体の入れ替わりが発生した場合や誤検出が発生した場合に、誤った被写体追尾を行う可能性を抑制することが可能になる。
【００８６】
以上説明したように、本実施形態によれば、画像認識による被写体検出の結果の履歴に基づいて、被写体検出の信頼度を判定する。そして、画像認識による被写体検出の信頼度が高いと判定された場合には、検出された被写体領域を動体検出により追尾する。一方、画像認識による被写体検出の信頼度が低いと判定された場合には、検出された被写体領域に対する追尾を行わない。
【００８７】
そのため、誤検出された顔領域を追尾してしまう可能性を抑制することが可能になる。その結果、本撮影時に、被写体からずれた背景へ合焦制御したり、露出設定を誤ったりするという問題を回避し、ＡＥ制御やＡＦ制御の精度を向上させることができる。また、被写体領域を示す表示（枠表示など）を行う場合、誤検出された顔領域に枠表示が継続して行われることを抑制し、安定した表示を行うことができる。
【００８８】
＜他の実施形態＞
なお、上述の実施形態において、被写体追尾を行わないと決定した場合であっても、動体検出部１１５による動体検出は実行し、検出結果を使用しないようにしても、動体検出部１１５による動体検出動作そのものを停止させてもよい。後者の場合、制御部１０２は、停止手段として機能する。
【００８９】
また、被写体追尾を実行すると決定した場合、その後一定数のフレームに対する顔検出部１０６による被写体検出を停止したり、顔検出部１０６による被写体検出の頻度を低下させてもよい。さらに、動体検出部１１５は主要被写体だけでなく、顔検出部１０６が検出したすべての顔に対しても動き検出を実行するようにしてもよい。検出したすべての顔を対象として図７に示す動体検出に基づく被写体追尾の実行可否の判定を行い、被写体追尾の実行条件を満たした被写体の中から、顔の信頼度、画面全体における顔の位置、顔の大きさを元に主要被写体を決定するようにしてもよい。
【００９０】
本発明は上述した実施形態で説明した特定の構成に限定されず、本質的でない構成要素や動作の変更はいずれも本発明に含まれる。
上述の実施形態は、システム或は装置のコンピュータ（或いはＣＰＵ、ＭＰＵ等）によりソフトウェア的に実現することも可能である。
従って、上述の実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明を実現するものである。つまり、上述の実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
【００９１】
なお、上述の実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。
【００９２】
上述の実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線／無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、ＭＯ、ＣＤ、ＤＶＤ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【００９３】
有線／無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムファイル）をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。
【００９４】
そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。
つまり、上述の実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
【００９５】
また、上述の実施形態を実現するためのコンピュータプログラムを暗号化して格納した記憶媒体を配布し、所定の条件を満たしたユーザに、暗号化を解く鍵情報を供給し、ユーザの有するコンピュータへのインストールを許可してもよい。鍵情報は、例えばインターネットを介してホームページからダウンロードさせることによって供給することができる。
【００９６】
また、上述の実施形態を実現するためのコンピュータプログラムは、すでにコンピュータ上で稼働するＯＳの機能を利用するものであってもよい。
さらに、上述の実施形態を実現するためのコンピュータプログラムは、その一部をコンピュータに装着される拡張ボード等のファームウェアで構成してもよいし、拡張ボード等が備えるＣＰＵで実行するようにしてもよい。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施形態に係る撮像装置の一例としてのデジタルカメラの機能構成例を示すブロック図である。
【図２】顔検出機能と動体追尾機能の併用による被写体検出を模式的に示す図である。
【図３】誤検出された顔領域を追尾した際の問題を説明するための図である。
【図４】本発明の実施形態に係るデジタルカメラの顔検出部の動作を説明するフローチャートである。
【図５】図４のＳ４２０における検出モード決定処理の詳細を説明するフローチャートである。
【図６】本発明の実施形態に係るデジタルカメラの動体検出部における被写体追尾動作を説明するフローチャートである。
【図７】本発明の実施形態に係るデジタルカメラの動体検出部における被写体追尾の実行可否の判定処理について説明するフローチャートである。
【図１】
2010056692.tif 000003
【図２】
2010056692.tif 000004
【図３】
2010056692.tif 000005
【図４】
2010056692.tif 000006
【図５】
2010056692.tif 000007
【図６】
2010056692.tif 000008
【図７】
2010056692.tif 000009
【手続補正書】
【提出日】平成21年9月1日(2009.9.1)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
次に顔検出部１０６は、Flag_PreRegionの値が１であるか否かを判別する（Ｓ４２１１）。Flag_PreRegionの値が０の場合、顔検出部１０６はさらに、Flag_PreInsideの値が１か否か判別する（Ｓ４２１３）。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
Flag_PreInsideの値が１の場合、検出された顔がいずれも顔検出領域内に収まっていることを意味する。そのため、顔検出部１０６は、領域制限モードを決定する（Ｓ４２１５）。なお、この際、さらに領域制限の割合及び顔検出処理時の電子ズーム倍率を高めてもよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
一方、Flag_PreInsideの値が０の場合には、制限された顔検出領域に収まらない顔領域が存在することを意味するので、顔検出部１０６は領域非制限モードを決定する（Ｓ４２１９）。これにより、フレーム画像全体から顔検出を実行することができる。なお、Ｓ４２１３でFlag_PreInsideの値が０の場合、段階的に制限割合を低下させてもよい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
Ｓ４２１１でFlag_PreRegionの値が１の場合、顔検出部１０６はさらに、Flag_PreFaceSizeの値が１か否か判別する（Ｓ４２１７）。Flag_PreFaceSizeの値が１であれば、いずれの顔も十分な大きさで検出できているので、顔検出領域を制限する（電子ズームを用いる）必要はない。従って、顔検出部１０６は、領域非制限モードを決定する（Ｓ４２１９）。
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2010056692.tif 000010