(57)【要約】【課題】背景と同じ方向に移動する移動体を検出可能な画像処理装置およびその制御方法、ならびに撮像装置を提供すること。【解決手段】画像処理装置は、複数の画像間で検出した複数の動きベクトルに基づいて、背景の動きを表す背景ベクトルを算出する。そして、画像処理装置は、複数の動きベクトルのそれぞれと背景ベクトルとのユークリッド距離の大きさに基づいて、複数の動きベクトルから動体の動きベクトルを検出する。【選択図】  図３
2020095673.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像間の複数の動きベクトルを検出する動きベクトル検出手段と、
前記動きベクトルに基づいて、背景の動きを表す背景ベクトルを算出する算出手段と、
前記複数の動きベクトルのそれぞれと前記背景ベクトルとのユークリッド距離の大きさに基づいて、前記複数の動きベクトルから動体の動きベクトルを検出する動体検出手段と、を有することを特徴とする画像処理装置。
【請求項２】
前記複数の動きベクトルをクラスタリングしてクラスタを生成するクラスタリング手段と、
前記クラスタリング手段が生成したクラスタから、背景クラスタを選択する選択手段と、をさらに有し、
前記算出手段は、前記背景クラスタを構成する動きベクトルから前記背景ベクトルを算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記選択手段は、前記クラスタリング手段が生成したクラスタのうち、クラスタを構成する動きベクトルの画像中の存在範囲が最大であるクラスタを前記背景クラスタとして選択することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記選択手段は、前記クラスタリング手段が生成したクラスタのうち、クラスタを構成する動きベクトルの始点または終点の座標の分散が最大であるクラスタを前記背景クラスタとして選択することを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記画像処理装置の動きを検出する動き検出手段をさらに有し、
前記算出手段は、前記動き検出手段が検出した前記画像処理装置の動きから背景の動き方向を推定し、
前記選択手段は、前記背景の動き方向を用いて、前記クラスタリング手段が生成したクラスタから前記背景クラスタを選択する、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記選択手段は、前記クラスタリング手段が生成したクラスタのうち、代表ベクトルが前記背景の動き方向となす角度が最小であるクラスタを前記背景クラスタとして選択することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記画像処理装置の動きを検出する動き検出手段と、
前記複数の画像を撮影した撮影光学系の焦点距離および撮像素子の情報を取得する取得手段とをさらに有し、
前記算出手段は、前記画像処理装置の動きと、前記焦点距離と、前記撮像素子の情報と、前記複数の画像の撮影間隔とから、前記背景ベクトルを算出することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記動きベクトルの終点座標における画像の顕著度を算出する顕著度算出手段をさらに有し、
前記動体検出手段は、前記複数の動きベクトルのうち、終点座標における画像の顕著度が閾値以上である動きベクトルから前記動体の動きベクトルを検出することを特徴とする請求項１から７のいずれか１項に記載の画像処理装置。
【請求項９】
画素位置における被写体距離を検出する距離検出手段をさらに有し、
前記動体検出手段は、前記複数の動きベクトルのうち、終点座標の画素位置における被写体距離が閾値未満である動きベクトルから前記動体の動きベクトルを検出する、
ことを特徴とする請求項１から７のいずれか１項に記載の画像処理装置。
【請求項１０】
画素位置における被写体距離を検出する距離検出手段をさらに有し、
前記動体検出手段は、前記複数の動きベクトルのうち、前記ユークリッド距離が閾値以上である動きベクトルであり、かつ終点座標の画素位置における被写体距離が最小である動きベクトルを前記動体の動きベクトルとして検出する、
ことを特徴とする請求項１から７のいずれか１項に記載の画像処理装置。
【請求項１１】
請求項１から１０のいずれか１項に記載の画像処理装置と、
前記複数の画像を撮影する撮像素子と、
前記画像処理装置が検出した動体の動きベクトルに基づいて焦点検出および／または露出制御を行う制御手段と、
を有することを特徴とする撮像装置。
【請求項１２】
複数の画像間の複数の動きベクトルを検出することと、
前記複数の動きベクトルに基づいて、背景の動きを表す背景ベクトルを算出することと、
前記複数の動きベクトルのそれぞれと前記背景ベクトルとのユークリッド距離の大きさに基づいて、前記複数の動きベクトルから動体の動きベクトルを検出することと、を有することを特徴とする画像処理装置の制御方法。
【請求項１３】
コンピュータを、請求項１から１０のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項１４】
複数の画像間の複数の動きベクトルを検出するベクトル検出手段と、
前記複数の動きベクトルに基づいて、主被写体の領域を判別する判別手段と、を有し、
前記判別手段は、
前記複数の動きベクトルのうち、現在の主被写体とは別の被写体に関する動きベクトルを検出し、
前記別の被写体に関する動きベクトルが予め定められた条件を満たす場合には、前記別の被写体を新たな主被写体として判別する、
ことを特徴とする画像処理装置。
【請求項１５】
前記予め定められた条件が、前記別の被写体に関する動きベクトルが画像の中心に近づく方向の動きベクトルであることである、ことを特徴とする請求項１４に記載の画像処理装置。
【請求項１６】
前記予め定められた条件が、前記別の被写体に関する動きベクトルが前記別の被写体の距離が小さくなる方向の動きベクトルであることである、ことを特徴とする請求項１４または１５に記載の画像処理装置。
【請求項１７】
前記判別手段は、
前記複数の動きベクトルのうち、背景に関する動きベクトルを代表する背景ベクトルを算出し、
前記複数の動きベクトルのうち、前記背景ベクトルとの距離が閾値以上である動きベクトルを、前記別の被写体に関する動きベクトルとして検出する、
ことを特徴とする請求項１４から１６のいずれか１項に記載の画像処理装置。
【請求項１８】
前記判別手段は、前記複数の動きベクトルのうち、前記現在の主被写体に関する動きベクトルと前記背景ベクトルとのユークリッド距離が閾値以上の場合には、前記現在の主被写体を変更しないことを特徴とする請求項１７に記載の画像処理装置。
【請求項１９】
前記判別手段は、前記複数の動きベクトルのうち、前記現在の主被写体に関する動きベクトルに基づいて、前記現在の主被写体が近づいていると判定される場合には、前記現在の主被写体を変更しないことを特徴とする請求項１７または１８に記載の画像処理装置。
【請求項２０】
前記複数の動きベクトルをクラスタリングしてクラスタを生成するクラスタリング手段をさらに有し、
前記判別手段は、
前記クラスタリング手段が生成したクラスタのうち、クラスタを構成する動きベクトルの検出位置の分布範囲が最も広いクラスタを背景クラスタとして選択し、
前記背景クラスタを構成する動きベクトルから前記背景ベクトルを算出する、
ことを特徴とする請求項１７から１９のいずれか１項に記載の画像処理装置。
【請求項２１】
前記複数の動きベクトルをクラスタリングしてクラスタを生成するクラスタリング手段をさらに有し、
前記判別手段は、
前記クラスタリング手段が生成したクラスタのうち、クラスタを構成する動きベクトルの始点または終点の座標の分散が最大であるクラスタを背景クラスタとして選択し、
前記背景クラスタを構成する動きベクトルから前記背景ベクトルを算出する、
ことを特徴とする請求項１７から１９のいずれか１項に記載の画像処理装置。
【請求項２２】
前記複数の動きベクトルをクラスタリングしてクラスタを生成するクラスタリング手段と、
前記画像処理装置の動きを検出する動き検出手段と、をさらに有し、
前記判別手段は、
前記動き検出手段が検出した前記画像処理装置の動きから背景の動き方向を推定し、
前記背景の動き方向を用いて、前記クラスタリング手段が生成したクラスタから背景クラスタを選択し、
前記背景クラスタを構成する動きベクトルから前記背景ベクトルを算出する、
ことを特徴とする請求項１７から１９のいずれか１項に記載の画像処理装置。
【請求項２３】
前記判別手段は、前記クラスタリング手段が生成したクラスタのうち、代表ベクトルが前記背景の動き方向となす角度が最小であるクラスタを前記背景クラスタとして選択することを特徴とする請求項２２に記載の画像処理装置。
【請求項２４】
請求項１４から２３のいずれか１項に記載の画像処理装置と、
前記複数の画像を撮影する撮像素子と、
前記画像処理装置が検出した動体の動きベクトルに基づいて焦点検出および／または露出制御を行う制御手段と、
を有することを特徴とする撮像装置。
【請求項２５】
複数の画像間の複数の動きベクトルを検出することと、
前記複数の動きベクトルのうち、現在の主被写体とは別の被写体に関する動きベクトルを検出することと、
前記別の被写体に関する動きベクトルが予め定められた条件を満たす場合には、前記別の被写体を新たな主被写体として判別することと、
を有する画像処理装置の制御方法。
【請求項２６】
コンピュータを、請求項１４から２３のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびその制御方法、ならびに撮像装置に関し、特に動体検出技術に関する。
【背景技術】
【０００２】
動画のフレーム画像間の動きベクトルに基づいて、被写体の大局的な移動方向と逆方向に移動する被写体を検出する技術が知られている（特許文献１）。また、画面全体の動きと局所的な動きとの差異が大きい領域を主被写体の領域と判定する技術が知られている（特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１９４９１５号公報
【特許文献２】特開２０１５−１１１７４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の手法は、多数の移動体と逆方向に移動する移動体を、多数の移動体の移動方向を表す動きベクトルに対して角度差が所定値以上である動きベクトルに基づいて検出している。そのため、例えば移動体をパンニングしながら撮影する場合の様に、背景と被写体（移動体）とが同じ方向に異なる速さで移動するシーンを撮影した場合、特許文献１に記載の手法は背景と被写体とを分離することができない。
【０００５】
一方、特許文献２では、画像全体の動きと、局所的な動きとの差異に差に基づいて主被写体を判定するため、背景と主被写体とが同じ方向に異なる速さで移動している場合でも主被写体を判別できる。しかしながら、ユーザが意図している主被写体は、画面全体の動きと差異の大きな動きを有する大きな被写体とはかぎらない。
【０００６】
本発明はこのような従来技術の課題に鑑みてなされたものであり、背景と同じ方向に移動する移動体を検出可能な画像処理装置およびその制御方法、ならびに撮像装置を提供することを目的の１つとする。
【課題を解決するための手段】
【０００７】
上述の目的は、複数の画像間の複数の動きベクトルを検出する動きベクトル検出手段と、動きベクトルに基づいて、背景の動きを表す背景ベクトルを算出する算出手段と、複数の動きベクトルのそれぞれと背景ベクトルとのユークリッド距離の大きさに基づいて、複数の動きベクトルから動体の動きベクトルを検出する動体検出手段と、を有することを特徴とする画像処理装置によって達成される。
【発明の効果】
【０００８】
本発明によれば、背景と同じ方向に移動する移動体を検出可能な画像処理装置およびその制御方法、ならびに撮像装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】発明の実施形態に係るデジタルカメラの機能構成例を示すブロック図
【図２】実施形態における画像処理部の動体検出に関する機能構成例を示すブロック図
【図３】実施形態における動体検出処理に関するフローチャート
【図４】実施形態における動体検出方法を説明するための模式図
【図５】実施形態における背景クラスタ選択動作の例に関するフローチャート
【図６】実施形態における背景クラスタ選択動作の別の例に関するフローチャート
【図７】実施形態における距離マップを用いた動体検出を説明するための模式図
【図８】第２実施形態における画像処理部の動体検出に関する機能構成例を示すブロック図
【図９】第２実施形態における画像処理部の動作に関するフローチャート
【図１０】第２実施形態における動きベクトルのクラスタリングに関する図
【図１１】第２実施形態における主被写体判別処理に関するフローチャート
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明をその例示的な実施形態に基づいて詳細に説明する。なお、説明する実施形態は単なる例示であり、本発明の範囲を限定するものではない。例えば、以下では本発明をデジタルカメラに適用した実施形態を説明する。しかし、デジタルカメラは本発明を適用可能な画像処理装置の一例にすぎない。本発明は任意の電子機器において実施可能である。このような電子機器には、デジタルカメラやデジタルビデオカメラといった撮像装置はもちろん、パーソナルコンピュータ、タブレット端末、携帯電話機、ゲーム機、ドライブレコーダ、ロボット、ドローンなどが含まれるが、これらに限定されない。なお、本発明には撮影機能は必須でなく、動画のように時系列で撮影された画像を取得可能な電子機器で実施可能である。
【００１１】
（撮像装置の構成）
図１は第１実施形態に係るデジタルカメラ１００の機能構成例を示すブロック図である。デジタルカメラ１００は動画および静止画の撮影ならびに記録が可能である。デジタルカメラ１００内の各機能ブロックは、バス１６０を介して互いに通信可能に接続されている。デジタルカメラ１００の動作は、主制御部１５１が有する１つ以上のプログラマブルプロセッサが例えばＲＯＭ１５５に記憶されているプログラムをＲＡＭ１５４に読み込んで実行し、各機能ブロックを制御することにより実現される。
【００１２】
撮影レンズ１０１（レンズユニット）は、固定１群レンズ１０２、ズームレンズ１１１、絞り１０３、固定３群レンズ１２１、フォーカスレンズ１３１、ズームモータ（ＺＭ）１１２、絞りモータ（ＡＭ）１０４、およびフォーカスモータ（ＦＭ）１３２を有する。固定１群レンズ１０２、ズームレンズ１１１、絞り１０３、固定３群レンズ１２１、フォーカスレンズ１３１は撮影光学系を構成する。なお、便宜上レンズ１０２、１１１、１２１、１３１を１枚のレンズとして図示しているが、それぞれ複数のレンズで構成されてもよい。また、撮影レンズ１０１は撮像装置１００から取り外し可能な交換レンズとして構成されてもよい。
【００１３】
絞り制御部１０５は、主制御部１５１の命令にしたがって絞りモータ１０４の動作を制御し、絞り１０３の開口径を変更する。
ズーム制御部１１３は、主制御部１５１の命令にしたがってズームモータ１１２の動作を制御し、撮影レンズ１０１の焦点距離（画角）を変更する。
【００１４】
フォーカス制御部１３３は、例えば撮像素子１４１から得られる１対の焦点検出用信号の位相差に基づいて撮影レンズ１０１のデフォーカス量およびデフォーカス方向を算出する。そしてフォーカス制御部１３３は、デフォーカス量およびデフォーカス方向をフォーカスモータ１３２の駆動量および駆動方向に変換する。この駆動量および駆動方向に基づいてフォーカス制御部１３３はフォーカスモータ１３２の動作を制御し、フォーカスレンズ１３１を駆動することにより、撮影レンズ１０１の焦点状態を制御する。
【００１５】
このように、フォーカス制御部１３３は位相差検出方式の自動焦点検出（ＡＦ）を実施するが、フォーカス制御部１３３は撮像素子１４１から得られる画像信号のコントラスト評価値に基づくコントラスト検出方式のＡＦを実行してもよい。また、撮像素子１４１とは別個に設けたＡＦセンサから得られる焦点検出用信号を用いて位相差検出方式のＡＦを実行してもよい。なお、フォーカス制御部１３３におけるＡＦ動作において、後述する画像処理部１５２が検出する主被写体の領域に焦点検出領域を設定することができる。
【００１６】
撮影レンズ１０１によって撮像素子１４１の結像面に形成される被写体像は、撮像素子１４１に配置された複数の画素のそれぞれが有する光電変換素子により電気信号（画像信号）に変換される。本実施形態では、撮像素子１４１に、水平方向にｍ、垂直方向にｎ（ｎ，ｍは複数）の画素が行列状に配置されており、各画素には２つの光電変換素子（光電変換領域）が設けられている。撮像素子１４１からの信号読み出しは、主制御部１５１からの指示に従ってセンサ制御部１４３が制御する。
【００１７】
個々の画素が有する２つの光電変換領域を領域Ａおよび領域Ｂと呼び、個々の画素の領域Ａから読み出した画像信号群からなる画像をＡ画像、個々の画素の領域Ｂから読み出した画像信号群からなる画像をＢ画像と呼ぶ。また、Ａ画像とＢ画像を画素単位で加算した画像をＡ＋Ｂ画像と呼ぶ。Ａ画像とＢ画像は視差画像対を形成する。表示や記録にはＡ＋Ｂ画像を用いる。また、位相差検出方式のＡＦに用いる焦点検出用信号の生成や、距離マップの生成にはＡ画像とＢ画像を用いる。
【００１８】
撮像素子１４１から読み出された画像信号は信号処理部１４２に供給される。信号処理部１４２は、画像信号にノイズ低減処理、Ａ／Ｄ変換処理、自動利得制御処理などの信号処理を適用し、画像データとしてセンサ制御部１４３に出力する。センサ制御部１４３は信号処理部１４２から受信した画像データをＲＡＭ（ランダム・アクセス・メモリ）１５４に蓄積する。
【００１９】
ＲＡＭ１５４に保存された画像データを記録する場合、主制御部１５１は画像データに例えば所定のヘッダを追加するなどして、記録形式に応じたデータファイルを生成する。この際、主制御部１５１は必要に応じて圧縮解凍部１５３で画像データを符号化し、符号化データをデータファイルに格納する。主制御部１５１は、生成したデータファイルを例えばメモリカードのような記録媒体１５７に記録する。
【００２０】
また、ＲＡＭ１５４に保存された画像データを表示する場合、主制御部１５１は表示部１５０での表示サイズに適合するように画像データを画像処理部１５２でスケーリングした後、ＲＡＭ１５４のうちビデオメモリとして用いる領域（ＶＲＡＭ領域）に書き込む。表示部１５０は、ＲＡＭ１５４のＶＲＡＭ領域から表示用の画像データを読み出し、例えばＬＣＤや有機ＥＬディスプレイなどの表示装置に表示する。表示部１５０では、画像処理部１５２が検出した主被写体（動体）の検出結果（主被写体領域を示す枠など）も表示する。
【００２１】
デジタルカメラ１００は、動画撮影時（撮影スタンバイ状態や動画記録中）に、撮影された動画を表示部１５０に即時表示することにより、表示部１５０を電子ビューファインダー（ＥＶＦ）として機能させる。表示部１５０をＥＶＦとして機能させる際に表示する動画およびそのフレーム画像を、ライブビュー画像もしくはスルー画像と呼ぶ。また、デジタルカメラ１００は、静止画撮影を行った場合、撮影結果をユーザが確認できるように、直前に撮影した静止画を一定時間表示部１５０に表示する。これらの表示動作についても、主制御部１５１の制御によって実現される。
【００２２】
圧縮解凍部１５３は画像データを符号化したり復号したりする。例えば静止画や動画を記録する場合、予め定められた符号化方式によって画像データや音声データを符号化する。また、記録媒体１５７に記録された静止画データファイルや動画データファイルを再生する際、圧縮解凍部１５３は符号化データを復号してＲＡＭ１５４に格納する。
【００２３】
ＲＡＭ１５４はプログラムを実行するためのシステムメモリ、ビデオメモリ、バッファメモリなどとして用いられる。
ＲＯＭ１５５は主制御部１５１のプロセッサが実行可能なプログラム、各種の設定値、デジタルカメラ１００の固有情報、ＧＵＩデータなどを記憶する。ＲＯＭ１５５は電気的に書き換え可能であってよい。
【００２４】
操作部１５６は、ユーザがデジタルカメラ１００に指示を入力するためのスイッチ、ボタン、キー、タッチパネルなどの入力デバイス群の総称である。操作部１５６を通じた入力はバス１６０を通じて主制御部１５１が検知し、主制御部１５１は入力に応じた動作を実現するために各部を制御する。
【００２５】
主制御部１５１は例えばＣＰＵやＭＰＵなどのプログラマブルプロセッサを１つ以上有し、例えばＲＯＭ１５５に記憶されたプログラムをＲＡＭ１５４に読み込んで実行することにより各部を制御し、デジタルカメラ１００の機能を実現する。主制御部１５１はまた、被写体輝度の情報に基づいて露出条件（シャッタースピードもしくは蓄積時間、絞り値、感度）を自動的に決定するＡＥ処理を実行する。被写体輝度の情報は例えば画像処理部１５２から取得することができる。主制御部１５１は、例えば人物の顔など、特定被写体の領域の輝度情報に基づいて露出条件を決定することもできる。
【００２６】
主制御部１５１は、動画撮影時には絞り１０３は固定とし、電子シャッタスピード（蓄積時間）とゲインの大きさで露出を制御する。主制御部１５１は決定した蓄積時間とゲインの大きさをセンサ制御部１４３に通知する。センサ制御部１４３は通知された露出条件に従った撮影が行われるように撮像素子１４１の動作を制御する。
【００２７】
距離マップ生成部１６１（距離検出手段）は、例えばＲＡＭ１５４に保存された画像データを用いて距離マップを生成する。距離マップは例えば画素の輝度値が被写体距離を表し、デプスマップ距離画像、奥行き画像などと呼ばれることもある。距離マップは公知の方法で生成することができる。例えば、距離マップ生成部１６１は、視差画像（上述したＡ画像およびＢ画像）の像ズレ量から各画素位置におけるデフォーカス量（フォーカスレンズの合焦位置からのズレ量およびズレの方向）を求めることができる。デフォーカス量は現在の被写体距離を基準としたピントのズレ量を表すので、デフォーカス量を距離情報と見なすことができる。もちろん、デフォーカス量に基づいてフォーカスレンズの合焦位置を求め、合焦位置に対応する被写体距離を求めてもよい。また、通常の撮像光学系においては像ズレ量とデフォーカス量は１対１に対応するため、像ズレ量の分布を距離マップとして、奥行きに応じた処理などを行うこともできる。なお、撮像装置１００をステレオカメラのような多眼カメラとして視差画像を取得してもよいし、記憶媒体や外部装置から視差画像を取得してもよい。
【００２８】
また、距離マップは視差画像を用いずに生成することもできる。コントラスト評価値が極大となるフォーカスレンズ位置を画素ごとに求めることで、画素ごとに被写体距離を取得することができる。また、合焦距離を変えて同一シーンを複数回撮影して得られる画像データと光学系の点像分布関数(PSF)とから、ぼけ量と距離との相関関係に基づいて画素ごとの距離情報を求めることもできる。距離マップ生成部１６１は、画像全体に対して距離マップを生成してもよいし、画像のうち、動体検出に必要な部分領域に対してだけ距離マップを生成してもよい。距離マップ生成部１６１は、生成した距離マップをＲＡＭ１５４に保存する。距離マップは画像処理部１５２から参照される。なお、距離マップ生成部１６１は、被写体距離を画素ごとに求める代わりに小領域（画素ブロック）ごとに求めて距離マップを生成してもよい。
【００２９】
さらに、距離マップ生成部１６１は、距離マップに領域ごとに信頼度を算出し、距離マップとともに保存することができる。信頼度の算出方法には特に制限はない。例えば、視差画像を用いて距離マップを生成する際、視差画像間の像ズレ量を求めるために、相対的なシフト量を変えながら例えばＳＡＤなどの相関量（類似度）を演算し、相関が最大（相関量が最小）になるシフト量を像ズレ量として検出する。算出した相関量の平均値と最大値との差が大きい程、検出した像ズレ量（デフォーカス量）の信頼度は高いと考えられる。したがって、各画素位置で算出した相関量の平均値と最大値との差を、その画素位置信頼度として用いることができる。なお、距離マップ生成部１６１は、被写体距離やその信頼度を、画素ごとに求める代わりに小領域（画素ブロック）ごとに求めて距離マップを生成してもよい。
【００３０】
動き検出部１６２は、例えばジャイロや加速度センサ、電子コンパスなどの姿勢センサにより構成され、デジタルカメラ１００の位置や姿勢の変化を計測する。本実施形態では一例として、撮影レンズ１０１の光軸をロール軸とし、ロール軸に直交し、撮像素子の長手方向に平行な軸をピッチ軸、ロール軸とピッチ軸に直交する軸をヨー軸としたときのヨー軸およびピッチ軸周りの角速度を姿勢変化として検出する。動き検出部１６２は、検出した動きをＲＡＭ１５４に保存する。動き検出部１６２が検出した動きの情報は、画像処理部１５２から参照される。
【００３１】
画像処理部１５２は、ＲＡＭ１５４に蓄積された画像データに対して予め定められた画像処理を適用する。画像処理部１５２が適用する画像処理には、ホワイトバランス調整処理、色補間（デモザイク）処理、ガンマ補正処理といった所謂現像処理のほか、信号形式変換処理、スケーリング処理などがあるが、これらに限定されない。さらに、画像処理部１５２は後述する動体検出処理を実行し、動体を主被写体として選択する。動体検出処理において画像処理部１５２は、距離マップ生成部１６１が生成した距離マップと動き検出部１６２が検出した動きを、動体情報に基づく主被写体の判別処理に用いることができる。
【００３２】
判別した主被写体の領域に関する情報を、他の画像処理（例えばホワイトバランス調整処理や被写体の輝度情報の生成処理など）に利用してもよい。なお、フォーカス制御部１３３がコントラスト検出方式のＡＦを行う場合、コントラスト評価値を画像処理部１５２が生成してフォーカス制御部１３３に供給することができる。画像処理部１５２は、処理した画像データや、主被写体の領域に関する情報などをＲＡＭ１５４に保存する。
【００３３】
（動体検出処理）
図２は、本実施形態における動体検出処理を説明するために、画像処理部１５２を動体検出処理に特化した機能ブロックによって表現した模式図である。図２に示す機能ブロックのそれぞれは、別個のハードウェア回路として実現されてもよいし、画像処理部１５２が有するプログラマブルプロセッサがメモリにプログラムを読み込んで実行することによって実現されてもよい。
【００３４】
図３は、画像処理部１５２が実施する動体検出処理のフローチャートである。
Ｓ２０１において画像入力部５０１は、撮影時刻が異なる２フレームの入力画像をＲＡＭ１５４から取得する。現フレームはセンサ制御部１４３から取得し、前フレーム（過去フレーム）はＲＡＭ１５４から取得してもよい。画像入力部５０１は、取得した入力画像を動きベクトル検出部５０２および顕著度算出部５０７に供給する。
【００３５】
Ｓ２０２において動きベクトル検出部５０２は、画像入力部５０１から供給された２フレームの入力画像について、画像間の複数の動きベクトルを検出する。動きベクトルの検出は、任意の公知の手法を用いて実現することができるが、本実施形態では一例としてテンプレートマッチングを用いて動きベクトルを検出するものとする。
【００３６】
すなわち、動きベクトル検出部５０２は、２フレームの画像のうち、先に撮影された１フレームの画像（フレームt-1とする）を水平および垂直方向にそれぞれ複数分割して複数の部分画像を生成する。そして、動きベクトル検出部５０２は、各部分画像をテンプレート、後に撮影された１フレームの画像（フレームtとする）を参照画像としたテンプレートマッチングを実施し、部分画像と類似度が最も高い領域を参照画像内で探索する。そして、動きベクトル検出部５０２は、部分画像の中心点の座標を始点とし、探索により見つかった、部分画像と類似度が最も高い領域の中心点の座標を終点とするベクトルを、部分画像についての動きベクトルとする。このようにして、動きベクトル検出部５０２は、フレームt-1の部分画像ごとに動きベクトルを検出する。
【００３７】
図４（ａ）はフレームt-1、図４（ｂ）はフレームtの例を示す図であり、図４（ｂ）にはテンプレートマッチングによって検出された動きベクトルのいくつかが矢印で示されている。フレームt-1上の点
【数１】
2020095673.tif 000003
を始点、それらに対応するフレームt上の点
【数２】
2020095673.tif 000004
を終点とするベクトルviを以下のように算出する。
【数３】
2020095673.tif 000005
なお、等号の上に三角形が付された記号は、左辺を右辺によって定義することを意味する。また、ベクトルの第一成分を画像の横方向、第二成分を画像の縦方向とする（以下同様）。動きベクトル検出部５０２は、検出した動きベクトルviと、動きベクトルviの終点eiとを関連づけてＲＡＭ１５４に保存する。
【００３８】
Ｓ２０３においてクラスタリング部５０３は、Ｓ２０２において検出された動きベクトル群viをクラスタリングする。クラスタリングにはK-Means法や、Affinity Propagationなど、公知の任意のクラスタリング手法を用いることができる。図４（ｃ）には、クラスタ数を自動決定可能なクラスタリング手法であるAffinity Propagationを用いたクラスタリング結果の例を示している。K-Means法のようなクラスタ数を自動決定出来ないクラスタリング手法を用いる場合には何らかの方法でクラスタ数を決定してからクラスタリングを実行する。
【００３９】
Ｓ２０４において、背景クラスタ選択部５０４は、Ｓ２０３におけるクラスタリングによって得られたクラスタ（図４（ｃ））のうち、背景領域のベクトルから成る背景クラスタを選択する。背景クラスタの選択方法については後述する。背景クラスタ選択部５０４は、背景クラスタが存在しない場合や選択できない場合には、背景クラスタの選択結果を、背景クラスタ無しとする。背景クラスタ選択部５０４は、背景クラスタの選択結果を背景ベクトル算出部５０５に供給する。
【００４０】
Ｓ２０５において背景ベクトル算出部５０５は、背景クラスタが存在するか否かを判定し、背景クラスタが存在すると判定されればＳ２０６へ処理を進め、判定されなければ動体検出結果なしとして動体検出処理を終了する。背景ベクトル算出部５０５は、背景クラスタの選択結果が背景クラスタ無しだった場合は背景クラスタが存在しないと判定することができる。
【００４１】
Ｓ２０６において背景ベクトル算出部５０５は、背景クラスタ選択部５０４が選択した背景クラスタに属する動きベクトルから、背景の動きを表す背景ベクトルbを算出する。ここでは、一例として、背景クラスタに属する動きベクトルの平均ベクトルを背景ベクトルbとして算出するものとするが、これに限定されない。
【００４２】
Ｓ２０７において動体選択部５０６は、動きベクトル検出部５０２が検出した全ての動きベクトルについて、Ｓ２０６で得られた背景ベクトルとのユークリッド距離を算出する。そして、動体選択部５０６は、算出したユークリッド距離が最大となる動きベクトルを選択する。具体的には、動きベクトルviと、背景ベクトルbとのユークリッド距離をdisti、選択される動きベクトルのインデックスをmとすると、以下の式（２）および（３）に従って動体選択部５０６は動きベクトルのインデックスｍを決定する。
【数４】
2020095673.tif 000006
なお、distm（すなわち、背景ベクトルbと動きベクトルviとの最大のユークリッド距離）が所定の閾値未満である場合、動体選択部５０６は動体が検出されないものと判定して動体検出処理を終了する。この場合、動体検出結果は、動体検出無しとなる。一方、distmが閾値以上であれば、動体選択部５０６は、動きベクトルvmの終点の画像座標emをフレームtに対する動体検出位置として出力し、動体検出処理を終了する。
【００４３】
検出した動体検出位置は、撮像装置の動作を制御するために用いることができる。例えば、動体検出位置を含むように焦点検出領域の設定することで、動体検出位置に合焦するようにレンズユニットの焦点検出を制御することができる。また、動体検出位置が適正露出になる様に自動露出制御を行うことができる。
【００４４】
（背景クラスタの選択処理例１）
ここで、Ｓ２０４で背景クラスタ選択部５０４が行う背景クラスタ選択処理の一例について図５のフローチャートを用いて説明する。この例において背景クラスタ選択部５０４は、クラスタを構成する動きベクトルの画像中における存在範囲が最大であるクラスタを背景クラスタとして選択する。これは、クラスタを構成する動きベクトルの検出位置の分布範囲が最も広いクラスタを背景クラスタとして選択すると言うこともできる。
【００４５】
Ｓ３０１において背景クラスタ選択部５０４は、クラスタリング部５０３が生成したクラスタのそれぞれについて、クラスタを構成する動きベクトルの、始点座標または終点座標の分散を算出する。背景クラスタ選択部５０４は、例えば座標のｘ座標についての分散と、ｙ座標についての分散とを算出し、両者を加算することにより、座標の分散値を算出する。本実施形態において背景クラスタ選択部５０４は以下の式（４）に示すようにｘ座標の分散とｙ座標の分散を単純に加算してクラスタkの分散varkを算出するが、ｘ座標の分散とｙ座標の分散を画像の縦横比に応じた重みで加算してもよい。
【数５】
2020095673.tif 000007
ここで、nkはクラスタkを構成する動きベクトルの総数であり、
【数６】
2020095673.tif 000008
はそれぞれ、クラスタkを構成する動きベクトルの終点のｘ座標exiおよびｙ座標eyiの平均値である。
【００４６】
Ｓ３０２において背景クラスタ選択部５０４は、Ｓ３０１で算出した分散varkの最大値varKと、対応するクラスタＫを選択し、例えば内部メモリに記憶する。
【００４７】
Ｓ３０３において背景クラスタ選択部５０４は、Ｓ３０２で記憶した最大分散値varKが所定の閾値以上か否か判定し、閾値以上と判定されればＳ３０４へ、判定されなければＳ３０５へ処理を進める。
【００４８】
Ｓ３０４において背景クラスタ選択部５０４は、Ｓ３０２で記憶した、最大分散値varKに対応するクラスタKを背景クラスタとして選択し、背景クラスタ選択処理を終了する。ここでは最大分散値varKに対応するクラスタKを背景クラスタとして選択した。
【００４９】
Ｓ３０５において背景クラスタ選択部５０４は、背景クラスタなしと判定して背景クラスタ選択処理を終了する。
【００５０】
（背景クラスタの選択処理例２）
Ｓ２０４で背景クラスタ選択部５０４が行う背景クラスタ選択処理の別の例について図６のフローチャートを用いて説明する。この例において背景クラスタ選択部５０４は、デジタルカメラ１００の動きに基づいて背景クラスタを選択する。デジタルカメラの動きを考慮することで、安定した背景クラスタの選択が実現できる。
【００５１】
Ｓ４０１において動き入力部５０８は、動き検出部１６２からデジタルカメラ１００の動き情報（ここではヨー軸およびピッチ軸周りの角速度）を取得し、背景クラスタ選択部５０４に供給する。
【００５２】
Ｓ４０２において背景クラスタ選択部５０４は、動き入力部５０８から受け取った動き情報から背景の動き方向を推定する。本実施形態において背景クラスタ選択部５０４は、ヨー軸周りの角速度をyaw、ピッチ軸周りの角速度をpitchとした場合、背景の動き方向を
【数７】
2020095673.tif 000009
で定義されるgに平行な方向と推定する。なお、ここで説明した方法は単なる一例であり、ロール軸周りの角速度を考慮したり、シフト方向の速度を考慮したりして背景の動き方向を推定してもよい。
【００５３】
Ｓ４０３において背景クラスタ選択部５０４は、各クラスタのクラスタ中心ベクトルと、式（５）のgとがなす角度をそれぞれ算出する。ここで、クラスタ中心ベクトルとは、各クラスタを構成する動きベクトルviの代表ベクトルであり、例えば平均ベクトルであってよい。
【００５４】
Ｓ４０４において背景クラスタ選択部５０４は、Ｓ４０３で算出した角度の最小値θKと、対応するクラスタＫを選択し、例えば内部メモリに記憶する。
【００５５】
Ｓ４０５において背景クラスタ選択部５０４は、Ｓ４０４で選択したθKが所定の閾値未満か否かを判定し、閾値未満と判定されればＳ４０６へ、判定されなければＳ４０７へ、処理を進める。
【００５６】
Ｓ４０６において背景クラスタ選択部５０４は、Ｓ４０４で選択したクラスタＫを背景クラスタとして選択し、背景クラスタ選択処理を終了する。
【００５７】
Ｓ４０７において背景クラスタ選択部５０４は、背景クラスタなしと判定して背景クラスタ選択処理を終了する。
【００５８】
（動体検出処理の別例１）
次に、Ｓ２０７における動体検出処理の別の例について説明する。本例において動体選択部５０６は、画像内の視覚的に目立った領域（顕著領域）に限定して動体検出処理を適用することで、より被写体らしい領域を選択することが可能となる。
【００５９】
顕著度算出部５０７は、画像入力部５０１から供給されるフレームtについて、動きベクトル検出部５０２が検出した動きベクトルのそれぞれの終点座標eiにおける顕著度を算出する。顕著度算出部５０７は、例えばLaurent Itti, Christof Koch, and Ernst Niebur, ”A Model of Saliency-Based Visual Attention for Rapid Scene Analysis”, IEEE Transactions on Pattern Analysis and Machine Intelligence archive Volume 20 Issue 11, November 1998 Pages 1254-1259に記載の顕著度(saliency)など、公知の任意の顕著度算出方法を用いて顕著度を算出することができる。顕著度算出部５０７は、算出した顕著度を、動きベクトルに対応付けてＲＡＭ１５４に格納する。
【００６０】
Ｓ２０７において動体選択部５０６は、背景ベクトルbとのユークリッド距離を算出する動きベクトルを、所定の閾値以上の顕著度を持つ動きベクトルに限定する。これにより、動体検出を顕著領域に限定して適用することができる。
【００６１】
（動体検出処理の別例２）
次に、Ｓ２０７における動体検出処理のさらに別の例について説明する。本例において動体選択部５０６は、デジタルカメラ１００に近い領域から優先的に動体検出を適用する。これにより、動体が複数存在する場合、手前にいる動体を優先して主被写体として検出することができる。
【００６２】
距離マップ入力部５０９は、距離マップ生成部１６１がフレームtに対して生成した距離マップを取得し、動体選択部５０６に供給する。
【００６３】
Ｓ２０７において動体選択部５０６は、背景ベクトルbとのユークリッド距離を算出する動きベクトルを、その終点座標eiに対応する被写体距離が閾値未満である動きベクトルに限定する。これにより、動体検出をデジタルカメラ１００に近い領域に限定して適用することができる。
【００６４】
あるいは、動体選択部５０６は、背景ベクトルbとのユークリッド距離が閾値以上である動きベクトルの中から、終点座標eiに対応する被写体距離が最小であるeiを動体検出位置としてもよい。
【００６５】
後者の例を図７を用いて説明する。図７（ａ）および（ｂ）は、動体として人物と犬が含まれるフレーム画像を模式的に示している。いずれのフレーム画像についても、人物と犬に関する動きベクトルは背景ベクトルbとのユークリッド距離が閾値以上であり、動体の動きベクトルであると推測できるものとする。ユークリッド距離が閾値以上である動きベクトルの中から、終点座標eiに対応する被写体距離が最小であるeiを動体検出位置とする場合、図７（ａ）では人物の動きベクトル、図７（ｂ）では犬の動きベクトルの終点が動体検出位置として選択される。
【００６６】
（背景ベクトル算出の別例）
上述の構成では、動きベクトルをクラスタリングして背景クラスタを選択し、背景クラスタを構成する動きベクトルから背景ベクトルbを算出した。しかし、デジタルカメラ１００の動きと撮影レンズ１０１の焦点距離（画角）を用いて、クラスタリングを行わずに背景ベクトルを算出してもよい。これにより、動きベクトルのクラスタリングに係る演算負荷を除去することができる。また、背景領域に色変化が少なく動きベクトルを検出することが難しいシーンでこの手法が有用である。
【００６７】
背景ベクトル算出部５０５は、フレームtを撮影した際の撮影レンズ１０１（撮影光学系）の焦点距離ｆ[mm]をズーム制御部１１３を通じて取得する。また、動き入力部５０８は、動き検出部１６２からデジタルカメラ１００の動き情報（ここではヨー軸およびピッチ軸周りの角速度）を取得し、背景ベクトル算出部５０５に供給する。
【００６８】
背景ベクトル算出部５０５は以下の式（６）に従って背景ベクトルbを算出することができる。
【数８】
2020095673.tif 000010
ここで、Ａは撮像素子１４１上の実距離[mm]を画像座標系の距離[pixel]に変換するための係数であり、デジタルカメラ１００の構造と画像サイズで決定される撮像素子の情報であり、例えばＲＯＭ１５５に予め定め記憶されている。Ｔはフレームt-1とフレームtの撮影間隔[sec]である。
【００６９】
背景ベクトル算出部５０５は、算出した背景ベクトルbを動体選択部５０６に供給する。動体選択部５０６の処理は上述した通りでよい。
【００７０】
以上説明したように本実施形態によれば、個々の動きベクトルと背景ベクトルとのユークリッド距離に基づいて動体の動きベクトルを選択することにより、背景と同じ方向に移動する移動体であっても検出することができる。
【００７１】
（第２実施形態）
次に、本発明の第２実施形態について説明する。本実施形態は動き情報を用いて主被写体を判別する際に、ユーザが意図している主被写体を確率よく判別する画像処理装置およびその制御方法に関する。以下では、第１実施形態と類似又は同様の構成や動作に関しては同じ参照数字を用い、重複する説明を省略する。
【００７２】
図８は、本実施形態における動体検出処理を説明するために、画像処理部１５２を動体検出処理に特化した機能ブロックによって表現した模式図である。図８に示す機能ブロックのそれぞれは、別個のハードウェア回路として実現されてもよいし、画像処理部１５２が有するプログラマブルプロセッサがメモリにプログラムを読み込んで実行することによって実現されてもよい。
【００７３】
画像入力部５０１は、撮影時刻が異なる２フレームの入力画像をＲＡＭ１５４から取得する。現フレームはセンサ制御部１４３から取得し、前フレーム（過去フレーム）はＲＡＭ１５４から取得してもよい。
【００７４】
動きベクトル検出部５０２は、画像入力部５０１が取得した入力画像間で複数の動きベクトルを検出する。動きベクトルの検出は、任意の公知の手法を用いて実現することができるが、本実施形態では一例としてテンプレートマッチングを用いて動きベクトルを検出するものとする。
【００７５】
クラスタリング部５０３は、動きベクトル検出部５０２で検出された複数の動きベクトルを、少なくとも以下の３つのクラスタに分類する。
・背景クラスタ：画像全体の動きベクトル（例えば撮像装置１００の動きに基づくベクトル）
・主被写体クラスタ：前フレーム以前の主被写体に関する動きベクトル
・主被写体候補クラスタ：背景クラスタに属する動きベクトルとの距離が大きいベクトル（実空間で動きの大きいベクトル）
【００７６】
これら少なくとも３つのクラスタに分類することで、動きに基づく主被写体判別処理において、現在の主被写体の動き情報を考慮した判別を実現できる。そのため、ユーザの意図する主被写体を正しく判別する確率を高めることができる。例えば、現在の主被写体が実空間で静止していれば、動きのある別の被写体を新たな主被写体として判別することが可能である。あるいは、現在の主被写体が実空間で動いていれば、別の動体が存在していても、主被写体の判別結果を変更しないようにすることも可能である。
【００７７】
主被写体判別部８０２では、クラスタリング部５０３によるクラスタリングの結果に基づいて、現フレーム内の主被写体領域を判別する。主被写体判別部８０２で判別された主被写体領域の情報は、例えば自動露出制御や自動焦点検出といった各種の処理に用いることができる。また、被写体追尾部８０１は、主被写体判別部８０２で判別された主被写体領域をテンプレートとしたマッチング処理により、次フレーム以降の入力画像中の主被写体領域を探索する被写体追尾処理を実行する。被写体追尾部８０１による被写体追尾結果（画像内の主被写体領域に関する情報）は、クラスタリング部５０３にも供給される。
【００７８】
なお、動き情報に基づく主被写体判別処理には、画像入力部５０１が取得する入力画像以外に、撮像装置１００で取得できる他の情報を用いてもよい。例えば、動き検出部１６２が検出した動きの情報を動き入力部５０８を通じてクラスタリング部５０３に入力し、背景クラスタの推定に用いることができる。また、距離マップ生成部１６１で得られる距離マップを距離マップ入力部５０９を通じて主被写体判別部８０２に入力し、主被写体判別処理に利用することができる。
【００７９】
（主被写体判別処理）
図９は、画像処理部１５２が実施する主被写体判別処理のフローチャートである。
Ｓ９０１において画像入力部５０１は、撮影時刻が異なる２フレームの入力画像を取得する。
（動きベクトル検出）
Ｓ９０２において、動きベクトル検出部５０２は、画像入力部５０１が取得した２フレームの入力画像間で複数の動きベクトルを検出する。動きベクトル検出部５０２は、２フレームの画像のうち、先に撮影された１フレームの画像（フレームt-1とする）を水平および垂直方向にそれぞれ複数分割して複数の部分画像を生成する。そして、動きベクトル検出部５０２は、各部分画像をテンプレート、後に撮影された１フレームの画像（フレームtとする）を参照画像としたテンプレートマッチングを実施し、部分画像と類似度が最も高い領域を参照画像内で探索する。そして、動きベクトル検出部５０２は、部分画像の中心点の座標を始点とし、探索により見つかった、部分画像と類似度が最も高い領域の中心点の座標を終点とするベクトルを、部分画像についての動きベクトルとする。このようにして、動きベクトル検出部５０２は、第１実施形態と同様にしてフレームt-1の部分画像ごとに動きベクトルを検出する。そして、動きベクトル検出部５０２は、検出した動きベクトルviと、動きベクトルviの終点eiとを関連づけてＲＡＭ１５４に保存する。
【００８０】
（クラスタリング）
Ｓ９０３からＳ９０６までは、クラスタリング部５０３よる、動きベクトルのクラスタリング処理に関する。
Ｓ９０３においてクラスタリング部５０３は、Ｓ９０２において検出された動きベクトル群viをクラスタリングする。クラスタリングは第１実施形態と同様にK-Means法や、Affinity Propagationなど、公知の任意のクラスタリング手法を用いることができる。
【００８１】
現フレームの画像と、現フレームと前フレームとの間で検出された動きベクトルとを模式的に図１０（ａ）に示す。そして、この動きベクトルを、クラスタ数を自動決定可能なクラスタリング手法であるAffinity Propagationを用いたクラスタリング結果の例を図１０（ｃ）に示す。K-Means法のようなクラスタ数を自動決定出来ないクラスタリング手法を用いる場合には何らかの方法でクラスタ数を決定してからクラスタリングを実行する。
【００８２】
（背景クラスタの選択）
Ｓ９０４において、クラスタリング部５０３は、Ｓ９０３におけるクラスタリングによって得られたクラスタ（図１０（ｃ））のうち、背景領域のベクトルから成る背景クラスタを選択する（図１０（ｄ））。背景クラスタの選択は、第１実施形態で図５や図６を用いて説明した方法で行うことができる。
【００８３】
（主被写体クラスタの選択）
図９に戻り、Ｓ９０５においてクラスタリング部５０３は、Ｓ９０３で得られたクラスタのうち、主被写体領域のベクトルから構成される主被写体クラスタを選択する。主被写体領域は前フレーム以前で、主被写体判別部８０２によって判別されている。そして、被写体追尾部８０１は、例えば直近に判別された主被写体領域をテンプレートとしたテンプレートマッチングにより、画像入力部５０１が取得する現フレームの画像内で主被写体領域を探索する。
【００８４】
被写体追尾部８０１は具体的には現フレームの画像の部分領域と主被写体領域（テンプレート）との類似度を、部分領域の位置を変えながら順次算出することにより、テンプレートと最も類似度が高い領域を現フレームの画像内で探索する。類似度は例えば相関量であってよい。そして、被写体追尾部８０１は、最も類似度が高い部分領域の類似度が予め定められた閾値を超える場合に、その部分領域がテンプレートと同じ画像（すなわち、現フレームの画像における主被写体領域）であると判定する。
【００８５】
図１０（ｂ）に、被写体追尾部８０１によって主被写体領域と判定された領域５０１を示す。クラスタリング部５０３は、被写体追尾部８０１から主被写体領域の情報を取得し、主被写体領域内に終点eiが含まれる動きベクトルを主被写体クラスタに割り当てる（図１０（ｄ））。なお、被写体追尾部８０１による被写体追尾結果が得られない場合、クラスタリング部５０３は例えばユーザが指定した画像領域を主被写体領域として用いてもよい。
【００８６】
（主被写体候補クラスタの選択）
Ｓ９０６において、クラスタリング部５０３は、Ｓ９０３で得られたクラスタのうち、新たな主被写体領域の候補を示す動きベクトルから構成される主被写体候補クラスタを選択する。まずクラスタリング部５０３は、Ｓ９０５で選択した背景クラスタに属する動きベクトルから、背景の動きを表す背景ベクトルbを算出する。ここでは、第１実施形態の背景クラスタ選択部５０４がＳ２０６で行う処理と同様に、背景クラスタに属する動きベクトルの平均ベクトルを背景ベクトルbとして算出するものとする（図１０（ｄ））が、これに限定されない。
【００８７】
そして、クラスタリング部５０３は、動きベクトル検出部５０２が検出した全ての動きベクトルについて、背景ベクトルbとのユークリッド距離を算出する。そして、クラスタリング部５０３は、算出したユークリッド距離が最大となる動きベクトルを選択する。この処理は、第１実施形態の動体選択部５０６がＳ２０７で行う処理と同様である。具体的には、クラスタリング部５０３は式（２）および（３）に従って動きベクトルのインデックスｍを決定する。なお、ユークリッド距離が最大となる動きベクトルが複数検出されている場合、インデックスｍも複数決定される。なお、distm（すなわち、背景ベクトルbと動きベクトルviとの最大のユークリッド距離）が所定の閾値未満である場合、クラスタリング部５０３は主被写体候補クラスタに割り当てる動きベクトルが存在しないと判定する。一方、distmが閾値以上であれば、クラスタリング部５０３は、動きベクトルvmを主被写体候補クラスタに割り当てる（図１０（ｄ））。
【００８８】
（主被写体判別）
Ｓ９０７において主被写体判別部８０２は、背景、主被写体、および主被写体候補の３つのクラスタに属する動きベクトルに基づいて、主被写体を判別する。図１１は、Ｓ９０７における主被写体判別処理の詳細に関するフローチャートである。
【００８９】
Ｓ１１０１で主被写体判別部８０２は、主被写体クラスタに属する動きベクトルの代表ベクトル（例えば平均ベクトル）と、背景クラスタに属する動きベクトルの代表ベクトル（例えば背景ベクトルb）とのユークリッド距離を算出する。そして、主被写体判別部８０２は、算出したユークリッド距離が所定の閾値未満であるか否かを判定し、閾値未満（距離が小さい）と判定されればＳ１１０２へ、閾値未満と判定されなければＳ１１０４へ処理を進める。ここで、距離が閾値未満であることは、実空間での主被写体の動きが小さい状態を示す。なお、主被写体判別部８０２は、主被写体クラスタに属する動きベクトルが存在しない場合にはＳ１１０２へ、背景クラスタに属する動きベクトルが存在しない場合にはＳ１１０４へ、処理を進める。
【００９０】
Ｓ１１０２で主被写体判別部８０２は、主被写体候補クラスタに所定の条件を満たす動きベクトルが存在するか否か判定し、存在すると判定されればＳ１１０３へ、判定されなければＳ１１０４へ処理を進める。なお、本実施形態では主被写体候補クラスタを構成する動きベクトルは１種類であるため、主被写体判別部８０２は、主被写体候補クラスタに属する動きベクトルが所定の条件を満たすか否かを判定してもよい。
【００９１】
Ｓ１１０３で主被写体判別部８０２は、主被写体候補クラスタに属する動きベクトル（ここでは動きベクトルvm）を検出した現フレーム画像内の部分領域を、新たな主被写体領域と判別する。すなわち、主被写体判別部８０２は、主被写体を変更することを決定する。なお、主被写体候補クラスタに属する動きベクトルを検出した現フレーム画像内の部分領域が複数存在する場合、主被写体判別部８０２は、他の１つ以上の部分領域と隣接する部分領域群を主被写体領域と判別してもよい。
【００９２】
ここで、Ｓ１１０２における所定の条件は、ユーザの意図する主被写体が、現在の主被写体よりも、主被写体候補クラスタに属する動きベクトルに対応する別の被写体である可能性が高いか否かを判定するための条件である。そして、所定の条件が満たされると判定される場合、主被写体判別部８０２は、ユーザの意図する主被写体が主被写体候補クラスタに属する動きベクトルに対応する別の被写体であると推定し、主被写体を変更する。そして、主被写体判別部８０２は、新たな主被写体領域の情報を被写体追尾部８０１に通知する。通知に応じて被写体追尾部８０１は、追尾処理に用いるテンプレートを、新たな主被写体領域に基づくテンプレートに更新する。
【００９３】
例えば、被写体を画面の中央に配置するためにデジタルカメラ１００をフレーミングしている場合、その被写体はユーザが意図した主被写体である可能性が高い。主被写体候補クラスタに属する動きベクトルが画像中心に近づく方向の動きベクトルであることを所定の条件とすることで、別の被写体に対してこのようなカメラ操作が行われている場合に、主被写体領域を変更することができる。その結果、ユーザが意図した主被写体を確率よく判別することができる。
【００９４】
また、デジタルカメラ１００に近づいている被写体は主被写体である可能性が高い。そのため、主被写体候補クラスタに属する動きベクトルが、デジタルカメラ１００に近づく方向の動きベクトルであることを所定の条件とすることで、別の被写体がデジタルカメラ１００に近づいている場合に、主被写体領域を変更することができる。この場合も、ユーザが意図した主被写体を確率よく判別することができる。
【００９５】
なお、動きベクトルがカメラに近づく方向の動きベクトルであるか否かは、距離マップ入力部５０９が取得する距離マップを用いて判定することができる。デジタルカメラ１００に近づく方向の動きベクトルは、別の被写体の距離が小さくなる方向の動きベクトルである。主被写体候補クラスタに属する動きベクトルの始点より終点の距離が小さい動きベクトルは、デジタルカメラ１００に近づく方向の動きベクトルであると判定できる。
【００９６】
なお、ここで説明した所定の条件は単なる例示であり、主被写体候補クラスタに属する動きベクトルに対応する被写体が、ユーザの意図する主被写体である可能性が高いと判定するための他の任意の条件を定めることができる。また、所定の条件は複数存在してもよい。この場合、複数の条件の１つでも満たすと判定されれば主被写体領域を変更するようにしたり、複数の条件を全て満たすと判定されれば主被写体領域を変更するようにしたりすることができる。
【００９７】
Ｓ１１０４で主被写体判別部８０２は、主被写体領域を維持する（変更しない）ことを決定する。例えば、主被写体クラスタに属する動きベクトルの代表ベクトルと、背景クラスタに属する動きベクトルの代表ベクトルとのユークリッド距離が閾値以上の場合には、主被写体が有意に移動していると考えられる。この場合には現在の主被写体を変更しない。また、移動している被写体が検出されない場合には、上述したdistmが閾値未満となり、主被写体候補クラスタに割り当てられる動きベクトルが存在しないため、現在の主被写体領域が維持される。
【００９８】
以上説明したように、本実施形態では、フレーム間で検出した動きベクトルに基づいて主被写体を判別する際、現在の主被写体と別の被写体の動きベクトルを考慮するようにした。そして、別の被写体の動きベクトルから、例えばユーザが意図する主被写体が、現在の主被写体ではなく別の被写体であると想定される場合には、主被写体を変更するようにした。そのため、ユーザの意図にあった主被写体を判別できる可能性を高めることができる。
【００９９】
なお、本実施形態では、主被写体候補クラスタを、背景ベクトルbとのユークリッド距離が最大の動きベクトルのみから構成されるクラスタとした。しかし、他の方法で主被写体候補クラスタを規定してもよい。例えば、主被写体候補クラスタを、背景ベクトルbとのユークリッド距離が最大の動きベクトルを含む、背景ベクトルbとのユークリッド距離が最大の動きベクトルと大きさおよび方向の差が閾値未満である動きベクトルから構成されるクラスタとしてもよい。
【０１００】
また、Ｓ１１０１では、主被写体クラスタに属する動きベクトルの代表ベクトルと、背景クラスタに属する動きベクトルの代表ベクトルとのユークリッド距離が閾値未満の場合には処理をＳ１１０２に進めていた。しかし、ユークリッド距離が閾値未満の場合でも、距離マップに基づいて主被写体が近付いていると判定される場合には処理をＳ１１０２に進めずにＳ１１０４に進めてもよい。
【０１０１】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１０２】
また、上述の実施形態は本発明の理解を助けることを目的とした具体例に過ぎず、いかなる意味においても本発明を上述の実施形態に限定する意図はない。特許請求の範囲に規定される範囲に含まれる全ての実施形態は本発明に包含される。
【符号の説明】
【０１０３】
１００…撮像装置、１０１…レンズユニット、１４１…撮像素子、１４２…撮像信号処理部、１４３…撮像制御部、１５１…主制御部、１５２…画像処理部、１５４…ＲＡＭ、１５５…ＲＯＭ、１６１…距離マップ生成部、１６２…動き検出部
【図１】
2020095673.tif 000011
【図２】
2020095673.tif 000012
【図３】
2020095673.tif 000013
【図４】
2020095673.tif 000014
【図５】
2020095673.tif 000015
【図６】
2020095673.tif 000016
【図７】
2020095673.tif 000017
【図８】
2020095673.tif 000018
【図９】
2020095673.tif 000019
【図１０】
2020095673.tif 000020
【図１１】
2020095673.tif 000021