[画像処理装置の構成例]
図1は、本発明を適用した画像処理装置のハードウェアの一実施の形態の構成例を示している。図1の画像処理装置11は、動画像コンテンツを蓄積すると共に、必要に応じて検索して抽出するものである。
画像処理装置11は、画像取得部21、バッファ22、動画像コンテンツデータ登録部23、記憶部24、検索抽出部25、コンテンツファイル圧縮部26、および表示部27を備えている。
画像取得部21は、登録しようとする動画像コンテンツ、または検索しようとする動画像コンテンツの一部となるサンプルデータを取得し、バッファ22に一時的に記憶させる。サンプルデータは、例えば、インターネット上でダウンロード可能な動画像コンテンツの部分的なものや、関連する画像、およびサンプル動画像などである。
動画像コンテンツデータ登録部23は、バッファ22に記憶されている、登録しようとする動画像コンテンツについて、第1階層要約データ、および第2階層要約データを生成する。そして、動画像コンテンツデータ登録部23は、第1階層要約データを記憶部24の第1階層要約データDB(データベース)101に登録する。また、動画像コンテンツデータ登録部23は、第2階層要約データからなる第2階層要約データファイル112と動画像コンテンツからなる動画像コンテンツファイル111とをコンテンツデータペア102として記憶部24に記憶させる。この際、記憶部24に記憶されている動画像コンテンツがクラスタリング(クラスに分類)されている場合、動画像コンテンツデータ登録部23は、第1階層要約データに基づいて、動画像コンテンツをいずれかのクラスに分類して、記憶させる。
尚、図1の記憶部24においては、第1階層要約データDB101、および複数のクラスA乃至Dが含まれている。各クラスA乃至Dには、それぞれコンテンツデータペア102−1乃至102−a,102−b乃至102−c,102−d乃至102−e,102−f乃至102−gが含まれている。さらに、コンテンツデータペア102−1乃至102−aには、それぞれ動画像コンテンツファイル111−1乃至111−a、および第2階層要約データファイル112−1乃至112−aが含まれている。また、コンテンツデータペア102−b乃至102−cには、それぞれ動画像コンテンツファイル111−b乃至111−c、および第2階層要約データファイル112−b乃至112−cが含まれている。さらに、コンテンツデータペア102−d乃至102−eには、それぞれ動画像コンテンツファイル111−d乃至111−e、および第2階層要約データファイル112−d乃至112−eが含まれている。また、コンテンツデータペア102−f乃至102−gには、それぞれ動画像コンテンツファイル111−f乃至111−g、および第2階層要約データファイル112−f乃至112−gが含まれている。
尚、これらを特に区別する必要がない場合、単に、コンテンツデータペア102、動画像コンテンツファイル111、および第2階層要約データファイル112と称するものとし、その他の構成についても同様に称するものとする。また、これらのクラスA乃至Dの構成については、第1階層要約データDB101に管理される第1階層要約データに対して所属するクラスの情報が対応して記録されているのみであり、記憶部24内において、クラスA乃至Dといった個別のフォルダなどにより管理されているわけではない。図1の記憶部24内の記載は、あくまでもクラス構造を模式的に示したものであって、実際には、記憶部24内において、コンテンツデータペア102が個別に分類されたクラス単位で統一された領域に記録されているわけではない。また、コンテンツデータペア102における動画像コンテンツファイル111、および第2階層要約データファイル112については、対応付けて記録されるが、個別に存在するファイルであり、個別に管理可能なものである。
動画像コンテンツデータ登録部23は、アクティビティ計算部41、画像スライド部42、第1階層要約データ生成部43、第2階層要約データ生成部44、およびクラスタリング部45を含む。アクティビティ計算部41は、動画像コンテンツに含まれる画像の隣接画素間の画素値の差分値を画素値とした画像をアクティビティ画像として求める。画像スライド部42は、アクティビティ計算部41により計算されたアクティビティ画像に基づいて、アクティビティの最も高い位置を画像の中心としてスライドさせる。すなわち、画像の中でアクティビティの最も高い位置は、人間の視覚において意識を引き付ける位置であるので、その位置を画像の中心とすることにより、抽出される第1階層要約データ、および第2階層要約データが正規化されるようにする。
第1階層要約データ生成部43は、画像分割部61、RGB画素値平均値計算部62、およびシーンチェンジ検出部63を備えている。第1階層要約データ生成部43は、入力される動画像コンテンツの所定間隔毎のフレーム、または、シーンチェンジ検出部63により検出されたシーンチェンジのタイミングとなるフレームを注目フレームとして、その注目フレームより第1階層要約データを生成する。すなわち、第1階層要約データ生成部43は、画像分割部61を制御して、注目フレームを所定数の分割領域に分割させる。次に、第1階層要約データ生成部43は、RGB画素値平均値計算部62を制御して、分割領域毎にRGB(赤色画素、緑色画素、青色画素)のそれぞれの画素値の平均値を求めさせる。そして、第1階層要約データ生成部43は、このようにして分割領域毎に求められたRGBのそれぞれの平均値を要素とし、100バイト程度の情報量からなるフレーム単位のベクトルを第1階層要約データとして求め、第1階層要約データDB101に登録する。
第2階層要約データ生成部44は、画像分割部71、およびRGB画素値平均値計算部72を備えており、動画像コンテンツの全フレームより第2階層要約データを生成する。尚、画像分割部71、およびRGB画素値平均値計算部72については、それぞれ第1階層要約データ生成部43の画像分割部61、およびRGB画素値平均値計算部62と同様のものである。
すなわち、第2階層要約データ生成部44は、画像分割部71を制御して、注目フレームを所定数の分割領域に分割させる。次に、第2階層要約データ生成部44は、RGB画素値平均値計算部72を制御して、分割領域毎にRGB(赤色画素、緑色画素、青色画素)のそれぞれの画素値の平均値を求めさせる。そして、第2階層要約データ生成部44は、このようにして分割領域毎に求められたRGBのそれぞれの平均値を要素とし、30バイト程度の情報量からなるフレーム単位のベクトルを第2階層要約データとして求める。さらに、第2階層要約データ生成部44は、このようにして求められた第2階層要約データを時系列配置したファイルを第2階層要約データファイル112と、動画像コンテンツファイル111とを、コンテンツデータペア102として記憶部24に記憶させる。
尚、第1階層要約データ、および第2階層要約データは、いずれにおいても、いずれの動画像コンテンツファイルに所属するものであるかを示す情報が含まれている。また、第1階層要約データは、30フレーム毎に100バイト程度の情報量の情報であり、第2階層要約データは、1フレーム毎に30バイト程度の情報量の情報であるものとしているが、第1階層要約データの方が、第2階層要約データよりもフレーム数の頻度が低く、情報量が多いものであれば、他のフレーム数毎であって、異なる情報量であってもよい。すなわち、第1階層要約データについては、第1階層要約データDB101において検索に利用されるため、単独で利用されるため、多少大きめのデータでもよい。しかしながら、第2階層要約データは、時系列に管理される複数のものを含む第2階層要約データファイル112の単位で利用されることになるため、個々には小さなデータサイズとする必要があるためである。
クラスタリング部45は、重心計算部81、距離計算部82、および初期登録部83を備えている。クラスタリング部45は、記憶部24に記憶されている複数のコンテンツデータペア102を第1階層要約データDB101に登録されている第1階層要約データに基づいて、類似したもの同士を同一クラスに分類する(クラスタリングする)。
クラスタリング部45は、既に、クラスタリングが完了している記憶部24に新たに動画像コンテンツファイル111を登録するとき、その新たに登録しようとする動画像コンテンツの第1階層要約データに基づいてクラスを分類する。すなわち、クラスタリング部45は、重心計算部81を制御して、各クラスに属するベクトルからなる第1階層要約データの重心ベクトルを計算させる。次に、クラスタリング部45は、距離計算部82を制御して各クラスの重心ベクトルと、新たに登録しようとする動画像コンテンツの第1階層要約データを構成するベクトルとの距離を計算させる。そして、クラスタリング部45は、新たに登録しようとする動画像コンテンツの第1階層要約データからなるベクトルとの距離が最小となる重心ベクトルのクラスに、新たに登録しようとする動画像コンテンツを分類する。
また、記憶部24に登録されているコンテンツデータペア102がクラスに分類されていない場合、クラスタリング部45は、各コンテンツデータペア102をクラスに分類する。すなわち、クラスタリング部45は、距離計算部82を制御して、各動画像コンテンツの第1階層要約データDB101に登録されている第1階層要約データを構成するベクトル間の距離を計算し、所定の距離の範囲内に存在する動画像コンテンツデータを同一のクラスに分類する。そして、クラスタリング部45は、初期登録部83を制御して、各動画像コンテンツが分類された第1階層要約データのクラスを登録する。
検索抽出部25は、アクティビティ計算部151、画像スライド部152、第1階層予約データ検索部153、第2階層要約データ検索抽出部154、クラス検索部155、および検索結果表示画像生成部156を備えている。検索抽出部25は、画像取得部21により取得されバッファ22に記憶された検索しようとする動画像コンテンツに関連するサンプルデータに基づいて、動画像コンテンツを検索し、検索結果を表示部27に表示する。
より詳細には、アクティビディ計算部151、および画像スライド部152は、動画像コンテンツデータ登録部23におけるアクティビディ計算部41、および画像スライド部42と同様のものである。すなわち、アクティビティ計算部151は、検索しようとする動画像コンテンツに関連する画像(フレーム)の隣接画素間の差分値からなるアクティビティを計算し、アクティビティを画素値とするアクティビティ画像を生成する。画像スライド部152は、計算されたアクティビティ画像のうち、最もアクティビティの大きな位置を画像の中心位置にスライドさせる。
第1階層要約データ検索部153は、画像分割部171、RGB画素値平均値計算部172、および比較部173を備えている。第1階層要約データ検索部153は、検索しようとする動画像コンテンツに関連するサンプルデータの代表画像より第1階層要約データを生成する。すなわち、第1階層要約データ検索部153は、画像分割部171を制御して、代表画像を所定数の分割領域に分割させる。次に、第1階層要約データ検索部153は、RGB画素値平均値計算部172を制御して、分割領域毎にRGB(赤色画素、緑色画素、青色画素)のそれぞれの画素値の平均値を求めさせる。そして、第1階層要約データ検索部153は、このようにして分割領域毎に求められたRGBのそれぞれの平均値を要素とし、100バイト程度の情報量からなるフレーム単位のベクトルを第1階層要約データとして求める。尚、サンプルデータの代表画像は、サンプルデータを構成する動画像コンテンツの先頭画像、またはシーンチェンジのタイミングにおける画像である。
第1階層要約データ検索部153は、比較部173を制御して、サンプルデータより求められた代表画像の第1階層要約データと、第1階層要約データDB101に登録された第1階層要約データとをそれぞれ構成するベクトルとを比較し、一致、または類似しているか否かを判定させる。そして、第1階層要約データ検索部153は、サンプルデータの第1階層要約データに対応する検索対象となる動画像コンテンツの候補を検索する。この際、クラス検索部155により代表画像の第1階層要約データのベクトルと、各クラスに分類される第1階層要約データの重心ベクトルとの一致、または類似しているか否かの比較結果に基づいて、一致するクラスの重心ベクトルが求められていた場合、第1階層要約データ検索部153は、対象となるクラスに属する第1階層要約データと一致、または類似するか否かの比較結果により、サンプルデータの第1階層要約データに対応する動画像コンテンツを検索する。すなわち、各クラスは、第1階層要約データを構成するベクトル間の距離が近いもの同士が集められて構成される。このため、第1階層要約データ検索部153は、第1階層要約データDB101に登録されている第1階層要約データのうち、代表画像の第1階層要約データと一致する重心ベクトルを持つクラスに属する第1階層要約データのみを比較すればよいので検索速度を向上させることができる。
第2階層要約データ検索抽出部154は、検索しようとするサンプルデータの動画像コンテンツの動画像情報に基づいて、第2検索要約データを生成する。そして、第2階層要約データ検索抽出部154は、サンプルデータの第2検索要約データと、第1階層要約データ検索部153により検索された第1階層要約データの動画像コンテンツの第2階層要約データファイル112とが一致するものを検索する。すなわち、第2階層要約データ検索抽出部154は、画像分割部181を制御して、検索しようとするサンプルデータの動画像コンテンツの動画像情報の各フレームを所定数の分割領域に分割させる。次に、第2階層要約データ検索抽出部154は、RGB画素値平均値計算部182を制御して、分割領域毎にRGB(赤色画素、緑色画素、青色画素)のそれぞれの画素値の平均値を求めさせる。そして、第2階層要約データ検索抽出部154は、このようにして分割領域毎に求められたRGBのそれぞれの平均値を要素とし、30バイト程度の情報量からなるフレーム単位のベクトルをサンプルデータの第2階層要約データとして求める。すなわち、第2階層要約データファイル112は、毎フレームごとに求められた第2階層要約データが時系列に配置されたものである。従って、サンプルデータの第2階層要約データが時系列に配置されたものが、登録された第2階層要約データファイル112の時系列に配置された第2階層要約データ上で、1フレームずつスライドされるとき、対応するフレーム同士の第2階層要約データ間の差分が順次求められるとき、その差分の最小値が所定の閾値よりも小さければ、検索対象となる動画像コンテンツと一致、または類似しているものとして検索される。また、検索対象となる動画像コンテンツと一致、または類似していれば、その差分が最小となるときのスライド位置が、そのサンプルデータの、検索しようとする動画像コンテンツ上の再生位置として特定される。
クラス検索部155は、サンプルデータの代表画像より求められた第1階層要約データを構成するベクトルと、記憶部24に記憶されている第1階層要約データDB101に登録された各クラスの重心ベクトルとの距離を求め、所定の範囲内のクラスを検索する。すなわち、クラス検索部155は、重心計算部191を制御して、クラス毎にそのクラスに属する第1階層要約データを構成するベクトルの重心ベクトルを求める。そして、クラス検索部155は、代表画像の第1階層要約データからなるベクトルと、重心ベクトルとの距離を求めて所定の距離内の重心ベクトルのクラスを検索する。
検索結果表示画像生成部156は、第2階層要約データ検索抽出部154により検索された動画像コンテンツの第1階層要約データに対応する画像を、LCD(Liquid Crystal Display)などからなる表示部27に表示する。
コンテンツファイル圧縮部26は、同一部分検索部211、不一致部分検索部212、編集部213、および更新部214を備えている。コンテンツファイル圧縮部26は、第2階層要約データ検索抽出部154により検索された第2階層要約データファイル112における同一部分、および不一致部分を検索すると共に、相互に同一部分を1つのみ残して消去し、その他の不一致部分と接合するなどの編集を行い、動画像コンテンツファイル111のデータ量を圧縮する。すなわち、コンテンツファイル圧縮部26は、同一部分検索部211を制御して、検索された第2階層要約データファイル112のうち、同一部分となる範囲を検索させる。コンテンツファイル圧縮部26は、不一致部分検索部212を制御して、検索されたもののうち、不一致部分となる範囲を検索させる。次に、コンテンツファイル圧縮部26は、編集部213を制御して、同一部分となる範囲を1箇所残すのみとし、その他を削除させ、必要に応じて不一致部分を接合するように編集させる。そして、コンテンツファイル圧縮部26は、新たに生成された動画像コンテンツファイル111により動画像コンテンツファイル111を更新する。
[動画像コンテンツ蓄積処理]
次に、図1の画像処理装置11における動画像コンテンツ蓄積処理について説明する。
ステップS11において、画像取得部21は、記憶部24に蓄積すべき動画像コンテンツを取得し、バッファ22に格納する。
ステップS12において、動画像コンテンツデータ登録部23は、バッファ22より動画像コンテンツを読み出して、第1階層要約データ生成処理を実行し、第1階層要約データを生成して記憶部24の第1階層要約データDB101に登録する。
[第1階層要約データ生成処理]
ここで、図3のフローチャートを参照して、第1階層要約データ生成処理について説明する。
ステップS31において、動画像コンテンツデータ登録部23は、フレーム数をカウントするためのカウンタfを1に初期化する。
ステップS32において、動画像コンテンツデータ登録部23は、順次動画像コンテンツを読み出し、未処理の次のフレーム画像が存在するか否かを判定する。ステップS32において、未処理の次のフレーム画像が存在しない場合、処理は終了する。一方、ステップS32において、次の動画像コンテンツのフレーム画像が存在する場合、処理は、ステップS33に進む。
ステップS33において、第1階層要約データ生成部43は、シーンチェンジ検出部63を制御して、供給されてくるフレーム画像が直前の画像との比較によりシーンチェンジしているフレーム画像であるか否かを判定する。すなわち、シーンチェンジ検出部63は、例えば、処理対象であるフレーム画像と直前画像との各画素の画素値の差分値の総和を求めて、所定の閾値よりも大きくなる場合、シーンチェンジが発生したものとみなす。すなわち、連続する動画像の場合、直前のフレーム画像との変化は小さいと考えられるため、画素値の差分値の総和は、所定の閾値よりも小さいと考えられる。しかしながら、シーンチェンジが発生する場合、直前のフレーム画像とは全く異なる画像となることが多いため、各画素間の画素値の差分値の総和は大きく変化するものと考えられる。そこで、シーンチェンジ検出部63は、各画素間の画素値の差分値の総和と、所定の閾値との比較によりシーンチェンジが発生しているか否かを判定する。
ステップS33において、例えば、直前の画像との各画素の画素値の差分値の総和が所定の閾値よりも小さく、シーンチェンジが発生していないものとみなされた場合、処理は、ステップS34に進む。
ステップS34において、動画像コンテンツデータ登録部23は、カウンタfが30であるか否かを判定し、30ではない場合、処理は、ステップS35に進み、カウンタfが1インクリメントされて、処理は、ステップS32に戻る。すなわち、シーンチェンジがない限り、30フレームが経過するまで、ステップS32乃至S35の処理が繰り返される。
そして、ステップS33において、直前の画像との各画素の画素値の差分値の総和が所定の閾値よりも大きく、シーンチェンジが発生しているとみなされた場合、または、ステップS34において、カウンタfが30になった場合、処理は、ステップS36に進む。
ステップS36において、動画像コンテンツデータ登録部23は、バッファ22より直前のフレームから30フレーム目にあたる注目フレームの画像をバッファ22より抽出する。
ステップS37において、動画像コンテンツデータ登録部23は、アクティビティ計算部41を制御して、抽出した注目フレームの画像におけるアクティビティを計算させる。より詳細には、アクティビティ計算部41は、各画素について水平垂直に隣接する画素間の差分の合計を画素のアクティビティとして計算し、全画素について同様に計算することで、全画素の画素値がアクティビティからなるアクティビティ画像を計算により求める。
ステップS38において、動画像コンテンツデータ登録部23は、画像スライド部42を制御して、求められたアクティビティ画像のうち、アクティビティが最も高い画素の位置を、注目フレームの画像における中心位置に移動させる。すなわち、アクティビティが高い画素位置は、人間の視覚において、最も視線が向けられ易い位置であるため、注目フレームにおけるその最も視線が向けられ易い位置が画像の中心位置となるようにスライドされて移動されることで、以降の処理が正規化される。尚、複数に最も高いアクティビティを取る画素が存在する場合、その最もアクティビティが高い画素により構成される被写体に視線が向けられ易いことになるため、その場合、それらの画素の重心位置を注目フレームの画像の中心位置とするようにしてもよい。
ステップS39において、第1階層要約データ生成部43は、画像分割部61を制御して、中心位置がスライドされた第Fフレームを、N個の分割領域P(n)に分割する。すなわち、例えば、N=32である場合、第Fフレームの画像は、図4で示されるように分割領域P(1)乃至P(32)に分割される。
ステップS40において、第1階層要約データ生成部43は、分割領域P(n)をカウントするためのカウンタnを1に初期化する。
ステップS41において、第1階層要約データ生成部43は、RGB画素値平均値計算部62を制御して、分割領域P(n)のRGBの各画素について、画素値の平均値をそれぞれ求める。
ステップS42において、第1階層要約データ生成部43は、カウンタnが所定の分割数Nであるか否かを判定する。すなわち、図4の場合、第1階層要約データ生成部43は、カウンタnが所定の分割数N=32であるか否かを判定する。ステップS42において、カウンタnが所定の分割数Nではない場合、ステップS43において、第1階層要約データ生成部43は、カウンタnを1インクリメントして、処理は、ステップS41に戻る。すなわち、全ての分割領域P(n)のRGBの各画素について、画素値の平均値がそれぞれ求められる。
そして、ステップS42において、カウンタnが分割数Nに達した場合、処理は、ステップS43に進む。
ステップS44において、第1階層要約データ生成部43は、分割領域P(1)乃至P(N)のそれぞれのRGBの平均値を要素とするベクトルからなり、100バイト程度のデータ量の第1階層要約データC1を第1階層要約データDB101に登録して記憶部24に記憶させ、処理は、ステップS31に戻る。
以上の処理により動画像コンテンツのうち、先頭から順次30フレーム毎に、または、シーンチェンジがあるとき、そのときのフレームが注目フレームとされて、順次、所定数の分割領域P(n)に分割されて、それぞれのRGBの平均値が求められる。そして、求められた各分割領域P(n)のRGBの平均値を要素とするベクトルであって、100バイト程度のデータ量の第1階層要約データC1が、第1階層要約データDB101に順次登録される。すなわち、例えば、図4で示されるように、注目フレームが32分割され、RGBのそれぞれの諧調が16であって、1バイトで表現されるとき、第1階層要約データC1は、各要素が1バイトで表現され、96バイトからなる96次元のベクトルにより構成されるものとなる。このため、第1階層要約データDB101に登録されている情報は、時系列の情報を含まない第1階層要約データを構成するベクトルの集合からなる特徴量であると考えることができる。
ここで、図2のフローチャートの説明に戻る。
ステップS12において、登録しようとする動画像データの第1階層要約データが記憶部24の第1階層要約データDB101に登録されると、ステップS13において、クラスタリング部45は、クラスタリング処理を実行し、登録しようとする動画像コンテンツの第1階層要約データのクラスを分類する。
[クラスタリング処理]
ここで、図5のフローチャートを参照し、クラスタリング処理について説明する。
ステップS51において、クラスタリング部45は、第1階層要約データDB101に登録されている第1階層要約データのうち、登録しようとする動画像コンテンツを除いたものであって、クラスに分類されているものを抽出する。さらに、クラスタリング部45は、重心計算部81を制御して、同一クラスに分類されている第1階層要約データからなるベクトルの重心ベクトルを計算させる。すなわち、例えば、図1のクラスAにおいては、クラスタリング部45は、重心計算部81を制御して、クラスAのコンテンツデータペア102−1乃至102−aのそれぞれのに対応する第1階層要約データからなるベクトルの重心ベクトルを求めさせる。同様に、クラスB乃至Dについても、それぞれの第1階層要約データからなるベクトルの重心ベクトルが求められる。
ステップS52において、クラスタリング部45は、登録しようとする動画像コンテンツの第1階層要約データのうち、未処理のものを処理対象の第1階層要約データC1に設定する。
ステップS53において、クラスタリング部45は、クラスをカウントするカウンタmを1に初期化する。
ステップS54において、クラスタリング部45は、距離計算部82を制御して、処理対象の第1階層要約データC1を構成するベクトルと、クラスmの重心ベクトルとの距離dmを計算させる。より詳細には、距離計算部82は、例えば、自乗ノルムを用いて、それぞれのベクトル間距離dmを求める。
ステップS55において、クラスタリング部45は、求められたベクトル間の距離dmが所定の閾値th1よりも小さいか否かを判定し、例えば、ベクトル間の距離dmが所定の閾値th1よりも小さい場合、処理は、ステップS56に進む。
ステップS56において、クラスタリング部45は、処理対象とする第1階層要約データC1をクラスmに仮登録する。
ステップS57において、クラスタリング部45は、カウンタmが分類されているクラス数Mに達したか否かを判定し、達していない場合、処理は、ステップS58に進む。そして、ステップS58において、クラスタリング部45は、カウンタmを1インクリメントして、処理は、ステップS54に戻る。すなわち、全てのクラスの重心ベクトルとのベクトル間距離が所定の閾値th1よりも小さいか否かが判定されるまで、ステップS54乃至S58の処理が繰り返される。
そして、ステップS57において、カウンタmがクラス数Mであると判定された場合、ステップS59において、クラスタリング部45は、処理対象となっている第1階層要約データC1が、いずれかのクラスに分類されて仮登録されているか否かを判定する。そして、ステップS59において、いずれかのクラスに分類されて仮登録されている場合、処理は、ステップS60に進む。
ステップS60において、クラスタリング部45は、処理対象とする第1階層要約データC1が仮登録されているクラスのうち、距離dmが最小となるクラスmを処理対象とする第1階層要約データC1のクラスmに分類する。すなわち、処理対象とする第1階層要約データC1が、複数のクラスに分類されている場合、そのいずれかに分類する必要があるため、第1階層要約データC1のベクトルが、重心ベクトルと最も近い(最も類似している)クラスに分類される。
ステップS61において、クラスタリング部45は、分類されたクラスに、同一の動画像コンテンツの第1階層要約データが既に登録されているか否かを判定する。ステップS61において、例えば、分類されたクラスに、同一の動画像コンテンツの第1階層要約データが登録されていない場合、ステップS62において、クラスタリング部45は、分類されたクラスに処理対象となる第1階層要約データを分類し、第1階層要約データDB101に登録する。
一方、ステップS59において、いずれのクラスにも分類されていない場合、または、ステップS61において、既に、同一の動画像コンテンツの第1階層要約データが登録されている場合、処理は、ステップS63に進む。
ステップS63において、クラスタリング部45は、登録しようとする動画像コンテンツについて、未処理の第1階層要約データが存在するか否かを判定し、未処理の第1階層要約データが存在する場合、処理は、ステップS52に戻る。すなわち、サンプルデータの動画像コンテンツについて、未処理の第1階層要約データが存在しない状態となるまで、ステップS52乃至S63の処理が繰り返される。
そして、ステップS63において、登録しようとする動画像コンテンツについて、未処理の第1階層要約データが存在しないと判定された場合、処理は、終了する。
以上の処理により、登録しようとする動画像コンテンツの第1階層要約データについて、各クラスに最大1つの第1階層要約データが分類される。
ここで、図2のフローチャートの説明に戻る。
ステップS13において、登録しようとする動画像コンテンツの第1階層要約データについて、各クラスに最大1つの第1階層要約データが分類されると、処理は、ステップS14に進む。
ステップS14において、第2階層要約データ生成部44は、第2階層要約データ生成処理を実行し、第2階層要約データからなる第2階層要約データファイル112を生成し、動画像コンテンツファイル111と共にコンテンツデータペア102として記憶部24に記憶させる。
[第2階層要約データ生成処理]
ここで、図6のフローチャートを参照して、第2階層要約データ生成処理について説明する。
ステップS81において、動画像コンテンツデータ登録部23は、フレーム数をカウントするためのカウンタFを1に初期化する。
ステップS82において、動画像コンテンツデータ登録部23は、バッファ22に蓄積されている、登録しようとする動画像コンテンツに次のフレーム画像が存在するか否かを判定し、次のフレーム画像が存在しない場合、処理は終了する。また、ステップS82において、次のフレーム画像が存在する場合、処理は、ステップS83に進む。
ステップS83において、動画像コンテンツデータ登録部23は、バッファ22よりフレーム(F)を注目フレームの画像としてバッファ22より抽出する。
ステップS84において、動画像コンテンツデータ登録部23は、アクティビティ計算部41を制御して、抽出した注目フレームの画像におけるアクティビティ画像を計算させる。
ステップS85において、動画像コンテンツデータ登録部23は、画像スライド部42を制御して、求められたアクティビティ画像のうち、アクティビティが最も高い画素の位置を、注目フレームの画像における中心位置に移動させる。
ステップS86において、第2階層要約データ生成部44は、画像分割部71を制御して、中心位置がスライドされた第Fフレームを、N個の分割領域P(n)に分割する。
ステップS87において、第2階層要約データ生成部44は、分割領域P(n)をカウントするためのカウンタnを1に初期化する。
ステップS88において、第2階層要約データ生成部44は、RGB画素値平均値計算部72を制御して、分割領域P(n)のRGBの各画素について、画素値の平均値をそれぞれ求める。
ステップS89において、第2階層要約データ生成部44は、カウンタnが所定の分割数Nであるか否かを判定する。ステップS89において、カウンタnが所定の分割数Nではない場合、ステップS90において、第2階層要約データ生成部44は、カウンタnを1インクリメントして、処理は、ステップS88に戻る。すなわち、全ての分割領域P(n)のRGBの各画素について、画素値の平均値がそれぞれ求められる。
そして、ステップS90において、カウンタnが分割数Nに達した場合、処理は、ステップS91に進む。
ステップS91において、第2階層要約データ生成部44は、分割領域P(1)乃至P(N)のそれぞれのRGBの平均値を要素とするベクトルからなり、30バイト程度のデータ量の第2階層要約データC2を新規の第2階層要約データファイル112に登録する。この際、第2階層要約データ生成部44は、処理されたフレーム順に第2階層要約データC2を新規の第2階層要約データファイル112に登録して記憶部24に記憶させる。
そして、ステップS92において、カウンタFが1インクリメントされると、処理は、ステップS82に戻る。
以上の処理により動画像コンテンツの各フレームが順次注目フレームとされて、所定数の分割領域P(n)に分割されて、それぞれのRGBの平均値が求められる。そして、求められた各分割領域P(n)のRGBの平均値を要素とするベクトルであって、30バイト程度のデータ量の第2階層要約データC2が、順次、処理されたフレーム順に第2階層要約データファイル112に登録される。すなわち、例えば、図4で示されるように、注目フレームが32分割され、RGBのそれぞれの諧調が4であって、2ビットで表現されるとき、1つの第2階層要約データC2は、各要素が2ビットで表現され、24バイトからなる96次元のベクトルにより構成されるものとなる。さらに、第2階層要約データファイル112には、この第2階層要約データC2が時系列にフレーム順に記憶される構造となる。このため、第2階層要約データファイル112に記憶されている第2階層要約データC2をフレーム順に配置したデータは、時系列の情報を含む第2階層要約データC2のベクトルからなる特徴量であるといえる。
ここで、図2のフローチャートの説明に戻る。
ステップS14において、第2階層要約データ生成処理により第2階層要約データファイル112が生成されると、処理は、ステップS15に進む。
ステップS15において、動画像コンテンツデータ登録部23は、登録しようとする動画像コンテンツからなる動画像コンテンツファイル111と対応する第2階層要約データファイル112とからなるコンテンツデータペア102を記憶部24に登録する。
以上の処理により動画像コンテンツを登録する際、所定間隔毎のフレーム単位、またはシーンチェンジのあったフレーム単位で抽出される第1階層要約データが第1階層要約データDB101に登録される。また、毎フレーム単位で抽出される第2階層要約データがフレーム順に配置された状態で第2階層要約データファイル112として登録され、動画像コンテンツファイル111とのコンテンツデータペア102として記憶部24に登録される。
尚、第1階層要約データDB101の情報は、毎フレーム単位ではないが、所定間隔のフレーム単位、またはシーンチェンジのあるフレーム単位で抽出される第1階層要約データC1そのものがデータベースとして登録されているのみである。このため、第1階層要約データDB101の情報は、時系列の情報を持たない代わりに、データ検索に優れたデータベースとして登録されている。このため、第1階層要約データDB101の情報は、後述する検索しようとするサンプルデータの動画像コンテンツのデータとの照合により、検索しようとするサンプルデータの動画像コンテンツを特定するのに優れている特徴量であるといえる。
また、第1階層要約データについては、第1階層要約データDB101において、クラスタリングされて登録されているため、第1階層要約データを検索する際、クラス毎の重心ベクトル等を用いて、いずれのクラスに所属しているのかを特定した後、さらに、特定されたクラス内の第1階層要約データを検索するようにすることで、検索速度を向上させることが可能となる。
[初期クラスタリング処理]
さらに、以上においては、既に記憶部24に登録されている動画像コンテンツファイル111は、いずれもクラスタリングされていることが前提となる処理であった。しかしながら、クラスタリングされることなく動画像コンテンツファイル111が記憶部24に登録されている場合、初期クラスタリング処理が必要となる。そこで、次に、図7のフローチャートを参照して、初期クラスタリング処理について説明する。尚、第1階層要約データ生成処理により、全ての動画像コンテンツについての第1階層要約データが、第1階層要約データDB101に登録済みであることを前提とする。このため、図2のフローチャートにおけるステップS13の処理を除くステップS11,S12,S14,S15の処理によりクラスタリングされていない状態で記憶部24に動画像コンテンツが記憶されているものとする。
ステップS111において、クラスタリング部45は、第1階層要約データDB101のうち、注目する第1階層要約データC1(q)と、比較対象となる第1階層要約データC1(r)とを識別するカウンタq,rをq=1,r=2に初期化する。
ステップS112において、クラスタリング部45は、距離計算部82を制御して、第1階層要約データC1(q)と第1階層要約データC1(r)との距離dmを計算させる。
ステップS113において、クラスタリング部45は、計算された距離dmが、所定の閾値th1よりも小さいか否かを判定し、例えば、距離dmが、所定の閾値th1よりも小さい場合、すなわち、類似していると判定された場合、処理は、ステップS114に進む。
ステップS114において、クラスタリング部45は、初期登録部83を制御して、第1階層要約データC1(r)の属する動画像コンテンツの他の第1階層要約データC1が、注目する第1階層要約データC1(q)と同一のクラスに既に分類されて登録されているか否かを判定する。
ステップS114において、第1階層要約データC1(r)の属する動画像コンテンツの他の第1階層要約データC1が、注目する第1階層要約データC1(q)と同一のクラスに既に分類されて登録されていない場合、処理は、ステップS115に進む。
ステップS115において、初期登録部83は、第1階層要約データC1(r)を注目する第1階層要約データC1(q)と同一のクラスに分類して登録する。
すなわち、注目する第1階層要約データC1(q)と同一のクラスとみなされたその他の比較対象となる第1階層要約データC1(r)が既に登録されていると、同一のクラスに同一の動画像コンテンツから異なる第1階層要約データが複数登録されることになる。クラスとは、動画像コンテンツ同士で類似している、または同一であるフレーム画像をまとめたものである。従って、同一の動画像コンテンツの第1階層要約データが、複数も同一のクラスに登録する必要がない。このため、既に登録されたものがない場合にのみ、比較対象となる第1階層要約データC1(r)が注目する第1階層要約データC1(q)と同一のクラスに分類されて登録される。
ステップS116において、クラスタリング部45は、カウンタrが、第1階層要約データC1の総数Qとなったか否かを判定し、カウンタrが総数Qではない場合、ステップS117において、カウンタrを1インクリメントして処理は、ステップS112に戻る。
一方、ステップS113において、距離dmが所定の閾値th1より大きく、また、ステップS114において、注目する第1階層要約データC1(q)と同一のクラスとみなされたその他の比較対象となる第1階層要約データC1(r)が既に登録されている場合、ステップS115の処理はスキップされて、処理は、ステップS116に進む。
すなわち、注目する第1階層要約データC1(q)と、それ以外の全ての比較対象となる第1階層要約データC1(r)との比較処理が全て完了するまで、ステップS112乃至S116の処理が繰り返される。
そして、ステップS116において、カウンタrが総数Qになった場合、ステップS118において、クラスタリング部45は、カウンタqが総数Qになったか否かを判定する。ステップS116において、カウンタqが総数Qではない場合、ステップS119において、クラスタリング部45は、カウンタqを1インクリメントし、さらに、ステップS120において、カウンタrをカウンタqより1大きな値にする。そして、処理は、ステップS112に戻る。
すなわち、第1階層要約データDB101の第1階層要約データ間の比較をするため、重複した比較をする必要がないので、注目する第1階層要約データC1(q)に対して、比較対象となる第1階層要約データC1(r)は、カウンタqより上位のものであればよい。そこで、カウンタrは、q+1から総数Qまでの処理となる。そして、これらの比較が、全ての第1階層要約データ間でなされるまで、ステップS112乃至S120の処理が繰り返される。
そして、ステップS118において、カウンタqが総数Qであると判定された場合、処理は終了する。
以上の処理により、第1階層要約データ間で類似しているもの、または同一のものについて、それぞれが同一のクラスに分類され、さらに、各クラスには同一の動画像コンテンツに属する第1階層要約データは、最大1個となるように分類される。この結果、例えば、異なる動画像コンテンツから6種類の第1階層要約データが集められて1クラスが設けられるような場合、図8の最上段の6枚のフレーム画像で示されるように、同一の人物が存在するような画像が抽出される。または、図8の上から2段目の6枚のフレーム画像で示されるように、同一の灯台と海が存在するような画像や、図8の上から3段目の6枚のフレーム画像で示されるように、2機の航空機が存在するような画像や、図8の上から4段目の6枚のフレーム画像で示されるように、同一のロケット発射台が存在するような画像が抽出され、それぞれの6枚が同一のクラスとして分類される。すなわち、図8における各段の6枚のフレーム画像の第1階層要約データは、相互にベクトル間距離が所定の距離内の画像である。
尚、同一のクラスに分類される第1階層要約データ数毎にクラス数を求めた場合、例えば、図9で示されるような傾向が見られることが知られている。すなわち、図9においては、縦軸が、同一のクラスに分類される第1階層要約データ数(同一のクラスに分類されるフレーム画像数)を示し、横軸が、クラス数を示している。この結果、同一のクラスに分類される第1階層要約データ数が少数(例えば、3乃至5個)のクラス数は非常に多く、同一のクラスに分類される第1階層要約データ数が多数(例えば、16個以上)であると極端に少ないことがわかる。このことから、第1階層要約データ数の多いクラスについては、クラスを特定すれば、対応する動画像コンテンツも特定されることがわかる。従って、動画像コンテンツを検索するときには、クラスを特定し、特定したクラスに属する第1階層要約データとの比較をすることで、検索処理負荷を低減し、検索速度を向上させることが可能になることがわかる。また、図9で示されるような、クラスの分布をそのまま用いて、データマイニングすることも可能となり、例えば、毎日同一の番組を動画像コンテンツとして蓄積するような場合、月間の利用が多かったシーンを統計的に分析することも可能である。
[検索抽出処理]
次に、図10のフローチャートを参照して、検索抽出処理について説明する。
ステップS141において、画像取得部21は、検索しようとする動画像コンテンツのサンプルデータを構成する動画像コンテンツを取得し、バッファ22に格納する。
ステップS142において、検索抽出部25は、バッファ22に格納されているサンプルデータの動画像より代表画像となるフレームの画像を抽出する。そして、検索抽出部25は、アクティビティ計算部151を制御して、検索しようとする動画像コンテンツの代表画像となるフレームにおけるアクティビティ画像を計算させる。
ステップS143において、検索抽出部25は、画像スライド部152を制御して、求められたアクティビティ画像のうち、アクティビティが最も高い画素の位置を、代表画像となるフレームの画像における中心位置に移動させる。
ステップS144において、第1階層要約データ検索部153は、画像分割部171を制御して、中心位置がスライドされた代表画像となるフレームを、N個の分割領域P(n)に分割する。
ステップS145において、第1階層要約データ検索部153は、分割領域P(n)をカウントするためのカウンタnを1に初期化する。
ステップS146において、第1階層要約データ検索部153は、RGB画素値平均値計算部172を制御して、分割領域P(n)のRGBの各画素について、画素値の平均値をそれぞれ求める。
ステップS147において、第1階層要約データ検索部153は、カウンタnが所定の分割数Nであるか否かを判定する。ステップS147において、カウンタnが所定の分割数Nではない場合、ステップS148において、第1階層要約データ検索部153は、カウンタnを1インクリメントして、処理は、ステップS146に戻る。すなわち、全ての分割領域P(n)のRGBの各画素について、画素値の平均値がそれぞれ求められる。
そして、ステップS147において、カウンタnが分割数Nに達した場合、処理は、ステップS149に進む。
ステップS149において、第1階層要約データ検索部153は、分割領域P(1)乃至P(N)のそれぞれのRGBの平均値を要素とするベクトルからなり、100バイト程度のデータ量の、検索しようとする動画像コンテンツのサンプルデータの代表画像の第1階層要約データC1tを記憶し、処理は、ステップS150に進む。
ステップS150において、クラス検索部155は、第1階層要約データDB101に登録されている第1階層要約データのうち、クラスに分類されているものを抽出する。さらに、クラス検索部155は、重心計算部191を制御して、同一クラスに分類されている第1階層要約データからなるベクトルの重心ベクトルを計算させる。
ステップS151において、クラス検索部155は、クラスを識別するカウンタmを1に初期化する。
ステップS152において、クラス検索部155は、比較部192を制御して、代表画像のフレームの第1階層要約データC1tのベクトルと、クラスmの重心ベクトルとを比較し、一致(または類似)するか否かを判定する。このとき、例えば、3ビットで0乃至7の数値を用いて表現した(3,4,0,4)および(2,4,1,4)は、例えば、2ビットで0乃至3の数値を用いて表現した(1,2,0,2)および(1,2,0,2)に写像される。このため、このようなビット変換により一致する場合については、一致する、または類似するものと判定するようにしてもよい。また、例えば3ビットで、(3,2,3,0)および(4,2,4,0)の2つのベクトルの場合、そのまま2ビットにすると、(1,1,1,0)および(2,1,2,0)となり、一致しないが、量子化ステップの半分、すなわち1を加算すると、(4,3,4,1)および(5,3,5,1)となる。そこで、これを2ビットにすると(2,1,2,0)および(2,1,2,0)となって、一致させることができる。すなわち、量子化を行う際、予め量子化ステップの半分の値を加算しておき、その後、2ビットに変換することで一致するような場合も、一致する、または類似するものとみなすようにしてもよい。このようにすることで、数値上の比較は完全一致とすることで、極端に検索対象が狭くなることによる、不一致の可能性を低減させることが可能となる。
ステップS152において、第1階層要約データC1tのベクトルと、クラスmの重心ベクトルとが一致する場合、ステップS153において、クラス検索部155は、クラスmを登録する。また、ステップS152において、第1階層要約データC1tのベクトルと、クラスmの重心ベクトルとが一致しない場合、ステップS153の処理は、スキップされる。
ステップS154において、クラス検索部155は、カウンタmがクラス数Mに達したか否かを判定し、クラス数Mに達していない場合、ステップS155において、カウンタmを1インクリメントして、処理は、ステップS152に進む。
そして、全てのクラスmの重心ベクトルとの比較がなされると、ステップS154において、カウンタmがクラス数Mに達したものとみなされ、処理は、ステップS156に進む。
ステップS156において、第1階層要約データ検索部153は、上述したステップS153の処理により登録された、クラスmの集合を処理対象のクラスxとする。尚、クラスxは複数のクラスmとするようにしてもよい。
ステップS157において、第1階層要約データ検索部153は、クラスxに属する第1階層要約データC1(s)を識別するカウンタsを1に初期化する。
ステップS158において、第1階層要約データ検索部153は、比較部173を制御して、代表画像のフレームの第1階層要約データC1tのベクトルと、クラスxに属する第1階層要約データC1(s)のベクトルとが一致するか否かを比較し、一致するか否かを判定する。尚、ベクトル間の一致については、ステップS152における処理で説明したように、ビット数変換や、量子化ステップ幅の半分を加算した上でビット数を変化させるといった処理により一致しても、一致したものとして扱うものとする。
ステップS158において、第1階層要約データC1tのベクトルと、クラスxに属する第1階層要約データC1(s)のベクトルとが一致する場合、ステップS159において、第1階層要約データ検索部153は、クラスxに属する第1階層要約データC1(s)のベクトルを登録する。また、ステップS158において、第1階層要約データC1tのベクトルと、クラスxに属する第1階層要約データC1(s)のベクトルとが一致しない場合、ステップS159の処理は、スキップされる。
ステップS160において、第1階層要約データ検索部153は、カウンタsがクラスxに属する第1階層要約データC1(s)の総数Sに達したか否かを判定し、総数Sに達していない場合、ステップS161において、カウンタsを1インクリメントして、処理は、ステップS158に戻る。
そして、全てのクラスxに属する第1階層要約データC1(s)のベクトルとの比較がなされると、ステップS160において、カウンタsが総数Sに達したものとみなされ、処理は、ステップS162に進む。
ステップS162において、クラスxに属する第1階層要約データC1(s)のベクトルのうち、検索しようとする動画像コンテンツのサンプルデータより抽出された第1階層要約データC1tのベクトルと一致した第1階層要約データC1の動画像コンテンツに対応するコンテンツデータペア102を読み出す。
ステップS163において、第2階層要約データ検索抽出部154は、画像分割部181、および、RGB画素値平均値計算部182を、第2階層要約データ生成部44が画像分割部71、およびRGB画素値平均値計算部72を制御するのと同様に制御して、第2階層要約データ生成処理を実行して、検索しようとする動画像コンテンツのサンプルデータの第2階層要約データファイル112を生成する。尚、第2階層要約データ生成処理については、図6のフローチャートを参照して説明した処理と同様であるので、その説明は省略する。
ステップS164において、第2階層要約データ検索抽出部154は、スライドマッチング検索部183を制御して、検索しようとする動画像コンテンツのサンプルデータの第2階層要約データファイル112と、ステップS162の処理により読み出されたコンテンツデータペア102に含まれる第2階層要約データファイル112とをスライドさせながら、フレーム間の第2階層要約データ間の差分絶対値和からなる類似度を求める。
そして、ステップS165において、第2階層要約データ検索抽出部154は、類似度に基づいて、検索しようとする動画像コンテンツと、動画像コンテンツにおけるサンプルデータの再生位置を特定する。より詳細には、第2階層要約データ検索抽出部154は、ずらしたフレーム数に対応して得られる類似度のうち、最小となるものが、所定の閾値よりも小さい場合、サンプルデータの動画像コンテンツと、ステップS162において読み出されたコンテンツデータペア102の動画像コンテンツとが一致するものとみなし、検索しようとする動画像コンテンツとして特定する。このとき、類似度が最小となるスライド位置が、検索しようとする動画像コンテンツにおける、サンプルデータの再生位置であることも特定されることになる。
すなわち、スライドマッチング検索部183は、図11の最上段で示されるサンプルデータの第2階層要約データファイル112Aと、2段目に示されるステップS162の処理で読み出された第2階層要約データファイル112Bとの対応する第2階層要約データ間の差分絶対値和を類似度として求める。尚、図11においては、サンプルデータの第2階層要約データファイル112Aは、フレームF201乃至F203より構成され、それぞれの第2階層要約データは、1次元のベクトルとして表現されており、フレーム順に10,11,7と表記されている。また、第2階層要約データファイル112Bは、フレームF111乃至F115より構成され、それぞれ第2階層要約データは、1次元のベクトルとして表現されており、フレーム順に8,10,11,7,6と表記されている。
最初の処理では、最上段の第2階層要約データファイル112Aと中段の第2階層要約データファイル112Bとが対応するフレーム順にその差分絶対値和が類似度として求められる。この場合、類似度は、7(=|10−8|+|11−10|+|7−11|)として求められる。次の処理では、第2階層要約データファイル112Aが、図11の下段で示されるように、図中右方向に1フレーム分スライドされることにより、類似度は、0(=|10−10|+|11−11|+|7−7|)となる。すなわち、この場合、第2階層要約データファイル112Bの動画像コンテンツが、第2階層要約データファイル112Aが求められた動画像より検索しようとしていた動画像コンテンツであることが特定される。また、この際、検索しようとした動画像コンテンツと一致するタイミングが、第2階層要約データファイル112BにおけるフレームF112乃至F113であることが特定されるため、一致する動画像の再生位置を特定することができる。尚、図11の例においては、類似度が0となる場合に第2階層要約データファイルが一致したものとしているが、所定の閾値よりも小さい値となれば、一致するものと特定するようにしてもよい。
例えば、図12で示されるように、異なる動画像コンテンツによるフレーム毎の第2階層要約データの値の変化が類似している、または一致しているもの同士は同一の動画像コンテンツであるものとみなすことができる。
尚、図12においては、slot0乃至9は動画像コンテンツを識別する識別子であり、横軸がフレーム番号を、縦軸が各フレームにおける1次元のベクトル要素からなる第2階層要約データの変化を示している。また、slot0乃至9は、スライドマッチングにより類似度が最小(最も類似している状態)となるようにフレームのスライド位置の調整が済んだ波形である。
すなわち、図12においては、例えば、slot1で示される波形が、サンプルデータの動画像コンテンツより求められた第2階層要約データファイルのものであるとすれば、slot2,3の動画像コンテンツの第2階層要約データファイルの波形と、十分に類似しているということが言える。この結果、slot1の動画像コンテンツは、slot2,3の動画像コンテンツと一致しているとみなすことができ、検索しようとしていた動画像コンテンツが、slot2,3の波形で示されるものであったということができる。
ステップS166において、検索結果表示画像生成部156は、類似度が所定の値より低い第2階層要約データファイル112と同一のコンテンツデータペア102の動画像コンテンツファイル111を読み出し、再生位置と共に検索結果として表示部27に表示する。
以上の処理により、サンプルデータの動画像コンテンツを入力するだけで、容易で、かつ、迅速に目的とする記憶部24に登録された動画像コンテンツを検索することが可能となる。
また、第1階層要約データ、および第2階層要約データといった階層化された要約データを用いることにより、上位階層の時系列の情報を持たない特徴量である第1階層要約データによる絞込みを行った後に、下位階層となる時系列の情報を持った第2階層要約データファイルによる検索を行うようにしたので、検索負荷を低減し、検索速度の高速化を実現することが可能となる。
さらに、第1階層要約データは、データベースとして管理することにより、検索を容易で高速なものとすることが可能となる。また、第1階層要約データは、クラスタリング処理されてクラス単位で管理されているため、クラス毎の重心ベクトルを利用することにより、第1階層要約データを絞り込むことができ、絞り込んだ第1階層要約データのみを詳細に比較するだけでよくなるので、第1階層要約データのみの検索処理を高速に実現することが可能となる
[圧縮処理]
以上においてはサンプルデータである1部の動画像コンテンツを入力するだけで、容易で、かつ、迅速に目的とする動画像コンテンツを検索される例について説明してきたが、同一のシーンを含んだ、個別に異なる動画像コンテンツが大量に検索されてしまう場合がある。この場合、重複するシーンを含む動画像コンテンツが大量に記憶部24に蓄積されていることとなる。そこで、重複しているシーンについては削除した上で、必要なシーンだけ繋ぎ合わせて必要最小限の動画像コンテンツファイルとすることで、動画像コンテンツファイルを圧縮し、記憶部24の記憶容量を節約するようにしてもよい。
ここで、図13を参照して、上述した圧縮処理について説明する。
ステップS181において、検索抽出部25は、検索抽出処理を実行して、サンプルデータとなる1部の動画像コンテンツに基づいて、同一、または類似する動画像コンテンツを検索して、再生位置と共に特定する。尚、検索抽出処理については、図10のフローチャートを参照して、説明した処理と同様であるので、その説明は省略するものとする。
ステップS182において、コンテンツファイル圧縮部26は、同一部分検索部211を制御して、検索された複数の動画像コンテンツファイルより、同一部分を検索させる。すなわち、図11を参照して説明したようにフレーム単位でスライドマッチングにより第2階層要約データファイル112が比較されることにより、サンプルデータの動画像コンテンツのどのフレームと、同一、または類似していると見なされた動画像コンテンツのどのフレームとが一致するかについては検索されることになる。
この結果、複数の動画像コンテンツが検索された場合、サンプルの動画像コンテンツの一致部分を揃える事で、検索結果となる複数の動画像コンテンツ間のフレーム間の対応は認識することができる。そこで、同一部分検索部211は、動画像コンテンツファイルの一致するフレームを揃えて比較し、同一部分を検索する。例えば、図14の上段で示される動画像コンテンツファイルCont1の第2階層要約データファイル112と、図14の2段目で示される動画像コンテンツファイルCont2の第2階層要約データファイル112とは、いずれもフレームF1の位置で揃えられている。尚、図14においては、帯状で示される範囲のうち、動画像コンテンツCont1の第2階層要約データファイル112が、右上がりの斜線部で示されたフレームFs1乃至Fe1の範囲であり、動画像コンテンツCont2の第2階層要約データファイル112が、左上がりの斜線部で示されたフレームFs2乃至Fe2の範囲である。したがって、同一部分検索部211は、動画コンテンツCont1(または2)におけるフレームFs1乃至フレームFe2の範囲が同一部分であることを検索する。
ステップS183において、コンテンツファイル圧縮部26は、不一致部分検索部212を制御して、検索された複数の動画像コンテンツファイルの第2階層要約データファイル112より、不一致部分を検索させる。すなわち、図14の場合、動画像コンテンツCont2におけるフレームFs2乃至フレームFs1の範囲、および動画像コンテンツCont1におけるフレームFe2乃至コンテンツフレームFe1の範囲が不一致部分となる。
ステップS184において、コンテンツファイル圧縮部26は、編集部213を制御して、同一部分、および不一致部分を編集させて繋ぎ合せる。すなわち、編集部213は、第2階層要約データファイル112に対応する動画コンテンツCont1(または2)の動画像コンテンツファイル111におけるフレームFs1乃至フレームFe2、並びに、動画像コンテンツCont2の動画像コンテンツファイル111におけるフレームFs2乃至フレームFs1の範囲、および動画像コンテンツCont1の動画像コンテンツファイル111におけるフレームFe2乃至コンテンツフレームFe1の範囲を繋ぎ合せる。この場合、動画像コンテンツCont2を基準にすると、図14の3段目で示されるように、動画像コンテンツCont1におけるフレームFe2乃至コンテンツフレームFe1の範囲を編集により繋ぎ合せるのみでよいので、格子状の範囲で示されるように繋ぎ合わせて、図14の3段目で示されるような新たな動画像コンテンツを生成する。尚、図14で示される各帯は、第2階層要約データファイル112の構成であり、編集部213は、第2階層要約データファイル112の構成に基づいて、動画像コンテンツファイル111を編集する。
ステップS185において、更新部214は、新たに生成した動画像コンテンツに対応するように、第1階層要約データDB101、並びに、動画像コンテンツファイル111、および第2階層要約データファイル112からなるコンテンツデータペア102を更新する。この際、更新部214は、不要となった動画像コンテンツCont1,2のコンテンツデータペア102は削除する。
以上の処理により動画像コンテンツファイルを実質的に圧縮することが可能となり、動画像コンテンツにかかる記憶部24の記憶容量を節約することが可能となる。また、このような圧縮処理により、検索対象となる動画像コンテンツそのものが減少することになるので、管理にかかるを負担を低減させると共に、サンプルデータによる動画像コンテンツの検索の負荷を低減し、検索速度を向上させることが可能となる。
尚、以上においては、第1階層要約データおよび第2階層要約データとして、画像を複数領域に分割し、分割領域毎のRGBの画素値の平均値を用いる例について説明してきたが、フレーム単位の特徴量を生成できればよいのでこれ限るものではない。例えば、分割領域毎のRGBの画素値の平均値に代えて、分割領域毎の輝度値の平均値、分割領域毎のアクティビティの値の平均値とするようにしてもよい。また、分割領域毎の輝度ヒストグラムを、データ化したものなどでもよく、例えば、輝度方向の分解能を3乃至5ビット程度としたものとし、例えば、4ビットの場合、16次元のベクトルとするようにしてもよい。また、輝度値ではなくRGBの画素値を用いたものでもよいし、RGBで表現される色立体を、各軸を、例えば、2乃至4ビットの分解能で分割し、それぞれに対して頻度を付したものとしてもよく、3ビットとして、83=512次元のベクトルとするようにしてもよい。さらに、画像のみならず、音声の情報に基づいてフレーム単位で第1階層要約データおよび第2階層要約データを生成するようにしてもよく、例えば、音声ボリューム、または所定の音声周波数帯域毎の振幅の平均値や、これらを画像の情報と組み合わせたものとしても良い。
また、画像に対して、色クラスタリング(RGBの3次元で表現される色の分布に対し、ベクトル量子化を試みる一般的な画像処理手法)を行い、最も頻繁に用いられている色を代表色として、そのRGBの値を3次元ベクトルで表現したものとしてもよい。
さらに、画像を分割する際、画面下部、上部などにテロップが頻繁に表示される画像の場合、テロップが頻繁に登場する領域は、より大雑把に分割するといった工夫をすることによりテロップによる影響を緩和するようにしても良い。
また、以上においては、第1階層要約データについては、30フレーム毎、またはシーンチェンジのタイミングにおけるフレームにおいて、求められるものとしてきたが、その他の周期的に求められるものとしたり、または、動画像コンテンツに変化がおきる非周期的なものであってもよい。従って、周期的なものとしては、例えば、その他のフレーム数間隔おきのフレームから第1階層要約データを求めるようにしてもよいし、非周期的なものとしては、音声の無音部分が終了するタイミングのフレームから第1階層要約データを求めるようにしてもよい。さらに、第2階層要約データについては、毎フレーム求める例について説明してきたが、第1階層要約データよりも頻度が低いフレーム数で求められれば良いものであるので、第1階層要約データよりも頻度が低いという条件を満たす限り、第1階層要約データのように、数フレーム間隔といった周期的なものでもよいし、シーンチェンジなどの所定の条件を満たすような非周期的なものであってもよい。
また、以上においては、第1階層要約データ、および第2階層要約データの抽出に当たっては、事前にアクティビティ画像を求めてアクティビティの高い位置を中心位置とするようにして、画像を正規化するようにする例について説明してきたが、例えば、画像の自己相関関数が所定量(例えば0.9倍)だけ変化する距離で正規化を行うことにより、スケーリングの自由度を許容して同一画像を検出することができるようにしてもよい。
さらに、ベクトルの比較により一致するか否かを判定する処理において、距離が所定の値以下におさまることを条件にするが、この所定の値を用途に応じて変化させてもよい。例えば、完全に一致する動画像コンテンツを検索したい場合、所定値を小さくするようにしてもよい。また、同じ画像でもテロップやカラーコレクションの有無などを許容し一致判定を行いたい場合には、所定値を大きくするようにしてもよい。
また、以上の検出抽出処理においては、第1階層要約データからなるベクトルを比較する際、ベクトルが一致するか否かに基づいて判定する例について説明してきたが、クラスタリング処理や初期クラスタリング処理において用いたように、ベクトル間の距離を求めて、所定の距離より小さく十分に相互が類似しているか否かに基づいて判定するようにしてもよい。逆に、クラスタリング処理や初期クラスタリング処理におけるベクトル間の距離を求めて所定の距離よりも小さく十分に類似しているか否かを判定する処理に代えて、検出抽出処理で用いたベクトルが一致するか否かに基づいて判定するようにしてもよい。
さらに、以上においては、第1階層要約データ、および第2階層要約データの2階層構造の要約データを用いる例について説明してきたが、さらに、多階層の要約データを構成するようにしても良く、さらに、各階層にクラスタリング処理を施し、クラス分類するようにしてもよい。
以上の如く、本発明によれば、膨大な量の動画像コンテンツを容易に管理することが可能になると共に、管理している膨大な量の動画像コンテンツの中から検索したい動画像コンテンツを容易に検索することが可能となる。
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図15は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタ-フェイス1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
入出力インタ-フェイス1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。