(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-04
(45)【発行日】2024-10-15
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
H04N 23/67 20230101AFI20241007BHJP
H04N 23/611 20230101ALI20241007BHJP
G06T 7/00 20170101ALI20241007BHJP
G03B 15/00 20210101ALI20241007BHJP
G02B 7/28 20210101ALI20241007BHJP
【FI】
H04N23/67 100
H04N23/611
G06T7/00 300D
G03B15/00 Q
G02B7/28 N
(21)【出願番号】P 2020061374
(22)【出願日】2020-03-30
【審査請求日】2023-03-17
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】空門 日出来
【審査官】門田 宏
(56)【参考文献】
【文献】特開2009-268086(JP,A)
【文献】特開2012-209831(JP,A)
【文献】特開2019-201387(JP,A)
【文献】特開2019-134438(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/222- 5/257
H04N 23/00
H04N 23/40 -23/76
H04N 23/90 -23/959
G06T 7/00
G02B 7/28 - 7/40
G03B 15/00
(57)【特許請求の範囲】
【請求項1】
映像中の被写体の複数の部位にそれぞれ対応する複数の部位領域を検出する領域検出手段と、
前記領域検出手段により検出された前記複数の部位領域を前記被写体ごとに対応付けし
、フレーム画像で検出されない前記部位領域は過去のフレーム画像で同じ被写体から検出された前記部位領域
と対応付けする領域対応付け手段と、
前記領域検出手段により検出された前記複数の部位領域に基づいて追尾領域を設定し、所定の被写体を追尾する追尾手段とを有し、
前記追尾手段は、前記追尾領域に設定された
追尾部位領域で
現在のフレーム画像において前記所定の被写体を追尾でき
ず、前記現在のフレーム画像において前記追尾部位領域と対応付けられるべき前記所定の被写体の他の部位領域
が前記現在のフレーム画像の1つ前のフレーム画像で検出されていない場合に、当該他の部位領域と、前記領域対応付け手段が当該1つ前のフレーム画像において前記追尾部位領域と対応付けた過去のフレーム画像における部位領域と、の照合に成功すれば、当該他の部位領域で前記所定の被写体を追尾することを特徴とする画像処理装置。
【請求項2】
前記追尾手段は、前記
追尾部位領域で前記所定の被写体を追尾できない場合には前記追尾領域を前記他の部位領域に切り替え、前記他の部位領域が前記追尾領域に設定されているときに前記
追尾部位領域で前記所定の被写体を追尾できた場合には前記追尾領域を前記
追尾部位領域に切り替えることを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記追尾手段は、前記部位領域に対応付けられた他の部位領域の推定位置の情報に基づいて前記追尾領域を設定することを特徴とする請求項1又は2記載の画像処理装置。
【請求項4】
前記追尾手段は、前記他の部位領域の推定位置の情報を用いて映像中の前記他の部位領域を探索し、前記所定の被写体を追尾することを特徴とする請求項3記載の画像処理装置。
【請求項5】
前記領域検出手段により検出された部位領域から、追尾している被写体の追尾領域と異なる部位の部位領域を選択し、部位ごとにクラスタリングする手段と、
クラスタを部位ごとに評価する評価手段とを有し、
前記領域対応付け手段は、部位ごとに評価値の高いクラスタの部位領域を追尾領域に対応付けることを特徴とする請求項1~4の何れか1項に記載の画像処理装置。
【請求項6】
前記領域検出手段は、映像中の被写体の頭部及び胴体にそれぞれ対応する部位領域を検出することを特徴とする請求項1~5の何れか1項に記載の画像処理装置。
【請求項7】
前記領域検出手段は、前記
追尾部位領域として被写体の頭部に対応する部位領域を検出し、前記他の部位領域として被写体の胴体に対応する部位領域を検出することを特徴とする請求項2記載の画像処理装置。
【請求項8】
撮像手段と、
前記追尾領域を合焦に用いて前記撮像手段に係る合焦制御を行う合焦手段とを有することを特徴とする請求項1~7の何れか1項に記載の画像処理装置。
【請求項9】
映像中の被写体の複数の部位にそれぞれ対応する複数の部位領域を検出する領域検出工程と、
検出された前記複数の部位領域を前記被写体ごとに対応付けし
、フレーム画像で検出されない前記部位領域は過去のフレーム画像で同じ被写体から検出された前記部位領域
と対応付けする領域対応付け工程と、
検出された前記複数の部位領域に基づいて追尾領域を設定し、所定の被写体を追尾する追尾工程とを有し、
前記追尾工程では、前記追尾領域に設定された
追尾部位領域で
現在のフレーム画像において前記所定の被写体を追尾でき
ず、前記現在のフレーム画像において前記追尾部位領域と対応付けられるべき前記所定の被写体の他の部位領域
が前記現在のフレーム画像の1つ前のフレーム画像で検出されていない場合に、当該他の部位領域と、前記領域対応付け工程で当該1つ前のフレーム画像において前記追尾部位領域と対応付けた過去のフレーム画像における部位領域と、の照合に成功すれば、当該他の部位領域で前記所定の被写体を追尾することを特徴とする画像処理方法。
【請求項10】
コンピュータを、請求項1~8の何れか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
従来、撮像装置のフォーカスを継続的に被写体に合わせること等を目的として、映像中の被写体を継続的に追尾することが行われている。例えば、顔検出で検出した映像中の顔領域を追尾対象として、継続的に顔にフォーカスすることなどが行われている。また、映像から複数の被写体の領域を検出し、映像の中央近くにある領域を高く評価し、評価値の高い領域を追尾する技術が提案されている(例えば、特許文献1参照)。これにより撮像装置のフォーカスを継続的に被写体に合わせること等が可能になる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、映像中に複数の被写体が存在するとき、追尾中の被写体の追尾対象とした領域を見失うと、同一被写体の他の領域が映像中にある場合でも、評価値の高い他の被写体の領域に追尾対象が切り替わるという問題があった。そこで、本発明は、追尾中の被写体の追尾対象とした領域が発見できなくとも、同じ被写体の追尾を継続することを可能にする画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明に係る画像処理装置は、映像中の被写体の複数の部位にそれぞれ対応する複数の部位領域を検出する領域検出手段と、前記領域検出手段により検出された前記複数の部位領域を前記被写体ごとに対応付けし、フレーム画像で検出されない前記部位領域は過去のフレーム画像で同じ被写体から検出された前記部位領域と対応付けする領域対応付け手段と、前記領域検出手段により検出された前記複数の部位領域に基づいて追尾領域を設定し、所定の被写体を追尾する追尾手段とを有し、前記追尾手段は、前記追尾領域に設定された追尾部位領域で現在のフレーム画像において前記所定の被写体を追尾できず、前記現在のフレーム画像において前記追尾部位領域と対応付けられるべき前記所定の被写体の他の部位領域が前記現在のフレーム画像の1つ前のフレーム画像で検出されていない場合に、当該他の部位領域と、前記領域対応付け手段が当該1つ前のフレーム画像において前記追尾部位領域と対応付けた過去のフレーム画像における部位領域と、の照合に成功すれば、当該他の部位領域で前記所定の被写体を追尾することを特徴とする。
【発明の効果】
【0006】
本発明によれば、追尾中の被写体の追尾対象とした領域を現フレームにて発見できず、追尾に失敗した場合でも、同じ被写体の追尾を継続することが可能となる。
【図面の簡単な説明】
【0007】
【
図1】本実施形態における撮像装置の構成例を示す図である。
【
図2】本実施形態における追尾処理の例を示すフローチャートである。
【
図3】本実施形態における追尾処理の例を示すフローチャートである。
【
図4】本実施形態における領域対応付け処理の例を説明する図である。
【
図5】本実施形態における領域対応付け部の処理例を説明する図である。
【
図6】本実施形態における推定領域照合部の処理例を説明する図である。
【
図7】本実施形態における追尾AF処理の例を説明する図である。
【
図8】本実施形態における領域対応付け処理の例を説明する図である。
【
図9】本実施形態における推定領域照合部の処理例を説明する図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態を図面に基づいて説明する。
【0009】
(実施形態1)
図1(a)は、本実施形態における画像処理装置を適用した撮像装置100の構成例を示すブロック図である。撮像装置100は、制御部101、ROM102、RAM103、外部記憶部104、制御キー105、撮像部106、表示部107、通信部108、合焦部109、計時部110、及びシステムバス111を有する。制御部101、ROM102、RAM103、外部記憶部104、制御キー105、撮像部106、表示部107、通信部108、合焦部109、及び計時部110は、システムバス111を介して通信可能に接続される。
【0010】
制御部101は、撮像装置100全体を制御する。ROM(Read Only Memory)102は、変更を必要としないプログラムやデータ(パラメータ等)を格納するメモリである。RAM(Random Access Memory)103は、制御部101のワーキング用のデータや、外部記憶部104等から供給されるデータ等を一時記憶するメモリである。
【0011】
外部記憶部104は、撮像装置100に固定して設置されたハードディスクやメモリカード等の記憶装置である。なお、外部記憶部104は、撮像装置100から着脱可能なCompact Disk(CD)等の光ディスク、メモリカード等を含んでもよい。制御キー105は、ユーザの操作を受ける、電源ボタンや撮像ボタン等の制御キーである。撮影ボタンは半押し等の押下ができる。
【0012】
撮像部106は、レンズ等を通して集光された光をCCDやCMOS等の撮像素子(イメージセンサ)によって電気信号に変換し、さらに画像処理を施すことで画像データを作成する。表示部107は、撮像部106によって撮影された画像データ等を表示する。通信部108は、WiFi(登録商標)やBluetooth(登録商標)等の通信方式によって、外部の装置とデータを送受信する。
【0013】
合焦部109は、後述する追尾領域を用いて追尾領域中の像が合焦するようにオートフォーカス(AF)を行う。オートフォーカスは、位相差AFやコントラストAF等の方法を用いてよく、オートフォーカス方式はこれらに限定されない。計時部110aは、時間を計測し、現在時刻を管理する。
【0014】
本実施形態では、追尾処理を実現するプログラムコードがROM102あるいは外部記憶部104に格納されており、そのプログラムコードを制御部101が読み出して実行することで、追尾処理を行う画像処理装置の機能が実現される。本実施形態における撮像装置において実現される画像処理装置の構成について、
図1(b)を参照して説明する。
図1(b)は、本実施形態における画像処理装置の構成例を示すブロック図である。本実施形態における画像処理装置は、領域検出部121、領域対応付け部124、及び追尾部125を有する。
【0015】
領域検出部121は、映像中の被写体の部位領域を検出する。領域検出部121は、頭部検出部122と胴体検出部123を有する。頭部検出部122は、被写体の部位領域として、映像中の人物の頭部を検出する。例えば、頭部検出部122は、人物の顔や後頭部等の頭部を画像から検出する。胴体検出部123は、被写体の部位領域として、映像中の人物の胴体を検出する。例えば、胴体検出部123は、人物の腰や胸や背中等の胴体を画像から検出する。なお、頭部検出及び胴体検出の方法や検出部位は、これらに限定されない。
【0016】
また、胴体検出部123は、胴体に対応する頭部の位置情報(頭部推定位置)を出力する。具体的には、胴体検出部123は、胴体が検出された人物の頭部領域の中心座標を推定して出力する。本実施形態では領域は矩形として出力されるため、中心座標は対角線の交点である。なお、胴体検出部123が出力する頭部推定位置は、これに限定されるものではなく、例えば中心座標ではない頭部領域に含まれる座標であってもよい。あるいは、頭部領域に含まれる領域や、頭部領域と一部の領域を共有する領域等であってもよい。
【0017】
領域検出部121による頭部検出や胴体検出の結果は、例えば
図5(a)に示すように出力される。頭部検出部122は頭部領域501aを出力し、胴体検出部123は胴体領域503a及び頭部推定位置502aを出力する。
【0018】
領域対応付け部124は、追尾領域に対して同じ被写体の他の領域を対応付ける。例えば、領域対応付け部124は、頭部が追尾領域のとき、その頭部に対して、頭部の位置情報(頭部推定位置)を含む胴体領域を対応付ける。もし、その頭部に対応付けられる胴体領域がない場合には、領域対応付け部124は、過去の同じ頭部の追尾領域に対応付けられている胴体領域を対応付ける。領域対応付け部124による領域対応付け処理の詳細は、
図4(a)を用いて後述する。
【0019】
追尾部125は、フレーム毎に追尾領域を設定する。追尾部125は、前フレームの追尾領域に基づいて、現フレームの対応領域を求め、その領域を現フレームの追尾領域として設定する。なお、追尾部125は、頭部追尾中に頭部による追尾が行えない場合には、胴体に追尾領域を切り替えて追尾を継続する。また、追尾部125は、胴体追尾中に頭部を検出した場合には、頭部へ追尾領域を切り替える。追尾部125による頭部追尾処理の詳細は、
図3(a)を用いて後述する。また、追尾部125による胴体追尾処理の詳細は、
図3(b)を用いて後述する。
【0020】
追尾部125は、現フレームの追尾領域を求めるために、検知領域照合部126、領域探索部127、及び推定領域照合部128を有する。検知領域照合部126は、領域同士の照合を行う。例えば、検知領域照合部126は、前フレームの追尾領域と、現フレームで検出された領域とを照合し、両者のカラーヒストグラムや輝度ヒストグラム等を特徴量として、特徴量の類似度が所定以上であれば領域が対応していると判断する。頭部領域であれば顔器官位置等を照合に用いてもよいし、胴体領域であれば関節等を照合に用いてもよい。例えば、検知領域照合部126は、顔器官位置や関節位置の周辺領域の画像特徴量を用いて、同じ器官や関節同士で特徴量が類似するか等で照合してもよい。検知領域の照合の方法はこれらに限定されない。
【0021】
領域探索部127は、指定領域を画像全体等から探索する。例えば、領域探索部127は、前フレームの追尾領域が、現フレームのどこに現れるかを、追尾領域をテンプレートとしてテンプレートマッチングにより探索する。なお、探索する範囲は、画像全体であってもよいし、追尾領域の近傍に限定してもよい。また、探索の順番を追尾領域の近傍から開始してもよい。領域探索の方法はこれらに限定されない。
【0022】
推定領域照合部128は、頭部推定位置を用いて他フレームの頭部領域を探索する。具体的には、推定領域照合部128は、頭部推定位置と他フレームの頭部領域を照合する。例えば、推定領域照合部128は、
図6(b)に一例を示すように前フレームの頭部推定位置602bと現フレームの頭部領域603bとを照合する。あるいは、推定領域照合部128は、
図6(a)に一例を示すように現フレームの頭部推定位置602aと前フレームの頭部領域601aとを照合する。照合の方法としては、例えば、頭部領域をテンプレートとして、頭部推定位置を中心として探索を行う。具体的には、頭部推定位置を中心とした所定の矩形範囲を切り出し、該矩形範囲内を探索する。あるいは、探索の順番を頭部中心位置から始めて画像全体を探索してもよい。
【0023】
また、推定領域照合部128は、頭部推定位置から領域を生成するか、頭部推定位置が領域として得られる場合には、双方の領域を照合してもよい。あるいは、頭部推定位置の領域が頭部領域に含まれる場合には、頭部推定位置の領域をテンプレートとして頭部領域を中心として探索を行ってもよい。反対に、頭部推定位置の領域が頭部領域を含む場合には、頭部領域をテンプレートとして頭部推定領域内をテンプレートマッチングで探索してもよい。
【0024】
以上では、1つの頭部領域と、頭部推定位置との照合を前提としていたが、複数の頭部領域との照合もある。このとき、推定領域照合部128は、頭部領域毎に前述した何れかの処理を繰り返して適用して、最も類似度が高くなる頭部領域の結果を採用する。なお、頭部推定位置と頭部領域の照合の方法はこれらに限定されない。
【0025】
また、推定領域照合部128は、照合する頭部領域がないときには、頭部推定位置を用いて他フレームの頭部を探索する。例えば、推定領域照合部128は、
図6(c)に一例を示すように前フレームの頭部推定位置601cを用いて、現フレームから頭部を探索する。あるいは、現フレームの頭部推定位置を用いて、前フレームから頭部を探索してもよい。ここで、これらの探索には領域探索部127を用いてもよい。例えば、頭部推定位置から領域を生成するか、頭部推定位置が領域として得られる場合には、頭部推定位置の領域をテンプレートとして探索する。テンプレートには頭部推定位置の領域の部分領域を用いてもよい。あるいは、頭部推定位置の領域を含む領域をテンプレートに用いてもよい。頭部推定位置を用いた探索の方法はこれらに限定されない。
【0026】
[追尾AF処理]
本実施形態における追尾AF処理について、
図2(a)を参照して説明する。
図2(a)は、本実施形態における追尾AF処理の例を示すフローチャートである。追尾AF処理は、制御キー105の撮像ボタンが半押しの間、撮像部106から得られるフレーム画像毎に本処理が適用される。以下、処理対象のフレーム画像を、現フレームと呼ぶ。本処理が起動されるときには、前フレームにて設定した追尾領域とその種類(頭部か胴体)の情報も本処理に渡される。フレーム画像と追尾領域等の情報はRAM103に格納されて本処理に渡される。
【0027】
追尾AF処理を開始すると、ステップS201では、領域検出部121の頭部検出部122が、現フレームに頭部検出処理を行う。また、ステップS202では、領域検出部121の胴体検出部123が、現フレームに胴体検出処理を行う。なお、このステップS201、S202の処理順序は、順不同であり、胴体検出処理を行った後に頭部検出処理を行ってもよい。また、頭部検出処理と胴体検出処理とを並行して行ってもよい。
【0028】
ステップS203では、追尾部125が、追尾中であるか否かを判断する。追尾部125は、追尾中ではないと判断した場合にはステップS204へ移る。また、追尾部125は、追尾中であると判断した場合、追尾領域が頭部であるならばステップS205へ移り、胴体であるならばステップS206へ移る。ステップS204~S206ではそれぞれ現フレームに対して追尾領域を設定する。あるいは追尾に失敗したときは、追尾中断フラグを立てる。
【0029】
ステップS204では、追尾部125が、追尾開始処理を行う。追尾開始処理では、追尾部125が、現フレームの中心に近い位置にある頭部や胴体を初期の追尾領域として設定する。追尾開始処理の詳細は、
図2(b)に示すフローチャートを用いて後述する。
【0030】
ステップS205では、追尾部125が、頭部追尾処理を行う。頭部追尾処理では、追尾中の頭部が現フレームにも存在する場合には、追尾部125が、その頭部を継続して追尾する。追尾中の頭部を現フレームにおいて発見できない場合には、追尾部125が、追尾中の頭部に対応する胴体に追尾領域を切り替える処理等を行う。頭部追尾処理の詳細は、
図3(a)に示すフローチャートを用いて後述する。
【0031】
ステップS206では、追尾部125が、胴体追尾処理を行う。胴体追尾処理では、追尾中の胴体に対応する頭部が現フレームに出現した場合には、追尾部125が、その頭部に追尾領域を切り替える。そうでない場合には、追尾部125が、胴体の追尾を継続する。胴体追尾処理の詳細は、
図3(b)に示すフローチャートを用いて後述する。
ステップS204~S206の何れかの処理を実行した後、ステップS207へ移る。
【0032】
ステップS207では、合焦部109が、ステップS204~S206において設定された現フレームの追尾領域に基づいて合焦制御を行う。ただし、追尾中断フラグが立っているとき、本処理はスキップする。合焦制御では、合焦部109が、追尾領域を用いて追尾領域中の像が合焦するようにオートフォーカスを行う。合焦には追尾領域中のすべての領域を用いなくてもよいし、追尾領域から外れる領域を用いてもよい。追尾領域をもとにした合焦の方法は、これらに限定されない。
【0033】
次に、ステップS208では、領域対応付け部124が、領域対応付け処理を行う。領域対応付け処理では、領域対応付け部124が、ステップS204~S206において得た現フレームの追尾領域に対して、他の部位の領域を対応付ける。つまり、領域対応付け部124は、追尾領域が頭部領域であれば胴体領域を対応付ける処理を行い、追尾領域が胴体領域であれば頭部領域を対応付ける処理を行う。領域対応付け処理の詳細は、
図4(a)に示すフローチャートを用いて後述する。
【0034】
次に、
図2(a)に示したステップS204の追尾開始処理について、
図2(b)を参照して説明する。
図2(b)は、本実施形態における追尾開始処理の例を示すフローチャートである。
【0035】
ステップS251では、追尾部125が、
図2(a)のステップS201の頭部検出処理により現フレームに頭部領域が見つかっていたか否かを判断する。追尾部125は、頭部領域が検出されている場合にはステップS252へ移り、頭部領域が検出されていない場合にはステップS253へ移る。ステップS252では、追尾部125が、現フレームにおいて検出された頭部領域を追尾領域に設定する。なお、複数の頭部領域が検出されている場合には、フレームの中心に近い頭部領域を選定して追尾領域に設定する。
【0036】
ステップS253では、追尾部125が、
図2(a)のステップS202の胴体検出処理により現フレームに胴体領域が見つかっていたか否かを判断する。追尾部125は、胴体領域が検出されている場合にはステップS254へ移り、胴体領域が検出されていない場合にはステップS255へ移る。ステップS254では、追尾部125が、現フレームにおいて検出された胴体領域を追尾領域に設定する。なお、複数の胴体領域が検出されている場合には、フレームの中心に近い胴体領域を選定して追尾対象に設定する。ステップS255では、追尾部125が、現フレームでは追尾すべき領域がなかったと判断して追尾を中断する。具体的には、追尾中断のフラグを立てる。
【0037】
次に、
図2(a)に示したステップS205の頭部追尾処理について、
図3(a)を参照して説明する。なお、頭部を追尾中のとき、前フレームの追尾領域を追尾頭部と呼ぶ。また、胴体を追尾中のとき、前フレームの追尾領域を追尾胴体と呼ぶ。
図3(a)は、本実施形態における頭部追尾処理の例を示すフローチャートである。
【0038】
ステップS301では、追尾部125が、追尾頭部と現フレームの頭部領域とを照合する。複数の頭部領域が現フレームから抽出されていた場合には、各頭部領域と追尾頭部とを照合して、最も類似度が高い頭部領域を選択する。このステップS301での照合は、検知領域照合部126により実行される。追尾部125は、追尾頭部に対応する頭部領域が見つかった場合(成功)には、ステップS302へ移り、それ以外はステップS303へ移る。ステップS302では、追尾部125が、ステップS301において得られた追尾頭部に対応する現フレームの頭部領域を、現フレームの追尾領域として設定する。
【0039】
ステップS303では、追尾部125が、追尾頭部に対応づく胴体領域を得て、現フレームの胴体領域と照合をする。追尾頭部に対応づく胴体領域は、
図2(a)のステップS208において対応付けられている領域である。このステップS303での照合は、検知領域照合部126により実行される。追尾部125は、追尾頭部に対応づく胴体領域に対応する現フレームの胴体領域が見つかった場合(成功)には、ステップS304へ移り、それ以外はステップS307に移る。
【0040】
ステップS304では、追尾部125が、ステップS303において特定された胴体領域の頭部推定位置を得て、追尾頭部と照合する。具体的には、推定領域照合部128が照合を行う。例えば、推定領域照合部128が、
図6(a)に示すように、前フレームの追尾頭部601aをテンプレートとして、現フレームの胴体領域603aの頭部推定位置602aを中心としてテンプレートマッチングを行う。しかし、推定領域照合部128の説明で述べた他の照合方法でもよく、照合方法はこれらに限定されない。追尾部125は、現フレームにて追尾頭部に対応する領域が発見できた場合(成功)には、ステップS305へ移り、それ以外はステップS306に移る。
【0041】
ステップS305では、追尾部125が、ステップS304での照合で得た、頭部領域と推定した領域(推定頭部領域)を現フレームの追尾領域として設定する。ステップS306では、追尾部125が、ステップS303での照合で得た、胴体領域を現フレームの追尾領域として設定する。
【0042】
ステップS307では、追尾部125が、頭部領域を探索する。具体的には、領域探索部127が、頭部領域を現フレームから探索する。追尾部125は、探索により頭部領域が見つかった場合(成功)には、ステップS308に移り、それ以外はステップS309に移る。ステップS308では、追尾部125が、ステップS307の探索で得た、発見された頭部領域(発見頭部領域)を現フレームの追尾領域として設定する。ステップS309では、追尾部125が、いずれの方法でも現フレームに追尾領域を発見できなかったと判断して追尾を中断する。具体的には追尾中断のフラグを立てる。
【0043】
次に、
図2(a)に示したステップS206の胴体追尾処理について、
図3(b)を参照して説明する。
図3(b)は、本実施形態における胴体追尾処理の例を示すフローチャートである。
【0044】
ステップS351では、追尾部125が、追尾胴体と現フレームの胴体領域とを照合する。複数の胴体領域が現フレームから抽出されていた場合には、これら胴体領域と追尾胴体とを照合して、最も類似度が高い胴体領域を選択する。このステップS351での照合は、検知領域照合部126により実行される。追尾部125は、追尾胴体に対応する胴体領域が見つかった場合(成功)には、ステップS352へ移り、それ以外はステップS355へ移る。
【0045】
ステップS352では、追尾部125が、ステップS351で得た胴体領域に対応する現フレームの頭部領域を得る。具体的には、現フレームの頭部領域から、頭部推定位置で対応付けられる頭部領域を選択する。なお、複数の頭部領域が発見される場合には、対応づく頭部領域がないと判断してもよい。あるいは、頭部推定位置が最も頭部領域に合致しているものを選択してもよい。例えば、頭部推定位置の示す頭部中心座標が、頭部領域の中心に最も近いものを選択する。あるいは、
図2(a)のステップS208で得た、前フレームの追尾胴体に対応づけられた頭部領域を活用してもよい。例えば、追尾部125が、前フレームの追尾胴体に対応づけられた頭部領域と、現フレームの頭部領域とを照合して、所定以上の類似度がなければステップS352では対応づく頭部領域はないと判断してもよい。また、複数あるいときは、類似度が高いものを選定するなどしてもよい。
【0046】
追尾部125は、ステップS351で得た胴体領域に対応する頭部領域があった場合(頭部有)にはステップS353に移り、それ以外はステップS354に移る。ステップS353では、追尾部125が、ステップS352で得た頭部領域を現フレームの追尾領域として設定する。ステップS354では、追尾部125が、ステップS351で得た胴体領域を現フレームの追尾領域として設定する。
【0047】
ステップS355では、追尾部125が、追尾胴体に対応づく頭部領域を得て、現フレームの頭部領域と照合する。追尾胴体に対応づく頭部領域は、
図2(a)のステップS208において対応付けられている領域である。このステップS355での照合は、検知領域照合部126により実行される。追尾部125は、追尾胴体に対応づく頭部領域に対応する現フレームの頭部領域が見つかった場合(成功)にはステップS356へ移り、それ以外はステップS357に移る。ステップS356では、追尾部125が、ステップS355の照合で得た頭部領域を現フレームの追尾領域として設定する。
【0048】
ステップS357では、追尾部125が、追尾胴体に対応づく頭部領域を領域探索部107で探索する。追尾胴体に対応づく頭部領域は、
図2(a)のステップS208において対応付けられている領域である。追尾部125は、探索により頭部領域が見つかった場合(成功)にはステップS358へ移り、それ以外はステップS359に移る。ステップS358では、追尾部125が、ステップS357の探索で得た、発見された頭部領域(発見頭部領域)を現フレームの追尾領域として設定する。
【0049】
ステップS359では、追尾部125が、追尾胴体の頭部推定位置を得て、現フレームの頭部領域と照合する。具体的には、推定領域照合部128が照合する。例えば、推定領域照合部128が、
図6(b)に示すように、現フレームの頭部領域603bをテンプレートとして、前フレームの追尾胴体601bの頭部推定位置602bを中心としてテンプレートマッチングを行う。現フレームに複数の頭部領域がある場合には、各々をテンプレートとしてテンプレートマッチングを行い、最も高い類似度を示した頭部領域を選択する。あるいは、頭部推定位置602bを中心とした矩形領域を作成し、現フレームの頭部領域と照合してもよい。しかし、推定領域照合部128の説明で述べた他の照合方法でもよく、照合方法はこれらに限定されない。追尾部125は、照合により頭部領域を得た場合(成功)にはステップS360へ移り、それ以外はステップS361へ移る。ステップS360では、追尾部125が、ステップS359の照合で得た、頭部領域を現フレームの追尾領域として設定する。
【0050】
ステップS361では、追尾部125が、胴体領域を探索する。具体的には、領域探索部127が、胴体領域を現フレームから探索する。追尾部125は、探索により現フレームに胴体領域を発見できた場合(成功)にはステップS362に移り、それ以外はステップS363へ移る。ステップS362では、追尾部125が、ステップS361の探索で得た、発見された胴体領域(発見胴体領域)を現フレームの追尾領域として設定する。
【0051】
ステップS363では、追尾部125が、追尾胴体の頭部推定位置を得て、現フレームの頭部を探索する。具体的には、推定領域照合部128が照合を行う。例えば、推定領域照合部128が、
図6(c)に示すように、前フレームの推定頭部位置601cに基づいて領域を作成して、これをテンプレートとして現フレームをテンプレートマッチングする。しかし、推定領域照合部128の説明で述べた他の照合方法でもよく、照合方法はこれらに限定されない。追尾部125は、照合により頭部領域を得た場合(成功)にはステップS364へ移り、それ以外はステップS365へ移る。
【0052】
ステップS364では、追尾部125が、ステップS363の探索で得た、発見された頭部領域(発見頭部領域)を現フレームの追尾領域として設定する。ステップS365では、追尾部125が、いずれの方法でも現フレームに追尾領域を発見できなかったと判断して追尾を中断する。具体的には追尾中断のフラグを立てる。
【0053】
次に、
図2(a)に示したステップS208の領域対応付け処理について、
図4(a)を参照して説明する。
図4(a)は、本実施形態における領域対応付け処理の例を示すフローチャートである。
【0054】
ステップS401では、領域対応付け部124が、現フレームに追尾領域があるか否かを判断する。領域対応付け部124は、追尾領域がない場合(無)には、処理を終了する。領域対応付け部124は、追尾領域があり、追尾領域が頭部である場合(頭部)にはステップS402に移り、追尾領域が胴体である場合(胴体)にはステップS405へ移る。ここで、頭部とは、頭部検出部122で検出した頭部領域に加えて、推定領域照合部128で得た推定頭部領域や、領域探索部127で得た発見頭部領域を含む。また、胴体とは、胴体検出部123で検出した胴体領域に加えて、領域探索部127で得た発見胴体領域を含む。しかし、頭部も胴体もいずれかの領域の種類を含まないようにしてもよい。
【0055】
ステップS402では、領域対応付け部124が、追尾頭部に対応づく胴体領域を得る。同じフレームの中で胴体領域の頭部推定領域で、追尾頭部と対応付けられる胴体領域を選ぶ。一つの胴体領域だけが選ばれたとき(1個)にはステップS403に移り、胴体領域が得られない場合や複数の胴体領域が得られる場合にはステップS404に移る。
【0056】
ステップS403では、領域対応付け部124が、追尾頭部にステップS402で得た胴体領域を対応付ける。
ステップS404では、領域対応付け部124が、現フレームの追尾頭部に対応する前フレームで対応する追尾頭部を得て、さらに前フレームの追尾頭部に対応付けられている胴体領域を得る。そして、領域対応付け部124は、前フレームの追尾頭部に対応付けられている胴体領域を、現フレームの追尾頭部に対応付ける。なお、前フレームの追尾頭部にも胴体領域がない場合には、さらに過去の追尾頭部をさかのぼり胴体領域を得る。もし胴体領域が得られないときには、追尾頭部に胴体領域を対応付けないようにしてもよい。
【0057】
ステップS405では、領域対応付け部124が、現フレームの追尾胴体に対応する前フレームの追尾胴体を得て、前フレームの追尾胴体に対応付けられている頭部領域を得る。そして、領域対応付け部124は、前フレームの追尾胴体に対応付けられている頭部領域を、現フレームの追尾胴体に対応付ける。なお、前フレームの追尾胴体においても頭部領域が得られないときは、追尾胴体に頭部領域を対応付けないようにしてもよい。
【0058】
次に、
図4(b)と
図4(c)を参照して、
図4(a)に示した領域対応付け処理でステップS404やS405にて過去フレームの領域を対応付ける処理の例について説明する。
図4(b)では現フレームの追尾頭部に過去フレームの胴体領域を対応付ける例を、
図4(c)では現フレームの追尾胴体に過去フレームの頭部領域を対応付ける例を説明する。
【0059】
図4(b)は、連続するフレーム1~3を示している図である。各フレームが順に処理される場合を例に説明する。フレーム1では、追尾領域は頭部領域401bであり、頭部領域401bに対応づく胴体領域は402bの一つのみであるため、ステップS403において頭部領域401bと胴体領域402bが404bに示すように対応付けられる。なお、403bは、胴体領域402bに係る頭部推定位置である。
【0060】
次のフレーム2では、胴体領域が未検出のため、フレーム2内では頭部領域405bに胴体領域を対応付けられない。しかし、前述した処理対応付け処理では、ステップS404においてフレーム1の胴体領域402bと頭部領域405bが406bに示すように対応付けられる。
【0061】
そして、このように対応付けられた状態において、次のフレーム3が追尾AF処理されると、頭部追尾中であるためステップS205での頭部追尾処理が起動される。そして、
図3(a)に示した処理において、ステップS301にて頭部領域がフレーム3にないためステップS303に処理が進む。ステップS303において、フレーム2の追尾頭部405bの胴体領域とフレーム3の胴体領域407bを照合するとき、フレーム1の胴体領域402bとフレーム3の胴体領域407bとが照合される。フレーム3では、胴体で頭部が隠れており、頭部推定位置が胴体上にある。そのため、ステップS304では処理が失敗し、ステップS306において胴体領域407bが新たな追尾領域に設定される。
【0062】
このように、過去のフレームの胴体領域を対応付けることで、過去の胴体領域との照合ができるようになる。これによって、頭部追尾中に頭部領域が検出できないときや、唯一に特定できないときでも、追尾を継続できる。
【0063】
図4(c)も連続するフレーム1~3を示している図である。各フレームが順に処理される場合を例に説明する。フレーム1は、
図4(b)と同様である。フレーム2では頭部領域が検出されなくなった場合である。この例では後ろ側に人物が倒れ込んだことで頭部が見えなくなっている。このとき、フレーム2内では胴体領域402cに頭部領域を対応付けることができない。しかし、前述した処理対応付け処理では、ステップS405においてフレーム1の頭部領域401bとフレーム2の胴体領域402cが401cに示すように対応付けられる。
【0064】
そして、このように対応付けられた状態において、次のフレーム3が追尾AF処理されると、胴体追尾中であるためステップS206での胴体追尾処理が起動される。そして、
図3(b)に示した処理において、ステップS351でフレーム3に胴体領域がないため失敗してステップS355に処理が移る。ステップS355でフレーム1の頭部領域401bが参照され、これとフレーム3の頭部領域405cが照合される。そして、照合に成功することで頭部領域405cを新たな追尾領域として設定できる。
【0065】
このように、過去のフレームの頭部領域を対応付けることで、過去の頭部領域との照合ができるようになる。これによって、現フレームで胴体追尾中に胴体領域が検出できないときや、唯一に特定できないときでも、追尾を継続できる。
【0066】
次に、
図7を参照して、
図2(a)に示した追尾AF処理により追尾領域を頭部や胴体に切り替えることで同一被写体を追尾AFする処理の例について説明する。
図7は、頭部701の被写体がバク転などにより頭部が胴体により遮蔽され、再び頭部が出現する場合を図示している。
【0067】
フレーム1では、追尾AF処理では開始時は追尾をまだ開始していないため、ステップS204での追尾開始処理が実施され、フレームの中央に近い等の基準により頭部領域が選択される。その結果、フレーム1に示すように頭部領域701が追尾領域に設定される。そして、ステップS207で追尾領域への合焦が行われ、ステップS208で追尾頭部701と胴体領域702が対応付けられる。
【0068】
次に、フレーム2が撮像部106から供給されると、再び追尾AF処理が実行され、頭部追尾中であるため、ステップS205での頭部追尾処理が実行される。
図3(a)に示した処理において、ステップS301で追尾頭部701に対応する頭部領域がないため、ステップS303へと進む。ステップS303でフレーム1の胴体領域702とフレーム2の胴体領域703とを照合するため、ステップS304へ進む。そして、ステップS304では頭部領域701と頭部推定位置704とが照合されるが、照合に失敗しステップS306へと進み、胴体領域703が新たな追尾領域に設定される。フレーム2では他の被写体の頭部領域707が映っているが、他の被写体の頭部領域へ追尾が切り替わることなく、同一被写体の追尾が継続される。そして、ステップS207で新たな追尾胴体703への合焦が行われ、ステップS208で追尾胴体703と頭部領域701が対応付けられる。
【0069】
次に、フレーム3が撮像部106から供給されると、再びAF処理が実行され、胴体追尾中であるため、ステップS206での胴体追尾処理が実行される。
図3(b)に示した処理において、ステップS351で追尾胴体703と胴体領域705とを照合するため、ステップS352へ進む。ステップS352で胴体領域705に対応する頭部領域706が得られるため、ステップS353へ進み、頭部領域706が新たな追尾領域に設定される。そして、ステップS207で新たな追尾頭部706への合焦が行われ、ステップS208で追尾頭部706と胴体領域705が対応付けられる。
【0070】
本実施形態によれば、追尾している追尾頭部や追尾胴体に対応する領域がなくても、追尾領域を頭部や胴体に切り替えることで同一被写体を追尾することができる。これによって、バク転などにより頭部が自身により遮蔽されるときでも、他の頭部が見えている被写体に追尾が切り替わることがなく、同じ被写体の追尾を継続することが可能になる。
【0071】
また、領域対応付け処理において、追尾領域に対して過去のフレームの他方の領域を対応付けることで、過去の領域との照合を行うことができる。これによって、追尾中に他方の領域が検出できないときや、唯一に特定できないフレームがあっても、追尾を継続することができる。また、ステップS304、S359、S363等に示すように、頭部推定位置を用いて頭部を探索することによって、追尾中の部位の領域の検出が途切れた場合も、再び同一被写体の頭部を追尾できる可能性が高まる。
【0072】
なお、前述した実施形態では、
図2(b)のステップS252及びS254において、追尾部125が、中心に近い頭部領域や胴体領域を追尾領域として選定していた。しかし、制御キー105等を用いてユーザが選択した頭部領域や胴体領域を追尾領域に採用してもよい。あるいは、追尾が中断されてから復帰する場合には、前の追尾領域が存在した位置に近い頭部領域を選択してもよい。あるいは、頭部領域のサイズが近いものを選択してもよい。これによって、未検出等により追尾が中断していた場合、同じ場所付近に被写体が出現する可能性が高いため、同じ被写体を再び追尾できる可能性が高まる。
【0073】
また、前述した実施形態では、ステップS255、S309、S365では直ちに追尾を中断して追尾領域をリセットしている。しかし、追尾が一定回数中断されたときに追尾を中断するようにしてもよい。前述した説明では、前フレームと現フレームとを参照して処理していたが、追尾中断を直ちにしない場合には、追尾失敗したとき現フレームを前フレームに置き換えず、前フレームを維持した状態で次のフレームを現フレームとして処理すればよい。これによって、数フレームの瞬間的な追尾失敗があっても追尾を継続できる。
【0074】
前述した実施形態では、頭部検出と胴体検出の領域を対応付ける方法として、
図5(a)に示すように胴体検出が頭部推定位置502aを出力していた。しかし、
図5(b)に示すように頭部検出が頭部領域501bと胴体推定位置502bを出力してもよい。そして、胴体検出は胴体領域503bのみを出力する。胴体推定位置を含む胴体領域を頭部領域と対応付けてもよい。
【0075】
あるいは、
図5(c)に示すように、頭部検出と胴体検出とは別に対応点検出を用意して、頭部推定位置503cと胴体推定位置504cを出力するようにしてもよい。頭部検出は頭部領域501cのみを出力し、胴体検出は胴体領域502cのみを出力する。そして、対応点検出が出力する頭部推定位置と胴体推定位置を含む頭部領域と胴体領域を対応付けてもよい。あるいは、対応点検出は頭部領域から胴体推定位置を出力してもよい。そして頭部領域に対応する胴体領域を胴体推定位置で対応づけてもよい。あるいは、対応点検出は胴体領域から頭部推定位置を出力してもよい。そして、胴体領域に対応する頭部領域を頭部推定位置で対応づけてもよい。頭部検出と胴体検出の領域を対応付ける方法は、これらに限定されない。
【0076】
また、頭部推定位置ではなく胴体推定位置も得られる場合には、推定領域照合部128は胴体推定位置を用いて胴体領域を探索してもよい。例えば、頭部追尾処理のステップS307が失敗したとき、次の処理をしてもよい。第一の処理として、現フレームで胴体領域が検出されている場合には、
図9(b)に示すように、前フレームの追尾頭部901bの推定胴体位置902bを用いて、現フレームの胴体領域903bと照合する。照合に成功したとき、発見した胴体領域を追尾領域に設定する。
【0077】
第二の処理として、現フレームで胴体領域が検出されていない場合には、
図9(c)に示すように、前フレームの追尾頭部901cの推定胴体位置902cを用いて、現フレームをテンプレートマッチングなどにより探索する。探索に成功したとき、発見した胴体領域を追尾領域に設定する。なお、第一と第二の処理が失敗したときにはステップS309に移ればよい。
【0078】
あるいは、胴体追尾処理のステップS359が失敗したとき、
図9(a)に示すように、現フレームの胴体推定位置902aを用いて、前フレームの追尾胴体901aと照合してもよい。照合に成功したときには、発見した胴体領域を追尾領域に設定する。失敗したときにはステップS361に移る。推定位置を用いて領域を探索する方法は、これらに限定されない。
【0079】
前述した実施形態では、頭部領域を胴体領域よりも優先して追尾するようにしていた。しかしながら、胴体領域を頭部領域よりも優先して追尾するようにしてもよい。また、頭部領域と胴体領域の2つだけでなく、他の被写体部位の領域を検出して、頭部や胴体が検出できないときに他の部位を追尾するように構成してもよい。あるいは頭部検出は顔検出などであってもよい。また胴体検出は人体検出等の被写体の領域全体を検出してもよい。追尾する領域の優先順位や追尾する領域の数や種類は、これらに限定されない。
【0080】
前述した実施形態では、追尾AF処理ではフレーム画像をRAM103に格納していた。しかし、画像データをすべてRAM103に格納せず検出領域や探索領域のみを保持するようにしてもよい。探索領域は、領域探索部127や推定領域照合部128のテンプレートマッチングなどで探索される領域である。特に、過去のフレームでは追尾領域とそれに対応する領域を残すようにしてもよい。あるいは、
図6(b)の前フレームに示すように、胴体領域が追尾領域である場合には、追尾胴体と頭部推定位置を含むように画像データを残すようにしてもよい。この場合も、ステップS359やS363に示す頭部推定位置を用いた頭部の探索ができる。これによって、RAM等のメモリ使用量を削減できる。
【0081】
前述した実施形態では、ステップS402において追尾頭部に対して一つの胴体領域が得られるときのみステップS403に移り、追尾頭部に胴体領域を対応付けていた。しかし、ステップS402において複数の胴体領域が得られたときには、頭部推定位置が最も合致しているものを選択してもよい。例えば、頭部推定位置の示す頭部中心座標が、最も頭部領域の中心に近いものを選択する。このとき、胴体領域が得られない場合のみステップS404に移ることになる。
【0082】
あるいは、ステップS402で複数の胴体領域が得られた場合には、ステップS403において追尾頭部にすべての胴体領域を対応付けてもよい。この場合、追尾頭部の胴体領域を用いた照合や探索をするときには、すべての胴体領域を用いた照合や探索を行い、最も類似度が高い胴体領域の結果を用いればよい。例えば、ステップS303での処理であれば、追尾頭部に対応づく複数の胴体領域を得て、現フレームの複数の胴体領域と照合する。追尾頭部に領域を対応付けるか否かの判断は、これらに限定されない。加えて、追尾頭部に対応付ける領域の数は1つに限定されない。
【0083】
(実施形態2)
前述した実施形態1では、領域対応付け処理におけるステップS402では頭部推定位置により追尾頭部と胴体領域の対応付けを判定していた。しかし、頭部推定位置が誤ったとき、誤って対応付けがされてしまう。本実施形態では、胴体領域の位置や画像の類似性を用いることで、誤った対応付けを抑制する。実施形態2は、前述した実施形態1とは領域対応付け処理が異なり、他は同様であるので、以下では実施形態2における領域対応付け処理について説明し、他の説明は省略する。
【0084】
実施形態2における領域対応付け処理について、
図8(a)を参照して説明する。
図8(a)は、本実施形態における領域対応付け処理の例を示すフローチャートであり、
図8(a)に示す処理は、
図2(a)に示したステップS208から呼び出し実行される。
【0085】
ステップS801では、領域対応付け部124が、現フレームに追尾領域があるか否かを判断する。領域対応付け部124は、追尾領域があり、追尾領域が頭部である場合(頭部)にはステップS802に移り、追尾領域が胴体である場合(胴体)にはステップS807へ移る。領域対応付け部124は、追尾領域がない場合(無)にはステップS808へ移る。
【0086】
ステップS802では、領域対応付け部124が、追尾頭部に対応づく胴体領域を得る。領域対応付け部124は、同じフレーム中の頭部推定位置で追尾頭部と対応付けられる胴体領域を選ぶ。頭部推定位置が複数含まれるときには、複数の胴体領域が選択される。
【0087】
ステップS803では、領域対応付け部124が、同じ被写体の胴体領域を一つのクラスタにすべく、ステップS802で得た胴体領域を、以前にステップS803で処理した胴体領域に追加してクラスタリングする。領域対応付け部124は、例えば、胴体領域のカラーヒストグラム等の画像特徴量を用いて胴体領域をクラスタリングする。具体的には、クラスタがまだ形成されてない場合には、要素1つのクラスタを生成する。また、クラスタが既にある場合には、クラスタを構成する画像特徴量の平均を代表値として、その代表値との類似度が所定以上のときには既存クラスタに追加し、そうでないときは新たにクラスタを生成する。クラスタリングは階層的クラスタリングやk-means等と知られる他の方法を用いてもよい。また、既存のクラスタに追加するクラスタリング方法だけでなく、クラスタを作り直す方法を採用してもよい。クラスタリングの方法は、これらに限定されない。
【0088】
また、胴体領域の画像特徴量だけでなく、画像内の位置を用いてもよい。同じ被写体の胴体領域は、画像中の同じ個所に出現する可能性が高い。そこで、画像特徴量と座標を一つのベクトルにして類似度を求める等してもよい。
【0089】
ステップS804では、領域対応付け部124が、クラスタの評価値を求める。例えば、クラスタを構成する胴体領域の数を評価値とする。
【0090】
ステップS805では、領域対応付け部124が、評価値の高いクラスタから胴体領域を選択する。例えば、クラスタのうち最近のフレームに存在する胴体領域を選択する。あるいは、最もクラスタの代表値に近い胴体領域を選択する。あるいは、以前に対応付けた胴体領域があるときは、それを選択してもよい。クラスタからの胴体領域の選び方は、これらに限定されない。
【0091】
ステップS806では、領域対応付け部124が、ステップS805で選択した胴体領域を追尾頭部に対応付ける。
【0092】
ステップS807では、領域対応付け部124が、現フレームの追尾胴体に対応する前フレームの追尾胴体を得て、前フレームの追尾胴体に対応付けられている頭部領域を得る。そして、領域対応付け部124は、前フレームの追尾胴体に対応付けられている頭部領域を、現フレームの追尾胴体に対応付ける。なお、前フレームの追尾胴体においても頭部領域が得られないときは、追尾胴体に頭部領域を対応付けないようにしてもよい。
【0093】
ステップS808では、領域対応付け部124が、クラスタリングを初期化する。この初期化により、ステップS803で過去の胴体領域に追加してクラスタリングしていたが、この過去の胴体領域がリセットされる。これによって、同一被写体の追尾中はクラスタリングを初期化せず、追尾が中断するとクラスタリングを初期化するように動作する。あるいは、所定回数以上の追尾領域が設定できないとき、クラスタリングを初期化してもよい。これは、追尾中断フラグが立っているときのみ、クラスタリングを初期化することに相当する。なお、同一被写体の追尾が中断したと判断する方法は、これらに限定されない。
【0094】
次に、
図8(b)と
図8(c)を参照して、本実施形態における領域対応付け処理の例について説明する。
図8(b)は、連続するフレーム1~4を示している図である。各フレームが順に処理される場合を例に説明する。
図8(c)は、各フレームが処理されたときのクラスタの評価値の例を示したものである。
【0095】
フレーム1では、頭部が追尾領域801bのため処理がステップS802へ移り、ステップS802にて頭部推定位置で追尾領域801bに対応する胴体領域802bが得られる。次に、ステップS803にて胴体領域がクラスタリングされるが、初回のため1つのクラスタが生成される。ステップS804では、
図8(c)に示すようにクラスタの評価値が求まる。クラスタは1つしかなく、また1要素しか含まないため、評価値は1と求められている。次に、ステップS805ではクラスタ1から胴体領域が選ばれるが、1要素しかないため胴体領域802bが選ばれる。そして、ステップS806で追尾領域801bと胴体領域802bが803bに示すように対応付けられる。
【0096】
次のフレーム2でも、フレーム1と同様に追尾領域804bと、頭部推定位置で対応づく胴体領域805bが得られる。ステップS804でフレーム1の胴体領域802bとフレーム2で得た胴体領域805bがクラスタリングされる。ここでは胴体領域の類似度が高く同一のクラスタを形成したとする。次に、ステップS804では、クラスタの要素数は2であるため、
図8(c)に示すようにクラスタ評価値が求められる。ステップS805では、評価値の高いクラスタ1から胴体領域が選ばれ、最近のフレームに映る胴体領域805bが選ばれる。そして、ステップS806で追尾領域804bと胴体領域805bが806bに示すように対応付けられる。
【0097】
次のフレーム3では、追尾領域807bと、頭部推定位置で対応づく胴体領域808bが得られる。しかし、これは胴体検出の誤検出であり正しい結果ではない。以下の処理で、この対応付けが補正される。具体的には、ステップS803で以前フレームの胴体領域802bと805bと、フレーム3の胴体領域808bがクラスタリングされる。ここで、胴体領域808bは被写体の胴体ではないため他の胴体領域とは類似度が高くならず、新しいクラスタを形成する。ステップS804では、
図8(c)に示すように既存のクラスタ1と新しいクラスタ2の評価値が求められる。クラスタ1は胴体領域802bと805bを含み、クラスタ2は胴体領域808bを含むため、それぞれの評価値が2と1になっている。ステップS805aでは、評価値の高いクラスタ1から、最近のフレームに映る胴体領域805bが選ばれる。そして、ステップS806で追尾領域807bと胴体領域805bが809bに示すように対応付けられる。
【0098】
次のフレーム4では、追尾領域810bと、頭部推定位置で対応づく胴体領域811bと812bの2つの胴体領域が得られる。胴体領域812bは胴体検出の誤検出であるが、以下の処理で対応付けが補正される。具体的には、ステップS803で以前フレームの胴体領域802bと805bと808bと、フレーム4の胴体領域811bと812bがクラスタリングされる。ここで、胴体領域812bは被写体の胴体ではないが、同じ背景領域等であったため偶然808bと類似度が高くなったとする。そのため、胴体領域811bはクラスタ1に追加され、胴体領域812bはクラスタ2に追加される。ステップS804では、
図8(c)に示すように評価値が求められる。クラスタ1は胴体領域802bと805bと811bを含み、クラスタ2は胴体領域808bと812bを含むため、それぞれの評価値が3と2になっている。ステップS805では、評価値の高いクラスタ1から胴体領域が選ばれ、最近のフレームに映る胴体領域811bが選ばれる。そして、ステップS806で追尾領域810bと胴体領域811bが813bに示すように対応付けられる。
【0099】
本実施形態によれば、胴体領域の位置や画像の類似性により同一胴体領域をクラスタにまとめることで、頻度の多い胴体領域を選択し、追尾頭部と胴体領域とを対応付ける。これによって、頭部推定位置による対応付けが誤る場合においても、正しい胴体領域を追尾頭部に対応付けることができる。
【0100】
前述した実施形態では、ステップS804においてクラスタ評価値を求めるとき、クラスタを構成する胴体領域の数を用いていた。しかし、直近の所定フレーム数に現れる胴体領域の数を評価値としてもよい。あるいは、過去フレームほど影響を減衰させるようにしてもよい。具体的には、胴体領域の出現するフレーム番号と現フレームのフレーム番号の差を入力として反比例する値を出力する関数を用意する。クラスタを構成する胴体領域ごとに該関数の値を求め、値の和を評価値とする。これによって、過去に形成されたクラスタがあったとしても時間ともに評価値を下げることができる。
【0101】
あるいは、ズーム等の映りに影響を与えるカメラ変化が生じた場合は、変化前の胴体領域を評価値に含めない等としてもよい。あるいは、前述のように過去フレームほど影響を減衰させるときに、カメラ変化以前はより大きく減衰させるなどとしてもよい。これによって、カメラ変化による映り変化によって、偶然にも異なる被写体の領域が一致した場合などにおいても、評価値を下げることができる。
【0102】
(その他の実施形態)
以上、実施形態を詳述したが、本発明は前述した実施形態に限定されるのではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更が可能である。
本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明は、以下の処理を実行することによっても実現される。即ち、前述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0103】
100:撮像装置 101:制御部 121:領域検出部 122:頭部検出部 123:胴体検出部 124:領域対応付け部 125:追尾部 126:検知領域照合部 127:領域探索部 128:推定領域照合部