追尾装置
【構成】イメージャ16によって捉えられた被写界を表す探索画像データは、メモリ制御回路30によってSDRAM32の探索画像エリア32cに取り込まれる。CPU26は、顔辞書DC_Fに収められた辞書画像に対する符合度が閾値を上回る顔画像を探索画像エリア32cに格納された探索画像データから探索し、探知された顔画像上の特徴画像を追尾対象として指定し、そして指定された追尾対象を探索画像データを参照して追尾する。追尾時間は、探知された顔画像の辞書画像に対する符合度が大きいほど長くなるように制御される。また、顔画像の探索処理は、追尾処理が起動状態にあるとき停止される。
【効果】追尾性能が向上する。
【効果】追尾性能が向上する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、追尾装置に関し、特に、被写界に現れた特定物体を追尾する、追尾装置に関する。
【背景技術】
【0002】
この種の装置の一例が、特許文献1に開示されている。この背景技術によれば、画像相関追尾回路は、動画像のフレーム間の相関性に基づき任意の被写体を追尾する。一方、顔検出回路は、撮影画面から特定被写体(=顔)を検出して、被写体領域情報と検出信頼度を出力する。特定被写体を追尾する回路は、画像相関追尾回路によって検出された被写体が特定被写体と同一であると判断されたときに、画像相関追尾回路から顔検出回路に移行される。これによって、特定被写体を的確に追尾することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−154286号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、背景技術では、検出信頼度の大きさが追尾動作に反映されることはなく、追尾性能に限界がある。
【0005】
それゆえに、この発明の主たる目的は、追尾性能を高めることができる、追尾装置を提供することである。
【課題を解決するための手段】
【0006】
この発明に従う追尾装置(10:実施例で相当する参照符号。以下同じ)は、画像を繰り返し撮像する撮像手段(16, 20, 34)、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索手段(S81~S125, S35~S45, S261~S267, S281~S311)、探索手段によって探知された物体像上の特徴画像を追尾する追尾手段(S131~S143, S181~S209, S7, S9, S15)、および探索手段によって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾手段の追尾時間を調整する調整手段(S51)を備える。
【0007】
好ましくは、追尾手段は特徴画像に注目して撮像条件を調整する撮像条件調整手段(S9, S15)を含む。
【0008】
好ましくは、撮像手段によって取り込まれた画像を画面に表示する表示手段(S1)がさらに備えられ、追尾手段は特徴画像を指向するキャラクタを表示手段によって表示された画像に多重するキャラクタ多重手段(S7)を含む。
【0009】
好ましくは、調整手段によって設定された追尾時間が基準値を下回るとき特徴パターンに符合する物体像を追尾手段によって追尾された特徴画像の近傍から限定的に探索する限定探索手段(S211~S229, S233~S241)、および限定探索手段の探知に応答して追尾手段の追尾時間を延長する延長手段(S231, S69)がさらに備えられる。
【0010】
さらに好ましくは、限定探索手段は、特徴画像の近傍の存在する部分画像を互いに異なる態様で繰り返し指定する指定手段(S217, S237~S241)、および指定手段によって指定された部分画像の特徴パターンに対する符合度を算出する符合度算出手段(S223~S229)を含み、符合度算出手段によって算出された符合度に基づいて基準値を調整する基準値調整手段(S251~S253)がさらに備えられる。
【0011】
好ましくは、追尾手段は特徴画像の消失に応答して追尾処理を停止する追尾停止手段(S145, S193)を含む。
【0012】
好ましくは、追尾手段および探索手段を代替的に起動する制御手段(S31~S33, S47, S53~S67, S71, S269)がさらに備えられる。
【0013】
さらに好ましくは、制御手段は探索手段の非探知に応答して追尾手段を起動する追尾起動手段(S269)を含む。
【0014】
好ましくは、探索手段によって探知された物体像の一部を特徴画像として指定する指定手段(S49, S271)がさらに備えられる。
【0015】
この発明に従う追尾制御プログラムは、画像を繰り返し撮像する撮像手段(16, 20, 34)を備える追尾装置(10)のプロセッサ(26)に、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を実行させるための、追尾制御プログラムである。
【0016】
この発明に従う追尾制御方法は、画像を繰り返し撮像する撮像手段(16, 20, 34)を備える追尾装置(10)によって実行される追尾制御方法であって、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を備える。
【0017】
この発明に従う外部制御プログラムは、画像を繰り返し撮像する撮像手段(16, 20, 34)、およびメモリ(44)に保存された内部制御プログラムに従う処理を実行するプロセッサ(26)を備える追尾装置(10)に供給される外部制御プログラムであって、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を内部制御プログラムと協働してプロセッサに実行させるための、外部制御プログラムである。
【0018】
この発明に従う追尾装置(10)は、画像を繰り返し撮像する撮像手段(16, 20, 34)、外部制御プログラムを受信する受信手段(48)、および受信手段によって受信された外部制御プログラムとメモリ(44)に保存された内部制御プログラムに従う処理を実行するプロセッサ(26)を備える追尾装置であって、外部制御プログラムは、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を内部制御プログラムと協働して実行するプログラムに相当する。
【発明の効果】
【0019】
この発明によれば、特徴パターンに対する符合度が基準を上回る物体像が探索処理によって探知されると、探知された物体像上の特徴画像を追尾する追尾処理が起動される。起動された追尾処理の時間は、探知された物体像の特徴パターンに対する符合度が大きいほど長くなる。したがって、符合度が高い物体像上の特徴画像は持続的に追尾される一方、符合度が低い物体像上の特徴画像に対する追尾は早めに終了される。こうして、追尾性能が向上する。
【0020】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0021】
【図1】この発明の一実施例の基本的構成を示すブロック図である。
【図2】この発明の一実施例の構成を示すブロック図である。
【図3】(A)は撮像面で捉えられる被写界の一例を示す図解図であり、(B)はLCDモニタの表示の一例を示す図解図である。
【図4】撮像面における評価エリアの割り当て状態の一例を示す図解図である。
【図5】顔検出処理に用いられる顔枠の一例を示す図解図である。
【図6】顔検出処理において参照される顔辞書の構成の一例を示す図解図である。
【図7】顔検出処理の一部を示す図解図である。
【図8】顔検出処理に用いられるレジスタの構成の一例を示す図解図である。
【図9】(A)は追尾動作の一例を示す図解図であり、(B)は追尾動作の他の一例を示す図解図である。
【図10】追尾対象および追尾探索エリアの割り当て状態の一例を示す図解図である。
【図11】追尾処理に用いられる追尾枠の一例を示す図解図である。
【図12】追尾処理の一部を示す図解図である。
【図13】追尾処理に用いられるレジスタの構成の一例を示す図解図である。
【図14】顔検出処理および追尾処理の一例を示す図解図である。
【図15】追尾対象,追尾探索エリアおよび限定顔探索エリアの割り当て状態の一例を示す図解図である。
【図16】限定顔探索タスクに用いられる追尾枠の一例を示す図解図である。
【図17】限定顔探索タスクの下での顔検出処理の一部を示す図解図である。
【図18】顔検出処理および追尾処理の他の一例を示す図解図である。
【図19】顔検出処理および追尾処理のその他の一例を示す図解図である。
【図20】顔検出処理および追尾処理のさらにその他の一例を示す図解図である。
【図21】図2実施例に適用されるCPUの動作の一部を示すフロー図である。
【図22】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図23】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図24】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図25】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図26】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図27】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図28】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図29】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図30】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図31】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図32】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図33】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図34】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図35】他の実施例に適用されるCPUの動作の一部を示すフロー図である。
【図36】その他の実施例に適用されるCPUの動作の一部を示すフロー図である。
【図37】その他の実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図38】その他の実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図39】この発明のさらにその他の実施例の構成を示すブロック図である。
【発明を実施するための形態】
【0022】
以下、この発明の実施の形態を図面を参照しながら説明する。
[基本的構成]
【0023】
図1を参照して、この実施例の追尾装置は、基本的に次のように構成される。撮像手段1は、画像を繰り返し撮像する。探索手段2は、特徴パターンに対する符合度が基準を上回る物体像を撮像手段1によって取り込まれた画像から探索する。追尾手段3は、探索手段2によって探知された物体像上の特徴画像を追尾する。調整手段4は、探索手段2によって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾手段3の追尾時間を調整する。
【0024】
特徴パターンに対する符合度が基準を上回る物体像が探索処理によって探知されると、探知された物体像上の特徴画像を追尾する追尾処理が起動される。起動された追尾処理の時間は、探知された物体像の特徴パターンに対する符合度が大きいほど長くなる。したがって、符合度が高い物体像上の特徴画像は持続的に追尾される一方、符合度が低い物体像上の特徴画像に対する追尾は早めに終了される。こうして、追尾性能が向上する。
[実施例]
【0025】
図2を参照して、この実施例のディジタルカメラ10は、ドライバ18aおよび18bによってそれぞれ駆動されるフォーカスレンズ12および絞り機構14を含む。これらの部材を経た被写界の光学像は、イメージャ16の撮像面に照射され、光電変換を施される。これによって、被写界像を表す電荷が生成される。
【0026】
電源が投入されると、CPU26は、動画取り込み処理を開始するべく、撮像タスクの下で露光動作および電荷読み出し動作の繰り返しをドライバ18cに命令する。ドライバ18cは、図示しないSG(Signal Generator)から周期的に発生する垂直同期信号Vsyncに応答して、撮像面を露光し、かつ撮像面で生成された電荷をラスタ走査態様で読み出す。イメージャ16からは、読み出された電荷に基づく生画像データが周期的に出力される。
【0027】
前処理回路20は、イメージャ16から出力された生画像データにディジタルクランプ,画素欠陥補正,ゲイン制御などの処理を施す。これらの処理を施された生画像データは、メモリ制御回路30を通してSDRAM32の生画像エリア32aに書き込まれる。
【0028】
後処理回路34は、生画像エリア32aに格納された生画像データをメモリ制御回路30を通して読み出し、読み出された生画像データに色分離処理,白バランス調整処理およびYUV変換処理を施す。後処理回路34はさらに、YUV形式に従う画像データに対して表示用のズーム処理と探索用のズーム処理とを並列的に実行する。この結果、YUV形式に従う表示画像データおよび探索画像データが個別に作成される。
【0029】
表示画像データは、メモリ制御回路30によってSDRAM32の表示画像エリア32bに書き込まれる。また、探索画像データは、メモリ制御回路30によってSDRAM32の探索画像エリア32cに書き込まれる。
【0030】
LCDドライバ36は、表示画像エリア32bに格納された表示画像データをメモリ制御回路30を通して繰り返し読み出し、読み出された画像データに基づいてLCDモニタ38を駆動する。この結果、被写界のリアルタイム動画像(スルー画像)がモニタ画面に表示される。
【0031】
後述するフラグFLG_targetは、探索画像データ上で主要顔画像が決定されたか否かを識別するためのフラグであり、“0”が未定を示す一方、“1”が決定を示す。
【0032】
フラグFLG_targetが“1”であれば、CPU26は、顔枠キャラクタ表示命令をキャラクタジェネレータ46に与える。キャラクタジェネレータ46は対応するキャラクタデータをLCDドライバ36に与え、LCDドライバ36は与えられたキャラクタデータに基づいてLCDモニタ38を駆動する。この結果、主要顔画像(または後述する追尾対象)を囲う顔枠キャラクタがLCDモニタ38にOSD態様で表示される。したがって、図3(A)に示す被写界がイメージャ16によって捉えられた場合、顔枠キャラクタは図3(B)に示す要領でスルー画像に多重される。
【0033】
なお、フラグFLG_targetが“0”であれば、CPU26は、顔枠非表示命令をキャラクタジェネレータ46に与える。キャラクタジェネレータ46はキャラクタデータの出力を停止し、この結果、顔枠キャラクタが非表示とされる。
【0034】
CPU26は続いて、AE/AFエリアを設定する。AE/AFエリアは、フラグFLG_faceが“1”を示すとき顔枠キャラクタによって囲まれる画像の近傍の位置に設定され、フラグFLG_faceが“0”を示すとき図4に示す評価エリアEVAの中央に設定される。AE/AFエリアの設定が完了すると、CPU26は、AE処理およびAF処理を実行する。
【0035】
図4を参照して、評価エリアEVAは水平方向および垂直方向の各々において64分割され、合計4096個の分割エリアによって評価エリアEVAが形成される。また、図2に示す前処理回路20は、上述した処理に加えて、生画像データを簡易的にRGBデータに変換する簡易RGB変換処理を実行する。
【0036】
AE評価回路22は、前処理回路20によって生成されたRGBデータのうち評価エリアEVAに属するRGBデータを分割エリア毎に積分する。この積分処理は、垂直同期信号Vsyncが発生する毎に実行される。これによって、4096個の積分値つまり4096個のAE評価値が、垂直同期信号Vsyncに応答してAE評価回路22から出力される。
【0037】
また、AF評価回路24は、前処理回路20によって生成されたRGBデータのうち評価エリアEVAに属するRGBデータの高周波成分を分割エリア毎に積分する。この積分処理もまた、垂直同期信号Vsyncが発生する毎に実行される。これによって、4096個の積分値つまり4096個のAF評価値が、垂直同期信号Vsyncに応答してAF評価回路24から出力される。
【0038】
AE処理では、AE評価回路22から出力された4096個のAE評価値のうちAE/AFエリアに属する一部のAE評価値に基づいて、適正EV値が算出される。算出された適正EV値を定義する絞り量および露光時間はドライバ18bおよび18cにそれぞれ設定され、これによってAE/AFエリアに属する画像の明るさが適度に調整される。
【0039】
AF処理では、AF評価回路24から出力された4096個のAF評価値のうちAE/AFエリアに属する一部のAF評価値に基づいて合焦点が探索され、フォーカスレンズ12は参照されたAF評価値の総和が最大となる位置に配置される。これによって、AE/AFエリアに属する画像の鮮鋭度が向上する。
【0040】
キー入力装置28に設けられたムービボタン28mvによって記録開始操作が行われると、CPU26は、動画記録処理を開始するべく、記録開始命令をメモリI/F40に与える。同じムービボタン28mvによって記録終了操作が行われると、CPU26は、動画記録処理を終了するべく、記録終了命令をメモリI/F40に与える。メモリI/F40は、記録開始命令から記録終了命令までの期間に、YUV形式の画像データをメモリ制御回路30を通してYUV画像エリア32cから繰り返し読み出し、読み出された画像データをファイル形式で記録媒体42に記録する。
【0041】
CPU26はまた、撮像タスクと並列して実行される顔検出/追尾制御タスクの下で、フラグFLG_faceを“0”に設定し、顔検出タスクを起動する。起動した顔検出タスクの下では、探索画像エリア32cに格納された探索画像データから人物の顔画像が繰り返し探索される。このとき、図5に示す要領でサイズが調整される顔枠FDと図6に示す5つの辞書画像を収めた顔辞書DC_Fとが用いられる。
【0042】
顔辞書DC_Fは、フラッシュメモリ44に保存される。また、顔辞書DC_Fにおいて、FC=1に割り当てられた辞書画像は正面を向く顔画像に相当し、FC=2に割り当てられた辞書画像は左斜め前を向く顔画像に相当し、FC=3に割り当てられた辞書画像は左を向く顔画像に相当する。さらに、FC=4に割り当てられた辞書画像は右斜め前を向く顔画像に相当し、FC=5に割り当てられた辞書画像は右を向く顔画像に相当する。
【0043】
顔検出タスクではまず、評価エリアEVAの全域が顔探索エリアとして設定される。また、顔枠FDのサイズの可変範囲を定義するべく、最大サイズFSZmaxが“200”に設定され、最小サイズFSZminが“20”に設定される。顔枠FDは、垂直同期信号Vsyncが発生する毎に、顔探索エリアの開始位置(左上位置)から終了位置(右下位置)に向かって、ラスタ走査態様で既定量ずつ移動される(図7参照)。また、顔枠FDのサイズは、顔枠FDが終了位置に到達する毎に“FSZmax”から“FSZmin”まで“5”ずつ縮小される。
【0044】
顔枠FDに属する一部の探索画像データは、メモリ制御回路30を通して探索画像エリア32cから読み出される。読み出された探索画像データの特徴量は、顔辞書DC_Fに収められた5つの辞書画像の各々の特徴量と照合される。照合結果である符合度が閾値THface以上であれば、顔画像が検出されたものとみなされる。現時点の顔枠FDの位置およびサイズ,照合先の辞書画像を識別する顔辞書番号,ならびに照合結果である符合度は、図8に示すレジスタRGSTtmpに顔情報として登録される。また、レジスタRGSTtmpに記述された顔数は、このような登録処理に伴ってインクリメントされる。
【0045】
最小サイズFSZminを有する顔枠FDが顔探索エリアの終了位置に到達すると、CPU26は、レジスタRGSTtmpの記述をレジスタRGSToutに複製し、その後にレジスタRGSTtmpをクリアする。フラグFLG_faceは、レジスタRGSToutに記述された顔数が“0”のとき“0”に設定され、レジスタRGSToutに記述された顔数が“1”以上のとき“1”に設定される。
【0046】
こうして設定されたフラグFLG_faceの状態は、顔検出タスク/追尾制御タスクの下で判別される。FLG_face=0であれば、主要顔画像が未定であることを表明するべく、フラグFLG_targetが“0”に設定される。一方、FLG_face=1であれば、顔検出タスクによって検出された1または2以上の顔画像のいずれか1つが主要顔画像として決定される。主要顔画像は、レジスタRGSToutに登録された1または2以上の顔枠のうち最大サイズの顔枠に相当する顔画像である。フラグFLG_targetは、主要顔画像が決定されたことを表明するべく、“1”に更新される。
【0047】
続いて、決定された主要顔画像に対応する符合度がレジスタRGSToutから検出され、検出された符合度が閾値THfaceを上回る閾値THtraceと比較される。顔検出タスクは符合度が閾値THtrace未満である限り起動し続け、上述した処理は顔検出タスクによって制御されるフラグFLG_faceの値を参照して繰り返し実行される。
【0048】
これに対して、検出された符合度が閾値THtrace以上であれば、顔検出タスクが停止され、主要顔画像上の特徴部が追尾対象として決定される。ここで、追尾対象は矩形を有するように定義される。追尾対象が決定されると、主要顔画像に対応する符合度が、閾値THtraceを上回る閾値THtimesetと比較される。
【0049】
符合度が閾値THtimeset以上であれば、フラグFLG_lostが“0”に設定され、追尾タスク1に従う処理が実行される。符合度が閾値THtimeset未満であれば、フラグFLG_lost,FLG_discoverおよびFLG_timeoutが“0”に設定され、追尾タスク2に従う処理が実行される。
【0050】
撮像面に向かって左斜め前を向く人物HM1が図9(A)に示すように撮像面の左側で捉えられ、この状態で算出された符合度が閾値THtimeset以上であれば、図10に示す要領で追尾対象が定義され、追尾タスク1が起動される。
【0051】
また、撮像面に向かって左斜め前やや下方を向く人物HM2が図9(B)に示すように撮像面の左側で捉えられ、この状態で算出された符合度が閾値THtrace以上でかつ閾値THtimeset未満であれば、図15に示す要領で追尾対象が定義され、追尾タスク2が起動される。
【0052】
追尾タスク1ではまず、上述の要領で決定された追尾対象を覆う位置に追尾探索エリアが設定される。追尾探索エリアは、追尾対象よりも大きい楕円形状を有し、図10に示す要領で定義される。垂直同期信号Vsyncが発生すると、フラグFLG_traceが“0”に設定され、追尾処理が実行される。
【0053】
追尾処理では、追尾対象を表す一部の探索画像データがメモリ制御回路30を通して探索画像エリア32cから読み出され、読み出された探索画像データの特徴量つまり追尾対象の特徴量が算出される。次に、図11に示す追尾枠TDのサイズの可変範囲を定義するべく、最大サイズTSZmaxが追尾対象のサイズの1.15倍の値に設定され、最小サイズTSZminが追尾対象のサイズの0.85倍の値に設定される。
【0054】
追尾枠TDは、追尾探索エリアの開始位置から終了位置に向かって、ラスタ走査態様で既定量ずつ移動される(図12参照)。また、追尾枠TDのサイズは、追尾枠TDが終了位置に到達する毎に“TSZmax”から“TSZmin”まで“5”ずつ縮小される。
【0055】
追尾枠TDに属する一部の探索画像データはメモリ制御回路30を通して探索画像エリア32cから読み出され、読み出された探索画像データの特徴量が追尾対象の特徴量と照合される。照合結果である符合度が閾値THobj以上であれば、現時点の追尾枠TDのサイズおよび位置と符合度とが、図13に示す追尾用レジスタRGSTchaseに追尾候補情報として登録される。また、1または2以上の追尾候補が検出されたことを表明するべく、フラグFLG_traceが“1”に設定される。追尾処理は、最小サイズTSZminを有する追尾枠TDが追尾探索エリアの終了位置に到達した時点で終了される。
【0056】
追尾処理が終了された時点のフラグFLG_traceの状態が“1”であれば、符合度が最大値を示す追尾候補が追尾用レジスタRGSTchaseに登録された1または2以上の追尾候補の中から検出され、検出された追尾候補が新規の追尾対象として決定される。楕円形状を有する追尾探索エリアは、決定された追尾対象を覆う位置に設定される。詳しくは、追尾探索エリアは、追尾対象の移動履歴を参照して、追尾対象が移動すると思われる位置を捉えるように設定される。追尾探索エリアがこうして更新されると、フラグFLG_traceが“0”に設定され、追尾処理が再開される。
【0057】
これに対して、追尾処理が完了した時点のフラグFLG_traceの状態が“0”のままであれば、追尾対象が消失したことを表明するべく、フラグFLG_lostが“1”に更新される。さらに、主要顔画像が未定であることを表明するべく、フラグFLG_targetが“0”に設定される。フラグFLG_targetの設定が完了すると、フラグFLG_faceが“0”に設定され、顔検出タスクが再起動される。
【0058】
このように、追尾タスク1は、顔検出タスクに対して代替的に実行される。図14を参照して、辞書画像に対する主要顔画像の符合度が閾値THtimeset以上であれば、顔検出タスクに代えて追尾タスク1が起動される。追尾タスク1では、追尾対象を追尾する処理と追尾設定(追尾対象および追尾探索エリアの設定)を更新する処理とが繰り返し実行される。追尾対象が消失すると、追尾処理に失敗したとみなされ、追尾タスク1に代えて顔検出タスクが起動される。
【0059】
顔枠キャラクタは、追尾対象を囲うようにLCDモニタ38にOSD態様で表示される。したがって、人物HM1が後ろを振り返りながら撮像面の左側から右側に移動したとき、顔枠キャラクタの表示位置は図9(A)に示す要領で変化する。
【0060】
追尾タスク2は、辞書画像に対する主要顔画像の符合度が閾値THtrace以上でかつ閾値THtimeset未満のときに起動される。追尾タスク2でも、決定された追尾対象よりも大きい楕円形状の追尾探索エリアが追尾対象を覆う位置に設定される(図15参照)。ただし、追尾タスク2では、追尾時間を制限するべく、タイマ26tのリセット&スタートが追加的に実行される。垂直同期信号Vsyncが発生すると、フラグFLG_traceが“0”に設定され、追尾枠TDを用いた上述の追尾処理が実行される。
【0061】
追尾処理が完了した時点のフラグFLG_traceの状態が“1”であれば、1または2以上の追尾候補が検出されたとみなして、限定顔検出タスクが起動される。続いて、追尾用レジスタRGSTchaseに登録された1または2以上の追尾候補のいずれか1つが追尾対象として決定され、決定された追尾対象を覆う位置に追尾探索エリアが設定される。限定顔検出タスクにおいて参照される限定顔探索エリアおよび顔サイズは、追尾対象の位置およびサイズに基づいて図15に示す要領で設定される。限定顔探索エリアおよび顔サイズがこうして更新されると、フラグFLG_traceが“0”に設定され、追尾処理が再起動される。したがって、追尾タスク2では、追尾処理および限定顔検出タスクが並列して実行される。
【0062】
限定顔検出タスクではまず、図16に示す顔枠LFDのサイズの可変範囲を定義するべく、最大サイズLSZmaxおよび最小サイズLSZminが設定される。最大サイズLSZmaxおよび最小サイズLSZminはそれぞれ、顔サイズの1.15倍の値および0.85倍の値を示す。顔枠LFDは、垂直同期信号Vsyncが発生する毎に、限定顔探索エリアの開始位置(左上位置)から終了位置(右下位置)に向かって、ラスタ走査態様で既定量ずつ移動される(図17参照)。また、顔枠LFDのサイズは、顔枠LFDが終了位置に到達する毎に“LSZmax”から“LSZmin”まで“5”ずつ縮小される。
【0063】
顔枠LFDに属する一部の探索画像データは探索画像エリア32cから読み出され、読み出された探索画像データの特徴量は顔辞書DC_Fに収められた5つの辞書画像の各々の特徴量と照合される。照合結果である符合度が閾値THtimeset以上となると、顔画像が検出されたことを表明すべく、フラグFLG_discoverが“1”に設定される。限定顔検出タスクは、フラグFLG_discoverが“1”に設定された時点、或いは最小サイズLSZminの顔枠LFDが顔探索エリアの終了位置に達した時点で終了される。
【0064】
フラグFLG_discoverが“0”のままで、かつタイマ26tの測定値が上限値に達しないうちは、レジスタRGSTchaseに登録された1または2以上の追尾候補のいずれか1つが追尾対象として決定され、決定された追尾対象を覆う位置に追尾探索エリアが設定され、そして限定顔検出タスクにおいて参照される限定顔探索エリアおよび顔サイズが追尾対象の位置およびサイズに基づいて設定される。追尾処理は、フラグFLG_traceが“0”に設定された後に再開される。
【0065】
追尾処理が完了した時点のフラグFLG_traceの状態が“0”のままであれば、追尾対象が消失したことを表明するべく、フラグFLG_lostが“1”に更新される。さらに、主要顔画像が未定であることを表明するべく、フラグFLG_targetが“0”に設定される。フラグFLG_targetの設定が完了すると、フラグFLG_faceが“0”に設定され、顔検出タスクが再起動される。
【0066】
追尾処理が完了した時点のフラグFLG_traceの状態は“1”を示すものの、フラグFLG_discoverが“0”のままでタイマ26tの測定値が上限値に達すると、タイムアウトの発生を表明するべくフラグFLG_timeoutが“1”に設定され、主要顔画像が未定であることを表明するべくフラグFLG_targetが“0”に設定される。フラグFLG_targetの設定が完了すると、フラグFLG_faceが“0”に設定され、顔検出タスクが再起動される。
【0067】
追尾処理が完了した時点のフラグFLG_traceの状態が“1”を示し、かつタイマ26tの測定値が上限値に達する前にフラグFLG_discoverが“1”に更新されると、追尾タスク2に代えて上述した追尾タスク1が起動される。
【0068】
図18〜図20を参照して、顔検出タスクの下で検出された顔画像のうち主要顔画像の符合度が閾値THtrace以上でかつ閾値THtimeset未満であれば、顔検出タスクに代えて追尾タスク2および限定顔検出タスクが起動される。追尾タスク2でも、追尾対象を追尾する処理と追尾設定を更新する処理とが繰り返し実行される。また、限定顔検出タスクでは、追尾対象の近傍から顔画像が探索される。
【0069】
顔画像が探知されないまま追尾対象が消失すると、追尾タスク2および限定顔検出タスクが停止され、代わりに顔検出タスクが起動される(図18参照)。追尾対象は捉えられているものの、追尾対象の近傍から顔画像が探知されないままタイムアウトが発生したときも、追尾タスク2および限定顔検出タスクが停止され、代わりに顔検出タスクが起動される(図19参照)。追尾対象が継続的に捉えられ、かつタイムアウトの発生前に追尾対象の近傍から顔画像が探知されると、追尾タスク2および限定顔検出タスクが停止され、上述した追尾タスク1が起動される(図20参照)。
【0070】
顔枠キャラクタは、追尾対象を囲うようにLCDモニタ38にOSD態様で表示されるため、人物HM2が後ろを振り返りながら撮像面の左側から右側に移動したとき、顔枠キャラクタの表示位置は図9(B)に示す要領で変化する。図9(B)については、追尾時間に制限があることから、顔枠キャラクタは人物HM2の移動の途中で非表示とされる。
【0071】
CPU26は、図21に示す撮像タスク,図22〜図24に示す顔検出/追尾制御タスク,図25〜図27に示す顔検出タスク,図28〜図30に示す追尾タスク1,図31〜図32に示す追尾タスク2,および図33〜図34に示す限定顔検出タスクを含む複数のタスクをマルチタスクOSの制御の下で並列的に実行する。なお、これらのタスクに対応する制御プログラムは、フラッシュメモリ44に記憶される。
【0072】
図21を参照して、ステップS1では動画取込み処理を開始する。この結果、被写界を表すスルー画像がLCDモニタ38に表示される。ステップS3では顔検出/追尾制御タスクを起動し、ステップS5ではフラグFLGtargetが“1”を示すか否かを判別する。フラグFLGtargetは主要顔画像が決定されたか否かを識別するためのフラグであり、“0”が未定を示す一方、“1”が決定を示す。
【0073】
フラグFLGtargetが“1”であれば、ステップS7で顔枠表示命令をキャラクタジェネレータ46に与える。この結果、主要顔画像または追尾対象を囲う位置に対応して顔枠キャラクタがLCDモニタ38に表示される。ステップS9では、顔枠キャラクタによって囲まれる画像の近傍に相当する位置にAE/AFエリアを設定する。
【0074】
一方、フラグFLGtargetが“0”であれば、ステップS11で顔枠非表示命令をキャラクタジェネレータ46に与える。この結果、顔枠キャラクタの表示が中止される。ステップS13では、評価エリアEVA上の中央にAE/AFエリアを設定する。
【0075】
ステップS9またはS13の処理が完了すると、ステップS15でAE処理およびAF処理を実行する。AE処理は、AE評価回路22から出力された4096個のAE評価値のうちAE/AFエリアに属する一部のAE評価値を参照して実行される。AF処理もまた、AF評価回路24から出力された4096個のAF評価値のうちAE/AFエリアに属する一部のAF評価値を参照して実行される。この結果、AE/AFエリアに属する画像の明るさおよび鮮鋭度が調整される。
【0076】
ステップS17ではムービボタン28mvによる記録開始操作が行われたか否かを判別し、ステップS19ではムービボタン28mvによる記録終了操作が行われたか否かを判別し、そしてステップS21では他の操作が行われたか否かを判別する。
【0077】
ステップS17の判別結果がYESであれば、動画記録処理を開始するべく、ステップS23で記録開始命令をメモリI/F40に与える。ステップS19の判別結果がYESであれば、動画記録処理を終了するべく、ステップS25で記録終了命令をメモリI/F40に与える。メモリI/F40は、記録開始命令から記録終了命令までの期間に、YUV形式の画像データをメモリ制御回路30を通してYUV画像エリア32cから繰り返し読み出し、読み出された画像データをファイル形式で記録媒体42に記録する。
【0078】
ステップS21の判別結果がYESであれば、ステップS27で他の処理を実行する。ステップS23,S25またはS27の処理が完了するか、或いはステップS17〜S21の判別結果のいずれもがNOであれば、ステップS5に戻る。
【0079】
図22を参照して、ステップS31ではフラグFLG_faceを“0”に設定し、ステップS33では顔検出タスクを起動し、そしてステップS35ではフラグFLG_faceが“1”であるか否かを判別する。フラグFLG_faceは少なくとも1つの顔画像が顔検出タスクによって検出されたか否かを識別するためのフラグであり、“0”が未検出を示す一方、“1”が検出を示す。
【0080】
ステップS35の判別結果がNOであれば、主要顔画像が未定であることを表明するべく、ステップS37でフラグFLG_targetを“0”に設定する。ステップS37の処理が完了すると、ステップS35に戻る。ステップS35の判別結果がYESであればステップS39に進み、顔検出タスクによって検出された1または2以上の顔画像のいずれか1つを主要顔画像として決定する。ステップS41では、主要顔画像が決定されたことを表明するべく、フラグFLG_targetを“1”に設定する。
【0081】
ステップS43では主要顔画像に割り当てられた符合度をレジスタRGSToutから検出し、ステップS45では検出された符合度が閾値THtrace以上であるか否かを判別する。判別結果がNOであればステップS35に戻り、判別結果がYESであればステップS47に進む。
【0082】
ステップS47では顔検出タスクを停止し、ステップS49では主要顔画像上の特徴部を追尾対象として決定する。ステップS51ではステップS43で検出された符合度が閾値THtimeset以上であるか否かを判別し、判別結果がYESであればステップS53に進む一方、判別結果がNOであればステップS61に進む。なお、閾値THtimesetは閾値THtraceを上回る。
【0083】
ステップS53ではフラグFLG_lostを“0”に設定し、ステップS55では追尾タスク1を起動する。フラグFLG_lostはステップS49で決定された追尾対象の存在/消失を識別するフラグであり、“0”が存在を示す一方、“1”が消失を示す。ステップS57ではフラグFLG_lostが“1”を示すか否かを繰り返し判別する。判別結果がNOからYESに更新されると、主要顔画像が未定であることを表明するべく、ステップS59でフラグFLG_targetを“0”に設定する。ステップS59の処理が完了すると、ステップS31に戻る。
【0084】
ステップS61ではフラグFLG_lost,FLG_discoverおよびFLG_timeoutを“0”に設定し、ステップS63では追尾タスク2を起動する。フラグFLG_discoverは、追尾タスク2の下で起動される限定顔検出タスクによって顔画像が検出されたか否かを識別するためのフラグであり、“0”が未検出を示す一方、“1”が検出を示す。また、フラグFLG_timeoutは追尾タスク2の下で管理されるタイマ26tにタイムアウトが発生したか否かを識別するためのフラグであり、“0”が未発生を示す一方、“1”が発生を示す。
【0085】
ステップS65ではフラグFLG_lostが“1”を示すか否かを判別し、ステップS67ではフラグFLG_timeoutが“1”を示すか否かを判別し、ステップS69ではフラグFLG_discoverが“1”を示すか否かを判別する。ステップS65またはS67の判別結果がYESであれば、主要顔画像が未定であることを表明するべくステップS71でフラグFLG_targetを“0”に設定し、その後にステップS31に戻る。ステップS69の判別結果がYESであれば、ステップS55に移行する。
【0086】
図25を参照して、ステップS81ではレジスタRGSTtmpおよびRGSToutをクリアし、ステップS83では評価エリアEVAの全域を顔探索エリアとして設定する。ステップS85では、顔枠FDのサイズの可変範囲を定義するべく、最大サイズFSZmaxを“200”に設定し、最小サイズFSZminを“20”に設定する。ステップS87では垂直同期信号Vsyncが発生したか否かを判別し、判別結果がNOからYESに更新されるとステップS89で顔枠FDのサイズを“FSZmax”に設定する。
【0087】
ステップS91では、顔枠FDを顔探索エリアの開始位置(左上位置)に配置する。ステップS93では、顔枠FDに属する一部の探索画像データを探索画像エリア32cから読み出し、読み出された探索画像データの特徴量を算出する。ステップS95では、顔辞書番号FCを“1”に設定する。
【0088】
ステップS97では、ステップS93で算出された特徴量を、顔辞書DC_Fに収められた5つの辞書画像のうち顔辞書番号FCに対応する辞書画像の特徴量と照合する。ステップS99では照合結果である符合度が閾値TH_face以上であるか否かを判別し、ステップS101では顔辞書番号FCが“5”であるか否かを判別する。
【0089】
ステップS99の判別結果がYESであればステップS105に進み、現時点の顔枠FDの位置およびサイズと顔辞書番号FCの値と符合度とをレジスタRGSTtmpに登録する。ステップS105ではまた、レジスタRGSTtmpに記述された顔数をインクリメントする。ステップS105の処理が完了すると、ステップS107に進む。
【0090】
ステップS101の判別結果がNOであれば、ステップS103で顔辞書番号FCをインクリメントし、その後にステップS97に戻る。ステップS99の判別結果がNOでかつステップS101の判別結果がYESであれば、そのままステップS107に進む。
【0091】
ステップS107では、顔枠FDが顔探索エリアの終了位置(右下位置)に到達したか否かを判別する。判別結果がNOであれば、ステップS115で顔枠FDを既定量だけラスタ方向に移動させ、その後にステップS93に戻る。判別結果がYESであれば、顔枠FDのサイズが“FSZmin”以下であるか否かをステップS109で判別する。判別結果がNOであれば、ステップS111で顔枠FDのサイズを“5”だけ縮小し、ステップS113で顔枠FDを顔探索エリアの開始位置に配置し、その後にステップS93に戻る。
【0092】
ステップS109の判別結果がYESであればステップS117に進み、レジスタRGSTtmpの記述をレジスタRGSToutに複製する。ステップS119ではレジスタRGSTtmpをクリアし、ステップS121ではレジスタRGSToutに記述された顔数が“1”以上であるか否かを判別する。判別結果がYESであれば、顔画像が検出されたことを表明するべく、ステップS123でフラグFLG_faceを“1”に設定する。判別結果がNOであれば、顔画像が検出されなかったことを表明するべく、ステップS125でフラグFLG_faceを“0”に設定する。ステップS123またはS125の処理が完了すると、ステップS87に戻る。
【0093】
図28を参照して、ステップS131では上述のステップS49で決定された追尾対象を覆う位置に追尾探索エリアを設定し、ステップS133では垂直同期信号Vsyncが発生したか否かを繰り返し判別する。判別結果がNOからYESに更新されると、ステップS135でフラグFLG_traceを“0”に設定し、ステップS137で追尾処理を実行する。フラグFLG_traceは1または2以上の追尾候補が現フレームの探索画像データから検出されたか否かを識別するためのフラグであり、“0”が未検出を示す一方、“1”が検出を示す。
【0094】
ステップS139では、フラグFLG_traceが“1”であるか否かを判別する。判別結果がYESであればステップS141に進み、追尾用レジスタRGSTchaseに登録された1または2以上の追尾候補のうち符合度が最大値を示す追尾候補を追尾対象として特定する。ステップS143では特定された追尾対象を覆う位置に追尾探索エリアを設定し、その後にステップS133に戻る。ステップS139の判別結果がNOであれば、追尾対象が消失したことを表明するべくステップS145でフラグFLG_lostを“1”に更新し、その後に処理を終了する。
【0095】
図28に示すステップS137の追尾処理は、図29〜図30に示すサブルーチンに従って実行される。
【0096】
ステップS151では、追尾対象を表す一部の探索画像データをメモリ制御回路30を通して探索画像エリア32dから読み出し、読み出された探索画像データの特徴量を算出する。ステップS153では、追尾枠TDのサイズの可変範囲を定義するべく、最大サイズTSZmaxを追尾対象のサイズの1.15倍の値に設定し、最小サイズTSZminを追尾対象のサイズの0.85倍の値に設定する。ステップS155では追尾枠TDのサイズを“TSZmax”に設定し、ステップS157では追尾用レジスタRGSTchaseをクリアする。
【0097】
ステップS159では、追尾枠TDを追尾探索エリアの開始位置に配置する。ステップS161では、追尾枠TDに属する一部の探索画像データをメモリ制御回路30を通して探索画像エリア32cから読み出し、読み出された探索画像データの特徴量を算出する。ステップS163では、ステップS151で算出された特徴量をステップS161で算出された特徴量と照合する。ステップS165では照合結果である符合度が閾値THobj以上であるか否かを判別し、判別結果がNOであればそのままステップS171に進む一方、判別結果がYESであればステップS167〜S169の処理を経てステップS171に進む。
【0098】
ステップS167では、現時点の追尾枠TDのサイズおよび位置と符合度とを、追尾候補情報として追尾用レジスタRGSTchaseに登録する。ステップS169では、追尾候補が検出されたことを表明するべく、フラグFLG_traceを“1”に設定する。
【0099】
ステップS171では、追尾枠TDが追尾探索エリアの終了位置に到達したか否かを判別する。判別結果がNOであれば、ステップS175で追尾枠TDを既定量だけラスタ方向に移動させ、その後にステップS161に戻る。判別結果がYESであれば、追尾枠TDのサイズが“TSZmin”以下であるか否かをステップS173で判別する。判別結果がNOであれば、ステップS177で追尾枠TDのサイズを“5”だけ縮小し、ステップS179で追尾枠TDを追尾探索エリアの開始位置に配置し、その後にステップS161に戻る。ステップS173の判別結果がYESであれば、上階層のルーチンに復帰する。
【0100】
図31を参照して、ステップS181では上述のステップS49で決定された追尾対象を覆う位置に追尾探索エリアを設定し、ステップS183ではタイマ26tのリセット&スタートを実行する。ステップS185では垂直同期信号Vsyncが発生したか否かを繰り返し判別し、判別結果がNOからYESに更新されるとステップS187でフラグFLG_traceを“0”に設定する。ステップS189では図29〜図30に示すサブルーチンに従う追尾処理を実行し、ステップS191ではフラグFLG_traceが“1”を示すか否かを判別する。判別結果がNOであれば、追尾対象の消失を表明するべくステップS193でフラグFLG_lostを“1”に設定し、その後に処理を終了する。
【0101】
ステップS191の判別結果がYESであれば、限定顔検出タスクが起動中であるか否かをステップS195で判別する。判別結果がNOであれば、ステップS197で限定顔検出タスクを起動する。ステップS199では上述したステップS141と同じ要領で追尾対象を特定し、ステップS201ではステップS199で特定された追尾対象を覆う位置に追尾探索エリアを設定する。ステップS203では、ステップS199で特定された追尾対象の位置およびサイズを参照して、限定顔探索エリアおよび顔サイズの各々を設定ないし更新する。ステップS203の処理が完了すると、ステップS185に戻る。
【0102】
ステップS195の判別結果がYESであれば、フラグFLG_discoverが“1”であるか否かをステップS205で判別し、タイマ26tの測定値が上限値に達したか否かをステップS207で判別する。ステップS205の判別結果およびステップS297の判別結果のいずれもNOであれば、ステップS199に移行する。ステップS205の判別結果がYESであれば、そのまま処理を終了する。ステップS207の判別結果がYESであれば、タイムアウトの発生を表明するべくステップS209でフラグFLG_timeoutを“1”に設定し、その後に処理を終了する。
【0103】
図33を参照して、ステップS211では顔枠LFDのサイズの可変範囲を定義するべく、最大サイズLSZmaxおよび最小サイズLSZminを設定する。最大サイズLSZmaxおよび最小サイズLSZminはそれぞれ、ステップS201で設定ないし更新された顔サイズの1.15倍の値および0.85倍の値を示す。ステップS213では垂直同期信号Vsyncが発生したか否かを判別し、判別結果がNOからYESに更新されるとステップS215で顔枠LFDのサイズを“LSZmax”に設定する。
【0104】
ステップS217では、顔枠LFDを限定顔探索エリアの開始位置(左上位置)に配置する。ステップS219では、顔枠LFDに属する一部の探索画像データを探索画像エリア32cから読み出し、読み出された探索画像データの特徴量を算出する。ステップS221では、顔辞書番号FCを“1”に設定する。
【0105】
ステップS223では、ステップS219で算出された特徴量を、顔辞書DC_Fに収められた5つの辞書画像のうち顔辞書番号FCに対応する辞書画像の特徴量と照合する。ステップS225では照合結果である符合度が閾値THtimeset以上であるか否かを判別し、ステップS227では顔辞書番号FCが“5”であるか否かを判別する。
【0106】
ステップS225の判別結果がYESであれば、顔画像が検出されたことを表明すべく、ステップS231でフラグFLG_discoverを“1”に設定する。設定が完了すると、処理を終了する。ステップS227の判別結果がNOであれば、ステップS229で顔辞書番号FCをインクリメントし、その後にステップS223に戻る。
【0107】
ステップS225の判別結果がNOでかつステップS227の判別結果がYESであれば、顔枠LFDが限定顔探索エリアの終了位置(右下位置)に到達したか否かをステップS233で判別する。判別結果がNOであれば、ステップS237で顔枠LFDを既定量だけラスタ方向に移動させ、その後にステップS219に戻る。判別結果がYESであれば、顔枠LFDのサイズが“LSZmin”以下であるか否かをステップS235で判別する。判別結果がNOであれば、ステップS239で顔枠LFDのサイズを“5”だけ縮小し、ステップS241で顔枠LFDを限定顔探索エリアの開始位置に配置し、その後にステップS219に戻る。ステップS235の判別結果がYESであれば、処理を終了する。
【0108】
以上の説明から分かるように、イメージャ16によって捉えられた被写界を表す探索画像データは、メモリ制御回路30によってSDRAM32の探索画像エリア32cに取り込まれる。CPU26は、顔辞書DC_Fに収められた辞書画像に対する符合度が閾値THtraceを上回る顔画像を探索画像エリア32cに格納された探索画像データから探索し(S81~S125, S35~S45)、これによって探知された顔画像上の特徴画像を追尾対象として指定し(S49)、そして指定された追尾対象を探索画像データを参照して追尾する(S131~S143, S181~S209, S7, S9, S15)。追尾時間は、探知された顔画像の辞書画像に対する符合度が大きいほど長くなるように制御される(S51)。また、顔画像の探索処理は、追尾処理が起動状態にあるとき停止される(S31~S33, S47, S53~S67, S71)。
【0109】
このように、辞書画像に対する符合度が基準を上回る顔画像が探索処理によって探知されると、探知された顔画像上の特徴画像を追尾する追尾処理が探索処理に代替して起動される。起動された追尾処理の時間は、探知された顔画像の辞書画像に対する符合度が大きいほど長くなる。したがって、符合度が高い顔画像上の特徴画像は持続的に追尾される一方、符合度が低い顔画像つまり誤検出の可能性のある顔画像上の特徴画像に対する追尾は早めに終了される。こうして、追尾性能が向上する。
【0110】
なお、この実施例では、追尾タスク2において起動されるタイマ26tの測定値は固定的な上限値と比較される(図32のステップS207参照)。しかし、上限値は限定顔検出タスクにおいて得られた符合度を参照して調整するようにしてもよい。この場合、図32に示す処理の一部を図35に示すように修正する必要がある。
【0111】
図35を参照して、ステップS205の判別結果がNOであれば、現フレームに対応して限定顔検出タスクで得られた符合度の最大値をステップS251で検出する。ステップS253では、検出された最大値が閾値THlimit以上であるか否かを判別する。ここで、閾値THlimitは、閾値THtrace以上でかつ閾値THtimeset未満の値を示す。判別結果がNOであればそのままステップS207に進む一方、判別結果がYESであればステップS255で上限値を増大させてからステップS207に進む。これによって、追尾対象の周辺で検出された顔画像の符合度に応じて追尾タスク2の起動時間を延長することができる。
【0112】
また、この実施例では、閾値Ttarceを上回る符合度を有する顔画像が主要顔画像として現れたときに速やかに追尾タスク1または追尾タスク2を起動するようにしている(図22〜図24参照)。しかし、追尾タスク1または追尾タスク2は、主要顔画像が探知できなくなった時点で起動するようにしてもよい。この場合、図22〜図23に示す処理は、図36に示すように修正し、かつ図37〜図38に示す限定顔検出タスク2を追加的に実行する必要がある。
【0113】
図36を参照して、ステップS49の処理が完了すると、限定顔検出タスク2が起動中であるか否かをステップS261で判別する。判別結果がNOであれば、ステップS263でフラグFLG_discover2を“0”に設定し、ステップS265で限定顔検出タスク2を起動し、その後にステップS267に進む。これに対して、ステップS261の判別結果がYESであれば、そのままステップS267に進む。
【0114】
ステップS267では、限定顔探索エリアおよび顔サイズを設定ないし更新する。限定顔探索エリアおよび顔サイズは、ステップS39で決定された主要顔画像を参照して初期的に設定され、限定顔検出タスク2の下で検出された顔画像(符合度が閾値THtrace以上の顔画像)を参照して更新される。ステップS269では、フラグFLG_discover2が“1”を示すか否かを判別する。判別結果がYESであれば、ステップS271で追尾対象を特定(更新)し、その後にステップS261に戻る。一方、判別結果がNOであればステップS51に進む。
【0115】
図37〜図38を参照して、ステップS281〜S293,S297〜S299,およびS303〜S311では図33〜図34に示すステップS211〜S223,S227〜S229およびS233〜S241と同様の処理を実行するため、重複した説明は省略する。ステップS293に続くステップS295では、照合処理の結果である符合度が閾値THtrace以上であるか否かを判別する。判別結果がNOであればステップS297に進む一方、判別結果がYESであればステップS301でフラグFLG_discover2を“1”に更新してから処理を終了する。
【0116】
さらに、この実施例では、マルチタスクOSおよびこれによって実行される複数のタスクに相当する制御プログラムは、フラッシュメモリ42に予め記憶される。しかし、図39に示すように通信I/F48をディジタルカメラ10に設け、一部の制御プログラムを内部制御プログラムとしてフラッシュメモリ44に当初から準備する一方、他の一部の制御プログラムを外部制御プログラムとして外部サーバから取得するようにしてもよい。この場合、上述の動作は、内部制御プログラムおよび外部制御プログラムの協働によって実現される。
【0117】
さらに、この実施例では、CPU26によって実行される処理を上述の要領で複数のタスクに区分するようにしている。しかし、各々のタスクをさらに複数の小タスクに区分してもよく、さらには区分された複数の小タスクの一部を他のタスクに統合するようにしてもよい。また、各々のタスクを複数の小タスクに区分する場合、その全部または一部を外部サーバから取得するようにしてもよい。
【符号の説明】
【0118】
10 …ディジタルカメラ
12 …フォーカスレンズ
14 …絞り機構
16 …イメージャ
22 …AE評価回路
24 …AF評価回路
26 …CPU
32 …SDRAM
44 …フラッシュメモリ
【技術分野】
【0001】
この発明は、追尾装置に関し、特に、被写界に現れた特定物体を追尾する、追尾装置に関する。
【背景技術】
【0002】
この種の装置の一例が、特許文献1に開示されている。この背景技術によれば、画像相関追尾回路は、動画像のフレーム間の相関性に基づき任意の被写体を追尾する。一方、顔検出回路は、撮影画面から特定被写体(=顔)を検出して、被写体領域情報と検出信頼度を出力する。特定被写体を追尾する回路は、画像相関追尾回路によって検出された被写体が特定被写体と同一であると判断されたときに、画像相関追尾回路から顔検出回路に移行される。これによって、特定被写体を的確に追尾することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−154286号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、背景技術では、検出信頼度の大きさが追尾動作に反映されることはなく、追尾性能に限界がある。
【0005】
それゆえに、この発明の主たる目的は、追尾性能を高めることができる、追尾装置を提供することである。
【課題を解決するための手段】
【0006】
この発明に従う追尾装置(10:実施例で相当する参照符号。以下同じ)は、画像を繰り返し撮像する撮像手段(16, 20, 34)、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索手段(S81~S125, S35~S45, S261~S267, S281~S311)、探索手段によって探知された物体像上の特徴画像を追尾する追尾手段(S131~S143, S181~S209, S7, S9, S15)、および探索手段によって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾手段の追尾時間を調整する調整手段(S51)を備える。
【0007】
好ましくは、追尾手段は特徴画像に注目して撮像条件を調整する撮像条件調整手段(S9, S15)を含む。
【0008】
好ましくは、撮像手段によって取り込まれた画像を画面に表示する表示手段(S1)がさらに備えられ、追尾手段は特徴画像を指向するキャラクタを表示手段によって表示された画像に多重するキャラクタ多重手段(S7)を含む。
【0009】
好ましくは、調整手段によって設定された追尾時間が基準値を下回るとき特徴パターンに符合する物体像を追尾手段によって追尾された特徴画像の近傍から限定的に探索する限定探索手段(S211~S229, S233~S241)、および限定探索手段の探知に応答して追尾手段の追尾時間を延長する延長手段(S231, S69)がさらに備えられる。
【0010】
さらに好ましくは、限定探索手段は、特徴画像の近傍の存在する部分画像を互いに異なる態様で繰り返し指定する指定手段(S217, S237~S241)、および指定手段によって指定された部分画像の特徴パターンに対する符合度を算出する符合度算出手段(S223~S229)を含み、符合度算出手段によって算出された符合度に基づいて基準値を調整する基準値調整手段(S251~S253)がさらに備えられる。
【0011】
好ましくは、追尾手段は特徴画像の消失に応答して追尾処理を停止する追尾停止手段(S145, S193)を含む。
【0012】
好ましくは、追尾手段および探索手段を代替的に起動する制御手段(S31~S33, S47, S53~S67, S71, S269)がさらに備えられる。
【0013】
さらに好ましくは、制御手段は探索手段の非探知に応答して追尾手段を起動する追尾起動手段(S269)を含む。
【0014】
好ましくは、探索手段によって探知された物体像の一部を特徴画像として指定する指定手段(S49, S271)がさらに備えられる。
【0015】
この発明に従う追尾制御プログラムは、画像を繰り返し撮像する撮像手段(16, 20, 34)を備える追尾装置(10)のプロセッサ(26)に、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を実行させるための、追尾制御プログラムである。
【0016】
この発明に従う追尾制御方法は、画像を繰り返し撮像する撮像手段(16, 20, 34)を備える追尾装置(10)によって実行される追尾制御方法であって、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を備える。
【0017】
この発明に従う外部制御プログラムは、画像を繰り返し撮像する撮像手段(16, 20, 34)、およびメモリ(44)に保存された内部制御プログラムに従う処理を実行するプロセッサ(26)を備える追尾装置(10)に供給される外部制御プログラムであって、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を内部制御プログラムと協働してプロセッサに実行させるための、外部制御プログラムである。
【0018】
この発明に従う追尾装置(10)は、画像を繰り返し撮像する撮像手段(16, 20, 34)、外部制御プログラムを受信する受信手段(48)、および受信手段によって受信された外部制御プログラムとメモリ(44)に保存された内部制御プログラムに従う処理を実行するプロセッサ(26)を備える追尾装置であって、外部制御プログラムは、特徴パターンに対する符合度が基準を上回る物体像を撮像手段によって取り込まれた画像から探索する探索ステップ(S81~S125, S35~S45, S261~S267, S281~S311)、探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ(S131~S143, S181~S209, S7, S9, S15)、および探索ステップによって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾ステップの追尾時間を調整する調整ステップ(S51)を内部制御プログラムと協働して実行するプログラムに相当する。
【発明の効果】
【0019】
この発明によれば、特徴パターンに対する符合度が基準を上回る物体像が探索処理によって探知されると、探知された物体像上の特徴画像を追尾する追尾処理が起動される。起動された追尾処理の時間は、探知された物体像の特徴パターンに対する符合度が大きいほど長くなる。したがって、符合度が高い物体像上の特徴画像は持続的に追尾される一方、符合度が低い物体像上の特徴画像に対する追尾は早めに終了される。こうして、追尾性能が向上する。
【0020】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0021】
【図1】この発明の一実施例の基本的構成を示すブロック図である。
【図2】この発明の一実施例の構成を示すブロック図である。
【図3】(A)は撮像面で捉えられる被写界の一例を示す図解図であり、(B)はLCDモニタの表示の一例を示す図解図である。
【図4】撮像面における評価エリアの割り当て状態の一例を示す図解図である。
【図5】顔検出処理に用いられる顔枠の一例を示す図解図である。
【図6】顔検出処理において参照される顔辞書の構成の一例を示す図解図である。
【図7】顔検出処理の一部を示す図解図である。
【図8】顔検出処理に用いられるレジスタの構成の一例を示す図解図である。
【図9】(A)は追尾動作の一例を示す図解図であり、(B)は追尾動作の他の一例を示す図解図である。
【図10】追尾対象および追尾探索エリアの割り当て状態の一例を示す図解図である。
【図11】追尾処理に用いられる追尾枠の一例を示す図解図である。
【図12】追尾処理の一部を示す図解図である。
【図13】追尾処理に用いられるレジスタの構成の一例を示す図解図である。
【図14】顔検出処理および追尾処理の一例を示す図解図である。
【図15】追尾対象,追尾探索エリアおよび限定顔探索エリアの割り当て状態の一例を示す図解図である。
【図16】限定顔探索タスクに用いられる追尾枠の一例を示す図解図である。
【図17】限定顔探索タスクの下での顔検出処理の一部を示す図解図である。
【図18】顔検出処理および追尾処理の他の一例を示す図解図である。
【図19】顔検出処理および追尾処理のその他の一例を示す図解図である。
【図20】顔検出処理および追尾処理のさらにその他の一例を示す図解図である。
【図21】図2実施例に適用されるCPUの動作の一部を示すフロー図である。
【図22】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図23】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図24】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図25】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図26】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図27】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図28】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図29】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図30】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図31】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図32】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図33】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図34】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図35】他の実施例に適用されるCPUの動作の一部を示すフロー図である。
【図36】その他の実施例に適用されるCPUの動作の一部を示すフロー図である。
【図37】その他の実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図38】その他の実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図39】この発明のさらにその他の実施例の構成を示すブロック図である。
【発明を実施するための形態】
【0022】
以下、この発明の実施の形態を図面を参照しながら説明する。
[基本的構成]
【0023】
図1を参照して、この実施例の追尾装置は、基本的に次のように構成される。撮像手段1は、画像を繰り返し撮像する。探索手段2は、特徴パターンに対する符合度が基準を上回る物体像を撮像手段1によって取り込まれた画像から探索する。追尾手段3は、探索手段2によって探知された物体像上の特徴画像を追尾する。調整手段4は、探索手段2によって探知された物体像の特徴パターンに対する符合度が大きいほど長くなるように追尾手段3の追尾時間を調整する。
【0024】
特徴パターンに対する符合度が基準を上回る物体像が探索処理によって探知されると、探知された物体像上の特徴画像を追尾する追尾処理が起動される。起動された追尾処理の時間は、探知された物体像の特徴パターンに対する符合度が大きいほど長くなる。したがって、符合度が高い物体像上の特徴画像は持続的に追尾される一方、符合度が低い物体像上の特徴画像に対する追尾は早めに終了される。こうして、追尾性能が向上する。
[実施例]
【0025】
図2を参照して、この実施例のディジタルカメラ10は、ドライバ18aおよび18bによってそれぞれ駆動されるフォーカスレンズ12および絞り機構14を含む。これらの部材を経た被写界の光学像は、イメージャ16の撮像面に照射され、光電変換を施される。これによって、被写界像を表す電荷が生成される。
【0026】
電源が投入されると、CPU26は、動画取り込み処理を開始するべく、撮像タスクの下で露光動作および電荷読み出し動作の繰り返しをドライバ18cに命令する。ドライバ18cは、図示しないSG(Signal Generator)から周期的に発生する垂直同期信号Vsyncに応答して、撮像面を露光し、かつ撮像面で生成された電荷をラスタ走査態様で読み出す。イメージャ16からは、読み出された電荷に基づく生画像データが周期的に出力される。
【0027】
前処理回路20は、イメージャ16から出力された生画像データにディジタルクランプ,画素欠陥補正,ゲイン制御などの処理を施す。これらの処理を施された生画像データは、メモリ制御回路30を通してSDRAM32の生画像エリア32aに書き込まれる。
【0028】
後処理回路34は、生画像エリア32aに格納された生画像データをメモリ制御回路30を通して読み出し、読み出された生画像データに色分離処理,白バランス調整処理およびYUV変換処理を施す。後処理回路34はさらに、YUV形式に従う画像データに対して表示用のズーム処理と探索用のズーム処理とを並列的に実行する。この結果、YUV形式に従う表示画像データおよび探索画像データが個別に作成される。
【0029】
表示画像データは、メモリ制御回路30によってSDRAM32の表示画像エリア32bに書き込まれる。また、探索画像データは、メモリ制御回路30によってSDRAM32の探索画像エリア32cに書き込まれる。
【0030】
LCDドライバ36は、表示画像エリア32bに格納された表示画像データをメモリ制御回路30を通して繰り返し読み出し、読み出された画像データに基づいてLCDモニタ38を駆動する。この結果、被写界のリアルタイム動画像(スルー画像)がモニタ画面に表示される。
【0031】
後述するフラグFLG_targetは、探索画像データ上で主要顔画像が決定されたか否かを識別するためのフラグであり、“0”が未定を示す一方、“1”が決定を示す。
【0032】
フラグFLG_targetが“1”であれば、CPU26は、顔枠キャラクタ表示命令をキャラクタジェネレータ46に与える。キャラクタジェネレータ46は対応するキャラクタデータをLCDドライバ36に与え、LCDドライバ36は与えられたキャラクタデータに基づいてLCDモニタ38を駆動する。この結果、主要顔画像(または後述する追尾対象)を囲う顔枠キャラクタがLCDモニタ38にOSD態様で表示される。したがって、図3(A)に示す被写界がイメージャ16によって捉えられた場合、顔枠キャラクタは図3(B)に示す要領でスルー画像に多重される。
【0033】
なお、フラグFLG_targetが“0”であれば、CPU26は、顔枠非表示命令をキャラクタジェネレータ46に与える。キャラクタジェネレータ46はキャラクタデータの出力を停止し、この結果、顔枠キャラクタが非表示とされる。
【0034】
CPU26は続いて、AE/AFエリアを設定する。AE/AFエリアは、フラグFLG_faceが“1”を示すとき顔枠キャラクタによって囲まれる画像の近傍の位置に設定され、フラグFLG_faceが“0”を示すとき図4に示す評価エリアEVAの中央に設定される。AE/AFエリアの設定が完了すると、CPU26は、AE処理およびAF処理を実行する。
【0035】
図4を参照して、評価エリアEVAは水平方向および垂直方向の各々において64分割され、合計4096個の分割エリアによって評価エリアEVAが形成される。また、図2に示す前処理回路20は、上述した処理に加えて、生画像データを簡易的にRGBデータに変換する簡易RGB変換処理を実行する。
【0036】
AE評価回路22は、前処理回路20によって生成されたRGBデータのうち評価エリアEVAに属するRGBデータを分割エリア毎に積分する。この積分処理は、垂直同期信号Vsyncが発生する毎に実行される。これによって、4096個の積分値つまり4096個のAE評価値が、垂直同期信号Vsyncに応答してAE評価回路22から出力される。
【0037】
また、AF評価回路24は、前処理回路20によって生成されたRGBデータのうち評価エリアEVAに属するRGBデータの高周波成分を分割エリア毎に積分する。この積分処理もまた、垂直同期信号Vsyncが発生する毎に実行される。これによって、4096個の積分値つまり4096個のAF評価値が、垂直同期信号Vsyncに応答してAF評価回路24から出力される。
【0038】
AE処理では、AE評価回路22から出力された4096個のAE評価値のうちAE/AFエリアに属する一部のAE評価値に基づいて、適正EV値が算出される。算出された適正EV値を定義する絞り量および露光時間はドライバ18bおよび18cにそれぞれ設定され、これによってAE/AFエリアに属する画像の明るさが適度に調整される。
【0039】
AF処理では、AF評価回路24から出力された4096個のAF評価値のうちAE/AFエリアに属する一部のAF評価値に基づいて合焦点が探索され、フォーカスレンズ12は参照されたAF評価値の総和が最大となる位置に配置される。これによって、AE/AFエリアに属する画像の鮮鋭度が向上する。
【0040】
キー入力装置28に設けられたムービボタン28mvによって記録開始操作が行われると、CPU26は、動画記録処理を開始するべく、記録開始命令をメモリI/F40に与える。同じムービボタン28mvによって記録終了操作が行われると、CPU26は、動画記録処理を終了するべく、記録終了命令をメモリI/F40に与える。メモリI/F40は、記録開始命令から記録終了命令までの期間に、YUV形式の画像データをメモリ制御回路30を通してYUV画像エリア32cから繰り返し読み出し、読み出された画像データをファイル形式で記録媒体42に記録する。
【0041】
CPU26はまた、撮像タスクと並列して実行される顔検出/追尾制御タスクの下で、フラグFLG_faceを“0”に設定し、顔検出タスクを起動する。起動した顔検出タスクの下では、探索画像エリア32cに格納された探索画像データから人物の顔画像が繰り返し探索される。このとき、図5に示す要領でサイズが調整される顔枠FDと図6に示す5つの辞書画像を収めた顔辞書DC_Fとが用いられる。
【0042】
顔辞書DC_Fは、フラッシュメモリ44に保存される。また、顔辞書DC_Fにおいて、FC=1に割り当てられた辞書画像は正面を向く顔画像に相当し、FC=2に割り当てられた辞書画像は左斜め前を向く顔画像に相当し、FC=3に割り当てられた辞書画像は左を向く顔画像に相当する。さらに、FC=4に割り当てられた辞書画像は右斜め前を向く顔画像に相当し、FC=5に割り当てられた辞書画像は右を向く顔画像に相当する。
【0043】
顔検出タスクではまず、評価エリアEVAの全域が顔探索エリアとして設定される。また、顔枠FDのサイズの可変範囲を定義するべく、最大サイズFSZmaxが“200”に設定され、最小サイズFSZminが“20”に設定される。顔枠FDは、垂直同期信号Vsyncが発生する毎に、顔探索エリアの開始位置(左上位置)から終了位置(右下位置)に向かって、ラスタ走査態様で既定量ずつ移動される(図7参照)。また、顔枠FDのサイズは、顔枠FDが終了位置に到達する毎に“FSZmax”から“FSZmin”まで“5”ずつ縮小される。
【0044】
顔枠FDに属する一部の探索画像データは、メモリ制御回路30を通して探索画像エリア32cから読み出される。読み出された探索画像データの特徴量は、顔辞書DC_Fに収められた5つの辞書画像の各々の特徴量と照合される。照合結果である符合度が閾値THface以上であれば、顔画像が検出されたものとみなされる。現時点の顔枠FDの位置およびサイズ,照合先の辞書画像を識別する顔辞書番号,ならびに照合結果である符合度は、図8に示すレジスタRGSTtmpに顔情報として登録される。また、レジスタRGSTtmpに記述された顔数は、このような登録処理に伴ってインクリメントされる。
【0045】
最小サイズFSZminを有する顔枠FDが顔探索エリアの終了位置に到達すると、CPU26は、レジスタRGSTtmpの記述をレジスタRGSToutに複製し、その後にレジスタRGSTtmpをクリアする。フラグFLG_faceは、レジスタRGSToutに記述された顔数が“0”のとき“0”に設定され、レジスタRGSToutに記述された顔数が“1”以上のとき“1”に設定される。
【0046】
こうして設定されたフラグFLG_faceの状態は、顔検出タスク/追尾制御タスクの下で判別される。FLG_face=0であれば、主要顔画像が未定であることを表明するべく、フラグFLG_targetが“0”に設定される。一方、FLG_face=1であれば、顔検出タスクによって検出された1または2以上の顔画像のいずれか1つが主要顔画像として決定される。主要顔画像は、レジスタRGSToutに登録された1または2以上の顔枠のうち最大サイズの顔枠に相当する顔画像である。フラグFLG_targetは、主要顔画像が決定されたことを表明するべく、“1”に更新される。
【0047】
続いて、決定された主要顔画像に対応する符合度がレジスタRGSToutから検出され、検出された符合度が閾値THfaceを上回る閾値THtraceと比較される。顔検出タスクは符合度が閾値THtrace未満である限り起動し続け、上述した処理は顔検出タスクによって制御されるフラグFLG_faceの値を参照して繰り返し実行される。
【0048】
これに対して、検出された符合度が閾値THtrace以上であれば、顔検出タスクが停止され、主要顔画像上の特徴部が追尾対象として決定される。ここで、追尾対象は矩形を有するように定義される。追尾対象が決定されると、主要顔画像に対応する符合度が、閾値THtraceを上回る閾値THtimesetと比較される。
【0049】
符合度が閾値THtimeset以上であれば、フラグFLG_lostが“0”に設定され、追尾タスク1に従う処理が実行される。符合度が閾値THtimeset未満であれば、フラグFLG_lost,FLG_discoverおよびFLG_timeoutが“0”に設定され、追尾タスク2に従う処理が実行される。
【0050】
撮像面に向かって左斜め前を向く人物HM1が図9(A)に示すように撮像面の左側で捉えられ、この状態で算出された符合度が閾値THtimeset以上であれば、図10に示す要領で追尾対象が定義され、追尾タスク1が起動される。
【0051】
また、撮像面に向かって左斜め前やや下方を向く人物HM2が図9(B)に示すように撮像面の左側で捉えられ、この状態で算出された符合度が閾値THtrace以上でかつ閾値THtimeset未満であれば、図15に示す要領で追尾対象が定義され、追尾タスク2が起動される。
【0052】
追尾タスク1ではまず、上述の要領で決定された追尾対象を覆う位置に追尾探索エリアが設定される。追尾探索エリアは、追尾対象よりも大きい楕円形状を有し、図10に示す要領で定義される。垂直同期信号Vsyncが発生すると、フラグFLG_traceが“0”に設定され、追尾処理が実行される。
【0053】
追尾処理では、追尾対象を表す一部の探索画像データがメモリ制御回路30を通して探索画像エリア32cから読み出され、読み出された探索画像データの特徴量つまり追尾対象の特徴量が算出される。次に、図11に示す追尾枠TDのサイズの可変範囲を定義するべく、最大サイズTSZmaxが追尾対象のサイズの1.15倍の値に設定され、最小サイズTSZminが追尾対象のサイズの0.85倍の値に設定される。
【0054】
追尾枠TDは、追尾探索エリアの開始位置から終了位置に向かって、ラスタ走査態様で既定量ずつ移動される(図12参照)。また、追尾枠TDのサイズは、追尾枠TDが終了位置に到達する毎に“TSZmax”から“TSZmin”まで“5”ずつ縮小される。
【0055】
追尾枠TDに属する一部の探索画像データはメモリ制御回路30を通して探索画像エリア32cから読み出され、読み出された探索画像データの特徴量が追尾対象の特徴量と照合される。照合結果である符合度が閾値THobj以上であれば、現時点の追尾枠TDのサイズおよび位置と符合度とが、図13に示す追尾用レジスタRGSTchaseに追尾候補情報として登録される。また、1または2以上の追尾候補が検出されたことを表明するべく、フラグFLG_traceが“1”に設定される。追尾処理は、最小サイズTSZminを有する追尾枠TDが追尾探索エリアの終了位置に到達した時点で終了される。
【0056】
追尾処理が終了された時点のフラグFLG_traceの状態が“1”であれば、符合度が最大値を示す追尾候補が追尾用レジスタRGSTchaseに登録された1または2以上の追尾候補の中から検出され、検出された追尾候補が新規の追尾対象として決定される。楕円形状を有する追尾探索エリアは、決定された追尾対象を覆う位置に設定される。詳しくは、追尾探索エリアは、追尾対象の移動履歴を参照して、追尾対象が移動すると思われる位置を捉えるように設定される。追尾探索エリアがこうして更新されると、フラグFLG_traceが“0”に設定され、追尾処理が再開される。
【0057】
これに対して、追尾処理が完了した時点のフラグFLG_traceの状態が“0”のままであれば、追尾対象が消失したことを表明するべく、フラグFLG_lostが“1”に更新される。さらに、主要顔画像が未定であることを表明するべく、フラグFLG_targetが“0”に設定される。フラグFLG_targetの設定が完了すると、フラグFLG_faceが“0”に設定され、顔検出タスクが再起動される。
【0058】
このように、追尾タスク1は、顔検出タスクに対して代替的に実行される。図14を参照して、辞書画像に対する主要顔画像の符合度が閾値THtimeset以上であれば、顔検出タスクに代えて追尾タスク1が起動される。追尾タスク1では、追尾対象を追尾する処理と追尾設定(追尾対象および追尾探索エリアの設定)を更新する処理とが繰り返し実行される。追尾対象が消失すると、追尾処理に失敗したとみなされ、追尾タスク1に代えて顔検出タスクが起動される。
【0059】
顔枠キャラクタは、追尾対象を囲うようにLCDモニタ38にOSD態様で表示される。したがって、人物HM1が後ろを振り返りながら撮像面の左側から右側に移動したとき、顔枠キャラクタの表示位置は図9(A)に示す要領で変化する。
【0060】
追尾タスク2は、辞書画像に対する主要顔画像の符合度が閾値THtrace以上でかつ閾値THtimeset未満のときに起動される。追尾タスク2でも、決定された追尾対象よりも大きい楕円形状の追尾探索エリアが追尾対象を覆う位置に設定される(図15参照)。ただし、追尾タスク2では、追尾時間を制限するべく、タイマ26tのリセット&スタートが追加的に実行される。垂直同期信号Vsyncが発生すると、フラグFLG_traceが“0”に設定され、追尾枠TDを用いた上述の追尾処理が実行される。
【0061】
追尾処理が完了した時点のフラグFLG_traceの状態が“1”であれば、1または2以上の追尾候補が検出されたとみなして、限定顔検出タスクが起動される。続いて、追尾用レジスタRGSTchaseに登録された1または2以上の追尾候補のいずれか1つが追尾対象として決定され、決定された追尾対象を覆う位置に追尾探索エリアが設定される。限定顔検出タスクにおいて参照される限定顔探索エリアおよび顔サイズは、追尾対象の位置およびサイズに基づいて図15に示す要領で設定される。限定顔探索エリアおよび顔サイズがこうして更新されると、フラグFLG_traceが“0”に設定され、追尾処理が再起動される。したがって、追尾タスク2では、追尾処理および限定顔検出タスクが並列して実行される。
【0062】
限定顔検出タスクではまず、図16に示す顔枠LFDのサイズの可変範囲を定義するべく、最大サイズLSZmaxおよび最小サイズLSZminが設定される。最大サイズLSZmaxおよび最小サイズLSZminはそれぞれ、顔サイズの1.15倍の値および0.85倍の値を示す。顔枠LFDは、垂直同期信号Vsyncが発生する毎に、限定顔探索エリアの開始位置(左上位置)から終了位置(右下位置)に向かって、ラスタ走査態様で既定量ずつ移動される(図17参照)。また、顔枠LFDのサイズは、顔枠LFDが終了位置に到達する毎に“LSZmax”から“LSZmin”まで“5”ずつ縮小される。
【0063】
顔枠LFDに属する一部の探索画像データは探索画像エリア32cから読み出され、読み出された探索画像データの特徴量は顔辞書DC_Fに収められた5つの辞書画像の各々の特徴量と照合される。照合結果である符合度が閾値THtimeset以上となると、顔画像が検出されたことを表明すべく、フラグFLG_discoverが“1”に設定される。限定顔検出タスクは、フラグFLG_discoverが“1”に設定された時点、或いは最小サイズLSZminの顔枠LFDが顔探索エリアの終了位置に達した時点で終了される。
【0064】
フラグFLG_discoverが“0”のままで、かつタイマ26tの測定値が上限値に達しないうちは、レジスタRGSTchaseに登録された1または2以上の追尾候補のいずれか1つが追尾対象として決定され、決定された追尾対象を覆う位置に追尾探索エリアが設定され、そして限定顔検出タスクにおいて参照される限定顔探索エリアおよび顔サイズが追尾対象の位置およびサイズに基づいて設定される。追尾処理は、フラグFLG_traceが“0”に設定された後に再開される。
【0065】
追尾処理が完了した時点のフラグFLG_traceの状態が“0”のままであれば、追尾対象が消失したことを表明するべく、フラグFLG_lostが“1”に更新される。さらに、主要顔画像が未定であることを表明するべく、フラグFLG_targetが“0”に設定される。フラグFLG_targetの設定が完了すると、フラグFLG_faceが“0”に設定され、顔検出タスクが再起動される。
【0066】
追尾処理が完了した時点のフラグFLG_traceの状態は“1”を示すものの、フラグFLG_discoverが“0”のままでタイマ26tの測定値が上限値に達すると、タイムアウトの発生を表明するべくフラグFLG_timeoutが“1”に設定され、主要顔画像が未定であることを表明するべくフラグFLG_targetが“0”に設定される。フラグFLG_targetの設定が完了すると、フラグFLG_faceが“0”に設定され、顔検出タスクが再起動される。
【0067】
追尾処理が完了した時点のフラグFLG_traceの状態が“1”を示し、かつタイマ26tの測定値が上限値に達する前にフラグFLG_discoverが“1”に更新されると、追尾タスク2に代えて上述した追尾タスク1が起動される。
【0068】
図18〜図20を参照して、顔検出タスクの下で検出された顔画像のうち主要顔画像の符合度が閾値THtrace以上でかつ閾値THtimeset未満であれば、顔検出タスクに代えて追尾タスク2および限定顔検出タスクが起動される。追尾タスク2でも、追尾対象を追尾する処理と追尾設定を更新する処理とが繰り返し実行される。また、限定顔検出タスクでは、追尾対象の近傍から顔画像が探索される。
【0069】
顔画像が探知されないまま追尾対象が消失すると、追尾タスク2および限定顔検出タスクが停止され、代わりに顔検出タスクが起動される(図18参照)。追尾対象は捉えられているものの、追尾対象の近傍から顔画像が探知されないままタイムアウトが発生したときも、追尾タスク2および限定顔検出タスクが停止され、代わりに顔検出タスクが起動される(図19参照)。追尾対象が継続的に捉えられ、かつタイムアウトの発生前に追尾対象の近傍から顔画像が探知されると、追尾タスク2および限定顔検出タスクが停止され、上述した追尾タスク1が起動される(図20参照)。
【0070】
顔枠キャラクタは、追尾対象を囲うようにLCDモニタ38にOSD態様で表示されるため、人物HM2が後ろを振り返りながら撮像面の左側から右側に移動したとき、顔枠キャラクタの表示位置は図9(B)に示す要領で変化する。図9(B)については、追尾時間に制限があることから、顔枠キャラクタは人物HM2の移動の途中で非表示とされる。
【0071】
CPU26は、図21に示す撮像タスク,図22〜図24に示す顔検出/追尾制御タスク,図25〜図27に示す顔検出タスク,図28〜図30に示す追尾タスク1,図31〜図32に示す追尾タスク2,および図33〜図34に示す限定顔検出タスクを含む複数のタスクをマルチタスクOSの制御の下で並列的に実行する。なお、これらのタスクに対応する制御プログラムは、フラッシュメモリ44に記憶される。
【0072】
図21を参照して、ステップS1では動画取込み処理を開始する。この結果、被写界を表すスルー画像がLCDモニタ38に表示される。ステップS3では顔検出/追尾制御タスクを起動し、ステップS5ではフラグFLGtargetが“1”を示すか否かを判別する。フラグFLGtargetは主要顔画像が決定されたか否かを識別するためのフラグであり、“0”が未定を示す一方、“1”が決定を示す。
【0073】
フラグFLGtargetが“1”であれば、ステップS7で顔枠表示命令をキャラクタジェネレータ46に与える。この結果、主要顔画像または追尾対象を囲う位置に対応して顔枠キャラクタがLCDモニタ38に表示される。ステップS9では、顔枠キャラクタによって囲まれる画像の近傍に相当する位置にAE/AFエリアを設定する。
【0074】
一方、フラグFLGtargetが“0”であれば、ステップS11で顔枠非表示命令をキャラクタジェネレータ46に与える。この結果、顔枠キャラクタの表示が中止される。ステップS13では、評価エリアEVA上の中央にAE/AFエリアを設定する。
【0075】
ステップS9またはS13の処理が完了すると、ステップS15でAE処理およびAF処理を実行する。AE処理は、AE評価回路22から出力された4096個のAE評価値のうちAE/AFエリアに属する一部のAE評価値を参照して実行される。AF処理もまた、AF評価回路24から出力された4096個のAF評価値のうちAE/AFエリアに属する一部のAF評価値を参照して実行される。この結果、AE/AFエリアに属する画像の明るさおよび鮮鋭度が調整される。
【0076】
ステップS17ではムービボタン28mvによる記録開始操作が行われたか否かを判別し、ステップS19ではムービボタン28mvによる記録終了操作が行われたか否かを判別し、そしてステップS21では他の操作が行われたか否かを判別する。
【0077】
ステップS17の判別結果がYESであれば、動画記録処理を開始するべく、ステップS23で記録開始命令をメモリI/F40に与える。ステップS19の判別結果がYESであれば、動画記録処理を終了するべく、ステップS25で記録終了命令をメモリI/F40に与える。メモリI/F40は、記録開始命令から記録終了命令までの期間に、YUV形式の画像データをメモリ制御回路30を通してYUV画像エリア32cから繰り返し読み出し、読み出された画像データをファイル形式で記録媒体42に記録する。
【0078】
ステップS21の判別結果がYESであれば、ステップS27で他の処理を実行する。ステップS23,S25またはS27の処理が完了するか、或いはステップS17〜S21の判別結果のいずれもがNOであれば、ステップS5に戻る。
【0079】
図22を参照して、ステップS31ではフラグFLG_faceを“0”に設定し、ステップS33では顔検出タスクを起動し、そしてステップS35ではフラグFLG_faceが“1”であるか否かを判別する。フラグFLG_faceは少なくとも1つの顔画像が顔検出タスクによって検出されたか否かを識別するためのフラグであり、“0”が未検出を示す一方、“1”が検出を示す。
【0080】
ステップS35の判別結果がNOであれば、主要顔画像が未定であることを表明するべく、ステップS37でフラグFLG_targetを“0”に設定する。ステップS37の処理が完了すると、ステップS35に戻る。ステップS35の判別結果がYESであればステップS39に進み、顔検出タスクによって検出された1または2以上の顔画像のいずれか1つを主要顔画像として決定する。ステップS41では、主要顔画像が決定されたことを表明するべく、フラグFLG_targetを“1”に設定する。
【0081】
ステップS43では主要顔画像に割り当てられた符合度をレジスタRGSToutから検出し、ステップS45では検出された符合度が閾値THtrace以上であるか否かを判別する。判別結果がNOであればステップS35に戻り、判別結果がYESであればステップS47に進む。
【0082】
ステップS47では顔検出タスクを停止し、ステップS49では主要顔画像上の特徴部を追尾対象として決定する。ステップS51ではステップS43で検出された符合度が閾値THtimeset以上であるか否かを判別し、判別結果がYESであればステップS53に進む一方、判別結果がNOであればステップS61に進む。なお、閾値THtimesetは閾値THtraceを上回る。
【0083】
ステップS53ではフラグFLG_lostを“0”に設定し、ステップS55では追尾タスク1を起動する。フラグFLG_lostはステップS49で決定された追尾対象の存在/消失を識別するフラグであり、“0”が存在を示す一方、“1”が消失を示す。ステップS57ではフラグFLG_lostが“1”を示すか否かを繰り返し判別する。判別結果がNOからYESに更新されると、主要顔画像が未定であることを表明するべく、ステップS59でフラグFLG_targetを“0”に設定する。ステップS59の処理が完了すると、ステップS31に戻る。
【0084】
ステップS61ではフラグFLG_lost,FLG_discoverおよびFLG_timeoutを“0”に設定し、ステップS63では追尾タスク2を起動する。フラグFLG_discoverは、追尾タスク2の下で起動される限定顔検出タスクによって顔画像が検出されたか否かを識別するためのフラグであり、“0”が未検出を示す一方、“1”が検出を示す。また、フラグFLG_timeoutは追尾タスク2の下で管理されるタイマ26tにタイムアウトが発生したか否かを識別するためのフラグであり、“0”が未発生を示す一方、“1”が発生を示す。
【0085】
ステップS65ではフラグFLG_lostが“1”を示すか否かを判別し、ステップS67ではフラグFLG_timeoutが“1”を示すか否かを判別し、ステップS69ではフラグFLG_discoverが“1”を示すか否かを判別する。ステップS65またはS67の判別結果がYESであれば、主要顔画像が未定であることを表明するべくステップS71でフラグFLG_targetを“0”に設定し、その後にステップS31に戻る。ステップS69の判別結果がYESであれば、ステップS55に移行する。
【0086】
図25を参照して、ステップS81ではレジスタRGSTtmpおよびRGSToutをクリアし、ステップS83では評価エリアEVAの全域を顔探索エリアとして設定する。ステップS85では、顔枠FDのサイズの可変範囲を定義するべく、最大サイズFSZmaxを“200”に設定し、最小サイズFSZminを“20”に設定する。ステップS87では垂直同期信号Vsyncが発生したか否かを判別し、判別結果がNOからYESに更新されるとステップS89で顔枠FDのサイズを“FSZmax”に設定する。
【0087】
ステップS91では、顔枠FDを顔探索エリアの開始位置(左上位置)に配置する。ステップS93では、顔枠FDに属する一部の探索画像データを探索画像エリア32cから読み出し、読み出された探索画像データの特徴量を算出する。ステップS95では、顔辞書番号FCを“1”に設定する。
【0088】
ステップS97では、ステップS93で算出された特徴量を、顔辞書DC_Fに収められた5つの辞書画像のうち顔辞書番号FCに対応する辞書画像の特徴量と照合する。ステップS99では照合結果である符合度が閾値TH_face以上であるか否かを判別し、ステップS101では顔辞書番号FCが“5”であるか否かを判別する。
【0089】
ステップS99の判別結果がYESであればステップS105に進み、現時点の顔枠FDの位置およびサイズと顔辞書番号FCの値と符合度とをレジスタRGSTtmpに登録する。ステップS105ではまた、レジスタRGSTtmpに記述された顔数をインクリメントする。ステップS105の処理が完了すると、ステップS107に進む。
【0090】
ステップS101の判別結果がNOであれば、ステップS103で顔辞書番号FCをインクリメントし、その後にステップS97に戻る。ステップS99の判別結果がNOでかつステップS101の判別結果がYESであれば、そのままステップS107に進む。
【0091】
ステップS107では、顔枠FDが顔探索エリアの終了位置(右下位置)に到達したか否かを判別する。判別結果がNOであれば、ステップS115で顔枠FDを既定量だけラスタ方向に移動させ、その後にステップS93に戻る。判別結果がYESであれば、顔枠FDのサイズが“FSZmin”以下であるか否かをステップS109で判別する。判別結果がNOであれば、ステップS111で顔枠FDのサイズを“5”だけ縮小し、ステップS113で顔枠FDを顔探索エリアの開始位置に配置し、その後にステップS93に戻る。
【0092】
ステップS109の判別結果がYESであればステップS117に進み、レジスタRGSTtmpの記述をレジスタRGSToutに複製する。ステップS119ではレジスタRGSTtmpをクリアし、ステップS121ではレジスタRGSToutに記述された顔数が“1”以上であるか否かを判別する。判別結果がYESであれば、顔画像が検出されたことを表明するべく、ステップS123でフラグFLG_faceを“1”に設定する。判別結果がNOであれば、顔画像が検出されなかったことを表明するべく、ステップS125でフラグFLG_faceを“0”に設定する。ステップS123またはS125の処理が完了すると、ステップS87に戻る。
【0093】
図28を参照して、ステップS131では上述のステップS49で決定された追尾対象を覆う位置に追尾探索エリアを設定し、ステップS133では垂直同期信号Vsyncが発生したか否かを繰り返し判別する。判別結果がNOからYESに更新されると、ステップS135でフラグFLG_traceを“0”に設定し、ステップS137で追尾処理を実行する。フラグFLG_traceは1または2以上の追尾候補が現フレームの探索画像データから検出されたか否かを識別するためのフラグであり、“0”が未検出を示す一方、“1”が検出を示す。
【0094】
ステップS139では、フラグFLG_traceが“1”であるか否かを判別する。判別結果がYESであればステップS141に進み、追尾用レジスタRGSTchaseに登録された1または2以上の追尾候補のうち符合度が最大値を示す追尾候補を追尾対象として特定する。ステップS143では特定された追尾対象を覆う位置に追尾探索エリアを設定し、その後にステップS133に戻る。ステップS139の判別結果がNOであれば、追尾対象が消失したことを表明するべくステップS145でフラグFLG_lostを“1”に更新し、その後に処理を終了する。
【0095】
図28に示すステップS137の追尾処理は、図29〜図30に示すサブルーチンに従って実行される。
【0096】
ステップS151では、追尾対象を表す一部の探索画像データをメモリ制御回路30を通して探索画像エリア32dから読み出し、読み出された探索画像データの特徴量を算出する。ステップS153では、追尾枠TDのサイズの可変範囲を定義するべく、最大サイズTSZmaxを追尾対象のサイズの1.15倍の値に設定し、最小サイズTSZminを追尾対象のサイズの0.85倍の値に設定する。ステップS155では追尾枠TDのサイズを“TSZmax”に設定し、ステップS157では追尾用レジスタRGSTchaseをクリアする。
【0097】
ステップS159では、追尾枠TDを追尾探索エリアの開始位置に配置する。ステップS161では、追尾枠TDに属する一部の探索画像データをメモリ制御回路30を通して探索画像エリア32cから読み出し、読み出された探索画像データの特徴量を算出する。ステップS163では、ステップS151で算出された特徴量をステップS161で算出された特徴量と照合する。ステップS165では照合結果である符合度が閾値THobj以上であるか否かを判別し、判別結果がNOであればそのままステップS171に進む一方、判別結果がYESであればステップS167〜S169の処理を経てステップS171に進む。
【0098】
ステップS167では、現時点の追尾枠TDのサイズおよび位置と符合度とを、追尾候補情報として追尾用レジスタRGSTchaseに登録する。ステップS169では、追尾候補が検出されたことを表明するべく、フラグFLG_traceを“1”に設定する。
【0099】
ステップS171では、追尾枠TDが追尾探索エリアの終了位置に到達したか否かを判別する。判別結果がNOであれば、ステップS175で追尾枠TDを既定量だけラスタ方向に移動させ、その後にステップS161に戻る。判別結果がYESであれば、追尾枠TDのサイズが“TSZmin”以下であるか否かをステップS173で判別する。判別結果がNOであれば、ステップS177で追尾枠TDのサイズを“5”だけ縮小し、ステップS179で追尾枠TDを追尾探索エリアの開始位置に配置し、その後にステップS161に戻る。ステップS173の判別結果がYESであれば、上階層のルーチンに復帰する。
【0100】
図31を参照して、ステップS181では上述のステップS49で決定された追尾対象を覆う位置に追尾探索エリアを設定し、ステップS183ではタイマ26tのリセット&スタートを実行する。ステップS185では垂直同期信号Vsyncが発生したか否かを繰り返し判別し、判別結果がNOからYESに更新されるとステップS187でフラグFLG_traceを“0”に設定する。ステップS189では図29〜図30に示すサブルーチンに従う追尾処理を実行し、ステップS191ではフラグFLG_traceが“1”を示すか否かを判別する。判別結果がNOであれば、追尾対象の消失を表明するべくステップS193でフラグFLG_lostを“1”に設定し、その後に処理を終了する。
【0101】
ステップS191の判別結果がYESであれば、限定顔検出タスクが起動中であるか否かをステップS195で判別する。判別結果がNOであれば、ステップS197で限定顔検出タスクを起動する。ステップS199では上述したステップS141と同じ要領で追尾対象を特定し、ステップS201ではステップS199で特定された追尾対象を覆う位置に追尾探索エリアを設定する。ステップS203では、ステップS199で特定された追尾対象の位置およびサイズを参照して、限定顔探索エリアおよび顔サイズの各々を設定ないし更新する。ステップS203の処理が完了すると、ステップS185に戻る。
【0102】
ステップS195の判別結果がYESであれば、フラグFLG_discoverが“1”であるか否かをステップS205で判別し、タイマ26tの測定値が上限値に達したか否かをステップS207で判別する。ステップS205の判別結果およびステップS297の判別結果のいずれもNOであれば、ステップS199に移行する。ステップS205の判別結果がYESであれば、そのまま処理を終了する。ステップS207の判別結果がYESであれば、タイムアウトの発生を表明するべくステップS209でフラグFLG_timeoutを“1”に設定し、その後に処理を終了する。
【0103】
図33を参照して、ステップS211では顔枠LFDのサイズの可変範囲を定義するべく、最大サイズLSZmaxおよび最小サイズLSZminを設定する。最大サイズLSZmaxおよび最小サイズLSZminはそれぞれ、ステップS201で設定ないし更新された顔サイズの1.15倍の値および0.85倍の値を示す。ステップS213では垂直同期信号Vsyncが発生したか否かを判別し、判別結果がNOからYESに更新されるとステップS215で顔枠LFDのサイズを“LSZmax”に設定する。
【0104】
ステップS217では、顔枠LFDを限定顔探索エリアの開始位置(左上位置)に配置する。ステップS219では、顔枠LFDに属する一部の探索画像データを探索画像エリア32cから読み出し、読み出された探索画像データの特徴量を算出する。ステップS221では、顔辞書番号FCを“1”に設定する。
【0105】
ステップS223では、ステップS219で算出された特徴量を、顔辞書DC_Fに収められた5つの辞書画像のうち顔辞書番号FCに対応する辞書画像の特徴量と照合する。ステップS225では照合結果である符合度が閾値THtimeset以上であるか否かを判別し、ステップS227では顔辞書番号FCが“5”であるか否かを判別する。
【0106】
ステップS225の判別結果がYESであれば、顔画像が検出されたことを表明すべく、ステップS231でフラグFLG_discoverを“1”に設定する。設定が完了すると、処理を終了する。ステップS227の判別結果がNOであれば、ステップS229で顔辞書番号FCをインクリメントし、その後にステップS223に戻る。
【0107】
ステップS225の判別結果がNOでかつステップS227の判別結果がYESであれば、顔枠LFDが限定顔探索エリアの終了位置(右下位置)に到達したか否かをステップS233で判別する。判別結果がNOであれば、ステップS237で顔枠LFDを既定量だけラスタ方向に移動させ、その後にステップS219に戻る。判別結果がYESであれば、顔枠LFDのサイズが“LSZmin”以下であるか否かをステップS235で判別する。判別結果がNOであれば、ステップS239で顔枠LFDのサイズを“5”だけ縮小し、ステップS241で顔枠LFDを限定顔探索エリアの開始位置に配置し、その後にステップS219に戻る。ステップS235の判別結果がYESであれば、処理を終了する。
【0108】
以上の説明から分かるように、イメージャ16によって捉えられた被写界を表す探索画像データは、メモリ制御回路30によってSDRAM32の探索画像エリア32cに取り込まれる。CPU26は、顔辞書DC_Fに収められた辞書画像に対する符合度が閾値THtraceを上回る顔画像を探索画像エリア32cに格納された探索画像データから探索し(S81~S125, S35~S45)、これによって探知された顔画像上の特徴画像を追尾対象として指定し(S49)、そして指定された追尾対象を探索画像データを参照して追尾する(S131~S143, S181~S209, S7, S9, S15)。追尾時間は、探知された顔画像の辞書画像に対する符合度が大きいほど長くなるように制御される(S51)。また、顔画像の探索処理は、追尾処理が起動状態にあるとき停止される(S31~S33, S47, S53~S67, S71)。
【0109】
このように、辞書画像に対する符合度が基準を上回る顔画像が探索処理によって探知されると、探知された顔画像上の特徴画像を追尾する追尾処理が探索処理に代替して起動される。起動された追尾処理の時間は、探知された顔画像の辞書画像に対する符合度が大きいほど長くなる。したがって、符合度が高い顔画像上の特徴画像は持続的に追尾される一方、符合度が低い顔画像つまり誤検出の可能性のある顔画像上の特徴画像に対する追尾は早めに終了される。こうして、追尾性能が向上する。
【0110】
なお、この実施例では、追尾タスク2において起動されるタイマ26tの測定値は固定的な上限値と比較される(図32のステップS207参照)。しかし、上限値は限定顔検出タスクにおいて得られた符合度を参照して調整するようにしてもよい。この場合、図32に示す処理の一部を図35に示すように修正する必要がある。
【0111】
図35を参照して、ステップS205の判別結果がNOであれば、現フレームに対応して限定顔検出タスクで得られた符合度の最大値をステップS251で検出する。ステップS253では、検出された最大値が閾値THlimit以上であるか否かを判別する。ここで、閾値THlimitは、閾値THtrace以上でかつ閾値THtimeset未満の値を示す。判別結果がNOであればそのままステップS207に進む一方、判別結果がYESであればステップS255で上限値を増大させてからステップS207に進む。これによって、追尾対象の周辺で検出された顔画像の符合度に応じて追尾タスク2の起動時間を延長することができる。
【0112】
また、この実施例では、閾値Ttarceを上回る符合度を有する顔画像が主要顔画像として現れたときに速やかに追尾タスク1または追尾タスク2を起動するようにしている(図22〜図24参照)。しかし、追尾タスク1または追尾タスク2は、主要顔画像が探知できなくなった時点で起動するようにしてもよい。この場合、図22〜図23に示す処理は、図36に示すように修正し、かつ図37〜図38に示す限定顔検出タスク2を追加的に実行する必要がある。
【0113】
図36を参照して、ステップS49の処理が完了すると、限定顔検出タスク2が起動中であるか否かをステップS261で判別する。判別結果がNOであれば、ステップS263でフラグFLG_discover2を“0”に設定し、ステップS265で限定顔検出タスク2を起動し、その後にステップS267に進む。これに対して、ステップS261の判別結果がYESであれば、そのままステップS267に進む。
【0114】
ステップS267では、限定顔探索エリアおよび顔サイズを設定ないし更新する。限定顔探索エリアおよび顔サイズは、ステップS39で決定された主要顔画像を参照して初期的に設定され、限定顔検出タスク2の下で検出された顔画像(符合度が閾値THtrace以上の顔画像)を参照して更新される。ステップS269では、フラグFLG_discover2が“1”を示すか否かを判別する。判別結果がYESであれば、ステップS271で追尾対象を特定(更新)し、その後にステップS261に戻る。一方、判別結果がNOであればステップS51に進む。
【0115】
図37〜図38を参照して、ステップS281〜S293,S297〜S299,およびS303〜S311では図33〜図34に示すステップS211〜S223,S227〜S229およびS233〜S241と同様の処理を実行するため、重複した説明は省略する。ステップS293に続くステップS295では、照合処理の結果である符合度が閾値THtrace以上であるか否かを判別する。判別結果がNOであればステップS297に進む一方、判別結果がYESであればステップS301でフラグFLG_discover2を“1”に更新してから処理を終了する。
【0116】
さらに、この実施例では、マルチタスクOSおよびこれによって実行される複数のタスクに相当する制御プログラムは、フラッシュメモリ42に予め記憶される。しかし、図39に示すように通信I/F48をディジタルカメラ10に設け、一部の制御プログラムを内部制御プログラムとしてフラッシュメモリ44に当初から準備する一方、他の一部の制御プログラムを外部制御プログラムとして外部サーバから取得するようにしてもよい。この場合、上述の動作は、内部制御プログラムおよび外部制御プログラムの協働によって実現される。
【0117】
さらに、この実施例では、CPU26によって実行される処理を上述の要領で複数のタスクに区分するようにしている。しかし、各々のタスクをさらに複数の小タスクに区分してもよく、さらには区分された複数の小タスクの一部を他のタスクに統合するようにしてもよい。また、各々のタスクを複数の小タスクに区分する場合、その全部または一部を外部サーバから取得するようにしてもよい。
【符号の説明】
【0118】
10 …ディジタルカメラ
12 …フォーカスレンズ
14 …絞り機構
16 …イメージャ
22 …AE評価回路
24 …AF評価回路
26 …CPU
32 …SDRAM
44 …フラッシュメモリ
【特許請求の範囲】
【請求項1】
画像を繰り返し撮像する撮像手段、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索手段、
前記探索手段によって探知された物体像上の特徴画像を追尾する追尾手段、および
前記探索手段によって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾手段の追尾時間を調整する調整手段を備える、追尾装置。
【請求項2】
前記追尾手段は前記特徴画像に注目して撮像条件を調整する撮像条件調整手段を含む、請求項1記載の追尾装置。
【請求項3】
前記撮像手段によって取り込まれた画像を画面に表示する表示手段をさらに備え、
前記追尾手段は前記特徴画像を指向するキャラクタを前記表示手段によって表示された画像に多重するキャラクタ多重手段を含む、請求項1記載の追尾装置。
【請求項4】
前記調整手段によって設定された追尾時間が基準値を下回るとき前記特徴パターンに符合する物体像を前記追尾手段によって追尾された特徴画像の近傍から限定的に探索する限定探索手段、および
前記限定探索手段の探知に応答して前記追尾手段の追尾時間を延長する延長手段をさらに備える、請求項1ないし3のいずれかに記載の追尾装置。
【請求項5】
前記限定探索手段は、前記特徴画像の近傍に存在する部分画像を互いに異なる態様で繰り返し指定する指定手段、および前記指定手段によって指定された部分画像の前記特徴パターンに対する符合度を算出する符合度算出手段を含み、
前記符合度算出手段によって算出された符合度に基づいて前記基準値を調整する基準値調整手段をさらに備える、請求項4記載の追尾装置。
【請求項6】
前記追尾手段は前記特徴画像の消失に応答して追尾処理を停止する追尾停止手段を含む、請求項1ないし5のいずれかに記載の追尾装置。
【請求項7】
前記追尾手段および前記探索手段を代替的に起動する制御手段をさらに備える、請求項1ないし6のいずれかに記載の追尾装置。
【請求項8】
前記制御手段は前記探索手段の非探知に応答して前記追尾手段を起動する追尾起動手段を含む、請求項7記載の追尾装置。
【請求項9】
前記探索手段によって探索された物体像の一部を前記特徴画像として指定する指定手段をさらに備える、請求項1ないし8のいずれかに記載の追尾装置。
【請求項10】
画像を繰り返し撮像する撮像手段を備える追尾装置のプロセッサに、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを実行させるための、追尾制御プログラム。
【請求項11】
画像を繰り返し撮像する撮像手段を備える追尾装置によって実行される追尾制御方法であって、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを備える、追尾制御方法。
【請求項12】
画像を繰り返し撮像する撮像手段、および
メモリに保存された内部制御プログラムに従う処理を実行するプロセッサを備える追尾装置に供給される外部制御プログラムであって、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを前記内部制御プログラムと協働して前記プロセッサに実行させるための、外部制御プログラム。
【請求項13】
画像を繰り返し撮像する撮像手段、
外部制御プログラムを受信する受信手段、および
前記受信手段によって受信された外部制御プログラムとメモリに保存された内部制御プログラムに従う処理を実行するプロセッサを備える追尾装置であって、
前記外部制御プログラムは、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを前記内部制御プログラムと協働して実行するプログラムに相当する、追尾装置。
【請求項1】
画像を繰り返し撮像する撮像手段、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索手段、
前記探索手段によって探知された物体像上の特徴画像を追尾する追尾手段、および
前記探索手段によって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾手段の追尾時間を調整する調整手段を備える、追尾装置。
【請求項2】
前記追尾手段は前記特徴画像に注目して撮像条件を調整する撮像条件調整手段を含む、請求項1記載の追尾装置。
【請求項3】
前記撮像手段によって取り込まれた画像を画面に表示する表示手段をさらに備え、
前記追尾手段は前記特徴画像を指向するキャラクタを前記表示手段によって表示された画像に多重するキャラクタ多重手段を含む、請求項1記載の追尾装置。
【請求項4】
前記調整手段によって設定された追尾時間が基準値を下回るとき前記特徴パターンに符合する物体像を前記追尾手段によって追尾された特徴画像の近傍から限定的に探索する限定探索手段、および
前記限定探索手段の探知に応答して前記追尾手段の追尾時間を延長する延長手段をさらに備える、請求項1ないし3のいずれかに記載の追尾装置。
【請求項5】
前記限定探索手段は、前記特徴画像の近傍に存在する部分画像を互いに異なる態様で繰り返し指定する指定手段、および前記指定手段によって指定された部分画像の前記特徴パターンに対する符合度を算出する符合度算出手段を含み、
前記符合度算出手段によって算出された符合度に基づいて前記基準値を調整する基準値調整手段をさらに備える、請求項4記載の追尾装置。
【請求項6】
前記追尾手段は前記特徴画像の消失に応答して追尾処理を停止する追尾停止手段を含む、請求項1ないし5のいずれかに記載の追尾装置。
【請求項7】
前記追尾手段および前記探索手段を代替的に起動する制御手段をさらに備える、請求項1ないし6のいずれかに記載の追尾装置。
【請求項8】
前記制御手段は前記探索手段の非探知に応答して前記追尾手段を起動する追尾起動手段を含む、請求項7記載の追尾装置。
【請求項9】
前記探索手段によって探索された物体像の一部を前記特徴画像として指定する指定手段をさらに備える、請求項1ないし8のいずれかに記載の追尾装置。
【請求項10】
画像を繰り返し撮像する撮像手段を備える追尾装置のプロセッサに、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを実行させるための、追尾制御プログラム。
【請求項11】
画像を繰り返し撮像する撮像手段を備える追尾装置によって実行される追尾制御方法であって、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを備える、追尾制御方法。
【請求項12】
画像を繰り返し撮像する撮像手段、および
メモリに保存された内部制御プログラムに従う処理を実行するプロセッサを備える追尾装置に供給される外部制御プログラムであって、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを前記内部制御プログラムと協働して前記プロセッサに実行させるための、外部制御プログラム。
【請求項13】
画像を繰り返し撮像する撮像手段、
外部制御プログラムを受信する受信手段、および
前記受信手段によって受信された外部制御プログラムとメモリに保存された内部制御プログラムに従う処理を実行するプロセッサを備える追尾装置であって、
前記外部制御プログラムは、
特徴パターンに対する符合度が基準を上回る物体像を前記撮像手段によって取り込まれた画像から探索する探索ステップ、
前記探索ステップによって探知された物体像上の特徴画像を追尾する追尾ステップ、および
前記探索ステップによって探知された物体像の前記特徴パターンに対する符合度が大きいほど長くなるように前記追尾ステップの追尾時間を調整する調整ステップを前記内部制御プログラムと協働して実行するプログラムに相当する、追尾装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【公開番号】特開2012−170028(P2012−170028A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−31531(P2011−31531)
【出願日】平成23年2月17日(2011.2.17)
【出願人】(000001889)三洋電機株式会社 (18,308)
【Fターム(参考)】
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願日】平成23年2月17日(2011.2.17)
【出願人】(000001889)三洋電機株式会社 (18,308)
【Fターム(参考)】
[ Back to top ]