以下、本発明を実施するための最良の形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(合成画像作成制御:動画から合成対象画像を選択し、これらを用いて合成画像を作成する例)
2.第2の実施の形態(画像合成対象区間選択制御:合成対象画像を選択するための画像合成対象区間を動画から選択する変形例)
3.第3の実施の形態(合成対象画像選択制御:画像合成対象区間から合成対象画像を選択する変形例)
4.第4の実施の形態(装飾画像決定制御:合成対象画像に付す装飾画像を決定する例)
5.第5の実施の形態(特徴点抽出処理およびオプティカルフロー算出処理:マルチコアプロセッサにより行う例)
<1.第1の実施の形態>
[画像処理装置の構成例]
図1は、本発明の第1の実施の形態における画像処理装置100の機能構成例を示すブロック図である。画像処理装置100は、動画入力部110と、カメラワーク検出部120と、顔検出部130と、表情評価値算出部140と、判別軸情報記憶部141と、記録制御部150と、区間選択部160と、合成対象画像選択部170とを備える。また、画像処理装置100は、ファイル取得部180と、画像変換部190と、動画記憶部200と、メタデータ記憶部210と、画像合成部220と、画像メモリ230とを備える。また、画像処理装置100は、表示制御部240と、表示部250と、操作受付部260と、合成対象画像メタデータ記憶部270とを備える。画像処理装置100は、例えば、デジタルビデオカメラ等の撮像装置で撮像された動画について、映像解析により特徴量を抽出し、この抽出された特徴量を用いて各種画像処理を施すことが可能なパーソナルコンピュータによって実現することができる。
動画入力部110は、デジタルビデオカメラ等の撮像装置(以下では、単に「カメラ」と称する。)により撮像された動画(ビデオデータ)を入力する動画入力部である。そして、入力された動画をカメラワーク検出部120、顔検出部130、表情評価値算出部140および記録制御部150に出力する。
カメラワーク検出部120は、動画入力部110から出力された動画を解析して、撮影時におけるカメラの動き情報(カメラワーク)を検出し、このカメラの動き情報に基づいてカメラワークパラメータを算出するものである。また、カメラワーク検出部120は、カメラワークパラメータを算出する際に、このカメラワークパラメータの確からしさを示す信頼度判定スコアを算出する。そして、算出されたカメラワークパラメータおよび信頼度判定スコアが記録制御部150に出力される。具体的には、カメラワーク検出部120は、動画を構成する各画像から特徴点を抽出するとともに、この特徴点に対するオプティカルフロー(動きベクトル)を算出する。そして、この算出された特徴点に対するオプティカルフローを解析して支配的な動きを見せた特徴点を選択し、この支配的な動きを見せた特徴点に対するオプティカルフローに基づいてカメラの動きを推定する。ここで、支配的な動きとは、複数の特徴点に対するオプティカルフローの中で、比較的多数のオプティカルフローが示す規則的な動きを意味する。また、画像における特徴点のうちで、支配的な動きを見せた特徴点と、これ以外の特徴点との割合に基づいて、信頼度判定スコアが算出される。なお、カメラワーク検出部120の内部構成については、図2を参照して詳細に説明する。なお、カメラワーク検出部120は、特許請求の範囲に記載の算出部の一例である。
顔検出部130は、動画入力部110から出力された動画を構成する画像に含まれる人物の顔を検出するものであり、検出された顔に関する顔検出情報を表情評価値算出部140および記録制御部150に出力する。この顔検出方法として、例えば、顔の輝度分布情報が記録されているテンプレートと実画像とのマッチングによる顔検出方法(例えば、特開2004−133637参照。)、画像に含まれる肌色の部分や人間の顔の特徴量に基づいた顔検出方法を用いることができる。また、顔を含む画像である顔画像について、この顔画像上の2画素間の輝度差を学習し、この学習により得られた特徴量を顔検出基準データとして予め保持しておき、この顔検出基準データを用いて顔検出を行う顔検出方法を用いることができる。この顔検出基準データを用いた顔検出方法については、図8を参照して詳細に説明する。また、顔検出情報には、検出された顔の画像における位置およびサイズが含まれる。ここで、顔検出情報に含まれる顔の位置は、例えば、検出された顔の周囲を囲む矩形の顔検出ウィンドウの位置(例えば、顔検出ウィンドウの左上端の座標。以下、「顔の位置情報」と称する。)である。また、顔検出情報に含まれる顔のサイズは、例えば、その顔検出ウィンドウのサイズ(例えば、顔検出ウィンドウの水平方向および垂直方向の各画素数。以下、「顔のサイズ情報」と称する。)である。なお、顔検出情報には、検出された顔の向きを示すロール(roll)、ピッチ(picth)、ヨー(yaw)を含めるようにしてもよい。
表情評価値算出部140は、判別軸情報記憶部141に記憶されている判別軸情報を用いて、顔検出部130により検出された顔の表情に関する表情評価値を算出するものであり、算出された表情評価値を記録制御部150に出力する。例えば、顔検出部130から出力された顔検出情報(顔の位置およびサイズ)を用いて、顔検出部130により検出された顔の少なくとも一部を含む矩形状の領域である顔画像が、動画入力部110から出力された動画を構成する画像から取り出される。この取り出された顔画像が正規化され、正規化された顔画像について表情評価値が算出される。この算出された表情評価値を用いて、算出対象となった顔の表情が特定の表情であるか否かを判定することができる。なお、本発明の第1の実施の形態では、特定の表情として笑顔を判定する例について説明する。また、表情評価値算出については、図9乃至図12を参照して詳細に説明する。また、表情評価値算出部140は、特許請求の範囲に記載の判定部の一例である。
判別軸情報記憶部141は、表情評価値算出部140による表情評価値の算出に用いられる判別軸情報を記憶するものであり、記憶されている判別軸情報を表情評価値算出部140に供給する。なお、この判別軸情報については、図9等を参照して詳細に説明する。
記録制御部150は、動画記憶部200、メタデータ記憶部210および合成対象画像メタデータ記憶部270に対する記録制御を行うものである。すなわち、記録制御部150は、動画入力部110から出力された動画を動画ファイルとして動画記憶部200に記録する。また、記録制御部150は、カメラワーク検出部120から出力されたアフィン変換パラメータおよび信頼度判定スコアと、顔検出部130から出力された顔検出情報と、表情評価値算出部140から出力された表情評価値とをメタデータ記憶部210に記録する。これらの各情報は、動画およびフレーム(画像)に関連付けてメタデータファイルとしてメタデータ記憶部210に記録される。また、記録制御部150は、合成対象画像選択部170から出力された合成対象画像情報(フレーム選択情報)を合成対象画像メタデータとして合成対象画像メタデータ記憶部270に記録する。
区間選択部160は、メタデータ記憶部210に記憶されているメタデータを用いて、動画記憶部200に記憶されている動画について、合成画像を作成する対象となる区間である画像合成対象区間を選択するものである。そして、選択された画像合成対象区間に関する情報を合成対象画像選択部170に出力する。なお、画像合成対象区間の選択については、図24乃至図26を参照して詳細に説明する。
合成対象画像選択部170は、メタデータ記憶部210に記憶されているメタデータを用いて、区間選択部160から出力された画像合成対象区間に含まれるフレームの中から、合成画像を作成するためのフレームを選択するものである。そして、選択されたフレームに関する合成対象画像情報(フレーム選択情報)を記録制御部150に出力する。具体的には、合成対象画像選択部170は、最初に、合成画像の一番上側に重ねて合成される最前面画像(最前面フレーム)を選択する。そして、選択された最前面画像を基準画像として、他の合成対象画像を順次選択する。この選択の際には、最前面画像を基準画像として、選択された合成対象画像をアフィン変換するためのアフィン変換パラメータが算出される。なお、合成対象画像選択については、図27乃至図29を参照して詳細に説明する。また、区間選択部160および合成対象画像選択部170は、特許請求の範囲に記載の選択部の一例である。合成対象画像選択部170は、特許請求の範囲に記載の画像選択部の一例である。
動画記憶部200は、記録制御部150の制御に基づいて動画入力部110から出力された動画を動画ファイルとして記憶するものである。また、動画記憶部200は、ファイル取得部180からの要求に応じて動画ファイルをファイル取得部180に供給し、表示制御部240からの要求に応じて動画ファイルを表示制御部240に供給する。なお、動画記憶部200に記憶される動画ファイルについては、図3を参照して詳細に説明する。
メタデータ記憶部210は、記録制御部150の制御に基づいて、カメラワーク検出部120、顔検出部130および表情評価値算出部140から出力された各情報を、動画およびフレームに関連付けてメタデータファイルとして記憶するものである。また、メタデータ記憶部210は、区間選択部160および合成対象画像選択部170にメタデータファイルを供給する。なお、メタデータ記憶部210に記憶されるメタデータファイルについては、図3を参照して詳細に説明する。
合成対象画像メタデータ記憶部270は、記録制御部150の制御に基づいて、合成対象画像選択部170から出力された合成対象画像情報を合成対象画像メタデータファイルとして記憶するものである。また、合成対象画像メタデータ記憶部270は、ファイル取得部180からの要求に応じて合成対象画像メタデータファイルをファイル取得部180に供給する。なお、合成対象画像メタデータ記憶部270に記憶されるメタデータファイルについては、図4を参照して詳細に説明する。
ファイル取得部180は、操作受付部260により受け付けられた操作入力に応じて、動画記憶部200およびメタデータ記憶部210に記憶されている各ファイルを取得し、取得された各ファイルの情報を画像変換部190に供給するものである。具体的には、ファイル取得部180は、合成画像を表示させるための指示操作が操作受付部260により受け付けられた場合には、動画記憶部200から動画ファイルを取得する。また、この動画ファイルに対応する合成対象画像メタデータファイルを合成対象画像メタデータ記憶部270から取得する。そして、合成対象画像メタデータファイルを用いて、取得された動画ファイルを構成する各画像の中から、合成対象となる画像を抽出し、この抽出された画像と、この画像に対応する合成対象画像メタデータを画像変換部190に出力する。
画像変換部190は、ファイル取得部180から出力された画像について、この画像に対応する合成対象画像メタデータを用いてアフィン変換を施すものである。そして、アフィン変換された画像を画像合成部220に出力する。具体的には、画像変換部190は、1つの画像(例えば、最前面画像)の位置を基準として他の画像を順次アフィン変換する。また、画像変換部190は、合成画像を表示させるための指示操作が操作受付部260により受け付けられた場合には、その指示操作に係る表示順序に応じて画像を順次アフィン変換する。なお、これらの画像変換については、図15乃至図23、図31および図32等を参照して詳細に説明する。
画像合成部220は、画像メモリ230を用いて、画像変換部190によりアフィン変換された画像を合成して合成画像を作成するものである。そして、作成された合成画像を表示制御部240に順次出力する。また、画像合成部220は、画像変換部190によりアフィン変換された画像を合成する際に、画像の周縁に白枠を付して合成する。これらの画像合成については、図31および図32等を参照して詳細に説明する。
画像メモリ230は、画像合成部220により合成画像が作成される際に用いられるワークバッファであり、画像変換部190によりアフィン変換された画像を含む履歴画像を保持する。そして、保持されている履歴画像を画像合成部220に供給する。なお、画像メモリ230は、画像データを記憶する1面分のメモリに相当するキャンバスと称される。
表示制御部240は、操作受付部260により受け付けられた操作入力の内容に応じて、画像合成部220から出力された合成画像を表示部250に表示させるものである。また、表示制御部240は、操作受付部260により動画を再生させるための指示操作が受け付けられた場合には、この指示操作に係る動画ファイルを動画記憶部200から取得し、この動画ファイルを構成する画像を表示部250に表示させる。
表示部250は、表示制御部240の制御に基づいて各画像を表示するものである。表示部250は、例えば、パーソナルコンピュータやテレビジョンのディスプレイにより実現することができる。なお、合成画像の表示例については、図31乃至図33等を参照して詳細に説明する。
操作受付部260は、各種入力キーからなるキーボードやマウス(ポインティングデバイス)等からの操作入力を受け付けるものであり、受け付けられた操作入力の内容をファイル取得部180、画像変換部190または表示制御部240に出力する。
図2は、本発明の第1の実施の形態におけるカメラワーク検出部120の機能構成例を示すブロック図である。カメラワーク検出部120は、特徴点抽出部121と、オプティカルフロー算出部122と、カメラワークパラメータ算出部123と、信頼度判定スコア算出部124とを備える。
特徴点抽出部121は、動画入力部110から出力された動画を構成するフレームに対応する画像全体から特徴点を抽出するものであり、抽出された特徴点をオプティカルフロー算出部122および信頼度判定スコア算出部124に出力する。ここで、特徴点抽出部121は、動画入力部110から出力された動画を構成するフレームのうちの先頭のフレームについては、画像全体から特徴点を抽出する。また、先頭以外のフレームについては、直前のフレームに対応する画像と比較して新しく撮像された領域部分から特徴点を抽出する。なお、特徴点として、例えば、縦方向および横方向にエッジの勾配が強い点(一般に「コーナー点」と呼ばれている。以下では、「コーナー点」と称する。)を抽出することができる。このコーナー点は、オプティカルフローの計算に強い特徴点であり、エッジ検出を用いて求めることができる。なお、このコーナー点の抽出については、図5および図6を参照して詳細に説明する。なお、この例では、特徴点抽出部121は、先頭のフレームについては画像全体から特徴点を抽出し、先頭以外のフレームについては直前の画像と比較して新しく撮像された領域部分から特徴点を抽出する。しかしながら、処理能力等に応じて、先頭以外の各フレームについても、画像全体から特徴点を抽出するようにしてもよい。
オプティカルフロー算出部122は、特徴点抽出部121から出力された各特徴点に対するオプティカルフローを算出するものであり、算出されたオプティカルフローをカメラワークパラメータ算出部123に出力する。具体的には、オプティカルフロー算出部122は、動画入力部110から出力された動画を構成する連続する2つのフレーム(現フレームおよび直前のフレーム)に対応する各画像を比較することにより、現フレームのオプティカルフローを算出する。すなわち、オプティカルフロー算出部122は、直前のフレームに対応する画像における各特徴点について、現フレームに対応する画像に対するオプティカルフローを算出する。このオプティカルフローは、動画を構成するフレーム毎に算出される。なお、オプティカルフローを検出する検出方法として、勾配法やブロックマッチング方法等の検出方法を用いることができる。なお、このオプティカルフローの計算については、図5および図6を参照して詳細に説明する。また、オプティカルフロー算出部122は、特許請求の範囲に記載の動き量算出部の一例である。
カメラワークパラメータ算出部123は、オプティカルフロー算出部122から出力された各特徴点に対応するオプティカルフローを用いて、カメラワークパラメータを算出するカメラワークパラメータ算出処理を行うものである。そして、算出されたカメラワークパラメータを記録制御部150に出力し、このカメラワークパラメータの算出に用いられた特徴点に関する情報を信頼度判定スコア算出部124に出力する。このカメラワークパラメータは、連続する2つのフレーム(現フレームおよび直前のフレーム)に関する変換情報(カメラの動き情報)である。
ここで、本発明の第1の実施の形態では、再生の対象となる動画について選択された合成対象画像をカメラの動きに合わせてそれぞれ変換して合成する。この画像の変換を行うため、オプティカルフロー算出部122により計算されたオプティカルフローを用いてカメラの動きが抽出され、この抽出された動きに基づいて、カメラワークパラメータ(変換パラメータ)が計算される。
また、本発明の第1の実施の形態では、合成対象画像を変換する画像変換方法として、アフィン変換を用いる例について説明する。また、カメラワークパラメータとして、オプティカルフローに基づいて算出されたアフィン変換パラメータを用いる例について説明する。なお、カメラワークパラメータとして射影変換パラメータ等を用いて他の画像変換方法を用いるようにしてもよい。なお、アフィン変換パラメータは、3点のベクトルを用いて計算して求めることができる。また、射影変換パラメータは、4点のベクトルを用いて計算して求めることができる。ここで、カメラワークパラメータは、撮像動画を構成する撮像画像のうちの少なくとも1つの撮像画像を基準にして他の撮像画像を変換するための変換情報であり、少なくともカメラの座標系で記述される位置情報および姿勢情報を含むものである。すなわち、カメラワークパラメータは、撮影者により撮影されている場合におけるカメラの位置や姿勢に関する情報を含むものである。また、カメラワークパラメータ算出部123により算出されたアフィン変換パラメータに基づいて、例えば、ズームイン、ズームアウト、パン、チルト、ローテーション等の撮影者の操作によるカメラの動きを推定することができる。なお、アフィン変換パラメータの計算については、図5および図6を参照して詳細に説明する。すなわち、本発明の第1の実施の形態では、連続する画像のうちの1つの画像を基準画像とした場合に、この基準画像の次の画像がどこに移動するかを示すアフィン行列に対応するアフィン変換パラメータと定義する。なお、カメラワークパラメータ算出部123は、特許請求の範囲に記載の動き情報算出部の一例である。
信頼度判定スコア算出部124は、特徴点抽出部121から出力された特徴点と、カメラワークパラメータ算出部123から出力された特徴点に関する情報とに基づいて、信頼度判定スコアを算出するものである。そして、算出された信頼度判定スコアを記録制御部150に出力する。この信頼度判定スコアは、例えば、アフィン変換パラメータの算出対象となった画像の画面全体における特徴点の数と、この画面全体において支配的な動きを見せた特徴点の数との割合に基づいて算出される。この信頼度判定スコアの算出については、図5および図6を参照して詳細に説明する。
図3は、本発明の第1の実施の形態における動画記憶部200およびメタデータ記憶部210に記憶されている各ファイルを模式的に示す図である。図3(a)には、動画記憶部200に記憶されている動画ファイル201乃至203と、動画ファイル201乃至203に関連付けてメタデータ記憶部210に記憶されているメタデータファイル211乃至213とを示す。ここで、動画記憶部200に記憶されている各動画ファイルを識別するための識別情報である動画IDが、各動画ファイルに付与されているものとする。例えば、動画ファイル201には「#1」が付与され、動画ファイル202には「#2」が付与され、動画ファイル203には「#n」が付与されている。
図3(b)には、動画記憶部200に記憶されている動画ファイル201と、動画ファイル201に関連付けてメタデータ記憶部210に記憶されているメタデータファイル211とを模式的に示す。ここで、動画ファイル201は、m枚のフレームで構成された動画のファイルであり、これらのm枚のフレームをフレーム「1」204乃至「m」207として示す。また、メタデータファイル211には、動画ID214と、フレーム番号215と、アフィン変換パラメータ216と、信頼度判定スコア217と、顔検出情報218と、表情評価値219とが関連付けて記憶されている。
動画ID214は、対応する動画ファイルに付与されている動画IDであり、例えば、動画ファイル201に付与されている「#1」が格納される。
フレーム番号215は、対応する動画ファイルを構成する各フレームの通し番号であり、例えば、動画ファイル201の動画を構成するフレーム「1」204乃至「m」207に対応する「1」乃至「m」が格納される。
アフィン変換パラメータ216は、フレーム番号215に対応する動画の各フレームについて算出されたアフィン変換パラメータである。なお、フレーム番号215の「1」に対応するアフィン変換パラメータ216「a1,b1,c1,d1,e1,f1」は、単位行列のアフィン変換パラメータである。また、例えば、フレーム番号215の「i(iは2以上の整数)」に対応するアフィン変換パラメータ216の「ai,bi,ci,di,ei,fi」は、フレーム「i」の直前フレーム「i−1」に対するアフィン変換パラメータである。
信頼度判定スコア217は、フレーム番号215に対応する動画の各フレームについて算出された信頼度判定スコアであり、例えば、0乃至1の値が格納される。
顔検出情報218は、フレーム番号215に対応する動画の各フレームについて検出された顔検出情報であり、顔検出部130から出力された顔検出情報が格納される。なお、図3(b)では、顔検出情報の具体的な内容の記載を省略して示す。また、1フレームから複数の顔が検出されている場合には、これらの複数の顔検出情報がそのフレームに関連付けて格納される。
表情評価値219は、フレーム番号215に対応する動画の各フレームに含まれる顔について算出された表情評価値であり、表情評価値算出部140から出力された表情評価値が格納される。なお、対応するフレームに顔が含まれていない場合には「0」が格納される。例えば、フレーム番号215の「1」および「m」に対応するフレームから顔が検出されていない場合には、表情評価値算出部140により表情評価値が算出されないため、表情評価値219に「0」が格納される。一方、フレーム番号215の「i」および「j」に対応するフレームから顔が検出されている場合には、表情評価値算出部140により算出された表情評価値が表情評価値219に格納される。例えば、フレーム番号215の「i」に対応する表情評価値219には「124」が格納され、フレーム番号215の「j」に対応する表情評価値219には「405」が格納される。この場合には、例えば、フレーム「j」について検出された顔が、フレーム「i」について検出された顔よりも笑顔である可能性が高いと判定することができる。なお、i、jは、1<i<j<mを満たす整数である。また、1フレームから複数の顔が検出されている場合には、これらの複数の顔について算出された表情評価値がそのフレームに関連付けて格納される。
図4は、本発明の第1の実施の形態における合成対象画像メタデータ記憶部270の記憶内容を模式的に示す図である。合成対象画像メタデータ記憶部270には、動画ID271と、区間番号272と、フレーム番号273と、アフィン変換パラメータ274と、最前面フレーム275と、顔データ276とが関連付けて記憶されている。
動画ID271は、対応する動画ファイルに付与されている動画IDであり、例えば、動画記憶部200に記憶されている各動画ファイルに付与されている「#1」「#2」等が格納される。
区間番号272は、区間選択部160により選択された画像合成対象区間を識別するための通し番号であり、例えば、動画ファイル201について選択された順序で「#101」「#102」「#103」等が格納される。例えば、動画ファイル201について合成画像が作成される場合には、区間番号272の区間毎(例えば、「#101」、「#102」、「#103」)に合成画像が作成される。
フレーム番号273は、区間選択部160により選択された画像合成対象区間において、合成対象画像選択部170により選択されたフレームのフレーム番号である。このフレーム番号は、図3(b)に示すフレーム番号215に対応するものである。例えば、区間番号272の「#101」において、合成対象画像選択部170によりフレーム「1」、「6」、「9」、「17」が選択された場合には、これらの各フレームのフレーム番号「1」、「6」、「9」、「17」が格納される。
アフィン変換パラメータ274は、合成対象画像選択部170により選択された各フレームをアフィン変換するためのアフィン変換パラメータである。ここで、アフィン変換パラメータ274に格納されるアフィン変換パラメータは、同一の画像合成対象区間内の1つのフレームを基準フレームとして、他のフレームをアフィン変換するためのアフィン変換パラメータである。この基準フレームは、例えば、最前面フレームとすることができる。また、この基準フレームに関連付けてアフィン変換パラメータ274に格納されるアフィン変換パラメータは、単位行列のアフィン変換パラメータである。
最前面フレーム275は、合成対象画像選択部170により選択された最前面フレームを示す情報である。例えば、対応するフレームが最前面フレームとして選択されている場合には最前面フレーム275に「1」が格納され、最前面フレームとして選択されていない場合には最前面フレーム275に「0」が格納される。例えば、動画ID271「#1」の区間番号272「#101」の各フレームの中で、フレーム「9」が最前面フレームに選択された場合には、フレーム「9」の最前面フレーム275に「1」が格納される。この場合に、区間番号272「#101」の各フレームの中で、フレーム「9」以外のフレームについては、最前面フレーム275に「0」が格納される。
顔データ276は、合成対象画像選択部170により選択された各フレームに含まれる顔に関する情報である。この情報として、顔検出情報218に含まれる顔検出情報のうちで、例えば、顔の位置情報およびサイズ情報が格納される。図4に示す例では、顔の位置情報を(xn,yn)で示し、顔のサイズ情報を(Hn,Wn)で示す。ここで、nは、フレーム番号273に対応する数値である。なお、1フレームから複数の顔が検出されている場合には、これらの複数の顔データがそのフレームに関連付けて格納される。
[カメラワークパラメータおよび信頼度判定スコアの算出例]
次に、画像変換に用いられるカメラワークパラメータ(アフィン変換パラメータ)および信頼度判定スコアを算出する算出方法について図面を参照して詳細に説明する。
図5は、動画を構成する画像の一例を示す図である。図6は、動画を構成する画像について背景等を省略して簡略化した画像を示す図である。図5(a)乃至(c)には、動画を構成する画像の一例として画像300を示す。また、図6(a)には、画像300の1つ前のフレームに対応する画像について背景等を省略して簡略化した画像320を示す。また、図6(b)および(c)には、画像300について背景等を省略して簡略化した画像330を示す。
図5および図6に示す画像300、320、330には、人が跨っている馬の像301、321、331と、この馬の像301、321、331の手前に設置されている蛇の像302、322、332とが含まれている。また、図5に示すように、これらの像の背景には旗や椅子等が存在し、この旗が風になびいている。
図6(a)に示す画像320は、図5(a)乃至(c)および図6(b)および(c)に示す画像300、330に対応するフレームの1つ前のフレームに対応する画像を簡略化した画像である。また、2つの連続するフレームに対応する画像320および330は、画面内の被写体がしだいに大きくなる場合における遷移を示す画像である。すなわち、この撮影時には、画面内の被写体をしだいに大きくする操作であるズームイン操作がされている。
本発明の第1の実施の形態では、動画を構成する画像から特徴点を検出し、この特徴点に対応するオプティカルフローを用いてアフィン変換パラメータを計算する方法を例にして説明する。また、この例では、特徴点としてコーナー点を用いる場合について説明する。
ここで、図6(a)乃至(c)では、画像320および330から検出された3つのコーナー点に対応するオプティカルフローを用いてアフィン変換パラメータを計算する方法を例にして説明する。
例えば、図6(a)に示す画像320において、特徴点として、馬の像321における口付近のコーナー点323と、馬の像321における人のお尻付近のコーナー点324と、蛇の像322の口付近のコーナー点325とが検出されているものとする。この場合において、図6(b)に示す画像330において、勾配法やブロックマッチング法等により、画像320におけるコーナー点323、324および325に対するオプティカルフロー337、338および339が検出される。そして、この検出されたオプティカルフロー337、338および339に基づいて、画像320におけるコーナー点323、324および325に対応するコーナー点333、334および335が検出される。
ここで、例えば、図6(a)および(b)に示す画像320および330に含まれる馬の像321、331や蛇の像322、332は、地面に設置されているものであるため、カメラの動きとは無関係に動くものではない。このため、馬の像321、331や蛇の像322、332について検出されたコーナー点に対して求められたオプティカルフローに基づいて、カメラの動きを正確に推定することができる。例えば、図6(c)に示すように、画像330において検出された3つのオプティカルフロー337乃至339に基づいて、画像330が、点336を中心にして画像320を拡大したものであることを推定することができる。これにより、画像330の撮影時におけるカメラの動きは、点336を中心とするズームイン動作であると判断することができる。このように、カメラの動きとは無関係に動くものではない物体についてコーナー点を検出し、このコーナー点に対して求められたオプティカルフローに基づいて、一定の規則性を備えるカメラの動きを正確に検出することができる。このため、これらのコーナー点に対して求められたオプティカルフローを用いて、アフィン変換パラメータを計算して求めることができる。
しかしながら、風になびいている旗等のように、カメラの動きとは無関係に動く物体が画像内に含まれる場合が考えられる。例えば、図5に示す画像300には、風になびいている旗が含まれている。このようなカメラの動きとは無関係に動く物体についてコーナー点が検出され、このコーナー点に対して求められたオプティカルフローを用いてカメラの動きを推定する場合には、カメラの動きを正確に推定することができない。
例えば、図5(b)に示す画像300において検出されたオプティカルフローを矢印で示すとともに、このオプティカルフローにより検出されたコーナー点を矢印の先端に白抜きの丸で示す。ここで、コーナー点303乃至305は、図6(b)および(c)に示すコーナー点333乃至335に対応するコーナー点である。また、コーナー点306乃至311は、馬の像301の背景に存在する旗について検出されたコーナー点である。そして、これらの旗が風になびいているため、風の影響による旗の動きがオプティカルフローとして検出されている。すなわち、コーナー点306乃至311に対応する各オプティカルフローは、カメラの動きとは無関係に動く旗について検出されたものである。このため、アフィン変換パラメータを計算する場合に用いられる3つのオプティカルフローに、コーナー点306乃至311のうちの少なくとも1つのコーナー点に対応するオプティカルフローが含まれている場合には、正確なカメラの動きを検出することができない。この場合には、正確なアフィン変換パラメータを計算することができない。
以上で示したように、例えば、カメラの動きとは無関係に動く物体に対するオプティカルフロー(図5(b)に示すコーナー点306乃至311に対応する各オプティカルフロー)が、撮像画像から検出されることがある。また、カメラの動きとの関係で一定の規則性を備えるオプティカルフロー(図5(b)に示すコーナー点306乃至311に対応する各オプティカルフロー以外のオプティカルフロー)が、撮像画像から検出されることがある。
そこで、本発明の第1の実施の形態では、3個のオプティカルフローに基づいてアフィン変換パラメータを計算するアフィン変換パラメータ計算処理を複数回行い、複数のアフィン変換パラメータを求める。そして、これらの複数のアフィン変換パラメータの中から最適なアフィン変換パラメータを選択する例について説明する。なお、この例では、動画を構成する各画像に含まれている動物体の大きさが、画像の面積に対して比較的小さいものとする。
ここで、アフィン変換について説明する。2次元座標上において、移動元の位置を(x,y)とし、アフィン変換後の移動先の位置を(x´,y´)とした場合に、アフィン変換の行列式は、式1で表すことができる。なお、式1の右辺の3×3の行列はアフィン行列である。
ここで、a乃至fは、アフィン変換パラメータである。また、このアフィン変換パラメータを行列AMとして次式で表すことができる。なお、X方向のズーム成分XZ、Y方向のズーム成分YZ、X方向の並進成分XT、Y方向の並進成分YT、X方向の回転成分θx、X方向の回転成分θyについては、それぞれ次の式で求めることができる。なお、単位行列の場合には、a=e=1、b=c=d=f=0となる。
このように、アフィン変換パラメータから、カメラワークの各成分(X方向およびY方向のズーム成分、並進成分、回転成分)を求めることができる。なお、回転成分については、図7を参照して説明する。
図7は、アフィン変換パラメータを用いて矩形340が変換された場合を示す図である。図7に示すように、矩形340の1つの頂点を原点とし、この原点に対応する頂点に接する矩形340の2辺のそれぞれをx軸およびy軸とするxy座標において、所定のアフィン変換パラメータを用いて矩形340が変換された後の矩形を矩形341とする。この場合に、矩形340および341のx軸側の辺により形成される角度を回転成分θxとし、矩形340および341のy軸側の辺により形成される角度を回転成分θyとする。
次に、カメラワーク成分の加算値の算出方法について説明する。
カメラワーク成分の加算値は、算出対象となる画像合成対象区間の先頭のフレームから、算出対象となる現フレームまでの各フレームに対応するカメラワークの各成分を加算した値である。例えば、先頭のフレームから現フレームまでの各フレームをフレーム1乃至5とし、これらのフレーム1乃至5のカメラワーク成分のX方向の並進成分をそれぞれXT1乃至XT5とする。この場合において、カメラワーク成分のX方向の並進成分の加算値は、「XT1+XT2+XT3+XT4+XT5」により算出することができる。また、他のカメラワークの各成分の加算値についても同様に算出することができる。
次に、アフィン変換パラメータの計算方法について説明する。
最初に、動画を構成するフレームの中の1つのフレームである現フレームに対応する画像において、オプティカルフローが検出された特徴点の中から3個の特徴点が選択される。例えば、図5(b)に示す画像300において検出されたコーナー点(白抜きの丸で示す)の中からランダムに3個のコーナー点が選択される。なお、カメラワークパラメータとして、射影変換パラメータを用いる場合には、4個の特徴点がランダムに選択される。
続いて、選択された3個の特徴点に対応する3個のオプティカルフローを用いてアフィン変換パラメータが計算される。例えば、図5(b)に示す画像300におけるコーナー点(白抜きの丸で示す)の中から選択された3個のコーナー点に対応するオプティカルフロー(白抜きの丸に接続される矢印で示す)を用いてアフィン変換パラメータが計算される。このアフィン変換パラメータは、式1を用いて求めることができる。
続いて、求められたアフィン変換パラメータに基づいて、アフィン変換パラメータのスコアが計算される。具体的には、求められたアフィン変換パラメータを用いて、現フレームの直前のフレームに対応する画像における全ての特徴点の移動先の位置を求める。そして、このアフィン変換パラメータを用いて求められた特徴点の位置と、現フレームにおいて検出された特徴点の位置とを比較して、互いに対応する2つの特徴点の位置の差分値が特徴点毎に計算される。差分値として、例えば、互いに対応する2つの特徴点の位置間の絶対距離が計算される。続いて、計算された差分値と、予め設定されている閾値とを特徴点毎に比較して、その差分値が閾値よりも小さい特徴点の個数をアフィン変換パラメータのスコアとして求める。このように、オプティカルフローが検出された特徴点の中から3個の特徴点をランダムに選択する。そして、これらの特徴点に対応するオプティカルフローに基づいてアフィン変換パラメータのスコアを算出する処理を所定回数繰り返し、アフィン変換パラメータのスコアを複数算出する。この所定回数は、比較の対象となる画像の種類や画像処理装置100の処理能力等に応じて適宜設定するようにしてもよく、固定値を用いるようにしてもよい。この所定回数として、例えば、画像処理装置100の処理能力を考慮して20回程度と設定することができる。
例えば、図5(b)に示す画像300において検出されたコーナー点の中から、コーナー点306乃至311以外のコーナー点が3個選択された場合を考える。このように選択された3個のコーナー点に対応する3個のオプティカルフローを用いてアフィン変換パラメータが計算されると、上述したように、この3個のオプティカルフローは一定の規則性を備えている。このため、直前のフレームに対応する画像を一定の規則に従って変換させるアフィン変換パラメータが求められる。また、アフィン変換パラメータを用いて求められたコーナー点の位置と、現フレームにおいて検出されたコーナー点の位置とについて、コーナー点306乃至311以外のコーナー点に関して求められる差分値は、比較的小さい値が算出される。このため、アフィン変換パラメータのスコアは、大きい値になる。
一方、図5(b)に示す画像300において検出されたコーナー点の中から、コーナー点306乃至311のうちの少なくとも1個を含む3個のコーナー点が選択された場合を考える。このように選択された3個のコーナー点に対応する3個のオプティカルフローを用いてアフィン変換パラメータが計算されると、上述したように、この3個のオプティカルフローには、一定の規則性を備えていないオプティカルフローが含まれる。このため、直前のフレームに対応する画像を一定の規則に従って変換させるものではないアフィン変換パラメータが求められる。また、アフィン変換パラメータを用いて求められたコーナー点の位置と、現フレームにおいて検出されたコーナー点の位置とについて求められる差分値は、任意のコーナー点で比較的大きい値が算出される。このため、アフィン変換パラメータのスコアは、小さい値になる。
続いて、求められた複数のアフィン変換パラメータのスコアの中で、スコアの値が最も大きいアフィン変換パラメータを代表アフィン変換パラメータとして選択する。そして、選択された代表アフィン変換パラメータを用いて、直前のフレームを基準フレームとして現フレームをアフィン変換させるためのアフィン変換パラメータを算出し、このアフィン変換パラメータを現フレームに関連付けてメタデータ記憶部210に記録する。これにより、動画を構成する画像をアフィン変換する場合に、最適なアフィン変換パラメータを用いてアフィン変換することができる。
また、本発明の第1の実施の形態では、このように選択された代表アフィン変換パラメータのスコアを用いて、信頼度判定スコアを算出する。例えば、代表アフィン変換パラメータの算出対象となった画像の画面全体において検出された特徴点の数をNとし、代表アフィン変換パラメータのスコアをNm1とした場合に、以下の式により信頼度判定スコアSHSを算出することができる。
SHS=Nm1/N
ここで、代表アフィン変換パラメータのスコアNm1は、検出対象となった画像の画面全体において支配的な動きを見せた特徴点の数である。また、特徴点の数Nは、支配的な動きを見せた特徴点の数Nm1と、その他の特徴点(ノイズ的な動きを見せた特徴点)の数Nm2との合計値となる(すなわち、N=Nm1+Nm2)。また、信頼度判定スコアSHSとして、0乃至1の値が算出される。
このように算出された信頼度判定スコアを現フレームに関連付けてメタデータ記憶部210に記録する。この信頼度判定スコアを用いて、動画から画像合成対象区間を選択する。
以上で示したように、動画を構成する各画像に人物や車等の動いている物体(動物体)が含まれている場合でも、画像の面積に対するその動物体の大きさが比較的小さい場合には、動物体の影響を受けずにカメラの動きを抽出することができる。
また、カメラの動きを抽出することによって、ズームイン、ズームアウト、パン、チルト、ローテーション等の意図的に撮影者が移動させたと思われる動きを推定することができる。なお、式1において、a=e、d=−bとして、2個のオプティカルフローに基づいてアフィン変換パラメータを算出することができる。例えば、3個のオプティカルフローに基づいて計算されたアフィン変換パラメータを用いて、画像をアフィン変換する場合には、長方形の画像が平行四辺形に変形される場合がある。これに対して、2個のオプティカルフローに基づいて計算されたアフィン変換パラメータを用いて、画像をアフィン変換する場合には、並進移動、回転、ズーム(xy方向のズーム率が同じもの)の少なくとも1つの変換を長方形の画像の状態で行うことができる。本発明の第1の実施の形態では、3個のオプティカルフローに基づいて計算されたアフィン変換パラメータを用いて画像を変換する例について説明する。しかしながら、2個のオプティカルフローに基づいて計算されたアフィン変換パラメータを用いて画像を変換する場合についても同様に適用することができる。
[表情評価値の算出例]
次に、画像から検出された顔に関する表情評価値を算出する表情評価値算出方法について図面を参照して詳細に説明する。
図8は、本発明の第1の実施の形態における顔検出部130による顔検出方法を概略的に示す図である。図8(a)および(b)には、動画入力部110から出力された動画を構成する画像450を示す。また、画像450には人物451の顔452が含まれているものとする。このように、画像450に顔452が含まれている場合には、顔検出部130により画像450から顔452が検出される。なお、図8では、顔検出基準データを用いて顔検出を行う場合を例にして説明する。
例えば、図8(a)に示すように、一定の大きさの顔検出ウィンドウ453が画像450の左上隅に配置され、顔検出ウィンドウ453内の画像に顔が含まれるか否かを判定するための推定値が顔検出基準データに基づいて算出される。続いて、顔検出ウィンドウが右側方向(矢印454に示す方向)に1画素シフトされて、同様に推定値が算出される。以下同様に、顔検出ウィンドウが1画素ずつ右側方向に順次シフトされて、推定値が順次算出される。そして、顔検出ウィンドウが画像450の右端の位置にシフトされて推定値が算出されると、顔検出ウィンドウが1画素下側にシフトされるとともに画像450の左端に移動される。続いて、画像450の左端に移動直後の推定値が算出された後に、顔検出ウィンドウが1画素ずつ右側方向に順次シフトされて推定値が順次算出される。以下同様に推定値が順次算出される。そして、顔検出ウィンドウが画像450の右端および下端の位置にシフトされて推定値が算出されると、画像450を所定倍率で縮小して同様の処理を順次行う。このように、一定の大きさの顔検出ウィンドウを用いて、順次縮小される画像450について推定値の算出を順次行う。そして、算出された各推定値に基づいて、顔が検出され、この顔の少なくとも一部を含む矩形領域である顔領域が求められる。例えば、図8(b)に示すように、画像450に含まれる人物451の顔452が検出され、顔452を含む顔領域455が求められる。また、検出された顔に関する顔検出情報(顔の位置、サイズ等)が求められる。例えば、図8(c)に示すように、画像450の左上隅を原点とし、水平方向をx軸とし、垂直方向をy軸とするxy座標を設定する。このxy座標において、顔領域455の左上隅を頂点456の座標(x,y)が顔の位置として算出される。同様に、このxy座標において、顔領域455の水平方向の長さWと、顔領域455の垂直方向の長さHとが顔のサイズとして算出される。これらの顔検出情報を顔検出部130が表情評価値算出部140および記録制御部150に出力する。
続いて、表情評価値算出部140は、顔検出部130から出力された顔検出情報に基づいて、顔領域455の画像(画像データ)を画像450から取り出す。すなわち、表情評価値算出部140は、顔の検出対象となった画像データが一時的に記憶されているメモリ(RAM)にアクセスし、顔検出部130から出力された顔検出情報に対応する顔領域内の画像データのみを読み出す。
続いて、表情評価値算出部140は、取り出された画像を一定サイズの画像に変換して正規化して正規化顔画像を生成する。すなわち、取り出された画像が、一定サイズ(一定の解像度)の画像として解像度変換されることにより正規化顔画像が生成される。この正規化後の画像サイズは、表情評価値算出部140が顔に関する表情評価値を算出する際の処理単位となるサイズとする。本発明の第1の実施の形態では、例えば、正規化の一定サイズを48画素×48画素のサイズとする。
続いて、表情評価値算出部140は、正規化顔画像と、判別軸情報記憶部141に記憶されている判別軸情報とに基づいて、正規化顔画像に含まれる顔の表情の度合いを示す表情評価値を算出する。この算出された表情評価値が記録制御部150に出力される。この表情評価値は、2つの異なる表情のうちでどちらの表情に近いかの度合いを示す値である。本発明の第1の実施の形態では、2つの異なる表情を「笑顔」および「通常時の表情」とし、算出された表情評価値が高くなるに応じて「笑顔」である度合いが強いと評価する例について説明する。一方、算出された表情評価値が低くなるに応じて「通常時の表情」である度合いが強いと評価される。なお、この表情評価値の算出方法については、図9乃至図12を参照して詳細に説明する。
図9は、表情評価値の算出に用いられる判別軸情報と、この判別軸情報を生成する際の流れとを概念的に示す図である。
本発明の第1の実施の形態では、いわゆる「フィッシャー(Fisher)の線形判別分析」を用いた表情評価値算出方法を例にして説明する。この表情評価値算出方法では、最初に、2つの異なる顔の表情の何れかを含むサンプル画像を事前に多数用意しておく。そして、2つの異なる表情間の2クラス問題と考えて、これらのサンプル画像のデータに基づいて、線形判別分析(LDA:Linear Discriminant Analysis)を行う。これにより、これらの2つの異なる表情を良く判別する判別軸466(図9(c)に示す)を形成する。そして、この判別軸466を判別軸情報記憶部141に記憶する。また、表情評価の際には、評価対象となる顔画像のデータと判別軸466との内積を求めることにより表情評価値を算出する。以下では、図面を参照して具体的に説明する。
本発明の第1の実施の形態では、特定の表情として「笑顔」を例にするため、2つの異なる表情に関するサンプル画像として、笑顔のサンプル画像および通常の表情のサンプル画像を用いる場合を例にして説明する。図9(a)では、笑顔のサンプル画像の集合を笑顔のサンプル画像群461として示し、通常の表情のサンプル画像の集合を通常の表情のサンプル画像群462として示す。これらのサンプル画像群461および462に含まれる各サンプル画像は、例えば、48画素×48画素の一定サイズの矩形画像内において顔が一定サイズとなるように正規化された画像であるものする。そして、これらのサンプル画像群461および462に含まれる各サンプル画像のデータを48×48次元のベクトルデータとして取り扱い、LDA処理を行う。
ここで、48×48次元のベクトルデータを取り扱うベクトル空間は、48×48本の座標軸を有する非常に次元の高い空間となる。そこで、LDA処理を行う前に、48×48次元のベクトルデータについて主成分分析(PCA:Principal Component Analysis)を行う。そして、顔の特徴のみを効率良く表す次元の低い空間のデータに、48×48次元のベクトルデータを変換(次元圧縮)する。
このPCA処理では、入力されたM個(例えば、M=300)のN次元(N=48×48)のサンプル画像群間のバラツキ(分散)が最大になるように、M本の軸を得ることを考える。このような軸は、サンプル画像群の共分散行列の固有値問題の解(固有ベクトル)として求めることができる。そして、係数の比較的大きいベクトル成分のみを主成分として取り出すことにより、顔の特徴を表すのに適したベクトル成分のみのN'次元(N>>N')のデータに次元圧縮することができる。例えば、N'=40程度とすることにより、顔の表情判別について十分な精度を維持することが可能なことが知られている。なお、PCA処理で得られた主成分のうち、係数の大きいものから順に数個程度除外することにより、表情判別精度を保ちつつ、次元数をさらに減らして次のPCA処理の負荷を軽減することができる。
ここで、PCA処理時に入力されるサンプル画像のマスキング処理について図10を参照して詳細に説明する。
図10は、本発明の第1の実施の形態におけるPCA処理時に入力されるサンプル画像のマスキング処理を概略的に示す図である。
図10(a)には、笑顔のサンプル画像群461に属するサンプル画像470を示す。サンプル画像470には笑っている顔475が含まれる。なお、上述したように、サンプル画像470は、顔475が一定サイズとなるように矩形状に正規化された画像である。
ここで、図10(a)に示すように、サンプル画像470をそのまま用いてPCA処理を行う場合には、顔475の背景や髪等の影響により、適切な主成分を選択することができない場合がある。このため、図10(b)に示すように、顔475の肌部分以外の領域にマスク472をかけて、肌部分の顔領域のみが残されるようにサンプル画像470を変換させる。なお、図10(b)および(c)では、マスク472および474の領域を斜線領域で示す。図10(b)に示す変換後のサンプル画像471について、顔の情報濃度を上げた状態でPCA処理することにより、さらに高精度な次元圧縮を行うことができる。なお、顔領域の中でも口は表情によって大きく変化することがあるため、口が擾乱要素となることが多い。そこで、図10(c)に示すように、顔475の口の周辺領域についてもマスク474をかけて、口の周辺領域を除く肌部分の顔領域のみが残されるようにサンプル画像470を変換させる。図10(c)に示す変換後のサンプル画像473を用いてPCA処理することにより、さらに次元圧縮の精度を高めることができる。そこで、本発明の第1の実施の形態では、PCA処理時に入力されるサンプル画像について、図10(c)に示すマスキング処理を施した場合を例にして説明する。
ここで、図9(b)および(c)に示すPCA空間465は、サンプル画像に含まれる顔の特徴を効率良く表す座標軸のみを有する部分空間であるものとする。
上述したPCA処理により次元圧縮された笑顔のサンプル画像群461および通常の表情のサンプル画像群462に属する各サンプル画像は、図9(b)に示すように、PCA空間465上のベクトルデータに変換される。図9(b)では、笑顔のサンプル画像群461および通常の表情のサンプル画像群462に属する各サンプル画像が、PCA空間465に射影された状態を模式的に示す。図9(b)に示すように、同一のサンプル画像群に属する各サンプル画像がPCA空間465に射影された場合には、これらの各サンプル画像同士の距離は比較的近い距離となる。そこで、笑顔のサンプル画像群461に属する各サンプル画像がPCA空間465上に射影された後の各サンプル画像により形成されるクラスタをクラスタ463とする。また、通常の表情のサンプル画像群462に属する各サンプル画像がPCA空間465上に射影された後の各サンプル画像により形成されるクラスタをクラスタ464とする。そして、クラスタ463および464同士を最も良く分離する射影軸(判別軸466)をLDA処理により形成する。このような判別軸466は、「フィッシャーの射影軸」と呼ばれる。
LDA処理では、一般的に、N'次元の固有ベクトル上に射影されたクラス内およびクラス間の分散が最大になるような判別軸が求められる。すなわち、クラス内、クラス間の各共分散行列の最大固有値に対応する固有ベクトルを求め、これを判別軸466上のベクトル(フィッシャー・ベクトル)とする。各共分散行列と固有値、固有ベクトルとの関係を、式11および式12に示す。
ここで、RWはクラス内共分散行列を示し、RBはクラス間共分散行列を示し、λは固有値を示す。また、式12の逆行列、固有値、固有ベクトルの演算には、それぞれLU(Lower-Upper)分解法、QR分解法(Q:直交行列,R:上三角行列)、ガウスの消去法を用いることができる。このように算出された判別軸466の情報として、フィッシャー・ベクトルの各成分の係数等の情報が判別軸情報記憶部141に記憶される。すなわち、判別軸466の情報は、2つの異なる表情に関する多数の顔サンプル画像の画像データから主成分分析によって得られた信号成分に基づいて、線形判別分析を行うことにより得られた表情の判別軸を示すベクトルの係数等を含む情報である。
図11は、ピクセル空間およびPCA空間における判別軸および評価の対象となる顔画像の関係を概念的に示す図である。
図9(c)に示す判別軸466を用いて表情評価値を算出する場合、最初に、撮像画像から検出された顔の画像データ(顔画像)をPCA処理し、主成分を抽出する。その画像データに対応する顔画像の表情は、図11のPCA空間465に示すように、PCA処理された顔画像ベクトル(入力顔画像ベクトル)の判別軸466(ベクトルAd)に対する射影成分として評価される。すなわち、表情評価値Eexpは、式15に示すように、入力顔画像ベクトルとフィッシャー・ベクトルとの内積により算出することができる。
ここで、フィッシャー・ベクトルの情報は、ピクセル空間Spxl(PCA処理前の元の画像データが持つ次元の空間)での情報に換算しておくこともできる。式13および式14は、入力顔画像ベクトルおよびフィッシャー・ベクトルをピクセル空間Spxlでのベクトルとして表す式である。図11には、この式13および式14により表される関係を概念的に表す。式13、式14および図11に示すように、PCA処理により得られる主成分μ1〜μN'以外のベクトル成分は、全ての入力画像の平均値として定数Cで近似することができる。したがって、式15に示すような内積演算は、式16に示すように、ピクセル空間Spxlの上でのベクトルの内積演算として等価的に表すことができる。
式16に示すように、ピクセル空間Spxlでのフィッシャー・ベクトル成分と定数Cとの減算結果は事前に算出することができる。このため、この減算結果および定数Cを判別軸情報として判別軸情報記憶部141に記憶しておく。そして、表情評価値算出部140は、撮像画像から検出された顔画像のベクトルを算出した後に、このベクトルをPCA処理することなく、式16の内積演算を実行する。ここで、式16による1つの顔に対する表情評価値の演算では、それぞれ最大で48×48回の減算、乗算および加算が実行されるのみであり、実際には、40個程度の主成分μ1〜μN'に対応する係数の演算のみが実行されることになる。したがって、PCA空間465でのベクトルの内積演算を行う場合と比較して、表情評価の精度を落とすことなく演算量を大幅に削減することができ、撮像画像を記録する前の画角合わせの状態で表情評価値Eexpをリアルタイムで容易に算出することができる。
このような表情評価値算出方法を用いることにより、例えば、多数の顔画像のテンプレートと、検出された顔画像とのマッチングにより表情を評価する表情評価方法と比較しても、処理の負荷を低減するとともに、高精度の表情評価を行うことが可能である。例えば、テンプレートを用いたマッチングを行う場合、通常は、検出された顔画像から目や口等のパーツを抽出し、パーツ毎にマッチング処理を行う必要がある。これに対して、本発明の第1の実施の形態に用いられる表情評価値算出方法では、検出された顔画像を一定サイズに正規化した後、その顔画像をベクトル情報に置き換えて、そのまま(または部分的にマスクするだけで)内積演算に適用することができる。そして、その内積演算を上述の通り40次元程度の減算、乗算および加算からなる単純なものとすることができる。
図12は、本発明の第1の実施の形態における表情評価値を数値として出力する場合の算出例を示す図である。
本発明の第1の実施の形態では、例えば、サンプル画像のPCA処理結果に基づいて、PCA空間における笑顔の顔画像の分布481の平均482と、PCA空間における通常の表情の顔画像の分布483の平均484とを求める。そして、これらの平均482および484の判別軸466に対する射影点を決めておく。そして、各平均482および484の射影点の中点485を基準として表情評価値Eexpを数値に換算する。すなわち、図12に示すように、顔画像の判別軸466に対する射影点486と、各平均482および484の射影点の中点485との距離を表情評価値Eexpとし、笑顔のサンプル画像の分布している側を正の数値とする。これにより、検出された顔画像が笑顔と通常の表情のどちらに近いかを連続的な数値として出力することができる。この場合に、表情評価値Eexpが高くなるに応じて、笑顔の度合いが高いと評価することができる。また、顔検出部130により1枚の画像から複数の顔が検出された場合には、これらの各顔について表情評価値算出部140により表情評価値の算出が行われる。そして、これらの各顔について算出された表情評価値がメタデータ記憶部210に記憶される。
[画像処理装置の動作例]
次に、本発明の第1の実施の形態における画像処理装置100の動作について図面を参照して説明する。
図13は、本発明の第1の実施の形態における画像処理装置100によるメタデータ記録処理の処理手順を示すフローチャートである。
最初に、動画入力部110に動画ファイルが入力される(ステップS901)。続いて、動画入力部110に入力された動画ファイルがデコードされ、時系列の順序で1つのフレームの画像が取得される(ステップS902)。続いて、顔検出部130が、取得された1つのフレームについて顔検出処理を行う(ステップS903)。続いて、表情評価値算出部140が、顔検出処理により検出された顔について表情評価値算出処理を行う(ステップS904)。
続いて、取得された1つのフレームが動画入力部110に入力された動画ファイルの先頭のフレームであるか否かが判断される(ステップS905)。取得された1つのフレームが、先頭のフレームである場合には(ステップS905)、この先頭のフレームに対応する画像の全体から特徴点が抽出される(ステップS906)。続いて、アフィン変換パラメータとして単位行列のアフィン変換パラメータが選択され(ステップS907)、信頼度判定スコアとして「1.0」が算出され、ステップS913に進む。
一方、取得された1つのフレームが、先頭のフレームではない場合には(ステップS905)、直前のフレームに対応する画像を基準として新たに撮像された領域から特徴点が抽出される(ステップS905)。すなわち、直前のフレームに対応する画像において既に抽出されている特徴点については、この特徴点に対応するオプティカルフローにより求めることができるため、現フレームに対応する画像においては抽出されない。続いて、直前のフレームに対応する画像全体における特徴点の数が保持される(ステップS910)。
続いて、直前のフレームに対応する画像から抽出された各特徴点に対するオプティカルフローが計算される(ステップS911)。続いて、カメラワークパラメータ算出部123が、アフィン変換パラメータ算出処理を行う(ステップS920)。このアフィン変換パラメータ算出処理については、図14を参照して詳細に説明する。なお、ステップS920は、特許請求の範囲に記載の算出手順の一例である。
続いて、保持されている画像全体における特徴点の数と、選択された代表アフィン変換パラメータのスコアとに基づいて信頼度判定スコアが算出される(ステップS912)。続いて、現フレームについて求められた各メタデータが現フレームに関連付けてメタデータ記憶部210に記録される(ステップS913)。なお、現フレームが先頭のフレームである場合には、選択された単位行列のアフィン変換パラメータが、先頭のフレームに関連付けてメタデータ記憶部210に記録される。続いて、現フレームに対応する画像と、この画像における特徴点とが上書き保存される(ステップS914)。
続いて、現フレームが、動画入力部110に入力された動画ファイルの最後のフレームであるか否かが判断される(ステップS915)。現フレームが、最後のフレームではない場合には(ステップS915)、ステップS902に戻り、メタデータ記録処理を繰り返す(ステップS901乃至S914、ステップS920)。一方、現フレームが、最後のフレームである場合には(ステップS915)、メタデータ記録処理を終了する。
図14は、本発明の第1の実施の形態における画像処理装置100によるメタデータ記録処理の処理手順のうちのアフィン変換パラメータ算出処理手順(図13に示すステップS920の処理手順)を示すフローチャートである。
最初に、変数iが「1」に初期化される(ステップS921)。続いて、オプティカルフローが検出された特徴点の中から、M個の特徴点が選択される(ステップS922)。例えば、カメラワークパラメータとして、アフィン変換パラメータを用いる場合には、3個の特徴点がランダムに選択される。また、カメラワークパラメータとして、射影変換パラメータを用いる場合には、4個の特徴点がランダムに選択される。続いて、選択されたM個の特徴点に対応して計算されたM個のオプティカルフローに基づいて、アフィン変換パラメータが算出される(ステップS923)。
続いて、算出されたアフィン変換パラメータに基づいて、アフィン変換パラメータのスコアが計算される(ステップS924)。具体的には、算出されたアフィン変換パラメータを用いて、直前のフレームに対応する画像における全ての特徴点の移動先の位置を求める。そして、このアフィン変換パラメータを用いて求められた特徴点の位置と、ステップS911でオプティカルフローを計算した際に求められた現フレームに対応する画像における特徴点の位置とを比較する。そして、互いに対応する2つの特徴点の位置の差分値が特徴点毎に計算される。差分値として、例えば、互いに対応する2つの位置間の絶対距離が計算される。続いて、計算された差分値と、予め設定されている閾値とを特徴点毎に比較して、その差分値が閾値よりも小さい特徴点の個数をアフィン変換パラメータのスコアとして求める。
続いて、変数iに「1」が加算され(ステップS925)、変数iが、定数Nよりも大きいか否かが判断される(ステップS926)。変数iが、定数N以下である場合には(ステップS926)、ステップS922に戻り、アフィン変換パラメータのスコア算出処理を繰り返す(ステップS922乃至S925)。例えば、定数Nとして、20を用いることができる。
一方、変数iが定数Nよりも大きい場合には(ステップS926)、求められたアフィン変換パラメータのスコアのうちで、スコアの値が最も大きいアフィン変換パラメータが代表アフィン変換パラメータとして選択される(ステップS927)。
本発明の第1の実施の形態では、カメラワークパラメータの検出として、動画を構成する画像において検出されたオプティカルフローに基づいてアフィン変換パラメータを検出する例について説明した。しかしながら、例えば、加速度センサやジャイロセンサ等のセンサやズーム操作をする際に用いられるズームボタンをカメラに設け、このセンサやズームボタンによって撮影時におけるカメラの移動量を検出する。そして、このカメラの移動量に基づいてカメラワークパラメータを求めるようにしてもよい。また、カメラワークパラメータ算出部123により複数のカメラワークパラメータを検出しておき、撮影時において検出されたカメラの移動量に基づいて、この複数のカメラワークパラメータの中から1つのカメラワークパラメータを選択するようにしてもよい。
[画像のアフィン変換例]
次に、カメラワーク検出部120により算出されたアフィン変換パラメータを用いて、動画を構成する画像をアフィン変換する場合について図面を参照して詳細に説明する。なお、図15乃至図23に示す各画像は、説明のため、簡略化するとともに、動画を構成する各画像のうち、画像間の移動量が比較的小さい画像を示すものとする。また、図15乃至図23に示す各画像は、合成対象画像選択部170により選択された画像であるものとする。また、時間軸において前のフレームに後のフレームを上書きする場合を例にして示す。
最初に、カメラの撮影時において、倍率が変更されないものの、カメラの位置を中心として、カメラのレンズの方向が上下左右の何れかに移動されている場合について説明する。
図15は、カメラにより撮影された動画の遷移の一例を示す図である。図15には、山を背景にして人400を撮影した場合における動画を構成する画像401乃至403を示す。また、この例では、カメラのレンズの方向を右および上側に移動しながら、撮影者が撮影を行っている場合を示す。この場合には、カメラにより撮影される動画に含まれる人400が、その動画を構成する画像において右側から左側に移動するとともに下側に移動する。
図16は、本発明の実施の形態における合成対象画像選択部170により選択された画像401乃至403に含まれる被写体の軌跡を概略的に示す図である。なお、図16(b)および(c)に示す画像402および403において、前のフレームに対応する画像を破線で示す。図16(a)に示す画像401は、図15(a)に示す画像401と同じものである。また、図16(b)に示す画像402のうちの実線の部分は、図15(b)に示す画像402と同じものであり、図16(b)に示す画像402のうちの破線の部分は、図16(a)に示す画像401の実線の部分と同じものである。また、図16(b)に示す画像402における矢印404乃至406は、画像401および画像402に含まれる被写体の軌跡を示す矢印である。また、図16(c)に示す画像403のうちの実線の部分は、図15(c)に示す画像403と同じものであり、図16(c)に示す画像403のうちの破線の部分は、図16(b)に示す画像402の実線の部分と同じものである。また、図16(c)に示す画像403における矢印407乃至409は、画像402および画像403に含まれる被写体の軌跡を示す矢印である。
図16(b)および(c)に示すように、カメラの移動に合わせて、画像に含まれる人400および背景の山が移動する。この移動により検出される各オプティカルフローに基づいて、各画像間のアフィン変換パラメータを求めることができる。例えば、画像401を基準画像とする場合、画像401および402の各画像について算出されたアフィン変換パラメータのアフィン行列を乗算することにより、画像402をアフィン変換させるためのアフィン変換パラメータを求めることができる。また、画像401乃至403の各画像について算出されたアフィン変換パラメータのアフィン行列を乗算することにより、画像403をアフィン変換させるためのアフィン変換パラメータを求めることができる。なお、基準画像のアフィン変換パラメータは、単位行列のアフィン変換パラメータとする。
図17は、本発明の第1の実施の形態における画像合成部220により画像を合成する場合における画像合成例を示す図である。この例では、画像401を基準画像とし、合成対象画像メタデータ記憶部270に記憶されているアフィン変換パラメータを用いて、画像402および403をアフィン変換する場合を例にして説明する。
例えば、画像401に関連付けられているアフィン変換パラメータのアフィン行列をA1とする場合に、画像変換部190が、先頭のフレームの画像401の位置および大きさを基準にして、A1の行列により画像401をアフィン変換する。ここで、画像401は基準画像であるため、A1は単位行列である。このため、画像401の位置および大きさは変換されない。
続いて、次のフレームに対応する画像402が合成される場合には、画像変換部190が、画像402に関連付けられているアフィン変換パラメータを用いて画像402をアフィン変換する。例えば、画像402に関連付けられているアフィン変換パラメータの行列をA2とする。この場合において、画像変換部190が、画像401の位置および大きさを基準にして、行列A2により画像402をアフィン変換する。なお、図17(b)に示す例では、矢印415および416に示すように、画像402の位置のみが変換される。続いて、画像合成部220が、画像変換部190によりアフィン変換された画像402を、前のフレームに対応する画像401に重なるように上書きして合成する。すなわち、画像401の領域のうちで、画像402と重複する領域410については、画像402の画像が上書きされる。また、画像401の領域のうちで、画像402と重複しない領域411については、画像402の画像が上書きされない。すなわち、2つ目のフレームに対応する画像402が合成される場合には、図17(b)に示すように、画像402の全体部分と、画像401のうちの領域411に対応する部分とが合成された画像が作成される。
続いて、次のフレームに対応する画像403が表示される場合には、画像変換部190が、画像403に関連付けられているアフィン変換パラメータを用いて画像403をアフィン変換する。例えば、画像403に対応するアフィン変換パラメータの行列をA3とする。この場合において、画像変換部190が、画像401の位置および大きさを基準にして、行列A3により画像403をアフィン変換する。なお、図17(c)に示す画像においては、矢印417および418に示すように、画像403の位置のみが変換される。続いて、画像合成部220が、画像変換部190によりアフィン変換された画像403を、前のフレームに対応する画像401および402の合成画像に重なるように上書きして合成する。すなわち、画像401および402の合成画像の領域のうちで、画像403と重複する領域413および414については、画像403の画像が上書きされる。また、画像401および402の合成画像の領域のうちで、画像403と重複しない領域411および412については、画像401および402の合成画像が合成される。すなわち、3つ目のフレームに対応する画像403が合成される場合には、図17(c)に示すように、画像403の全体部分と、画像401のうちの領域411に対応する部分と、画像402のうちの領域412に対応する部分とが合成された画像が作成される。
次に、カメラの撮影時において、カメラのレンズの方向は移動されないものの、倍率が変更されている場合について説明する。
図18は、カメラにより撮影された動画の遷移の一例を示す図である。図18には、山を背景にして人420を撮影した場合における動画に含まれる連続するフレームに対応する画像421乃至423を示す。この例では、カメラのレンズの倍率を上げながら、撮影者が撮影を行っている場合を示す。この場合には、カメラにより撮影される動画に含まれる人420が、その動画を構成する画像において次第に大きくなる。なお、倍率を上げる際にカメラの位置が多少移動する場合があるものの、この例では、カメラの位置の移動については考慮せずに説明する。
図19は、本発明の実施の形態における合成対象画像選択部170により選択された画像421乃至423に含まれる被写体の軌跡を概略的に示す図である。なお、図19に示すアフィン変換パラメータの算出例は、図16に示すアフィン変換パラメータの算出例と同様であるため、ここでの説明を省略する。
図20は、本発明の第1の実施の形態における画像合成部220により画像を合成する場合における画像合成例を示す図である。なお、図20に示す画像合成例は、図17に示す画像合成例と同様であるため、ここでの説明を省略する。
次に、カメラの撮影時において、カメラのレンズの方向や倍率は変更されないものの、光軸方向を回転中心にしてカメラが回転されている場合について説明する。
図21は、カメラにより撮影された動画の遷移の一例を示す図である。図21には、山を背景にして人440を撮影した場合における動画に含まれる連続するフレームに対応する画像441乃至443を示す。この例では、光軸方向を回転中心にしてカメラを回転しながら、撮影者が撮影を行っている場合を示す。この場合には、カメラにより撮影される動画に含まれる人440が、その動画を構成する画像において回転していく。なお、カメラの回転によりカメラの位置が多少移動する場合があるものの、この例では、カメラの位置の移動については考慮せずに説明する。
図22は、本発明の実施の形態における合成対象画像選択部170により選択された画像441乃至443に含まれる被写体の軌跡を概略的に示す図である。なお、図22に示すアフィン変換パラメータの算出例は、図16に示すアフィン変換パラメータの算出例と同様であるため、ここでの説明を省略する。
図23は、本発明の第1の実施の形態における画像合成部220により画像を合成する場合における画像合成例を示す図である。なお、図23に示す画像合成例は、図17に示す画像合成例と同様であるため、ここでの説明を省略する。
[画像合成対象区間の選択例]
次に、動画から合成対象画像を選択するための区間(画像合成対象区間)を選択する区間選択方法について図面を参照して詳細に説明する。本発明の第1の実施の形態では、次の(1)乃至(4)の条件を満たす区間を画像合成対象区間として選択する例について説明する。
(1)カメラワーク検出の信頼度が高いこと。
(2)ズーム率が小さいこと。すなわち、ズームの変化が少ないこと。
(3)水平方向(左右方向)または垂直方向(上下方向)へ一定画素数以上移動していること。
(4)画像合成対象区間の長さは、一定の範囲内の長さ(例えば、3秒から20秒までの範囲内)であること。
また、本発明の第1の実施の形態では、次の(a)および(b)の条件を満たす場合に、上記条件(1)のカメラワーク検出の信頼度が高いと判定する。
(a)画像の画面全体における特徴点のうち、支配的な動きを見せた特徴点の割合を示す値が閾値を越えていること。
(b)フレーム間の変化率が一定の範囲内であること。このフレーム間の変化率は、フレーム間に関するアフィン変換パラメータにより算出されるカメラワークの各成分を示す値である。
図24は、本発明の第1の実施の形態におけるカメラワーク検出部120により算出された信頼度判定スコアを時系列で示す図である。図24(a)には、信頼度判定スコアの算出対象となったフレームを矩形で模式的に示す。なお、図24(a)では、各フレームを示す矩形内にフレームの通し番号を付す。
図24(b)には、図24(a)に示すフレーム1乃至15について算出された信頼度判定スコアをフレーム毎に表すグラフを示す。図24(b)に示すグラフにおいて、横軸は撮像時刻を示す軸であり、縦軸は各フレームについて算出された信頼度判定スコアの値を示す軸である。また、縦軸において、上記条件(1)の閾値を閾値TH1とする。ここで、閾値TH1として、例えば、0.5〜0.8の値を設定することができる。なお、図24(b)に示すグラフの横軸では、撮像時刻に応じた各フレーム番号を示す。ここで、信頼度判定スコアSHSは、信頼度判定スコア算出部124により算出された値であり、動画記憶部200に記憶されている動画ファイルを構成する各フレームに関連付けられてメタデータ記憶部210に記憶されている。
この例では、説明の容易のため、図24(a)に示すように、上記条件(4)の一定の範囲をK1以上K2以下の範囲とする。また、図24(b)に示すグラフにおいて、各フレームについて算出された信頼度判定スコアを白抜きの丸で示す。この信頼度判定スコアを示す白抜きの丸のうち、閾値TH1を超えているものについては、太線の丸で示す。
図24(b)に示すように、例えば、フレーム1、3の信頼度判定スコアは閾値TH1以下であるため、フレーム1および3は画像合成対象区間候補とは判定されない。また、フレーム2の信頼度判定スコアは閾値TH1を越えているが、隣のフレーム1および3の何れの信頼度判定スコアも閾値TH1以下であるため、上記条件(4)の条件を満たさない。このため、フレーム2は画像合成対象区間候補とは判定されない。これに対して、例えば、フレーム4乃至14の信頼度判定スコアは閾値TH1を越えている。しかしながら、フレーム4乃至14の長さは、上記条件(4)の一定の範囲(K1以上K2以下の範囲)を超えている。このため、フレーム4乃至14のうち、上記条件(4)の一定の範囲内のフレーム4乃至13が、区間選択部160により画像合成対象区間候補500と判定される。すなわち、区間選択部160は、上記条件(4)の一定の範囲内に含まれる各フレームの信頼度判定スコアSHSが閾値TH1以上となる連続するフレームを画像合成対象区間候補として抽出する。
続いて、区間選択部160は、画像合成対象区間候補に含まれる各フレームの変化率(カメラワークの各成分)が、以下の条件(11)乃至(17)を満たすか否かを判定する。
(11)XZth1<XZ<XZth2
(12)YZth1<YZ<YZth2
(13)XT<XTth
(14)YT<YTth
(15)XR<XRth
(16)YR<YRth
(17)|XR−YR|<ADRth
ここで、XZはカメラワークのX方向のズーム成分を示し、YZはカメラワークのY方向のズーム成分を示す。また、XTはカメラワークのX方向の並進成分を示し、YTはカメラワークのY方向の並進成分を示す。また、XRはカメラワークのX方向の回転成分を示し、YRはカメラワークのY方向の回転成分を示す。また、XZth1、XZth2、、YZth1、YZth2、XTth、YTth、XRth、YRth、ADRthは、閾値を示す。
ここで、閾値XZth1、YZth1として、例えば、0.7〜0.9の値を設定することができる。また、閾値XZth2、YZth2として、例えば、1.1〜1.3の値を設定することができる。また、閾値XTthとして、例えば、W/20〜W/5の値を設定することができる。なお、Wは、対象となる画像の水平方向の画素数を示す値である。また、閾値YTthとして、例えば、H/20〜H/5の値を設定することができる。なお、Hは、対象となる画像の垂直方向の画素数を示す値である。また、閾値XRth、YRthとして、例えば、3deg〜5degを設定することができる。また、閾値ADRthとして、例えば、0.5deg〜1.0degを設定することができる。
信頼度判定スコアに基づいて抽出された画像合成対象区間候補に含まれる各フレームのカメラワークの各成分が、条件(11)乃至(17)を満たす場合には、条件(2)および(3)を満たすか否かが判定される。一方、その画像合成対象区間候補に含まれる各フレームのカメラワークの各成分が、条件(11)乃至(17)を満たさない場合には、その画像合成対象区間候補は画像合成対象区間と判定されない。
図25は、本発明の第1の実施の形態におけるカメラワーク検出部120により算出されたアフィン変換パラメータを用いて算出される積算ズーム成分を時系列で示す図である。図25(a)には、積算ズーム成分の算出対象となったフレームを矩形で模式的に示す。なお、図25(a)に示すフレーム1乃至15は、図24(a)に示すものと同じである。
図25(b)には、図25(a)に示すフレーム1乃至15について算出された水平方向(X方向)の積算ズーム成分をフレーム毎に表すグラフを示す。図25(b)に示すグラフにおいて、横軸は撮像時刻を示す軸であり、縦軸は各フレームについて算出された積算ズーム成分の値を示す軸である。この積算ズーム成分は、1つのフレームを基準フレームとして、この基準フレームから対象フレームまでのそれぞれに関連付けられているアフィン変換パラメータのアフィン行列の乗算により算出されたアフィン行列のズーム成分の値である。なお、基準フレームに関連付けられているアフィン変換パラメータは、単位行列の値とする。すなわち、基準フレームの積算ズーム成分の値は1.0であり、対象フレームの積算ズーム成分の値は、基準フレームに対する相対的な値となる。また、この積算ズーム成分は、カメラワークのX方向のズーム成分およびY方向のズーム成分について算出される。なお、図25に示す例では、X方向のズーム成分について算出された積算ズーム成分を一例として示す。
図25(b)に示すグラフにおいて、各フレームについて算出された積算ズーム成分を白抜きの丸で示す。また、画像合成対象区間候補500に含まれる各フレームについて算出された積算ズーム成分を示す白抜きの丸のうち、先頭のフレームに対応する白抜きの丸を積算ズーム成分501として示す。また、画像合成対象区間候補500に含まれる各フレームについて算出された積算ズーム成分を示す白抜きの丸のうち、最大値を示す白抜きの丸を積算ズーム成分502とし、最小値を示す白抜きの丸を積算ズーム成分503として示す。なお、図25(b)に示すグラフの横軸では、撮像時刻に応じた各フレーム番号を示す。また、図25(b)に示すグラフの縦軸では、最大値を示す積算ズーム成分502の値をM2とし、最小値を示す積算ズーム成分503の値をM1として示す。
ここで、条件(2)に用いられるズーム率は、積算ズーム成分の最大値と最小値との比を示す値である。この条件(2)は、画像合成対象区間候補に含まれる各フレームに対するズーム率が、一定範囲内にあるか否かに基づいて判定される。この一定範囲は、例えば、以下で示すように、閾値XZth2未満の範囲とすることができる。
XZm1/XZm2<XZth2
ここで、XZm1は、画像合成対象区間候補に含まれる各フレームについて算出されたX方向の積算ズーム成分のうち最大の値であり、XZm2は、その積算ズーム成分のうち最小の値である。なお、閾値XZth2として、例えば、1.5〜3.0の値を設定することができる。また、Y方向のズーム成分について算出されたズーム率についても、以下に示す式を満たすか否かに基づいて判定することができる。
YZm1/YZm2<YZth2
ここで、YZm1は、画像合成対象区間候補に含まれる各フレームについて算出されたY方向の積算ズーム成分のうち最大の値であり、YZm2は、その積算ズーム成分のうち最小の値である。なお、閾値YZth2として、例えば、1.5〜3.0の値を設定することができる。
条件(11)乃至(17)を満たす画像合成対象区間候補に含まれる各フレームについて算出されたX方向およびY方向のズーム率が、条件(2)を満たす場合には、条件(3)を満たすか否かが判定される。一方、その画像合成対象区間候補に含まれる各フレームについて算出されたX方向およびY方向のズーム率が、条件(2)を満たさない場合には、その画像合成対象区間候補は画像合成対象区間と判定されない。
図26は、本発明の第1の実施の形態におけるカメラワーク検出部120により算出されたアフィン変換パラメータを用いて算出される積算並進成分を時系列で示す図である。図26(a)には、積算並進成分の算出対象となったフレームを矩形で模式的に示す。なお、図26(a)に示すフレーム1乃至15は、図24(a)に示すものと同じである。
図26(b)には、図26(a)に示すフレーム1乃至15について算出された水平方向(X方向)の積算並進成分をフレーム毎に表すグラフを示す。図26(b)に示すグラフにおいて、横軸は撮像時刻を示す軸であり、縦軸は各フレームについて算出された積算並進成分の値を示す軸である。この積算並進成分は、1つのフレームを基準フレームとして、この基準フレームから対象フレームまでのそれぞれに関連付けられているアフィン変換パラメータのアフィン行列の乗算により算出されたアフィン行列の並進成分の値である。なお、基準フレームに関連付けられているアフィン変換パラメータは、単位行列の値とする。すなわち、基準フレームの積算並進成分の値は0.0であり、対象フレームの積算並進成分の値は、基準フレームに対する相対的な値となる。また、この積算並進成分は、カメラワークのX方向の並進成分およびY方向の並進成分について算出される。なお、図26に示す例では、X方向の並進成分について算出された積算並進成分を一例として示す。
図26(b)に示すグラフにおいて、各フレームについて算出された積算並進成分を白抜きの丸で示す。また、画像合成対象区間候補500に含まれる各フレームについて算出された積算並進成分を示す白抜きの丸を太線で示す。なお、図26(b)に示すグラフの横軸では、撮像時刻に応じた各フレーム番号を示す。また、図26(b)に示すグラフの縦軸では、条件(2)に用いられる閾値XTth2および−XTth2を示す。
ここで、条件(3)は、水平方向または垂直方向へ一定画素数以上移動しているか否かに基づいて判定される。すなわち、パンニングおよびチルチングの少なくとも1つが比較的大きいか否かに基づいて判定される。例えば、以下で示すように、積算並進成分XT1の絶対値が、閾値XTth2を超えているか否かに基づいて判定される。
|XT1|>XTth2
ここで、閾値XTth2として、例えば、3W〜10Wの値を設定することができる。なお、Wは、画像の水平方向の画素数を示す値である。また、Y方向の積算並進成分YT1についても、以下に示す式を満たすか否かに基づいて判断することができる。
|YT1|>YTth2
ここで、閾値YTth2として、例えば、3H〜10Hの値を設定することができる。なお、Hは、画像の垂直方向の画素数を示す値である。
例えば、図26に示す例では、画像合成対象区間候補500に含まれるフレーム12および13について算出されたX方向の積算並進成分の値が閾値XTth2を超えている。すなわち、図26に示す例では、画像合成対象区間候補500に含まれる各フレームについて算出されたX方向の積算並進成分の絶対値が閾値XTth2を超えているため、条件(3)を満たすと判定される。また、画像合成対象区間候補に含まれる各フレームについて算出されたY方向の積算並進成分の絶対値が閾値XTth2を超えている場合でも、条件(3)を満たすと判定される。このように、条件(3)を満たすと判断された画像合成対象区間候補については、区間選択部160が、画像合成対象区間として選択する。一方、その画像合成対象区間候補に含まれる各フレームについて算出されたX方向およびY方向の何れの積算並進成分も、条件(3)を満たさない場合には、その画像合成対象区間候補は画像合成対象区間と判定されない。
以上では、条件(1)および(4)を満たす画像合成対象区間候補に含まれる各フレームについて、条件(11)乃至(17)を満たすか否かを判定する。そして、条件(11)および(17)を満たす画像合成対象区間候補に含まれる各フレームについて、条件(2)および(3)を満たすか否かを判定する例を示した。しかしながら、これらの判定は、異なる順序で行うようにしてもよい。また、条件(1)乃至(4)、条件(11)乃至(17)のうち、何れかの判定条件を省略するようにしてもよい。また、例えば、画像合成対象区間候補に含まれる各フレームについて、他の判定条件を用いて画像合成対象区間を選択するようにしてもよい。例えば、積算回転成分を用いて回転率が少ないことを判定条件とするようにしてもよい。
このように選択された画像合成対象区間に含まれるフレームの全てを用いて合成画像を作成することができる。しかしながら、例えば、同一の撮影場所において、比較的広範囲の空間が撮像された複数の静止画像を貼り合わせたような合成画像を作成することにより、動画の再生では味わうことができない面白みをユーザに提供することができると考えられる。すなわち、動画の再生では味わうことができないパノラマ風の静止画の合成画像(例えば、写真を貼り合わせたような画像)をユーザに提供することができる。そこで、本発明の第1の実施の形態では、画像合成対象区間に含まれる各フレームから、合成画像の作成に用いられるフレームをさらに選択する。ここで、本発明の第1の実施の形態では、画像合成対象区間において、顔が含まれる画像を優先的に選択して、この画像を最前面フレームとして選択し、この最前面フレームとの重複率に基づいて、他のフレームを選択する例について説明する。また、顔が含まれる画像が複数存在する場合には、複数の顔のうちの笑顔の度合いを示す表情評価値(笑顔スコア)が最も高い画像を最前面フレームとして選択することができる。なお、表情評価値以外に、例えば、ボケ具合評価値等を判定に用いてもよい。
図27は、本発明の第1の実施の形態における区間選択部160により選択された画像合成対象区間に含まれる画像を時系列で模式的に示す図である。図27(a)には、静止している犬、人物および車を被写体として、カメラのレンズの方向を水平方向に移動しながら、撮影者が撮影を行った場合における画像の遷移を示す。図27(b)には、木および山を被写体として、カメラのレンズの方向を水平方向に移動しながら、撮影者が撮影を行った場合における画像の遷移を示す。なお、図27に示す各画像は、説明のため、簡略化するとともに、連続する2つのフレーム間の移動量を大きくして示している。
図27(a)に示す画像511乃至518のうちで、画像512乃至515には人物の顔が含まれている。また、画像512乃至515に含まれる顔のうちで、画像513に含まれる顔について算出された表情評価値が最も高い値であるものとする。区間選択部160により選択された画像合成対象区間に含まれる画像に顔が含まれている場合には、合成対象画像選択部170が、顔が含まれる画像を最前面フレームとして選択する。また、図27(a)に示すように、複数の画像に顔が含まれている場合には、これらの顔について算出された表情評価値の最も高い顔を含む画像が、最前面フレームとして選択される。図27(a)に示す例では、画像513が選択される。
また、図27(b)に示す画像521乃至528には、人物の顔が含まれていない。このように、区間選択部160により選択された画像合成対象区間に含まれる画像に顔が含まれていない場合には、合成対象画像選択部170が、画像合成対象区間に含まれる画像のうちの時間軸における先頭の画像を最前面フレームとして選択する。図27(b)に示す例では、画像合成対象区間に含まれる先頭フレームに対応する画像521が選択される。
このように、画像合成対象区間から選択された最前面フレームを基準フレームとし、この基準フレームに基づいて他のフレームを選択する。本発明の第1の実施の形態では、画像合成対象区間に含まれる画像間における重複領域に基づいて、フレームを選択する例について説明する。
図28は、本発明の第1の実施の形態における合成対象画像選択部170により合成対象画像を選択する場合における選択方法を模式的に示す図である。この例では、2つのワークバッファを用いて、最前面フレームに対する他のフレームを選択する場合を例にして説明する。
第1ワークバッファ531および第2ワークバッファ532は、画像を構成する各画素を1ビットで表すワークバッファである。すなわち、第1ワークバッファ531および第2ワークバッファ532に画像を貼り付ける場合には、貼り付け位置のビットが立てられる。また、第1ワークバッファ531には、選択された画像が合成画像として貼り付けられ、第2ワークバッファ532には、選択の判定対象となる1つの画像がアフィン変換されて貼り付けられる。そして、第1ワークバッファ531に張り付けられた合成画像と、第2ワークバッファ532に貼り付けられた画像との重複部分が算出される。ここで、算出された重複部分の領域の面積を面積Cとし、第1ワークバッファ531に張り付けられた合成画像の面積を面積Aとし、第2ワークバッファ532に貼り付けられた画像の面積を面積Bとする。この場合に、面積C/面積Aの値と、面積C/面積Bの値とが算出され、この2つの値のうちで大きい値が重複率として算出される。
続いて、算出された重複率が閾値を下回った場合に、その画像を選択する。この閾値として、例えば、60%を設定することができる。そして、算出された重複率が閾値を下回った画像については、合成対象画像として選択されるとともに、第1のワークバッファ531に貼り付けられる。そして、次のフレームについて、同様の判定処理が行われる。
例えば、図28(a)に示す第1ワークバッファ531には、最前面フレームとして選択された画像534と、次に選択された画像535との合成画像が貼り付けられているものとする。また、画像534および535により作成された合成画像の領域を実線で示す。また、図28(a)に示す第2ワークバッファ532には、判定対象となる画像536が貼り付けられているものとする。また、画像536の領域を実線の矩形で示す。ここで、判定対象となる画像については、図28(a)に示す第1ワークバッファ531に貼り付けられた最前面フレーム(画像534)の位置を基準として、アフィン変換された後に第2ワークバッファ532に貼り付けられる。このアフィン変換は、メタデータ記憶部210に記憶されているアフィン変換パラメータを用いて行われる。なお、図28に示す例では、画像536は位置のみが変換され、角度および大きさは変換されていない例を示す。
続いて、図28(b)に示すように、第1ワークバッファ531に貼り付けられた合成画像(画像534および535の合成画像)と、第2ワークバッファ532に張り付けられた画像536との重複部分538が算出される。なお、図28(b)に示すワークバッファ範囲533は、第1ワークバッファ531および第2ワークバッファ532に対応する大きさを示す範囲である。このワークバッファ範囲533において、算出された重複部分538については内部に斜線を付した矩形で示し、他の画像部分については点線で示す。ここで、算出された重複部分538の面積を面積C1とし、第1ワークバッファ531に張り付けられた合成画像(画像534および535の合成画像)の面積を面積A1とし、第2ワークバッファ532に貼り付けられた画像536の面積を面積B1とする。この場合には、面積B1の値よりも面積A1の値が大きいため、面積C1/面積A1の値よりも、面積C1/面積B1の値が大きくなる。このため、面積C1/面積B1の値が重複率として算出される。
続いて、算出された重複率(面積C1/面積B1の値)が閾値を下回った場合に、画像536が合成対象画像として選択される。このように合成対象画像が選択された場合には、最前面フレームから現在のフレームまでのアフィン変換パラメータのアフィン行列を乗算した行列の値が算出される。ここで、最前面フレームのアフィン変換パラメータについては、単位行列の値が用いられる。そして、算出された行列のアフィン変換パラメータと、選択された合成対象画像のフレーム番号および顔データとが合成対象画像メタデータ記憶部270に記録される。なお、最前面画像として選択された合成対象画像については、これらの情報ともに、最前面フレームを示す情報が合成対象画像メタデータ記憶部270に記録される。
また、画像536が合成対象画像として選択された場合には、図28(c)に示すように、第1のワークバッファ531に画像536が貼り付けられる。すなわち、第1のワークバッファ531に画像534乃至536の合成画像が貼り付けられる。そして、図28(d)に示すように、次の画像537について判定処理が同様に行われる。一方、算出された重複率が閾値を下回らなかった場合には画像536が選択されず、第1のワークバッファ531に画像536が貼り付けられない。この場合には、次の画像と、画像534および535との間で判定処理が行われる。
なお、この例では、2つのワークバッファを用いて重複率を順次算出して合成対象画像を選択する例を示すが、メタデータ記憶部210に記憶されているアフィン変換パラメータのみを用いて重複率を算出して合成対象画像を選択するようにしてもよい。
図29は、本発明の第1の実施の形態における区間選択部160および合成対象画像選択部170による判定対象となる動画について時系列で模式的に示す図である。図29(a)には、動画記憶部200に記憶されている動画ファイルである動画ファイル540を構成するフレームを模式的に示す。図29(b)には、動画ファイル540について選択された画像合成対象区間の集合である画像合成対象区間群541を示す。図29(c)には、動画ファイル540を構成する各フレームについて顔が検出された区間を示す顔検出区間の集合である顔検出区間群544を示す。図29(d)には、動画ファイル540を構成する各フレームについて検出された顔が笑顔と判定された区間を示す笑顔検出区間の集合である笑顔検出区間群546を示す。図29(e)には、画像合成対象区間において選択された最前面フレームと、この最前面フレームを基準フレームとして他のフレームを探索する方向である探索方向548を示す。図29(f)には、動画ファイル540について選択されたフレーム(合成対象画像)の集合である選択フレーム群554を示す。なお、動画ファイル540を構成する各フレームについては、内部にフレーム番号を付した矩形で示す。また、各区間については、内部に斜線を付した矩形で示す。また、図29(e)では、最前面フレームを白抜きの丸で示し、この最前面フレームからの探索方向を矢印で示す。
例えば、動画ファイル540について区間選択部160により画像合成対象区間542および543が選択されたものとする。さらに、画像合成対象区間542に含まれる各フレームのうちで顔検出区間545において顔が検出されたものとする。また、顔検出区間545に含まれる各フレームのうちで笑顔検出区間547において表情評価値が一定値以上であり、笑顔であると判定されたものとする。この例では、笑顔検出区間547に含まれる各フレームのうちで、最も表情評価値が高い値のフレームをフレームhとする。この場合には、画像合成対象区間542において、フレームhが最前面フレーム549として選択される。そして、時間軸において前側の探索方向である探索方向550と、時間軸において後側の探索方向である探索方向551とに向かって、フレームの選択処理が行われる。この選択方法は、図28に示す選択方法と同様である。この場合に、例えば、フレームg+2、…、h、…、h+m、…、iが選択されたものとする。
また、画像合成対象区間543に含まれる各フレームにおいては、顔が検出されなかったものとする。この場合には、画像合成対象区間543に含まれる各フレームのうちで、時間軸において最も前側のフレームj+1が最前面フレーム552として選択される。そして、時間軸において後側の探索方向である探索方向553に向かってフレームが選択される。この選択方法は、図28に示す選択方法と同様である。この場合に、例えば、フレームj+1、…、j+n、…、k−3が選択されたものとする。
このように、1つの動画ファイルについて、1または複数の画像合成対象区間が選択され、この画像合成対象区間から複数のフレームが選択される。このように選択された複数のフレームを用いて合成画像が作成される。
このように、選択された画像合成対象区間の識別番号と、選択された各フレーム番号とが関連付けて合成対象画像メタデータ記憶部270に記録される。同時に、算出されたアフィン変換パラメータと、最前面フレームを示す最前面フレーム情報と、フレームについて検出された顔に関するデータである顔データとが関連付けて合成対象画像メタデータ記憶部270に記録される。そして、合成対象画像メタデータ記憶部270に記憶されている各情報を用いて、ユーザ操作により、合成画像を表示させることができる。例えば、画像合成対象区間542において選択されたフレームg+2、…、h、…、h+m、…、iの合成画像を表示させることができる。また、画像合成対象区間543において選択されたフレームj+1、…、j+n、…、k−3の合成画像を表示させることができる。
ここで、例えば、動画を構成する複数のフレームに顔が含まれている場合に、各顔について算出された各表情評価値が一定値よりも低い場合には、顔検出情報に含まれる位置および大きさ等を用いて最前面フレームを選択するようにしてもよい。例えば、検出された顔の位置が中心寄りであるとともに、そのサイズが比較的大きい画像を最前面フレームとして選択することができる。
[画像合成例]
次に、実際にカメラにより撮影された動画について選択された合成対象画像および合成対象画像の合成例を示す。
図30は、カメラにより撮影された動画について選択された合成対象画像の一例を示す図である。図30では、岩場のある山の斜面を背景して立っている女性を、カメラを移動させながら撮影した場合における動画について選択された画像561乃至568を示す。この動画は、時間軸において前側のフレームに対応する画像を画像561とし、矢印方向に沿って時系列で撮像されたものとする。また、被写体の女性の位置が画像のほぼ真中であり、笑顔となっている画像566が最前面フレームとして選択されているものとする。
図31および図32は、本発明の第1の実施の形態における画像合成部220により作成される合成画像の遷移を示す図である。図31および図32に示す画像571乃至578は、図30に示す画像561乃至568の周縁に白枠を付した画像であり、白枠を付した点以外は、画像561乃至568と同一である。
例えば、最前面フレームとして選択されている画像576を基準として、他の画像561乃至575、577、568に関連付けられているアフィン変換パラメータを用いて、画像571乃至578について作成される合成画像の大きさが算出される。このように算出された合成画像の大きさに基づいて、最前面フレームの位置および大きさが算出される。そして、この最前面フレームの位置および大きさに基づいて、他の画像が順次アフィン変換され、画像メモリ230に合成される。例えば、図31(a)乃至(d)および図32(a)に示すように、同一の画像合成対象区間において選択されたフレームのうちで、先頭のフレームから最前面画像の直前のフレームまでが時系列で順次合成される。すなわち、画像571乃至575が順次合成される。続いて、例えば、図32(b)および(c)に示すように、同一の画像合成対象区間において選択されたフレームのうちで、最後のフレームから最前面画像の直前のフレームまでが時系列で順次合成される。すなわち、画像577および578が順次合成される。続いて、例えば、図32(d)に示すように、同一の画像合成対象区間において選択された最前面画像576が合成される。このように、同一の画像合成対象区間において選択された各フレームについて、時間軸において最前のフレームおよび最後のフレームのそれぞれから画像を重ねていき、最後に最前面フレームとして選択された画像を上書きする。これにより、最前面フレームとして選択された画像が一番上側に表示され、綺麗な合成画像を作成することができる。
このように、合成対象画像メタデータ記憶部270に記憶されているメタデータファイルを用いて、動画を構成する一部の画像を合成して、その動画に含まれる1シーンを表すパノラマ風の合成画像を作成することができる。この場合に、動画を構成する連続するフレームの全てを用いることなく、一定条件を満たすフレームに白枠を付して合成するため、写真を貼り合わせたような合成画像を表示させることができる。この場合には、通常の動画再生に閲覧することができる画像とは全く異なる面白みのある画像を提供することができる。また、動画に含まれる各シーンについてパノラマ風の合成画像を自動で表示させることができるため、ユーザはその動画がどのようなシーンにより構成されているのかを容易に把握することができる。また、重点的に撮影されたシーンを表示させることができるため、ユーザに有意義な画像を提供することができる。また、人物の笑顔の画像を最前面画像とし、この画像に基づいて合成対象となる他の画像を選択するため、その笑顔の人物を引き立たせるようなパノラマ合成画像を提供することができる。
以上では、最前面フレームとして選択された画像を一番前に上書き合成する例を示したが、例えば、次図に示すように、ユーザ選択により時刻順に上書き合成をするようにしてもよい。
図33は、本発明の第1の実施の形態における画像合成部220により作成される合成画像の他の合成例を示す図である。図33(a)には、画像合成部220により作成され、表示部250に表示される合成画像の表示方法を選択する表示方法選択画面580を示す。この表示方法選択画面580には、チェック欄581および582と、「パノラマ風合成画像表示」ボタン583と、「キャンセル」ボタン584とが設けられている。
チェック欄581は、図31および図32に示すように、最前面フレームを一番上側に重ねて合成して表示する表示方法を選択するためのチェック欄である。チェック欄582は、図33(b)に示すように、時系列の順序で各フレームを重ねながら合成して表示する表示方法を選択するためのチェック欄である。これらのチェック欄にチェック印を付す操作入力は、カーソル585を用いて行われる。
「パノラマ風合成画像表示」ボタン583は、合成画像を表示部250に表示させる際に押下されるボタンである。すなわち、チェック欄581および582の何れかにチェック印が付された後に、カーソル585を用いて「パノラマ風合成画像表示」ボタン583を押下することにより、チェック印が付された合成方法により合成された画像が順次表示される。
「キャンセル」ボタン584は、チェック欄581および582の何れかに付されたチェック印を消去する場合に押下されるボタンである。
例えば、チェック欄581にチェック印が付された状態で、「パノラマ風合成画像表示」ボタン583が押下された場合には、図31および図32に示すように、最前面フレームの両側のフレームから順次合成が行われ、最前面フレームが一番上側に重ねて合成される。また、チェック欄582にチェック印が付された状態で、「パノラマ風合成画像表示」ボタン583が押下された場合には、図33(b)に示すように、時系列の順序で各フレームを重ねながら合成して表示される。
図33(b)には、画像571乃至578を合成する場合に、時系列の順序で合成された場合を示す。なお、画像571乃至578は、図31および図32に示す画像571乃至578と同様である。このように、時系列の順序で画像を合成した場合には、表示されている合成画像により、撮像時間を明確に把握することができる。しかしながら、例えば、最前面フレームとして選択された画像576に含まれる人物の近くの領域まで次の画像が上書きされるため、その人物が隠れてしまうおそれがある。そこで、例えば、画像576に関連付けて合成対象画像メタデータ記憶部270に記憶されている顔データを用いて、顔領域から一定範囲に他の画像が重ならないようにすることができる。
図33(c)には、最前面フレームに対応する画像576に含まれる顔の領域586から一定範囲(例えば、距離L1)内に上書きされた画像を移動させる場合を概略的に示す。例えば、図33(c)に示すように、画像571乃至578を時系列で通常の合成をする場合には、画像576に含まれる顔の領域586から距離L1内に画像577が上書きされる。そこで、図33(c)に示すように、画像576に含まれる顔の領域586から距離L1以上離れるように、矢印587方向に、画像577を移動させる。このように最前面画像の上側に重ねられる画像を移動させた場合には、移動された画像以降の画像についても同様の距離を移動させる。すなわち、画像577と同様の距離を、画像578を移動させる。これにより、例えば、図33(c)に示すように、画像576に含まれる人物の顔の周りが見えて、合成画像をさらに楽しむことができる。
また、1または複数の動画に関する合成画像を予め作成して記憶しておき、この記憶されている各合成画像をユーザ操作に基づいて表示させるようにしてもよい。また、合成画像の合成の遷移を画像毎に順次記憶しておき、これらの遷移を順次表示させるようにしてもよい。
[画像処理装置の動作例]
次に、本発明の第1の実施の形態における画像処理装置100の動作について図面を参照して説明する。
図34は、本発明の第1の実施の形態における画像処理装置100による合成対象画像のメタデータ記録処理の処理手順を示すフローチャートである。
最初に、区間選択部160が、区間抽出処理を行う(ステップS930)。この区間抽出処理については、図35を参照して詳細に説明する。続いて、合成対象画像選択部170が、フレーム選択処理を行う(ステップS950)。このフレーム選択処理については、図36を参照して詳細に説明する。なお、ステップS930およびS950は、特許請求の範囲に記載の選択手順の一例である。
図35は、本発明の第1の実施の形態における画像処理装置100による合成対象画像のメタデータ記録処理の処理手順のうちの区間抽出処理手順(図34に示すステップS930の処理手順)を示すフローチャートである。
最初に、変数tが「1」に初期化され(ステップS931)、動画ファイルを構成するフレームtが基準フレームとして設定される(ステップS932)。続いて、フレームtに対応するアフィン変換パラメータおよび信頼度判定スコアが、メタデータ記憶部210に記憶されているメタデータファイルから取得される(ステップS933)。
続いて、基準フレームからフレームtまでの経過時間Tが算出され(ステップS934)、経過時間Tが閾値TM1を超えているか否かが判断される(ステップS935)。経過時間Tが閾値TM1を超えている場合には(ステップS935)、ステップS946に進む。一方、経過時間Tが閾値TM1を超えていない場合には(ステップS935)、フレームtに対応する信頼度判定スコアSHSが、閾値TH1を超えているか否かが判断される(ステップS936)。フレームtに対応する信頼度判定スコアSHSが、閾値TH1を超えている場合には(ステップS936)、フレームtに対応するアフィン変換パラメータからカメラワークの各成分が算出される(ステップS937)。続いて、カメラワークの各成分の全ての値が閾値の範囲内であるか否かが判断される(ステップS938)。カメラワークの各成分の全ての値が閾値の範囲内である場合には(ステップS938)、基準フレームからフレームtまでの各フレームに対応するズーム率が算出される(ステップS939)。
続いて、算出されたズーム率が閾値の範囲内であるか否かが判断される(ステップS940)。算出されたズーム率が閾値の範囲内である場合には(ステップS940)、基準フレームからフレームtまでの各フレームに対応する移動量(積算並進成分)が算出される(ステップS941)。続いて、算出された移動量が閾値の範囲内であるか否かが判断される(ステップS942)。算出された移動量が閾値の範囲内である場合には(ステップS942)、対象となっている動画ファイルを構成するフレームの中で、フレームtが最後のフレームであるか否かが判断される(ステップS943)。フレームtが最後のフレームではない場合には(ステップS943)、変数tに「1」が加算され(ステップS944)、ステップS933に戻り、区間選択処理を繰り返す。一方、フレームtが最後のフレームである場合には(ステップS943)、区間選択処理を終了する。
また、フレームtに対応する信頼度判定スコアSHSが閾値TH1を超えていない場合(ステップS936)、または、カメラワークの各成分の全ての値が閾値の範囲内でない場合には(ステップS938)、ステップS945に進む。また、算出されたズーム率が閾値の範囲内でない場合(ステップS940)、または、算出された移動量が閾値の範囲内でない場合には(ステップS942)、ステップS945に進む。
続いて、経過時間Tが画像合成対象区間範囲TM2以下であるか否かが判断される(ステップS945)。経過時間Tが画像合成対象区間範囲TM2以下でない場合には(ステップS945)、基準フレームからフレームtまでの区間が画像合成対象区間として選択される(ステップS946)。一方、経過時間Tが画像合成対象区間範囲TM2以下である場合には(ステップS945)、変数tに「1」が加算され(ステップS944)、ステップS932に戻り、区間選択処理を繰り返す。
図36は、本発明の第1の実施の形態における画像処理装置100による合成対象画像のメタデータ記録処理の処理手順のうちのフレーム選択処理手順(図34に示すステップS950の処理手順)を示すフローチャートである。
最初に、区間選択部160により選択された1つの画像合成対象区間に含まれる各フレームに対応するアフィン変換パラメータ、顔検出情報および表情評価値が、メタデータ記憶部210に記憶されているメタデータファイルから取得される(ステップS951)。続いて、取得された画像合成対象区間に含まれる各フレームに対応するアフィン変換パラメータを用いて各フレームに対応する画像を合成する際に必要な大きさが算出され、この大きさのワークバッファが2つ確保される(ステップS952)。
続いて、取得された顔検出情報に基づいて、選択対象となる画像合成対象区間に含まれる各フレームに対応する画像に顔が含まれているか否かが判断される(ステップS953)。各フレームに対応する画像に顔が含まれている場合には(ステップS953)、顔が含まれる各画像に対応する表情評価値のうちで最も値が高い画像が最前面フレームとして選択される(ステップS954)。一方、各フレームに対応する画像に顔が含まれていない場合には(ステップS953)、画像合成対象区間に含まれるフレームのうちの先頭フレームが最前面フレームとして選択される(ステップS955)。
続いて、選択された最前面フレームが第1ワークバッファに貼り付けられ(ステップS956)、選択された最前面フレームに関する各メタデータが合成対象画像メタデータ記憶部270に記録される(ステップS957)。続いて、選択された最前面フレームと、この最前面フレームの何れかの方向に隣接するフレームとの重複率が算出される(ステップS958)。すなわち、重複率の算出対象となるフレームが第2ワークバッファに貼り付けられ、第1ワークバッファに貼り付けられている最前面フレームとの重複率が算出される。
続いて、算出された重複率が閾値以下であるか否かが判断される(ステップS959)。算出された重複率が閾値以下である場合には(ステップS959)、その重複率の算出対象となったフレームが選択され、選択されたフレームが第1のワークバッファに貼り付けられる(ステップS960)。続いて、選択されたフレームに関する各メタデータが合成対象画像メタデータ記憶部270に記録され(ステップS961)、ステップS961に進む。
一方、算出された重複率が閾値以下でない場合には(ステップS959)、選択対象となる画像合成対象区間に含まれる各フレームについて重複率の算出が終了したか否かが判断される(ステップS962)。各フレームについて重複率の算出が終了していない場合には(ステップS962)、直前に重複率が算出されたフレームに隣接するフレームの重複率が算出される(ステップS964)。すなわち、重複率の算出対象となるフレームが第2ワークバッファに貼り付けられ、第1ワークバッファに貼り付けられている合成画像との重複率が算出される。なお、直前に重複率が算出されたフレームが、画像合成対象区間の先頭フレームまたは最後のフレームである場合には、最前面フレームの他の方向に隣接するフレームの重複率が算出される。
選択対象となる画像合成対象区間に含まれる各フレームについて重複率の算出が終了した場合には(ステップS962)、区間選択部160により選択された全ての画像合成対象区間についてフレーム選択処理が終了したか否かが判断される(ステップS963)。全ての画像合成対象区間についてフレーム選択処理が終了していない場合には(ステップS963)、ステップS951に戻り、フレーム選択処理を繰り返す(ステップS951乃至S964)。一方、全ての画像合成対象区間についてフレーム選択処理が終了した場合には(ステップS963)、フレーム選択処理の動作を終了する。
図37は、本発明の第1の実施の形態における画像処理装置100による合成画像表示処理の処理手順を示すフローチャートである。この例では、最前面フレームを一番上側に重ねて合成する例を示す。また、この例では、動画記憶部200に記憶されている動画ファイルに関する合成画像を順次表示させる例について説明する。
最初に、ファイル取得部180が、合成対象画像メタデータ記憶部270に記憶されている各メタデータを取得する(ステップS970)。続いて、ファイル取得部180が、取得された各メタデータに対応する動画ファイルをデコードし、動画ファイルを構成する各フレームを取得する(ステップS971)。続いて、合成対象となる1つの画像合成対象区間のメタデータに含まれる各アフィン変換パラメータを用いて各フレームに対応する画像を合成する際に必要な大きさが算出され、この大きさのワークバッファが画像メモリ230に確保される(ステップS972)。また、このように算出された合成画像の大きさに基づいて、最前面フレームの位置および大きさが算出される。
続いて、取得されたメタデータに含まれる最前面フレーム情報に基づいて、最前面フレームが画像合成対象区間の先頭フレームであるか否かが判断される(ステップS973)。最前面フレームが画像合成対象区間の先頭フレームである場合には(ステップS973)、取得されたメタデータに含まれる各フレームのうち、フレーム番号の小さい画像から順番に取り出される(ステップS974)。
続いて、画像変換部190が、取り出された画像に関連付けられているアフィン変換パラメータを用いて、その画像をアフィン変換する(ステップS975)。続いて、画像合成部220が、アフィン変換された画像の周縁に白枠を付し、この白枠が付された画像を画像メモリ230に保持させる(ステップS976)。すなわち、アフィン変換されて白枠が付された画像が画像メモリ230に保持されている履歴画像に合成される。なお、最初の画像の場合には、その画像のみが画像メモリ230に保持される。続いて、表示制御部240が、画像メモリ230に保持されている合成画像を表示部250に表示させる(ステップS977)。続いて、画像メモリ230に保持された画像が、合成対象となっている画像合成対象区間の最後のフレームであるか否かが判断される(ステップS978)。最後のフレームである場合には(ステップS978)、全ての画像合成対象区間について合成画像表示処理が終了したか否かが判断される(ステップS979)。全ての画像合成対象区間について合成画像表示処理が終了していない場合には(ステップS979)、ステップS972に戻り、合成画像表示処理を繰り返す(ステップS972乃至S978、S980)。一方、全ての画像合成対象区間について合成画像表示処理が終了した場合には(ステップS979)、合成画像表示処理の動作を終了する。
また、最前面フレームが画像合成対象区間の先頭フレームでない場合には(ステップS973)、画像合成処理が行われる(ステップS980)。この画像合成処理については、図38を参照して詳細に説明する。
図38は、本発明の第1の実施の形態における画像処理装置100による合成画像表示処理の処理手順のうちの画像合成処理手順(図37に示すステップS980の処理手順)を示すフローチャートである。この例では、画像合成対象区間の先頭フレームから最前面フレームに向かって画像合成をした後に、最後のフレームから最前面フレームに向かって画像合成をし、最後に最前面フレームを合成する例を示す。
最初に、取得されたメタデータに含まれる各フレームのうち、フレーム番号の小さい画像から順番に取り出される(ステップS981)。続いて、画像変換部190が、取り出された画像に関連付けられているアフィン変換パラメータを用いて、その画像をアフィン変換する(ステップS982)。続いて、画像合成部220が、アフィン変換された画像の周縁に白枠を付し、この白枠が付された画像を画像メモリ230に保持させる(ステップS983)。すなわち、アフィン変換されて白枠が付された画像が画像メモリ230に保持されている履歴画像に合成される。なお、最初の画像の場合には、その画像のみが画像メモリ230に保持される。続いて、表示制御部240が、画像メモリ230に保持されている合成画像を表示部250に表示させる(ステップS984)。続いて、画像メモリ230に保持された画像が、合成対象となっている画像合成対象区間の最前面フレームの直前のフレームであるか否かが判断される(ステップS985)。最前面フレームの直前のフレームでない場合には(ステップS985)、ステップS981に戻り、先頭フレームから最前面フレームの直前のフレームまでの画像合成処理を繰り返す(ステップS981乃至S984)。
一方、最前面フレームの直前のフレームである場合には(ステップS985)、取得されたメタデータに含まれる各フレームのうち、フレーム番号の大きい画像から順番に取り出される(ステップS986)。続いて、画像変換部190が、取り出された画像に関連付けられているアフィン変換パラメータを用いて、その画像をアフィン変換する(ステップS987)。続いて、画像合成部220が、アフィン変換された画像の周縁に白枠を付し、この白枠が付された画像を画像メモリ230に保持させる(ステップS988)。すなわち、アフィン変換されて白枠が付された画像が画像メモリ230に保持されている履歴画像に合成される。続いて、表示制御部240が、画像メモリ230に保持されている合成画像を表示部250に表示させる(ステップS989)。続いて、画像メモリ230に保持された画像が、合成対象となっている画像合成対象区間の最前面フレームの直後のフレームであるか否かが判断される(ステップS990)。最前面フレームの直後のフレームでない場合には(ステップS990)、ステップS986に戻り、最後のフレームから最前面フレームの直後のフレームまでの画像合成処理を繰り返す(ステップS986乃至S989)。
一方、最前面フレームの直後のフレームである場合には(ステップS990)、最前面フレームの画像が取り出される(ステップS991)。続いて、画像変換部190が、取り出された最前面フレームの画像に関連付けられているアフィン変換パラメータを用いて、最前面フレームの画像をアフィン変換する(ステップS992)。なお、最前面フレームに関連付けられているアフィン変換パラメータは単位行列の値であるため、実際は最前面フレームの画像は変換されない。続いて、画像合成部220が、アフィン変換された最前面フレームの画像の周縁に白枠を付し、この白枠が付された画像を画像メモリ230に保持させる(ステップS993)。すなわち、アフィン変換されて白枠が付された画像が画像メモリ230に保持されている履歴画像に合成される。続いて、表示制御部240が、画像メモリ230に保持されている合成画像を表示部250に表示させる(ステップS994)。
<2.第2の実施の形態>
[画像処理装置の構成例]
本発明の第1の実施の形態では、フレーム間に関するアフィン変換パラメータを算出する際に、支配的な動きとなる特徴点の割合を信頼度判定スコアとして算出する例について説明した。以下では、他の算出方法により信頼度判定スコアを算出する例について図面を参照して詳細に説明する。ここで、本発明の第2の実施の形態における機能構成は、図1に示す画像処理装置100が備えるカメラワーク検出部120が異なる以外は画像処理装置100と略同一である。このため、カメラワーク検出部120以外の構成については、本発明の第1の実施の形態と同一の符号を付して、機能が異なるものについてのみ説明し、他の説明を省略する。
図39は、本発明の第2の実施の形態におけるカメラワーク検出部125の機能構成例を示すブロック図である。カメラワーク検出部125は、特徴点抽出部121と、オプティカルフロー算出部122と、カメラワークパラメータ算出部123と、信頼度判定スコア算出部126とを備える。ここで、特徴点抽出部121、オプティカルフロー算出部122およびカメラワークパラメータ算出部123については、図2に示すカメラワーク検出部120と同一である。そこで、以下では、信頼度判定スコア算出部126を中心に説明する。また、この例では、連続する2つのフレームの重複領域に含まれる各画素の輝度の差分値を利用して、信頼度判定スコアを算出する例について説明する。
信頼度判定スコア算出部126は、カメラワークパラメータ算出部123から出力されたカメラワークパラメータを用いて、動画入力部110から出力された動画を構成する連続する2つのフレームに関する信頼度判定スコアを算出するものである。そして、算出された信頼度判定スコアを記録制御部150に出力する。なお、信頼度判定スコア算出については、図40を参照して詳細に説明する。
[信頼度判定スコア算出例]
図40は、本発明の第2の実施の形態における信頼度判定スコア算出部126が信頼度判定スコアを算出する際における算出方法の概略を示す図である。図40には、動画を構成する連続する2つのフレームとして、時間軸における前のフレーム590と、後のフレーム591を示す。また、図40(a)には、フレーム590を基準として、フレーム591をアフィン変換し、このアフィン変換後のフレーム591をフレーム590に重ねた場合を示す。また、フレーム590および591の重複領域592の範囲を太線で示す。図40(b)には、図40(a)に示すフレーム590を示し、図40(c)には、図40(a)に示すフレーム591を示す。また、フレーム590および591に含まれる正方形は、各フレームを構成する画素を示すものとする。なお、図40(b)および(c)には、重複領域592に含まれる画素のみを正方形で示す。
信頼度判定スコア算出部126が信頼度判定スコアを算出する場合には、最初に、動画入力部110から出力された動画を構成する連続する2つのフレームについて、時間軸において前のフレームを基準フレームとして、後のフレームをアフィン変換する。このアフィン変換は、カメラワークパラメータ算出部123から出力されたカメラワークパラメータ(前のフレーム(基準フレーム)および後のフレームに関するアフィン変換パラメータ)を用いて行われる。続いて、信頼度判定スコア算出部126は、連続する2つのフレームに含まれる各画素のうち、アフィン変換後の重複領域に含まれる各画素の輝度の差分値の絶対値を算出する。続いて、信頼度判定スコア算出部126は、画素毎に算出された差分値の絶対値の合計値を算出し、この算出された合計値を、算出の対象となった画素数で除算した値を信頼度判定スコアとして算出する。
例えば、図40(a)乃至(c)に示すように、フレーム590の左上隅を原点とし、フレーム590の上側の辺をx軸とし、フレーム590の左側の辺をy軸とするxy座標を想定する。このxy座標において、例えば、フレーム590における重複領域の座標(i,j)における輝度値をI1(i,j)とし、アフィン変換後のフレーム591における重複領域の座標(i,j)における輝度値をI2(i,j)とする。また、差分値の算出に用いられた画素の数をPnumとすると、信頼度判定スコアSHS1は、以下の式で求めることができる。
ここで、Rは、フレーム590およびフレーム591の重複領域を示す。すなわち、図40(b)および(c)に示す矢印593乃至595のように、フレーム590およびフレーム591の重複領域に含まれる各画素のうち、対応する位置に存在する2つの画素の輝度の差分値の絶対値が順次算出される。そして、これらの差分値の絶対値を用いて、信頼度判定スコアSHS1が算出される。
このように、信頼度判定スコア算出部126により算出された信頼度判定スコアが、記録制御部150に出力され、メタデータ記憶部210に記録されている。すなわち、図3(b)に示すメタデータファイル211の信頼度判定スコア217に記録される。なお、信頼度判定スコア217の記録内容は、図3(b)に示す場合と数値が異なる。また、区間選択部160は、この信頼度判定スコアを用いて、閾値を超えたか否かに基づいて画像合成対象区間の選択を行う。例えば、この信頼度判定スコアがある閾値よりも低い場合に信頼度が高いと判定することができる。
以上では、連続する2つのフレームにおける重複領域に含まれる全ての画素を用いて信頼度判定スコアを算出する例について説明した。しかしながら、例えば、カメラワークパラメータ算出部123によるアフィン変換パラメータの算出対象となった特徴点に関する情報を用いて、信頼度判定スコアを算出するようにしてもよい。
[画像処理装置の構成例]
図41は、本発明の第2の実施の形態におけるカメラワーク検出部127の機能構成例を示すブロック図である。カメラワーク検出部127は、特徴点抽出部121と、オプティカルフロー算出部122と、カメラワークパラメータ算出部123と、信頼度判定スコア算出部128とを備える。ここで、特徴点抽出部121、オプティカルフロー算出部122およびカメラワークパラメータ算出部123については、図2に示すカメラワーク検出部120と同一である。そこで、以下では、信頼度判定スコア算出部128を中心に説明する。また、この例では、連続する2つのフレームの重複領域に含まれる各画素のうち、支配的な動きとなる特徴点の周囲に存在する画素の輝度の差分値を利用して、信頼度判定スコアを算出する例について説明する。
信頼度判定スコア算出部128は、動画入力部110から出力された動画を構成する連続する2つのフレームに関する信頼度判定スコアを算出するものであり、算出された信頼度判定スコアを記録制御部150に出力する。この信頼度判定スコア算出では、カメラワークパラメータ算出部123により算出されたカメラワークパラメータと、このカメラワークパラメータ算出に用いられた特徴点とが用いられる。なお、信頼度判定スコア算出については、図42を参照して詳細に説明する。
[信頼度判定スコア算出例]
図42は、本発明の第2の実施の形態における信頼度判定スコア算出部128が信頼度判定スコアを算出する際における算出方法の概略を示す図である。ここで、図42に示すフレーム590および591の関係と、フレーム590および591の重複領域592とについては、図40と同様であるため、ここでの説明を省略する。なお、図42(b)および(c)では、重複領域592の範囲を破線で示す。また、図42(a)乃至(c)に示す重複領域592に含まれる各画素(正方形で示す)において、支配的な動きとなる特徴点については、正方形の内部に一重丸を付し、その他の特徴点については、正方形の内部に二重丸を付す。例えば、図40(a)乃至(c)に示す重複領域592には、4つの支配的な動きとなる特徴点と、その他の1つの特徴点とが含まれている。この例では、重複領域592に含まれる各画素のうち、4つの支配的な動きとなる特徴点の周囲(例えば、8近傍)の画素を用いて、輝度の差分値を算出する例について説明する。ここで、重複領域592に含まれる各画素のうち、その他の1つの特徴点の周囲の画素は用いない。また、例えば、4つの支配的な動きとなる特徴点の周囲の画素と、その他の1つの特徴点の周囲の画素とが共通する場合には、1つの特徴点を優先して、これらの画素を計算に用いない。すなわち、図42に示す例では、領域601乃至608に含まれる各画素が、信頼度判定スコアの算出対象として用いられる。
信頼度判定スコア算出部128が信頼度判定スコアを算出する場合には、最初に、動画入力部110から出力された動画を構成する連続する2つのフレームについて、時間軸において前のフレームを基準フレームとして、後のフレームをアフィン変換する。このアフィン変換は、図40に示す例と同様である。続いて、信頼度判定スコア算出部128は、連続する2つのフレームに含まれる各画素のうち、アフィン変換後の重複領域に含まれる支配的な動きとなる特徴点の周囲の画素の輝度の差分値の絶対値を算出する。続いて、信頼度判定スコア算出部128は、支配的な動きとなる特徴点の周囲の画素毎に算出された差分値の絶対値の合計値を算出し、この算出された合計値を、算出の対象となった画素数で除算した値を信頼度判定スコアとして算出する。
例えば、図42(a)乃至(c)に示すように、フレーム590の左上隅を原点とし、フレーム590の上側の辺をx軸とし、フレーム590の左側の辺をy軸とするxy座標を想定する。このxy座標において、例えば、フレーム590における重複領域の座標(i,j)における輝度値をI11(i,j)とし、アフィン変換後のフレーム591における重複領域の座標(i,j)における輝度値をI12(i,j)とする。また、差分値の算出に用いられた画素の数をP1numとすると、信頼度判定スコアSHS2は、以下の式で求めることができる。
ここで、R1は、フレーム590およびフレーム591の重複領域のうち、支配的な動きとなる特徴点の周囲(例えば、8近傍)の領域を示す。なお、R1は、支配的な動きとなる特徴点の周囲の画素と、その他の特徴点の周囲の画素とが共通する場合には、これらの画素が含まれない領域とする。すなわち、図42(b)および(c)に示す領域601乃至608について、対応する位置に存在する2つの画素の輝度の差分値の絶対値が順次算出される。そして、これらの差分値の絶対値を用いて、信頼度判定スコアSHS2が算出される。
このように、信頼度判定スコア算出部128により算出された信頼度判定スコアが、記録制御部150に出力され、メタデータ記憶部210に記録されている。すなわち、図3(b)に示すメタデータファイル211の信頼度判定スコア217に記録される。なお、信頼度判定スコア217の記録内容は、図3(b)に示す場合と数値が異なる。また、区間選択部160は、この信頼度判定スコアを用いて、閾値を超えたか否かに基づいて画像合成対象区間の選択を行う。例えば、この信頼度判定スコアがある閾値よりも低い場合に信頼度が高いと判定することができる。
以上では、輝度の差分値を用いて信頼度判定スコアを算出する例を示した。しかし、輝度の差分値の代わりに、例えば、G(Green:緑)、R(Red:赤)、B(Blue:青)のそれぞれについて差分値を算出し、この差分値に基づいて信頼度判定スコアを算出するようにしてもよい。
また、例えば、連続する2つのフレームに対応する画像にガウシアンフィルタをかけて平滑化し、この平滑化された画像を縮小し、この縮小された画像における画素を用いて、上記と同様に、信頼度判定スコアを算出するようにしてもよい。
また、以上では、連続する2つのフレームに対応する画像を用いて信頼度判定スコアを算出する例について説明したが、例えば、カメラセンサ情報を用いて信頼度判定スコアを算出するようにしてもよい。例えば、3軸加速度センサおよび3軸ジャイロセンサを備えているカメラにより動画を記録する場合に、これらのセンサから出力されたセンサ情報をカメラ動き情報として動画に関連付けて記録する。そして、センサ情報が関連付けられている動画を動画入力部110に入力し、この動画を構成する各フレームについて算出された動き情報と、センサ情報により特定される動き情報との差分値を算出する。そして、この差分値を信頼度判定スコアとして用いることができる。この場合には、信頼度判定スコアが閾値以内の場合に、信頼度が高いと判定することができる。すなわち、カメラから出力されたセンサ情報を用いて推定された画像の動きと、動画を構成する画像から算出された画像の動きとの一致の程度が大きい場合に、信頼度が高いと判断する方法を採用することができる。
<3.第3の実施の形態>
[画像処理装置の動作例]
本発明の第1の実施の形態では、画像に含まれる顔または笑顔を用いて、最前面フレームを選択する例について説明した。本発明の第3の実施の形態では、顔に関する笑顔以外の顔属性や顔の状態を用いて、最前面フレームを選択する例について図面を参照して詳細に説明する。
図43は、本発明の第3の実施の形態における画像処理装置101の機能構成例を示すブロック図である。画像処理装置101は、合成対象画像選択部171と、顔属性状態判定部280と、基準情報記憶部281と、メタデータ記憶部290とを備える。なお、他の機能構成については、図1に示す画像処理装置100と略同一であるため、画像処理装置100の符号と同一の符号を付して、機能が異なるものを中心にして説明し、他の説明を省略する。
合成対象画像選択部171は、メタデータ記憶部290に記憶されているメタデータを用いて、区間選択部160から出力された画像合成対象区間に含まれるフレームの中から、合成画像を作成するためのフレームを選択するものである。そして、選択されたフレームに関する合成対象画像情報(フレーム選択情報)を記録制御部150に出力する。なお、合成対象画像選択については、図45乃至図48を参照して詳細に説明する。
顔属性状態判定部280は、基準情報記憶部281に記憶されている基準情報を用いて、顔検出部130により検出された顔の属性および状態を判定するものであり、判定結果を記録制御部150に出力する。具体的には、顔属性状態判定部280は、動画入力部110から出力された動画を構成する画像から取り出されて正規化された顔画像と、基準情報記憶部281に記憶されている各種データとの相関性を示す相関値を算出する。そして、算出された相関値に基づいて相関性の高さを判定し、正規化された顔画像に関する各種データを抽出する。これらの抽出処理を繰り返し実行し、抽出された各種データに基づいて、正規化された顔画像の表情等を判定する。このように、人の顔を認識するために、多数の顔データを統合させたデータベースとテンプレート・マッチングを取る手法を用いることができる(例えば、特開2003−271933、特開2004−30629等参照)。例えば、笑顔に関して、多数の笑顔のサンプル画像から笑顔データベースを構築しておき、これと画像の一部を取り出した顔画像とをテンプレート・マッチング処理することにより、「笑顔である」/「笑顔でない」の判定が可能である。同様に、他の属性または状態についても判定を行うことができる。なお、本発明の第1の実施の形態で示した評価値を用いて判定するようにしてもよい。また、顔属性状態判定部280は、特許請求の範囲に記載の判定部の一例である。
基準情報記憶部281は、性別判定等に用いる顔の各部等の基準情報を記憶するものであり、記憶されている基準情報を顔属性状態判定部280に供給する。なお、基準情報記憶部281に記憶される基準情報については、図44を参照して詳細に説明する。
メタデータ記憶部290は、記録制御部150の制御に基づいて、カメラワーク検出部120、顔検出部130および顔属性状態判定部280から出力された各情報を、動画およびフレームに関連付けてメタデータファイルとして記憶するものである。また、メタデータ記憶部290は、区間選択部160および合成対象画像選択部171にメタデータファイルを供給する。なお、メタデータ記憶部290に記憶されるメタデータファイルについては、図44を参照して詳細に説明する。
図44は、本発明の第3の実施の形態における基準情報記憶部281およびメタデータ記憶部290に記憶されている内容を模式的に示す図である。図44(a)には、基準情報記憶部281に記憶されている基準情報を示す。この基準情報は、例えば、目や口等の画像そのもの、人の顔としての特徴データベース、特定の人物の顔に関する特徴データベース等である。例えば、図44(a)に示すように、基準情報記憶部281には、性別データベース282と、年齢データベース283と、笑顔データベース284と、目瞑りデータベース285と、登録人物データベース286とが記憶されている。性別データベース282は、顔画像における性別を判定するためのデータベースであり、年齢データベース283は、顔画像における年齢を判定するためのデータベースである。また、笑顔データベース284は、顔画像における笑顔を判定するためのデータベースであり、目瞑りデータベース285は、顔画像における目瞑りを判定するためのデータベースである。また、登録人物データベース286は、ユーザによって特定された人物を登録人物として判定するためのデータベースである。一般に、画像そのものよりも特徴データの方が、多くの各種データベースを比較的少ない記憶容量で保持することができる。
図44(b)には、動画記憶部200に記憶されている動画ファイル201に関連付けてメタデータ記憶部290に記憶されているメタデータファイル291を模式的に示す。なお、動画ファイル201とメタデータファイル291との対応関係は、図3(b)に示す例と同様であるため、ここでの説明を省略する。メタデータファイル291には、動画ID292、フレーム番号293、アフィン変換パラメータ294、信頼度判定スコア295、顔検出情報296、性別297、年齢298、笑顔299、目瞑り287、登録人物288が関連付けて記憶されている。なお、動画ID292、フレーム番号293、アフィン変換パラメータ294、信頼度判定スコア295および顔検出情報296については、図3(b)に示す例と同様であるため、ここでの説明を省略する。
性別297は、フレーム番号293に対応する動画の各フレームに含まれる顔について判定された性別であり、顔属性状態判定部280から出力された判定結果が格納される。例えば、対応するフレームに顔が含まれていない場合には何も格納されない。例えば、対応するフレームに含まれる顔が男性であると判定された場合には、性別297に「1」が格納される。一方、対応するフレームに含まれる顔が女性であると判定された場合には、性別297に「0」が格納される。
年齢298は、フレーム番号293に対応する動画の各フレームに含まれる顔について判定された年齢であり、顔属性状態判定部280から出力された判定結果が格納される。例えば、対応するフレームに顔が含まれていない場合には何も格納されない。例えば、対応するフレームに含まれる顔が大人であると判定された場合には、年齢298に「1」が格納される。一方、対応するフレームに含まれる顔が子供であると判定された場合には、年齢298に「0」が格納される。
笑顔299は、フレーム番号293に対応する動画の各フレームに含まれる顔について判定された笑顔の有無であり、顔属性状態判定部280から出力された判定結果が格納される。例えば、対応するフレームに顔が含まれていない場合には何も格納されない。例えば、対応するフレームに含まれる顔が笑顔であると判定された場合には、笑顔299に「1」が格納される。一方、対応するフレームに含まれる顔が笑顔でないと判定された場合には、笑顔299に「0」が格納される。
目瞑り287は、フレーム番号293に対応する動画の各フレームに含まれる顔について判定された目瞑りの有無であり、顔属性状態判定部280から出力された判定結果が格納される。例えば、対応するフレームに顔が含まれていない場合には何も格納されない。例えば、対応するフレームに含まれる顔が目瞑り顔でないと判定された場合には、目瞑り287に「1」が格納される。一方、対応するフレームに含まれる顔が目瞑り顔であると判定された場合には、目瞑り287に「0」が格納される。
登録人物288は、フレーム番号293に対応する動画の各フレームに含まれる顔について判定された登録人物の有無であり、顔属性状態判定部280から出力された判定結果が格納される。例えば、対応するフレームに顔が含まれていない場合には何も格納されない。例えば、対応するフレームに含まれる顔がA氏であると判定された場合には、登録人物288に「A」が格納される。また、対応するフレームに含まれる顔がB氏であると判定された場合には、登録人物288に「B」が格納される。
[合成対象画像の選択例]
図45は、本発明の第3の実施の形態における表示部250に表示される選択画面の一例を示す図である。選択画面610は、ユーザが希望する合成画像を表示させるための選択操作を行う選択画面である。選択画面610には、例えば、顔属性として、性別611、年齢層612、登録人物613、表情614を選択するチェック欄が備えられる。また、選択画面610には、合成順序を選択するための合成順序615、重複率616を選択するためのプルダウンボタン617が備えられている。また、選択画面610には、「パノラマ風合成画像表示」ボタン619および「キャンセル」ボタン620が備えられている。
例えば、選択画面610において、カーソル618を用いて、性別611の女性欄にチェックを付し、年齢層612の大人欄にチェックを付し、登録人物613の登録人物欄にチェックを付し、表情614の笑顔欄にチェックを付す。また、登録人物613の登録人物欄にチェックを付した場合には、登録人物データベース286に登録されている登録人物の名前(例えば、A氏、B氏、C氏)が表示され、これらの登録人物から所望の名前の欄にチェックを付す。例えば、B氏にチェックを付す。また、選択画面610において、カーソル618を用いて、合成順序615の昇順欄にチェックを付す。また、カーソル618を用いて、プルダウンボタン617を押下することにより、図45に示すように、「高い」、「中程度」、「低い」の重複率一覧が表示される。この重複率一覧の中から所望の重複率を選択することができる。ここで、例えば、「高い」を選択した場合には、60%乃至70%の重複率のものを選択し、「中程度」を選択した場合には、60%乃至40%の重複率のものを選択し、「低い」を選択した場合には、40%乃至35%の重複率のものを選択する。なお、この例では、重複率一覧の中から所望の重複率をユーザが選択する例について示すが、所望の重複率をユーザが直接入力するようにしてもよい。なお、特にユーザが希望しない項目については、選択をしなくてもよい。
また、これらの各項目についてユーザによる選択操作が終了した場合には、ユーザがカーソル618を用いて「パノラマ風合成画像表示」ボタン619を押下する。これにより、「パノラマ風合成画像表示」ボタン619の押下時に選択されていた各項目の選択情報が、操作受付部260から合成対象画像選択部171に出力される。この選択情報に基づいて、合成対象画像選択部171がフレーム選択処理を行う。なお、「キャンセル」ボタン620が押下されると、各項目における選択状態が解除される。
図46は、本発明の第3の実施の形態における合成対象画像選択部171による選択判定スコアの算出に用いられるスコアの一例を示す図である。選択判定スコアは、フレームを選択するための値であり、フレームに含まれる顔に関する各情報に基づいて算出される。また、1つのフレームに複数の顔が含まれている場合には、これらの顔に関するスコアが顔毎に算出され、顔毎のスコアを加算した値が選択判定スコアとして算出される。また、選択判定スコアは、例えば、図45に示す選択画面610において選択された項目と、図46に示すスコアと、顔に関する属性および状態とに基づいて算出される。この顔に関する属性および状態は、メタデータ記憶部290に記憶されているメタデータを用いる。
具体的には、判定された顔の属性を示す属性値Z1と、判定された顔の状態を示す状態値J1とが算出され、この属性値Z1および状態値J1を加算することにより、選択判定スコアが算出される。ここで、属性値Z1は、例えば、顔の属性として、性別621、年齢層622、特定人物623の有無を用いて決定される値である。また、状態値J1は、例えば、顔の状態として、笑顔624、目瞑り625、画像における顔の位置(画像中心からの距離626)、画像における顔の大きさ627を用いて決定される値である。
例えば、性別621、年齢層622および特定人物623については、図45に示す選択画面610において選択された項目と、選択判定スコアの算出対象となる画像に含まれる顔の属性とが一致するか否かが判断される。そして、一致した項目に関する図46に示すスコアが属性値Z1に加算される。また、笑顔624については、図45に示す選択画面610において選択された項目と、選択判定スコアの算出対象となる画像に含まれる顔の状態(笑顔)とが一致した場合に図46に示すスコアが状態値J1に加算される。また、目瞑り625、画像中心からの距離626、画像における顔の大きさ627については、メタデータ記憶部290に記憶されているメタデータに応じた各スコアが状態値J1に加算される。そして、算出された属性値Z1および状態値J1を加算することにより、選択判定スコアが算出される。
また、1つのフレームに複数の顔が含まれている場合には、属性値Z1および状態値J1を顔毎に算出し、これらの属性値Z1および状態値J1を加算した値が、その画像における選択判定スコアとして算出される。なお、この例では、各スコアを算出する際に、各値を加算する例を示すが、例えば、各値を乗算して各スコアを算出するようにしてもよい。また、図46に示す各スコアの代わりに、顔の属性および状態に応じた重み付け係数を用いて、各スコアを算出するようにしてもよい。
このように算出された選択判定スコアを用いて、最前面画像(最前面フレーム)が選択される。すなわち、区間選択部160により選択された画像合成対象区間に含まれる各画像について選択判定スコアを算出し、算出された選択判定スコアのうちで、最も高い値が算出された画像が最前面画像として選択される。続いて、最前面フレーム以外の他のフレームが選択される。この選択方法については、図47および図48を参照して詳細に説明する。
図47は、本発明の第3の実施の形態における合成対象画像選択部171によるフレーム選択を行う場合における選択方法の概略を示す図である。図47(a)には、既に選択されたフレームの下側に重ねられるフレームの選択判定スコアを算出する場合の例を示す。例えば、フレーム640は、最前面フレームとして選択されたフレームであるものとする。フレーム640を基準フレームとして、他のフレームを選択する場合には、フレーム640により上書きされる領域に含まれる顔に関するスコアは除外される。例えば、フレーム641に顔643乃至646が含まれる場合において、最前面フレーム640との重複領域642に顔643および644の少なくとも一部が含まれているものとする。この場合には、例えば、フレーム641について選択の要否を判定する場合には、重複領域642が、設定された範囲内の重複率であるか否かが判断される。この重複率の設定範囲は、図45に示す選択画面610において選択された内容とする。続いて、重複領域642が、設定された範囲内の重複率でない場合には、フレーム641が選択されない。重複領域642が、設定された範囲内の重複率である場合には、フレーム641について選択判定スコアが算出される。この場合に、フレーム641の選択判定スコアは、フレーム641に含まれる顔643乃至646のうち、重複領域642に含まれない顔645および646に関する値を用いて算出される。
図47(b)には、既に選択されたフレームの下側に重ねられるフレームの選択判定スコアを算出する場合の例を示す。例えば、フレーム660は、フレーム650への上書き合成の対象となるフレームである。このように、フレーム650を基準フレームとして、フレーム650への上書き合成の対象となる他のフレームを選択する場合には、フレーム650に上書きされる領域以外の領域に含まれる顔に関するスコアを加算する。例えば、フレーム650に顔651乃至653が含まれ、フレーム660との重複領域655に顔653の少なくとも一部が含まれているものとする。また、フレーム660に顔661乃至664が含まれているものとする。この場合には、例えば、フレーム660について選択の要否を判定する場合には、重複領域655が、設定された範囲内の重複率であるか否かが判断される。続いて、重複領域655が、設定された範囲内の重複率でない場合には、フレーム660が選択されない。一方、重複領域655が、設定された範囲内の重複率である場合には、フレーム660について選択判定スコアが算出される。この場合に、フレーム660の選択判定スコアは、フレーム650および660に含まれる顔651乃至653、661乃至664のうち、フレーム650の重複領域655に含まれない顔651および652、661乃至664に関する値を用いて算出される。すなわち、2つの画像が合成された場合に表示の対象となる領域に含まれる顔に関する値が選択判定スコアとして算出される。
図48は、本発明の第3の実施の形態における合成対象画像選択部171によるフレーム選択を行う場合における選択方法の概略を示す図である。図48に示す例では、重ね合わせる順序をユーザ操作により予め指定する場合を例にして説明する。この例では、撮像時刻の古い画像から新しい画像に向かって上書き合成する場合(昇順に上書き合成する場合)における選択方法を例にして示す。ただし、最前面フレームとして選択された画像については、一番上側に重ねて合成されるものとする。
図48(a)には、最前面フレーム670を基準フレームとして、探索方向671に向かって画像を選択する例を示す。この場合には、最前面画像676から時系列を遡る方向に探索することになるため、既に選択された画像が、選択対象となる画像に対して上に重なることになる。このため、重なり領域が考慮されてスコアが計算され、指定された重複率の範囲内に含まれる画像のうちで最も高いスコアの画像が選択される。例えば、基準フレーム670に対応する画像676を基準画像として画像675および674が選択されているものとする。画像674を基準画像として、次の画像673の選択の要否を判定する場合には、画像673および674の重複領域677の重複率の判定がされた後に、画像673に含まれる顔について算出された選択判定スコアが算出される。ここで、画像673に含まれる4つの顔のうち顔678については、その一部が重複領域677に含まれる。このため、画像673に含まれる顔について選択判定スコアが算出される場合には、画像673に含まれる顔678以外の3つの顔を用いて算出される。
図48(b)には、最前面フレーム680を基準フレームとして、探索方向682に向かって画像を選択する例を示す。この場合には、最前面画像683から時系列方向に探索することになるため、選択対象となる画像が既に選択された画像に対して上に重なることになる。ただし、最前面画像683のみが全ての画像の上に重なることになる。このため、画像684については、図48(a)に示す場合と同様に、画像683との重なり領域が考慮されてスコアが計算され、指定された重複率の範囲内に含まれる画像のうちで最も高いスコアの画像が選択される。一方、画像685以降の画像については、指定された重複率の範囲内で、選択対象となる画像とこの画像と重複する画像との合計スコアをなるべく減らさず、かつ現画像上のスコアが高い画像を選択する。すなわち、既に選択された合成画像上の合計スコアと、現画像上のスコアとが最も高くなる画像が選択される。
例えば、基準フレーム680に対応する画像683を基準画像として画像684および685が選択されているものとする。画像685を基準画像として、次の画像686の選択の要否を判定する場合には、画像685および686の重複領域687の重複率の判定がされる。そして、画像683乃至685の合成画像と、画像686とに含まれる各顔について算出された選択判定スコアが算出される。ここで、画像686に含まれる3つの顔については重複領域687に含まれるか否かにかかわらず、算出の対象となる。
また、例えば、撮像時刻の新しい画像から古い画像に向かって上書き合成する場合(降順に上書き合成する場合)には、昇順の場合とは逆方向に選択処理を行うようにする。なお、合成順序が指定されていない場合には、最前面画像から時系列を遡る方向と、最前面画像から時系列への方向とに探索が行われる。このように合成順序が指定されていない場合には、何れの方向に探索をする場合でも、図48(a)と同様の選択処理を行う。これらの合成順序については、画像合成の際の合成順序として用いられるため、合成対象画像メタデータ記憶部270の画像合成対象区間に関連付けて記憶される。
なお、本発明の第3の実施の形態では、画像に含まれる顔に関する固有の属性を顔属性とし、顔の状態に関する属性を状態とし、これらの顔に関する各情報を用いて選択判定スコアを算出する例について説明した。しかしながら、他の対象物に関する各情報を用いて選択判定スコアを算出するようにしてもよい。例えば、猫や犬等のペットや動物、家、乗り物等の様々な対象物に関する各情報を用いて選択判定スコアを算出するようにしてもよい。例えば、ペットを個体識別する場合は、色、模様、耳の形等の違いにより、人間を個人識別する場合よりも識別し易い。また、顕著性マップ(Saliency Map)を用いて選択判定スコアを算出するようにしてもよい。この顕著性マップは、例えば、人が注目するであろう領域を画素毎にスコアで表したものである。例えば、この顕著性マップを用いて画像の選択判定スコアを計算する場合は、重複領域以外の領域の画素毎のスコアを積算した値を画像の選択判定スコアとして算出することができる。また、例えば、顕著性マップを用いて算出されたスコアと、対象物に関するスコアとを加算した値を選択判定スコアとして算出するようにしてもよい。
[画像処理装置の動作例]
次に、本発明の第3の実施の形態における画像処理装置101の動作について図面を参照して説明する。
図49は、本発明の第3の実施の形態における画像処理装置101によるフレーム選択処理手順の処理手順を示すフローチャートである。この処理手順は、図34に示すステップS950の処理手順の変形例である。また、この例では、メタデータ記憶部210に記憶されているアフィン変換パラメータのみを用いて重複率を算出する例を示す。また、この例では、合成順序が指定されていない場合を示す。
最初に、区間選択部160により選択された1つの画像合成対象区間に含まれる各フレームに対応するメタデータが、メタデータ記憶部210に記憶されているメタデータファイルから取得される(ステップS1001)。続いて、操作受付部260により受け付けられた各項目の選択情報が取得される(ステップS1002)。
続いて、取得されたメタデータに基づいて、選択対象となる画像合成対象区間に含まれる各フレームについて選択判定スコアが算出され、算出された選択判定スコアのうち、最も値が高いフレームが最前面フレームとして選択される(ステップS1003)。また、選択された最前面フレームが代表フレームとして選択される。続いて、選択された最前面フレームに関する各メタデータが合成対象画像メタデータ記憶部270に記録される(ステップS1004)。
続いて、選択された代表フレームから降順に探索して、指定された重複率の範囲内となるフレームが抽出され、これらのフレームについて選択判定スコアが算出される(ステップS1005)。続いて、指定された重複率の範囲内となるフレームについて算出された選択判定スコアのうち、最も値が高いフレームが新たな代表フレームとして選択される(ステップS1006)。続いて、新たに選択された代表フレームに関する各メタデータが合成対象画像メタデータ記憶部270に記録される(ステップS1007)。続いて、選択対象となる画像合成対象区間の先頭フレームまで選択判定スコアの算出が行われたか否かが判断される(ステップS1008)。選択対象となる画像合成対象区間の先頭フレームまで選択判定スコアの算出が行われていない場合には(ステップS1008)、ステップS1005に戻り、代表フレームの選択処理を繰り返す(ステップS1005乃至S1007)。
一方、選択対象となる画像合成対象区間の先頭フレームまで選択判定スコアの算出が行われた場合には(ステップS1008)、既に選択されている最前面フレームが代表フレームとして選択される(ステップS1009)。続いて、選択された代表フレームから昇順に探索して、指定された重複率の範囲内となるフレームが抽出され、これらのフレームについて選択判定スコアが算出される(ステップS1010)。続いて、指定された重複率の範囲内となるフレームについて算出された選択判定スコアのうち、最も値が高いフレームが新たな代表フレームとして選択される(ステップS1011)。続いて、新たに選択された代表フレームに関する各メタデータが合成対象画像メタデータ記憶部270に記録される(ステップS1012)。続いて、選択対象となる画像合成対象区間の最後のフレームまで選択判定スコアの算出が行われたか否かが判断される(ステップS1013)。選択対象となる画像合成対象区間の最後のフレームまで選択判定スコアの算出が行われていない場合には(ステップS1013)、ステップS1010に戻り、代表フレームの選択処理を繰り返す(ステップS1010乃至S1012)。
一方、最後のフレームまで選択判定スコアの算出が行われた場合には(ステップS1013)、区間選択部160により選択された全ての画像合成対象区間についてフレーム選択処理が終了したか否かが判断される(ステップS1014)。全ての画像合成対象区間についてフレーム選択処理が終了していない場合には(ステップS1014)、ステップS1001に戻り、フレーム選択処理を繰り返す(ステップS1001乃至S1013)。一方、全ての画像合成対象区間についてフレーム選択処理が終了した場合には(ステップS1014)、フレーム選択処理の動作を終了する。
このように、画像に含まれる顔に関する属性および状態等を用いて、最前面画像および合成対象画像を選択することにより、動画に含まれる人物に関する面白みのある画像を提供することができる。また、ユーザの好みに応じて、顔に関する属性および状態等の各項目を設定して表示させることができるため、ユーザの好みに応じた合成画像を提供することができる。
<4.第4の実施の形態>
[画像処理装置の構成例]
本発明の第1の実施の形態では、一定の太さの白枠を周縁に付した画像を合成してパノラマ風の合成画像を作成する例について説明した。本発明の第4の実施の形態では、画像の周縁に付す装飾画像として一定の太さの白枠以外の装飾画像を付す例について図面を参照して詳細に説明する。
図50は、本発明の第4の実施の形態における画像処理装置102の機能構成例を示すブロック図である。画像処理装置102は、画像合成部221と、合成対象画像メタデータ記憶部277と、装飾画像決定部700とを備える。なお、他の機能構成については、図1に示す画像処理装置100と略同一であるため、画像処理装置100の符号と同一の符号を付して、機能が異なるものを中心にして説明し、他の説明を省略する。
記録制御部150は、装飾画像決定部700から出力された装飾画像に関する情報を合成対象画像メタデータとして合成対象画像メタデータ記憶部277に記録する。
合成対象画像選択部170は、画像合成対象区間に含まれるフレームの中から、合成対象画像を選択するものであり、選択された合成対象画像に関する合成対象画像情報を記録制御部150および装飾画像決定部700に出力する。
装飾画像決定部700は、合成対象画像選択部170から出力された合成対象画像情報に対応する各フレームに付す装飾画像を決定するものであり、決定された装飾画像に関する装飾画像情報を記録制御部150に出力する。例えば、装飾画像決定部700は、メタデータ記憶部210に記憶されているメタデータに基づいて装飾画像を決定する。また、装飾画像決定部700は、メタデータ記憶部210に記憶されているメタデータと、合成対象画像情報に対応する各フレームとに基づいて装飾画像を決定する。なお、装飾画像の決定方法については、図52乃至図62を参照して詳細に説明する。
合成対象画像メタデータ記憶部277は、記録制御部150の制御に基づいて、合成対象画像選択部170から出力された合成対象画像情報を合成対象画像メタデータファイルとして記憶するものである。また、合成対象画像メタデータ記憶部277は、装飾画像決定部700から出力された装飾画像情報を合成対象画像メタデータファイルとして記憶する。また、合成対象画像メタデータ記憶部277は、ファイル取得部180からの要求に応じて合成対象画像メタデータファイルをファイル取得部180に供給する。なお、合成対象画像メタデータ記憶部277に記憶されるメタデータファイルについては、図51を参照して詳細に説明する。
ファイル取得部180は、合成画像を表示させるための指示操作が操作受付部260により受け付けられた場合には、合成対象画像メタデータ記憶部270から取得した合成対象画像メタデータを画像合成部221に出力する。
画像合成部221は、画像メモリ230を用いて、画像変換部190によりアフィン変換された画像に、合成対象画像メタデータの内容に応じた装飾画像を付して、この装飾画像が付された画像を合成して合成画像を作成するものである。
図51は、本発明の第4の実施の形態における合成対象画像メタデータ記憶部277の記憶内容を模式的に示す図である。合成対象画像メタデータ記憶部277には、動画ID271と、区間番号272と、フレーム番号273と、アフィン変換パラメータ274と、最前面フレーム275と、顔データ276と、装飾画像データ278とが関連付けて記憶されている。動画ID271、区間番号272、フレーム番号273、アフィン変換パラメータ274、最前面フレーム275および顔データ276については、図4に示す例と同様であるため、ここでの説明を省略する。
装飾画像データ278は、装飾画像決定部700により決定された合成対象画像に付される装飾画像に関する情報である。この情報として、例えば、合成対象画像に付される装飾画像の位置、大きさ、態様、色、種類等が格納される。この装飾画像データ278の内容に基づいて、対応するフレームの周縁に装飾画像が付される。なお、図51に示す例では、装飾画像に関する情報を省略して示す。
[白枠の決定例]
最初に、装飾画像を付す対象となる画像をアフィン変換して、前の合成画像に重ねた上で、この合成画像と、アフィン変換後の画像との重複領域の情報を用いて画像解析を行うことにより、装飾画像を決定する例について説明する。この例では、装飾画像として白枠を例にして説明する。
図52は、本発明の第4の実施の形態における装飾画像決定部700が白枠の太さを決定する決定方法の概略を示す図である。図52(a)には、合成対象画像選択部170により選択されたフレームのうち、時系列で連続する3つのフレーム711乃至713を示す。合成画像714は、時系列で連続する2つのフレーム712および713がアフィン変化後に合成された画像を示す。また、フレーム713は、フレーム712と時系列で隣り合うフレームであり、アフィン変換された状態を示す。これらの各フレームは、合成対象画像選択部170により選択されたフレームに関する情報に基づいて、装飾画像決定部700が、動画記憶部200に記憶されている動画ファイルから取得する。また、合成画像を保持するためのワークバッファを装飾画像決定部700が備える。
図52(a)に示すように、選択されたフレームのうちの直前までのフレームが合成された合成画像714に、アフィン変換された次のフレームであるフレーム714が重ねられる。この際に、合成画像714と、フレーム713に対応する画像との重複領域715について、本発明の第1の実施の形態で示した方法と同様の方法により、合成画像714における特徴点が抽出され、この特徴点についてオプティカルフローが算出される。そして、カメラワークパラメータおよび信頼度が算出される。このように、画像全体ではなく、重複領域のみの局所的な領域についてカメラワークパラメータおよび信頼度を算出した場合には、画像全体について算出されたカメラワークパラメータおよび信頼度とは異なる場合がある。また、合成対象画像選択部170により選択されたフレームは、動画を構成する連続するフレームではないため、複数のアフィン変換パラメータの乗算により、フレーム間でズレが生じている可能性がある。なお、重複領域715のうち、領域716は、フレーム711とフレーム713との重複領域であり、重複領域715のうち、領域716以外の領域は、フレーム712とフレーム713との重複領域である。図52(a)では、重複領域715において抽出された特徴点を黒塗り丸および白塗り丸で模式的に示す。また、これらの特徴点について算出されたオプティカルフローについては、特徴点を始点とする矢印で示す。ここで、重複領域715における黒塗り丸で示す特徴点は、支配的な動きを見せた特徴点であり、白塗り丸は、その他の特徴点であるものとする。
図52(b)には、図52(a)に示す重複領域715について算出されたアフィン変換パラメータを用いて、重複領域715をアフィン変換した場合を示す。図52(b)では、アフィン変換パラメータを用いた移動の遷移を4つの矢印で示し、重複領域715がアフィン変換された後の領域をアフィン変換後の重複領域717として示す。また、図52(c)には、重複領域715およびアフィン変換後の重複領域717のみを示す。
このように、動画を構成する連続するフレーム間について算出されたアフィン変換パラメータを用いて、選択されたフレームを合成する場合には、ズレが生じる可能性がある。そこで、この例では、ズレの大きさに基づいて、白枠の太さを決定する。
ここで、ズレ量として、以下の式を用いて、2つのはみ出し率DR1およびDR2を算出する。
はみ出し率DR1=(1−(C/A))
はみ出し率DR2=(1−(C/B))
ここで、Cは、対象となる画像の重複領域と、この重複領域のアフィン変換後の領域とを合成した領域の面積を示す。また、Aは、対象となる画像の重複領域の面積を示し、Bは、対象となる画像の重複領域のアフィン変換後の面積を示す。例えば、図52(c)に示す例では、重複領域715およびアフィン変換後の重複領域717を合成した領域の面積を面積Cとし、重複領域715の面積を面積Aとし、アフィン変換後の重複領域717の面積を面積Bとする。そして、2つのはみ出し率DR1およびDR2が算出される。
このように算出された2つのはみ出し率DR1およびDR2について、大きい値を選択する。そして、この選択されたはみ出し率をDRとして、以下の式を用いて、装飾画像としての白枠の太さを算出する。
水平方向の両端の辺に付す白枠の太さSH1=W×DR
垂直方向の両端の辺に付す白枠の太さSH2=H×DR
ここで、付与の対象となる画像に対して、白枠が極端に太くならないように、はみ出し率に上限および下限を設けるようにしてもよい。はみ出し率の上限および下限の範囲として、例えば、0.1〜0.03とすることができる。
このように算出された水平方向および垂直方向の両端の辺に付す白枠の太さSH1およびSH2が記録制御部150に出力され、合成対象画像メタデータ記憶部277の装飾画像データ278に記録される。
例えば、はみ出し率が小さい場合には、白枠を付す対象となる対象画像と、この画像の下側に重ねられる合成画像とのズレが小さい。このため、その対象画像に付す白枠の太さを細くした場合でも、対象画像と合成画像との間で自然な画像を形成すると考えられる。これに対して、はみ出し率が大きい場合には、対象画像と、この画像の下側に重ねられる合成画像とのズレが大きい。このため、その対象画像に付す白枠の太さを太くすることにより、そのズレを目立たなくすることができる。また、画像に付される白枠のため、ズレによる不自然さを解消することができる。なお、白枠を付す位置は、対象画像の外側、内側または縁上の何れかとすることができる。これらの白枠を付す例を図56乃至図58に示す。
図53は、本発明の第4の実施の形態における装飾画像決定部700により決定される装飾画像の一例を示す図である。図53(a)には、フレーム720の周縁の外側に白枠画像721を付す例を示し、図53(b)には、フレーム720の周縁を含むように、白枠画像722を付す例を示し、図53(c)には、フレーム720の周縁の内側に白枠画像723を付す例を示す。なお、画像の周縁を含むように白枠画像を付す場合には、画像の周縁上を斜めに跨ぐように、白枠画像を付すようにしてもよい。なお、図53では、見易いように、画像に対する白枠を大きくして示す。また、図53(a)乃至(c)において、フレーム720の大きさを見易くするため、画像の周縁を太線で示す。
また、このように算出された白枠の太さについては、算出の対象となった画像毎に決定することができる。しかしながら、見栄えのよい合成画像を提供するため、例えば、同一の画像合成対象区間について算出された各はみ出し率のうち、最も大きな値のはみ出し率を用いて、その区間に含まれる各フレームの白枠の比率を統一するようにしてもよい。また、例えば、はみ出し率の平均値を用いるようにしてもよい。また、図54で示すように、画像間の相対的な位置関係に応じて、白枠を付す位置を変更するようにしてもよい。
図54は、本発明の第4の実施の形態における装飾画像決定部700による装飾画像の決定方法の一例を示す図である。図54(a)には、フレーム730を基準フレームとして、フレーム740をアフィン変換する場合を示す。この例では、フレーム740の上側の周縁に付される画像の位置を決定する例について説明する。例えば、フレーム730を基準フレームとして、フレーム740をアフィン変換してフレーム730の上側の2隅の点を移動する場合における移動ベクトルを移動ベクトル731および732で示す。また、フレーム730の上辺における法線ベクトルを法線ベクトル733および734で示す。
図54(b)には、移動ベクトル731および732と、法線ベクトル733および734との関係を示す。例えば、フレーム740の上辺について白枠を付す位置を算出する場合には、移動ベクトル731および移動ベクトル732を加算したベクトル735と、ベクトル733とのなす角736を計算する。また、ベクトル735とベクトル734とのなす角737を計算する。続いて、角736の値と、角737の値との大きさを比較する。この比較結果、角736の値が小さい場合には、フレーム740の周縁の内側に白枠を配置する。一方、角737の値の小さい場合には、フレーム740の周縁の外側に白枠を配置する。例えば、図54(b)に示すように、角736の値と、角737の値との大きさを比較した結果、角737の値の小さいため、フレーム740の上辺の周縁に付される白枠は、その外側に配置すると決定される。また、他の3辺についても同様に白枠の位置を決定することができる。
図54(c)には、フレーム740に付される白枠の一例である白枠画像741を示す。このように、基準フレームに対する相対的な位置に応じて、白枠画像の位置を決定することができる。なお、2つの移動ベクトルの和が0となった場合には、外側内側の何れかに配置すると決定するようにしてもよい。また、この場合には、周縁上に配置すると決定するようにしてもよい。また、2つの移動ベクトルの和が0以外の場合でも、周縁の外側または内側の何れかに決定するだけでなく、その周縁を跨ぐような配置とするようにしてもよい。例えば、加算ベクトルと、法線ベクトルとのなす角に応じて、白枠画像の中心位置を変更することができる。また、図55に示すように、同一の辺について配置される白枠画像をその辺の両端で異なる配置とすることができる。
図55は、本発明の第4の実施の形態における装飾画像決定部700による装飾画像の決定方法の一例を示す図である。図55(a)には、フレーム750を基準フレームとして、フレーム760をアフィン変換する場合を示す。例えば、移動ベクトル751と、法線ベクトル753とのなす角が小さく、移動ベクトル752と、法線ベクトル754とのなす角が小さい場合には、移動ベクトル751の終点の付近は内側とする。また、移動ベクトル752の終点の付近は外側とする配置に決定するようにしてもよい。他の辺についても同様に決定することができる。このように決定した場合には、例えば、図55(b)に示すように配置することができる。ただし、このように白枠画像を配置する場合には、画像の外形が変わってしまう可能性がある。例えば、図55(b)に示すように、フレーム760が長方形の場合に、白枠画像を付した画像が、平行四辺形となる場合がある。また、例えば、対象フレームが長方形である場合には、白枠画像を付した画像が台形となる場合が想定され、対象フレームが平行四辺形である場合には、白枠画像を付した画像が台形となる場合が想定される。
[白枠の合成例]
図56は、本発明の第4の実施の形態における装飾画像決定部700により決定された装飾画像を合成した合成例を示す図である。この装飾画像の合成は、合成対象画像メタデータ記憶部277の装飾画像データ278の内容に基づいて画像合成部220が行う。すなわち、合成対象画像メタデータ記憶部277のアフィン変換パラメータ274の内容に基づいて、画像変換部190により画像がアフィン変換される。そして、合成対象画像メタデータ記憶部277の装飾画像データ278の内容に基づいて、アフィン変換後の画像に画像合成部220が装飾画像を付して画像合成を行う。また、図56に示す例では、並進方向のズレの影響について説明する。なお、図56乃至図57では、装飾画像として白枠を付す例を示す。
図56(a)には、合成対象画像738および739を示す。図56(b)には、合成対象画像738を基準画像として、合成対象画像739をアフィン変換して合成した場合の例を示す。図56(b)に示す例では、合成対象画像739が右下にズレた場合を示す。例えば、円742で囲まれた画像領域では、合成対象画像738に含まれる屋根の部分が余計に見えてしまう。また、例えば、円743で囲まれた画像領域では、合成対象画像738に含まれる芝の部分を合成対象画像739が隠してしまう。また、例えば、円744で囲まれた画像領域では、合成対象画像738に含まれる傘の部分が余計に見えてしまう。そこで、図56(c)に示すように、装飾画像決定部700により決定された装飾画像745を合成対象画像739に合成することにより、例えば、円742乃至744で囲まれた領域部分の不自然な画像を隠すことができる。一方、図56(d)に示すように、装飾画像決定部700により決定された領域とは反対方向に装飾画像746を合成対象画像739に合成した場合には、例えば、円742乃至744で囲まれた領域部分の不自然な画像を隠すことができない。
図57は、本発明の第4の実施の形態における装飾画像決定部700により決定された装飾画像を合成した合成例を示す図である。なお、図57に示す例では、拡大縮小方向のズレの影響について説明する。
図57(a)には、合成対象画像747および748を示す。図57(b)には、合成対象画像747を基準画像として、合成対象画像748をアフィン変換して合成した場合の例を示す。図57(b)に示す例では、合成対象画像747が縮小方向にズレた場合を示す。例えば、円749で囲まれた画像領域では、合成対象画像747に含まれる屋根の部分が余計に見えてしまう。また、例えば、円755で囲まれた画像領域では、合成対象画像747に含まれる電灯の部分が余計に見えてしまう。また、例えば、円756で囲まれた画像領域では、合成対象画像747に含まれる傘の部分が余計に見えてしまう。そこで、図57(c)に示すように、装飾画像決定部700により決定された装飾画像757を合成対象画像748に合成することにより、例えば、円749、755、756で囲まれた領域部分の不自然な画像を隠すことができる。一方、図57(d)に示すように、装飾画像決定部700により決定された領域とは反対方向に装飾画像758を合成対象画像748に合成した場合には、例えば、円749、755、756で囲まれた領域部分の不自然な画像を隠すことができない。
図58は、本発明の第4の実施の形態における装飾画像決定部700により決定された装飾画像を合成した合成例を示す図である。なお、図58に示す例では、回転方向のズレの影響について説明する。
図58(a)には、合成対象画像759および762を示す。図58(b)には、合成対象画像759を基準画像として、合成対象画像762をアフィン変換して合成した場合の例を示す。図58(b)に示す例では、合成対象画像762が右回り方向にズレた場合を示す。例えば、円763で囲まれた画像領域では、合成対象画像759に含まれる石畳の部分が不自然に見えてしまう。そこで、図58(c)に示すように、装飾画像決定部700により決定された装飾画像764を合成対象画像764に合成することにより、例えば、円763で囲まれた領域部分の不自然な画像を隠すことができる。一方、図58(d)に示すように、装飾画像決定部700により決定された領域とは反対方向に装飾画像765を合成対象画像762に合成した場合には、例えば、円763で囲まれた領域部分の不自然な画像を隠すことができない。ここで、単に回転方向にのみズレている場合には、図54で説明したように、2つの移動ベクトルの和が0となる。このため、外側内側の何れかに配置すると決定するようにしてもよく、周縁上に配置すると決定するようにしてもよい。
このように、装飾画像決定部700により決定された装飾画像を合成対象画像に合成することにより、パノラマ風の自然な合成画像をユーザに提供することができる。
[顔を考慮した白枠の決定例]
ここで、例えば、装飾画像を付した合成対象画像を合成する場合には、下側に重ねられた合成画像に含まれる顔が隠れてしまう可能性がある。このような場合には、顔が隠れない方向に装飾画像の位置を変更することができる。または、装飾画像の太さを調整するようにしてもよい。
図59は、本発明の第4の実施の形態における装飾画像決定部700による顔を考慮した装飾画像の決定方法の一例を示す図である。ここでは、合成対象画像766乃至768の装飾画像を決定する例を示す。また、合成対象画像767および768には顔が含まれているものとし、これらの顔を含む領域を顔領域769および770で示す。
例えば、合成対象画像766を基準画像として、合成対象画像767および768が順次アフィン変換されて合成されるものとする。この場合には、合成対象画像767に合成対象画像768が上書き合成されるため、例えば、合成対象画像768に付される装飾画像が大きい場合(または、外側に付される場合)には、顔領域769に含まれる顔が隠れてしまうおそれがある。
ここで、例えば、合成対象画像メタデータ記憶部277の顔データ276に格納されている顔データを用いて、合成対象画像に含まれる顔領域を特定することができる。そこで、例えば、装飾画像決定部700は、顔を考慮する前に決定された装飾画像の領域と、顔領域とが重複するか否かを計算し、装飾画像の領域と顔領域とが重複する場合には、装飾画像の位置を、決定された位置の反対側に変更する。例えば、合成対象画像767に含まれる顔領域769と、合成対象画像768の左端の外側に付すと決定された装飾画像771とが重複する場合には、装飾画像771を内側に付すように変更する。すなわち、装飾画像772に変更される。また、例えば、合成対象画像768に含まれる顔領域770と、合成対象画像768の上端の内側に付すと決定された装飾画像773とが重複する場合には、装飾画像773を外側に付すように変更する。すなわち、装飾画像774に変更される。
ここで、例えば、合成対象画像の内側または外側の何れに変更しても、装飾画像と顔領域とが重複する場合には、装飾画像と顔領域との距離を計算し、装飾画像の太さを変更するようにしてもよい。このように、太さを変更しても重複する場合には、例えば、重複する面積が小さい位置に装飾画像の位置を変更する。しかしながら、例えば、上側に重ねられる合成対象画像を優先させ、装飾画像と顔領域とが重複する場合には、合成対象画像の外側に付すと装飾画像を決定するようにしてもよい。また、顔領域と装飾画像との距離を各辺毎に計算しておき、顔に重ならない装飾画像の最大の太さを合成対象画像メタデータ記憶部277に記憶しておき、この値を用いて装飾画像を付すようにしてもよい。
[影の決定例]
以上では、装飾画像として合成対象画像に白枠を付す例について説明したが、例えば、装飾画像として合成対象画像に影を付すようにしてもよい。
図60は、本発明の第4の実施の形態における装飾画像決定部700により合成対象画像に付す装飾画像として決定される影の例を示す図である。以下では、合成対象画像に付される影を内部に斜線を付して示す。図60(a)には、合成対象画像に付される影の基本形を示す。例えば、影の方向については、影351のように、合成対象画像の真上から光を当てた際に四方へ広がる様子を基本とする。また、影352または353のように、合成対象画像の斜め上または斜め下から光を当てたような効果を演出することもできる。
図60(b)には、合成対象画像の斜め上から光を当てたような効果を演出して、合成画像を作成した場合を示す。すなわち、影352を付した合成対象画像を順次合成することにより、図60(b)に示す合成画像を作成することができる。また、図60(c)には、合成対象画像の斜め下から光を当てたような効果を演出して、合成画像を作成した場合を示す。すなわち、影353を付した合成対象画像を順次合成することにより、図60(c)に示す合成画像を作成することができる。
ここで、例えば、合成対象画像の斜め上または斜め下から光を当てたような効果を演出する場合には、最終的な合成画像の重なり方向に応じて、なるべく下の画像上に影が落ちるような方向を影の方向として決定することが好ましい。また、影の太さについては、例えば、一定の値とすることができる。また、例えば、上述した白枠の場合と同様に、はみ出し率に応じて影の太さを決定するようにしてもよい。
図61は、本発明の第4の実施の形態における装飾画像決定部700が影の方向を決定する決定方法の概略を示す図である。図61(a)には、ワークバッファ358に保持されている合成対象画像354乃至357を示す。例えば、他の合成対象画像上に上書きされている合成対象画像の辺の長さを計算して、その辺の外向き法線ベクトルを計算し、この法線ベクトルの大きさを辺の上書き部分の長さとする。例えば、図61(a)に示す合成対象画像355乃至357において、他の合成対象画像上に上書きされている辺を太線で示す。また、その辺の外向き法線ベクトルを太線上に示す。このように計算された合成対象画像の法線ベクトルが全て積算され、積算して求められた法線ベクトルの方向が影を付す方向と決定される。図61(b)には、このように決定された影を付した合成対象画像354乃至357により形成された合成画像を示す。このように影の方向を決定することにより、影が合成対象画像上に投影されるため、影の効果を強調することができる。
なお、上述した法線ベクトルの積算による影の方向の決定以外に、法線ベクトルの方向を参照して、予め決めておいたいくつかの方向から影の方向を選択して決定するようにしてもよい。また、各合成対象画像に関連付けられているアフィン変換パラメータを乗算して求められたアフィン行列を用いてカメラワークの積算並進成分を求め、この積算並進成分の方向を影の方向とするようにしてもよい。
[顔を考慮した影の決定例]
ここで、例えば、影を付した合成対象画像を合成する場合には、下側に重ねられた合成画像に含まれる顔が隠れてしまう可能性がある。このような場合には、上述した白枠の場合と同様に、顔が隠れない方向に陰の位置を変更することができる。または、影の太さを調整するようにしてもよい。また、顔領域に影がかかる場合には、影の色を薄くするようにしてもよい。以下では、顔に影がかかる場合に、その辺における法線ベクトルの方向を反転させることにより、影の方向を変更する例を示す。
図62は、本発明の第4の実施の形態における装飾画像決定部700による顔を考慮した影の決定方法の一例を示す図である。図62に示す例は、ワークバッファ358に保持されている合成対象画像354乃至357のうち、合成対象画像356に顔領域359が含まれている点以外は、図61(a)に示す場合と同様である。例えば、図61(a)に示す場合と同様に法線ベクトルを求めるが、顔領域に影がかかる場合には、その辺における法線ベクトルの方向を反転させる。例えば、図62に示す合成対象画像357において、他の合成対象画像356上に上書きされている辺のうち、左端の辺が顔領域359と重複している。そこで、その辺における法線ベクトルの方向を反転させる。すなわち、法線ベクトル360のように反転させる。なお、影の方向の決定方法は、法線ベクトルの方向を反転させる点以外は、図61(a)に示す場合と同様であるため、ここでの説明を省略する。
ここで、図62に示す例では、法線ベクトルの方向を反転させた後に算出される法線ベクトルの積算ベクトルの方向は、反転させない場合とほとんど変わらないため、影で顔が隠れることになる。しかしながら、複数の合成対象画像の左辺の影が顔にかかるような場合には、影の方向が右上方向になるため、顔が影で隠れることを防止することができる。また、例えば、反転させた法線ベクトルの方向および長さに応じて、全体の影の濃さを薄くするようにしてもよい。または、反転させた法線ベクトルの方向および長さに応じて、影の太さを細くするようにしてもよい。また、顔に影がかかる場合には、全体の影の濃さをある割合だけ薄くしたり、太さをある割合だけ細くしたりする影の変更方法を行うようにしてもよい。
このように、下側に重ねられた合成画像に含まれる顔が隠れてしまう可能性がある場合には、顔が隠れない方向に影の位置を変更することができる。しかしながら、白枠と比較すると、顔に影がかかる場合でも、それほど気にならないと考えられる。そこで、顔領域に影がかかる場合には、これらの変更や調整を全く行わなくてもよいし、何れか1つを行うようにしてもよく、組み合わせて行うようにしてもよい。
以上では、装飾画像として白枠または影の何れかを決定する例について説明したが、合成対象画像の周縁に白枠を付すとともに、この白枠の周縁に影を付す場合についても本発明の第4の実施の形態を適用することができる。
また、以上では、合成対象画像に付す装飾画像をフレーム選択時に決定する例を示したが、例えば、合成画像の表示時に合成対象画像に付す装飾画像を決定するようにしてもよい。また、ユーザ操作による設定により装飾画像を決定するようにしてもよい。例えば、合成対象画像の白枠の有無、白枠の位置、白枠の太さ、影の有無、影の方向等をユーザ操作により指定するようにしてもよい。
また、以上では、装飾画像として白枠または影の太さおよび位置を決定する例について説明したが、例えば、はみ出し率や法線ベクトルに基づいて、装飾画像の色や態様を決定するようにしてもよい。また、以上では、合成対象画像間の相対的な位置関係等に基づいて、装飾画像を決定する例について示したが、例えば、合成対象画像に含まれる被写体の属性や色等に基づいて、装飾画像を決定するようにしてもよい。例えば、装飾画像として枠を付す場合には、合成対象画像の周辺部の色ヒストグラムを計算し、最も多い色の補色を枠の色として決定することができる。このように、白以外の色を付した枠を合成対象画像に付すことにより、合成対象画像の縁が目立たなくなることを防ぐことができる。例えば、図32および図33に示す画像576のように、合成対象画像の周辺部に緑が多い場合には、緑に対する補色として赤系の色を採用し、赤系の枠を付すことができる。また、本発明の第3の実施の形態で示した顔に関する各メタデータを用いて、枠の色や態様を決定するようにしてもよい。例えば、合成対象画像に含まれる人物の性別や年代に応じて、枠の色を変更することができる。また、合成対象画像が撮像された時刻に応じて、枠の色を変更することができる。
また、図52で示した方法により算出されたカメラワークパラメータおよび信頼度を用いて、合成対象画像の表示時に、ズレを補正しながら合成をするようにしてもよい。例えば、図52で示した方法により算出されたカメラワークパラメータおよび信頼度を合成対象画像メタデータ記憶部277に記憶しておく。そして、合成対象画像を表示する際に、信頼度が高い合成対象画像については、対応するカメラワークパラメータを用いて、合成対象画像を変換させるためのアフィン変換パラメータを補正することができる。
[画像処理装置の動作例]
次に、本発明の第4の実施の形態における画像処理装置102の動作について図面を参照して説明する。
図63は、本発明の第4の実施の形態における画像処理装置102による合成対象画像のメタデータ記録処理の処理手順を示すフローチャートである。この処理手順は、図34に示す処理手順の変形例であるため、図34に示す処理手順と同一の手順については同一の符号を付して、これらの説明を省略する。
合成対象画像選択部170によるフレーム選択処理が終了した後に、装飾画像決定部700が、装飾画像決定処理を行う(ステップS1020)。この装飾画像決定処理については、図64を参照して詳細に説明する。
図64は、本発明の第4の実施の形態における画像処理装置102による合成対象画像のメタデータ記録処理の処理手順のうちの装飾画像決定処理手順(図63に示すステップS1020の処理手順)を示すフローチャートである。この例では、装飾画像として白枠を決定する例を示す。また、同一の画像合成対象区間に含まれる各フレームに付す白枠を同一の太さとする場合を例にして示す。
最初に、合成対象画像選択部170により選択された1つの画像合成対象区間に含まれる各合成対象画像に対応するメタデータが、メタデータ記憶部210に記憶されているメタデータファイルから取得される(ステップS1021)。続いて、取得された画像合成対象区間に含まれる各合成対象画像に対応するアフィン変換パラメータを用いて各合成対象画像を合成する際に必要な大きさが算出され、この大きさのワークバッファが2つ確保される(ステップS1022)。この2つのワークバッファは、画像を構成する各画素を8ビットで表すワークバッファであり、この例では、第1ワークバッファおよび第2ワークバッファとして示す。
続いて、選択対象となる画像合成対象区間に含まれる各合成対象画像のうち、最前面フレームが基準フレームとして選択される(ステップS1023)。続いて、基準フレームが第1ワークバッファに貼り付けられる(ステップS1024)。続いて、基準フレームの隣のフレームが第2ワークバッファに貼り付けられる(ステップS1025)。この場合には、直前に貼り付けられていたフレームが消去され、基準フレームの隣のフレームのみが第2ワークバッファに貼り付けられる。続いて、第1ワークバッファに貼り付けられている履歴画像と、第2ワークバッファに貼り付けられているフレームとの重複領域のはみ出し率が算出される(ステップS1026)。このはみ出し率は、図52に示す算出方法により算出される。
続いて、選択対象となる画像合成対象区間に含まれる各合成対象画像について、はみ出し率の算出が終了したか否かが判断される(ステップS1027)。各合成対象画像についてはみ出し率の算出が終了していない場合には(ステップS1027)、直前にはみ出し率が算出されたフレームが基準フレームとして選択され(ステップS1028)、ステップS1024に戻る。そして、新たに選択された基準フレームが第1ワークバッファの履歴画像上に貼り付けられる(ステップS1024)。なお、直前にはみ出し率が算出されたフレームが、画像合成対象区間の先頭フレームまたは最後のフレームである場合には、最前面フレームの他の方向に隣接するフレームが基準フレームとして選択される。
各合成対象画像についてはみ出し率の算出が終了した場合には(ステップS1027)、各合成対象画像について算出されたはみ出し率に基づいて選択対象となる画像合成対象区間に含まれる各合成対象画像に付す白枠の太さが算出される(ステップS1029)。続いて、算出された白枠の太さが合成対象画像メタデータ記憶部277に記録される(ステップS1030)。続いて、区間選択部160により選択された全ての画像合成対象区間について装飾画像決定処理が終了したか否かが判断される(ステップS1031)。全ての画像合成対象区間について装飾画像決定処理が終了していない場合には(ステップS1031)、ステップS1021に戻り、装飾画像決定処理を繰り返す(ステップS1021乃至S1030)。一方、全ての画像合成対象区間について装飾画像決定処理が終了した場合には(ステップS1031)、装飾画像決定処理の動作を終了する。
図65は、本発明の第4の実施の形態における画像処理装置102による合成対象画像のメタデータ記録処理の処理手順のうちの装飾画像決定処理手順(図63に示すステップS1020の処理手順)を示すフローチャートである。この例は、装飾画像として影を決定する例であり、図64に示す処理手順の変形例である。このため、図64に示す処理手順と異なる手順のみを説明し、他の説明を省略する。
基準フレームの隣のフレームが第2ワークバッファに貼り付けられた後に(ステップS1025)、第1ワークバッファに貼り付けられている履歴画像と、第2ワークバッファに貼り付けられているフレームとの法線ベクトルが算出される(ステップS1041)。この法線ベクトルは、図61に示す算出方法により算出される。
また、各合成対象画像について法線ベクトルの算出が終了した場合には(ステップS1027)、各合成対象画像について算出された法線ベクトルの積算値が算出され、積算して求められた法線ベクトルの方向が影を付す方向として算出される(ステップS1042)。続いて、算出された影を付す方向が合成対象画像メタデータ記憶部277に記録される(ステップS1043)。
図66は、本発明の第4の実施の形態における画像処理装置102による合成画像表示処理の処理手順を示すフローチャートである。この処理手順は、図37に示す処理手順の変形例であるため、図37に示す処理手順と同一の手順については同一の符号を付して、これらの説明を省略する。
画像合成部221が、取得された各メタデータに含まれる装飾画像データに基づいて、アフィン変換された画像の周縁に装飾画像を付す(ステップS1051)。続いて、この装飾画像が付された画像を画像メモリ230に保持させる(ステップS1052)。すなわち、アフィン変換されて装飾画像が付された画像が画像メモリ230に保持されている履歴画像に合成される。
また、最前面フレームが画像合成対象区間の先頭フレームでない場合には(ステップS973)、画像合成処理が行われる(ステップS1060)。この画像合成処理については、図67を参照して詳細に説明する。
図67は、本発明の第4の実施の形態における画像処理装置102による合成画像表示処理の処理手順のうちの画像合成処理手順(図66に示すステップS1060の処理手順)を示すフローチャートである。この処理手順は、図38に示す処理手順の変形例であるため、図38に示す処理手順と同一の手順については同一の符号を付して、これらの説明を省略する。
画像合成部221が、取得された各メタデータに含まれる装飾画像データに基づいて、アフィン変換された画像の周縁に装飾画像を付す(ステップS1061)。続いて、この装飾画像が付された画像を画像メモリ230に保持させる(ステップS1062)。
また、画像合成部221が、取得された各メタデータに含まれる装飾画像データに基づいて、アフィン変換された画像の周縁に装飾画像を付す(ステップS1063)。続いて、この装飾画像が付された画像を画像メモリ230に保持させる(ステップS1064)。
また、画像合成部221が、取得された各メタデータに含まれる装飾画像データに基づいて、アフィン変換された画像の周縁に装飾画像を付す(ステップS1065)。続いて、この装飾画像が付された画像を画像メモリ230に保持させる(ステップS1066)。
<5.第5の実施の形態>
[画像処理装置の構成例]
次に、本発明の第5の実施の形態における特徴点抽出処理およびオプティカルフロー算出処理をマルチコアプロセッサにより行う場合について図面を参照して詳細に説明する。
図68は、本発明の第5の実施の形態におけるマルチコアプロセッサ800の一構成例を示す図である。マルチコアプロセッサ800は、1つのCPU(Central Processing Unit)パッケージ上に異なる種類のプロセッサコアが複数搭載されているプロセッサである。すなわち、マルチコアプロセッサ800には、各プロセッサコア単体の処理性能を維持するとともに、シンプルな構成にするため、あらゆる用途(アプリケーション)に対応する2種類のプロセッサコアが複数搭載されている。この2種類のプロセッサコアは、1種類のコアと、所定の用途にある程度最適化されている他の種類のコアとである。
マルチコアプロセッサ800は、制御プロセッサコア801と、演算プロセッサコア(#1)811乃至(#8)818と、バス802とを備え、メインメモリ781と接続されている。また、マルチコアプロセッサ800は、例えば、グラフィックスデバイス782やI/Oデバイス783等の他のデバイスと接続される。マルチコアプロセッサ800として、例えば、本願出願人等により開発されたマイクロプロセッサである「Cell(セル:Cell Broadband Engine)」を採用することができる。
制御プロセッサコア801は、オペレーティング・システムのような頻繁なスレッド切り替え等を主に行う制御プロセッサコアである。なお、制御プロセッサコア801については、図69を参照して詳細に説明する。
演算プロセッサコア(#1)811乃至(#8)818は、マルチメディア系の処理を得意とするシンプルで小型の演算プロセッサコアである。なお、演算プロセッサコア(#1)811乃至(#8)818については、図70を参照して詳細に説明する。
バス802は、EIB(Element Interconnect Bus)と呼ばれる高速なバスである。また、バス802は、制御プロセッサコア801および演算プロセッサコア(#1)811乃至(#8)818のそれぞれが接続され、各プロセッサコアによるデータアクセスはバス802を経由して行われる。
メインメモリ781は、バス802に接続され、各プロセッサコアにロードすべき各種プログラムや、各プロセッサコアの処理に必要なデータを格納するとともに、各プロセッサコアにより処理されたデータを格納するメインメモリである。
グラフィックスデバイス782は、バス802に接続されているグラフィックスデバイスであり、I/Oデバイス783は、バス802に接続されている外部入出力デバイスである。
図69は、本発明の第5の実施の形態における制御プロセッサコア801の一構成例を示す図である。制御プロセッサコア801は、制御プロセッサユニット803および制御プロセッサストレージシステム806を備える。
制御プロセッサユニット803は、制御プロセッサコア801の演算処理を行う核となるユニットである。また、制御プロセッサユニット803は、マイクロプロセッサのアーキテクチャをベースとする命令セットを備え、一次キャッシュとして命令キャッシュ804およびデータキャッシュ805が搭載されている。命令キャッシュ804は、例えば、32KBの命令キャッシュであり、データキャッシュ805は、例えば、32KBのデータキャッシュである。
制御プロセッサストレージシステム806は、制御プロセッサユニット803からメインメモリ781へのデータアクセスを制御するユニットである。また制御プロセッサストレージシステム806は、制御プロセッサユニット803からのメモリアクセスを高速化させるために512KBの二次キャッシュ807が搭載されている。
図70は、本発明の第5の実施の形態における演算プロセッサコア(#1)811の一構成例を示す図である。演算プロセッサコア(#1)811は、演算プロセッサユニット820およびメモリフローコントローラ822を備える。なお、演算プロセッサコア(#2)812乃至(#8)818は、演算プロセッサコア(#1)811と同様の構成であるため、ここでの説明を省略する。
演算プロセッサユニット820は、演算プロセッサコア(#1)811の演算処理を行う核となるユニットであり、制御プロセッサコア801の制御プロセッサユニット803とは異なる独自の命令セットを備える。また、演算プロセッサユニット820には、ローカルストア(LS:Local Store)821が搭載されている。
ローカルストア821は、演算プロセッサユニット820の専用メモリであるとともに、演算プロセッサユニット820から直接参照することができる唯一のメモリである。ローカルストア821として、例えば、容量が256Kバイトのメモリを用いることができる。なお、演算プロセッサユニット820が、メインメモリ781や他の演算プロセッサコア(演算プロセッサコア(#2)812乃至(#8)818)上のローカルストアにアクセスするためには、メモリフローコントローラ822を利用する必要がある。
メモリフローコントローラ822は、メインメモリ781や他の演算プロセッサコア等との間でデータのやり取りするためのユニットであり、MFC(Memory Flow Controller)と呼ばれるユニットである。ここで、演算プロセッサユニット820は、チャネルと呼ばれるインタフェースを介してメモリフローコントローラ822に対してデータ転送等を依頼する。
以上で示したマルチコアプロセッサ800のプログラミング・モデルとして、さまざまなものが提案されている。このプログラミング・モデルの中で最も基本的なモデルとして、制御プロセッサコア801上でメインプログラムを実行し、演算プロセッサコア(#1)811乃至(#8)818上でサブプログラムを実行するモデルが知られている。本発明の第5の実施の形態では、このモデルを用いたマルチコアプロセッサ800の演算方法について図面を参照して詳細に説明する。
図71は、本発明の第5の実施の形態におけるマルチコアプロセッサ800の演算方法を模式的に示す図である。この例では、データ785を用いて制御プロセッサコア801がタスク784を実行する場合に、タスク784の一部であるタスク786の処理に必要なデータ787(データ785の一部)を用いて、タスク786を各演算プロセッサコアに実行させる例を示す。
同図に示すように、データ785を用いて制御プロセッサコア801がタスク784を実行する場合には、タスク784の一部であるタスク786の処理に必要なデータ787(データ785の一部)を用いて、タスク786を各演算プロセッサコアに実行させる。本発明の第5の実施の形態では、動画を構成するフレーム毎に各演算プロセッサコアにより演算処理が行われる。
同図に示すように、マルチコアプロセッサ800が演算を行うことにより、演算プロセッサコア(#1)811乃至(#8)818を並列に利用して、比較的少ない時間で多くの演算を行うことができる。また、演算プロセッサコア(#1)811乃至(#8)818上でSIMD(Single Instruction/Multiple Data:単一命令/複数データ)演算を利用して、さらに少ない命令数により、比較的多くの演算処理を行うことができる。なお、SIMD演算については、図75乃至図78等を参照して詳細に説明する。
図72は、本発明の第5の実施の形態におけるマルチコアプロセッサ800により演算を行う場合におけるプログラムおよびデータの流れを模式的に示す図である。ここでは、演算プロセッサコア(#1)811乃至(#8)818のうちの演算プロセッサコア(#1)811を例にして説明するが、演算プロセッサコア(#2)812乃至(#8)818についても同様に行うことができる。
最初に、制御プロセッサコア801は、メインメモリ781に格納されている演算プロセッサコアプログラム823を演算プロセッサコア(#1)811のローカルストア821にロードする指示を演算プロセッサコア(#1)811に送る。これにより、演算プロセッサコア(#1)811は、メインメモリ781に格納されている演算プロセッサコアプログラム823をローカルストア821にロードする。
続いて、制御プロセッサコア801は、ローカルストア821に格納された演算プロセッサコアプログラム825の実行を演算プロセッサコア(#1)811に指示する。
続いて、演算プロセッサコア(#1)811は、ローカルストア821に格納された演算プロセッサコアプログラム825の実行処理に必要なデータ824をメインメモリ781からローカルストア821に転送する。
続いて、演算プロセッサコア(#1)811は、ローカルストア821に格納された演算プロセッサコアプログラム825に基づいて、メインメモリ781から転送されたデータ826を加工する。そして、条件に応じた処理を実行して処理結果をローカルストア821に格納する。
続いて、演算プロセッサコア(#1)811は、ローカルストア821に格納された演算プロセッサコアプログラム825に基づいて実行された処理結果をローカルストア821からメインメモリ781に転送する。
続いて、演算プロセッサコア(#1)811は、制御プロセッサコア801に演算処理の終了を通知する。
次に、マルチコアプロセッサ800を用いて行うSIMD演算について図面を参照して詳細に説明する。ここで、SIMD演算とは、複数のデータに対する処理を1つの命令で行う演算方式である。
図73(a)は、複数のデータに対する処理をそれぞれの命令で行う演算方式の概要を模式的に示す図である。図73(a)に示す演算方式は、通常の演算方式であり、例えば、スカラー演算と呼ばれている。例えば、データ「A1」およびデータ「B1」を加算する命令によりデータ「C1」の処理結果が求められる。また、他の3つの演算についても同様に、同一の行にあるデータ「A2」、「A3」、「A4」と、データ「B2」、「B3」、「B4」とを加算する命令がそれぞれの処理について行われる。そして、この命令により、各行の値が加算処理され、この処理結果がデータ「C2」、「C3」、「C4」として求められる。このように、スカラー演算では、複数のデータに対する処理については、それぞれに対して命令を行う必要がある。
図73(b)は、複数のデータに対する処理を1つの命令で行う演算方式であるSIMD演算の概要を模式的に示す図である。ここで、SIMD演算用に1まとまりにしたデータ(点線827および828で囲まれる各データ)は、ベクターデータと呼ばれることがある。また、このようなベクターデータを用いて行われるSIMD演算は、ベクトル演算と呼ばれることがある。
例えば、点線827で囲まれるベクターデータと、点線828で囲まれるベクターデータとを加算する1つの命令により「C1」、「C2」、「C3」、「C4」の処理結果(点線829で囲まれているデータ)が求められる。ここで、点線827で囲まれるベクターデータは、「A1」、「A2」、「A3」、「A4」であり、点線828で囲まれるベクターデータは、「B1」、「B2」、「B3」、「B4」である。このように、SIMD演算では、複数のデータに対する処理を1つの命令で行うことができるため、演算処理を迅速に行うことができる。また、これらのSIMD演算に関する命令を、マルチコアプロセッサ800の制御プロセッサコア801が行い、この命令に対する複数データの演算処理について演算プロセッサコア(#1)811乃至(#8)818が並列処理を行う。
一方、例えば、データ「A1」と「B1」とを加算し、データ「A2」と「B2」とを減算し、データ「A3」と「B3」とを乗算し、データ「A4」と「B4」とを除算する処理については、SIMD演算では行うことができない。すなわち、複数のデータのそれぞれに対して異なる処理をする場合には、SIMD演算による処理を行うことがではできない。
次に、特徴点抽出処理およびオプティカルフロー算出処理を行う場合におけるSIMD演算の具体的な演算方法について図面を参照して詳細に説明する。
図74は、本発明の第5の実施の形態における制御プロセッサコア801または演算プロセッサコア(#1)811により実行されるプログラムの構成例を示す図である。ここでは、演算プロセッサコア(#1)811についてのみ図示するが、演算プロセッサコア(#2)812乃至(#8)818についても同様の処理が行われる。
制御プロセッサコア801は、デコード851としてデコード852、インターレース853およびリサイズ854を実行する。デコード852は、動画ファイルをデコードする処理である。インターレース853は、デコードされた各フレームについてインターレース除去する処理である。リサイズ854は、インターレース除去された各フレームについて縮小する処理である。
また、制御プロセッサコア801は、演算プロセッサコア管理856として命令送信857および859、終了通知受信858および860を実行する。命令送信857および859は、演算プロセッサコア(#1)811乃至(#8)818に対するSIMD演算の実行命令を送信する処理である。また、終了通知受信858および860は、上記命令に対する演算プロセッサコア(#1)811乃至(#8)818からのSIMD演算の終了通知を受信する処理である。さらに、制御プロセッサコア801は、カメラワーク検出861としてカメラワークパラメータ算出処理862を実行する。カメラワークパラメータ算出処理862は、演算プロセッサコア(#1)811乃至(#8)818によるSIMD演算により算出されたオプティカルフローに基づいてフレーム毎にアフィン変換パラメータを算出する処理である。
演算プロセッサコア(#1)811は、特徴点抽出処理863として、ソベルフィルタ(Sobel Filter)処理864、二次モーメント行列(Second Moment Matrix)処理865を実行する。また、セパラブルフィルタ(Separable Filter)処理866、ハリスコーナー点抽出(Calc Harris)処理867、膨張処理(Dilation)868、並べ替え処理(Sort)869を実行する。
ソベルフィルタ処理864は、P2のフィルタ(x方向)を使って得られるx方向の値dxと、Y方向のフィルタを使って得られるy方向の値dyとを算出する処理である。なお、x方向の値dxの算出については、図75乃至図78を参照して詳細に説明する。
二次モーメント行列処理865は、ソベルフィルタ処理864により算出されたdxおよびdyを用いて、dx2,dy2,dx・dyの各値を算出する処理である。
セパラブルフィルタ処理866は、二次モーメント行列処理865により算出されたdx2,dy2,dx・dyの画像に対してガウシアンフィルタ(ぼかし処理)を掛ける処理である。
ハリスコーナー点抽出処理867は、セパラブルフィルタ処理866により、ぼかし処理が施されたdx2,dy2,dx・dyの各値を用いて、ハリスコーナーのスコアを算出する処理である。このハリスコーナーのスコアSは、例えば、次の式により算出される。
S=(dx2×dy2−dx・dy×dx・dy)/(dx2+dy2+ε)
膨張処理868は、ハリスコーナー点抽出処理867により算出されたハリスコーナーのスコアで構成された画像に対してぼかし処理を行う処理である。
並べ替え処理869は、ハリスコーナー点抽出処理867により算出されたハリスコーナーのスコアが高い順に画素を並べ、このスコアが高い方から所定の数だけピックアップし、このピックアップされた点を特徴点として抽出する処理である。
演算プロセッサコア(#1)811は、オプティカルフロー(Optical Flow)演算処理870として、ピラミッド画像作成(Make Pyramid Image)処理871を実行する。また、オプティカルフロー算出(Calc Optical Flow)処理872を実行する。
ピラミッド画像作成処理871は、カメラによる撮像時の画サイズから所定数の段階に縮小された画像を順次作成する処理であり、作成された画像は多重解像度画像と呼ばれる。
オプティカルフロー算出処理872は、ピラミッド画像作成処理871により作成された多重解像度画像のうちで、最も小さい画像についてオプティカルフローを計算する。そして、この計算結果を用いて、1つ上の解像度の画像について再びオプティカルフローを計算する処理であり、この一連の処理を最も大きい画像に辿り着くまで繰り返し行う。
このように、例えば、特徴点抽出処理およびオプティカルフロー算出処理については、マルチコアプロセッサ800を用いてSIMD演算によって並列処理することにより処理結果を求めることができる。ここで、例えば、特徴点抽出処理は、図2等に示す特徴点抽出部121により行われる特徴点抽出処理であり、オプティカルフロー算出処理は、オプティカルフロー算出部122により行われるオプティカルフロー算出処理である。なお、図74等で示す特徴点抽出処理およびオプティカルフロー算出処理は、一例であり、動画を構成する画像に対する各種フィルタ処理や閾値処理等により構成される他の処理を用いて、マルチコアプロセッサ800によるSIMD演算を行うようにしてもよい。
図75は、本発明の第5の実施の形態におけるメインメモリ781に格納されている画像データについて、ソベルフィルタ830を用いてフィルタリング処理を行う場合におけるデータ構造と処理の流れを概略的に示す図である。この画像データは、カメラにより撮像された動画を構成する1つのフレームに対応する画像データである。なお、同図に示すメインメモリ781に格納されている画像データについては、横の画素数を32画素として簡略化して示す。また、ソベルフィルタ830は、3×3のエッジ抽出フィルタである。同図に示すように、メインメモリ781に格納されている画像データについて、ソベルフィルタ830を用いたフィルタリング処理を行い、このフィルタリング処理の結果が出力される。この例では、SIMD演算を用いて4つ分のフィルタ結果を一度に得る例について説明する。
図76は、本発明の第5の実施の形態におけるメインメモリ781に格納されている画像データについてソベルフィルタ830を用いてSIMD演算を行う場合におけるデータの流れを概略的に示す図である。最初は、メインメモリ781に格納されている画像データのうちの最初のラインを含む所定数のラインが演算プロセッサコアのローカルストア821に備えられる第一バッファ831にDMA(Direct Memory Access)転送される。また、第一バッファ831にDMA転送された各ラインを1つ下にずらした所定数のラインが第二バッファ832にDMA転送される。ここで、所定数のラインは、例えば、3ラインである。このように、ダブルバッファを使用することにより、DMA転送による遅延を隠蔽することができる。
図77は、本発明の第5の実施の形態におけるソベルフィルタ830を用いてフィルタリング処理を行う場合において、第一バッファ831に格納されている画像データから9つのベクトルを作成するベクトル作成方法を概略的に示す図である。図76に示すように、DMA転送が行われた後に、第一バッファ831に格納されている画像データから9つのベクトルが作成される。具体的には、第一バッファ831に格納されている画像データの1ラインにおいて左隅から4つのデータによりベクターデータ841が作成され、その4つのデータを右側に1つずらした4つのデータによりベクターデータ842が作成される。同様に、その4つのデータを右側に1つずらした4つのデータによりベクターデータ843が作成される。また、2ラインおよび3ラインにおいても同様に4つのデータによりベクターデータ844乃至849が作成される。
図78は、本発明の第5の実施の形態におけるソベルフィルタ830を用いてフィルタリング処理を行う場合において、ベクターデータ841乃至849についてSIMD命令を用いてベクトル演算を行うベクトル演算方法を概略的に示す図である。具体的には、ベクターデータ841乃至843についてSIMD演算が順次行われ、ベクトルAが求められる。このSIMD演算では、最初に、『「−1」×「ベクターデータ841」』のSIMD演算が実行される。続いて、『「0」×「ベクターデータ842」』のSIMD演算が実行され、『「1」×「ベクターデータ843」』のSIMD演算が実行される。ここで、『「0」×「ベクターデータ842」』については、演算結果が「0」であると確定しているため、省略することが可能である。また、『「1」×「ベクターデータ843」』については、演算結果が「ベクターデータ843」と同じ値であることが確定しているため、省略することが可能である。
続いて、『「−1」×「ベクターデータ841」』の演算結果と、『「0」×「ベクターデータ842」』の演算結果との加算処理がSIMD演算により実行される。続いて、この加算処理の結果と、『「1」×「ベクターデータ843」』の演算結果との加算処理がSIMD演算により実行される。ここで、例えば、「ベクターデータ1」×「ベクターデータ2」+「ベクターデータ3」となるデータ構造の演算については、SIMD演算により実行することが可能である。そこで、ベクトルAの演算については、例えば、『「0」×「ベクターデータ842」』および『「1」×「ベクターデータ843」』についてのSIMD演算を省略する。そして、『「−1」×「ベクターデータ841」+「ベクターデータ843」』を一度のSIMD演算により実行するようにしてもよい。
また、同様に、ベクターデータ844乃至846についてSIMD演算が行われ、ベクトルBが求められ、ベクターデータ847乃至849についてSIMD演算が行われ、ベクトルCが求められる。
続いて、SIMD演算により求められたベクトルA乃至CについてSIMD演算が行われ、ベクトルDが求められる。このように、SIMD演算を行うことにより、ベクトルの要素数分(この例では4つのデータ)の結果をまとめて得ることができる。
ベクトルDが算出された後は、図76に示す第一バッファ831に格納されている画像データにおいて、取り出すデータの位置を右側に1つずらしながら、同様の処理を繰り返し実行して、それぞれのベクトルDの算出を順次行う。そして、図76に示す第一バッファ831に格納されている画像データの右端までの処理が終了した場合には、処理結果をメインメモリ781にDMA転送する。
続いて、メインメモリ781に格納されている画像データのうちで、第二バッファ832にDMA転送された各ラインを1つ下にずらした所定数のラインが第一バッファ831にDMA転送される。この転送とともに、第二バッファ832に格納されている画像データについて、上述した処理を繰り返し行う。そして、メインメモリ781に格納されている画像データの各ラインのうちの下端のラインに達するまで、同様の処理を繰り返し行う。
同様に、特徴点抽出とオプティカルフロー算出の大部分の処理をSIMD演算により行うことによって高速化を実現することができる。
図79は、本発明の第5の実施の形態におけるカメラワークパラメータ算出処理の流れを時系列で概略的に示す図である。上述したように、例えば、マルチコアプロセッサ800を用いてSIMD演算を行うことにより、動画についてのデコードおよび解析処理を並列化して行うことができる。このため、動画を構成する1フレームの解析時間を、デコード時間よりも短縮することが可能である。
例えば、同図において、t1は、制御プロセッサコア801が動画を構成する1フレームのデコード処理に要する時間を示す。また、t2は、演算プロセッサコア(#1)811乃至(#8)818が動画を構成する1フレームの特徴点抽出処理に要する時間を示す。また、t3は、演算プロセッサコア(#1)811乃至(#8)818が動画を構成する1フレームのオプティカルフロー算出処理に要する時間を示す。また、t4は、制御プロセッサコア801が動画を構成する1フレームのカメラワーク検出処理に要する時間を示す。なお、t5は、制御プロセッサコア801および演算プロセッサコア(#1)811乃至(#8)818が動画を構成する1フレームについて、カメラワーク検出処理に要する時間を示す。また、t6は、t6は、制御プロセッサコア801が演算プロセッサコア(#1)811乃至(#8)818を管理する処理に要する時間を示す。例えば、t1を「25.0ms」とし、t2を「7.9ms」とし、t3を「6.7ms」とし、t4を「1.2ms」とし、t5を「15.8ms」とすることができる。
次に、本発明の第5の実施の形態におけるメタデータファイルを用いた動画コンテンツを再生する場合について図面を参照して詳細に説明する。
図80(a)は、記録媒体の一例であるブルーレイディスク(Blu-ray Disc(登録商標))880を模式的に示す上面図であり、図80(b)は、ブルーレイディスク880に記録されている各データ881乃至884を模式的に示す図である。ブルーレイディスク880には、例えば、動画コンテンツ882、字幕883、メタデータ884、Java(登録商標)プログラム881が記録されている。例えば、動画コンテンツ882は、カメラ等により撮像された動画であり、字幕883は、動画コンテンツ882の字幕であり、メタデータ884は、動画コンテンツ882について解析されて得られたメタデータ(例えば、図3、図4等に示す各情報)である。また、Javaプログラム881は、本発明の各実施の形態における動画再生に係るJavaプログラムである。
図80(c)は、ブルーレイディスク880を再生可能なブルーレイ再生機(Blu-ray Disc Player)890の内部構成を模式的に示す図である。ここで、ブルーレイディスクを再生可能なブルーレイ再生機890は、CPU891およびOS892とともに、Java VM(Java仮想マシン)およびライブラリ893が標準で搭載されているため、Javaプログラムを実行することが可能である。このため、ブルーレイディスク880をブルーレイ再生機890に装着することにより、ブルーレイ再生機890がJavaプログラム881をロードして実行することが可能である。これにより、ブルーレイ再生機890が動画コンテンツ882を再生する場合に、メタデータ884を用いて、本発明の各実施の形態における動画に対応するパノラマ画像の表示や、複数の動画の中からの動画の検索等を行うことが可能である。すなわち、専用のPCソフト等を使わずに、全てのブルーレイ再生機で本発明の各実施の形態における動画再生を実現することが可能になる。
以上で示したように、本発明の実施の形態によれば、撮影場所における雰囲気やその場の状況等を的確に伝達することができ、その撮影場所における撮像空間を把握することができる。また、その動画に関する面白みを高めることができ、動画に関する興味を高めることができる。例えば、動画は写真に比べて一度撮影したら満足してしまい、繰り返し鑑賞する人は少ないと言われている。そこで、本発明の実施の形態では、動画から見栄えのよい画像を選択し、この画像により合成画像を作成することにより、動画により撮影されたシーンを再び鑑賞する機会を容易に提供することができる。例えば、複数の画像をパノラマ的に合成して紙の写真を複数毎重ねたような1枚の合成を作成することができる。
また、本発明の実施の形態では、合成画像を表示部に表示する画像処理装置を例にして説明したが、合成画像を他の画像表示装置において表示させるための画像情報を出力する画像出力手段を設けた画像処理装置に本発明の実施の形態を適用することができる。さらに、動画を再生することが可能な動画再生装置や撮影された動画を再生することが可能なデジタルビデオカメラ等の撮像装置、画像データに基づいて画像を表示することが可能なフォトフレーム等に本発明の実施の形態を適用することができる。
また、本発明の実施の形態では、画像処理装置を例にして説明したが、動画を再生することが可能な動画再生装置等に本発明の実施の形態を適用することができる。また、本発明の実施の形態では、カメラにより撮像された動画について説明したが、例えば、カメラにより撮像された動画が編集された場合における編集後の動画やアニメーション等が一部に合成された動画等についても、本発明の実施の形態を適用することができる。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、上述のように特許請求の範囲における発明特定事項とそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。