以下に、図面を参照しながら、本発明の実施形態について詳細に説明する。
尚、以下の実施形態では、検索対象の被写体の一例として人物、特に顔を扱うこととする。そして、動画像中から主要被写体となる顔を抽出し、抽出した顔を含む動画像のみを表示できるようにすることにより動画像の内容をユーザが把握できるようにする場合を例に挙げて説明する。もちろん、被写体として人物以外のオブジェクトを対象にした場合にも本発明を適用することが可能である。
<第1の実施形態>
図1は、本実施形態における動画像処理装置の制御構成の一例を示すブロック図である。
図1において、CPU101は、動画像処理装置100における各種制御を実行する。ROM102は、動画像処理装置100の立ち上げ時に実行されるブートプログラムや各種データを格納する。RAM103は、CPU101が処理するための制御プログラムを格納(展開)すると共に、CPU101が各種制御を実行する際の作業領域を提供する。キーボード104、マウス105は、ユーザによる各種入力操作環境を提供する。
外部記憶装置106は、ハードディスクや、フレキシブルディスク、光ディスク、磁気ディスク、光磁気ディスク、磁気テープ等で構成される。表示器107は、液晶ディスプレイ等で構成され、処理の結果等をユーザに対して表示する。ネットワークインターフェース108は、ネットワークに接続されている外部の各機器との通信を可能とするためのものである。ビデオインターフェース(I/F)109は、ビデオカメラ110や、VTR112からの動画像データの取り込みを可能とする。また、バス111は、以上の各構成を通信可能に相互に接続するためのものである。
尚、図1に示す構成において、ビデオカメラ110、VTR112や外部記憶装置106を、ネットワークに接続(配置)されたもので代用してもよい。
図2は、動画像処理装置100の機能構成の一例を示すブロック図である。
図2において、動画像入力部201は、ビデオI/F109を介してビデオカメラ110、VTR112等から動画像データを取得し、動画像処理装置100に入力するものである。動画像入力部201で取得された動画像データは、動画記憶部202に動画ファイルとして記録される。尚、外部記憶装置106やNIC108を介して外部から動画像処理装置100にアクセスできる"ネットワークに接続された外部装置"に記憶されている動画ファイルを、動画像入力部201が取得して構わない。このようにした場合には、動画像入力部201で取得された動画ファイルを改めて外部記憶装置106に記憶しなくてもよい。
顔検出部203は、動画像入力部201で取得された動画像データの所定のフレームから、人物顔パターンを検出し、その検出した結果を顔追跡部204に出力する。
顔追跡部204は、顔検出部203で検出された人物顔パターンを、その人物顔パターンを検出したフレームに後続するフレーム中から追跡し、その追跡した結果から得られる顔シーケンスを主要顔判定部206に出力する。ここで、顔シーケンスには、顔が存在する区間(期間)、フレーム画面内の顔領域の移動速度ベクトルの情報が含まれる。
カメラ操作抽出部205は、動画像入力部201で取得された動画像データのフレームの画像から、パン、チルト等、撮影時の撮影装置(例えばビデオカメラ)の操作の内容を判断し、判断した結果を示すカメラ操作情報を生成して主要顔判定部206に出力する。
主要顔判定部206は、顔追跡部204から出力された顔シーケンスと、カメラ操作抽出部205から出力されたカメラ操作情報とに基づいて、主要被写体となる顔に関する顔シーケンスを判定し、判定した顔シーケンスを代表画像抽出部207に出力する。
代表画像抽出部207は、主要顔判定部206から出力された"主要被写体となる顔に関する顔シーケンス"に基づいて、動画像入力部201で取得された動画像データから、代表する画像(以下の説明では、必要に応じて代表画像と称する)を抽出する。そして、代表画像抽出部207は、抽出した画像と、主要顔判定部206から出力された顔シーケンス中の"主要被写体となる顔が存在する区間"とを相互に関連付け、それらをインデックス情報としてインデックス記憶部208に記憶する。
表示部209は、インデックス記憶部208からインデックス情報を読み出して表示器107に表示し、キーボード104、マウス105等を介して取得した"ユーザの指示"に基づいて、動画記憶部202に記憶された動画ファイルから、主要被写体となる顔が存在する区間の動画像を再生表示する。
次に、図3のフローチャートを参照しながら、動画像データを取得してからインデックス情報を記憶するまでの動画像処理装置100の処理動作の一例を説明する。
まず、動画像入力部201は、所望の動画像データを入力し、その動画像データのフレームを順に読み出す(ステップS310)。本実施形態では、例えば、ステップS310の処理を行うことにより入力手段の一例が実現される。
次に、顔検出部203は、ステップS310で読み出されたフレームから、人物顔パターン(顔)を検出し、その検出した結果を顔追跡部204に出力する(ステップS320)。
本実施形態では、所定のフレーム間隔毎に、各フレームから人物顔パターンの検出(顔の検出)を行うものとする。また、本実施形態では、文献(Rowley et al, "Neural network-based face detection", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL.20 , NO.1, JANUARY 1998)で提案されている"ニューラル・ネットワークにより、画像中の人物顔パターンを検出する方法"を適用した場合を例に挙げて説明する。
まず、顔検出部203は、顔の検出対象となる動画像データのフレームから、顔画像パターンと照合する所定の領域を切り出す。そして、顔検出部203は、切り出した領域の画素値の分布を入力としてニューラル・ネットワークによる演算を行い1つの出力を得る。ここで、膨大な顔画像パターンと非顔画像パターンとに基づいて、ニューラル・ネットワークの重みや閾値が予め学習されている。顔検出部203は、例えば、ニューラル・ネットワークの出力が0以上なら、切り出した領域は顔の画像であり、それ以外なら、切り出した領域には顔の画像でないと判別する。
図4は、人物顔パターンを検出する方法の一例を概念的に示す図である。図4を参照しながら、顔検出部203のより詳細な処理の一例について説明する。
図4に示すように、顔検出部203は、ニューラル・ネットワーク401への入力対象となる領域の切り出し位置を、フレームの画像402a〜402c全域を上の行から下の行に向けて順に走査して変更する。そして、顔検出部203は、切り出した領域の画素値の分布を、顔と照合するパターン403a〜403cとして抽出し、そのパターン403a〜403cを入力としてニューラル・ネットワーク401による演算を行う。これにより、切り出した領域が人物顔パターン(顔)であるか否かが検出される。
また、本実施形態では、図4に示すように、様々な大きさの顔の検出に対応するため、顔検出部203は、顔の検出対象となるフレームの画像402aを所定の割合で順次縮小し、縮小した画像402b、402cの夫々に対しても前述した走査を行い、顔の検出を行うようにしている。
図5は、動画像データのフレームの画像から検出された人物顔パターンと、その人物顔パターンを追跡した結果の一例を示す図である。
図5に示すように、以上のようにして顔検出部203によって、動画像データ501の所定間隔のフレーム毎に人物顔パターンが検出された結果、フレーム内での顔画像502a、502bの位置が抽出される。
尚、画像から顔を検出する方法は、前述したニューラル・ネットワークによる方法に限定されるものではない。例えば、文献(Yang et al, "Detecting Faces in Images: A Survey", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL.24 , NO.1, JANUARY 2002)に挙げられている各種方式を適用できる。
以上のように本実施形態では、例えば、ステップS320の処理を行うことにより検出手段の一例が実現される。
図3の説明に戻り、顔追跡部204は、顔検出部203で検出された人物顔パターン毎に、後続するフレーム中から人物顔パターンを追跡し、その追跡した結果から得られる顔シーケンスを主要顔判定部206に出力する(ステップS330)。例えば、図5に示すように、顔追跡部204は、所定のフレーム間隔で検出された顔画像502a、502bの夫々について、顔画像502a、502bが検出されたフレームに後続するフレームで追跡を行う。次に、顔追跡部204は、その追跡の結果、前フレームと現フレームにおける顔画像502a、502bの位置の変化から、顔の移動速度ベクトルを求める。次に、顔追跡部204は、顔画像502a、502bを追跡できた区間(顔が存在した区間(期間))と、その区間内のフレームであって、相互に隣接するフレームから得られた顔の移動速度ベクトルの集合とを、顔シーケンス503a、503cとして出力する。
ここで、図6のフローチャートを参照しながら、顔追跡部204の処理の一例を詳細に説明する。
まず、顔追跡部204は、顔検出部203で検出された人物顔パターン(顔画像502a、502b)の領域情報に基づいて、後続するフレームにおいて、その人物顔パターンの探索を行う探索領域を設定する(ステップS510)。顔検出部203で人物顔パターンを検出したフレームの次のフレームで探索を行う場合には、その人物顔パターンの領域を、水平位置及び垂直位置の少なくとも何れか一方について所定量だけその中心位置をずらした近傍の矩形領域を探索領域とする。顔検出部203で人物顔パターンを検出したフレームの次の次以降のフレームで探索を行う場合には、そのフレームの1つ前のフレームで探索された人物顔パターンの領域を前述したようにしてずらした領域を探索領域とする。
次に、顔追跡部204は、探索領域から切り取られた画像と、探索する人物顔パターンとの相関に基づいて、人物顔パターンを追跡する(ステップS520)。すなわち、顔追跡部204は、探索領域として設定された中心位置を中心として、探索する顔パターンと同じ大きさの矩形領域を順次切り出し、切り出した矩形領域の画像と、探索する人物顔パターンとの輝度分布をテンプレートとした相関値を算出する。そして、顔追跡部204は、相関値が最も高い探索領域を人物顔パターンの追跡結果として、その相関値と共にRAM103に一時的に記憶する。
尚、ここでは、人物顔パターンの追跡のために輝度分布の相関値を用いたが、必ずしもこのようにする必要はない。例えば、RGB毎の画素値の分布の相関を用いてもよい。また、探索領域内での輝度分布やRGB値のヒストグラム等、画像の特徴量の相関を用いてもよい。
次に、顔追跡部204は、ステップS520で一時的に記憶した相関値が所定の値以上であるか否かを判定することにより、人物顔パターンを追跡できたか否かを判定する(ステップS530)。この判定の結果、一時的に記憶した相関値が所定の値以上である場合には、探索する人物顔パターンと、相関値が最も高い探索領域における画像との類似度が高いので、人物顔パターンを正確に追跡できたと判断する。そして、ステップS540に進む。一方、一時的に記憶した相関値が所定の値以上でない場合には、前記類似度が低いので、人物顔パターンを追跡できなかったと判断し、人物顔パターンの追跡を終了し、後述するステップS570に進む。
ステップS540に進むと、顔追跡部204は、追跡できた人物顔パターンの領域の位置の変化に基づいて、顔の移動速度ベクトルを求め、RAM103に一次的に記憶する(ステップS540)。
次に、顔追跡部240は、次のフレームがあるか否かを判定する(ステップS550)。この判定の結果、次のフレームがない場合には、人物顔パターンの追跡を終了し、後述するステップS570に進む。
一方、次のフレームがある場合、顔追跡部240は、人物顔パターンの追跡を行うフレームを後続する次のフレームに移す(ステップS560)。そして、前述したステップS510に戻る。
以上のようにして人物顔パターンの追跡が終了すると、RAM103に一次的に保存していた一連の顔の移動速度ベクトルを、人物顔パターンを追跡できた区間の情報と共に、顔シーケンス503として主要顔判定部206に出力する(ステップS570)。
尚、ここでは、顔検出部203で検出された人物顔パターン毎に後続するフレームからその人物顔パターンを探索し、追跡するようにしたが、必ずしもこのようにする必要はない。例えば、人物顔パターンを検出したフレームに後続するフレームに加えて、人物顔パターンを検出したフレームよりも前のフレームにおいても人物顔パターンを探索し、追跡するようにしてもよい。その他、例えば、動画像データから動きベクトルを求め、動きベクトルを手がかりにして人物顔パターンを追跡するようにしてもよい。このようにする場合には、動きベクトルの平均から、顔の移動速度ベクトルを得るようにすることができる。
以上のように本実施形態では、例えば、ステップS330の処理を行うことにより追跡手段の一例が実現される。
図3の説明に戻り、カメラ操作抽出部205は、ステップS310で得られた動画像データのフレームの画像から、カメラの操作の内容に関わるカメラ操作情報を抽出する(ステップS340)。カメラの操作の内容とは、前述したようにパン、チルト等である。このための手法としては、例えば、ハフ変換を用いて動きのベクトルの消失点を求め、複数ある消失点のうちの最大の投票数を得た消失点を背景に対する消失点とし、これらの消失点を用いてカメラ操作情報に関する拘束式を解き、カメラ操作情報を得る手法がある。カメラ操作情報と消失点との関係やカメラ操作情報を求める手法は、例えば、文献(金谷健一、「画像理解』、森北出版、1990年5月)等に詳しく記されている。また、カメラ操作情報の具体例としては、カメラ操作の速度ベクトルが挙げられる。
以上のように本実施形態では、例えば、ステップS340の処理を行うことにより抽出手段の一例が実現される。
尚、以上のステップS340をステップS320又はステップS330の前に行ってもよい。
次に、主要顔判定部206は、ステップS330(ステップS570)で得られた顔シーケンス503と、ステップS340で得られたカメラ操作情報とに基づいて、主要被写体となる顔シーケンスを判定する(ステップS350)。
ここで、図7のフローチャートを参照しながら、主要顔判定部206の処理の一例を詳細に説明する。
まず、主要顔判定部206は、ステップS330で得られた顔シーケンス503同士に時間的な重なりの区間があるか否かを判定する(ステップS810)。この判定の結果、顔シーケンス503同士に時間的な重なりの区間がない場合には、後述するステップS840に進む。
一方、顔シーケンス503同士に時間的な重なりの区間がある場合、主要顔判定部206は、その重なりの区間について、夫々の顔シーケンス503に対する追尾量を求める。追尾量とは、撮影者が被写体(本実施形態では顔)をカメラの操作によって追尾した量を、定量的に表現したものである。
ここで、追尾量を算出する方法の一例を説明する。図8は、2つの顔が存在する区間の一例を示す図である。ここでは、2つの顔が存在する区間が、図8に示すようにして重なっている場合を例に挙げて説明する。
図8において、図9に示す顔Aが存在する区間901と、顔Bが存在する区間902と、顔Aが存在する区間901と顔Bが存在する区間902との重なり区間903と、顔Aのみが存在する区間904とを示している。ここで、フレーム画面601内の顔A、Bの動きのベクトル(顔の移動速度ベクトル)603、604をVa、Vbとし、カメラ操作情報の一例であるカメラ操作の速度ベクトル602をVcとする。また、実世界での顔Aの速度ベクトル605をVraとし、顔Bの速度ベクトル606をVrbとする。このとき、撮影者は顔Aを撮影しようとして、顔Aをカメラ(撮影装置)に追尾させようとしたとする。この結果、顔Aの実世界での速度ベクトル605(=Vra)は、フレーム画面601内では、速度が失われたように見え、逆に顔Bの実世界での速度ベクトル606(=Vrb)は、フレーム画面601内では、速度が加速されたように見える。このように追尾によって変化した量を用いると、カメラが顔A、Bのどちらに追尾しようとしていたのかを判定することができる。
顔Aに追尾させようとしてカメラを操作した結果失われた"フレーム画面601内での顔Aの速さVAは、以下の(1)式で表される。
顔Bに追尾させようとしてカメラを操作した結果失われた"フレーム画面601内での顔Bの速さVB"も、(1)式のVaをVbにすることで表される。尚、カメラ操作の速度ベクトル602(=Vc)が「0(ゼロ)」の場合、撮影者はカメラで顔A、Bを追尾していない。よって、このような場合には、(1)式から明らかなように、顔A、Bに追尾させようとしてカメラを操作した結果失われた"フレーム画面601内での顔A、Bの速さVA、VB"の値も当然「0(ゼロ)」になる。
以上の速さVA、VBは、フレーム毎の追尾量である。そこで、主要顔判定部206は、これらを重なり区間903に対して積分することにより、追尾量VAI、VBIを算出する。具体的に主要顔判定部206は、顔A、Bの夫々について、以下の(2)式、(3)式により追尾量VAI、VBIを算出する。
次に、主要顔判定部206は、顔Aと顔Bの夫々の追尾量VAI、VBIを比較する(ステップS830)。そして、主要顔判定部206は、追尾量VAI、VBIのうち、値が大きな追尾量VAI、VBI(又は値が所定値以上大きな追尾量VAI、VBI)に対応する顔シーケンスを、主要被写体となる顔シーケンスと判定する。また、主要顔判定部206は、顔Aと顔Bの夫々の追尾量VAI、VBIが同じ又は所定の範囲内の大きさであれば、顔A、Bの両方に関する顔シーケンスが主要被写体となる顔シーケンスと判定する。
次に、主要顔判定部206は、ステップS830で判定された顔シーケンス503(主要顔の顔シーケンス)と、その顔シーケンス503に対応する重なり区間903とに関する情報を、代表画像抽出部207に出力する(ステップS840)。尚、ステップS810からステップS840に進んだ場合には、重なり区間903がないので、主要顔判定部206は、ステップS330で得られた顔シーケンス503に関する情報を、重なり区間がないことを示す情報と共に代表画像抽出部207に出力する。尚、単に重なり区間を示す情報がないことをもって、重なり区間がないことを示すようにしてもよい。
以上のように本実施形態では、例えば、ステップS350の処理を行うことにより主要被写体判定手段の一例が実現される。
図3の説明に戻り、代表画像抽出部207は、主要顔判定部206から出力された情報に基づいて、代表画像を抽出する(ステップS360)。
具体的に説明すると、代表画像抽出部207は、主要被写体となる顔に関する顔シーケンス503と、その顔シーケンス503に対応する重なり区間903の情報に基づいて、代表画像を抽出する。例えば、前述した図8及び図9に示した例で、顔Aが主要被写体となる顔である場合は、代表画像に顔Bが含まれていることは好ましくない。そこで、代表画像抽出部207は、顔Aが存在する区間901から、重なり区間903を除いた、顔Aのみが存在する区間904を求める。そして、代表画像抽出部207は、求めた区間904における"フレームの画像"を1つ又は複数抽出し、これを代表画像とする。
また、顔A、Bが共に主要被写体となる場合は、代表画像に顔A、Bが一緒に写っていることが望ましい。そこで、代表画像抽出部207は、顔Aが存在する区間901と顔Bが存在する区間901との重なり区間903における"フレームの画像"を1つ又は複数抽出し、これを代表画像とする。
また、重なり区間903がない場合は、各顔シーケンス503には、主要被写体として、顔A、顔Bの何れかしか存在していない。そこで、代表画像抽出部207は、各顔シーケンス503における所定のフレームの画像を1つ又は複数抽出し、これを代表画像とする。
尚、各代表画像の対象となる区間から、どのフレームを選択するかについては、例えば、区間の先頭、中央、終端等、固定の位置から取得する方法があるが、フレームを選択する方法は特に限定されるものではない。
以上のように本実施形態では、例えば、ステップS360の処理を行うことにより代表画像抽出手段の一例が実現される。
次に、代表画像抽出部207は、インデックス情報をインデックス記憶部208に記憶する(ステップS370)。
インデックス情報は、再生対象となる区間(以下の説明では、必要に応じて再生対象区間と称する)と、その区間における代表画像とを相互に関連付けたものである。例えば、前述した図8に示した例において、顔Aのみが主要被写体である場合には、顔Aが存在する区間901を再生対象区間とし、その区間901と、その区間901における代表画像とを相互に関連付けてインデックス記憶部208に記憶する。
また、顔A、Bが共に主要被写体となる場合には、重なり区間903、又は、顔Aが存在する区間901と、顔Bが存在する区間902とのOR演算を行った区間を再生対象区間とする。そして、その区間と、その区間における代表画像とを相互に関連付けてインデックス記憶部208に記憶する。
次に、以上のようにしてインデックス情報が得られた後の表示部209の処理動作の一例について説明する。
図10は、表示部209のブラウザによって表示機107に表示されるグラフィックユーザインターフェースの一例を示す図である。
図10(a)において、ブラウザの表示領域1001には、サムネイル表示領域1002内の複数のサムネイル画像と、スクロールバー1003と、ポインタ1004とが表示される。
表示部209は、インデックス記憶部208からインデックス情報を読み出す。次に、表示部209は、読み出したインデックス情報に含まれる代表画像を縮小してサムネイル画像を生成し、生成したサムネイル画像を、サムネイル表示領域1002に並べて表示する。図10(a)に示す例では、サムネイル画像は、サムネイル表示領域1002の最上列から順番に左から右に向けて表示される。ユーザがスクロールバー1003を操作すると、表示部209は、サムネイル表示領域1002に表示されているサムネイル画像をスクロールさせる。これによりサムネイル表示領域1002に一度に表示し切れないサムネイル画像を、順に表示させることができる。
そして、ユーザがマウス105等を操作すると、表示部209は、ポインタ1004の位置を動かし、サムネイル表示領域1002中の、ユーザが所望するサムネイル画像を指定する。ポインタ1004によりサムネイル画像が選択されると、表示部209は、そのサムネイル画像に対応するインデックス情報を参照して、そのサムネイル画像(代表画像)に関連付けられた再生対象区間を取得する。そして、表示部209は、選択されたサムネイル画像に対応する動画ファイルを動画像記憶部202から読み出す。そうすると、表示部209は、図10(a)に示す画面から、図10(b)に示すような動画再生画面1005に画面を切り替え、読み出した動画ファイルのうち、取得した再生対象区間の動画像を連続して動画再生画面1005に表示する。
本実施形態では、例えば、以上のような表示部209の処理により、再生手段の一例が実現される。
尚、ここでは、再生対象区間の動画像を動画再生画面1005に表示するようにしたが、必ずしもこのようにする必要はない。例えば、再生対象区間の動画像を編集できるようにしてもよい。
以上のように本実施形態では、動画像データ501の所定間隔のフレーム毎に、人物顔パターン(顔画像502)を検出し、顔画像502を検出したフレームと、そのフレームに後続するフレームの画像を用いて、顔画像502を追跡する。そして、追跡した結果に基づいて、顔画像502を追跡できた区間と、その区間における"顔画像の位置の変化"を表す顔の移動速度ベクトルとを含む顔シーケンス503を生成する。また、動画像データ501のフレームの画像から、動画像データ501を得たときのカメラの操作の内容を示すカメラ操作情報を生成する。これら顔シーケンス503と、カメラ操作情報とを用いて、撮影者が、カメラで、どの顔を追尾しているのかを判定し、追尾していると判定した顔を主要被写体と判断する。したがって、主要被写体の候補となる被写体が画像内に複数あったとしても、どの被写体が主要被写体であることを自動的に且つ従来よりも正確に判定することが可能になる。
そして、主要被写体として判断した顔(顔画像502)に関する顔シーケンス503と、主要被写体として判断した顔とその他の顔とが共に表示されている重なり区間903とに基づいて、主要被写体として判断した顔に応じた再生対象区間を判断するようにした。したがって、主要被写体が写っている動画像の区間を従来よりも容易に且つ正確に検索できる。
また、主要被写体及び非主要被写体のうち、主要被写体のみが存在する区間の中から代表画像を1つ抽出してそのサムネイル画像を表示し、表示したサムネイル画像を選択させるようにした。したがって、その区間をユーザに選択しやすい形で提示し、再生や、編集への利用を容易にしたり、主要被写体が写っている区間から構成されるダイジェストを自動生成したりすることが可能になる。
<変形例>
尚、本実施形態では、顔の移動速度ベクトルやカメラ操作の速度ベクトルを、フレーム単位に求める場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、所定フレーム毎にこれらを求めるようにしてもよい。例えば、動画がMPEGフォーマットのものであれば、GOP単位にこれらを求めるようにしても構わない。このようにすることで、処理の高速化を図ることが可能となる。
また、本実施形態では、顔検出部203が所定のフレーム間隔で顔画像502を検出し、顔追跡部204が検出された顔画像502の領域を追跡して顔シーケンス503を生成する場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、顔検出部203が毎フレーム、顔画像502を検出し、顔追跡部204が、検出された顔画像502の領域が、前フレームと現フレームとで十分に重なっているかどうかを判定するようにしてもよい。このとき、顔検出部203は、正面のみならず、横向きの顔も検出できるようにしておくことが望ましい。
また、本実施形態では、カメラの操作の内容をフレームの画像から抽出するように構成した場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、カメラのセンサやボタン操作の情報から、カメラの操作の内容を取得するように構成しても構わない。例えば、防振のためにカメラに設けられたジャイロセンサで検出された情報を利用することによって、パン、チルト等の情報を取得できる。このようにした場合は、カメラ操作抽出部205は、カメラ側で取得済みの操作情報を受け取るようにするだけでよい。
また、本実施形態では、主要被写体を判定するためにカメラ操作情報を用いる場合を例に挙げて説明した。しかしながら、カメラによって主要被写体を十分に追尾できることが期待できる環境であれば、カメラ操作抽出部205を省略し、フレーム画面内の顔の移動速度ベクトルのみからでも、主要被写体の判定が可能となる。カメラによって主要被写体を完全に追尾できれば、フレーム画面内での主要被写体の移動速度は0になる。このことを利用し、フレーム画面内での顔の移動速度ベクトルの大きさを、重なり区間903に対して、夫々の被写体について積算(積分)して比較し、その値が小さい方に対応する顔を主要被写体とすることができる。
また、本実施形態では、主要被写体の再生対象区間と代表画像とを抽出し、ブラウジングする場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、主要被写体の再生対象区間のみを求め、これらの区間をつなげて、動画ファイルのダイジェスト再生を行うようにしてもよい。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。被写体の動きが早すぎてユーザが被写体を追いきれず、被写体が一旦フレームアウトして、再度フレームインするような場合が考えられる。本実施形態では、このような場合にも、一連の顔シーケンスとして扱うようにする。このように本実施形態では、前述した第1の実施形態に対し、複数の顔シーケンスが同一の被写体(顔)によるものであるかどうかを判定し、同一であればそれらを一連の顔シーケンスとする処理等を追加したものである。したがって、本実施形態の説明において、前述した第1の実施形態と同一の部分については、図1〜図10に付した符号と同一の符号を付すこと等により詳細な説明を省略する。
図11は、動画像処理装置1100の機能構成の一例を示すブロック図である。本実施形態では、図2に示した第1の動画像処理装置1000に対し、顔特徴抽出部1101と類似度判定部1102とが付加された構成である。
顔特徴抽出部1101は、顔シーケンス503を代表する顔の特徴量として、顔検出部203で検出された顔画像502を用いる。顔の照明条件や顔の向き等の条件がよいほど顔が検出され易いので、顔シーケンス503を代表する顔画像としてふさわしいからである。顔特徴量算出部1101は、顔画像502から、顔の判定に有効な"顔の特徴点"を探索する。具体的に説明すると、顔特徴量算出部1101は、顔の特徴点として、例えば、目尻、口の両端、鼻の頂点等をパターン照合に基づき抽出する。そして、顔特徴量算出部1101は、抽出した各特徴点における局所輝度分布を、例えばガボールウェーブレット変換により特徴量として抽出し、ベクトル化する。
尚、顔の特徴量を抽出する方法の詳細については、文献3(Wiskott et al, "Face Recognition by Elastic Bunch Graph Matching", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL.19 , NO.7, JULY 1997)に記載されている。また、顔の特徴量を抽出する方法は、前述したものに限定されるものではない。例えば、文献(Schmid and Mohr, "Local Greyvalue Invariants for Image Retrieval", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL.19 , NO.5, MAY 1997)に記載されているローカル記述子を各特徴点で求めるようにしてもよい。更に、顔画像502の輝度分布のヒストグラム等を用いて顔の特徴量を比較的単純に抽出するようにしてもよい。
類似度判定部1102は、例えば、各顔シーケンス503について、顔シーケンス503を代表する顔の特徴量が、顔特徴抽出部1101で抽出されると、それらの顔の特徴量の類似度が所定値以上であるか否かを判定する。そして、類似度判定部1102は、類似度が所定値以上である複数の顔シーケンス503を同一人物の顔のものであると見なす。一方、類似度が所定値よりも小さい複数の顔シーケンス503については、異なる人物の顔のものであると見なす。類似度については、例えば、特徴量ベクトル同士のユークリッド距離の逆数を用いることにより求めることができる。
以上のように本実施形態では、例えば、類似度判定部1102により、顔の特徴量の類似度が所定値以上であるか否かを判定することにより、同一被写体判定手段の一例が実現される。
そして、主要顔判定部206は、類似度判定部1102により同一人物の顔のものであると判定された複数の顔シーケンス503を同一の顔シーケンスとして統合する。これにより、統合された顔シーケンスに含まれる区間と、顔の動きベクトルの集合との夫々が統合される。そして、主要顔判定部206は、統合した顔シーケンスを含む複数の顔シーケンスの中から、主要被写体となる顔シーケンスを判定する。
このように本実施形態では、例えば、主要顔判定部206により、同一人物の顔のものであると判定された複数の顔シーケンス503を同一の顔シーケンスとして統合することにより、動画像区間統合手段の一例が実現される。
図12は、2つの顔が存在する区間の一例を示す図である。
図12に示すように、顔Aが一旦フレームアウトして再度フレームインしているため、顔Aが存在する区間1201、1202が2つに分かれてしまっている。このような場合に、類似度判定部1102は、これらの区間1201、1202に対応する顔シーケンス503が同一人物の顔のものであると判定する。
このような類似度判定部1102での判定結果に基づいて、主要顔判定手段206は、顔Aと顔Bとの重なり区間1205、1206について、顔Aに対する追尾量を算出し、算出した追尾量を加算する。また、主要顔判定手段206は、顔Aと顔Bとの重なり区間1205、1206について、顔Bに対する追尾量も算出する。そして、類似度判定部1102は、顔Aに対する"加算した追尾量"と顔Bに対する追尾量とを比較し、比較した結果に基づいて主要被写体の顔シーケンスを判定する。
そして、例えば、主要被写体の顔シーケンスが、顔Aの顔シーケンスであると判定された場合、代表画像抽出部207は、再生対象区間1204を採用すればよい。また、主要被写体の顔シーケンスが、顔A、B両方の顔シーケンスであると判定された場合、代表画像抽出部207は、再生対象区間1204、1207のいずれかを採用すればよい。
以上のように本実施形態では、類似度が所定値以上である複数の顔シーケンス503を同一人物の顔のものであると見なすようにした。したがって、第1の実施形態で説明した効果に加えて、被写体が一旦フレームアウトして、再度フレームインするような場合でも、主要被写体が写っている区間を従来よりも確実に検索することができる。
また、顔特徴抽出部1101と類似度判定部1102を更に設けると、顔画像502をクエリとして、顔の特徴で顔の検索を行うような場合でも、主要顔判定手段206により、主要でない顔シーケンス503を検索対象から除外することが可能になる。
尚、本実施形態では、顔の特徴量の類似度が所定値以上である複数の顔シーケンス503を同一人物の顔のものであると見なすようにする場合を例に挙げて説明した。しかしながら、複数の顔シーケンス503が同一人物の顔のものであるか否かを判定する方法は、このようなものに限定されない。例えば、2つの区間の間隔が所定時間以内である場合、その存在区間に対応する顔シーケンス503を同一人物の顔のものであると見なすようにしてもよい。また、2つの区間の間隔が所定時間以内である場合に、顔特徴抽出部1101、類似度判定部1102を動作させるようにしてもよい。このようにした場合、2つの区間の間隔が所定時間以内でなければ、その2つの区間に対応する顔シーケンス503は、同一人物の顔のものでないと自動的に判定されることになる。
<本発明の他の実施形態>
前述した本発明の実施形態における画像処理装置を構成する各手段、並びに画像処理方法の各ステップは、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図3、図6、図7に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。