(57)【要約】【課題】フレーム選択の効率を向上させる情報処理装置を提供する。【解決手段】複数のフレームそれぞれについて第１の特徴量を取得する処理を実行し、取得された第１の特徴量に基づいて、１フレームに対する取得時間が第１の特徴量よりも長い第２の特徴量を取得する対象のフレームを特定する。特定されたフレームから、第２の特徴量を取得する処理を実行し、取得された第２の特徴量に基づいて、画像処理の対象となるフレームを選択する。【選択図】図６
2018097490.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームそれぞれについて第１の特徴量を取得する処理を実行する第１の取得手段と、
前記第１の取得手段により取得された前記第１の特徴量に基づいて、１フレームに対する取得時間が前記第１の特徴量よりも長い第２の特徴量を取得する対象のフレームを特定する特定手段と、
前記特定手段により特定されたフレームから、前記第２の特徴量を取得する処理を実行する第２の取得手段と、
前記第２の取得手段により取得された前記第２の特徴量に基づいて、画像処理の対象となるフレームを選択する選択手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記特定手段は、前記第１の特徴量に基づいて前記複数のフレームをソートし、当該ソートされた順に従って、前記第２の特徴量を取得する対象のフレームを優先的に特定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定手段は、前記第１の特徴量から取得された第１のスコアに従って前記複数のフレームをソートすることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第２の取得手段により取得された前記第２の特徴量が条件を満たすか否かを判定する判定手段、をさらに備え、
前記選択手段は、前記判定手段により前記条件を満たすと判定されたフレームを、前記画像処理の対象となるフレームとして選択する、
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記判定手段は、前記第２の特徴量から取得された第２のスコアが閾値以上であるかを前記条件として判定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記選択手段は、前記複数のフレームの並びにおいて分散するように、前記画像処理の対象となるフレームを選択することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１の特徴量は、所定の向きのオブジェクトの特徴量であり、前記第２の特徴量は、当該所定の向きを含む複数の向きのオブジェクトの特徴量であることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記第１の特徴量は、フレームの画像に関わりなく前記複数のフレームそれぞれに付加されているパラメータであり、前記第２の特徴量は、フレームの画像の特徴量であることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記複数のフレームは、動画データから取得されることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記画像処理は、フレームの画像をレイアウトする処理であることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記画像処理は、ハイライトシーンを作成する処理であることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１２】
前記複数のフレームの並びにおいて、前記選択手段により選択されたフレームを基準として、当該フレームに類似するフレームを前記ハイライトシーンに用いるフレームとして設定する設定手段、をさらに備えることを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
情報処理装置において実行される方法であって、
複数のフレームそれぞれについて第１の特徴量を取得する処理を実行する第１の取得工程と、
前記第１の取得工程において取得された前記第１の特徴量に基づいて、１フレームに対する取得時間が前記第１の特徴量よりも長い第２の特徴量を取得する対象のフレームを特定する特定工程と、
前記特定工程において特定されたフレームから、前記第２の特徴量を取得する処理を実行する第２の取得工程と、
前記第２の取得工程において取得された前記第２の特徴量に基づいて、画像処理の対象となるフレームを選択する選択工程と、
を有することを特徴とする方法。
【請求項１４】
請求項１乃至１２のいずれか１項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理を行う情報処理装置、方法およびプログラムに関する。
【背景技術】
【０００２】
近年、デジタルカメラやスマートフォンの普及に伴い、動画の撮影が手軽になったことから、動画を撮りためることが多くなってきている。撮りためた動画は、単に視聴するだけでなく、選択した特定のフレームから静止画を抽出して、フォトブックやスライドショーに使用するといった活用法も普及しつつある。しかしながら、動画には大量のフレームが含まれており、この中から目的にあった特定のフレームを手動で選択することは負担が大きい。特許文献１には、動画からフレームを選択する方法として、一定間隔で動画に含まれるフレームの特徴量を取得し、取得した特徴量に基づいてフレームを選択する方法が記載されている。
【０００３】
また、一般的にフォトブックやスライドショーを作成するとき、人物の構図、ボケブレ、露出、彩度など複数の要因に基づいて画像を選択することがある。その場合、動画からフレームを選択する精度を向上させるために、一つの特徴量ではなく、複数の特徴量を用いる方法が考えられる。特許文献２には、手ぶれ、被写体ぶれ、露出不良など様々な特徴量を組み合わせることで、最適なものを選択する方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−６６４８７号公報
【特許文献２】特開２００９−１２２７９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、選択の精度を向上させるために、一つのフレームから取得する特徴量の種類を増やすと、その分、フレーム選択に余分に時間がかかることになる。特徴量は、種類によっては、画素を解析するなど取得に時間がかかるものや、メタデータから取得するなど時間がかからないものがある。しかしながら、常に全ての種類の特徴量を取得すると、フレームあたりの特徴量の取得時間が長くなってしまう。また、動画には、大量のフレームが含まれるので、フレームを選択する処理にかかる時間は、特徴量を取得する時間に大きく影響される。従って、特徴量の取得に時間がかかると、ユーザはフレームが選択されるまで長時間待たされることになってしまう。
【０００６】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、フレーム選択の効率を向上させる情報処理装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る情報処理装置は、複数のフレームそれぞれについて第１の特徴量を取得する処理を実行する第１の取得手段と、前記第１の取得手段により取得された前記第１の特徴量に基づいて、１フレームに対する取得時間が前記第１の特徴量よりも長い第２の特徴量を取得する対象のフレームを特定する特定手段と、前記特定手段により特定されたフレームから、前記第２の特徴量を取得する処理を実行する第２の取得手段と、前記第２の取得手段により取得された前記第２の特徴量に基づいて、画像処理の対象となるフレームを選択する選択手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、フレーム選択の効率を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置のハードウェア構成を示す図である。
【図２】フォトブック作成機能に関するブロック構成を示す図である。
【図３】フレーム情報管理テーブルを示す図である。
【図４】第２特徴量を取得する順番が決定されたフレーム情報を示す図である。
【図５】キーフレームを選択する処理を示すフローチャートである。
【図６】Ｓ５０４の処理を示すフローチャートである。
【図７】フォトブック作成機能に関するブロック構成を示す図である。
【図８】フレーム情報管理テーブルを示す図である。
【図９】キーフレームを選択する処理を示すフローチャートである。
【図１０】Ｓ９０６の処理を示すフローチャートである。
【図１１】Ｓ９０７の処理を示すフローチャートである。
【図１２】ムービー作成機能に関するブロック構成を示す図である。
【図１３】キーフレームを選択する処理を示すフローチャートである。
【図１４】Ｓ１３０１の処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１１】
［第１の実施形態］
図１は、本実施形態における情報処理装置１００のハードウェア構成を示す図である。ＣＰＵ１０１は、装置全体を統括的に制御する中央演算装置である。ＣＰＵ１０１が制御プログラムに基づいて、情報の演算や加工、各ハードウェアの制御を実行することにより、本実施形態の動作を実現する。ＲＡＭ１０２は、汎用的なＲＡＭであり、ＣＰＵ１０１の主メモリとして、若しくは、実行プログラムのロードやプログラム実行に必要なワークメモリとして機能する。ＲＯＭ１０３は、汎用的なＲＯＭであり、例えば、本実施形態の動作を実現するための手順を規定するプログラムを記憶する。ＲＯＭ１０３には、コンピュータシステムの機器制御を行うシステムプログラムである基本ソフトウェア（ＯＳ）等を記憶したプログラムＲＯＭと、システムを稼動するために必要な情報などが記憶されたデータＲＯＭが含まれる。また、ＲＯＭ１０３の代わりに、ＨＤＤ１０９が用いられても良い。
【００１２】
ネットワークＩＦ１０４は、ネットワークインタフェースであり、ＬＡＮ等のネットワークを介して送受信される動画データなどのデータの入出力制御を行う。ネットワークＩＦ１０４は、有線や無線等、ネットワークの媒体に応じた構成を有する。ＶＲＡＭ１０５は、ビデオＲＡＭであり、表示装置であるディスプレイ１０６の画面に表示される画像を展開する。ディスプレイ１０６は、表示装置であり、例えば、液晶ディスプレイや液晶パネルである。入力コントローラ１０７は、入力装置１０８からの入力信号を制御するコントローラである。入力装置１０８は、ユーザからの操作指示を受け付けるための外部入力装置であり、例えば、タッチパネル、キーボード、ポインティングデバイス、リモートコントローラなどである。ＨＤＤ１０９は、ハードディスクドライブである。ＨＤＤ１０９は、アプリケーションプログラムや、動画データや画像データなどのデータ保存用に用いられる。アプリケーションプログラムは、例えば、フォトブック作成アプリケーションやムービー作成アプリケーションである。入力ＩＦ１１０は、ＣＤ（ＤＶＤ）−ＲＯＭドライブ、メモリカードドライブ等の外部装置と接続するためのインタフェースであり、例えば、デジタルカメラで撮影した動画データの読出しなどに用いられる。入出力バス１１１は、上述した各ユニット間を相互に通信可能に接続するための入出力バスであり、例えばアドレスバス、データバス、制御バスを含む。
【００１３】
図２は、情報処理装置１００のフォトブック作成機能に関するブロック構成の一例を示す図である。本実施形態では、情報処理装置１００は、アプリケーションを実行することにより、動画データから選択されたフレームに基づいてフォトブックを作成する機能を有する。本実施形態では、動画データから選択されたフレームに基づいて作成されるものはフォトブックとして説明するが、カレンダや単葉印刷など他の作成物であっても良い。図２の各ブロックは、例えば、ＣＰＵ１０１がアプリケーションを実行することで実現される。
【００１４】
フレーム入力部２０１は、入力ＩＦ１１０から入力された動画データを読み込み、動画データに含まれる互いに連関する複数のフレームの画像を抽出してＨＤＤ１０９に保存する。ここで、対象とするフレームは、動画データに含まれる全てのフレームでも良いし、動画データの圧縮符号化にフレーム間予測を用いている場合にはＩフレーム（ｉｎｔｒａ  ｆｒａｍｅ）のみでも良い。本実施形態では、０．５秒ごとのＩフレームの画像データを入力してＨＤＤ１０９に保存する。
【００１５】
第１特徴量取得部２０２は、保存されたフレームの画像から１フレームごとに、オブジェクトとして正面方向の顔を検出し、その正面方向の顔の座標およびサイズ（幅、高さ）を第１特徴量として取得する。第２特徴量取得部２０３は、保存されたフレームの画像から１フレームごとに、オブジェクトとして全方向の顔を検出し、その全方向の顔の座標およびサイズ（幅、高さ）を第２特徴量として取得する。例えば、検出を所望する全ての方向に対して、検出方向毎に回転画像を生成し、各回転画像に対して正面方向の顔を検出することで座標を取得する。従って、全方向の顔を検出する処理は、正面方向の顔を検出するよりも時間がかかる。本実施形態では、第２特徴量は、第１特徴量よりもその取得に時間がかかる特徴量をいう。
【００１６】
特徴量取得順決定部２０４は、各フレームから取得した第１特徴量を用いて、第２特徴量を取得する順番を決定する。キーフレーム選択部２０５は、特徴量取得順に従ってフレームから第２特徴量を取得し、第２特徴量を用いて、キーフレームを選択する。出力部２０６は、選択されたキーフレームの画像をレイアウトしてフォトブックを作成するため画像のレイアウトに係る画像処理を実行する。出力部２０６での画像処理では、必ずしも全てのキーフレームを用いる必要はなく、キーフレームからさらに使用する画像を絞りこんでも良いし、動画と一緒に撮影した静止画など、キーフレーム以外の画像を用いても良い。
【００１７】
図３は、動画データの各フレームの情報を管理するテーブルの一例を示す図である。フレーム情報管理テーブル３０１は、ＩＤ、第１特徴量、第２特徴量、第１スコア、第２スコア、キーフレームの項目を含むフレーム情報で構成される。ＩＤは、各フレームを識別する識別情報であり、動画データから抽出された順、例えば、日時情報順に付与されている。第１特徴量は、第１特徴量取得部２０２により取得された正面顔の座標であり、正規化された顔の中心座標（ｘ，ｙ）と幅ｗ、高さｈが格納されている。第２特徴量は、第２特徴量取得部２０３により取得された全方向の顔の中心座標、幅、高さであり、第１特徴量と同様の情報が格納されている。
【００１８】
第１スコアは、第１特徴量から算出されたフレームの評価値であり、第２スコアは、第２特徴量から算出されたフレームの評価値である。評価値の算出については、後述する。キーフレームは、キーフレーム選択部２０５によりキーフレームとして選択されたか否かを示すフラグであり、丸印が付加されている（フラグが設定されている）ＩＤのフレームは、キーフレームとして選択されたことを示している。
【００１９】
図４は、第２特徴量を取得する順番が決定されたフレーム情報の一例を示す図である。フレーム情報テーブル４０１の特徴量取得順は、第２特徴量を取得する順番を示す。フレーム情報ＩＤは、第２特徴量を取得する順番に対応するフレームを識別するＩＤを示す。図３のフレーム情報管理テーブル３０１および図４のフレーム情報テーブル４０１は、例えば、ＨＤＤ１０９に記憶され、随時更新可能である。
【００２０】
図５は、動画の各フレームからキーフレームを選択する処理を示すフローチャートである。図５の処理は、例えば、ＣＰＵ１０１がＲＯＭ１０３に記憶されたプログラムをＲＡＭ１０２に読み出して実行することにより実現される。図５の処理は、例えば、フォトブックアルバムを作成するユーザインタフェース画面上で、所定のレイアウトに割り当てる画像データを取得する先として動画データが指定されたときに開始される。
【００２１】
Ｓ５０１では、ＣＰＵ１０１は、フレーム入力部２０１により入力された全てのフレームに対して、第１特徴量取得部２０２によりフレーム毎に第１特徴量を取得し、その第１特徴量をフレーム情報管理テーブル３０１に格納する。本実施形態では、フレーム入力部２０１による入力対象はＩフレームのみであり、０．５秒ごとのＩフレームの情報が、情報管理テーブル３０１に順次格納される。
【００２２】
Ｓ５０２では、ＣＰＵ１０１は、第１特徴量である顔座標から構図を考慮した評価値を第１スコアとして算出し、その第１スコアをフレーム情報管理テーブル３０１に格納する。本実施形態では、第１スコアの算出方法として、中心座標に近く顔サイズが大きいほど高いスコアを算出する。例えば、図３からＩＤ４のフレームの顔座標は、ＩＤ３のフレームの顔座標よりも中心座標（０．５，０．５）に近く、サイズも大きい。従って、ＩＤ４のフレームの第１スコアには、ＩＤ３のフレームよりも高いスコアが格納されている。
【００２３】
第１スコアは、例えば、以下の方法によって算出されても良い。まず、全てのＩＤのフレームについて、正面顔を含むフレームを抽出する。例えば、正位置の正面顔を含むフレームを抽出する。これは、例えば、ＲＯＭ１０３やＨＤＤ１０９に記憶されている顔データベースにおける特定の正面顔と類似する顔を含むフレームを抽出するようにしても良い。そして、その正面顔の中心座標と対象フレームの中心座標との第１のずれ量を取得する。また、その正面顔のサイズと対象フレーム内での最大許容サイズとの第２のずれ量を取得する。そして、それらの第１のずれ量および第２のずれ量から、各ずれ量が小さいほど値が高くなるようなパラメータを規定しておき、その値を第１スコアとしても良い。例えば、第１スコアは、式（１）のように算出されても良い。
【００２４】
第１スコア  ＝  １−√［｛（第１のずれ量／第１の最大許容ずれ量）＾２＋（第２のずれ量／第２の最大許容ずれ量）＾２｝／２］  ・・・（１）
式（１）によれば、第１及び第２のずれ量が０である場合は、第１スコアは１であり、第１及び第２のずれ量が最大許容ずれ量である場合は、第１スコアは０である。また、第１及び第２のずれ量それぞれが、第１及び第２の最大許容ずれ量の０．２（２０％）であれば、第１スコアは０．８となる。
【００２５】
また、上記の方法でなくても、中心座標（０．５，０．５）に近く且つサイズが大きいほど、高いスコア値が得られるのであれば、他の方法によって第１スコアが取得されても良い。また、正面顔の位置とサイズそれぞれに重み付けを行うようにしても良いし、一つのフレームで複数の正面顔が検出された場合には、大きさが同じでも顔が一つの場合よりも高い点となるよう重み付けを行うようにしても良い。
【００２６】
Ｓ５０３では、ＣＰＵ１０１は、特徴量取得順決定部２０４により、フレーム情報管理テーブル３０１の第１スコアが高い順にＩＤをソートし、第２特徴量を取得する特徴量取得順を決定する。例えば、図４の特徴量取得順では、フレーム情報管理テーブル３０１の第１スコアが最も高いＩＤ１４のフレームが特徴量取得順において１番目となっている。図４では、第１スコアが低いＩＤ２６のフレームも特徴量取得順に加えられているが、第１スコアの信頼度が所定の基準を満たすものである場合には、第１スコアが閾値以下のフレームを特徴量取得順から除外するようにしても良い。
【００２７】
Ｓ５０４では、ＣＰＵ１０１は、キーフレーム選択部２０５により、決定された特徴量取得順を用いて、キーフレームとなるフレームを選択する。Ｓ５０４の処理については後述する。Ｓ５０４の処理後、図５の処理を終了する。
【００２８】
Ｓ５０１〜Ｓ５０４は、１つの動画データからキーフレームを選択する処理である。従って、フレーム入力部２０１が複数の動画データを受け付ける場合、ＣＰＵ１０１は、各動画データに対してＳ５０１〜Ｓ５０４を繰り返して実行する。図５の処理後、出力部２０６は、選択されたキーフレームの画像をレイアウトしてフォトブックを作成する。
【００２９】
図６は、図５のＳ５０４の処理を示すフローチャートである。図６では、特徴量取得順を用いて動画データの各フレームからキーフレームが選択される。
【００３０】
Ｓ６０１では、ＣＰＵ１０１は、ＲＡＭ１０２に確保された特徴量取得順の順番を示す変数ｒを１に初期化する。Ｓ６０２では、ＣＰＵ１０１は、図４のフレーム情報テーブル４０１を参照し、特徴量取得順がｒ番目のフレームのＩＤを取得する。そして、ＣＰＵ１０１は、フレーム情報管理テーブル３０１を参照し、そのＩＤのフレーム情報を取得する。
【００３１】
Ｓ６０３では、ＣＰＵ１０１は、Ｓ６０２で取得した対象フレームの近傍のフレームから第２特徴量が既に取得済みであるか否かを判定する。ここで、近傍のフレームとは、Ｓ６０２で取得した対象フレームの前後の２つのフレームである。しかしながら、特に前後の２つのフレームに限定されるわけではなく、例えば、動画データから抽出された全フレーム数に応じて、前後の４つのフレームなど、適宜フレーム範囲を変更可能としても良い。
【００３２】
Ｓ６０３で取得済みでないと判定された場合、Ｓ６０４に進み、後述するキーフレーム判定を行う。Ｓ６０３で取得済みと判定された場合、対象フレームと類似する近傍のフレームにおいて既にキーフレーム判定が行われているということなので、キーフレーム判定を行わずにＳ６０７に進む。つまり、本実施形態では、キーフレーム判定が既に行われているフレームの近傍については、フレーム判定を行わない。そのような構成により、動画データにおける抽出されたフレームの並びにおいてキーフレームを分散させることができ、キーフレームの位置の偏りを防ぐことができる。
【００３３】
なお、近傍のフレームが既に第２特徴量を取得済みであると判定され且つキーフレームでないと判定された場合でも、対象フレームがキーフレームと判定される可能性はゼロではない。従って、Ｓ６０３では、合わせて、近傍のフレームがキーフレームとして既に選択されているか否かを判定するようにしても良い。その場合、近傍のフレームがキーフレームとして既に選択されている場合には、Ｓ６０７に進み、近傍のフレームがキーフレームとして既に選択されていない場合には、Ｓ６０４に進む。
【００３４】
Ｓ６０４では、ＣＰＵ１０１は、第２特徴量取得部２０３により第２特徴量を取得し、第２特徴量から第２スコアを算出して、その第２スコアをフレーム情報管理テーブル３０１に格納する。第２特徴量の取得は、例えば、所定の全ての検出方向に対して、検出方向毎に回転画像を生成し、各回転画像に対して正面方向の顔を検出することで中心座標、幅、高さを取得する。第２スコアは、第１スコアと同様の方法により算出される。第２特徴量取得部２０３は、所定の全ての検出方向の顔の向きに対応しているので、例えば、図３のＩＤ４のフレームのように新たに顔の座標が取得される場合もある。そのような場合、検出される顔の個数によって重み付けが設定されている場合など、第２スコアは必ずしも第１スコアと同じとはならずに、第１スコアよりも第２スコアの方がより高い値になる場合がある。
【００３５】
Ｓ６０５では、ＣＰＵ１０１は、第２スコアが閾値以上であるか否かを判定する。ここでは、閾値として０．８を用いるが特に０．８に限られず、フレームサイズや条件等に応じて他の値が用いられても良い。閾値以上であると判定された場合、Ｓ６０６において、ＣＰＵ１０１は、現在の対象フレームをキーフレームとして設定し、図３のフレーム情報管理テーブル３０１のキーフレームの項目を「設定済み」に設定する。一方、閾値以上でないと判定された場合、Ｓ６０７に進む。
【００３６】
Ｓ６０７では、ｒ番目のフレームが図４の特徴量取得順の最後のフレームであるか否かを判定する。最後のフレームでないと判定された場合、Ｓ６０８において、ＣＰＵ１０１は、変数ｒを＋１インクリメントしてＳ６０２からの処理を繰り返す。一方、最後のフレームであると判定された場合、図６の処理を終了する。また、Ｓ６０７では、必要なフレーム数分、キーフレームが設定されたか否かを判定するようにしても良い。そして、必要なフレーム数分、キーフレームが設定されたと判定された場合には図６の処理を終了するようにしても良い。
【００３７】
なお、本実施形態では、第２特徴量取得部２０３が所定の全方向の顔をオブジェクトとし、その顔座標を第２特徴量として取得した。しかしながら、さらに、笑顔度、彩度、ボケブレ度など様々な特徴量を取得するようにし、第２スコアは、それらの特徴量を総合評価したものとしても良い。また、フレーム入力部２０１で各フレームの画像を保存するとき、１つのフレームからサイズの異なる２種類の画像を保存するようにしても良い。その場合、第１特徴量取得部２０２は、小さい方の画像を解析して第１特徴量を取得し、第２特徴量取得部２０３は、大きい方の画像を解析して第２特徴量を取得するようにしても良い。また、本実施形態では、第２特徴量は第１特徴量を取得する処理量より多い特徴量であるとしたが、第１特徴量を取得する処理量の方が多くてもその取得時間が第２特徴量の取得時間よりも短く済むのであれば、本実施形態の動作を適用可能である。例えば、第１特徴量の取得をハードウェアで行う場合である。その場合、取得時間が長い第２特徴量を取得するフレームの数を制限する（絞る）ことができる。
【００３８】
以上説明したように、本実施形態によれば、第１特徴量から算出した第１スコアの高いフレーム順（特徴量取得順）で、第２スコアが高いと期待されるフレームから優先的にキーフレーム判定を行う。その結果、取得するための処理量が多い第２特徴量を取得する対象のフレームの数を制限することができる。また、キーフレーム判定では、第２特徴量を取得して第２スコアを算出し、第２スコアが上位のフレームから優先的に、第２スコアが高いフレームをキーフレームとして選択していく。その結果、第２特徴量を取得するフレームの数を制限しても、キーフレームとしての選択精度を維持することができる。これにより、精度良く高速にキーフレームを選択でき、ユーザが長時間待たされることなく動画から静止画を抽出することが可能となる。
【００３９】
第１特徴量を用いて予め評価の低いフレームを除外しておく構成では、第１特徴量の精度が低い場合に誤って除外してしまい、その結果、キーフレームを発見できないおそれがある。しかしながら、本実施形態では、順番が下位になるだけで最終的にはキーフレームを発見することができる。
【００４０】
［第２の実施形態］
第１の実施形態では、特徴量取得順を用いて、第２特徴量を取得するフレームの数を制限し、精度良く高速にフレームを選択する構成を説明した。本実施形態では、第２特徴量を取得するフレームの数を制限する他の構成として、フレームを所定の区間に分割し、その情報を用いて、第２特徴量を取得するフレームの数を制限する。以下、第１の実施形態と異なる点について説明する。
【００４１】
図７は、本実施形態における情報処理装置１００のフォトブック作成機能に関するブロック構成の一例を示す図である。フレーム入力部２０１、第１特徴量取得部２０２、第２特徴量２０３、キーフレーム選択部２０５、出力部２０６については、第１の実施形態における説明と同じである。但し、第１特徴量取得部２０２は、本実施形態では、第１特徴量として、カメラのジャイロセンサなどにより予め動画に付与されたメタデータを用いてカメラの動き量の情報が取得されるものとする。区間設定部７０１は、動画に含まれる連続する複数のフレームを所定の処理により、時刻情報等に基づいて区間分割する。図７の各ブロックは、例えば、ＣＰＵ１０１がアプリケーションを実行することで実現される。
【００４２】
図８は、本実施形態におけるフレーム情報管理テーブルの一例を示す図である。フレーム情報管理テーブル８０１は、ＩＤ、区間ＩＤ、フレーム番号、第１特徴量、第２特徴量、第１スコア、第２スコア、候補フレーム、キーフレームの項目を含むフレーム情報で構成される。ＩＤは、各フレームを識別する識別情報であり、動画データから抽出された順に付与されている。区間ＩＤは、区間設定部７０１で連続するフレームを分割した際の、フレームが属する区間を識別する識別情報である。第１特徴量は、第１特徴量取得部２０２により取得されたカメラの動き量であり、動き量の大きさが格納される。第２特徴量は、保存されたフレームの画像から検出された顔の中心座標、幅、高さであり、第１の実施形態で、第１特徴量として検出される正面顔の特徴量と同じである。
【００４３】
第１スコアは、第１特徴量から算出されたフレームの評価値であり、動き量が小さいほど高い値となる。第１スコアは、例えば、全フレームの動き量の中で最大値を１．０とし最小値を０として、各フレームの動き量の相対値を０〜１．０の範囲で算出するようにしても良い。第２スコアは、第１の実施形態における説明と同じである。候補フレームは、キーフレームの候補となるフレームであるか否かを示すフラグである。キーフレームは、キーフレームとして設定されたか否かを示すフラグである。フレーム情報管理テーブル８０１は、候補フレームおよびキーフレームが設定される前の状態を示し、情報管理テーブル８０２は、候補フレームおよびキーフレームが設定された後の状態を示している。
【００４４】
図９は、本実施形態における、動画の各フレームからキーフレームを選択する処理を示すフローチャートである。図９の処理は、例えば、ＣＰＵ１０１がＲＯＭ１０３に記憶されたプログラムをＲＡＭ１０２に読み出して実行することにより実現される。図９の処理は、例えば、フォトブックアルバムを作成するユーザインタフェース画面上で、所定のレイアウトに割り当てる画像データを取得する先として動画データが指定されたときに開始される。本実施形態では、キーフレーム選択部２０５は、区間設定部７０１で設定された区間情報を用いて、キーフレームとなるフレームを選択する。
【００４５】
Ｓ９０１では、ＣＰＵ１０１は、フレーム入力部２０１により入力された全てのフレームに対して、第１特徴量取得部２０２によりフレーム毎に第１特徴量であるカメラの動き量を取得し、その第１特徴量をフレーム情報管理テーブル８０１に格納する。
【００４６】
Ｓ９０２では、ＣＰＵ１０１は、第１特徴量から第１スコアを算出し、その第１スコアをフレーム情報管理テーブル８０１に格納する。本実施形態では、動き量の大きいフレームの画像はぶれている可能性が高いので、動き量の小さいものほど高い値になるよう第１スコアが算出されている。
【００４７】
Ｓ９０３では、ＣＰＵ１０１は、区間設定部７０１により全てのフレームに対して各フレームが属する区間のＩＤをフレーム情報管理テーブル８０１に設定する。本実施形態では、図８（ａ）に示すように、区間を固定長の５つのフレームごとに分割する。しかしながら、動き量の差が閾値以上の箇所で分割するなど、可変長に分割するようにしても良い。
【００４８】
Ｓ９０４では、ＣＰＵ１０１は、各区間を代表する第２特徴量として、各区間の中心に位置するフレームから第２特徴量を取得する。Ｓ９０５では、ＣＰＵ１０１は、中心フレームの第２特徴量から第２スコアを算出し、その第２スコアをフレーム情報管理テーブル８０１に格納する。図８（ａ）は、Ｓ９０１〜Ｓ９０５の処理が実行された状態の一例を示しており、各区間の中心フレームであるＩＤ３、ＩＤ８、ＩＤ１３のフレームに第２特徴量と第２スコアが格納されている。
【００４９】
Ｓ９０６では、ＣＰＵ１０１は、キーフレームの候補となる候補フレームを選択する。Ｓ９０６の処理は、図１０において後述する。Ｓ９０７では、ＣＰＵ１０１は、候補フレームからキーフレームを選択する。Ｓ９０７の処理は、図１１において後述する。
【００５０】
図１０は、図９のＳ９０６の処理を示すフローチャートである。図１０では、区間の情報を用いて、動画の各フレームからキーフレームの候補となる候補フレームが選択される。
【００５１】
Ｓ１００１では、ＣＰＵ１０１は、ＲＡＭ１０２に確保された対象フレームのＩＤを示す変数ｉを１に初期化する。Ｓ１００２では、ＣＰＵ１０１は、図８のフレーム情報管理テーブル８０１を参照し、フレームのＩＤがｉであるフレームのフレーム情報を取得する。Ｓ１００３では、ＣＰＵ１０１は、Ｓ１００２で取得した対象フレームの区間ＩＤと同じ区間に属する中心フレームの第２スコアを取得する。
【００５２】
Ｓ１００４では、ＣＰＵ１０１は、対象フレームの第１スコアが閾値以上であるか否かを判定する。ここでは、閾値として０．８を用いるが特に０．８に限られず、条件等に応じて他の値が用いられても良い。閾値以上であると判定された場合、Ｓ１００５に進み、閾値以上でないと判定された場合、Ｓ１００７に進む。
【００５３】
Ｓ１００５では、ＣＰＵ１０１は、Ｓ１００３で取得した中心フレームの第２スコアが閾値以上であるか否かを判定する。ここでは、閾値として０．８を用いるが特に０．８に限られず、条件等に応じて他の値が用いられても良い。また、Ｓ１００４の閾値と異なる値が用いられても良い。閾値以上であると判定された場合、Ｓ１００６に進み、閾値以上でないと判定された場合、Ｓ１００７に進む。
【００５４】
Ｓ１００４、Ｓ１００５のいずれも閾値以上であると判定された場合、Ｓ１００６で、ＣＰＵ１０１は、対象フレームを候補フレームとして設定する。さらに、ＣＰＵ１０１は、第２特徴量取得部２０３により対象フレームの第２特徴量を取得し、第２スコアを算出し、その第２スコアをフレーム情報管理テーブル８０１に格納する。なお、対象フレームの第２スコアを算出せずに、中心フレームの第２スコアを対象フレームの第２スコアとして用いても良い。
【００５５】
例えば、フレーム情報管理テーブル８０２のＩＤ５のフレームは、第１スコアが０．８９で閾値以上である。そして、ＩＤ５と同区間で中心に位置するＩＤ３の中心フレームの第２スコアは、０．８１で閾値以上である。従って、ＩＤ５のフレームは、Ｓ１００６で候補フレームとして設定される。さらに、ＩＤ５のフレームの第２特徴量が取得され、その第２特徴量に基づいて算出された第２スコアである０．８２がフレーム情報管理テーブル８０２に格納される。Ｓ１００４、Ｓ１００５のいずれかで閾値以上と判定されない場合、Ｓ１００７に進む。
【００５６】
Ｓ１００７では、ＣＰＵ１０１は、フレームのＩＤがｉであるフレームがフレーム情報管理テーブル８０１の最後のフレームであるか否かを判定する。ここで、最後のフレームでないと判定された場合、Ｓ１００８でｉを＋１インクリメントしてＳ１００２からの処理を繰り返す。一方、最後のフレームであると判定された場合、図１０の処理を終了する。
【００５７】
なお、本実施形態では、Ｓ１００４、Ｓ１００５において、対象フレームの第１スコア、中心フレームの第２スコアのそれぞれの値が閾値以上であるか否かを判定した。他にも、対象フレームの第１スコアと中心フレームの第２スコアを合計するなど、総合的な評価値を算出し、その評価値を用いて候補フレームに設定するか否かを判定するようにしても良い。また、中心フレームの第２スコアを直接用いるのではなく、線形補完などにより、別途算出した値を第２スコアとして用いても良い。
【００５８】
図１１は、図９のＳ９０７の処理を示すフローチャートである。図１１では、候補フレームからキーフレームが選択される。
【００５９】
Ｓ１１０１では、ＣＰＵ１０１は、候補フレームが設定されたフレーム情報を全て取得し、第２スコアでソートする。Ｓ１１０２では、ＣＰＵ１０１は、ＲＡＭ１０２に確保された、対象となる候補フレームを示す変数ｋを１に初期化する。Ｓ１１０３では、ＣＰＵ１０１は、ｋ番目に第２スコアの高い候補フレーム情報を取得する。
【００６０】
Ｓ１１０４では、ＣＰＵ１０１は、対象の候補フレームの区間ＩＤと同一区間に既にキーフレームが存在するか否かを判定する。存在しないと判定された場合、Ｓ１１０５に進み、ＣＰＵ１０１は、対象の候補フレームをキーフレームとして設定する。Ｓ１１０５の処理後、若しくは、Ｓ１１０４で存在すると判定された場合、Ｓ１１０６に進む。
【００６１】
Ｓ１１０６では、ＣＰＵ１０１は、ｋ番目の候補フレームが、ソートされた順番のうち最後であるか否かを判定する。最後でないと判定された場合、Ｓ１１０７に進み、ＣＰＵ１０１は、ｋを＋１インクリメントしてＳ１１０３からの処理を繰り返す。一方、最後であると判定された場合、図１１の処理を終了する。
【００６２】
本実施形態によれば、同区間のフレームの画像は類似している可能性が高いので、Ｓ１１０４の判定により、同区間に既にキーフレームが存在しない場合に、その候補フレームをキーフレームとして設定する。これにより、同区間において類似する候補フレームをともにキーフレームとして設定してしまうことを防ぐことができる。
【００６３】
また、他の構成として、高スコアであれば同区間のフレームであっても選択することが望ましいとし、同区間にキーフレームが存在する数に基づいて第２スコアを低減するように調整しても良い。そして、調整の結果、なお閾値以上であると判定される場合にキーフレームとして設定するようにしても良い。また、第２スコアの高い順にキーフレームを選択するのではなく、第２特徴量と異なる特徴量から第３スコアを算出し、第３スコアの高い順にキーフレームを選択しても良い。
【００６４】
以上説明したように、本実施形態によれば、フレームを区間分割した情報を用いて、第２特徴量を取得するフレームの数を制限することで、精度良く高速にフレームを選択でき、ユーザを長時間待たすことなく動画から静止画を抽出することができる。また、第１スコアがいずれも高く且つ差がなく順位付けが難しい場合でも、区間の中心フレームの第２特徴量から算出した第２スコアを用いることで、フレームの数を制限することができる。
【００６５】
［第３の実施形態］
第１及び第２の実施形態では、フォトブックにレイアウトする画像を動画データから抽出するために、キーフレームを選択するものであった。本実施形態では、選択されたキーフレームの情報を用いて動画データのハイライトとなるシーン（特定の区間）を選択する。以下、各実施形態と異なる点について説明する。
【００６６】
図１２は、情報処理装置１００のムービー作成機能に関するブロック構成の一例を示す図である。フレーム入力部２０１、第１特徴量取得部２０２、第２特徴量取得部２０３、特徴量取得順決定部２０４、出力部２０６は、第１の実施形態における説明と同じである。但し、本実施形態では、出力部２０６は、選択されたハイライトシーンの区間の動画を抽出し、ハイライトムービーとして出力する。ハイライトシーン選択部１２０１は、図２のキーフレーム選択部２０５と同様にキーフレームを選択し、さらに、キーフレームの情報を用いてハイライトシーンを選択する。類似判定部１２０２は、２つの画像を解析し、色ヒストグラムなどの情報に基づいて、２つのフレームの画像が類似しているか否かを判定する。図１２の各ブロックは、例えば、ＣＰＵ１０１がアプリケーションを実行することで実現される。
【００６７】
図１３は、動画の各フレームからキーフレームを選択する処理を示すフローチャートである。図１３の処理は、例えば、ＣＰＵ１０１がＲＯＭ１０３に記憶されたプログラムをＲＡＭ１０２に読み出して実行することにより実現される。図１３の処理では、ハイライトシーン選択部１２０１が、フレーム入力部２０１から入力された動画データの各フレームの中からハイライトシーンとなるフレームを選択する。
【００６８】
Ｓ５０１〜Ｓ５０４は、第１の実施形態における説明と同様である。本実施形態では、Ｓ５０４の処理後、Ｓ１３０１に進む。Ｓ１３０１では、ＣＰＵ１０１は、Ｓ５０４で選択されたキーフレームの情報を用いて、ハイライトシーンとなるフレームを選択する。Ｓ１３０１の処理は、図１４において後述する。
【００６９】
図１４は、図１３のＳ１３０１の処理を示すフローチャートである。図１４では、キーフレームの情報を用いて、ハイライトシーンの開始フレームと終了フレームが選択される。以下、図３のフレーム情報管理テーブル３０１に示すように、キーフレームが設定されたとする。
【００７０】
Ｓ１４０１では、ＣＰＵ１０１は、ＲＡＭ１０２に確保された、フレームを進める方向を示す変数ｄに−１を設定する。Ｓ１４０２では、ＣＰＵ１０１は、フレーム情報管理テーブル３０１から第２スコアの最も高いキーフレームのＩＤを取得し、そのＩＤの値を変数ｓに設定する。後述するが、変数ｄが−１であれば、変数ｓのフレームを負の方向に進めることにより開始フレームを探索し、変数ｄが１であれば、変数ｓのフレームを正の方向に進めることにより終了フレームを探索する。
【００７１】
Ｓ１４０３では、ＣＰＵ１０１は、ＨＤＤ１０９に保存されている、ＩＤがｓとｓ＋ｄのフレームの画像を取得する。Ｓ１４０４では、ＣＰＵ１０１は、類似判定部１２０２により、ＩＤがｓ＋ｄのフレームが存在し、且つＩＤがｓのフレームと類似するか否かを判定する。類似しないと判定された場合、Ｓ１４０７に進み、類似すると判定された場合、Ｓ１４０５に進む。類似判定では、例えば、各フレームについて、画素値分布から色ヒストグラムを取得し、その類似を判定するようにしても良い。
【００７２】
Ｓ１４０５では、ＣＰＵ１０１は、ｓにｄを加算して変数ｄの方向に一つ進める。Ｓ１４０６では、ＣＰＵ１０１は、ｓがキーフレームの位置から変数ｄの方向に所定回数、例えば６回移動したか否かを判定する。移動していないと判定された場合、Ｓ１４０３からの処理を繰り返す。移動していると判定された場合、Ｓ１４０７に進む。なお、ここでは、判定基準となる移動量を固定の６回としたが、キーフレームの第２スコアに応じて判定に用いるフレームの数を変えるなど、可変としても良い。
【００７３】
Ｓ１４０７では、ＣＰＵ１０１は、変数ｄが１であるか否かを判定する。１でないと判定された場合、ＣＰＵ１０１は、Ｓ１４０８でＩＤがｓのフレームをハイライトシーンの開始フレームとして設定する。そして、Ｓ１４０９で、ＣＰＵ１０１は、変数ｄの値を１に設定して変数ｓを正の方向に進めるようにして、Ｓ１４０２からの処理を繰り返す。Ｓ１４０７で１であると判定された場合、Ｓ１４１０で、ＣＰＵ１０１は、ＩＤがｓのフレームをハイライトシーンの終了フレームとして設定する。Ｓ１４１０の処理後、図１４の処理を終了する。
【００７４】
例えば、図３に示すように、フレーム情報管理テーブル３０１のＩＤ４のフレームが最も第２スコアが高いフレームである場合、ＩＤ４からＩＤ番号が小さくなる方向に類似判定を行って、開始フレームを探索する。そして、開始フレームが設定された後、ＩＤ４からＩＤ番号が大きくなる方向に類似判定を行って終了フレームを探索することになる。仮に、ＩＤ９とＩＤ１０が類似していないとした場合、ＩＤ１〜ＩＤ９までのフレームがハイライトシーンとして選択されることになる。
【００７５】
なお、本実施形態では、Ｓ１４０２で第２スコアが最も高いキーフレームを基準としてハイライトシーンを探索した。他の方法として、キーフレームの前後のフレームの第１スコアを加算するなどして、第２スコアと異なるスコアを算出し、最も高いスコアのキーフレームを基準としてハイライトシーンを探索するようにしても良い。また、Ｓ１４０４の類似判定では、第２の実施形態で用いた動き量の差が閾値より大きいか否かによって判定しても良いし、画像を解析して得られた局所特徴量を用いるなど他の方法により類似の判定を行っても良い。
【００７６】
また、本実施形態では、第１の実施形態と同様の動作によりキーフレームを選択し、キーフレームの情報を用いてハイライトシーンを選択した。しかしながら、第２の実施形態の動作によりキーフレームを選択し、そのキーフレームの情報を用いてハイライトシーンを選択しても良い。
【００７７】
以上説明したように、第１の実施形態または第２の実施形態により選択されたキーフレームを基準として、隣接するフレームとの類似を判定し、一定時間もしくはシーンが大きく変わる所で切り出した動画をハイライトシーンとして選択することができる。
【００７８】
以上、各実施形態を説明したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記録媒体（記憶媒体）等としての実施態様をとることが可能である。具体的には、複数の機器（例えば、ホストコンピュータ、インタフェース機器、撮像装置、Ｗｅｂアプリケーション等）から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００７９】
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコード（コンピュータプログラム）を記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読取可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出して実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００８０】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８１】
１００  情報処理装置：  １０１  ＣＰＵ：  １０２  ＲＡＭ：  １０３  ＲＯＭ
【図１】
2018097490.tif 000003
【図２】
2018097490.tif 000004
【図３】
2018097490.tif 000005
【図４】
2018097490.tif 000006
【図５】
2018097490.tif 000007
【図６】
2018097490.tif 000008
【図７】
2018097490.tif 000009
【図８】
2018097490.tif 000010
【図９】
2018097490.tif 000011
【図１０】
2018097490.tif 000012
【図１１】
2018097490.tif 000013
【図１２】
2018097490.tif 000014
【図１３】
2018097490.tif 000015
【図１４】
2018097490.tif 000016