(57)【特許請求の範囲】
【請求項１】
記憶手段から映像データを読み出して、前記映像データの先頭画像フレームから所定の間引き画像フレーム間隔の任意の整数倍目に位置する複数の画像フレームを求める第１の手段と、
前記位置する各画像フレームから前記間引き画像フレーム間隔で時間的に並列に映像データでのイベント情報の検出処理をそれぞれ開始する第２の手段と、
を有することを特徴とする並列映像解析装置。
【請求項２】
前記第１の手段は、
前記映像データを分割して当該分割される位置に存在する分割フレームの番号を求め、当該分割フレームの番号を床関数で補正することにより、前記整数倍目に位置する画像フレームを求めることを特徴とする請求項１に記載の並列映像解析装置。
【請求項３】
並列映像解析装置で行う並列映像解析方法において、
記憶手段から映像データを読み出して、前記映像データの先頭画像フレームから所定の間引き画像フレーム間隔の任意の整数倍目に位置する複数の画像フレームを求める第１のステップと、
前記位置する各画像フレームから前記間引き画像フレーム間隔で時間的に並列に映像データでのイベント情報の検出処理をそれぞれ開始する第２のステップと、
を有することを特徴とする並列映像解析方法。
【請求項４】
前記第１のステップでは、
前記映像データを分割して当該分割される位置に存在する分割フレームの番号を求め、当該分割フレームの番号を床関数で補正することにより、前記整数倍目に位置する画像フレームを求めることを特徴とする請求項３に記載の並列映像解析方法。
【請求項５】
請求項３又は４に記載の並列映像解析方法をコンピュータに実行させることを特徴とする並列映像解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像データを並列に解析する技術に関する。
【背景技術】
【０００２】
映像中の画像フレームが持つ画像データや音響データという物理的特性を利用して、映像中のカットシーンやカメラワーク、テロップや音楽などの様々なイベントを検出する映像解析技術が存在する。
【０００３】
この映像解析技術は、時間的に前後関係のある２枚以上の画像フレームを用いて、その画像フレーム間の物理的特徴の違いを見つけ出し、その違いをイベントとして検出する技術である。例えば、時系列に連続する画像フレーム間の画素の濃淡値の相違やその程度に基づいてテロップ表示を検出する。
【０００４】
このような映像解析技術は、映像の最初から最後まで逐次的に画像フレームを比較等するため、映像を構成している画像フレーム数に比例した映像解析時間が必要とされる。この時間の短縮は、映像解析技術分野で大きな課題となっている。
【０００５】
このような課題に対し、映像の全画像フレームを用いるのではなく、解析対象の画像フレームを間引いて数画像フレームおきに映像解析する方法がある。これにより、解析対象の画像フレーム数が少なくなるため、映像解析時間を短縮することができる。
【０００６】
また、特許文献１によれば、解析対象の映像を複数の部分映像に分割し、その部分映像を並列に映像解析してその結果を１つに統合する方法が記載されている。これにより、１つの処理ワーカによって映像解析される画像フレーム数が分割された部分映像内のフレーム数に削減されるため、映像解析時間を短縮することができる。
【０００７】
そして、それら２つの方法を採用することにより、映像解析に要する映像解析時間を更に短縮することが可能となる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−６９９４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、それら２つの方法を同時に実行すると、１つの処理ワーカで映像の先頭から最後まで逐次的に映像解析した場合と比べて、イベントの検出結果が異なる可能性が高い。
【００１０】
分割された部分映像から映像解析を開始する場合、例えば図１０に示すように、その部分映像の先頭までシークし、そのシーク位置の画像フレームから同じ間引き間隔毎に画像フレームをスキップしながら解析を進めることになる。
【００１１】
そのため、シーク位置によっては、「１つの処理ワーカで映像の先頭から最後まで逐次的に映像解析した」際の画像フレーム（図１０の●）と異なる画像フレーム（図１０の○）を用いて映像解析を行うことになるため、同じイベント検出結果を得ることができない。
【００１２】
本発明は、上記課題を鑑みてなされたものであり、その課題とするところは、映像の先頭から逐次に映像解析した場合と同じイベント検出結果を得ることにある。
【課題を解決するための手段】
【００１３】
請求項１記載の並列映像解析装置は、記憶手段から映像データを読み出して、前記映像データの先頭画像フレームから所定の間引き画像フレーム間隔の任意の整数倍目に位置する複数の画像フレームを求める第１の手段と、前記位置する各画像フレームから前記間引き画像フレーム間隔で時間的に並列に映像データでのイベント情報の検出処理をそれぞれ開始する第２の手段と、を有することを特徴とする。
請求項２記載の並列映像解析装置は、請求項１記載の並列映像解析装置において、前記第１の手段は、前記映像データを分割して当該分割される位置に存在する分割フレームの番号を求め、当該分割フレームの番号を床関数で補正することにより、前記整数倍目に位置する画像フレームを求めることを特徴とする。
【００１４】
請求項３記載の並列映像解析方法は、並列映像解析装置で行う並列映像解析方法において、記憶手段から映像データを読み出して、前記映像データの先頭画像フレームから所定の間引き画像フレーム間隔の任意の整数倍目に位置する複数の画像フレームを求める第１のステップと、前記位置する各画像フレームから前記間引き画像フレーム間隔で時間的に並列に映像データでのイベント情報の検出処理をそれぞれ開始する第２のステップと、を有することを特徴とする。
請求項４記載の並列映像解析方法は、請求項３記載の並列映像解析方法において、前記第１のステップでは、前記映像データを分割して当該分割される位置に存在する分割フレームの番号を求め、当該分割フレームの番号を床関数で補正することにより、前記整数倍目に位置する画像フレームを求めることを特徴とする。
【００１５】
請求項５記載の並列映像解析プログラムは、請求項３又は４記載の並列映像解析方法をコンピュータに実行させることを特徴とする。
【００１６】
以上より、本発明によれば、映像データの先頭画像フレームから所定の間引き画像フレーム間隔の任意の整数倍目に位置する複数の画像フレームを求め、その位置する各画像フレームから当該間引き画像フレーム間隔で時間的に並列に映像データでのイベント情報の検出処理をそれぞれ開始するため、映像データの先頭から逐次に映像解析した場合と同じイベント検出結果を得ることができる。
【発明の効果】
【００１７】
本発明によれば、映像の先頭から逐次映像解析した場合と同じイベント検出結果を得ることができる。
【図面の簡単な説明】
【００１８】
【図１】並列映像解析装置の機能ブロック構成を示す図である。
【図２】解析タスクの生成処理を示すフローチャートである。
【図３】映像解析開始点の補正を説明する図である。
【図４】映像解析開始点の補正の具体例を説明する図である。
【図５】解析タスクデータ例を説明する図である。
【図６】各処理ワーカで行う映像解析処理を示すフローチャートである。
【図７】処理ワーカへの解析タスク割当例を示す図である。
【図８】並列映像解析装置の構築例を示す図である。
【図９】解析タスクの他の生成例を示す図である。
【図１０】従来の映像解析結方法を説明する図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施する一実施の形態について図面を用いて説明する。但し、本発明は多くの異なる様態で実施することが可能であり、本実施の形態の記載内容に限定して解釈すべきではない。
【００２０】
図１は、本実施の形態に係る並列映像解析装置の機能ブロック構成を示す図である。この並列映像解析装置１は、当該並列映像解析装置１に映像データを入力可能なデータ入力装置２に通信可能に接続され、映像記憶部１１と、解析タスク生成部１２と、解析タスク管理部１３と、映像解析部１４と、解析結果統合部１５と、解析結果記憶部１６と、データ出力部１７とで主に構成される。
【００２１】
この並列映像解析装置１は、メモリなどの記憶手段やＣＰＵなどの制御手段を備えたパソコンなどの情報処理装置により実現可能であり、プログラムによって実行される。以下、各機能部について詳述する。
【００２２】
映像記憶部１１は、データ入力装置２によって入力された映像データをメモリやハードディスクなどに保持し、記憶する。映像データは、時系列な複数の画像フレームの集合体で構成され、一意のフレーム番号が昇順に連続して付与されている。
【００２３】
この映像データは、ＨＴＴＰ（Hypertext Transfer Protocol）やＳＭＢ（Server Message Block）などの通信プロトコルで送信され、ファイル形式でコピー・記憶される。ビデオキャプチャボード等を利用して、映像信号として入力し、ファイル形式で保持してもよい。
【００２４】
解析タスク生成部１２は、映像記憶部１１から映像データを取得して、その映像データの映像長Ｌと映像解析時の間引き画像フレーム間隔Ｓから、映像解析部１４の各処理ワーカＷｉ（ｉ＝０，１，２，…，Ｗ−１、Ｗ＝処理ワーカ数）で映像解析を開始する画像フレームの番号（以下、映像解析開始画像フレーム番号）ｓｉと、映像解析を終了する画像フレームの番号（以下、映像解析終了画像フレーム番号）ｅｉとを計算して、解析タスクＴｉを生成する。
【００２５】
ここで、その番号ｓｉの画像フレームとしては、映像解析部１４での並列映像解析時に、映像データの先頭画像フレームから逐次に映像解析した場合と同じイベント検出結果を取得できるように、映像データの先頭画像フレームから所定の間引き画像フレーム間隔Ｓの任意の整数倍目に位置する複数の画像フレームが検出される。以下詳述する。
【００２６】
図２は、解析タスクの生成処理を示すフローチャートである。
【００２７】
最初に、映像記憶部１１から映像解析対象の映像データのファイルを読み出して（ステップＳ１０１）、そのファイルから当該映像データの映像長Ｌを取得する（ステップＳ１０２）。映像データの映像長Ｌとは、例えば、映像データを構成している画像フレームの総数である。
【００２８】
次に、１つ目の処理ワーカＷ０に割り当てられる解析タスクＴ０を生成するためｉを０に設定し（ステップＳ１０３）、「処理ワーカＷｉの添え字ｉ≧処理ワーカ数Ｗ」が成立するか否かを判定する（ステップＳ１０４）。
【００２９】
次に、ステップＳ１０４で判定不成立の場合、式（１）を用いて、映像データをＷ個の処理ワーカ数分の部分映像データに分割する際の分割点、すなわち、その分割される位置に存在する分割画像フレームの番号（以下、分割画像フレーム番号）ｄｉを計算する（ステップＳ１０５）。
【００３０】
ｄｉ＝ｉ・（Ｌ／Ｗ）      （１）
次に、分割画像フレーム番号ｄｉが映像データの先頭画像フレームから間引き画像フレーム間隔Ｓの整数倍になるように、式（２）の床関数ｆｌｏｏｒを用いて、ステップＳ１０５で計算された分割画像フレーム番号ｄｉを補正する（ステップＳ１０６）。
【００３１】
ｄｉ’＝ｆｌｏｏｒ（ｄｉ／Ｓ）・Ｓ      （２）
このとき、式（３）を用いて、補正後の分割画像フレーム番号ｄｉ’を映像解析開始画像フレーム番号ｓｉとすると共に、式（４）を用いて、映像解析終了画像フレーム番号ｅｉを計算する。
【００３２】
ｓｉ＝ｄｉ’      （３）
ｅｉ＝ｓｉ＋１      （４）
次に、ステップＳ１０６で計算された映像解析開始画像フレーム番号ｓｉと映像解析終了画像フレーム番号ｅｉを解析タスクＴｉに関連付けて解析タスク管理部１３に記憶する（ステップＳ１０７）。
【００３３】
その後、ｉをインクリメントした後に（ステップＳ１０８）、ステップＳ１０４に戻り、ステップＳ１０４の判定が成立するまでステップＳ１０５〜ステップＳ１０８を繰り返す。そして、ステップＳ１０４で判定成立の場合、解析タスクの生成処理を終了する。
【００３４】
以上より、分割画像フレーム番号ｄｉは、例えば、図３に示すように補正され、補正後の番号ｄｉが映像解析開始画像フレーム番号ｓｉとされる。具体的には、例えば、Ｌ＝７０００、Ｗ＝６、Ｓ＝１００の場合、図４に示すように補正され、図５に示すような解析タスクが生成される。
【００３５】
解析タスク管理部１３は、解析タスク生成部１２によって生成された解析タスクＴｉをその解析タスクの生成対象であった映像データに関連付けて解析タスクデータとして記憶する。
【００３６】
映像解析部１４は、複数の処理ワーカＷｉ（映像解析処理実行部）を備え、各処理ワーカＷｉは、映像記憶部１１から映像解析対象の映像データを読み出すと共に、その映像データに関連する解析タスクデータを解析タスク管理部１３から読み出して、その解析タスクデータでｉが同一である解析タスクＴｉを自己に割り当てられている解析タスクとして映像解析処理を時間的に並列に実行する。
【００３７】
図６は、各処理ワーカで行う映像解析処理を示すフローチャートである。各処理ワーカＷｉは、割り当てられた映像解析開始画像フレーム番号ｓｉの画像フレームまでシークし、間引き画像フレーム間隔Ｓ毎に時間的に並列にイベント情報の検出処理をそれぞれ開始する。以下、詳述する。
【００３８】
最初に、処理ワーカＷｉは、ｉを同一とする映像解析開始画像フレーム番号ｓｉと映像解析終了画像フレーム番号ｅｉを解析タスクデータから取得して（ステップＳ２０１）、間引き画像フレーム間隔Ｓの係数ｎを０に設定する（ステップＳ２０２）。
【００３９】
次に、その映像解析開始画像フレーム番号ｓｉの画像フレームを現在の画像フレームとし、その現在の画像フレームのデータを映像データから取得して（ステップＳ２０３）、その現在の画像フレームの番号（以下、現在の画像フレーム番号）ｃを取得する（ステップＳ２０４）。
【００４０】
次に、「現在の画像フレーム番号ｃ≧映像解析開始画像フレーム番号ｓｉ＋ｎ×間引き画像フレーム間隔Ｓ」が成立するか否かを判定し（ステップＳ２０５）する。
【００４１】
次に、ステップＳ２０５で判定成立の場合、現在の画像フレームは、事前設定された間引き画像フレーム間隔Ｓに位置する画像フレームであることから、ステップＳ２０３で取得した画像フレームのデータを用いてイベント検出処理を実行し（ステップＳ２０６）、ｎをインクリメントする（ステップＳ２０７）。
【００４２】
なお、イベント検出処理は、時間的に前後関係のある２枚以上の画像フレームを用いて実行されるが、現在の画像フレームからみてどの位置にある何枚の画像フレームを用いて実行するかについては予め設定されている。
【００４３】
一方、ステップＳ２０５で判定不成立の場合、現在の画像フレームは、事前設定された間引き画像フレーム間隔Ｓに位置する画像フレームでないことから、ステップＳ２０６とステップＳ２０７を実行することなく、ステップＳ２０８に進む。
【００４４】
最後に、ステップＳ２０１で取得した範囲内でのイベント検出処理が終了したか否かを判定する（ステップＳ２０８）。例えば、現在の画像フレーム番号ｃが映像解析終了画像フレーム番号ｅｉに到達したとき（ｃ≧ｅｉ）を終了条件として判定に利用できる。
【００４５】
ステップＳ２０８の判定で処理終了していない場合には、ステップＳ２０３に戻って次の番号の画像フレームを現在の画像フレームとしてステップＳ２０３〜ステップＳ２０８を繰り返す。一方、処理終了している場合には、映像解析処理を終了し、解析結果統合部１５に送信する。
【００４６】
なお、各処理ワーカは、他の処理ワーカとの間で自身の実行状態などを通信することはなく、映像解析処理を個別に独立して実行可能であることから、図６に示す映像データの映像解析処理は時間的に並列に実行できる。
【００４７】
また、ステップＳ２０６で行うイベント検出処理の具体的手法については、イベント情報を検出可能であればどのような検出手法も採用でき、本実施の形態においてその手法は何ら制限されない。イベント情報の種類の検出についても同様である。
【００４８】
図７に、図５に示した解析タスクデータに基づいて解析タスクＴｉを処理ワーカＷｉに割り当てた例を示す。この例の場合、６つの処理ワーカＷ０〜５が１つの映像ファイルを共有し、各処理ワーカＷ０〜５は、自己にそれぞれ割り当てられた解析タスクＴ０〜５での映像解析開始画像フレーム番号ｓｉの画像フレームから解析処理をそれぞれ開始する。
【００４９】
解析結果統合部１５は、映像解析部１４の各処理ワーカＷｉによって解析された各解析タスクＴｉでの解析結果を統合し、最終的な解析結果を解析結果記憶部１６に記録する。
【００５０】
記録する情報は、カットやカメラワーク、テロップなどのイベント検出の種類を表す「検出イベント」と、その検出イベントの「検出開始点（例えば、検出開始時刻や検出開始フレーム番号）」と「検出終了点（例えば、検出終了時刻や検出終了フレーム番号）」などである。
【００５１】
データ出力部１７は、解析結果記憶部１６から映像データの解析結果を読み出して外部に出力する。
【００５２】
ユーザは、この最終的な解析結果をデータ出力部１７で読み出して、映像解析結果として利用できる。例えば、コンピュータのディスプレイに表示することや、テキストファイルなど他の装置で利用可能な形式で読み出して、他の装置が更なる処理を加えることも可能である。
【００５３】
最後に、以上説明した並列映像解析装置の具体的構築例について説明する。図８は、並列映像解析装置の構築例を示す図である。同図（ａ）に示すように、マルチコアＣＰＵの１つのコアを１つの処理ワーカとしてもよいし、同図（ｂ）に示すように、１つのサーバマシンを１つの処理ワーカとしてもよい。
【００５４】
本実施の形態では、解析タスク管理部が各処理ワーカに解析タスクを割り当てて、処理ワーカが割り当てられた解析タスクを独立して解析処理する。このため、独立して処理ワーカを動作させることが可能な環境であれば、処理ワーカの設定方法は問わない。
【００５５】
但し、前述したように、各処理ワーカは映像データを共有して映像解析処理を進めるため、映像データの転送については考慮する必要がある。そのため、図８（ｂ）の場合には、解析サーバ間の通信ネットワーク状態を含めて解析タスクを管理する必要がある。
【００５６】
図８に示す構築例以外にも、マルチコアＣＰＵを持つ複数のサーバマシンにより、本実施の形態による映像解析の並列処理を実行するようにしてもよい。
【００５７】
また、並列映像解析装置に複数の映像データが入力された場合には、入力された映像データをキューで管理することにより、対応可能である。
【００５８】
すなわち、図９（ａ）に示すように、解析タスク管理部は、生成する解析タスクに、映像データを識別するビデオＩＤと、タスクの実行状態の有無を示すタスク状態とを加えて管理する。映像解析処理実行時には、同図（ｂ）に示すように、タスク状態が未実行の解析タスクのうち、ビデオＩＤが同じ解析タスクを上から順（例えば、タスクＩＤや解析開始フレームが小さい順）に割り当てていく。
【００５９】
以上より、本実施の形態によれば、解析タスク生成部１２が、映像データの先頭画像フレームから所定の間引き画像フレーム間隔の任意の整数倍目に位置する複数の画像フレームを求め、映像解析部１４の各処理ワーカが、求められた各画像フレームから当該間引き画像フレーム間隔で時間的に並列に映像データでのイベント情報の検出処理をそれぞれ開始するので、映像データを複数の部分映像データに分割した際に生じるイベントの誤検出を防止でき、常に同じ画像フレームのみを解析対象とすることから、結果として、映像データの先頭から逐次に映像解析した場合と同じイベント検出結果を得ることができる。
【００６０】
また、本実施の形態によれば、時間的に並列かつ間引いて映像解析を実行しているので、映像解析に要する映像解析時間を短縮した状態で、映像データの先頭から逐次に映像解析した場合と同じイベント検出結果を得ることができる。
【符号の説明】
【００６１】
１…並列映像解析装置
１１…映像記憶部
１２…解析タスク生成部
１３…解析タスク管理部
１４…映像解析部
１５…解析結果統合部
１６…解析結果記憶部
１７…データ出力部
Ｓ１０１〜Ｓ１０８、Ｓ２０１〜Ｓ２０８…ステップ
【図１】
0005702269.tif 000002
【図２】
0005702269.tif 000003
【図３】
0005702269.tif 000004
【図４】
0005702269.tif 000005
【図５】
0005702269.tif 000006
【図６】
0005702269.tif 000007
【図７】
0005702269.tif 000008
【図８】
0005702269.tif 000009
【図９】
0005702269.tif 000010
【図１０】
0005702269.tif 000011