(57)【特許請求の範囲】
【請求項１】
連続的に複数の静止画像を出力する撮像部と、
前記静止画像に含まれる複数の顔を検出し、主被写体である主検出顔と、前記主検出顔の周囲にある顔である周辺顔とを、検出した顔の中から決定する顔検出部とを備え、
前記顔検出部は、第１の静止画像の後に撮像された第２の静止画像において主検出顔を決定できないとき、第１の静止画像に含まれる第１の周辺顔と第１の主検出顔との位置関係と、前記第２の静止画像に含まれる第２の周辺顔の位置とに基づいて前記第２の静止画像から第２の主検出顔を検出する撮像装置。
【請求項２】
前記顔検出部は、前記第１の静止画像及び前記第２の静止画像の双方において検出された周辺顔との位置関係に基づいて、前記主検出顔を前記第２の静止画像から検出する請求項１に記載の撮像装置。
【請求項３】
前記顔検出部は、前記第１の周辺顔の数と前記第２の周辺顔の数とが一致しない場合、前記第２の静止画像においてのみ検出された周辺顔の位置に基づいて、前記第２の主検出顔を前記第２の静止画像から検出する請求項１又は２に記載の撮像装置。
【請求項４】
前記顔検出部は、前記第１の静止画像において検出されなかった周辺顔を前記第２の静止画像において検出した場合、その検出した周辺顔を用いず、前記第１の静止画像及び前記第２の静止画像の双方において検出された周辺顔との位置関係に基づいて、前記第２の主検出顔を前記第２の静止画像から検出する請求項２に記載の撮像装置。
【請求項５】
前記顔検出部は、前記第１の静止画像において検出された周辺顔のうち、１以上前記第１の周辺顔の数未満の数の周辺顔を前記第２の静止画像において検出しない場合、前記第２の静止画像においてのみ検出された周辺顔の位置に基づいて、前記第２の主検出顔を前記第２の静止画像から検出する請求項３に記載の撮像装置。
【請求項６】
前記顔検出部は、前記第１の主検出顔を取り囲む前記第１の周辺顔を検出し、検出した前記第１の周辺顔に対応する前記第２の周辺顔に取り囲まれる顔を前記第２の主検出顔として検出する請求項１又は２に記載の撮像装置。
【請求項７】
前記顔検出部は、前記第１の静止画像において検出されなかった周辺顔を前記第２の静止画像において検出した場合、前記第１の主検出顔に対して所定の方向にある前記第１の周辺顔を検出し、検出した前記第１の周辺顔に対応する前記第２の周辺顔に対して所定の方向にある顔を前記第２の主検出顔として検出する請求項４に記載の撮像装置。
【請求項８】
前記顔検出部は、前記第１の主検出顔を取り囲む第１の周辺顔を検出し、検出した前記第１の周辺顔に対応する第２の周辺顔を１以上前記第１の周辺顔の数未満の数だけ前記第２の静止画像において検出しない場合、前記第１の周辺顔に対応する前記第２の周辺顔に対して所定の方向にある顔を前記第２の主検出顔として検出する請求項１から３及び５のいずれかに記載の撮像装置。
【請求項９】
第１の静止画像を得るステップと、
前記第１の静止画像に含まれる複数の顔を検出し、主被写体である第１の主検出顔と、前記第１の主検出顔の周囲にある顔である第１の周辺顔とを、検出した顔の中から決定するステップと、
前記第１の静止画像の後に作成された第２の静止画像を得るステップと、
前記第２の静止画像に含まれる複数の顔を検出し、前記第１の周辺顔に対応する第２の周辺顔を検出した顔の中から決定するステップと、
前記第１の周辺顔と前記第１の主検出顔との位置関係と、前記第２の周辺顔の位置とに基づいて前記第２の静止画像から第２の主検出顔を検出するステップとを備える被写体追尾方法。
【請求項１０】
顔検出部が撮像部から第１の静止画像を取得するステップと、
前記第１の静止画像に含まれる複数の顔を検出し、主被写体である第１の主検出顔と、前記第１の主検出顔の周囲にある顔である第１の周辺顔とを、検出した顔の中から顔検出部が決定するステップと、
前記第１の静止画像の後に作成された第２の静止画像を顔検出部が撮像部から取得するステップと、
前記第２の静止画像に含まれる複数の顔を検出し、前記第１の周辺顔に対応する第２の周辺顔を検出した顔の中から顔検出部が決定するステップと、
前記第１の周辺顔と前記第１の主検出顔との位置関係と、前記第２の周辺顔の位置とに基づいて前記第２の静止画像から第２の主検出顔を顔検出部が検出するステップとを備える被写体追尾プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に含まれる被写体を追尾する撮像装置、被写体追尾方法、及び被写体追尾プログラムに関する。
【背景技術】
【０００２】
被写体の顔を判別して、判別した顔に焦点及び露出を合わせて被写体を撮像する撮像装置が知られている。このような撮像装置は、連続的に被写体を撮像して、得られた画像を用いて被写体の顔を追尾する。顔を追尾するとき、撮像装置は、１フレーム過去の画像上に基準エリアを設け、現在撮像した画像上に比較エリアを設ける。比較エリアは、基準エリアから所定値だけずらした位置に設けられる。そして、基準エリアに位置する画素の画素値と比較エリアに位置する画素の画素値とを比較してエリアどうしの相関を判断する。そして、最も相関がある位置の比較エリアを基準エリアとして更新し、これにより顔を追尾する（特許文献１及び２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１５４２８６号公報
【特許文献２】特開２０１０−１５４２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１及び２に記載の構成は、基準エリアから所定値の範囲内を超えて移動した顔を追尾することができない。また、基準エリアから所定値の範囲内を顔が超えないときであっても、顔の向きが変わったり、激しい移動により顔の画像がぶれてしまったりすると、相関が低くなって、顔を追尾することができなくなる。
【０００５】
本発明はこれらの問題に鑑みてなされたものであり、画像に含まれる被写体を的確に追尾可能な撮像装置、被写体追尾方法、及び被写体追尾プログラムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
本願第１の発明による撮像装置は、連続的に複数の静止画像を出力する撮像部と、静止画像に含まれる複数の顔を検出し、主被写体である主検出顔と、主検出顔の周囲にある顔である周辺顔とを、検出した顔の中から決定する顔検出部とを備え、顔検出部は、第１の静止画像の後に撮像された第２の静止画像において主検出顔を決定できないとき、第１の静止画像に含まれる第１の周辺顔と第１の主検出顔との位置関係と、第２の静止画像に含まれる第２の周辺顔の位置とに基づいて第２の静止画像から第２の主検出顔を検出することを特徴とする。主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【０００７】
顔検出部は、第１の静止画像及び第２の静止画像の双方において検出された周辺顔との位置関係に基づいて、主検出顔を第２の静止画像から検出することが好ましい。主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【０００８】
顔検出部は、第１の周辺顔の数と第２の周辺顔の数とが一致しない場合、第２の静止画像においてのみ検出された周辺顔の位置に基づいて、第２の主検出顔を第２の静止画像から検出することが好ましい。周辺顔の数が増減しても、主検出顔を検出することができる。
【０００９】
顔検出部は、第１の静止画像において検出されなかった周辺顔を第２の静止画像において検出した場合、第２の静止画像においてのみ検出された周辺顔の位置に基づいて、第２の主検出顔を第２の静止画像から検出することが好ましい。前の静止画像において検出した周辺顔よりも多くの周辺顔を現在の静止画像において見つけた場合、新たに見つけた周辺顔と主検出顔との位置関係は不明である。そこで、前の静止画像と現在の静止画像の双方において検出できた周辺顔を使用して主検出顔を検出することにより、主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【００１０】
顔検出部は、第１の静止画像において検出された周辺顔のうち、１以上第１の周辺顔の数未満の数の周辺顔を第２の静止画像において検出しない場合、第２の静止画像においてのみ検出された周辺顔の位置に基づいて、第２の主検出顔を第２の静止画像から検出することが好ましい。前の静止画像で検出した周辺顔と同じ顔を現在の静止画像において見つけられない場合、その周辺顔を用いて現在の静止画像において主検出顔を検出することができない。そこで、前の静止画像と現在の静止画像の双方において検出できた周辺顔を使用して主検出顔を検出することにより、主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【００１１】
顔検出部は、第１の主検出顔を取り囲む第１の周辺顔を検出し、検出した第１の周辺顔に対応する第２の周辺顔に取り囲まれる顔を第２の主検出顔として検出することが好ましい。主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【００１２】
顔検出部は、第１の静止画像において検出されなかった周辺顔を第２の静止画像において検出した場合、第１の主検出顔に対して所定の方向にある第１の周辺顔を検出し、検出した第１の周辺顔に対応する第２の周辺顔に対して所定の方向にある顔を第２の主検出顔として検出することが好ましい。前の静止画像において検出した周辺顔よりも多くの周辺顔を現在の静止画像において見つけた場合、新たに見つけた周辺顔と主検出顔との位置関係は不明である。そこで、前の静止画像と現在の静止画像の双方において検出できた周辺顔を使用して主検出顔を検出することにより、主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【００１３】
顔検出部は、第１の主検出顔を取り囲む第１の周辺顔を検出し、検出した第１の周辺顔に対応する第２の周辺顔を１以上第１の周辺顔の数未満の数だけ第２の静止画像において検出しない場合、第１の周辺顔に対応する第２の周辺顔に対して所定の方向にある顔を第２の主検出顔として検出することが好ましい。前の静止画像で検出した周辺顔と同じ顔を現在の静止画像において見つけられない場合、その周辺顔を用いて現在の静止画像において主検出顔を検出することができない。そこで、前の静止画像と現在の静止画像の双方において検出できた周辺顔を使用して主検出顔を検出することにより、主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【００１４】
本願第２の発明による被写体追尾方法は、第１の静止画像を得るステップと、第１の静止画像に含まれる複数の顔を検出し、主被写体である第１の主検出顔と、第１の主検出顔の周囲にある顔である第１の周辺顔とを、検出した顔の中から決定するステップと、第１の静止画像の後に作成された第２の静止画像を得るステップと、第２の静止画像に含まれる複数の顔を検出し、第１の周辺顔に対応する第２の周辺顔を検出した顔の中から決定するステップと、第１の周辺顔と第１の主検出顔との位置関係と、第２の周辺顔の位置とに基づいて第２の静止画像から第２の主検出顔を検出するステップとを備えることを特徴とする。
【００１５】
本願第３の発明による被写体追尾プログラムは、顔検出部が撮像部から第１の静止画像を取得するステップと、第１の静止画像に含まれる複数の顔を検出し、主被写体である第１の主検出顔と、第１の主検出顔の周囲にある顔である第１の周辺顔とを、検出した顔の中から顔検出部が決定するステップと、第１の静止画像の後に作成された第２の静止画像を顔検出部が撮像部から取得するステップと、第２の静止画像に含まれる複数の顔を検出し、第１の周辺顔に対応する第２の周辺顔を検出した顔の中から顔検出部が決定するステップと、第１の周辺顔と第１の主検出顔との位置関係と、第２の周辺顔の位置とに基づいて第２の静止画像から第２の主検出顔を顔検出部が検出するステップとを備えることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、画像に含まれる被写体を的確に追尾可能な撮像装置、被写体追尾方法、及び被写体追尾プログラムを得る。
【図面の簡単な説明】
【００１７】
【図１】撮像装置を概略的に示したブロック図である。
【図２】１フレーム過去に撮像された画像を概略的に示した図である。
【図３】現在撮像された画像を概略的に示した図である。
【図４】１フレーム過去に撮像された画像を概略的に示した図である。
【図５】現在撮像された画像を概略的に示した図である。
【図６】１フレーム過去に撮像された画像を概略的に示した図である。
【図７】現在撮像された画像を概略的に示した図である。
【図８】顔検出処理を示したフローチャートである。
【図９】主検出顔決定処理を示したフローチャートである。
【図１０】顔判定処理を示したフローチャートである。
【図１１】第１の主検出顔検出処理を示したフローチャートである。
【図１２】第２の主検出顔検出処理を示したフローチャートである。
【図１３】第３の主検出顔検出処理を示したフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明における撮像装置であるデジタルカメラ１００について添付図面を参照して説明する。まず、図１を用いてデジタルカメラ１００の構成について説明する。
【００１９】
デジタルカメラ１００は、カメラ本体１１０及び撮影レンズ１５０を有する。撮影レンズ１５０は着脱自在にカメラ本体１１０と取り付けられる。
【００２０】
カメラ本体１１０は、ＣＣＤユニットから成る撮像部１１１、撮像部１１１に接続されるＤＳＰ１１２、ＤＳＰ１１２から各種情報を受信して記憶する第１のメモリ１１３と、ＤＳＰ１１２に接続される主検出顔判断部１１４と、主検出顔判断部１１４から各種情報を受信して記憶する第２のメモリ１１５と、主検出顔判断部１１４に接続される顔追尾部１１６と、顔追尾部１１６から受信した情報を表示するモニター１１７と、顔追尾部１１６から受信した信号に応じて撮影レンズ１５０に信号を送信するＡＦ部１１８とを主に備える。ＤＳＰ１１２、第１のメモリ１１３、主検出顔判断部１１４、及び第２のメモリ１１５が顔検出部を主に構成する。
【００２１】
デジタルカメラ１００の動作を概略的に説明する。撮影レンズ１５０は撮像部１１１に被写体像を結像させ、撮像部１１１は被写体像を撮像して、例えば約２４ｆｐｓの周期で静止画像を連続的に出力する。撮像部１１１が出力した時間順に静止画像を第ｎの静止画像、第ｎ＋１の静止画像（ｎは整数）と呼ぶ。ＤＳＰ１１２は、第ｎの静止画像を受信して、第ｎの静止画像に含まれる顔を全て検出する。そして、検出した顔の１つ１つにＩＤを割り当て、検出した顔から主被写体である主検出顔を１つ決定するとともに、主検出顔の周囲にある顔を周辺顔として決定する。そして、周辺顔及び主検出顔のＩＤ、並びに周辺顔及び主検出顔の傾き、特徴、及び静止画像内の座標等の顔情報を第１のメモリ１１３が記憶する。静止画像を受信する都度、ＤＳＰ１１２は顔の検出、ＩＤ割り当て、並びに主検出顔及び周辺顔の決定を繰り返し、第１のメモリ１１３はＩＤ及び顔情報を静止画像と関連付けながら記憶して蓄積することを繰り返す。ＤＳＰ１１２は、第ｎの静止画像において検出した顔を、新たに受信した第ｎ＋１の静止画像において再度検出し、同じＩＤを割り当てる。つまり第ｎ＋１の静止画像では、第ｎの静止画像で検出した顔と同じ顔に、同じＩＤを割り当てる。これらの処理は、第１のメモリ１１３が記憶しているＩＤ及び顔情報に基づいて行われる。さらに、ＤＳＰ１１２は、主検出顔にピントを併せるようにＡＦ部１１８に指示を出し、かつ主検出顔に露出を合わせる。顔追尾部１１６は、静止画像内における周辺顔及び主検出顔の座標をＤＳＰ１１２から受信し、静止画像に含まれる周辺顔及び主検出顔に枠を表示した枠付き静止画像をモニター１１７に送信する。モニター１１７は、枠付き静止画像を表示する。これにより、ユーザは、モニター１１７に表示された枠付き静止画像を参照して、デジタルカメラ１００がどの顔を主検出顔として認識しているかを知ることができる。
【００２２】
しかし、第ｎの静止画像で検出した顔と同じ顔に、第ｎ＋１の静止画像で同じＩＤを割り当てることができない場合がある。例えば、顔が閾値以上に傾いた場合、被写体の動きが大きい場合、さらに目の位置に基づいて顔を検出する構成では、被写体が目をつぶった場合、ＤＳＰ１１２が別の顔と判断することがある。この場合ＤＳＰ１１２は、第ｎの静止画像で検出した顔と違う顔であると判断して、第ｎの静止画像で検出した顔とは異なるＩＤを、第ｎ＋１の静止画像で検出した顔に割り当てる。これにより、ＤＳＰ１１２は、同じ顔であるにもかかわらず、異なる顔として認識することになる。そのため、主検出顔を異なる顔として認識した場合、ＤＳＰ１１２が主検出顔を検出できず、つまり主検出顔を見失って、ＡＦ部１１８は主検出顔にピントを合わせることができなくなり、顔追尾部１１６は主検出顔に枠を表示できなくなる。そこで主検出顔判断部１１４が、第ｎの静止画像における周辺顔と主検出顔の位置関係を利用して、第ｎ＋１の静止画像において主検出顔を検出する。主検出顔判断部１１４は、静止画像における周辺顔及び主検出顔のＩＤ及び顔情報を、静止画像ごとにＤＳＰ１１２から受信し、周辺顔及び主検出顔のＩＤ及び顔情報に基づいて第１から第３の主検出顔検出処理により主検出顔を検出する。
【００２３】
第１の主検出顔検出処理の概略について、図２及び３を用いて説明する。前述のように、第１の主検出顔検出処理は、ＤＳＰ１１２が主検出顔を見失ったときに主検出顔判断部１１４が主検出顔を検出する処理である。
【００２４】
まず、第１の主検出顔検出処理を実行する前の状態について図２を用いて説明する。図２は、第ｎの静止画像２０を示す。ＤＳＰ１１２は、第ｎの静止画像２０から９つの顔を検出し、左上から右下に向けて順に１から９までのＩＤを割り当てている。そして、９つの顔の真ん中に位置する顔を主検出顔として決定している。すなわち、図２ではＩＤ５が割り当てられた顔が主検出顔２５である。次に、ＤＳＰ１１２は、主検出顔２５の周囲にある顔を周辺顔として決定する。つまり図２では、ＩＤ１−４、６−９が割り当てられた顔が周辺顔２１−２４、２６−２９である。
【００２５】
次に、ＤＳＰ１１２が主検出顔２５を見失ったときの状態について図３を用いて説明する。図３は、第ｎ＋１の静止画像３０を示す。ＤＳＰ１１２は第ｎ＋１の静止画像３０において顔３１−３９を検出している。ＤＳＰ１１２は、周辺顔３１−３４、３６−３９が周辺顔２１−２４、２６−２９と同じ顔であると判断して、第ｎの静止画像２０における周辺顔２１−２４、２６−２９のＩＤと同じＩＤを周辺顔３１−３４、３６−３９にそれぞれ割り当てる。しかし、顔３５が閾値以上に傾いているため、ＤＳＰ１１２は、第ｎの静止画像２０の主検出顔２５が顔３５と違う顔であると判断して、第ｎの静止画像２０で割り当てたＩＤ５とは異なるＩＤ１０を、顔３５に割り当てる。そのため、ＤＳＰ１１２は第ｎ＋１の静止画像３０において主検出顔２５を検出できず、主検出顔２５を見失っている。そこで、周辺顔との位置関係を用いて主検出顔判断部１１４が主検出顔を検出する。
【００２６】
主検出顔判断部１１４による主検出顔の検出を概略的に説明すると、主検出顔判断部１１４は、第ｎの静止画像２０において主検出顔２５を囲む周辺顔２２、２４、２６、２８と同じＩＤを持つ周辺顔を第ｎ＋１の静止画像３０において見つけ出す。そして、見つけ出した周辺顔に囲まれている顔を主検出顔として決定する。この処理を以下に詳細に説明する。
【００２７】
まず、主検出顔判断部１１４は、第ｎの静止画像２０で主検出顔２５を囲む周辺顔２２、２４、２６、２８と同じＩＤを持つ周辺顔３２、３４、３６、３８を第ｎ＋１の静止画像３０で見つける。ここで主検出顔２５を囲む周辺顔とは、主検出顔２５の左にある周辺顔２２、上にある周辺顔２４、下にある周辺顔２６、そして右にある周辺顔２８である。次に、周辺顔３２、３４、３６、３８に囲まれた、すなわち周辺顔３２の右、周辺顔３４の下、周辺顔３６の上、かつ周辺顔３８の左にある顔３５を主検出顔３５として決定する。すなわち、図３においてＩＤ１０が付けられた顔１０を主検出顔３５として検出する。そして、顔追尾部１１６及びＡＦ部１１８に、主検出顔３５のＩＤ及び顔情報を送信する。これにより、ＡＦ部１１８は主検出顔にピントを合わせることができ、顔追尾部１１６は主検出顔に枠を表示できる。
【００２８】
第２の主検出顔検出処理の概略について、図４及び５を用いて説明する。第２の主検出顔検出処理は、ＤＳＰ１１２が主検出顔を見失ったときに主検出顔判断部１１４が主検出顔を検出する処理である。第１の主検出顔検出処理は、第ｎの静止画像４０と第ｎ＋１の静止画像５０で検出された顔は同じ数であるときに主検出顔を検出するのに対し、第２の主検出顔検出処理は、第ｎの静止画像４０で検出された顔の数よりも第ｎ＋１の静止画像で検出された顔の数が多いときに主検出顔を検出する。
【００２９】
まず、第２の主検出顔検出処理を実行する前の状態について図４を用いて説明する。図４は、第ｎの静止画像４０を示す。ＤＳＰ１１２は、第ｎの静止画像４０から６つの顔を検出し、左上から右下に向けて順に４から９までのＩＤを割り当てている。そして、６つの顔のうち、最も画像の中心に位置する顔を主検出顔として決定している。すなわち、図４ではＩＤ５が割り当てられた顔が主検出顔４５である。次に、ＤＳＰ１１２は、主検出顔４５の周囲にある顔を周辺顔として決定する、つまり図４では、ＩＤ４、６−９が割り当てられた顔が周辺顔４４、４６−４９である。
【００３０】
次に、ＤＳＰ１１２が主検出顔４５を見失ったときの状態について図５を用いて説明する。図５は、第ｎ＋１の静止画像５０を示す。第ｎ＋１の静止画像５０は、第ｎの静止画像４０の次に撮像部１１１が撮像した画像である。ＤＳＰ１１２は第ｎ＋１の静止画像５０において顔５１−５９を検出している。ＤＳＰ１１２は、周辺顔５４、５６−５９が周辺顔４４、４６−４９と同じ顔であると判断して、第ｎの静止画像４０における周辺顔４４、４６−４９のＩＤと同じＩＤを周辺顔５４、５６−５９にそれぞれ割り当てる。しかし、顔５５が閾値以上に傾いているため、ＤＳＰ１１２は、第ｎの静止画像４０の主検出顔４５が顔５５と違う顔であると判断して、第ｎの静止画像４０で割り当てたＩＤ５とは異なるＩＤ１０を、顔５５に割り当てる。そのため、ＤＳＰ１１２は第ｎ＋１の静止画像５０において主検出顔４５を検出できず、主検出顔４５を見失っている。そこで、周辺顔との位置関係を用いて主検出顔判断部１１４が主検出顔４５を検出する。
【００３１】
主検出顔判断部１１４による主検出顔４５の検出を概略的に説明する。主検出顔判断部１１４は、まず、第ｎの静止画像４０において主検出顔４５を囲む周辺顔４４、４６、４８と同じＩＤを持つ周辺顔を第ｎ＋１の静止画像５０において見つけ出す。そして、見つけ出した周辺顔に囲まれている顔を主検出顔４５として決定する。つまり、第２の主検出顔検出処理は、第ｎ＋１の静止画像５０において新たに検知した顔を用いずに主検出顔４５を検出する。以下に、この処理について詳細に説明する。
【００３２】
まず、主検出顔判断部１１４は、第ｎの静止画像４０で主検出顔４５を囲む周辺顔４４、４６、４８と同じＩＤを持つ周辺顔５４、５６、５８を第ｎ＋１の静止画像５０で見つける。ここで主検出顔４５を囲む周辺顔とは、主検出顔４５の上にある周辺顔５４、下にある周辺顔５６、そして右にある周辺顔５８である。次に、周辺顔５４、５６、５８に囲まれた、すなわち周辺顔５４の下、周辺顔５６の上、かつ周辺顔５８の左にある顔５５を主検出顔５５として決定する。すなわち、図５においてＩＤ１０が付けられた顔５５を主検出顔５５として検出する。そして、顔追尾部１１６及びＡＦ部１１８に、主検出顔５５のＩＤ及び顔情報を送信する。これにより、ＡＦ部１１８は主検出顔４５にピントを合わせることができ、顔追尾部１１６は主検出顔４５に枠を表示できる。
【００３３】
次に、第３の主検出顔検出処理の概略について、図６及び７を用いて説明する。第３の主検出顔検出処理は、ＤＳＰ１１２が主検出顔４５を見失ったときに主検出顔判断部１１４が主検出顔４５を検出する処理である。これまで説明した第１及び第２の主検出顔検出処理は、第ｎの静止画像２０、４０で検出された顔の数が第ｎ＋１の静止画像３０、５０のそれと同じ、あるいは多い場合に主検出顔４５を検出するが、第３の主検出顔検出処理は、第ｎの静止画像６０で検出された顔の数よりも第ｎ＋１の静止画像７０で検出された顔の数が少ないときに主検出顔４５を検出する。
【００３４】
まず、第３の主検出顔検出処理を実行する前の状態について図６を用いて説明する。図６は、第ｎの静止画像６０を示す。ＤＳＰ１１２は、第ｎの静止画像６０から９つの顔を検出し、左上から右下に向けて順に１から９までのＩＤを割り当てている。そして、９つの顔のうち、最も画像の中心に位置する顔を主検出顔６５として決定している。すなわち、図６ではＩＤ５が割り当てられた顔が主検出顔６５である。次に、ＤＳＰ１１２は、主検出顔６５の周囲にある顔を周辺顔として決定する、つまり図６では、ＩＤ１−４、６−９が割り当てられた顔が周辺顔６１−６４、６６−６９である。
【００３５】
次に、ＤＳＰ１１２が主検出顔４５を見失ったときの状態について図７を用いて説明する。図７は、第ｎ＋１の静止画像７０を示す。第ｎ＋１の静止画像７０は、第ｎの静止画像６０の次に撮像部１１１が撮像した画像である。ＤＳＰ１１２は第ｎ＋１の静止画像７０において顔７１、７３−７９を検出している。ＤＳＰ１１２は、周辺顔７１、７３、７４、７６−５９は周辺顔６１、６３、６４、６６−６９と同じ顔であると判断して、第ｎの静止画像６０における周辺顔６１、６３、６４、６６−６９のＩＤと同じＩＤを周辺顔７１、７３、７４、７６−５９にそれぞれ割り当てる。一方、顔７５が閾値以上に傾いているため、ＤＳＰ１１２は、第ｎの静止画像６０の主検出顔６５が顔７５と違う顔であると判断して、第ｎの静止画像６０で割り当てたＩＤ５とは異なるＩＤ１０を、顔７５に割り当てる。そのため、ＤＳＰ１１２は第ｎ＋１の静止画像７０において主検出顔４５を検出しておらず、主検出顔４５を見失っている。そこで、周辺顔との位置関係を用いて主検出顔判断部１１４が主検出顔４５を検出する。
【００３６】
主検出顔判断部１１４による主検出顔４５の検出を概略的に説明する。主検出顔判断部１１４は、まず、第ｎの静止画像６０において主検出顔６５を囲む周辺顔６２、６４、６６、６８と同じＩＤを持つ周辺顔を第ｎ＋１の静止画像７０において見つけ出す。そして、見つけ出した周辺顔７４、７６、７８に囲まれている顔を主検出顔７５として決定する。つまり、第３の主検出顔検出処理は、第ｎ＋１の静止画像７０において検知されなかった周辺顔と主検出顔４５との位置関係を把握し、この位置関係にある周辺顔を用いずに主検出顔４５を検出する。以下に、この処理について詳細に説明する。以下に、この処理について詳細に説明する。
【００３７】
まず、主検出顔判断部１１４は、第ｎの静止画像６０において主検出顔６５を囲む周辺顔６２、６４、６６、６８と同じＩＤを持つ周辺顔７４、７６、７８を第ｎ＋１の静止画像７０で見つける。ここで主検出顔６５を囲む周辺顔とは、主検出顔６５の左にある周辺顔６２、上にある周辺顔６４、下にある周辺顔６６、そして右にある周辺顔６８である。次に、周辺顔７４、７６、７８に囲まれた、すなわち周辺顔７４の下、周辺顔７６の上、かつ周辺顔７８の左にある顔７５を主検出顔７５として決定する。すなわち、図７においてＩＤ１０が付けられた顔７５を主検出顔７５として検出する。そして、顔追尾部１１６及びＡＦ部１１８に、主検出顔７５のＩＤ及び顔情報を送信する。これにより、ＡＦ部１１８は主検出顔４５にピントを合わせることができ、顔追尾部１１６は主検出顔４５に枠を表示できる。
【００３８】
次に、図８を用いて、顔検出処理について説明する。顔検出処理は、主検出顔を追尾する処理であって、デジタルカメラ１００が主検出顔を追尾する撮影モードにあるとき主にＤＳＰ１１２及び主検出顔判断部１１４によって反復実行される処理である。以下に、第ｎ＋１の静止画像に対して実行される顔検出処理について説明する。第ｎの静止画像に対する顔検出処理は既に実行済みである。
【００３９】
まず、ステップＳ８１において、後述する主検出顔決定処理を実行する。主検出顔決定処理は検出した顔の中から主検出顔を決定する処理であって、第ｎ＋１の静止画像から主検出顔を検出する。
【００４０】
次にステップＳ８２では、第ｎの静止画像において検出された主検出顔のＩＤと、第ｎ＋１の静止画像において検出された主検出顔のＩＤとが、同じであるか否かを判断する。同じである場合、処理はステップＳ８３に進み、同じでない場合、処理はステップＳ８４に進む。
【００４１】
ステップＳ８３では、主検出顔のＩＤが同じであるために顔追尾が成功したと判断し、主検出顔の上下左右にある周辺顔のＩＤと主検出顔のＩＤとを第２のメモリ１１５に保存する。そして処理を終了する。
【００４２】
ステップＳ８４では、第ｎ＋１の静止画像において検出された顔の中に、第ｎの静止画像における主検出顔のＩＤと同じＩＤを持つ顔があるか否かを判断する。同じＩＤを持つ顔がある場合、処理はステップＳ８５に進み、同じＩＤを持つ顔がない場合、処理はステップＳ８６に進む。
【００４３】
ステップＳ８５では、第ｎの静止画像における主検出顔のＩＤと同じＩＤを持つ顔を、第ｎ＋１の静止画像における主検出顔として決定する。そして、前述のステップＳ８３に進む。
【００４４】
ステップＳ８６では、後述する顔判定処理を実行する。顔判定処理は、ＤＳＰ１１２が主検出顔を見失ったときに実行する処理であって、第ｎ＋１の静止画像から主検出顔を検出する。
【００４５】
ステップＳ８７では、顔判定処理で主検出顔が検出できたか否かを判断する。主検出顔を検出できた場合、処理はステップＳ８５に進み、検出した顔を主検出顔として決定する。主検出顔を検出できない場合、処理はステップＳ８８に進む。
【００４６】
ステップＳ８８では、顔追尾が失敗したと判断して、第ｎの静止画像において検出された主検出顔の上下左右にある周辺顔のＩＤと主検出顔のＩＤとを第２のメモリ１１５に保存する。そして処理を終了する。
【００４７】
次に、図９を用いて、主検出顔決定処理について説明する。主検出顔決定処理は、検出した顔の中から主検出顔を決定する処理であって、顔検出処理のステップＳ８１において主に主検出顔判断部１１４により実行される。以下に、第ｎ＋１の静止画像に対して実行される主検出顔決定処理について説明する。第ｎの静止画像に対する主検出顔決定処理は既に実行済みである。
【００４８】
主検出顔決定処理は、前回検出した、つまり第ｎの静止画像で検出した主検出顔と、第ｎ＋１の静止画像に含まれる全ての顔とを比較して、前回検出した顔に最も近似する顔を主検出顔として決定する。顔の比較は、静止画像における顔の大きさ、位置、角度、目の位置を考慮して行われる。より詳細に説明すると、静止画像における顔の大きさ、位置、角度、目の位置に関して近似する度合いを評価し、近似する度合いに応じて評価値を算出する。そして、顔の大きさ、位置、角度、目の位置に関して算出された評価値を合計する。この合計値が最も高い顔を主検出顔として決定する。以下、主検出顔決定処理について詳細に説明する。
【００４９】
まず、ステップＳ９１において、第ｎ＋１の静止画像に含まれる全ての顔についてステップＳ９２からＳ１００における処理を実行したか否かを判断する。全ての顔についてこれらの処理を実行した場合、処理は終了する。実行していない場合、処理を実行していない顔に対してステップＳ９２からＳ１００の処理を実行する。
【００５０】
ステップＳ９２では、第ｎ＋１の静止画像に占める顔の大きさと第ｎの静止画像に占める主検出顔の大きさとの差が所定範囲内にあるかについて判断する。所定範囲内にある場合、処理はステップＳ９３に進み、サイズ用評価値に所定の数を加える。所定範囲内にない場合、処理はステップＳ９４に進む。
【００５１】
ステップＳ９４では、第ｎ＋１の静止画像における顔の位置と第ｎの静止画像における主検出顔の位置との距離が所定範囲内にあるかについて判断する。所定範囲内にある場合、処理はステップＳ９５に進み、距離用評価値に所定の数を加える。所定範囲内にない場合、処理はステップＳ９６に進む。
【００５２】
ステップＳ９６では、第ｎ＋１の静止画像における顔の傾きと第ｎの静止画像における主検出顔の傾きとの差が所定範囲内にあるかについて判断する。所定範囲内にある場合、処理はステップＳ９７に進み、角度用評価値に所定の数を加える。所定範囲内にない場合、処理はステップＳ９８に進む。
【００５３】
ステップＳ９８では、第ｎ＋１の静止画像における顔の目の位置と第ｎの静止画像における主検出顔の目の位置との差が所定範囲内にあるかについて判断する。所定範囲内にある場合、処理はステップＳ９９に進み、目用評価値に所定の数を加える。所定範囲内にない場合、処理はステップＳ１００に進む。
【００５４】
ステップＳ１００では、サイズ用評価値、距離用評価値、角度用評価値、及び目用評価値を合計して得られる合計評価値が、第ｎ＋１の静止画像において合計評価値を算出した顔の中で最も大きいか否かを判断する。最も大きい場合、処理はステップＳ１０１に進み、現在、合計評価値を算出した顔を主検出顔と決定して、現在、合計評価値を算出した顔のＩＤに主検出顔のＩＤを変更する。最も大きくない場合、処理はステップＳ９１に戻る。
【００５５】
次に、図２、３、及び１０を用いて、顔判定処理について説明する。顔判定処理は、第ｎ＋１の静止画像３０において検出された顔の中に、第ｎの静止画像２０における主検出顔４５のＩＤと同じＩＤを持つ顔がない場合、すなわちＤＳＰ１１２が主検出顔４５を見失ったときに実行される処理であって、第ｎ＋１の静止画像３０から主検出顔４５を検出する処理である。顔検出処理のステップＳ８６において主に主検出顔判断部１１４により実行される。以下に、第ｎ＋１の静止画像３０に対して実行される顔判定処理について説明する。第ｎの静止画像２０において主検出顔４５は既に決定済みである。
【００５６】
顔判定処理では、まず、第ｎ＋１の静止画像３０に含まれる顔が、前回検出した、つまり第ｎの静止画像２０で検出した顔と同じＩＤを持つかを判断する。そして、同じＩＤを持つ顔の数の増減に応じて、第１から第３の主検出顔検出処理を実行する。以下、主検出顔決定処理について詳細に説明する。なお、前述したように、図２は第ｎの静止画像２０を示し、図３は第ｎ＋１の静止画像３０を示す。
【００５７】
まず、ステップＳ１００１において、第ｎ＋１の静止画像３０に含まれる全ての顔についてステップＳ１００２からＳ１００９における処理を実行したか否かを判断する。全ての顔についてこれらの処理を実行している場合、処理はステップＳ１０１０に進む。実行していない場合、処理を実行していない顔に対してステップＳ１００２からＳ１００９の処理を実行する。
【００５８】
ステップＳ１００２では、現在判定している顔のＩＤが、第ｎの静止画像２０における主検出顔２５の上にある周辺顔のＩＤと同じであるか否かを判断する。同じである場合、処理はステップＳ１００３に進み、同じでない場合、処理はステップＳ１００４に進む。すなわち図３における顔３１が現在判定している顔であるとすると、顔３１のＩＤ１が、第ｎ＋１の静止画像３０における主検出顔２５の上にある周辺顔２４のＩＤ４と同じであるか否かを判断する。この場合、ＩＤが異なるため、処理はステップＳ１００４に進む。あるいは、図３における顔３４が現在判定している顔であるとすると、顔３４のＩＤ４は、第ｎ＋１の静止画像３０における周辺顔２４のＩＤ４と同じであるため、処理はステップＳ１００３に進む。
【００５９】
ステップＳ１００３では、現在判定している顔の垂直方向に対する座標を第２のメモリ１１５に記憶する。記憶した座標を上方向座標と呼ぶ。図３における顔３４が現在判定している顔であるとすると、顔３４の垂直方向の座標を第２のメモリ１１５に記憶する。そして、処理はステップＳ１００１に戻る。
【００６０】
ステップＳ１００４では、現在判定している顔のＩＤが、第ｎの静止画像２０における主検出顔２５の下にある周辺顔のＩＤと同じであるか否かを判断する。同じである場合、処理はステップＳ１００５に進み、同じでない場合、処理はステップＳ１００６に進む。すなわち図３における顔３１が現在判定している顔であるとすると、顔３１のＩＤ１が、第ｎの静止画像２０における主検出顔２５の下にある周辺顔２６のＩＤ６と同じであるか否かを判断する。この場合、ＩＤが異なるため、処理はステップＳ１００６に進む。あるいは、図３における顔３６が現在判定している顔であるとすると、顔３６のＩＤ６は、第ｎの静止画像２０における周辺顔２６のＩＤ６と同じであるため、処理はステップＳ１００５に進む。
【００６１】
ステップＳ１００５では、現在判定している顔の垂直方向に対する座標を第２のメモリ１１５に記憶する。記憶した座標を下方向座標と呼ぶ。図３における顔３６が現在判定している顔であるとすると、顔３６の垂直方向の座標を第２のメモリ１１５に記憶する。そして、処理はステップＳ１００１に戻る。
【００６２】
ステップＳ１００６では、現在判定している顔のＩＤが、第ｎの静止画像２０における主検出顔２５の左にある周辺顔のＩＤと同じであるか否かを判断する。同じである場合、処理はステップＳ１００７に進み、同じでない場合、処理はステップＳ１００８に進む。すなわち図３における顔３１が現在判定している顔であるとすると、顔３１のＩＤ１が、第ｎの静止画像２０における主検出顔２５の左にある周辺顔２２のＩＤ２と同じであるか否かを判断する。この場合、ＩＤが異なるため、処理はステップＳ１００８に進む。あるいは、図３における顔３２が現在判定している顔であるとすると、顔３２のＩＤ２は、第ｎの静止画像２０における周辺顔２２のＩＤ２と同じであるため、処理はステップＳ１００７に進む。
【００６３】
ステップＳ１００７では、現在判定している顔の水平方向に対する座標を第２のメモリ１１５に記憶する。記憶した座標を左方向座標と呼ぶ。図３における顔３２が現在判定している顔であるとすると、顔３２の水平方向の座標を第２のメモリ１１５に記憶する。そして、処理はステップＳ１００１に戻る。
【００６４】
ステップＳ１００８では、現在判定している顔のＩＤが、第ｎの静止画像２０における主検出顔２５の右にある周辺顔のＩＤと同じであるか否かを判断する。同じである場合、処理はステップＳ１００９に進み、同じでない場合、処理はステップＳ１００１に戻る。すなわち図３における顔３１が現在判定している顔であるとすると、顔３１のＩＤ１が、第ｎの静止画像２０における主検出顔２５の右にある周辺顔２８のＩＤ８と同じであるか否かを判断する。この場合、ＩＤが異なるため、処理はステップＳ１００１に戻る。あるいは、図３における顔３８が現在判定している顔であるとすると、顔３８のＩＤ８は、第ｎの静止画像２０における周辺顔２８のＩＤ８と同じであるため、処理はステップＳ１００９に進む。
【００６５】
ステップＳ１００９では、現在判定している顔の水平方向に対する座標を第２のメモリ１１５に記憶する。記憶した座標を右方向座標と呼ぶ。図３における顔３８が現在判定している顔であるとすると、顔３８の水平方向の座標を第２のメモリ１１５に記憶する。そして、処理はステップＳ１００１に戻る。
【００６６】
ステップＳ１００１からＳ１００９を繰り返すことにより、第ｎ＋１の静止画像３０における周辺顔とその位置を検出することができる。
【００６７】
ステップＳ１０１０では、第ｎの静止画像２０に含まれる周辺顔の状態と、第ｎ＋１の静止画像３０に含まれる周辺顔の状態とを比較する。第ｎの静止画像２０の主検出顔２５の上下左右全てに周辺顔が存在し、かつそれらの周辺顔全てが、第ｎ＋１の静止画像３０に存在するとき、処理はステップＳ１０１１に進む。このとき、第ｎの静止画像２０に含まれる周辺顔の数と、第ｎ＋１の静止画像３０に含まれる周辺顔の数とが同じである。ステップＳ１０１１では、第１の主検出顔検出処理を実行する。
【００６８】
ステップＳ１０１０において、第ｎの静止画像２０の主検出顔２５の上下左右のいずれかに周辺顔が存在しないとき、処理はステップＳ１０１２に進む。このとき、第ｎの静止画像２０に含まれる周辺顔の数よりも、第ｎ＋１の静止画像３０に含まれる周辺顔の数の方が多くなる。ステップＳ１０１２では、第２の主検出顔検出処理を実行する。
【００６９】
ステップＳ１０１０において、第ｎの静止画像２０の主検出顔２５の上下左右全てに周辺顔が存在し、かつそれらの周辺顔のうち１以上の周辺顔が第ｎ＋１の静止画像３０に存在しないとき、処理はステップＳ１０１３に進む。このとき、第ｎの静止画像２０に含まれる周辺顔の数よりも、第ｎ＋１の静止画像３０に含まれる周辺顔の数の方が少ない。ステップＳ１０１３では、第３の主検出顔検出処理を実行する。
【００７０】
そして、ステップＳ１０１１、Ｓ１０１２、及びＳ１０１３を実行した後に、処理が終了する。
【００７１】
顔判定処理を実行することにより、静止画像から主検出顔を検出することができる。
【００７２】
次に、図２、３、１１を用いて、第１の主検出顔検出処理について詳細に説明する。前述のように、第１の主検出顔検出処理は、ＤＳＰ１１２が主検出顔を見失ったときに主検出顔判断部１１４が主検出顔を検出する処理であって、第ｎの静止画像２０で検出された顔の数と第ｎ＋１の静止画像３０で検出された顔の数とが同じ数であるときに主検出顔３５を検出する処理である。
【００７３】
まず、ステップＳ１１０１において、第ｎ＋１の静止画像３０に含まれる全ての顔についてステップＳ１１０２からＳ１１０５における処理を実行したか否かを判断する。全ての顔についてこれらの処理を実行している場合、処理はステップＳ１１０７に進む。実行していない場合、処理を実行していない顔に対してステップＳ１１０２からＳ１１０５の処理を実行する。
【００７４】
ステップＳ１１０２では、現在判定している顔の垂直方向における座標が、前回の静止画像、つまり第ｎの静止画像２０において検出した上方向座標よりも下にあるか否かを判断する。下にある場合、処理はステップＳ１１０３に進み、下にない場合、処理はステップＳ１１０１に戻る。図３における顔３１が現在判定している顔であるとすると、顔３１の垂直方向における座標が、第ｎの静止画像２０における周辺顔２４の垂直方向における座標と略同じ垂直位置にあって下にないため、処理はステップＳ１１０１に戻る。あるいは、図３における顔３５が現在判定している顔であるとすると、顔３５は周辺顔２４よりも下にあるため、処理はステップＳ１１０３に進む。
【００７５】
ステップＳ１１０３では、現在判定している顔の垂直方向における座標が、第ｎの静止画像２０において検出した下方向座標よりも上にあるか否かを判断する。上にある場合、処理はステップＳ１１０４に進み、上にない場合、処理はステップＳ１１０１に戻る。図３における顔３３が現在判定している顔であるとすると、顔３３の垂直方向における座標が、第ｎの静止画像２０における周辺顔２６の垂直方向における座標と略同じ垂直位置にあって上にないため、処理はステップＳ１１０１に戻る。あるいは、図３における顔３５が現在判定している顔であるとすると、顔３５は周辺顔２４よりも上にあるため、処理はステップＳ１１０４に進む。
【００７６】
ステップＳ１１０４では、現在判定している顔の水平方向における座標が、第ｎの静止画像２０において検出した左方向座標よりも右にあるか否かを判断する。右にある場合、処理はステップＳ１１０５に進み、右にない場合、処理はステップＳ１１０１に戻る。図３における顔３３が現在判定している顔であるとすると、顔３３の水平方向における座標が、第ｎの静止画像２０における周辺顔２２の水平方向における座標と略同じ水平位置にあって右にないため、処理はステップＳ１１０１に戻る。あるいは、図３における顔３５が現在判定している顔であるとすると、顔３５は周辺顔２４よりも右にあるため、処理はステップＳ１１０５に進む。
【００７７】
ステップＳ１１０５では、現在判定している顔の水平方向における座標が、第ｎの静止画像２０において検出した右方向座標よりも左にあるか否かを判断する。左にある場合、処理はステップＳ１１０６に進み、左にない場合、処理はステップＳ１１０１に戻る。図３における顔３９が現在判定している顔であるとすると、顔３９の水平方向における座標が、第ｎの静止画像２０における周辺顔２８の水平方向における座標と略同じ水平位置にあって左にないため、処理はステップＳ１１０１に戻る。あるいは、図３における顔３５が現在判定している顔であるとすると、顔３５は周辺顔２４よりも左にあるため、処理はステップＳ１１０６に進む。
【００７８】
ステップＳ１１０６では、主検出顔４５を検出したというフラグを立てて処理を終了する。また、ステップＳ１１０７では、主検出顔４５を検出できなかったというフラグを立てて処理を終了する。
【００７９】
第１の主検出顔検出処理を実行することにより、主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【００８０】
次に、図４、５、１２を用いて、第２の主検出顔検出処理について詳細に説明する。前述のように、第２の主検出顔検出処理は、ＤＳＰ１１２が主検出顔を見失ったときに主検出顔判断部１１４が主検出顔を検出する処理であって、第ｎの静止画像４０で検出された顔の数よりも第ｎ＋１の静止画像５０で検出された顔の数が多いときに主検出顔を検出する処理である。
【００８１】
まず、ステップＳ１２０１において、第ｎ＋１の静止画像５０に含まれる全ての顔についてステップＳ１２０２からＳ１２０５における処理を実行したか否かを判断する。全ての顔についてこれらの処理を実行している場合、処理はステップＳ１２０７に進む。実行していない場合、処理を実行していない顔に対してステップＳ１２０２からＳ１２０５の処理を実行する。
【００８２】
ステップＳ１２０２では、現在判定している顔の垂直方向における座標が、前回の静止画像、つまり第ｎの静止画像４０において検出した上方向座標よりも下にあるか、かつ第ｎの静止画像４０において主検出顔４５の上方向に顔を検出できなかったかを判断する。第２のメモリ１１５に第ｎの静止画像４０における上方向座標が記憶されていない場合、第ｎの静止画像４０において主検出顔４５の上方向に顔を検出できなかったと判断する。上方向座標よりも下にあり、かつ上方向に顔を検出できなかった場合に、処理はステップＳ１２０３に進み、いずれか一方、あるいは双方に該当しない場合、処理はステップＳ１２０１に戻る。図５における顔５１が現在判定している顔であるとすると、第ｎの静止画像４０において主検出顔４５の上方向に顔を検出できているが、顔５１の垂直方向における座標が、第ｎの静止画像４０における周辺顔４４の上方向座標と略同じ垂直位置にあって下にないため、処理はステップＳ１２０１に戻る。あるいは、図５における顔５５が現在判定している顔であるとすると、顔５５は周辺顔４４よりも下にあり、かつ第ｎの静止画像４０において主検出顔４５の上方向に周辺顔４４を検出できているため、処理はステップＳ１２０３に進む。
【００８３】
ステップＳ１２０３では、現在判定している顔の垂直方向における座標が、第ｎの静止画像４０において検出した下方向座標よりも上にあるか、かつ第ｎの静止画像４０において主検出顔４５の下方向に顔を検出できなかったかを判断する。第２のメモリ１１５に第ｎの静止画像４０における下方向座標が記憶されていない場合、第ｎの静止画像４０において主検出顔４５の下方向に顔を検出できなかったと判断する。下方向座標よりも上にあり、かつ下方向に顔を検出できなかった場合に、処理はステップＳ１２０４に進み、いずれか一方、あるいは双方に該当しない場合、処理はステップＳ１２０１に戻る。図５における顔５９が現在判定している顔であるとすると、第ｎの静止画像４０において主検出顔４５の下方向に顔を検出できているが、顔５９の垂直方向における座標が、第ｎの静止画像４０における周辺顔４６の下方向座標よりも垂直方向上にないため、処理はステップＳ１２０１に戻る。あるいは、図５における顔５５が現在判定している顔であるとすると、顔５５は周辺顔４６よりも上にあり、かつ第ｎの静止画像４０において主検出顔４５の下方向に周辺顔４６を検出できているため、処理はステップＳ１２０４に進む。
【００８４】
ステップＳ１２０４では、現在判定している顔の水平方向における座標が、第ｎの静止画像４０において検出した左方向座標よりも右にあるか、かつ第ｎの静止画像４０において主検出顔４５の左方向に顔を検出できなかったかを判断する。第２のメモリ１１５に第ｎの静止画像４０における左方向座標が記憶されていない場合、第ｎの静止画像４０において主検出顔４５の左方向に顔を検出できなかったと判断する。左方向座標よりも右にあり、かつ左方向に顔を検出できなかった場合、処理はステップＳ１２０５に進み、いずれか一方、あるいは双方に該当しない場合、処理はステップＳ１２０１に戻る。図５における顔５２が現在判定している顔であるとすると、第ｎの静止画像４０において主検出顔４５の左方向に周辺顔を検出できていないため、顔５２の水平方向における座標が、第ｎの静止画像４０における周辺顔の左方向座標よりも右にあるか判断せずに、処理はステップＳ１２０１に戻る。図５における顔５５が現在判定している顔である場合であっても、第ｎの静止画像４０において主検出顔４５の左方向に周辺顔を検出できていないため、処理はステップＳ１２０１に戻る。
【００８５】
ステップＳ１２０５では、現在判定している顔の水平方向における座標が、第ｎの静止画像４０において検出した右方向座標よりも左にあるか、かつ第ｎの静止画像４０において主検出顔４５の右方向に顔を検出できなかったかを判断する。第２のメモリ１１５に第ｎの静止画像４０における右方向座標が記憶されていない場合、第ｎの静止画像４０において主検出顔４５の右方向に顔を検出できなかったと判断する。右方向座標よりも左にあり、かつ右方向に顔を検出できなかった場合、処理はステップＳ１２０６に進み、いずれか一方、あるいは双方に該当しない場合、処理はステップＳ１２０１に戻る。図５における顔５９が現在判定している顔であるとすると、第ｎの静止画像４０において主検出顔４５の右方向に顔を検出できているが、顔５９の水平方向における座標が、第ｎの静止画像４０における周辺顔４８の右方向座標よりも水平方向左にないため、処理はステップＳ１２０１に戻る。あるいは、図５における顔５５が現在判定している顔であるとすると、顔５５は周辺顔４８よりも右にあり、かつ第ｎの静止画像４０において主検出顔４５の右方向に周辺顔４８を検出できているため、処理はステップＳ１２０８に進む。
【００８６】
ステップＳ１２０６では、主検出顔５５を検出したというフラグを立てて処理を終了する。また、ステップＳ１２０７では、主検出顔５５を検出できなかったというフラグを立てて処理を終了する。
【００８７】
第ｎの静止画像４０において検出した周辺顔よりも多くの周辺顔を第ｎ＋１の静止画像５０において見つけた場合、新たに見つけた周辺顔と主検出顔４５との位置関係は不明である。そこで第２の主検出顔検出処理では、第ｎの静止画像４０と第ｎ＋１の静止画像５０の双方において検出できた周辺顔を使用して主検出顔４５を検出する。これにより、主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【００８８】
次に、図６、７、１３を用いて、第３の主検出顔検出処理について詳細に説明する。前述のように、第３の主検出顔検出処理は、ＤＳＰ１１２が主検出顔を見失ったときに主検出顔判断部１１４が主検出顔を検出する処理であって、第ｎの静止画像６０で検出された顔の数よりも第ｎ＋１の静止画像７０で検出された顔の数が少ないときに主検出顔を検出する。
【００８９】
まず、ステップＳ１３０１において、第ｎ＋１の静止画像７０に含まれる全ての顔についてステップＳ１３０２からＳ１３０５における処理を実行したか否かを判断する。全ての顔についてこれらの処理を実行している場合、処理はステップＳ１３０７に進む。実行していない場合、処理を実行していない顔に対してステップＳ１３０２からＳ１３０５の処理を実行する。
【００９０】
ステップＳ１３０２では、現在判定している顔の垂直方向における座標が、前回の静止画像、つまり第ｎの静止画像６０において検出した上方向座標よりも下にあるか、かつ現在判定中の静止画像４０、つまり第ｎ＋１の静止画像７０において主検出顔４５の上方向に顔を検出できなかったかを判断する。第２のメモリ１１５に第ｎ＋１の静止画像７０における上方向座標が記憶されていない場合、第ｎ＋１の静止画像７０において主検出顔４５の上方向に顔を検出できなかったと判断する。上方向座標よりも下にあり、かつ上方向に顔を検出できなかった場合に、処理はステップＳ１３０３に進み、いずれか一方、あるいは双方に該当しない場合、処理はステップＳ１３０１に戻る。図７における顔７１が現在判定している顔であるとすると、顔７１の垂直方向における座標が、第ｎの静止画像６０における周辺顔６４の上方向座標と略同じ垂直位置にあって下になく、かつ第ｎの静止画像６０において主検出顔４５の上方向に顔を検出できているため、処理はステップＳ１３０１に戻る。あるいは、図７における顔７５が現在判定している顔であるとすると、顔７５は周辺顔６４よりも下にあり、かつ第ｎの静止画像６０において主検出顔６５の上方向に周辺顔６４を検出できているため、処理はステップＳ１３０３に進む。
【００９１】
ステップＳ１３０３では、現在判定している顔の垂直方向における座標が、第ｎの静止画像６０において検出した下方向座標よりも上にあるか、かつ第ｎ＋１の静止画像７０において主検出顔７５の下方向に顔を検出できなかったかを判断する。第２のメモリ１１５に第ｎ＋１の静止画像７０における下方向座標が記憶されていない場合、第ｎ＋１の静止画像７０において主検出顔４５の下方向に顔を検出できなかったと判断する。下方向座標よりも上にあり、かつ下方向に顔を検出できなかった場合に、処理はステップＳ１３０４に進み、いずれか一方、あるいは双方に該当しない場合、処理はステップＳ１３０１に戻る。図７における顔７９が現在判定している顔であるとすると、第ｎ＋１の静止画像７０において主検出顔７５の下方向に顔を検出できているが、顔７９の垂直方向における座標が、第ｎの静止画像６０における周辺顔６６の下方向座標よりも垂直方向上にないため、処理はステップＳ１３０１に戻る。あるいは、図７における顔７５が現在判定している顔であるとすると、顔７５は周辺顔６６よりも上にあり、かつ第ｎ＋１の静止画像７０において主検出顔７５の下方向に周辺顔７６を検出できているため、処理はステップＳ１３０４に進む。
【００９２】
ステップＳ１３０４では、現在判定している顔の水平方向における座標が、第ｎの静止画像６０において検出した左方向座標よりも右にあるか、かつ第ｎ＋１の静止画像７０において主検出顔７５の左方向に顔を検出できなかったかを判断する。第２のメモリ１１５に第ｎ＋１の静止画像７０における左方向座標が記憶されていない場合、第ｎ＋１の静止画像７０において主検出顔７５の左方向に顔を検出できなかったと判断する。左方向座標よりも右にあり、かつ左方向に顔を検出できなかった場合、処理はステップＳ１３０５に進み、いずれか一方、あるいは双方に該当しない場合、処理はステップＳ１３０１に戻る。図７における顔７１が現在判定している顔であるとすると、第ｎ＋１の静止画像７０において主検出顔７５の左方向に周辺顔を検出できていないため、顔７１の水平方向における座標が、第ｎの静止画像６０における周辺顔６２の左方向座標よりも右にあるか判断せずに、処理はステップＳ１３０１に戻る。図７における顔７５が現在判定している顔である場合であっても、第ｎ＋１の静止画像７０において主検出顔７５の左方向に周辺顔を検出できていないため、処理はステップＳ１２０１に戻る。
【００９３】
ステップＳ１３０５では、現在判定している顔の水平方向における座標が、第ｎの静止画像６０において検出した右方向座標よりも左にあるか、かつ第ｎ＋１の静止画像７０において主検出顔７５の右方向に顔を検出できなかったかを判断する。第２のメモリ１１５に第ｎ＋１の静止画像７０における右方向座標が記憶されていない場合、第ｎ＋１の静止画像７０において主検出顔７５の右方向に顔を検出できなかったと判断する。右方向座標よりも左にあり、かつ右方向に顔を検出できなかった場合、処理はステップＳ１３０６に進み、いずれか一方、あるいは双方に該当しない場合、処理はステップＳ１３０１に戻る。図７における顔７９が現在判定している顔であるとすると、第ｎ＋１の静止画像７０において主検出顔７５の右方向に顔を検出できているが、顔７９の水平方向における座標が、第ｎの静止画像６０における周辺顔６８の右方向座標よりも水平方向左にないため、処理はステップＳ１３０１に戻る。あるいは、図７における顔７５が現在判定している顔であるとすると、顔７５は周辺顔６８よりも右にあり、かつ第ｎ＋１の静止画像７０において主検出顔７５の右方向に周辺顔７８を検出できているため、処理はステップＳ１３０８に進む。
【００９４】
ステップＳ１３０６では、主検出顔７５を検出したというフラグを立てて処理を終了する。また、ステップＳ１３０７では、主検出顔７５を検出できなかったというフラグを立てて処理を終了する。
【００９５】
第ｎの静止画像６０において検出した周辺顔と同じ顔を第ｎ＋１の静止画像７０において見つけられない場合、その周辺顔を用いて第ｎ＋１の静止画像７０において主検出顔７５を検出することができない。そこで第３の主検出顔検出処理では、第ｎの静止画像６０と第ｎ＋１の静止画像７０の双方において検出できた周辺顔を使用して主検出顔７５を検出する。これにより、主検出顔を見失っても、既知の周辺顔を用いて主検出顔を検出することができる。
【００９６】
以上のように、本実施形態によれば、第ｎの静止画像と第ｎ＋１の静止画像において検出された顔の数が変化しても、主検出顔を検出することができる。
【００９７】
なお、サイズ用評価値、距離用評価値、角度用評価値、及び目用評価値に加える数は、所定の数でなく、前回の主検出顔との差に応じて変化する値であっても良い。前回の主検出顔との差が小さいほど、すなわち前回の主検出顔と近似するほど値を大きくする。
【００９８】
なお、顔を検出する構成として説明したが、他の任意の被写体を検出する構成であっても良い。
【００９９】
なお本実施形態では、主検出顔の上下左右の顔を用いて、次の静止画像の主検出顔を検出したが、主検出顔の斜め右上、斜め右下、斜め左下、及び斜め右下の顔を用いて検出しても良い。
【符号の説明】
【０１００】
１００  デジタルカメラ
１１０  カメラ本体
１１１  撮像部
１１２  ＤＳＰ
１１３  第１のメモリ
１１４  主検出顔判断部
１１５  第２のメモリ
１１６  顔追尾部
１１７  モニター
１１８  ＡＦ部
１５０  撮影レンズ
【図１】
0005867157.tif 000002
【図２】
0005867157.tif 000003
【図３】
0005867157.tif 000004
【図４】
0005867157.tif 000005
【図５】
0005867157.tif 000006
【図６】
0005867157.tif 000007
【図７】
0005867157.tif 000008
【図８】
0005867157.tif 000009
【図９】
0005867157.tif 000010
【図１０】
0005867157.tif 000011
【図１１】
0005867157.tif 000012
【図１２】
0005867157.tif 000013
【図１３】
0005867157.tif 000014