(57)【要約】【構成】イメージャ１６によって捉えられた被写界を表す探索画像データは、メモリ制御回路３０によってＳＤＲＡＭ３２の探索画像エリア３２ｃに取り込まれる。ＣＰＵ２６は、顔辞書ＤＣ＿Ｆに収められた辞書画像に対する符合度が閾値を上回る顔画像を探索画像エリア３２ｃに格納された探索画像データから探索し、探知された顔画像上の特徴画像を追尾対象として指定し、そして指定された追尾対象を探索画像データを参照して追尾する。追尾時間は、探知された顔画像の辞書画像に対する符合度が大きいほど長くなるように制御される。また、顔画像の探索処理は、追尾処理が起動状態にあるとき停止される。【効果】追尾性能が向上する。【選択図】図２
2012170028.tif 000002
【特許請求の範囲】
【請求項１】
画像を繰り返し撮像する撮像手段、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索手段、
前記探索手段によって探知された物体像上の特徴画像を追尾する追尾手段、および
前記探索手段によって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾手段の追尾時間を調整する調整手段を備える、追尾装置。
【請求項２】
前記追尾手段は前記特徴画像に注目して撮像条件を調整する撮像条件調整手段を含む、請求項１記載の追尾装置。
【請求項３】
前記撮像手段によって取り込まれた画像を画面に表示する表示手段をさらに備え、
前記追尾手段は前記特徴画像を指向するキャラクタを前記表示手段によって表示された画像に多重するキャラクタ多重手段を含む、請求項１記載の追尾装置。
【請求項４】
前記調整手段によって設定された追尾時間が基準値を下回るとき前記特徴パターンに符合する物体像を前記追尾手段によって追尾された特徴画像の近傍から限定的に探索する限定探索手段、および
前記限定探索手段の探知に応答して前記追尾手段の追尾時間を延長する延長手段をさらに備える、請求項１ないし３のいずれかに記載の追尾装置。
【請求項５】
前記限定探索手段は、前記特徴画像の近傍に存在する部分画像を互いに異なる態様で繰り返し指定する指定手段、および前記指定手段によって指定された部分画像の前記特徴パターンに対する符合度を算出する符合度算出手段を含み、
前記符合度算出手段によって算出された符合度に基づいて前記基準値を調整する基準値調整手段をさらに備える、請求項４記載の追尾装置。
【請求項６】
前記追尾手段は前記特徴画像の消失に応答して追尾処理を停止する追尾停止手段を含む、請求項１ないし５のいずれかに記載の追尾装置。
【請求項７】
前記追尾手段および前記探索手段を代替的に起動する制御手段をさらに備える、請求項１ないし６のいずれかに記載の追尾装置。
【請求項８】
前記制御手段は前記探索手段の非探知に応答して前記追尾手段を起動する追尾起動手段を含む、請求項７記載の追尾装置。
【請求項９】
前記探索手段によって探索された物体像の一部を前記特徴画像として指定する指定手段をさらに備える、請求項１ないし８のいずれかに記載の追尾装置。
【請求項１０】
画像を繰り返し撮像する撮像手段を備える追尾装置のプロセッサに、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを実行させるための、追尾制御プログラム。
【請求項１１】
画像を繰り返し撮像する撮像手段を備える追尾装置によって実行される追尾制御方法であって、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを備える、追尾制御方法。
【請求項１２】
画像を繰り返し撮像する撮像手段、および
メモリに保存された内部制御プログラムに従う処理を実行するプロセッサを備える追尾装置に供給される外部制御プログラムであって、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを前記内部制御プログラムと協働して前記プロセッサに実行させるための、外部制御プログラム。
【請求項１３】
画像を繰り返し撮像する撮像手段、
外部制御プログラムを受信する受信手段、および
前記受信手段によって受信された外部制御プログラムとメモリに保存された内部制御プログラムに従う処理を実行するプロセッサを備える追尾装置であって、
前記外部制御プログラムは、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを前記内部制御プログラムと協働して実行するプログラムに相当する、追尾装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、追尾装置に関し、特に、被写界に現れた特定物体を追尾する、追尾装置に関する。
【背景技術】
【０００２】
この種の装置の一例が、特許文献１に開示されている。この背景技術によれば、画像相関追尾回路は、動画像のフレーム間の相関性に基づき任意の被写体を追尾する。一方、顔検出回路は、撮影画面から特定被写体（＝顔）を検出して、被写体領域情報と検出信頼度を出力する。特定被写体を追尾する回路は、画像相関追尾回路によって検出された被写体が特定被写体と同一であると判断されたときに、画像相関追尾回路から顔検出回路に移行される。これによって、特定被写体を的確に追尾することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１５４２８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、背景技術では、検出信頼度の大きさが追尾動作に反映されることはなく、追尾性能に限界がある。
【０００５】
それゆえに、この発明の主たる目的は、追尾性能を高めることができる、追尾装置を提供することである。
【課題を解決するための手段】
【０００６】
この発明に従う追尾装置(10：実施例で相当する参照符号。以下同じ)は、画像を繰り返し撮像する撮像手段(16, 20, 34)、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索手段(S81~S125, S35~S45, S261~S267, S281~S311)、探索手段によって探知された物体像上の特徴画像を追尾する追尾手段(S131~S143, S181~S209, S7, S9, S15)、および探索手段によって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾手段の追尾時間を調整する調整手段(S51)を備える。
【０００７】
好ましくは、追尾手段は特徴画像に注目して撮像条件を調整する撮像条件調整手段(S9, S15)を含む。
【０００８】
好ましくは、撮像手段によって取り込まれた画像を画面に表示する表示手段(S1)がさらに備えられ、追尾手段は特徴画像を指向するキャラクタを表示手段によって表示された画像に多重するキャラクタ多重手段(S7)を含む。
【０００９】
好ましくは、調整手段によって設定された追尾時間が基準値を下回るとき特徴パターンに符合する物体像を追尾手段によって追尾された特徴画像の近傍から限定的に探索する限定探索手段(S211~S229, S233~S241)、および限定探索手段の探知に応答して追尾手段の追尾時間を延長する延長手段(S231, S69)がさらに備えられる。
【００１０】
さらに好ましくは、限定探索手段は、特徴画像の近傍の存在する部分画像を互いに異なる態様で繰り返し指定する指定手段(S217, S237~S241)、および指定手段によって指定された部分画像の特徴パターンに対する符合度を算出する符合度算出手段(S223~S229)を含み、符合度算出手段によって算出された符合度に基づいて基準値を調整する基準値調整手段(S251~S253)がさらに備えられる。
【００１１】
好ましくは、追尾手段は特徴画像の消失に応答して追尾処理を停止する追尾停止手段(S145, S193)を含む。
【００１２】
好ましくは、追尾手段および探索手段を代替的に起動する制御手段(S31~S33, S47, S53~S67, S71, S269)がさらに備えられる。
【００１３】
さらに好ましくは、制御手段は探索手段の非探知に応答して追尾手段を起動する追尾起動手段(S269)を含む。
【００１４】
好ましくは、探索手段によって探知された物体像の一部を特徴画像として指定する指定手段(S49, S271)がさらに備えられる。
【００１５】
この発明に従う追尾制御プログラムは、画像を繰り返し撮像する撮像手段(16, 20, 34)を備える追尾装置(10)のプロセッサ(26)に、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を実行させるための、追尾制御プログラムである。
【００１６】
この発明に従う追尾制御方法は、画像を繰り返し撮像する撮像手段(16, 20, 34)を備える追尾装置(10)によって実行される追尾制御方法であって、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を備える。
【００１７】
この発明に従う外部制御プログラムは、画像を繰り返し撮像する撮像手段(16, 20, 34)、およびメモリ(44)に保存された内部制御プログラムに従う処理を実行するプロセッサ(26)を備える追尾装置(10)に供給される外部制御プログラムであって、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を内部制御プログラムと協働してプロセッサに実行させるための、外部制御プログラムである。
【００１８】
この発明に従う追尾装置(10)は、画像を繰り返し撮像する撮像手段(16, 20, 34)、外部制御プログラムを受信する受信手段(48)、および受信手段によって受信された外部制御プログラムとメモリ(44)に保存された内部制御プログラムに従う処理を実行するプロセッサ(26)を備える追尾装置であって、外部制御プログラムは、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を内部制御プログラムと協働して実行するプログラムに相当する。
【発明の効果】
【００１９】
この発明によれば、特徴パターンに対する符合度が基準を上回る物体像が探索処理によって探知されると、探知された物体像上の特徴画像を追尾する追尾処理が起動される。起動された追尾処理の時間は、探知された物体像の特徴パターンに対する符合度が大きいほど長くなる。したがって、符合度が高い物体像上の特徴画像は持続的に追尾される一方、符合度が低い物体像上の特徴画像に対する追尾は早めに終了される。こうして、追尾性能が向上する。
【００２０】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２１】
【図１】この発明の一実施例の基本的構成を示すブロック図である。
【図２】この発明の一実施例の構成を示すブロック図である。
【図３】（Ａ）は撮像面で捉えられる被写界の一例を示す図解図であり、（Ｂ）はＬＣＤモニタの表示の一例を示す図解図である。
【図４】撮像面における評価エリアの割り当て状態の一例を示す図解図である。
【図５】顔検出処理に用いられる顔枠の一例を示す図解図である。
【図６】顔検出処理において参照される顔辞書の構成の一例を示す図解図である。
【図７】顔検出処理の一部を示す図解図である。
【図８】顔検出処理に用いられるレジスタの構成の一例を示す図解図である。
【図９】（Ａ）は追尾動作の一例を示す図解図であり、（Ｂ）は追尾動作の他の一例を示す図解図である。
【図１０】追尾対象および追尾探索エリアの割り当て状態の一例を示す図解図である。
【図１１】追尾処理に用いられる追尾枠の一例を示す図解図である。
【図１２】追尾処理の一部を示す図解図である。
【図１３】追尾処理に用いられるレジスタの構成の一例を示す図解図である。
【図１４】顔検出処理および追尾処理の一例を示す図解図である。
【図１５】追尾対象，追尾探索エリアおよび限定顔探索エリアの割り当て状態の一例を示す図解図である。
【図１６】限定顔探索タスクに用いられる追尾枠の一例を示す図解図である。
【図１７】限定顔探索タスクの下での顔検出処理の一部を示す図解図である。
【図１８】顔検出処理および追尾処理の他の一例を示す図解図である。
【図１９】顔検出処理および追尾処理のその他の一例を示す図解図である。
【図２０】顔検出処理および追尾処理のさらにその他の一例を示す図解図である。
【図２１】図２実施例に適用されるＣＰＵの動作の一部を示すフロー図である。
【図２２】図２実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図２３】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図２４】図２実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図２５】図２実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図２６】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図２７】図２実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図２８】図２実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図２９】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図３０】図２実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図３１】図２実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図３２】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図３３】図２実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図３４】図２実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図３５】他の実施例に適用されるＣＰＵの動作の一部を示すフロー図である。
【図３６】その他の実施例に適用されるＣＰＵの動作の一部を示すフロー図である。
【図３７】その他の実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図３８】その他の実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図３９】この発明のさらにその他の実施例の構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、この発明の実施の形態を図面を参照しながら説明する。
［基本的構成］
【００２３】
図１を参照して、この実施例の追尾装置は、基本的に次のように構成される。撮像手段１は、画像を繰り返し撮像する。探索手段２は、特徴パターンに対する符合度が基準を上回る物体像を撮像手段１によって取り込まれた画像から探索する。追尾手段３は、探索手段２によって探知された物体像上の特徴画像を追尾する。調整手段４は、探索手段２によって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾手段３の追尾時間を調整する。
【００２４】
特徴パターンに対する符合度が基準を上回る物体像が探索処理によって探知されると、探知された物体像上の特徴画像を追尾する追尾処理が起動される。起動された追尾処理の時間は、探知された物体像の特徴パターンに対する符合度が大きいほど長くなる。したがって、符合度が高い物体像上の特徴画像は持続的に追尾される一方、符合度が低い物体像上の特徴画像に対する追尾は早めに終了される。こうして、追尾性能が向上する。
［実施例］
【００２５】
図２を参照して、この実施例のディジタルカメラ１０は、ドライバ１８ａおよび１８ｂによってそれぞれ駆動されるフォーカスレンズ１２および絞り機構１４を含む。これらの部材を経た被写界の光学像は、イメージャ１６の撮像面に照射され、光電変換を施される。これによって、被写界像を表す電荷が生成される。
【００２６】
電源が投入されると、ＣＰＵ２６は、動画取り込み処理を開始するべく、撮像タスクの下で露光動作および電荷読み出し動作の繰り返しをドライバ１８ｃに命令する。ドライバ１８ｃは、図示しないＳＧ(Signal Generator)から周期的に発生する垂直同期信号Ｖｓｙｎｃに応答して、撮像面を露光し、かつ撮像面で生成された電荷をラスタ走査態様で読み出す。イメージャ１６からは、読み出された電荷に基づく生画像データが周期的に出力される。
【００２７】
前処理回路２０は、イメージャ１６から出力された生画像データにディジタルクランプ，画素欠陥補正，ゲイン制御などの処理を施す。これらの処理を施された生画像データは、メモリ制御回路３０を通してＳＤＲＡＭ３２の生画像エリア３２ａに書き込まれる。
【００２８】
後処理回路３４は、生画像エリア３２ａに格納された生画像データをメモリ制御回路３０を通して読み出し、読み出された生画像データに色分離処理，白バランス調整処理およびＹＵＶ変換処理を施す。後処理回路３４はさらに、ＹＵＶ形式に従う画像データに対して表示用のズーム処理と探索用のズーム処理とを並列的に実行する。この結果、ＹＵＶ形式に従う表示画像データおよび探索画像データが個別に作成される。
【００２９】
表示画像データは、メモリ制御回路３０によってＳＤＲＡＭ３２の表示画像エリア３２ｂに書き込まれる。また、探索画像データは、メモリ制御回路３０によってＳＤＲＡＭ３２の探索画像エリア３２ｃに書き込まれる。
【００３０】
ＬＣＤドライバ３６は、表示画像エリア３２ｂに格納された表示画像データをメモリ制御回路３０を通して繰り返し読み出し、読み出された画像データに基づいてＬＣＤモニタ３８を駆動する。この結果、被写界のリアルタイム動画像（スルー画像）がモニタ画面に表示される。
【００３１】
後述するフラグＦＬＧ＿ｔａｒｇｅｔは、探索画像データ上で主要顔画像が決定されたか否かを識別するためのフラグであり、“０”が未定を示す一方、“１”が決定を示す。
【００３２】
フラグＦＬＧ＿ｔａｒｇｅｔが“１”であれば、ＣＰＵ２６は、顔枠キャラクタ表示命令をキャラクタジェネレータ４６に与える。キャラクタジェネレータ４６は対応するキャラクタデータをＬＣＤドライバ３６に与え、ＬＣＤドライバ３６は与えられたキャラクタデータに基づいてＬＣＤモニタ３８を駆動する。この結果、主要顔画像（または後述する追尾対象）を囲う顔枠キャラクタがＬＣＤモニタ３８にＯＳＤ態様で表示される。したがって、図３（Ａ）に示す被写界がイメージャ１６によって捉えられた場合、顔枠キャラクタは図３（Ｂ）に示す要領でスルー画像に多重される。
【００３３】
なお、フラグＦＬＧ＿ｔａｒｇｅｔが“０”であれば、ＣＰＵ２６は、顔枠非表示命令をキャラクタジェネレータ４６に与える。キャラクタジェネレータ４６はキャラクタデータの出力を停止し、この結果、顔枠キャラクタが非表示とされる。
【００３４】
ＣＰＵ２６は続いて、ＡＥ／ＡＦエリアを設定する。ＡＥ／ＡＦエリアは、フラグＦＬＧ＿ｆａｃｅが“１”を示すとき顔枠キャラクタによって囲まれる画像の近傍の位置に設定され、フラグＦＬＧ＿ｆａｃｅが“０”を示すとき図４に示す評価エリアＥＶＡの中央に設定される。ＡＥ／ＡＦエリアの設定が完了すると、ＣＰＵ２６は、ＡＥ処理およびＡＦ処理を実行する。
【００３５】
図４を参照して、評価エリアＥＶＡは水平方向および垂直方向の各々において６４分割され、合計４０９６個の分割エリアによって評価エリアＥＶＡが形成される。また、図２に示す前処理回路２０は、上述した処理に加えて、生画像データを簡易的にＲＧＢデータに変換する簡易ＲＧＢ変換処理を実行する。
【００３６】
ＡＥ評価回路２２は、前処理回路２０によって生成されたＲＧＢデータのうち評価エリアＥＶＡに属するＲＧＢデータを分割エリア毎に積分する。この積分処理は、垂直同期信号Ｖｓｙｎｃが発生する毎に実行される。これによって、４０９６個の積分値つまり４０９６個のＡＥ評価値が、垂直同期信号Ｖｓｙｎｃに応答してＡＥ評価回路２２から出力される。
【００３７】
また、ＡＦ評価回路２４は、前処理回路２０によって生成されたＲＧＢデータのうち評価エリアＥＶＡに属するＲＧＢデータの高周波成分を分割エリア毎に積分する。この積分処理もまた、垂直同期信号Ｖｓｙｎｃが発生する毎に実行される。これによって、４０９６個の積分値つまり４０９６個のＡＦ評価値が、垂直同期信号Ｖｓｙｎｃに応答してＡＦ評価回路２４から出力される。
【００３８】
ＡＥ処理では、ＡＥ評価回路２２から出力された４０９６個のＡＥ評価値のうちＡＥ／ＡＦエリアに属する一部のＡＥ評価値に基づいて、適正ＥＶ値が算出される。算出された適正ＥＶ値を定義する絞り量および露光時間はドライバ１８ｂおよび１８ｃにそれぞれ設定され、これによってＡＥ／ＡＦエリアに属する画像の明るさが適度に調整される。
【００３９】
ＡＦ処理では、ＡＦ評価回路２４から出力された４０９６個のＡＦ評価値のうちＡＥ／ＡＦエリアに属する一部のＡＦ評価値に基づいて合焦点が探索され、フォーカスレンズ１２は参照されたＡＦ評価値の総和が最大となる位置に配置される。これによって、ＡＥ／ＡＦエリアに属する画像の鮮鋭度が向上する。
【００４０】
キー入力装置２８に設けられたムービボタン２８ｍｖによって記録開始操作が行われると、ＣＰＵ２６は、動画記録処理を開始するべく、記録開始命令をメモリＩ／Ｆ４０に与える。同じムービボタン２８ｍｖによって記録終了操作が行われると、ＣＰＵ２６は、動画記録処理を終了するべく、記録終了命令をメモリＩ／Ｆ４０に与える。メモリＩ／Ｆ４０は、記録開始命令から記録終了命令までの期間に、ＹＵＶ形式の画像データをメモリ制御回路３０を通してＹＵＶ画像エリア３２ｃから繰り返し読み出し、読み出された画像データをファイル形式で記録媒体４２に記録する。
【００４１】
ＣＰＵ２６はまた、撮像タスクと並列して実行される顔検出／追尾制御タスクの下で、フラグＦＬＧ＿ｆａｃｅを“０”に設定し、顔検出タスクを起動する。起動した顔検出タスクの下では、探索画像エリア３２ｃに格納された探索画像データから人物の顔画像が繰り返し探索される。このとき、図５に示す要領でサイズが調整される顔枠ＦＤと図６に示す５つの辞書画像を収めた顔辞書ＤＣ＿Ｆとが用いられる。
【００４２】
顔辞書ＤＣ＿Ｆは、フラッシュメモリ４４に保存される。また、顔辞書ＤＣ＿Ｆにおいて、ＦＣ＝１に割り当てられた辞書画像は正面を向く顔画像に相当し、ＦＣ＝２に割り当てられた辞書画像は左斜め前を向く顔画像に相当し、ＦＣ＝３に割り当てられた辞書画像は左を向く顔画像に相当する。さらに、ＦＣ＝４に割り当てられた辞書画像は右斜め前を向く顔画像に相当し、ＦＣ＝５に割り当てられた辞書画像は右を向く顔画像に相当する。
【００４３】
顔検出タスクではまず、評価エリアＥＶＡの全域が顔探索エリアとして設定される。また、顔枠ＦＤのサイズの可変範囲を定義するべく、最大サイズＦＳＺｍａｘが“２００”に設定され、最小サイズＦＳＺｍｉｎが“２０”に設定される。顔枠ＦＤは、垂直同期信号Ｖｓｙｎｃが発生する毎に、顔探索エリアの開始位置（左上位置）から終了位置（右下位置）に向かって、ラスタ走査態様で既定量ずつ移動される（図７参照）。また、顔枠ＦＤのサイズは、顔枠ＦＤが終了位置に到達する毎に“ＦＳＺｍａｘ”から“ＦＳＺｍｉｎ”まで“５”ずつ縮小される。
【００４４】
顔枠ＦＤに属する一部の探索画像データは、メモリ制御回路３０を通して探索画像エリア３２ｃから読み出される。読み出された探索画像データの特徴量は、顔辞書ＤＣ＿Ｆに収められた５つの辞書画像の各々の特徴量と照合される。照合結果である符合度が閾値ＴＨｆａｃｅ以上であれば、顔画像が検出されたものとみなされる。現時点の顔枠ＦＤの位置およびサイズ，照合先の辞書画像を識別する顔辞書番号，ならびに照合結果である符合度は、図８に示すレジスタＲＧＳＴｔｍｐに顔情報として登録される。また、レジスタＲＧＳＴｔｍｐに記述された顔数は、このような登録処理に伴ってインクリメントされる。
【００４５】
最小サイズＦＳＺｍｉｎを有する顔枠ＦＤが顔探索エリアの終了位置に到達すると、ＣＰＵ２６は、レジスタＲＧＳＴｔｍｐの記述をレジスタＲＧＳＴｏｕｔに複製し、その後にレジスタＲＧＳＴｔｍｐをクリアする。フラグＦＬＧ＿ｆａｃｅは、レジスタＲＧＳＴｏｕｔに記述された顔数が“０”のとき“０”に設定され、レジスタＲＧＳＴｏｕｔに記述された顔数が“１”以上のとき“１”に設定される。
【００４６】
こうして設定されたフラグＦＬＧ＿ｆａｃｅの状態は、顔検出タスク／追尾制御タスクの下で判別される。ＦＬＧ＿ｆａｃｅ＝０であれば、主要顔画像が未定であることを表明するべく、フラグＦＬＧ＿ｔａｒｇｅｔが“０”に設定される。一方、ＦＬＧ＿ｆａｃｅ＝１であれば、顔検出タスクによって検出された１または２以上の顔画像のいずれか１つが主要顔画像として決定される。主要顔画像は、レジスタＲＧＳＴｏｕｔに登録された１または２以上の顔枠のうち最大サイズの顔枠に相当する顔画像である。フラグＦＬＧ＿ｔａｒｇｅｔは、主要顔画像が決定されたことを表明するべく、“１”に更新される。
【００４７】
続いて、決定された主要顔画像に対応する符合度がレジスタＲＧＳＴｏｕｔから検出され、検出された符合度が閾値ＴＨｆａｃｅを上回る閾値ＴＨｔｒａｃｅと比較される。顔検出タスクは符合度が閾値ＴＨｔｒａｃｅ未満である限り起動し続け、上述した処理は顔検出タスクによって制御されるフラグＦＬＧ＿ｆａｃｅの値を参照して繰り返し実行される。
【００４８】
これに対して、検出された符合度が閾値ＴＨｔｒａｃｅ以上であれば、顔検出タスクが停止され、主要顔画像上の特徴部が追尾対象として決定される。ここで、追尾対象は矩形を有するように定義される。追尾対象が決定されると、主要顔画像に対応する符合度が、閾値ＴＨｔｒａｃｅを上回る閾値ＴＨｔｉｍｅｓｅｔと比較される。
【００４９】
符合度が閾値ＴＨｔｉｍｅｓｅｔ以上であれば、フラグＦＬＧ＿ｌｏｓｔが“０”に設定され、追尾タスク１に従う処理が実行される。符合度が閾値ＴＨｔｉｍｅｓｅｔ未満であれば、フラグＦＬＧ＿ｌｏｓｔ，ＦＬＧ＿ｄｉｓｃｏｖｅｒおよびＦＬＧ＿ｔｉｍｅｏｕｔが“０”に設定され、追尾タスク２に従う処理が実行される。
【００５０】
撮像面に向かって左斜め前を向く人物ＨＭ１が図９（Ａ）に示すように撮像面の左側で捉えられ、この状態で算出された符合度が閾値ＴＨｔｉｍｅｓｅｔ以上であれば、図１０に示す要領で追尾対象が定義され、追尾タスク１が起動される。
【００５１】
また、撮像面に向かって左斜め前やや下方を向く人物ＨＭ２が図９（Ｂ）に示すように撮像面の左側で捉えられ、この状態で算出された符合度が閾値ＴＨｔｒａｃｅ以上でかつ閾値ＴＨｔｉｍｅｓｅｔ未満であれば、図１５に示す要領で追尾対象が定義され、追尾タスク２が起動される。
【００５２】
追尾タスク１ではまず、上述の要領で決定された追尾対象を覆う位置に追尾探索エリアが設定される。追尾探索エリアは、追尾対象よりも大きい楕円形状を有し、図１０に示す要領で定義される。垂直同期信号Ｖｓｙｎｃが発生すると、フラグＦＬＧ＿ｔｒａｃｅが“０”に設定され、追尾処理が実行される。
【００５３】
追尾処理では、追尾対象を表す一部の探索画像データがメモリ制御回路３０を通して探索画像エリア３２ｃから読み出され、読み出された探索画像データの特徴量つまり追尾対象の特徴量が算出される。次に、図１１に示す追尾枠ＴＤのサイズの可変範囲を定義するべく、最大サイズＴＳＺｍａｘが追尾対象のサイズの１．１５倍の値に設定され、最小サイズＴＳＺｍｉｎが追尾対象のサイズの０．８５倍の値に設定される。
【００５４】
追尾枠ＴＤは、追尾探索エリアの開始位置から終了位置に向かって、ラスタ走査態様で既定量ずつ移動される（図１２参照）。また、追尾枠ＴＤのサイズは、追尾枠ＴＤが終了位置に到達する毎に“ＴＳＺｍａｘ”から“ＴＳＺｍｉｎ”まで“５”ずつ縮小される。
【００５５】
追尾枠ＴＤに属する一部の探索画像データはメモリ制御回路３０を通して探索画像エリア３２ｃから読み出され、読み出された探索画像データの特徴量が追尾対象の特徴量と照合される。照合結果である符合度が閾値ＴＨｏｂｊ以上であれば、現時点の追尾枠ＴＤのサイズおよび位置と符合度とが、図１３に示す追尾用レジスタＲＧＳＴｃｈａｓｅに追尾候補情報として登録される。また、１または２以上の追尾候補が検出されたことを表明するべく、フラグＦＬＧ＿ｔｒａｃｅが“１”に設定される。追尾処理は、最小サイズＴＳＺｍｉｎを有する追尾枠ＴＤが追尾探索エリアの終了位置に到達した時点で終了される。
【００５６】
追尾処理が終了された時点のフラグＦＬＧ＿ｔｒａｃｅの状態が“１”であれば、符合度が最大値を示す追尾候補が追尾用レジスタＲＧＳＴｃｈａｓｅに登録された１または２以上の追尾候補の中から検出され、検出された追尾候補が新規の追尾対象として決定される。楕円形状を有する追尾探索エリアは、決定された追尾対象を覆う位置に設定される。詳しくは、追尾探索エリアは、追尾対象の移動履歴を参照して、追尾対象が移動すると思われる位置を捉えるように設定される。追尾探索エリアがこうして更新されると、フラグＦＬＧ＿ｔｒａｃｅが“０”に設定され、追尾処理が再開される。
【００５７】
これに対して、追尾処理が完了した時点のフラグＦＬＧ＿ｔｒａｃｅの状態が“０”のままであれば、追尾対象が消失したことを表明するべく、フラグＦＬＧ＿ｌｏｓｔが“１”に更新される。さらに、主要顔画像が未定であることを表明するべく、フラグＦＬＧ＿ｔａｒｇｅｔが“０”に設定される。フラグＦＬＧ＿ｔａｒｇｅｔの設定が完了すると、フラグＦＬＧ＿ｆａｃｅが“０”に設定され、顔検出タスクが再起動される。
【００５８】
このように、追尾タスク１は、顔検出タスクに対して代替的に実行される。図１４を参照して、辞書画像に対する主要顔画像の符合度が閾値ＴＨｔｉｍｅｓｅｔ以上であれば、顔検出タスクに代えて追尾タスク１が起動される。追尾タスク１では、追尾対象を追尾する処理と追尾設定（追尾対象および追尾探索エリアの設定）を更新する処理とが繰り返し実行される。追尾対象が消失すると、追尾処理に失敗したとみなされ、追尾タスク１に代えて顔検出タスクが起動される。
【００５９】
顔枠キャラクタは、追尾対象を囲うようにＬＣＤモニタ３８にＯＳＤ態様で表示される。したがって、人物ＨＭ１が後ろを振り返りながら撮像面の左側から右側に移動したとき、顔枠キャラクタの表示位置は図９（Ａ）に示す要領で変化する。
【００６０】
追尾タスク２は、辞書画像に対する主要顔画像の符合度が閾値ＴＨｔｒａｃｅ以上でかつ閾値ＴＨｔｉｍｅｓｅｔ未満のときに起動される。追尾タスク２でも、決定された追尾対象よりも大きい楕円形状の追尾探索エリアが追尾対象を覆う位置に設定される（図１５参照）。ただし、追尾タスク２では、追尾時間を制限するべく、タイマ２６ｔのリセット＆スタートが追加的に実行される。垂直同期信号Ｖｓｙｎｃが発生すると、フラグＦＬＧ＿ｔｒａｃｅが“０”に設定され、追尾枠ＴＤを用いた上述の追尾処理が実行される。
【００６１】
追尾処理が完了した時点のフラグＦＬＧ＿ｔｒａｃｅの状態が“１”であれば、１または２以上の追尾候補が検出されたとみなして、限定顔検出タスクが起動される。続いて、追尾用レジスタＲＧＳＴｃｈａｓｅに登録された１または２以上の追尾候補のいずれか１つが追尾対象として決定され、決定された追尾対象を覆う位置に追尾探索エリアが設定される。限定顔検出タスクにおいて参照される限定顔探索エリアおよび顔サイズは、追尾対象の位置およびサイズに基づいて図１５に示す要領で設定される。限定顔探索エリアおよび顔サイズがこうして更新されると、フラグＦＬＧ＿ｔｒａｃｅが“０”に設定され、追尾処理が再起動される。したがって、追尾タスク２では、追尾処理および限定顔検出タスクが並列して実行される。
【００６２】
限定顔検出タスクではまず、図１６に示す顔枠ＬＦＤのサイズの可変範囲を定義するべく、最大サイズＬＳＺｍａｘおよび最小サイズＬＳＺｍｉｎが設定される。最大サイズＬＳＺｍａｘおよび最小サイズＬＳＺｍｉｎはそれぞれ、顔サイズの１．１５倍の値および０．８５倍の値を示す。顔枠ＬＦＤは、垂直同期信号Ｖｓｙｎｃが発生する毎に、限定顔探索エリアの開始位置（左上位置）から終了位置（右下位置）に向かって、ラスタ走査態様で既定量ずつ移動される（図１７参照）。また、顔枠ＬＦＤのサイズは、顔枠ＬＦＤが終了位置に到達する毎に“ＬＳＺｍａｘ”から“ＬＳＺｍｉｎ”まで“５”ずつ縮小される。
【００６３】
顔枠ＬＦＤに属する一部の探索画像データは探索画像エリア３２ｃから読み出され、読み出された探索画像データの特徴量は顔辞書ＤＣ＿Ｆに収められた５つの辞書画像の各々の特徴量と照合される。照合結果である符合度が閾値ＴＨｔｉｍｅｓｅｔ以上となると、顔画像が検出されたことを表明すべく、フラグＦＬＧ＿ｄｉｓｃｏｖｅｒが“１”に設定される。限定顔検出タスクは、フラグＦＬＧ＿ｄｉｓｃｏｖｅｒが“１”に設定された時点、或いは最小サイズＬＳＺｍｉｎの顔枠ＬＦＤが顔探索エリアの終了位置に達した時点で終了される。
【００６４】
フラグＦＬＧ＿ｄｉｓｃｏｖｅｒが“０”のままで、かつタイマ２６ｔの測定値が上限値に達しないうちは、レジスタＲＧＳＴｃｈａｓｅに登録された１または２以上の追尾候補のいずれか１つが追尾対象として決定され、決定された追尾対象を覆う位置に追尾探索エリアが設定され、そして限定顔検出タスクにおいて参照される限定顔探索エリアおよび顔サイズが追尾対象の位置およびサイズに基づいて設定される。追尾処理は、フラグＦＬＧ＿ｔｒａｃｅが“０”に設定された後に再開される。
【００６５】
追尾処理が完了した時点のフラグＦＬＧ＿ｔｒａｃｅの状態が“０”のままであれば、追尾対象が消失したことを表明するべく、フラグＦＬＧ＿ｌｏｓｔが“１”に更新される。さらに、主要顔画像が未定であることを表明するべく、フラグＦＬＧ＿ｔａｒｇｅｔが“０”に設定される。フラグＦＬＧ＿ｔａｒｇｅｔの設定が完了すると、フラグＦＬＧ＿ｆａｃｅが“０”に設定され、顔検出タスクが再起動される。
【００６６】
追尾処理が完了した時点のフラグＦＬＧ＿ｔｒａｃｅの状態は“１”を示すものの、フラグＦＬＧ＿ｄｉｓｃｏｖｅｒが“０”のままでタイマ２６ｔの測定値が上限値に達すると、タイムアウトの発生を表明するべくフラグＦＬＧ＿ｔｉｍｅｏｕｔが“１”に設定され、主要顔画像が未定であることを表明するべくフラグＦＬＧ＿ｔａｒｇｅｔが“０”に設定される。フラグＦＬＧ＿ｔａｒｇｅｔの設定が完了すると、フラグＦＬＧ＿ｆａｃｅが“０”に設定され、顔検出タスクが再起動される。
【００６７】
追尾処理が完了した時点のフラグＦＬＧ＿ｔｒａｃｅの状態が“１”を示し、かつタイマ２６ｔの測定値が上限値に達する前にフラグＦＬＧ＿ｄｉｓｃｏｖｅｒが“１”に更新されると、追尾タスク２に代えて上述した追尾タスク１が起動される。
【００６８】
図１８〜図２０を参照して、顔検出タスクの下で検出された顔画像のうち主要顔画像の符合度が閾値ＴＨｔｒａｃｅ以上でかつ閾値ＴＨｔｉｍｅｓｅｔ未満であれば、顔検出タスクに代えて追尾タスク２および限定顔検出タスクが起動される。追尾タスク２でも、追尾対象を追尾する処理と追尾設定を更新する処理とが繰り返し実行される。また、限定顔検出タスクでは、追尾対象の近傍から顔画像が探索される。
【００６９】
顔画像が探知されないまま追尾対象が消失すると、追尾タスク２および限定顔検出タスクが停止され、代わりに顔検出タスクが起動される（図１８参照）。追尾対象は捉えられているものの、追尾対象の近傍から顔画像が探知されないままタイムアウトが発生したときも、追尾タスク２および限定顔検出タスクが停止され、代わりに顔検出タスクが起動される（図１９参照）。追尾対象が継続的に捉えられ、かつタイムアウトの発生前に追尾対象の近傍から顔画像が探知されると、追尾タスク２および限定顔検出タスクが停止され、上述した追尾タスク１が起動される（図２０参照）。
【００７０】
顔枠キャラクタは、追尾対象を囲うようにＬＣＤモニタ３８にＯＳＤ態様で表示されるため、人物ＨＭ２が後ろを振り返りながら撮像面の左側から右側に移動したとき、顔枠キャラクタの表示位置は図９（Ｂ）に示す要領で変化する。図９（Ｂ）については、追尾時間に制限があることから、顔枠キャラクタは人物ＨＭ２の移動の途中で非表示とされる。
【００７１】
ＣＰＵ２６は、図２１に示す撮像タスク，図２２〜図２４に示す顔検出／追尾制御タスク，図２５〜図２７に示す顔検出タスク，図２８〜図３０に示す追尾タスク１，図３１〜図３２に示す追尾タスク２，および図３３〜図３４に示す限定顔検出タスクを含む複数のタスクをマルチタスクＯＳの制御の下で並列的に実行する。なお、これらのタスクに対応する制御プログラムは、フラッシュメモリ４４に記憶される。
【００７２】
図２１を参照して、ステップＳ１では動画取込み処理を開始する。この結果、被写界を表すスルー画像がＬＣＤモニタ３８に表示される。ステップＳ３では顔検出／追尾制御タスクを起動し、ステップＳ５ではフラグＦＬＧｔａｒｇｅｔが“１”を示すか否かを判別する。フラグＦＬＧｔａｒｇｅｔは主要顔画像が決定されたか否かを識別するためのフラグであり、“０”が未定を示す一方、“１”が決定を示す。
【００７３】
フラグＦＬＧｔａｒｇｅｔが“１”であれば、ステップＳ７で顔枠表示命令をキャラクタジェネレータ４６に与える。この結果、主要顔画像または追尾対象を囲う位置に対応して顔枠キャラクタがＬＣＤモニタ３８に表示される。ステップＳ９では、顔枠キャラクタによって囲まれる画像の近傍に相当する位置にＡＥ／ＡＦエリアを設定する。
【００７４】
一方、フラグＦＬＧｔａｒｇｅｔが“０”であれば、ステップＳ１１で顔枠非表示命令をキャラクタジェネレータ４６に与える。この結果、顔枠キャラクタの表示が中止される。ステップＳ１３では、評価エリアＥＶＡ上の中央にＡＥ／ＡＦエリアを設定する。
【００７５】
ステップＳ９またはＳ１３の処理が完了すると、ステップＳ１５でＡＥ処理およびＡＦ処理を実行する。ＡＥ処理は、ＡＥ評価回路２２から出力された４０９６個のＡＥ評価値のうちＡＥ／ＡＦエリアに属する一部のＡＥ評価値を参照して実行される。ＡＦ処理もまた、ＡＦ評価回路２４から出力された４０９６個のＡＦ評価値のうちＡＥ／ＡＦエリアに属する一部のＡＦ評価値を参照して実行される。この結果、ＡＥ／ＡＦエリアに属する画像の明るさおよび鮮鋭度が調整される。
【００７６】
ステップＳ１７ではムービボタン２８ｍｖによる記録開始操作が行われたか否かを判別し、ステップＳ１９ではムービボタン２８ｍｖによる記録終了操作が行われたか否かを判別し、そしてステップＳ２１では他の操作が行われたか否かを判別する。
【００７７】
ステップＳ１７の判別結果がＹＥＳであれば、動画記録処理を開始するべく、ステップＳ２３で記録開始命令をメモリＩ／Ｆ４０に与える。ステップＳ１９の判別結果がＹＥＳであれば、動画記録処理を終了するべく、ステップＳ２５で記録終了命令をメモリＩ／Ｆ４０に与える。メモリＩ／Ｆ４０は、記録開始命令から記録終了命令までの期間に、ＹＵＶ形式の画像データをメモリ制御回路３０を通してＹＵＶ画像エリア３２ｃから繰り返し読み出し、読み出された画像データをファイル形式で記録媒体４２に記録する。
【００７８】
ステップＳ２１の判別結果がＹＥＳであれば、ステップＳ２７で他の処理を実行する。ステップＳ２３，Ｓ２５またはＳ２７の処理が完了するか、或いはステップＳ１７〜Ｓ２１の判別結果のいずれもがＮＯであれば、ステップＳ５に戻る。
【００７９】
図２２を参照して、ステップＳ３１ではフラグＦＬＧ＿ｆａｃｅを“０”に設定し、ステップＳ３３では顔検出タスクを起動し、そしてステップＳ３５ではフラグＦＬＧ＿ｆａｃｅが“１”であるか否かを判別する。フラグＦＬＧ＿ｆａｃｅは少なくとも１つの顔画像が顔検出タスクによって検出されたか否かを識別するためのフラグであり、“０”が未検出を示す一方、“１”が検出を示す。
【００８０】
ステップＳ３５の判別結果がＮＯであれば、主要顔画像が未定であることを表明するべく、ステップＳ３７でフラグＦＬＧ＿ｔａｒｇｅｔを“０”に設定する。ステップＳ３７の処理が完了すると、ステップＳ３５に戻る。ステップＳ３５の判別結果がＹＥＳであればステップＳ３９に進み、顔検出タスクによって検出された１または２以上の顔画像のいずれか１つを主要顔画像として決定する。ステップＳ４１では、主要顔画像が決定されたことを表明するべく、フラグＦＬＧ＿ｔａｒｇｅｔを“１”に設定する。
【００８１】
ステップＳ４３では主要顔画像に割り当てられた符合度をレジスタＲＧＳＴｏｕｔから検出し、ステップＳ４５では検出された符合度が閾値ＴＨｔｒａｃｅ以上であるか否かを判別する。判別結果がＮＯであればステップＳ３５に戻り、判別結果がＹＥＳであればステップＳ４７に進む。
【００８２】
ステップＳ４７では顔検出タスクを停止し、ステップＳ４９では主要顔画像上の特徴部を追尾対象として決定する。ステップＳ５１ではステップＳ４３で検出された符合度が閾値ＴＨｔｉｍｅｓｅｔ以上であるか否かを判別し、判別結果がＹＥＳであればステップＳ５３に進む一方、判別結果がＮＯであればステップＳ６１に進む。なお、閾値ＴＨｔｉｍｅｓｅｔは閾値ＴＨｔｒａｃｅを上回る。
【００８３】
ステップＳ５３ではフラグＦＬＧ＿ｌｏｓｔを“０”に設定し、ステップＳ５５では追尾タスク１を起動する。フラグＦＬＧ＿ｌｏｓｔはステップＳ４９で決定された追尾対象の存在／消失を識別するフラグであり、“０”が存在を示す一方、“１”が消失を示す。ステップＳ５７ではフラグＦＬＧ＿ｌｏｓｔが“１”を示すか否かを繰り返し判別する。判別結果がＮＯからＹＥＳに更新されると、主要顔画像が未定であることを表明するべく、ステップＳ５９でフラグＦＬＧ＿ｔａｒｇｅｔを“０”に設定する。ステップＳ５９の処理が完了すると、ステップＳ３１に戻る。
【００８４】
ステップＳ６１ではフラグＦＬＧ＿ｌｏｓｔ，ＦＬＧ＿ｄｉｓｃｏｖｅｒおよびＦＬＧ＿ｔｉｍｅｏｕｔを“０”に設定し、ステップＳ６３では追尾タスク２を起動する。フラグＦＬＧ＿ｄｉｓｃｏｖｅｒは、追尾タスク２の下で起動される限定顔検出タスクによって顔画像が検出されたか否かを識別するためのフラグであり、“０”が未検出を示す一方、“１”が検出を示す。また、フラグＦＬＧ＿ｔｉｍｅｏｕｔは追尾タスク２の下で管理されるタイマ２６ｔにタイムアウトが発生したか否かを識別するためのフラグであり、“０”が未発生を示す一方、“１”が発生を示す。
【００８５】
ステップＳ６５ではフラグＦＬＧ＿ｌｏｓｔが“１”を示すか否かを判別し、ステップＳ６７ではフラグＦＬＧ＿ｔｉｍｅｏｕｔが“１”を示すか否かを判別し、ステップＳ６９ではフラグＦＬＧ＿ｄｉｓｃｏｖｅｒが“１”を示すか否かを判別する。ステップＳ６５またはＳ６７の判別結果がＹＥＳであれば、主要顔画像が未定であることを表明するべくステップＳ７１でフラグＦＬＧ＿ｔａｒｇｅｔを“０”に設定し、その後にステップＳ３１に戻る。ステップＳ６９の判別結果がＹＥＳであれば、ステップＳ５５に移行する。
【００８６】
図２５を参照して、ステップＳ８１ではレジスタＲＧＳＴｔｍｐおよびＲＧＳＴｏｕｔをクリアし、ステップＳ８３では評価エリアＥＶＡの全域を顔探索エリアとして設定する。ステップＳ８５では、顔枠ＦＤのサイズの可変範囲を定義するべく、最大サイズＦＳＺｍａｘを“２００”に設定し、最小サイズＦＳＺｍｉｎを“２０”に設定する。ステップＳ８７では垂直同期信号Ｖｓｙｎｃが発生したか否かを判別し、判別結果がＮＯからＹＥＳに更新されるとステップＳ８９で顔枠ＦＤのサイズを“ＦＳＺｍａｘ”に設定する。
【００８７】
ステップＳ９１では、顔枠ＦＤを顔探索エリアの開始位置（左上位置）に配置する。ステップＳ９３では、顔枠ＦＤに属する一部の探索画像データを探索画像エリア３２ｃから読み出し、読み出された探索画像データの特徴量を算出する。ステップＳ９５では、顔辞書番号ＦＣを“１”に設定する。
【００８８】
ステップＳ９７では、ステップＳ９３で算出された特徴量を、顔辞書ＤＣ＿Ｆに収められた５つの辞書画像のうち顔辞書番号ＦＣに対応する辞書画像の特徴量と照合する。ステップＳ９９では照合結果である符合度が閾値ＴＨ＿ｆａｃｅ以上であるか否かを判別し、ステップＳ１０１では顔辞書番号ＦＣが“５”であるか否かを判別する。
【００８９】
ステップＳ９９の判別結果がＹＥＳであればステップＳ１０５に進み、現時点の顔枠ＦＤの位置およびサイズと顔辞書番号ＦＣの値と符合度とをレジスタＲＧＳＴｔｍｐに登録する。ステップＳ１０５ではまた、レジスタＲＧＳＴｔｍｐに記述された顔数をインクリメントする。ステップＳ１０５の処理が完了すると、ステップＳ１０７に進む。
【００９０】
ステップＳ１０１の判別結果がＮＯであれば、ステップＳ１０３で顔辞書番号ＦＣをインクリメントし、その後にステップＳ９７に戻る。ステップＳ９９の判別結果がＮＯでかつステップＳ１０１の判別結果がＹＥＳであれば、そのままステップＳ１０７に進む。
【００９１】
ステップＳ１０７では、顔枠ＦＤが顔探索エリアの終了位置（右下位置）に到達したか否かを判別する。判別結果がＮＯであれば、ステップＳ１１５で顔枠ＦＤを既定量だけラスタ方向に移動させ、その後にステップＳ９３に戻る。判別結果がＹＥＳであれば、顔枠ＦＤのサイズが“ＦＳＺｍｉｎ”以下であるか否かをステップＳ１０９で判別する。判別結果がＮＯであれば、ステップＳ１１１で顔枠ＦＤのサイズを“５”だけ縮小し、ステップＳ１１３で顔枠ＦＤを顔探索エリアの開始位置に配置し、その後にステップＳ９３に戻る。
【００９２】
ステップＳ１０９の判別結果がＹＥＳであればステップＳ１１７に進み、レジスタＲＧＳＴｔｍｐの記述をレジスタＲＧＳＴｏｕｔに複製する。ステップＳ１１９ではレジスタＲＧＳＴｔｍｐをクリアし、ステップＳ１２１ではレジスタＲＧＳＴｏｕｔに記述された顔数が“１”以上であるか否かを判別する。判別結果がＹＥＳであれば、顔画像が検出されたことを表明するべく、ステップＳ１２３でフラグＦＬＧ＿ｆａｃｅを“１”に設定する。判別結果がＮＯであれば、顔画像が検出されなかったことを表明するべく、ステップＳ１２５でフラグＦＬＧ＿ｆａｃｅを“０”に設定する。ステップＳ１２３またはＳ１２５の処理が完了すると、ステップＳ８７に戻る。
【００９３】
図２８を参照して、ステップＳ１３１では上述のステップＳ４９で決定された追尾対象を覆う位置に追尾探索エリアを設定し、ステップＳ１３３では垂直同期信号Ｖｓｙｎｃが発生したか否かを繰り返し判別する。判別結果がＮＯからＹＥＳに更新されると、ステップＳ１３５でフラグＦＬＧ＿ｔｒａｃｅを“０”に設定し、ステップＳ１３７で追尾処理を実行する。フラグＦＬＧ＿ｔｒａｃｅは１または２以上の追尾候補が現フレームの探索画像データから検出されたか否かを識別するためのフラグであり、“０”が未検出を示す一方、“１”が検出を示す。
【００９４】
ステップＳ１３９では、フラグＦＬＧ＿ｔｒａｃｅが“１”であるか否かを判別する。判別結果がＹＥＳであればステップＳ１４１に進み、追尾用レジスタＲＧＳＴｃｈａｓｅに登録された１または２以上の追尾候補のうち符合度が最大値を示す追尾候補を追尾対象として特定する。ステップＳ１４３では特定された追尾対象を覆う位置に追尾探索エリアを設定し、その後にステップＳ１３３に戻る。ステップＳ１３９の判別結果がＮＯであれば、追尾対象が消失したことを表明するべくステップＳ１４５でフラグＦＬＧ＿ｌｏｓｔを“１”に更新し、その後に処理を終了する。
【００９５】
図２８に示すステップＳ１３７の追尾処理は、図２９〜図３０に示すサブルーチンに従って実行される。
【００９６】
ステップＳ１５１では、追尾対象を表す一部の探索画像データをメモリ制御回路３０を通して探索画像エリア３２ｄから読み出し、読み出された探索画像データの特徴量を算出する。ステップＳ１５３では、追尾枠ＴＤのサイズの可変範囲を定義するべく、最大サイズＴＳＺｍａｘを追尾対象のサイズの１．１５倍の値に設定し、最小サイズＴＳＺｍｉｎを追尾対象のサイズの０．８５倍の値に設定する。ステップＳ１５５では追尾枠ＴＤのサイズを“ＴＳＺｍａｘ”に設定し、ステップＳ１５７では追尾用レジスタＲＧＳＴｃｈａｓｅをクリアする。
【００９７】
ステップＳ１５９では、追尾枠ＴＤを追尾探索エリアの開始位置に配置する。ステップＳ１６１では、追尾枠ＴＤに属する一部の探索画像データをメモリ制御回路３０を通して探索画像エリア３２ｃから読み出し、読み出された探索画像データの特徴量を算出する。ステップＳ１６３では、ステップＳ１５１で算出された特徴量をステップＳ１６１で算出された特徴量と照合する。ステップＳ１６５では照合結果である符合度が閾値ＴＨｏｂｊ以上であるか否かを判別し、判別結果がＮＯであればそのままステップＳ１７１に進む一方、判別結果がＹＥＳであればステップＳ１６７〜Ｓ１６９の処理を経てステップＳ１７１に進む。
【００９８】
ステップＳ１６７では、現時点の追尾枠ＴＤのサイズおよび位置と符合度とを、追尾候補情報として追尾用レジスタＲＧＳＴｃｈａｓｅに登録する。ステップＳ１６９では、追尾候補が検出されたことを表明するべく、フラグＦＬＧ＿ｔｒａｃｅを“１”に設定する。
【００９９】
ステップＳ１７１では、追尾枠ＴＤが追尾探索エリアの終了位置に到達したか否かを判別する。判別結果がＮＯであれば、ステップＳ１７５で追尾枠ＴＤを既定量だけラスタ方向に移動させ、その後にステップＳ１６１に戻る。判別結果がＹＥＳであれば、追尾枠ＴＤのサイズが“ＴＳＺｍｉｎ”以下であるか否かをステップＳ１７３で判別する。判別結果がＮＯであれば、ステップＳ１７７で追尾枠ＴＤのサイズを“５”だけ縮小し、ステップＳ１７９で追尾枠ＴＤを追尾探索エリアの開始位置に配置し、その後にステップＳ１６１に戻る。ステップＳ１７３の判別結果がＹＥＳであれば、上階層のルーチンに復帰する。
【０１００】
図３１を参照して、ステップＳ１８１では上述のステップＳ４９で決定された追尾対象を覆う位置に追尾探索エリアを設定し、ステップＳ１８３ではタイマ２６ｔのリセット＆スタートを実行する。ステップＳ１８５では垂直同期信号Ｖｓｙｎｃが発生したか否かを繰り返し判別し、判別結果がＮＯからＹＥＳに更新されるとステップＳ１８７でフラグＦＬＧ＿ｔｒａｃｅを“０”に設定する。ステップＳ１８９では図２９〜図３０に示すサブルーチンに従う追尾処理を実行し、ステップＳ１９１ではフラグＦＬＧ＿ｔｒａｃｅが“１”を示すか否かを判別する。判別結果がＮＯであれば、追尾対象の消失を表明するべくステップＳ１９３でフラグＦＬＧ＿ｌｏｓｔを“１”に設定し、その後に処理を終了する。
【０１０１】
ステップＳ１９１の判別結果がＹＥＳであれば、限定顔検出タスクが起動中であるか否かをステップＳ１９５で判別する。判別結果がＮＯであれば、ステップＳ１９７で限定顔検出タスクを起動する。ステップＳ１９９では上述したステップＳ１４１と同じ要領で追尾対象を特定し、ステップＳ２０１ではステップＳ１９９で特定された追尾対象を覆う位置に追尾探索エリアを設定する。ステップＳ２０３では、ステップＳ１９９で特定された追尾対象の位置およびサイズを参照して、限定顔探索エリアおよび顔サイズの各々を設定ないし更新する。ステップＳ２０３の処理が完了すると、ステップＳ１８５に戻る。
【０１０２】
ステップＳ１９５の判別結果がＹＥＳであれば、フラグＦＬＧ＿ｄｉｓｃｏｖｅｒが“１”であるか否かをステップＳ２０５で判別し、タイマ２６ｔの測定値が上限値に達したか否かをステップＳ２０７で判別する。ステップＳ２０５の判別結果およびステップＳ２９７の判別結果のいずれもＮＯであれば、ステップＳ１９９に移行する。ステップＳ２０５の判別結果がＹＥＳであれば、そのまま処理を終了する。ステップＳ２０７の判別結果がＹＥＳであれば、タイムアウトの発生を表明するべくステップＳ２０９でフラグＦＬＧ＿ｔｉｍｅｏｕｔを“１”に設定し、その後に処理を終了する。
【０１０３】
図３３を参照して、ステップＳ２１１では顔枠ＬＦＤのサイズの可変範囲を定義するべく、最大サイズＬＳＺｍａｘおよび最小サイズＬＳＺｍｉｎを設定する。最大サイズＬＳＺｍａｘおよび最小サイズＬＳＺｍｉｎはそれぞれ、ステップＳ２０１で設定ないし更新された顔サイズの１．１５倍の値および０．８５倍の値を示す。ステップＳ２１３では垂直同期信号Ｖｓｙｎｃが発生したか否かを判別し、判別結果がＮＯからＹＥＳに更新されるとステップＳ２１５で顔枠ＬＦＤのサイズを“ＬＳＺｍａｘ”に設定する。
【０１０４】
ステップＳ２１７では、顔枠ＬＦＤを限定顔探索エリアの開始位置（左上位置）に配置する。ステップＳ２１９では、顔枠ＬＦＤに属する一部の探索画像データを探索画像エリア３２ｃから読み出し、読み出された探索画像データの特徴量を算出する。ステップＳ２２１では、顔辞書番号ＦＣを“１”に設定する。
【０１０５】
ステップＳ２２３では、ステップＳ２１９で算出された特徴量を、顔辞書ＤＣ＿Ｆに収められた５つの辞書画像のうち顔辞書番号ＦＣに対応する辞書画像の特徴量と照合する。ステップＳ２２５では照合結果である符合度が閾値ＴＨｔｉｍｅｓｅｔ以上であるか否かを判別し、ステップＳ２２７では顔辞書番号ＦＣが“５”であるか否かを判別する。
【０１０６】
ステップＳ２２５の判別結果がＹＥＳであれば、顔画像が検出されたことを表明すべく、ステップＳ２３１でフラグＦＬＧ＿ｄｉｓｃｏｖｅｒを“１”に設定する。設定が完了すると、処理を終了する。ステップＳ２２７の判別結果がＮＯであれば、ステップＳ２２９で顔辞書番号ＦＣをインクリメントし、その後にステップＳ２２３に戻る。
【０１０７】
ステップＳ２２５の判別結果がＮＯでかつステップＳ２２７の判別結果がＹＥＳであれば、顔枠ＬＦＤが限定顔探索エリアの終了位置（右下位置）に到達したか否かをステップＳ２３３で判別する。判別結果がＮＯであれば、ステップＳ２３７で顔枠ＬＦＤを既定量だけラスタ方向に移動させ、その後にステップＳ２１９に戻る。判別結果がＹＥＳであれば、顔枠ＬＦＤのサイズが“ＬＳＺｍｉｎ”以下であるか否かをステップＳ２３５で判別する。判別結果がＮＯであれば、ステップＳ２３９で顔枠ＬＦＤのサイズを“５”だけ縮小し、ステップＳ２４１で顔枠ＬＦＤを限定顔探索エリアの開始位置に配置し、その後にステップＳ２１９に戻る。ステップＳ２３５の判別結果がＹＥＳであれば、処理を終了する。
【０１０８】
以上の説明から分かるように、イメージャ１６によって捉えられた被写界を表す探索画像データは、メモリ制御回路３０によってＳＤＲＡＭ３２の探索画像エリア３２ｃに取り込まれる。ＣＰＵ２６は、顔辞書ＤＣ＿Ｆに収められた辞書画像に対する符合度が閾値ＴＨｔｒａｃｅを上回る顔画像を探索画像エリア３２ｃに格納された探索画像データから探索し(S81~S125, S35~S45)、これによって探知された顔画像上の特徴画像を追尾対象として指定し(S49)、そして指定された追尾対象を探索画像データを参照して追尾する(S131~S143, S181~S209, S7, S9, S15)。追尾時間は、探知された顔画像の辞書画像に対する符合度が大きいほど長くなるように制御される(S51)。また、顔画像の探索処理は、追尾処理が起動状態にあるとき停止される(S31~S33, S47, S53~S67, S71)。
【０１０９】
このように、辞書画像に対する符合度が基準を上回る顔画像が探索処理によって探知されると、探知された顔画像上の特徴画像を追尾する追尾処理が探索処理に代替して起動される。起動された追尾処理の時間は、探知された顔画像の辞書画像に対する符合度が大きいほど長くなる。したがって、符合度が高い顔画像上の特徴画像は持続的に追尾される一方、符合度が低い顔画像つまり誤検出の可能性のある顔画像上の特徴画像に対する追尾は早めに終了される。こうして、追尾性能が向上する。
【０１１０】
なお、この実施例では、追尾タスク２において起動されるタイマ２６ｔの測定値は固定的な上限値と比較される（図３２のステップＳ２０７参照）。しかし、上限値は限定顔検出タスクにおいて得られた符合度を参照して調整するようにしてもよい。この場合、図３２に示す処理の一部を図３５に示すように修正する必要がある。
【０１１１】
図３５を参照して、ステップＳ２０５の判別結果がＮＯであれば、現フレームに対応して限定顔検出タスクで得られた符合度の最大値をステップＳ２５１で検出する。ステップＳ２５３では、検出された最大値が閾値ＴＨｌｉｍｉｔ以上であるか否かを判別する。ここで、閾値ＴＨｌｉｍｉｔは、閾値ＴＨｔｒａｃｅ以上でかつ閾値ＴＨｔｉｍｅｓｅｔ未満の値を示す。判別結果がＮＯであればそのままステップＳ２０７に進む一方、判別結果がＹＥＳであればステップＳ２５５で上限値を増大させてからステップＳ２０７に進む。これによって、追尾対象の周辺で検出された顔画像の符合度に応じて追尾タスク２の起動時間を延長することができる。
【０１１２】
また、この実施例では、閾値Ｔｔａｒｃｅを上回る符合度を有する顔画像が主要顔画像として現れたときに速やかに追尾タスク１または追尾タスク２を起動するようにしている（図２２〜図２４参照）。しかし、追尾タスク１または追尾タスク２は、主要顔画像が探知できなくなった時点で起動するようにしてもよい。この場合、図２２〜図２３に示す処理は、図３６に示すように修正し、かつ図３７〜図３８に示す限定顔検出タスク２を追加的に実行する必要がある。
【０１１３】
図３６を参照して、ステップＳ４９の処理が完了すると、限定顔検出タスク２が起動中であるか否かをステップＳ２６１で判別する。判別結果がＮＯであれば、ステップＳ２６３でフラグＦＬＧ＿ｄｉｓｃｏｖｅｒ２を“０”に設定し、ステップＳ２６５で限定顔検出タスク２を起動し、その後にステップＳ２６７に進む。これに対して、ステップＳ２６１の判別結果がＹＥＳであれば、そのままステップＳ２６７に進む。
【０１１４】
ステップＳ２６７では、限定顔探索エリアおよび顔サイズを設定ないし更新する。限定顔探索エリアおよび顔サイズは、ステップＳ３９で決定された主要顔画像を参照して初期的に設定され、限定顔検出タスク２の下で検出された顔画像（符合度が閾値ＴＨｔｒａｃｅ以上の顔画像）を参照して更新される。ステップＳ２６９では、フラグＦＬＧ＿ｄｉｓｃｏｖｅｒ２が“１”を示すか否かを判別する。判別結果がＹＥＳであれば、ステップＳ２７１で追尾対象を特定（更新）し、その後にステップＳ２６１に戻る。一方、判別結果がＮＯであればステップＳ５１に進む。
【０１１５】
図３７〜図３８を参照して、ステップＳ２８１〜Ｓ２９３，Ｓ２９７〜Ｓ２９９，およびＳ３０３〜Ｓ３１１では図３３〜図３４に示すステップＳ２１１〜Ｓ２２３，Ｓ２２７〜Ｓ２２９およびＳ２３３〜Ｓ２４１と同様の処理を実行するため、重複した説明は省略する。ステップＳ２９３に続くステップＳ２９５では、照合処理の結果である符合度が閾値ＴＨｔｒａｃｅ以上であるか否かを判別する。判別結果がＮＯであればステップＳ２９７に進む一方、判別結果がＹＥＳであればステップＳ３０１でフラグＦＬＧ＿ｄｉｓｃｏｖｅｒ２を“１”に更新してから処理を終了する。
【０１１６】
さらに、この実施例では、マルチタスクＯＳおよびこれによって実行される複数のタスクに相当する制御プログラムは、フラッシュメモリ４２に予め記憶される。しかし、図３９に示すように通信Ｉ／Ｆ４８をディジタルカメラ１０に設け、一部の制御プログラムを内部制御プログラムとしてフラッシュメモリ４４に当初から準備する一方、他の一部の制御プログラムを外部制御プログラムとして外部サーバから取得するようにしてもよい。この場合、上述の動作は、内部制御プログラムおよび外部制御プログラムの協働によって実現される。
【０１１７】
さらに、この実施例では、ＣＰＵ２６によって実行される処理を上述の要領で複数のタスクに区分するようにしている。しかし、各々のタスクをさらに複数の小タスクに区分してもよく、さらには区分された複数の小タスクの一部を他のタスクに統合するようにしてもよい。また、各々のタスクを複数の小タスクに区分する場合、その全部または一部を外部サーバから取得するようにしてもよい。
【符号の説明】
【０１１８】
１０  …ディジタルカメラ
１２  …フォーカスレンズ
１４  …絞り機構
１６  …イメージャ
２２  …ＡＥ評価回路
２４  …ＡＦ評価回路
２６  …ＣＰＵ
３２  …ＳＤＲＡＭ
４４  …フラッシュメモリ
【図１】
2012170028.tif 000003
【図２】
2012170028.tif 000004
【図３】
2012170028.tif 000005
【図４】
2012170028.tif 000006
【図５】
2012170028.tif 000007
【図６】
2012170028.tif 000008
【図７】
2012170028.tif 000009
【図８】
2012170028.tif 000010
【図９】
2012170028.tif 000011
【図１０】
2012170028.tif 000012
【図１１】
2012170028.tif 000013
【図１２】
2012170028.tif 000014
【図１３】
2012170028.tif 000015
【図１４】
2012170028.tif 000016
【図１５】
2012170028.tif 000017
【図１６】
2012170028.tif 000018
【図１７】
2012170028.tif 000019
【図１８】
2012170028.tif 000020
【図１９】
2012170028.tif 000021
【図２０】
2012170028.tif 000022
【図２１】
2012170028.tif 000023
【図２２】
2012170028.tif 000024
【図２３】
2012170028.tif 000025
【図２４】
2012170028.tif 000026
【図２５】
2012170028.tif 000027
【図２６】
2012170028.tif 000028
【図２７】
2012170028.tif 000029
【図２８】
2012170028.tif 000030
【図２９】
2012170028.tif 000031
【図３０】
2012170028.tif 000032
【図３１】
2012170028.tif 000033
【図３２】
2012170028.tif 000034
【図３３】
2012170028.tif 000035
【図３４】
2012170028.tif 000036
【図３５】
2012170028.tif 000037
【図３６】
2012170028.tif 000038
【図３７】
2012170028.tif 000039
【図３８】
2012170028.tif 000040
【図３９】
2012170028.tif 000041