(57)【要約】【課題】動体と非動体が混在したデジタル画像においても、動体以外に含まれる評価値の高い特徴点をより多く選択することができる。【解決手段】ブロック分割部１０は、デジタル画像を複数のブロックに分割する。特徴点検出部２０は、ブロック分割部１０が分割したブロック毎に、デジタル画像の特徴点の検出を行う。制御部３０は、ブロック分割部１０と特徴点検出部２０とを制御する。【選択図】図１
2014099087.tif 000002
【特許請求の範囲】
【請求項１】
デジタル画像を複数のブロックに分割するブロック分割部と、
前記ブロック分割部が分割した前記ブロック毎に、前記デジタル画像の特徴点の検出を行う特徴点検出部と、
前記ブロック分割部と前記特徴点検出部とを制御する制御部と、
を備えることを特徴とする特徴点検出装置。
【請求項２】
前記制御部は、前記特徴点検出部が検出する特徴点の上限数を前記ブロック毎に変える
ことを特徴とする請求項１に記載の特徴点検出装置。
【請求項３】
前記制御部は、前記ブロック分割部が分割する前記ブロックの数もしくは前記ブロックのサイズを変化させる
ことを特徴とする請求項１に記載の特徴点検出装置。
【請求項４】
前記デジタル画像に動体が含まれているか否かを判定する動体判別部
を備え、
前記制御部は、前記動体判別部の判別結果に基づいて前記特徴点検出部が検出する特徴点の上限数を前記ブロック毎に変える、あるいは、前記動体判別部の判別結果に基づいて前記ブロック分割部が分割する前記ブロックの数もしくは前記ブロックのサイズを変化させる
ことを特徴とする請求項１に記載の特徴点検出装置。
【請求項５】
前記動体判別部は、前記デジタル画像を撮影する際に用いられた撮影モード情報に基づいて、当該デジタル画像に動体が含まれているか否かを判定する
ことを特徴とする請求項４に記載の特徴点検出装置。
【請求項６】
前記動体判別部は、前記デジタル画像を撮影する際に用いられたレンズの焦点距離及び前記デジタル画像に含まれる被写体までの距離情報に基づいて、前記動体の大きさを判別し、
前記制御部は、前記動体判別部が判別した前記動体の大きさが大きい場合には、中央付近の前記ブロックの前記特徴点の上限数を低くする、あるいは、分割する前記ブロックの数を増やす
ことを特徴とする請求項４に記載の特徴点検出装置。
【請求項７】
前記動体判別部は、前記デジタル画像を撮像したカメラの動き情報および、前記デジタル画像のフレーム間差分情報に基づいて、前記デジタル画像に前記動体が含まれているか否かを判定し、さらに、当該動体の位置を判別し、
前記制御部は、前記動体判別部が判別した前記動体位置の前記ブロックの前記特徴点の上限数を低くする、あるいは、前記動体判別部が判別した前記動体位置の前記ブロックのサイズを大きくする
ことを特徴とする請求項４に記載の特徴点検出装置。
【請求項８】
デジタル画像を複数のブロックに分割するブロック分割ステップと、
前記ブロック分割ステップで分割した前記ブロック毎に、前記デジタル画像の特徴点の検出を行う特徴点検出ステップと、
前記ブロック分割ステップと前記特徴点検出ステップとを制御する制御ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特徴点検出装置およびプログラムに関する。
【背景技術】
【０００２】
画像処理の前処理として、対象画像から特徴点を検出する処理が広く用いられている。特徴点検出後は、ＳＩＦＴやＳＵＲＦなどの特徴量算出手法を用いて特徴量を計算し、特徴点同士のマッチングを行う。例えば、動画の手ぶれ補正や、ステレオ写真からの距離測定や、パノラマ写真の合成や、パターンマッチングなどの前処理として、特徴点の検出処理が用いられている。
【０００３】
画像内から特徴点を検出する方法として、例えば、入力画像上の各座標においてコーナーの強さを表す評価値を算出し、評価値の高い上位複数点を特徴点と決定する方法が知られている（例えば、特許文献１参照）。また、例えば、画像を複数のブロックに分割して、一ブロックにつき一つの特徴点のみを求めることで画像全体から満遍なく特徴点を求める方法が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１６３６８２号公報
【特許文献２】特開２００７−１５１００８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のように、画像全体から評価値の上位複数点を求めると、画像の位置に関わらず、評価値が高い特徴点のみが求まるため特徴点に偏りが生じるという問題がある。また、画像内に動体が写っている場合は、その動体の特徴点も検出することになり、動画手振れ補正に適した特徴点の検出ができないという問題がある。また、特許文献２に記載の方法では、画像全体から満遍なく特徴点を求めているが、動体であるか否かの区別はしておらず、またブロック内の固定位置の特徴点を１点だけ求めているため、評価値の高い特徴点が求められない可能性が高いという問題がある。
【０００６】
本発明は、上記事情に鑑みてなされたものであり、動体と非動体が混在したデジタル画像においても、動体以外に含まれる評価値の高い特徴点をより多く選択することができる特徴点検出装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、デジタル画像を複数のブロックに分割するブロック分割部と、前記ブロック分割部が分割した前記ブロック毎に、前記デジタル画像の特徴点の検出を行う特徴点検出部と、前記ブロック分割部と前記特徴点検出部とを制御する制御部と、を備えることを特徴とする特徴点検出装置である。
【０００８】
また、本発明の特徴点検出装置において、前記制御部は、前記特徴点検出部が検出する特徴点の上限数を前記ブロック毎に変えることを特徴とする。
【０００９】
また、本発明の特徴点検出装置において、前記制御部は、前記ブロック分割部が分割する前記ブロックの数もしくは前記ブロックのサイズを変化させることを特徴とする。
【００１０】
また、本発明は、前記デジタル画像に動体が含まれているか否かを判定する動体判別部を備え、前記制御部は、前記動体判別部の判別結果に基づいて前記特徴点検出部が検出する特徴点の上限数を前記ブロック毎に変える、あるいは、前記動体判別部の判別結果に基づいて前記ブロック分割部が分割する前記ブロックの数もしくは前記ブロックのサイズを変化させることを特徴とする特徴点検出装置である。
【００１１】
また、本発明の特徴点検出装置において、前記動体判別部は、前記デジタル画像を撮影する際に用いられた撮影モード情報に基づいて、当該デジタル画像に動体が含まれているか否かを判定することを特徴とする。
【００１２】
また、本発明の特徴点検出装置において、前記動体判別部は、前記デジタル画像を撮影する際に用いられたレンズの焦点距離及び前記デジタル画像に含まれる被写体までの距離情報に基づいて、前記動体の大きさを判別し、前記制御部は、前記動体判別部が判別した前記動体の大きさが大きい場合には、中央付近の前記ブロックの前記特徴点の上限数を低くする、あるいは、分割する前記ブロックの数を増やすことを特徴とする。
【００１３】
また、本発明の特徴点検出装置において、前記動体判別部は、前記デジタル画像を撮像したカメラの動き情報および、前記デジタル画像のフレーム間差分情報に基づいて、前記デジタル画像に前記動体が含まれているか否かを判定し、さらに、当該動体の位置を判別し、前記制御部は、前記動体判別部が判別した前記動体位置の前記ブロックの前記特徴点の上限数を低くする、あるいは、前記動体判別部が判別した前記動体位置の前記ブロックのサイズを大きくすることを特徴とする。
【００１４】
また、本発明は、デジタル画像を複数のブロックに分割するブロック分割ステップと、前記ブロック分割ステップで分割した前記ブロック毎に、前記デジタル画像の特徴点の検出を行う特徴点検出ステップと、前記ブロック分割ステップと前記特徴点検出ステップとを制御する制御ステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１５】
本発明によれば、ブロック分割部は、デジタル画像を複数のブロックに分割する。また、特徴点検出部は、ブロック分割部が分割したブロック毎に、デジタル画像の特徴点の検出を行う。また、制御部は、ブロック分割部と特徴点検出部とを制御する。これにより、動体と非動体が混在したデジタル画像においても、動体以外に含まれる評価値の高い特徴点をより多く選択することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態における特徴点検出装置の構成を示したブロック図である。
【図２】本実施形態における特徴点検出部の構成を示したブロック図である。
【図３】本実施形態における制御部の構成を示したブロック図である。
【図４】本実施形態における特徴点検出装置の動作手順を示したフローチャートである。
【図５】本実施形態における特徴点検出部の動作手順を示したフローチャートである。
【図６】本実施形態において、動体判別部が判別した結果と、ブロックサイズ決定部が決定するブロックサイズおよび特徴点上限数決定部が決定するブロックごとの特徴点上限数との関係を示した概略図である。
【図７】本実施形態において、特徴点の検出対象である、動体を含んだ入力画像の例を示した概略図である。
【図８】入力画像全体からＨａｒｒｉｓ法を用いて特徴点を検出した検出結果を示した概略図である。
【図９】本実施形態におけるブロック分割部が、入力画像を複数のブロックに分割した例を示した概略図である。
【図１０】本実施形態における特徴点検出部が、全ブロックで特徴点の上限数を同じ数にした場合の特徴点の検出結果を示した概略図である。
【図１１】本実施形態において、特徴点検出部が、ブロック毎に特徴点の上限数を変更した場合の特徴点の検出結果を示した概略図である。
【図１２】特徴点の検出対象である、動体を含んでいない入力画像をブロック分割した例を示した概略図である。
【図１３】全ブロックで特徴点の上限数を同じ数にした場合において、最終的に出力される特徴点を表した概略図である。
【図１４】本実施形態におけるブロックサイズ決定部がブロックサイズを大きくした場合に、特徴点検出部が検出した特徴点を示した概略図である。
【図１５】本実施形態におけるブロック分割部が、入力画像を、動体が写っている部分を１つのブロックとし、その他の部分を４つのブロックに分割した例を示した概略図である。
【図１６】本実施形態において、特徴点検出部が、動体が写っているブロックの特徴点の上限数を０個とした場合の特徴点の検出結果を示した概略図である。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態について図面を参照して説明する。図１は、本実施形態における特徴点検出装置の構成を示したブロック図である。図示する例では、特徴点検出装置１００は、ブロック分割部１０と、特徴点検出部２０と、制御部３０とを備えている。ブロック分割部１０は、入力画像（フレーム画像、デジタル画像）を複数のブロックに分割する。また、ブロック分割部１０は、制御部３０から入力されるブロック制御信号に基づいて、分割するブロックの数（分割ブロック数）もしくは分割するブロックのサイズ（分割ブロックサイズ）を変更する。特徴点検出部２０は、ブロック分割部１０が分割したブロック毎に特徴点を検出し、その特徴点座標を選択的に出力する。なお、特徴点検出部２０は、制御部３０から入力される特徴点制御信号に基づいて、出力する特徴点の数を変更する。
【００１８】
制御部３０は、特徴点検出装置１００が備える各部の制御を行う。例えば、制御部３０は、分割ブロック数もしくは分割ブロックサイズを決定する。また、制御部３０は、決定した分割ブロック数もしくは分割ブロックサイズを示すブロック制御信号をブロック分割部１０に対して出力する。また、制御部３０は、ブロック分割部１０が分割したブロック毎に、特徴点の上限数を決定する。また、制御部３０は、決定した特徴点の上限数を示す特徴点制御信号を特徴点検出部２０に対して出力する。
【００１９】
次に、特徴点検出部２０の詳細について説明する。図２は、本実施形態における特徴点検出部２０の構成を示したブロック図である。図示する例では、特徴点検出部２０は、候補点検出部２１と、特徴点決定部２２とを備えている。候補点検出部２１は、ブロック分割部１０が分割した入力画像のブロック毎に注目し、注目ブロックの全画素の評価値を算出する。なお。評価値は、注目画素における勾配の強さを表す値である。例えばＨａｒｒｉｓ法や、ＫＬＴ法などのコーナー検出手法に基づいて評価値を算出する。候補点検出部２１は、算出した評価値がある閾値以上であれば、注目画素を候補点とし、候補点を示す注目画素の座標と評価値とを組にして出力する。なお、閾値は予め定められていてもよく、任意に設定できるようにしてもよい。
【００２０】
特徴点決定部２２は、候補点検出部２１から入力される候補点を示す注目画素の座標と評価値との組の中から、評価値の大きい順に特徴点上限数分だけ選択する。また、特徴点決定部２２は、選択した「候補点を示す注目画素の座標と評価値との組」を、特徴点座標として出力する。すなわち、特徴点決定部２２は、候補点検出部２１が検出した候補点の中から特徴点を決定する。
【００２１】
次に、制御部３０の詳細について説明する。図３は、本実施形態における制御部３０の構成を示したブロック図である。図示する例では、制御部３０は、動体判別部３１と、ブロックサイズ決定部３２と、特徴点上限数決定部３３とを備えている。動体判別部３１は、外部から設定されるパラメータを基に入力画像内の動体の有無と、入力画像内における動体の位置を判別する。ブロックサイズ決定部３２は、動体判別部３１が判別した結果に基づいて、分割ブロック数もしくは分割ブロックサイズを決定する。特徴点上限数決定部３３は、動体判別部３１が判別した結果に基づいて、各ブロックにおける特徴点の上限数を決定する。
【００２２】
次に、特徴点検出装置１００の動作手順について説明する。図４は、本実施形態における特徴点検出装置１００の動作手順を示したフローチャートである。本実施形態では、動画像を構成するフレーム画像が入力画像として特徴点検出装置１００に入力され、特徴点検出装置１００は、入力された入力画像の特徴点を検出する。なお、特徴点検出装置１００は、撮像部（図示せず）を備え、撮像部が撮像した動画像を構成するフレーム画像の特徴点を検出するようにしてもよい。
【００２３】
（ステップＳ１）制御部３０の動体判別部３１は、入力画像内の動体有無の判別と動体のフレーム内位置を判別する。その後、ステップＳ２の処理に進む。
（ステップＳ２）制御部３０のブロックサイズ決定部３２は、ステップＳ１の処理で動体判別部３１が判別した結果に基づいて、入力画像をブロック分割するためのブロックサイズもしくはそれに基づくブロック分割数を決定し、ブロック分割部１０に対してブロック制御信号を出力する。その後、ステップＳ３の処理に進む。
（ステップＳ３）制御部３０の特徴点上限数決定部３３は、ステップＳ１の処理で動体判別部３１が判別した結果に基づいて、ブロックサイズ決定部３２が決定した各ブロックにおける特徴点上限数を決定し、特徴点検出部２０に対して特徴点制御信号を出力する。その後、ステップＳ４の処理に進む。
【００２４】
（ステップＳ４）ブロック分割部１０は、ステップＳ２の処理で入力されたブロック制御信号に基づいて、入力画像を複数のブロックに分割する。その後、ステップＳ５の処理に進む。
（ステップＳ５）特徴点検出部２０の候補点検出部２１は、ステップＳ４の処理でブロック分割部１０が分割した入力画像のブロック毎に候補点を検出する。また、特徴点検出部２０の特徴点決定部２２は、ブロック分割部１０が分割した入力画像のブロック毎に、候補点検出部２１が検出した候補点のうち、ステップＳ３の処理で入力された特徴点制御信号に基づいて、特徴点を決定する。その後、処理を終了する。
【００２５】
次に、特徴点検出部２０の詳細な動作手順について説明する。図５は、本実施形態における特徴点検出部２０の動作手順を示したフローチャートである。なお、図５に示したフローチャートは、図４のステップＳ５の処理を詳細に示したフローチャートである。
【００２６】
（ステップＳ５０１）制御部３０は、入力画像のブロックを示すブロック番号ｎを０とする。その後、ステップＳ５０２の処理に進む。なお、本実施形態では、ブロック分割部１０は入力画像をＮ個のブロックに分割した場合、各ブロックに０から（Ｎ−１）（Ｎは整数）までブロック番号を設定する。なお、ブロック番号の設定順はどのような順でもよい。例えば、入力画像のブロックのうち、左上に位置するブロックから右下に位置するブロックまで順にブロック番号を設定する。
【００２７】
（ステップＳ５０２〜ステップＳ５０６）特徴点検出部２０は、ブロックｎ内をラスタスキャンし、ブロックｎに含まれる画素を検出する。その後、ブロックｎに含まれている全ての画素に対してステップＳ５０３〜ステップＳ５０５の処理を実行し、その後、ステップＳ５０７の処理に進む。
【００２８】
以下、ステップＳ５０３〜ステップＳ５０５の処理について説明する。
（ステップＳ５０３）候補点検出部２１は、ブロックｎに含まれる画素のうち、ステップＳ５０３〜ステップＳ５０５の処理を行っていない１つの画素を注目画素として設定する。その後、ステップＳ５０４の処理に進む。なお、注目画素として設定する順はどのような順でもよい。例えば、ブロックｎに含まれる画素のうち、左上の座標に位置する画素から右下の座標に位置する画素まで順に注目画素として設定する。
【００２９】
（ステップＳ５０４）候補点検出部２１は、ステップＳ５０３の処理で注目画素として設定した画素の評価値を、Ｈａｒｒｉｓ法を用いて算出する。その後、ステップＳ５０５の処理に進む。
（ステップＳ５０５）候補点検出部２１は、ステップＳ５０４の処理で算出した評価値が予め定められた閾値以上であれば、注目画素を候補点と決定し、候補点と決定した画素の評価値と座標を保持する。
【００３０】
（ステップＳ５０７）ブロックｎに含まれている全ての画素に対してステップＳ５０３〜ステップＳ５０５の処理を実行した後、特徴点決定部２２は、制御部３０から入力された特徴点制御信号に基づいて、ステップＳ５０２〜ステップＳ５０６の処理で候補点検出部２１が検出した候補点の中から、特徴点の上限数となるまで、評価値の大きい候補点から順に特徴点と決定する。また、特徴点決定部２２は、決定した特徴点の座標を出力する。その後、ステップＳ５０８の処理に進む。
【００３１】
（ステップＳ５０８）制御部３０は、ｎ＝Ｎ（Ｎは入力画像内のブロック数）であるか否かを判定する。ｎ＝Ｎであると制御部３０が判定した場合には処理を終了し、それ以外の場合にはステップＳ５０９の処理に進む。
（ステップＳ５０９）制御部３０は、ｎに１を加算する。その後、ステップＳ５０２の処理に戻る。
【００３２】
次に、動体判別部３１が判別した結果と、ブロックサイズ決定部３２が決定するブロックサイズおよび特徴点上限数決定部３３が決定するブロックごとの特徴点上限数との関係について説明する。図６は、動体判別部３１が判別した結果と、ブロックサイズ決定部３２が決定するブロックサイズおよび特徴点上限数決定部３３が決定するブロックごとの特徴点上限数との関係を示した概略図である。
【００３３】
図示する例では、動体判別部３１に入力されるパラメータの種類として、「動画撮影モード」と、「レンズ焦点距離と被写体までの距離情報」と、「動き検出結果」との３種類のパラメータが示されている。以下、各パラメータを用いる場合における、動体判別部３１が判別した結果と、ブロックサイズ決定部３２が決定するブロックサイズおよび特徴点上限数決定部３３が決定するブロックごとの特徴点上限数との関係について説明する。
【００３４】
＜「動画撮影モード」パラメータを用いる場合＞
「動画撮影モード」パラメータを用いる場合、動体判別部３１には、「スポーツモードなど、動体を取りうるモード」と「その他」のいずれかのパラメータ値が入力される。例えば、このパラメータ値は、操作者の入力に基づいて設定される。具体的には、操作者は、特徴点を検出する対象の入力画像が動体を撮影した画像の場合には「スポーツモードなど、動体を取りうるモード」を選択し、それ以外の場合には「その他」を選択する。
【００３５】
動体判別部３１は、入力されたパラメータ値が「スポーツモードなど、動体を取りうるモード」である場合、入力画像内に動体があると判別する。また、動体判別部３１は、入力されたパラメータ値が「その他」である場合、入力画像内に動体が無いと判別する。ブロックサイズ決定部３２は、動体判別部３１が入力画像内に動体があると判別した場合、分割するブロックサイズを小さくする、すなわち分割数を多くする。また、ブロックサイズ決定部３２は、動体判別部３１が入力画像内に動体が無いと判別した場合、分割するブロックサイズを大きくする、すなわち分割数を少なくする。特徴点上限数決定部３３は、動体判別部３１が入力画像内に動体があると判別した場合、入力画像中央付近のブロックの特徴点上限数を低くする。また、特徴点上限数決定部３３は、動体判別部３１が入力画像内に動体が無いと判別した場合、全ブロックの特徴点上限数を同じ数にする。
【００３６】
＜「レンズ焦点距離と被写体までの距離情報」パラメータを用いる場合＞
「レンズ焦点距離と被写体までの距離情報」パラメータを用いる場合、動体判別部３１には、「焦点距離が大きい、または被写体までの距離が近い」と「その他」のいずれかのパラメータ値が入力される。例えば、このパラメータ値は、特徴点検出装置１００が撮像部（図示せぬ）を備えている場合、撮像部が入力画像を撮像した際に検出した値に基づいて設定される。具体的には、撮像部が入力画像を撮像したときに、焦点距離が大きい、または被写体までの距離が近いことを検出した場合には、動体判別部３１に「焦点距離が大きい、または被写体までの距離が近い」パラメータ値が入力され、それ以外の場合には、動体判別部３１に「その他」パラメータ値が入力される。
【００３７】
動体判別部３１は、入力されたパラメータ値が「焦点距離が大きい、または被写体までの距離が近い」である場合、入力画像内に占める動体の範囲が広いと判別する。また、動体判別部３１は、入力されたパラメータ値が「その他」である場合、入力画像内に占める動体の範囲が狭いと判別する。ブロックサイズ決定部３２は、動体判別部３１が入力画像内に占める動体の範囲が広いと判別した場合、分割するブロックサイズを小さくする、すなわち分割数を多くする。また、ブロックサイズ決定部３２は、動体判別部３１が入力画像内に占める動体の範囲が狭いと判別した場合、分割するブロックサイズを大きくする、すなわち分割数を少なくする。特徴点上限数決定部３３は、動体判別部３１が入力画像内に占める動体の範囲が広いと判別した場合、入力画像中央付近の広範囲のブロックの特徴点上限数を低くする。また、特徴点上限数決定部３３は、動体判別部３１が入力画像内に占める動体の範囲が狭いと判別した場合、全ブロックの特徴点上限数を同じ数にする。
【００３８】
＜「動き検出結果」パラメータを用いる場合＞
「動き検出結果」パラメータを用いる場合、動体判別部３１には、「動きあり」と「動きなし」のいずれかのパラメータ値が入力される。例えば、このパラメータ値は、特徴点検出装置１００が、入力画像内に動体が含まれているか否か判別することができる動体検出部（図示せぬ）を備えている場合、動体検出部が入力画像に動体が含まれているか否かを判定した結果に基づいて設定される。具体的には、動体検出部が入力画像に動体が含まれていると判定した場合には、動体判別部３１に「動きあり」パラメータ値が入力され、それ以外の場合には、動体判別部３１に「動きなし」パラメータ値が入力される。
【００３９】
動体判別部３１は、入力されたパラメータ値が「動きあり」である場合、入力画像内の部分別に動体が有るか否かを判別する。また、動体判別部３１は、入力されたパラメータ値が「動きなし」である場合、入力画像内に動体が無いと判別する。ブロックサイズ決定部３２は、動体判別部３１が入力画像内の部分別に動体が有るか否かを判別した場合、動きあり部分（動体である部分）をまとめて１ブロックとする。また、ブロックサイズ決定部３２は、動体判別部３１が入力画像内に動体が無いと判別した場合、均等にブロック分割する。特徴点上限数決定部３３は、動きあり部分のブロックの特徴点上限数を低くするもしくは０とする。また、特徴点上限数決定部３３は、動体判別部３１が入力画像内に動体が無いと判別した場合、全ブロックの特徴点上限数を同じ数にする。
【００４０】
なお、図示する例では、３種類のパラメータと、動体判別部３１と、ブロックサイズ決定部３２と、特徴点上限数決定部３３との関係について説明したが、これに限らず、動体が含まれるブロックの特徴点上限数が低くなる関係であれば、どのような関係を用いてもよい。
【００４１】
次に、制御部３０が決定する分割ブロックサイズと特徴点の上限数について具体例を用いて詳細に説明する。図７は、本実施形態において、特徴点の検出対象である、動体を含んだ入力画像の例を示した概略図である。図示する例では、入力画像の左上には非動体である家が写っており、右上には非動体である木が写っており、中央には動体である自動車が写っており、下側には非動体である草が写っている。
【００４２】
まず、入力画像全体から特徴点を抽出する従来の方法で特徴点を検出する例について説明する。図７に示した入力画像全体からＨａｒｒｉｓ法を用いて特徴点を検出すると、図８に示すような結果が得られる。図８は、入力画像全体からＨａｒｒｉｓ法を用いて特徴点を検出した検出結果を示した概略図である。特徴点の検出方法としてＨａｒｒｉｓ法を用いているので、画像中のコントラストの強いコーナー部分が特徴点として検出される。
【００４３】
図示する例では、丸点（黒丸点および白丸点）は動体部分で検出される特徴点を示している。また、四角点（黒四角点および白四角点）は非動体部分で検出される特徴点を示している。また、白点（白丸点および白四角点）は、評価値が閾地以上ではあるが値はさほど大きくない弱い特徴点を示している。また、黒点（黒丸点および白丸点）は、評価値が大きく強い特徴点を示している。
【００４４】
動体は当然ながら背景とは異なる物体であるため、動体と背景との境界部分のコントラストは強くなることが多い。また、動画の撮影者が動体を主要被写体として撮影しようとしている場合は、その動体にピントを合わせることが多いため、動体に存在するエッジ部のコントラストもおのずと強くなる。従って、図８に示すように、動体部分、すなわち自動車が写っている中央部分で強い特徴点が検出されることが容易に想定される。
【００４５】
このような特徴点が検出された画像において、仮に入力画像全体における特徴点の上限数を１６点とした場合、黒丸点の１１点と黒四角点の５点との計１６点が特徴点として残り、その座標が出力されることになる。つまり、動体の特徴点が多く出力されることになり、手振れの影響を補正するための処理には適さない特徴点情報となってしまう。
【００４６】
次に、本実施形態のように、入力画像を複数のブロックに分割し、ブロック毎に特徴点を求める例について説明する。図９は、本実施形態におけるブロック分割部１０が、図７に示した入力画像を複数のブロックに分割した例を示した概略図である。制御部３０は、図６に示したようなパラメータを受け取り、それに基づいて動作を行う。図９に示した例では、制御部３０は、パラメータ値として「動画撮影モード」を受け取った場合を想定している。このときの制御部３０の動作は、動体判別部３１が動体ありと判別し、ブロックサイズ決定部３２が１ブロックのサイズを小さく、すなわちブロック分割数を多くなるように決定し、ブロック分割部１０に対してブロック制御信号を出力する。図９に示した例では分割数を２行４列の計８個としている。
【００４７】
仮に、ブロック分割部１０に対する設定のみを行い、全ブロックで特徴点の上限数を同じ数にした場合において、最終的に出力される特徴点を表しているのが図１０である。図１０は、本実施形態における特徴点検出部２０が、全ブロックで特徴点の上限数を同じ数にした場合の特徴点の検出結果を示した概略図である。なお、特徴点検出部２０が検出した特徴点は、破線で囲まれた点である
【００４８】
図示する例では、入力画像全体で出力する特徴点の上限数を図６に示した例と同数の１６個としており、１つのブロックの特徴点の上限数を２個としている。ブロック内で評価値の大きな特徴点を２個ずつ出力すると、図１０に示すように、破線円で囲った特徴点が出力される。この場合、入力画像全体では、動体の特徴点である黒丸点８点と、非動体の特徴点である黒四角点３点と白四角点５点との計１６点が出力される。このように、図１０に示した例では、図６に示した例よりも非動体の特徴点が多く出力されるため、動画手振れ補正に適した特徴点の出力が可能となる。
【００４９】
更に動体の影響を低減するためには、ブロックごとの特徴点上限数を変えれば良く、これを示している例が図１１である。図１１は、本実施形態において、特徴点検出部２０が、ブロック毎に特徴点の上限数を変更した場合の特徴点の検出結果を示した概略図である。なお、特徴点検出部２０が検出した特徴点は、破線で囲まれた点である。
【００５０】
図示する例では、特徴点上限数決定部３３は、入力画像中央付近のブロックの特徴点上限数を低く設定している。これは、通常、動画で動体を撮影する場合、動体を画面中央に置いて撮影する場合が多いためである。図示する例では、入力画像中央付近の４ブロックの特徴点上限数を１個とし、それ以外のブロックの特徴点上限数を３個とし、入力画像全体で１６個の特徴点を出力するように設定している。これにより、破線円で囲った特徴点が出力される。この場合、入力画像全体では、動体の特徴点である黒丸点４点と非動体の特徴点である黒四角点４点と白四角点８点との計１６点が出力される。このように、図１１に示した例では、図１０に示した例よりも非動体の特徴点が多く出力されるため、動画手振れ補正に適した特徴点の出力が可能となる。
【００５１】
図１２は、特徴点の検出対象である、動体を含んでいない入力画像をブロック分割した例を示した概略図である。図示する例では、入力画像の左上には非動体である家が写っており、右上には非動体である木が写っており、下側には非動体である草が写っている。また、図示する例では、分割数を２行４列の計８個としている。
【００５２】
図１３は、全ブロックで特徴点の上限数を同じ数にした場合において、最終的に出力される特徴点を表した概略図である。図示する例では、入力画像全体で出力する特徴点数の上限を図６に示した例と同数の１６個としており、１つのブロックの特徴点の上限は２個としている。この場合、図示するように、破線円で囲った特徴点が出力される。この場合、評価値の大きい非動体の特徴点である全ての黒四角点が出力されず、ブロック内で検出される特徴点が少ない場合は、特徴点が上限数に達しないなどの弊害が出る。図示する例では、入力画像全体で特徴点が１４点しか出力されない。このようなブロック分割の弊害を低減するため、図６で示したように、動体判別部３１が動体無しと判別した場合は、ブロックサイズを大きくする。
【００５３】
図１４は、本実施形態におけるブロックサイズ決定部３２がブロックサイズを大きくした場合に、特徴点検出部２０が検出した特徴点を示した概略図である。図示する例は、分割数を２行２列の計４個としている。また、入力画像全体で出力する特徴点の上限数を図６に示した例と同数の１６個としており、１つのブロックの特徴点の上限数を４個としている。これにより、破線円で囲った特徴点が出力される。この場合、入力画像全体では、非動体の特徴点である黒四角点５点と白四角点１１点との計１６点が出力される。このように、図１４に示した例では、図１３に示した例とは異なり、評価値の大きい全ての黒四角点を特徴点として出力することができる。
【００５４】
なお、図９〜図１４に示した例では、ブロック分割数および特徴点上限数を動体の有無で決定していたが、動体の大きさを基にブロックサイズと上限数を決定するようにしてもよい。この場合、より精度良く非動体の特徴点を出力することができる。図６で示したように、動画を撮影する機器（例えば、撮像部）に備わっているレンズの焦点距離と、測距機能で求めている被写体までの距離情報をパラメータとし、入力画像内で動体が写っている領域が広い可能性が高い場合は、ブロック分割数を多くし、また、中央付近の広範囲のブロックの上限数を低く設定する。これにより、大きく写った動体の特徴点を効果的に排除することが可能となる。
【００５５】
図１５は、本実施形態におけるブロック分割部１０が、図７に示した入力画像を、動体が写っている部分（動きあり部分）を１つのブロックとし、その他の部分を４つのブロックに分割した例を示した概略図である。制御部３０は、図６に示したようなパラメータを受け取り、それに基づいて動作を行う。図１５に示した例では、制御部３０は、パラメータ値として「動きあり」を受け取った場合を想定している。このときの制御部３０の動作は、動体判別部３１で画像の部分別の動体有無を判別し、ブロックサイズ決定部３２は、動体が写っている部分を１つのブロックとし、その他の部分を４つのブロックに分割するように決定し、ブロック分割部１０に対してブロック制御信号を出力する。
【００５６】
図１６は、本実施形態において、特徴点検出部２０が、動体が写っているブロックの特徴点の上限数を０個とした場合の特徴点の検出結果を示した概略図である。図示する例では、特徴点上限数決定部３３は、動体が写っているブロックの特徴点上限数を０個と設定している。図９〜図１４に示した例では、動体は入力画像中央にあると想定しており、多くのシーンで動体の特徴点を排除できる可能性は高いが、例えば複数の動体が撮影されている場合などでは動体の位置を検出した方が効果は高くなる。
【００５７】
動体位置を検出する方法は特に限定しないが、例えば、撮像部が備えている動画コーデックは、フレーム補間をするために、動き検出（動き補償）の機能を有している。この情報を基に動体の有無及びその位置を求めても良いし、新たに画像のフレーム間差分を求める機能を追加して差分の大きい部分を動体位置としてもよい。フレーム間差分を求める場合は、動体部分だけの差分を精度よく求めるために、撮影時のカメラの動きによって発生する画像の動き（複数フレーム画像間のずれ）をおおまかに補正するのが望ましい。例えば、撮像部に予め備わっているジャイロセンサーの情報を基に撮像部のおおまかな動き方向と動き量を検出し、その情報を基に画像間のずれを補正してから差分を取れば良い。
【００５８】
これらの動き検出結果をパラメータとして制御部３０に入力し、動きのある部分をまとめて１ブロックにし、また、そのブロックの特徴点上限数を下げるもしくは０にすることで、図１１に示したように、動体の特徴点を出力しないようにできる。
【００５９】
上述したとおり、本実施形態によれば、ブロックサイズ決定部３２は、動体判別部３１の判別結果に基づいて入力画像の分割ブロックサイズ（分割ブロック数）を決定する。また、特徴点上限数決定部３３は、動体判別部３１の判別結果に基づいてブロック毎の特徴点の上限数を決定する。また、ブロック分割部１０は、ブロックサイズ決定部３２の決定に基づいて入力画像を複数のブロックに分割する。また、特徴点検出部２０は、ブロック分割部１０が分割したブロック毎に、動体判別部３１の判別結果に基づいて入力画像の特徴点の検出を行う。これにより、動体と非動体が混在した入力画像においても、動体以外に含まれる評価値の高い特徴点をより多く選択することができる。従って、例えば、動画手振れ補正に有用な特徴点を求めることができる。
【００６０】
また、上述した実施形態によれば、入力画像をブロック分割して特徴点を求めることで、入力画像全体から満遍なく特徴点を求めることができる。また、上述した実施形態によれば、入力画像内の位置などに応じて特徴点上限数を変えることができるため、求めたい特徴点を選択することができる。また、上述した実施形態によれば、ブロック分割数を任意の値に変えることで、入力画像に写っている被写体に応じたブロック数に分割することができ、所望の被写体の特徴点のみを抽出したり、逆に除去したりすることができる。また、上述した実施形態によれば、動体の有無によってブロック分割数と特徴点上限数を設定できるので、動体の特徴点を排除することができる。
【００６１】
また、上述した実施形態によれば、撮影モードを基に動体の有無を推定するので、簡単な構成でブロック分割数と特徴点上限数を設定することができる。また、上述した実施形態によれば、撮影画像内の動体の大きさを推定できるので、動体の特徴点を、より排除しやすいブロック分割数と特徴点上限数を設定することができる。また、上述した実施形態によれば、動体位置情報を基にブロック分割数と特徴点上限数を設定するので、動体が中央にない場合や、複数の動体がある場合でも動体の特徴点を効果的に排除することができる。
【００６２】
以上、この発明の一実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００６３】
なお、上述した特徴点検出装置１００が備える各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００６４】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【符号の説明】
【００６５】
１０・・・ブロック分割部、２０・・・特徴点検出部、２１・・・候補点検出部、２２・・・特徴点決定部、３０・・・制御部、３１・・・動体判別部、３２・・・ブロックサイズ決定部、３３・・・特徴点上限数決定部、１００・・・特徴点検出装置
【図１】
2014099087.tif 000003
【図２】
2014099087.tif 000004
【図３】
2014099087.tif 000005
【図４】
2014099087.tif 000006
【図５】
2014099087.tif 000007
【図６】
2014099087.tif 000008
【図７】
2014099087.tif 000009
【図８】
2014099087.tif 000010
【図９】
2014099087.tif 000011
【図１０】
2014099087.tif 000012
【図１１】
2014099087.tif 000013
【図１２】
2014099087.tif 000014
【図１３】
2014099087.tif 000015
【図１４】
2014099087.tif 000016
【図１５】
2014099087.tif 000017
【図１６】
2014099087.tif 000018