(57)【要約】【課題】  ユーザが主被写体を見失ったことに気づいて主被写体を再選択したとしても、再選択するまでの間は、ユーザが意図しない別の被写体を示す情報が、主被写体情報として動画データデータに付帯されてしまう。【解決手段】  ユーザによる主被写体の指定に応じて設定された主被写体の追尾情報が付帯された動画データを取得する取得手段と、ユーザによる第１の主被写体の指定が行われてから第２の主被写体の指定が行われるまでの少なくとも一部のフレーム画像における追尾情報を、第２の主被写体の指定に応じて設定された主被写体の追尾情報に基づいて補正する補正手段を有する画像装置を提供する。【選択図】  図５
2019022186.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによる主被写体の指定に応じて設定された主被写体の追尾情報が付帯された動画データに対して、ユーザによる第１の主被写体の指定が行われてから第２の主被写体の指定が行われるまでの少なくとも一部のフレーム画像における前記追尾情報を、前記第２の主被写体の指定に応じて設定された主被写体の追尾情報に基づいて補正する補正手段を、有することを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記第１の主被写体の指定が行われてから前記第２の主被写体の指定が行われるまでの間に、主被写体の追尾に失敗したと判断した場合に、前記第１の主被写体の指定が行われてから前記第２の主被写体の指定が行われるまでの少なくとも一部のフレーム画像における前記追尾情報を補正することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記補正手段は、前記第２の主被写体指定が行われたフレーム画像の直前のフレーム画像における前記追尾情報が示す主被写体と、前記第２の主被写体指定が行われたフレーム画像における前記追尾情報が示す主被写体が異なる場合に、前記第１の主被写体指定が行われてから前記第２の主被写体指定が行われるまでの少なくとも一部のフレーム画像における前記追尾情報を補正することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記補正手段は、前記第１の主被写体指定が行われてから前記第２の主被写体指定が行われるまでの間に主被写体を見失っている場合に、見失った後のフレーム画像における前記追尾情報を補正することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記補正手段は、所定時間内にユーザによる複数回の主被写体指定が行われた場合には、前記所定時間内に行われた主被写体指定のうちの最後の主被写体指定を、前記第２の主被写体指定とすることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記補正手段は、補正の対象となるそれぞれのフレーム画像における前記追尾情報を、前記第２の主被写体指定に応じて設定された主被写体と同じ主被写体を示すように補正することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記補正手段は、補正の対象となるそれぞれのフレーム画像における前記追尾情報を、前記第２の主被写体指定に応じて設定された主被写体としての顔と同じ顔を示すように補正することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項８】
前記追尾情報は、それぞれのフレーム画像における主被写体の座標およびサイズを示す情報を含むことを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記追尾情報は、それぞれのフレーム画像における主被写体の追尾に成功しているか否かを示す情報を含むことを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記補正手段は、補正の対象となるそれぞれのフレーム画像における前記追尾情報を、主被写体の追尾に成功していることを示す情報に補正することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記補正手段によって補正された前記追尾情報に応じて、前記動画データの再生処理を行う再生手段を有することを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記再生手段は、前記補正手段によって補正された前記追尾情報に応じて、前記動画データの表示を行うことを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記再生手段は、前記補正手段によって補正された前記追尾情報に応じて、主被写体を含む領域を拡大して前記動画データの表示を行うことを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
撮像手段と、
前記撮像手段によって生成された動画データを表示する表示手段と、
ユーザによる主被写体の指定に応じて、前記表示手段に表示された動画データにおける主被写体を設定する設定手段と、
前記設定手段によって設定された主被写体を前記動画データにおいて追尾する追尾手段と、
前記追尾手段による追尾の結果を示す追尾情報を前記動画データに付帯して記憶する記憶手段と、
前記動画データに対して、ユーザによる第１の主被写体の指定が行われてから第２の主被写体の指定が行われるまでの少なくとも一部のフレーム画像における前記追尾情報を、前記第２の主被写体の指定に応じて設定された主被写体の追尾情報に基づいて補正する補正手段と、
を有することを特徴とする撮像装置。
【請求項１５】
ユーザによる主被写体の指定に応じて設定された主被写体の追尾情報が付帯された動画データに対して、ユーザによる第１の主被写体の指定が行われてから第２の主被写体の指定が行われるまでの少なくとも一部のフレーム画像における前記追尾情報を、前記第２の主被写体の指定に応じて設定された主被写体の追尾情報に基づいて補正する補正工程を、有することを特徴とする画像処理方法。
【請求項１６】
画像処理装置が有するコンピュータを、請求項１乃至１３のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画データに付帯された主被写体情報を扱う技術に関するものである。
【背景技術】
【０００２】
撮影時に検出された主被写体情報が付帯された動画データを再生する際に、この付帯された主被写体情報に基づいて、動画データに対して編集を行う技術がある（例えば、特許文献１）。この編集のための処理としては、例えば、動画データの再生開始フレームの選択や、トリミング処理、あるいは、主被写体であることを示す顔枠を表示する処理など、がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２２０７２４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
主被写体となる被写体が画角の外に一時的に移動したり、あるいは、主被写体の手前側を別の被写体が横切ったりすると、主被写体を見失ってしまうことがある。カメラやビデオカメラなどの撮像装置は、主被写体を見失うと、その主被写体は画角の外に出て行ったと判断し、別の被写体を主被写体として選択し直す。ここで、ユーザが主被写体を見失ったことに気づいて主被写体を再選択したとしても、再選択するまでの間は、ユーザが意図しない別の被写体を示す情報が、主被写体情報として動画データに付帯されてしまう。そのため、動画データを再生する際に、ユーザの意図に反して、この別の被写体を主被写体として動画データに対する編集処理が行われてしまうことがある。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明に係る画像処理装置は、ユーザによる主被写体の指定に応じて設定された主被写体の追尾情報が付帯された動画データを取得する取得手段と、ユーザによる第１の主被写体の指定が行われてから第２の主被写体の指定が行われるまでの少なくとも一部のフレーム画像における前記追尾情報を、前記第２の主被写体の指定に応じて設定された主被写体の追尾情報に基づいて補正する補正手段と、を有することを特徴とする。
【発明の効果】
【０００６】
動画データに付帯された主被写体を示す主被写体情報を、ユーザの意図に合わせることができる画像処理装置を提供することが可能になる。
【図面の簡単な説明】
【０００７】
【図１】本発明の第１の実施形態に係る画像処理装置として動作するデジタルカメラを示すブロック図である。
【図２】本発明の第１の実施形態に係る撮像装置として動作するデジタルカメラを背面から見た様子を示す図である。
【図３】本発明の第１の実施形態に係る動画撮影処理の工程を示すフローチャート図である。
【図４】本発明の第１の実施形態に係る追尾情報を説明するための図である。
【図５】本発明の第１の実施形態に係る追尾補正処理の工程を示すフローチャート図である。
【図６】本発明の第１の実施形態に係る追尾補正処理の効果を説明するための図である。
【図７】本発明の第１の実施形態に係る再生処理の工程を示すフローチャート図である。
【図８】本発明の第２の実施形態に係る画像処理装置として動作するパーソナルコンピュータを示すブロック図である。
【図９】本発明の第２の実施形態に係る動画撮影処理の工程を示すフローチャート図である。
【図１０】本発明の第２の実施形態に係る追尾情報を説明するための図である。
【図１１】本発明の第２の実施形態に係る画像処理装置のユーザーインターフェイスの一例である。
【図１２】本発明の第２の実施形態に係る追尾補正処理の工程を示すフローチャート図である。
【発明を実施するための形態】
【０００８】
以下、添付の図面を参照して本発明の好適な実施形態を詳細に説明する。
【０００９】
（第１の実施形態）
図１は、本発明の一実施形態に係る画像処理装置として動作するデジタルカメラを示すブロック図である。デジタルカメラが所定の制御プログラムを実行することにより、以下に説明する画像処理を実現する。
【００１０】
図１において、撮像部１００は、固体撮像素子を用いて光学像を電気的な画像データに変換して画像データを生成するＣＣＤやＣＭＯＳセンサなどのイメージセンサである。撮像部１００は、ＣＰＵ１０１からの指示に応じてレンズ位置や絞りといった光学部材を駆動する。ＣＰＵ１０１は、デジタルカメラ全体の制御を司る。ＲＯＭ１０２は、ＣＰＵ１０１の動作処理手順（例えばデジタルカメラの電源をＯＮした時の処理や基本入出力処理等のプログラム）を記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のメインメモリとして機能する。ＲＡＭ１０３には、後述の処理を実現するための制御プログラムを含む各種プログラムが、ＲＯＭ１０２からロードされる。また、ＲＡＭ１０３は、ＣＰＵ１０１が各種処理を実行する際のワークエリアを提供する。
【００１１】
ディスプレイ１０４は、液晶ディスプレイや有機ＥＬディスプレイで構成され、ＲＡＭ１０３に保持された画像データや記憶媒体に記憶された画像データの表示を行う。入力装置１０５は各種操作を行うためのボタンやスイッチ等で構成され、たとえば、デジタルカメラの上部に位置するレリーズボタンを含む。
【００１２】
メディアドライブ１０６は、着脱可能な記憶媒体を装着し、データを記憶したり、記憶されたデータを読み出したりする。ネットワーク用のインターフェイス（Ｉ／Ｆ）１０７は、通信回線１０９を介してコンピュータネットワーク１１０と接続される。このＩ／Ｆ１０７を介して、サーバコンピュータやパーソナルコンピュータとの間のデータの送受信を行う。システムバス１０８は、アドレスバス、データバスおよび制御バスからなり、上述した各ユニット間を接続する。
【００１３】
図２は、本発明の一実施形態に係る撮像装置として動作するデジタルカメラを背面から見た様子を示す図である。図２を用いて、撮影操作と再生操作について説明すると共に、主被写体の指定操作と動画の拡大再生操作について説明する。
【００１４】
本実施形態による画像処理装置として動作するデジタルカメラの各種ボタンとユーザーインターフェイスの詳細について、図２を用いて説明する。本実施形態で説明するデジタルカメラには３種類のモードがあり、各モードに応じた動作をする。第一に撮影を行う「撮影モード」、第二に記憶媒体内の画像データを表示する「再生モード」、第三に各種設定を行う「設定モード」である。
【００１５】
ユーザがレリーズボタン２００を押下すると、ＣＰＵ１０１は撮像指示があったと判定し、撮像部１００にて撮影した画像データを、メディアドライブ１０６を介して記憶媒体に記録する。
【００１６】
ディスプレイ２０１は、図１のディスプレイ１０４と同一のものである。このディスプレイ２０１は、表示機能と共にタッチパネル機能を持ち、入力装置１０５の機能の一部を果たす。ユーザが指で画面上の任意の点をタッチすると、ＣＰＵ１０１はユーザからの入力指示があったと判定して、タッチされた位置から操作の内容を判定して、各種処理を行う。
【００１７】
電源ボタン２０２は、電源のＯＮ／ＯＦＦを切り替えるためのボタンである。デジタルカメラの電源が入っていない状態で、ユーザが押下するとＣＰＵ１０１はユーザから電源入力の指示があったと判定し、電源を入れる。電源が入っている状態で、ユーザが押下するとＣＰＵ１０１はユーザから電源を切るための指示があったと判定し、電源を切る。
【００１８】
撮影モードボタン２０３をユーザが押下すると、ＣＰＵ１０１がユーザから撮影モードへの切り替え指示があったと判定する。ＣＰＵ１０１は、撮影モードへと切り替え、撮像部１００による撮影の準備をすると共に、結像した画像を図２に示すようにディスプレイ２０１に表示する。撮影モードにおいて、ユーザがディスプレイ２０１をタッチするとＣＰＵ１０１はユーザから主被写体の指定操作があったと判定し、タッチした位置の被写体に対して追尾枠を描画し、追尾処理を開始する。追尾処理に関しては、図３において後述する。撮影モードで、ユーザが追尾対象以外の被写体を指定した場合には、ＣＰＵ１０１は異なる被写体が主被写体として指定されたと判定し、新たに指定された被写体に追尾枠を描画し、追尾処理を開始する。前述の主被写体の指定操作のことを、以降はタッチ指定と記す。なお、タッチ指定は１つの例であって、入力装置１０５に含まれる他のボタンやスイッチを用いて、追尾枠の位置を設定する構成であっても構わない。
【００１９】
再生ボタン２０４をユーザが押下すると、ＣＰＵ１０１がユーザから再生モードへの切り替え指示があったと判定し、記憶媒体から画像データを読み込み、ディスプレイ２０１に画像を表示する。画像データが動画データの場合には、動画を先頭フレームから再生する。
【００２０】
撮影モードにおいて、ＲＥＣボタン２０５をユーザが押下すると、ＣＰＵ１０１は動画撮影の開始指示があったと判定し、撮像部１００にて結像した像を継続的に画像データに変換し、動画ファイルとして記憶媒体に記録する。動画撮影中にユーザがＲＥＣボタン２０５を押下するとＣＰＵ１０１は動画撮影の終了指示があったと判定し、動画ファイルの記録を終了する。動画撮影中の処理については図３にて説明する。
【００２１】
撮影モードにおいて、ユーザが拡大縮小レバー２０６を上方向に動かした場合には、ＣＰＵ１０１はズーム操作があったと判定し、撮像部１００で光学部材を駆動して、ズーム動作を行う。ユーザが拡大縮小レバー２０６を下方向に動かした場合には、ＣＰＵ１０１はズームアウト操作があったと判定し、撮像部１００で光学部材を駆動して、ズームアウトする。再生モードにおいて、ユーザが拡大縮小レバー２０６を上方向に動かした場合には、ＣＰＵ１０１は拡大操作があったと判定する。静止画データを再生している場合には、中心座標を基準にして拡大する。動画データを再生している場合には、図６に説明する動画再生処理に従って、再生する。再生モードにおいて、ユーザが拡大縮小レバー２０６を下方向に動かした場合には、ＣＰＵ１０１は縮小操作があったと判定する。そして、静止画データを再生している場合には、拡大中の表示範囲の中心座標を基準にして縮小する。中心座標を維持すると、画像の範囲外を表示することになってしまう場合には、画像の範囲外を表示しないように位置を変更する。そして、画像を構成するいずれかの辺がディスプレイ２０１を構成する辺と一致するところまで、縮小する。拡大縮小レバー２０６にて指定された倍率は、ＲＡＭ１０３に記憶する。
【００２２】
設定ボタン２０７をユーザが押下すると、ＣＰＵ１０１がユーザから設定モードへの切り替え指示があったと判定し、設定画面をディスプレイ２０１に表示する。
【００２３】
ＣＰＵ１０１は、結像した画像において追尾枠２０８が示された被写体から撮像素子までの距離を測り、追尾枠内の被写体に合焦するように撮像部１００を制御する。図２は、追尾枠２０８を結像した画像に重畳して表示している状態を示す。
【００２４】
図３は、本発明の第１の実施形態に係る動画撮影処理の工程を示すフローチャート図である。なお、本処理は、ＣＰＵ１０１がＲＡＭ１０３に格納された制御プログラムを実行することにより実行される。本処理は、撮影モードにおいてＲＥＣボタン２０５をユーザが押下し、ＣＰＵ１０１が動画撮影を開始し、再びＲＥＣボタン２０５をユーザが押下して、動画撮影を終了するまでの処理に該当する。動画撮影中は、撮像部１００にて生成された画像データが継続的にディスプレイ２０１に表示されているものとする。
【００２５】
図４は、本発明の第１の実施形態に係る追尾情報を説明するための図である。図３と図４を用いて、動画撮影処理および追尾情報記録処理について、説明を行う。
【００２６】
図３のステップＳ３００にて、ＣＰＵ１０１は、動画ファイルの何番目のフレームに対する処理をするか特定するためのカウンタｉに０を代入する。
【００２７】
ステップＳ３０１にて、ＣＰＵ１０１は、動画撮影終了指示があったか否かを判定する。動画撮影終了指示とは、動画撮影開始後にユーザがＲＥＣボタン２０５を押下する操作である。ステップＳ３０１にて、動画撮影終了指示があったと判定した場合には、一連の動画撮影処理を終了する。ステップＳ３０１にて、動画撮影終了指示がないと判定した場合には、ステップＳ３０２へと進む。
【００２８】
ステップＳ３０２にて、ＣＰＵ１０１は、撮像部１００にて生成された画像データから人物の顔を検出する。人物の顔検出は、画像を解析し、顔を構成する器官の配置と似ている箇所を顔として検出する。顔検出処理において、顔の中心座標、顔のサイズ、顔の角度、顔の向き、顔特徴量を算出する。顔特徴量とは、顔における器官の配置や大きさを数値化したものである。
【００２９】
ステップＳ３０３にて、ＣＰＵ１０１は、検出した顔を識別するための顔ＩＤを関連付ける。なお、異なる人物の顔については、異なる顔ＩＤが割り振られるものとする。その際、人物認証を行い前フレームで検出済みの人物の顔と対象フレームで検出した顔が同一人物であると判定した場合には、前フレームの顔ＩＤを引き継いで使用するものとする。人物認証とは、顔特徴量の類似度により同一人物であるか否かを判定する処理である。また、人物認証できた顔を途中で見失い、その後に、同じ人物の顔を再び検出できたとしても、見失う前とは別の顔ＩＤが割り振られるものとする。また、双子のようにそっくりな顔が同一フレーム内の異なる座標に複数検出されたとしても、同一人物が同一フレーム内に存在することはないものとして、違う顔ＩＤを割り振る。前フレームで検出した顔と同一人物であると判定した顔が複数見つかった場合には、前フレームの顔座標と近い座標の顔に同じ顔ＩＤを割り振る。
【００３０】
ステップＳ３０４にて、ＣＰＵ１０１は、ユーザがステップＳ３０３にて顔を検出した位置でタッチ指定したか否かを判定する。タッチ指定したと判定した場合には、ステップＳ３０５へと進む。タッチ指定していないと判定した場合には、ステップＳ３１２へと進む。
【００３１】
ステップＳ３０５にて、ＣＰＵ１０１は、タッチ指定で選択された顔に該当する顔ＩＤをＲＡＭ１０３に記憶する。
【００３２】
ステップＳ３０６にて、ＣＰＵ１０１は、主被写体検出結果の信頼度を示す信頼度の値を１とし、ＲＡＭ１０３に記憶する。
【００３３】
ステップＳ３０７にて、ＣＰＵ１０１は、像面上の主被写体の検出位置に存在する被写体と撮像素子までの距離を測る。主被写体は、ステップＳ３０４でタッチ指定された顔もしくは、後述のステップＳ３１３で主被写体として検出した顔である。
【００３４】
ステップＳ３０８にて、ＣＰＵ１０１は、ステップＳ３０６で算出した距離に合焦するように、撮像部１００を駆動する。
【００３５】
ステップＳ３０９にて、ＣＰＵ１０１は、撮像部１００にて結像した画像データについて、動画データを構成する１フレームとして、記憶媒体に記録する。
【００３６】
ステップＳ３１０にて、ＣＰＵ１０１は、記憶媒体に動画データに付帯する付帯情報として、追尾情報を記録する。
【００３７】
ここで、ステップＳ３１０にて記録する追尾情報について図４を用いて説明する。ＤａｔａＮｏ４０１は、図５で後述する追尾情報補正処理において、検出結果の各顔の情報を一意に特定するために用いる。Ｆｒａｍｅ（フレーム番号）４０２は、何番目のフレームに対する処理をするか特定するためのカウンタｉの値を記憶したものである。顔ＩＤ４０３は、ステップＳ３０３で各顔に関連付けられて記憶される。顔座標ｘ４０４と顔座標ｙ４０５は、顔ＩＤ４０３に対応する顔の画像データ上の中心座標であり、顔座標ｘ４０４は水平方向の座標、顔座標ｙ４０５は垂直方向の座標を記憶する。顔の中心座標は、ステップＳ３０２で検出した結果を使用する。顔サイズ４０６は、顔ＩＤ４０３に対応しており、顔中心座標を中心とした、正方形の一辺の画素数を示す。検出した顔がこの正方形内にちょうど収まる大きさであるものとする。主被写体判定結果４０７は、ステップＳ３０４でタッチ指定された顔もしくは、後述のステップＳ３１３で仮の主被写体として検出した顔であるか否かを示す値を記憶する。ＣＰＵ１０１が主被写体と判定した顔の場合には１、主被写体ではないと判定した顔の場合には、０を記憶する。タッチ指定４０８は、タッチ指定操作の有無を示す値である。フレーム番号４０２に該当するフレームにおいて、ＣＰＵ１０１が、タッチ指定操作があったと判定した場合には１を記憶し、タッチ指定操作が無かったと判定した場合には、０を記憶する。信頼度４０９は、主被写体検出結果の信頼度である。ＣＰＵ１０１が、ステップＳ３０６もしくはステップＳ３１４で決定した値を記憶する。
【００３８】
図３に戻り、ステップＳ３１１にて、ＣＰＵ１０１は、カウンタｉの値をインクリメントする。
【００３９】
ステップＳ３１２にて、ＣＰＵ１０１は、ＲＡＭ１０３内に主被写体の顔ＩＤを記憶しているか否かを判定する。記憶していると判定した場合には、ステップＳ３１３へと進む。記憶していないと判定した場合には、ステップＳ３１４へと進む。
【００４０】
ステップＳ３１３にて、ＣＰＵ１０１は、主被写体検出が成功したか否かを判定する。主被写体検出が成功したか否かは、ステップＳ３１２における顔ＩＤに対応する顔の有無で判定を行う。主被写体の検出に成功したと判定した場合には、ステップＳ３０６へと進む。主被写体の検出に失敗したと判定した場合には、ステップＳ３１４へと進む。
【００４１】
ステップＳ３１４にて、ＣＰＵ１０１は、主被写体検出結果の信頼度を示す信頼度の値を０とし、ＲＡＭ１０３に記憶する。
【００４２】
ステップＳ３１５にて、ＣＰＵ１０１は、ＲＡＭ１０３に記憶された主被写体の顔ＩＤを消去する。
【００４３】
ステップＳ３１６にて、ＣＰＵ１０１は、画像データ内に内在する顔の中から、それぞれの顔のサイズや位置などに基づいて主被写体を選択する。顔のサイズが大きいほど、顔の位置が画像の中心部に近いほど評価値を大きく割り当て、評価値の最も大きな顔を主被写体として選択する。前フレームで主被写体として選択された顔が含まれている場合には、その顔の評価値に対して１より大きな係数を掛けて、再び主被写体として選択されやすくしてもよい。そして、前記顔に対応する顔ＩＤをＲＡＭ１０３に記憶する。
【００４４】
図５は、本発明の一実施形態に係る追尾補正処理の工程を示すフローチャート図である。なお、本処理は、ＣＰＵ１０１がＲＡＭ１０３に格納された制御プログラムを実行することにより実行される。本処理は、動画撮影処理終了後に実行されるものとする。
【００４５】
ステップＳ５００にて、ＣＰＵ１０１は、処理対象とする動画データに付帯された追尾情報をＲＡＭ１０３に読み込む。
【００４６】
ステップＳ５０１にて、ＣＰＵ１０１は、何番目の主被写体情報かを特定するためのカウンタＴｇｔＯｂｊと、何番目のフレームに対する処理かを特定するためのカウンタＦｒａｍｅＮｏに、共に０を代入する。
【００４７】
ステップＳ５０２にて、ＣＰＵ１０１は、ＲＡＭ１０３内の追尾情報から、ＦｒａｍｅＮｏが０のフレームにおいて主被写体と判定した顔の顔ＩＤ４０３を、ＩＤ［ＴｇｔＯｂｊ］として記憶する。図４の例では、ＦｒａｍｅＮｏが０であり、かつ、主被写体判定結果４０７が１である顔ＩＤの値「２」が、ＩＤ［０］として記憶される。
【００４８】
ステップＳ５０３にて、ＣＰＵ１０１は、ＴｇｔＯｂｊ番目の主被写体を指定したフレームの情報として、ＦｒａｍｅＮｏの値を、ＦＮｏ［ＴｇｔＯｂｊ］として記憶する。ここでは、０番目の主被写体を指定したフレームの情報として、ＦｒａｍｅＮｏの値「０」が、ＦＮｏ［０］として記憶される。
【００４９】
ステップＳ５０４にて、ＣＰＵ１０１は、ＴｇｔＯｂｊとＦｒａｍｅＮｏに、共に１を代入する。
【００５０】
ステップＳ５０５にて、ＣＰＵ１０１は、ＦｒａｍｅＮｏが対象の動画データを構成するフレーム数未満か否かを判定する。ＦｒａｍｅＮｏが動画を構成するフレーム未満で有る場合には、全てのフレームにおける追尾情報を補正していないものと判定し、ステップＳ５０６へと進む。ＦｒａｍｅＮｏが動画を構成するフレームに達した場合には、全てのフレームにおける追尾情報の補正が完了したものと判定し、一連の処理を終了する。
【００５１】
ステップＳ５０６にて、ＣＰＵ１０１は、ＲＡＭ１０３内の追尾情報からＦｒａｍｅＮｏのフレームにおいてタッチ指定の操作があったか否かを判定する。図４に示す追尾情報のうち、タッチ指定４０８の値が１の場合には、対象フレームでタッチ指定の操作があったと判定する。タッチ指定４０８の値が０の場合には、対象フレームでタッチ指定の操作がなかったと判定する。タッチ指定の操作があったと判定した場合には、ステップＳ５０７へと進む。タッチ指定操作がなかったと判定した場合には、ステップＳ５１９へと進む。
【００５２】
ステップＳ５０７にて、ＣＰＵ１０１は、ＴｇｔＯｂｊの値をインクリメントする。これは、タッチ指定の操作によって、主被写体が更新されたことを意味する。
【００５３】
ステップＳ５０８にて、ＣＰＵ１０１は、ＲＡＭ１０３内の追尾情報から、タッチ指定されたフレーム番号の主被写体の顔ＩＤを読み込み、ＩＤ［ＴｇｔＯｂｊ］として記憶する。
【００５４】
ステップＳ５０９にて、ＣＰＵ１０１は、タッチ指定されたフレーム番号を読み込み、ＦＮｏ［ＴｇｔＯｂｊ］として記憶する。
【００５５】
ステップＳ５１０にて、ＣＰＵ１０１は、ＲＡＭ１０３内の追尾情報からタッチ指定をした直前のフレームで主被写体として選択された顔ＩＤを読み込む。例えば、ＦｒａｍｅＮｏが８のフレームに対してタッチ指定がされたのであれば、ＦｒａｍｅＮｏが７のフレームにおいて主被写体として選択された顔ＩＤを読み込む。
【００５６】
ステップＳ５１１にて、ＣＰＵ１０１は、前回のタッチ指定で主被写体として指定された顔ＩＤの値と、ステップＳ５１０で読み込んだ直前のフレームで主被写体として選択された顔ＩＤの値が一致しているか否かを判定する。前回タッチ指定で主被写体として指定された顔の顔ＩＤとは、ＩＤ［ＴｇｔＯｂｊ−１］の値である。一致している場合には、前回タッチ指定してから、同一の顔を主被写体として選択し続けることができていたとして、ステップＳ５１９へと進む。一致しなかった場合には、前回タッチ指定してから、今回タッチ指定するまでの間において、主被写体として選択された顔が変化しており、追尾が失敗していた期間があると判定して、ステップＳ５１２へと進む。なお、初めてタッチ指定が行われた場合には、前回タッチ指定で主被写体として指定された顔の顔ＩＤの値として、ステップＳ５０２でＩＤ［０］として記憶された顔ＩＤの値が用いられることになる。
【００５７】
ステップＳ５１２にて、ＣＰＵ１０１は、追尾情報を補正する対象のフレームの番号を記憶するため、ＴｇｔＦｒａｍｅに、タッチ指定をしたフレーム番号ＦＮｏ［ＴｇｔＯｂｊ］より１つ小さいフレーム番号を代入する。
【００５８】
ステップＳ５１３にて、ＣＰＵ１０１は、追尾情報補正を終了するフレーム番号ＣｈＦｉｎａｌＦｒａｍｅとして、前回タッチ指定をしたフレーム番号ＦＮｏ［ＴｇｔＯｂｊ−１］を代入する。
【００５９】
ステップＳ５１４にて、ＣＰＵ１０１は、ＴｇｔＦｒａｍｅの値がＣｈＦｉｎａｌＦｒａｍｅの値以上か否かを判定する。ＴｇｔＦｒａｍｅの値がＣｈＦｉｎａｌＦｒａｍｅの値以上と判定した場合には、前回タッチ指定をしてから今回タッチ指定をするまでの間のフレームに、まだ追尾情報を補正の要否を判定できていないフレームが含まれていることになる。そのため、ステップＳ５１５と進む。ＴｇｔＦｒａｍｅの値がＣｈＦｉｎａｌＦｒａｍｅの値未満と判定した場合には、前回タッチ指定をしてから今回タッチ指定をするまでの間の全てのフレームに対して、追尾情報を補正の要否を判定できたことになる。そのため、ステップＳ５１９へと進む。
【００６０】
ステップＳ５１５にて、ＣＰＵ１０１は、ＲＡＭ１０３内の追尾情報からＴｇｔＦｒａｍｅ番目のフレームの主被写体検出結果の信頼度４０９の値が１であるか否かを判定する。１である場合には、対象フレームにおいて、前回タッチ指定された顔に対する追尾が成功していたと判定し、ステップＳ５１８へと進む。１でない場合には、対象フレームにおける追尾が失敗していたと判定し、ステップＳ５１６へと進む。
【００６１】
ステップＳ５１６にて、ＣＰＵ１０１は、ＲＡＭ１０３内の追尾情報から、今回タッチ指定されたフレームにおいて指定された顔の顔ＩＤがＴｇｔＦｒａｍｅ番目のフレームに存在するか否かを判定する。存在する場合には、ユーザが今回タッチ指定で指定した顔が、タッチ指定以前のフレームでも見つかったと判定し、ステップＳ５１７へと進む。存在しない場合には、ユーザがタッチ指定で指定した顔がタッチ指定以前のフレームで見つからなかったと判定し、ステップＳ５１８へと進む。
【００６２】
ステップＳ５１７にて、ＣＰＵ１０１は、ＲＡＭ１０３内のＴｇｔＦｒａｍｅ番目のフレームの追尾情報を補正する。ＴｇｔＦｒａｍｅ番目のフレームの主被写体検出結果の信頼度４０９の値を１に変更する。そして、今回タッチ指定で指定した顔の顔ＩＤに対応するデータの主被写体判定結果４０７の値を１に変更し、加えて、元々は主被写体判定結果４０７の値が１であった顔ＩＤ４０３に対応する主被写体判定結果４０７の値を、０に変更する。
【００６３】
ステップＳ５１８にて、ＣＰＵ１０１は、ＴｇｔＦｒａｍｅの値をデクリメントする。つまり、追尾情報を補正の要否を判定する対象のフレームを、１つ前のフレームに設定する。そして、ステップＳ５１３へと戻る。
【００６４】
ステップＳ５１９にて、ＣＰＵ１０１は、ＦｒａｍｅＮｏの値をインクリメントとし、次のフレームをステップＳ５０５以降の処理対象とする。そして、ステップＳ５０５へと戻る。
【００６５】
この図５に示した追尾補正処理の工程を示すフローチャートによって得られる効果について、図６を用いて説明を行う。図６（ａ）、（ｂ）の表において、ＦｒａｍｅＮｏのラインはフレーム番号を示す。被写体Ａの顔ＩＤ、被写体Ｂの顔ＩＤ、および、被写体Ｃの顔ＩＤの各ラインは、フレームごとに、被写体が検出できた場合に顔ＩＤが記載され、検出できなかった場合にマイナス符号が記載されている。信頼度のラインは、図４に示す信頼度４０９と同じものであり、タッチ指定された顔ＩＤに対応する顔が検出できている間は１となる。主被写体判定のラインは、図４に示す主被写体判定結果４０７と同じものであり、各フレームにおいてどの顔ＩＤが主被写体として判定されたかを示している。Ｔｇｔ＿Ｏｂｊ、ＩＤ［Ｔｇｔ＿Ｏｂｊ］、および、ＦＮｏ［Ｔｇｔ＿Ｏｂｊ］のラインは、各フレームにおいて、図５で説明した内容に基づいてそれぞれに対して入力された値を示す。
【００６６】
図６（ａ）は動画撮影処理によって生成された追尾情報に基づいて生成された表である。ＦｒａｍｅＮｏが０および１のフレームではタッチ指定が行われておらず、顔ＩＤの値が２である被写体Ｃが主被写体として選択される。ＦｒａｍｅＮｏが２のフレームでタッチ指定が行われ、顔ＩＤの値が１である被写体Ｂが主被写体として選択され、顔ＩＤがＲＡＭ１０３に記憶される。ＦｒａｍｅＮｏが３および４のフレームでは、引き続きＲＡＭ１０３に記憶された顔ＩＤの値が１である被写体Ｂが、主被写体として選択され、信頼度が１に設定される。ＦｒａｍｅＮｏが５および６のフレームでは、被写体Ｂを見失ったため、信頼度が０に変更され、ＲＡＭ１０３に記憶された顔ＩＤが消去される。そして、代わって、顔ＩＤの値が０である被写体Ａが主被写体として新たに選択される。ＦｒａｍｅＮｏが７および８のフレームでは、被写体Ｂが再度検出されるが、被写体Ａが引き続き主被写体として選択される。なお、被写体Ｂは一度見失っているので、再度検出された際には新たな顔ＩＤとして３が設定される。ユーザが、主被写体が変更されていることに気づき、ＦｒａｍｅＮｏが９のフレームで、タッチ指定を行い、顔ＩＤの値が３である被写体Ｂが再び主被写体として選択され、信頼度が再び１に設定される。ＦｒａｍｅＮｏが１０および１１のフレームでは、引き続き顔ＩＤの値が３である被写体Ｂが主被写体として選択される。ユーザは主被写体の変更を希望し、ＦｒａｍｅＮｏが１２のフレームで、タッチ指定を行い、顔ＩＤの値が０である被写体Ａが主被写体として選択され、信頼度が１に設定される。
【００６７】
図６（ａ）に示す例では、ＦｒａｍｅＮｏが１以降のフレームにおいては、タッチ指定が行われた場合にのみ、Ｔｇｔ＿Ｏｂｊの値が１増え、タッチ指定された顔ＩＤがＩＤ［Ｔｇｔ＿Ｏｂｊ］に記憶され、タッチ指定されたＦｒａｍｅＮｏがＦＮｏ［Ｔｇｔ＿Ｏｂｊ］に記憶される。つまり、ユーザが何回目のタッチ指定を、どのフレームで、どの顔ＩＤに対して行ったのかが明確になる。そのため、デジタルカメラが途中で主被写体を見失い、他の被写体を主被写体としてみなした場合には、ＩＤ［Ｔｇｔ＿Ｏｂｊ］と実際に選択された主被写体との間で相違が生じる。
【００６８】
図６（ｂ）は、図６（ａ）に示す追尾情報の表に対して補正処理を行ったものである。図６（ｂ）では、ＦｒａｍｅＮｏが９のフレームにおいて２回目のタッチ指定が行われているため、直前のフレームであるＦｒａｍｅＮｏが８のフレームにおいて主被写体として選択されている顔ＩＤ「０」を読み出す。そして、これと、１回目のタッチ指定が行われたＦｒａｍｅＮｏが２のフレームにおいてタッチ指定された顔ＩＤ「１」を比較する。これらの顔ＩＤが一致していないので、主被写体が、途中で意図しない被写体に変更された可能性が高いと考えられる。そこで、直前のフレームであるＦｒａｍｅＮｏが８のフレームから順に遡り、信頼度が１でないフレームに対しては、２回目のタッチ指定によって指定された顔ＩＤ「３」が主被写体となるように、それぞれのフレームの主被写体の情報を書き換える。そして、これとともに、信頼度を１に置き換える。その結果、ＦｒａｍｅＮｏが７および８のフレームにおいて、顔ＩＤの値が３である被写体Ｂが主被写体に変更される。なお、ＦｒａｍｅＮｏが５および６のフレームにおいては、顔ＩＤ「１」である被写体Ｂを検出できなかったため、主被写体の変更を行わない。また、ＦｒａｍｅＮｏが５および６のフレームにおいては、信頼度が１であり、その前にタッチ指定によって選択された被写体を追尾できていることが明らかであるため、主被写体の変更を行わない。
【００６９】
なお、主被写体を見失った時点から、再びタッチ指定されるまでの間は、信頼度が０に設定されるのだから、図５のステップＳ５１１の判定を省略し、ステップＳ５１５の信頼度のみに基づいて追尾情報を補正するか否かを判定するようにしてもよい。ただし、追尾に成功していた場合においてもステップＳ５１２乃至Ｓ５１８の処理を繰り返すことになるので、処理負荷は増加することになる。
【００７０】
図７は、本発明の一実施形態に係る再生処理の工程を示すフローチャート図である。なお、本処理は、ＣＰＵ１０１がＲＡＭ１０３に格納された制御プログラムを実行することにより実行される。本処理は、再生モードにおいて動画データが選択されて、再生操作があった場合に、追尾補正処理が施された追尾情報を用いて実行される。
【００７１】
ステップＳ７００において、ＣＰＵ１０１は、何番目のフレームを処理対象にするか特定するためのカウンタｉに０を代入する。
【００７２】
ステップＳ７０１において、ＣＰＵ１０１は、処理対象とする動画データに付帯された追尾情報をＲＡＭ１０３に読み込む。
【００７３】
ステップＳ７０２において、ＣＰＵ１０１は、動画再生終了操作があったか否かを判定する。動画の再生終了操作とは、電源ボタン２０２押下による電源ＯＦＦの操作および撮影モードボタン２０３の押下による撮影モードへの切り替え操作である。動画再生終了操作があったと判定した場合には、一連の処理を終了する。動画再生処理操作がないと判定した場合には、ステップＳ７０３へ進む。
【００７４】
ステップＳ７０３において、ＣＰＵ１０１は、ｉが動画データのフレーム数未満か否かを判定する。ｉが動画データのフレーム数未満の場合には、動画データの最後まで再生していないと判定し、ステップＳ７０４へと進む。ｉが動画データのフレーム数に達した場合には、動画データの最後まで再生したと判定し、一連の処理を終了する。
【００７５】
ステップＳ７０４において、ＣＰＵ１０１は拡大表示の指示がされているかを判定する。拡大表示の指示とは、再生モードにおいて、拡大縮小レバー２０６による操作のことである。拡大表示の指示があると判定した場合には、ステップＳ７０５へと進み、そうでない場合には、ステップＳ７０８へと進む。
【００７６】
ステップＳ７０５において、ＣＰＵ１０１はＲＡＭ１０３内の追尾情報から、処理対象とするフレームにおける主被写体検出の信頼度４０９の値が１か否かを判定する。信頼度が１であれば、該当フレームの追尾結果は拡大表示の範囲を決める情報として適切あると判定し、ステップＳ７０６へと進む。信頼度が０の場合、該当フレームの追尾結果は拡大表示の範囲を決める情報として不適切であると判定し、ステップＳ７０８へと進む。
【００７７】
ステップＳ７０６において、ＣＰＵ１０１は、ＲＡＭ１０３内の追尾情報から該当フレームにおける主被写体の顔座標ｘ４０４、顔座標ｙ４０５、および、顔サイズ４０６の値をＲＡＭ１０３に読み込む。
【００７８】
ステップＳ７０７にて、ＣＰＵ１０１は、顔座標ｘ４０４、顔座標ｙ４０５、および、顔サイズ４０６に基づいて、該当フレームから、主被写体を含む表示範囲を設定する。
【００７９】
ステップＳ７０８において、ＣＰＵ１０１は、該当フレーム全体を表示範囲として設定する。
【００８０】
ステップＳ７０９において、ＣＰＵ１０１は、ステップＳ７０７またはＳ７０８で設定された表示範囲がディスプレイ２０１のサイズに一致するように、該当フレームの画像データの拡大あるいは縮小処理を行う。
【００８１】
ステップＳ７１０にておいて、ＣＰＵ１０１は、ステップＳ７０９で作成された画像データを読み込みディスプレイ２０１へ表示する。
【００８２】
ステップＳ７１１において、ＣＰＵ１０１は、カウンタｉをインクリメントし、次のフレームへ処理を進める。
【００８３】
なお、図７では、信頼度が０であるフレームについてのみフレーム全体を表示するように動画を再生する構成としたが、動画の途中の短い期間だけフレーム全体が表示されると、かえって違和感を与える場合もある。そこで、信頼度が０のフレームについては、その前後に位置する信頼度が１のフレームの表示範囲に基づいて表示範囲を補間したり、あるいは、その前に位置する信頼度が１のフレームの表示範囲をそのまま引き継ぐようしたりしてもよい。
【００８４】
（第２の実施形態）
第１の実施形態においては、人物の顔を追尾対象としたが、本実施形態においては、人物以外の任意の物や動物を追尾対象とする場合の構成について説明する。
【００８５】
図８は、本発明の一実施形態に係る画像処理装置として動作するパーソナルコンピュータを示すブロック図である。
【００８６】
図８において、ＣＰＵ８０１は、パーソナルコンピュータ全体の制御を司る。ＲＯＭ８０２は、ＣＰＵ８０１の動作処理手順（例えばコンピュータの立ち上げ処理や基本入出力処理等のプログラム）を記憶している。ＲＡＭ８０３は、ＣＰＵ８０１のメインメモリとして機能する。ＲＡＭ８０３には、後述の処理を実現するための制御プログラムを含む各種プログラムが、ハードディスクドライブ（ＨＤＤ）８００からロードされる。また、ＲＡＭ８０３は、ＣＰＵ１０１が各種処理を実行する際のワークエリアを提供する。
【００８７】
ディスプレイ８０４は、液晶ディスプレイや有機ＥＬディスプレイで構成される。ＨＤＤ８００は、アプリケーションプログラムやデータ、ライブラリなどの保存及び読み込み用に用いられる。入力装置８０５はポインティングデバイスやキーボード等で構成される。
【００８８】
メディアドライブ８０６は、着脱可能な記憶媒体を装着し、データを記憶したり、記憶されたデータを読み出したりする。ネットワーク用のインターフェイス（Ｉ／Ｆ）８０７は、通信回線８０９を介してコンピュータネットワーク８１０と接続される。このＩ／Ｆ８０７を介して、通信可能な機器に対してデータの送受信を行う。システムバス８０８は、アドレスバス、データバスおよび制御バスからなり、上述した各ユニット間を接続する。本実施形態の画像再生装置において、処理対象とする動画データは、ＨＤＤ８００に保存されているものとする。
【００８９】
図９は、図１に示すデジタルカメラによる動画撮影処理の工程を示すフローチャート図である。
【００９０】
図１０は、本発明の第２の実施形態に係る追尾情報の説明するための図である。図９と図１０を用いて、動画撮影処理および追尾情報記録処理について、説明を行う。
【００９１】
図９のステップＳ９００にて、デジタルカメラのＣＰＵ８０１は、動画ファイルの何番目のフレームに対する処理をするかを特定するためのカウンタｉに０を代入する。
【００９２】
ステップＳ９０１にて、ＣＰＵ８０１は、動画撮影終了指示があったか否かを判定し、動画撮影終了指示があったと判定した場合には、一連の動画撮影処理を終了する。ＣＰＵ８０１は、ステップＳ９０１にて、動画撮影終了指示がないと判定した場合には、ステップＳ９０２へと進む。
【００９３】
ステップＳ９０２にて、ＣＰＵ８０１は、ユーザがポインティングデバイスなどの入力装置８０５を用いて主被写体指定をしたか否かを判定する。主被写体指定をしたと判定した場合には、ステップＳ９０３へと進む。被写体指定していないと判定した場合には、ステップＳ９１０へと進む。
【００９４】
ステップ９０３にて、ＣＰＵ８０１は、ユーザが指定した位置を中心として、所定サイズの領域を設定し、この領域に含まれる画素における色相のヒストグラムを生成する。そして、色相ヒストグラムのうち、頻度の高い色相が含まれる割合が高くなるように、領域のサイズを一定範囲内で調整する。そして、調整後の領域内の画素に基づいて再度生成された色相ヒストグラムを、特徴量を示す色分布情報としてＲＡＭ８０３に記憶する。なお、ここでは色相ヒストグラムを例に挙げて説明を行ったが、輝度ヒストグラムや、各画素のＲ、Ｇ、Ｂ成分の分布情報を特徴量としてもよい。
【００９５】
ステップＳ９０４にて、ＣＰＵ８０１は、主被写体検出結果の信頼度を示す信頼度の値を１とし、ＲＡＭ８０３に記憶する。
【００９６】
ステップＳ９０５にて、ＣＰＵ８０１は、像面上の主被写体の検出位置に存在する被写体と撮像素子までの距離を測る。主被写体の検出位置は、ステップＳ９０３で主被写体指定された位置もしくは、後述のステップＳ９１１で主被写体領域を検出した位置である。
【００９７】
ステップＳ９０６にて、ＣＰＵ８０１は、ステップＳ３０６で算出した距離に合焦するように、撮像部１００を駆動する。
【００９８】
ステップＳ９０７にて、ＣＰＵ８０１は、撮像部１００にて結像した画像データについて、動画データを構成する１フレームとして、記憶媒体に記録する。
【００９９】
ステップＳ９０８にて、ＣＰＵ８０１は、記憶媒体に動画データに付帯する付帯情報として、追尾情報を記録する。
【０１００】
ここで、ステップＳ９０８にて記録する追尾情報について図１０を用いて説明する。Ｆｒａｍｅ（フレーム番号）１００１は、何番目のフレームに対する処理をするか特定するためのカウンタｉの値を記憶したものである。顔座標ｘ４０４と顔座標ｙ４０５は、主被写体として検出された領域の中心座標であり、座標ｘ１００２は水平方向の座標、座標ｙ１００３は垂直方向の座標を記憶する。サイズ１００４は、主被写体として設定された領域の正方形の一辺の画素数を示す。主被写体指定判定結果１００５は、主被写体指定の操作の有無を示す値である。主被写体指定の操作があったと判定した場合には１を記憶し、主被写体指定の操作が無かったと判定した場合には、０を記憶する。信頼度１００６は、主被写体の検出結果の信頼度である。色分布情報１００７は主被写体として検出された領域の色分布情報である。
【０１０１】
図９に戻り、ステップＳ９０９にて、ＣＰＵ８０１は、カウンタｉの値をインクリメントする。
【０１０２】
ステップＳ９１０にて、ＣＰＵ８０１は、ＲＡＭ８０３内に主被写体の色分布情報を記憶しているか否かを判定する。記憶していると判定した場合には、ステップＳ９１１へと進む。記憶していないと判定した場合には、ステップＳ９１３へと進む。
【０１０３】
ステップＳ９１１にて、ＣＰＵ８０１は、入力されたフレーム画像から、ステップＳ９０３で記憶した色分布との類似度が閾値以上となる領域を抽出し、主被写体の領域とする。例えば、入力されたフレーム画像の部分領域から得られた色相ヒストグラムと、ステップＳ９０３で記憶した色相ヒストグラムを用いて、バタチャリヤ距離を求めることで、類似度を得ることができる。１つのフレーム画像から類似度が閾値以上となる領域が複数検出された場合には、それぞれの類似度に対して、前フレームにおける主被写体の位置からの距離が短くなるほど大きく係数を掛けて評価値を求める。そして、最も大きな評価値となる領域を、主被写体の領域として選択すればよい。
【０１０４】
ステップＳ９１２にて、ＣＰＵ８０１は、ステップＳ９１１において主被写体の領域が検出できていればステップＳ９０４に進み、検出できていなければステップＳ９１３に進む。
【０１０５】
ステップＳ９１３にて、ＣＰＵ８０１は、主被写体検出結果の信頼度を示す信頼度の値を０とし、ＲＡＭ８０３に記憶する。
【０１０６】
ステップＳ９１４にて、ＣＰＵ８０１は、フレーム画像から主被写体の領域を決定する。例えば、コントラストＡＦによって至近距離にいると判断された領域を主被写体の領域として設定する。あるいは、フレーム画像を色相に応じて複数のグループに分割し、各グループの大きさや画像の中心位置から距離に基づく評価値に従って、主被写体の領域を設定するようにしてもよい。
【０１０７】
ステップＳ９１５にて、ＣＰＵ８０１は、ステップＳ９１４で設定された主被写体の領域から色相ヒストグラムを生成し、特徴量を示す色分布情報としてＲＡＭ１０３に記憶する。そして、ステップＳ９０５に進む。
【０１０８】
図１１は、本発明の一実施形態に係る画像処理装置のユーザーインターフェイスの一例である。
【０１０９】
図１１を用いて、ＣＰＵ８０１が追尾再生をする方法について、説明する。
【０１１０】
ユーザがポインティングデバイス等の入力装置８０５を用いてファイル読み込みメニュー１１０１を選択すると、ＣＰＵ８０１はファイル読み込み指示があったと判定して、ファイルオープンダイアログを表示する。そして、ユーザがファイルオープンダイアログで画像ファイルを選択した場合、ＣＰＵ８０１はＨＤＤ８００から動画ファイルをＲＡＭ８０３に読み込み、動画データの先頭フレームをディスプレイ８０４に表示する。
【０１１１】
前述のファイルオープンダイアログでユーザが選択した画動画データは、動画データ再生領域１１０２で再生される。
【０１１２】
先頭フレーム選択ボタンであり、ユーザが入力装置８０５を用いて先頭フレーム選択ボタン１１０３を操作すると、動画データの再生位置に関わらず、先頭フレームに戻り、一時停止状態となる。
【０１１３】
ユーザが入力装置８０５を用いて再生／一時停止トグルボタン１１０４を操作すると、動画データ再生領域１１０２内で動画データの再生を開始し、一時停止のマークへとボタンの表示を切り替える。動画データ再生中に再生／一時停止トグルボタン１１０４を操作すると、動画データの再生を一時停止し、押下した位置のフレームを動画データ再生領域１１０２に表示する。
【０１１４】
再生位置のつまみ１１０５の一番左端は、動画データの先頭位置のフレームを示し、一番右端は動画データの最後尾位置のフレームを示す。ユーザが入力装置８０５で水平方向にドラッグすると、動画データの再生位置を変更する。
【０１１５】
ユーザが入力装置８０５で最後尾フレーム選択ボタン１１０６を操作すると、動画データの再生位置に関わらず、最後尾フレームに進み一時停止状態となる。
【０１１６】
追尾再生チェックボックス１１０７がオンの状態のときに、ユーザが入力装置８０５で追尾再生チェックボックス１１０７を操作すると、追尾再生を解除する操作があったものとＣＰＵ８０１が判定し、チェックボックスをオフの状態に変更する。追尾再生チェックボックス１１０７がオフの状態のときに、ユーザが入力装置８０５で追尾再生チェックボックス１１０７を操作すると、追尾再生する操作があったものとＣＰＵ８０１が判定し、チェックボックスをオンの状態に変更する。
【０１１７】
ユーザが入力装置８０５で表示倍率指定リストボックス１１０８を操作すると、ＷｉｎｄｏｗＦｉｔ、１００％、２００％、４００％と表示倍率の候補をリスト表示する。そして、リストの中からユーザが所望の倍率を指定すると、ＣＰＵ８０１は表示倍率変更操作があったものと判定し、ユーザが指定した倍率で動画データ再生領域１１０２における動画データの表示を拡大縮小する。
【０１１８】
ユーザが入力装置８０５で終了ボタン１１０９を操作すると、ＣＰＵ８０１は終了指示があったと判定し、追尾再生の処理を終了する。
【０１１９】
図１２は、本発明の一実施形態に係る追尾補正処理の工程を示すフローチャート図である。なお、本処理は、ＣＰＵ８０１がＲＡＭ８０３に格納された制御プログラムを実行することにより実行される。本処理は、ＲＡＭ８０３から動画データを読み込み、動画を再生する前に実行するものとする。
【０１２０】
ステップＳ１２００にて、ＣＰＵ８０１は、処理対象とする動画データに付帯された追尾情報をＲＡＭ８０３に読み込む。
【０１２１】
ステップＳ１２０１にて、ＣＰＵ８０１は、何番目の主被写体情報かを特定するためのカウンタＴｇｔＯｂｊと、何番目のフレームに対する処理かを特定するためのカウンタＦｒａｍｅＮｏに、共に０を代入する。
【０１２２】
ステップＳ１２０２にて、ＣＰＵ８０１は、ＦｒａｍｅＮｏが０のフレームにおいて主被写体と判定した領域の色分布情報を、Ｃｏｌｏｒ［ＴｇｔＯｂｊ］として記憶する。
【０１２３】
ステップＳ１２０３にて、ＣＰＵ８０１は、ＴｇｔＯｂｊ番目の主被写体を指定したフレームの情報として、ＦｒａｍｅＮｏの値を、ＦＮｏ［ＴｇｔＯｂｊ］として記憶する。ここでは、０番目の主被写体を指定したフレームの情報として、ＦｒａｍｅＮｏの値「０」が、ＦＮｏ［０］として記憶される。
【０１２４】
ステップＳ１２０４にて、ＣＰＵ８０１は、ＴｇｔＯｂｊとＦｒａｍｅＮｏに、共に１を代入する。
【０１２５】
ステップＳ１２０５にて、ＣＰＵ８０１は、主被写体指定がされたフレームの直前のフレーム番号を示すｂｅｆＦｒａｍｅＮｏに初期値として−１を代入する。
【０１２６】
ステップＳ１２０６にて、ＣＰＵ８０１は、ＦｒａｍｅＮｏが対象の動画データを構成するフレーム数未満か否かを判定する。ＦｒａｍｅＮｏが動画を構成するフレーム未満で有る場合には、全てのフレームにおける追尾情報を補正していないものと判定し、ステップＳ１２０７へと進む。ＦｒａｍｅＮｏが動画を構成するフレームに達した場合には、全てのフレームにおける追尾情報の補正が完了したものと判定し、一連の処理を終了する。
【０１２７】
ステップＳ１２０７にて、ＣＰＵ８０１は、ＲＡＭ８０３内の追尾情報からＦｒａｍｅＮｏのフレームにおいて主被写体指定の操作があったか否かを判定する。主被写体指定の操作があったと判定した場合には、ステップＳ１２０８へと進む。主被写体指定の操作がなかったと判定した場合には、ステップＳ１２２４へと進む。
【０１２８】
ステップＳ１２０８にて、ＣＰＵ８０１は、ｂｅｆＦｒａｍｅＮｏが初期値の−１であるか否かを判定する。ｂｅｆＦｒａｍｅＮｏが−１であると判定した場合は、ステップＳ１２０９へ進み、そうでなければステップＳ１２１０へ進む。
【０１２９】
ステップＳ１２０９にて、ＣＰＵ８０１は、ｂｅｆＦｒａｍｅＮｏにＦｒａｍｅＮｏ−１の値を記憶する。
【０１３０】
ステップＳ１２１０にて、ＣＰＵ８０１は、ＲＡＭ８０３内の追尾情報からＦｒａｍｅＮｏ以降のフレームにおいて、所定時間内に主被写体指定の操作があったか否かを判定する。本実施例では所定時間とは１秒とする。１秒間で３０フレームの動画データの場合には、主被写体指定の操作がされたフレームのＦｒａｍｅＮｏを基準として、ＦｒａｍｅＮｏ＋３０までのいずれかのフレームで、主被写体判定結果の値に１があるか否かで判定する。主被写体指定の操作があったと判定した場合には、ステップＳ１２２４へと進む。これは、現在のフレームにおける主被写体指定の操作はなかったものとすることを意味する。主被写体指定の操作がなかったと判定した場合には、ステップＳ１２１１へと進む。
【０１３１】
ステップＳ１２１１にて、ＣＰＵ８０１は、ＲＡＭ８０３内の追尾情報から、主被写体指定されたフレーム番号の色分布情報を読み込み、Ｃｏｌｏｒ［ＴｇｔＯｂｊ］として記憶する。
【０１３２】
ステップＳ１２１２にて、ＣＰＵ１０１は、主被写体指定の操作があったフレーム番号を読み込み、ＦＮｏ［ＴｇｔＯｂｊ］として記憶する。
【０１３３】
ステップＳ１２１３にて、ＣＰＵ８０１は、ＲＡＭ８０３内の追尾情報からＦｒａｍｅＮｏがｂｅｆＦｒａｍｅＮｏのフレームの色分布情報１００７の値を記憶する。
【０１３４】
ステップＳ１２１４にて、ＣＰＵ８０１は、前回主被写体指定の操作によって指定された主被写体の色分布情報とステップＳ１２１３にて記憶した色分布情報を比較し、被写体が一致しているか否かを判定する。被写体が一致しているか否かの判定は、色分布情報の類似度を算出し、類似度が所定の閾値以上である場合に、被写体が一致しているものと判定する。一致している場合には、前回主被写体指定の操作をしたフレームからＦｒａｍｅＮｏがｂｅｆＦｒａｍｅのフレームまでの間、追尾が成功していたと判定して、ステップＳ１２２２へと進む。反対に、一致しなかった場合には、前回主被写体指定の操作をしたフレームからＦｒａｍｅＮｏがｂｅｆＦｒａｍｅのフレームまでの間、追尾が失敗していた期間があると判定して、ステップＳ１２１５へと進む。
【０１３５】
ステップＳ１２１５にて、ＣＰＵ８０１は、追尾情報を補正する対象のフレームの番号を記憶するため、ＴｇｔＦｒａｍｅに、タッチ指定をしたフレーム番号ＦＮｏ［ＴｇｔＯｂｊ］より１つ小さいフレーム番号を代入する。
【０１３６】
ステップＳ１２１６にて、ＣＰＵ８０１は、追尾情報補正を終了するフレーム番号ＣｈＦｉｎａｌＦｒａｍｅとして、前回タッチ指定をしたフレーム番号ＦＮｏ［ＴｇｔＯｂｊ−１］を代入する。
【０１３７】
ステップＳ１２１７にて、ＣＰＵ８０１は、ＴｇｔＦｒａｍｅの値がＣｈＦｉｎａｌＦｒａｍｅの値以上か否かを判定する。ＴｇｔＦｒａｍｅの値がＣｈＦｉｎａｌＦｒａｍｅの値以上と判定した場合には、前回主被写体指定の操作をしてから今回主被写体指定の操作をするまでの間のフレームに、まだ追尾情報を補正の要否を判定できていないフレームが含まれていることになる。そのため、ステップＳ１２１８と進む。ＴｇｔＦｒａｍｅの値がＣｈＦｉｎａｌＦｒａｍｅの値未満と判定した場合には、前回主被写体指定の操作をしてから今回主被写体指定の操作をするまでの間の全てのフレームに対して、追尾情報を補正の要否を判定できたことになる。そのため、ステップＳ１２２２へと進む。
【０１３８】
ステップＳ１２１８にて、ＣＰＵ８０１は、ＲＡＭ８０３内の追尾情報からＴｇｔＦｒａｍｅ番目のフレームの主被写体検出結果の信頼度１００６の値が１であるか否かを判定する。１である場合には、対象フレームにおいて、前回主被写体指定の操作がされた顔に対する追尾が成功していたと判定し、ステップＳ１２２２へと進む。１でない場合には、対象フレームにおける追尾が失敗していたと判定し、ステップＳ１２１９へと進む。
【０１３９】
ステップＳ１２１９にて、ＣＰＵ８０１は、ＲＡＭ８０３内の追尾情報から、今回主被写体指定の選択がなされたフレームにおいて指定された被写体と同一の被写体の領域が、ＴｇｔＦｒａｍｅ番目のフレームに存在するか否かを判定する。具体的には、ＣＰＵ８０１は、色分布情報の類似度が閾値以上である色分布を有する領域があれば、それを同一の被写体の領域であると判定する。そして、同一の被写体の領域が存在する場合には、ステップＳ１２２０へと進み、存在しない場合には、ステップＳ１２２１へと進む。
【０１４０】
ステップＳ１２２０にて、ＣＰＵ８０１は、ＲＡＭ８０３内のＴｇｔＦｒａｍｅ番目のフレームの追尾情報を補正する。ＴｇｔＦｒａｍｅ番目のフレームの主被写体検出結果の信頼度１００６の値を１に変更する。そして、ステップＳ１２１９にて検出した領域の位置に応じて座標ｘ１００２、座標７１００３、サイズ１００４、および、色分布情報１００７を更新する。
【０１４１】
ステップＳ１２２１にて、ＣＰＵ８０１は、ＴｇｔＦｒａｍｅの値をデクリメントする。つまり、追尾情報を補正の要否を判定する対象のフレームを、１つ前のフレームに設定する。そして、ステップＳ１２１７へと戻る。
【０１４２】
ステップＳ１２２２にて、ＣＰＵ８０１は、ｂｅｆＦｒａｍｅＮｏに初期値として−１を代入する。この処理をすることで、新たな主被写体指定の処理があった場合に、ステップＳ１２０８からステップＳ１２０９に進み、ｂｅｆＦｒａｍｅＮｏにＦｒａｍｅＮｏ−１の値を記録することができる。
【０１４３】
ステップＳ１２２３にて、ＣＰＵ８０１は、ＴｇｔＯｂｊの値をインクリメントする。
【０１４４】
ステップＳ１２２３にて、ＣＰＵ８０１は、ＦｒａｍｅＮｏの値をインクリメントとし、次のフレームをステップＳ１２０６以降の処理対象とする。そして、ステップＳ１２０６へと戻る。
【０１４５】
このように、図１２に示すフローチャートによれば、ユーザが所定時間内に複数回にわたって主被写体を指定する操作を繰り返した場合には、最後に指定された主被写体の情報を基準に、追尾が成功していなか否かを判定することができる。
【０１４６】
なお、補正された追尾情報を用いて動画データを再生する方法については、第１の実施形態で説明した図７と同様であるため、説明を省略する。
【０１４７】
以上説明した通り、本実施形態の画像処理装置によれば、途中で異なる被写体を主被写体として追尾してしまった場合であっても、遡って主被写体の情報を修正することができる。そのため、ユーザの意図しない被写体を主被写体として、動画データに対する編集処理を行うことを抑制することが可能となる。
【０１４８】
なお、図７を用いて説明した再生処理は編集処理の１つの例であって、これに限られるものではない。例えば、信頼度が１であって、かつ、特定の顔ＩＤが主被写体として選択されているフレームをのみを抽出するようにしてもよいし、このようなフレームのいずれか１つを動画の再生を開始するフレームとして決定するようにしてもよい。
【０１４９】
なお、上記実施形態においては、追尾情報が動画データに付帯されている場合を説明したが、動画データと追尾情報が関連付けられており、両方を読み込み可能な状態であれば、動画データと追尾情報は別々に記憶されていても構わない。
【０１５０】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。また、上述の実施形態の一部を適宜組み合わせてもよい。
【０１５１】
また、本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１５２】
１００  撮像部
１０１、８０１  ＣＰＵ
１０２、８０２  ＲＯＭ
１０３、８０３  ＲＡＭ
１０４、８０４  ディスプレイ
１０５、８０５  入力装置
１０６、８０６  メディアドライブ
１０７、８０７  インターフェイス（Ｉ／Ｆ）
１０８、８０８  システムバス
１０９、８０９  通信回線
１１０、８１０  ネットワーク
８１１  ハードディスクドライブ（ＨＤＤ）
【図１】
2019022186.tif 000003
【図２】
2019022186.tif 000004
【図３】
2019022186.tif 000005
【図４】
2019022186.tif 000006
【図５】
2019022186.tif 000007
【図６】
2019022186.tif 000008
【図７】
2019022186.tif 000009
【図８】
2019022186.tif 000010
【図９】
2019022186.tif 000011
【図１０】
2019022186.tif 000012
【図１１】
2019022186.tif 000013
【図１２】
2019022186.tif 000014