(57)【要約】【課題】特徴点スコアに加えて、特徴点の画素値と基準画素値との差を、絞り込みのための優先度の指標として特徴点の絞り込みを行う。【解決手段】入力画像から選択画素を決定する画像処理装置は、入力画像の中から選択された対象画素の特徴を示す評価値を算出し、入力画像の基準となる画素値である基準画素値を取得し、対象画素の画素値と基準画素値を比較して比較情報を生成し、比較情報と評価値に基づいて対象画素を選択画素とするか否かを判定する。【選択図】  図１
2015052942.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から選択画素を決定する画像処理装置であって、
前記入力画像の中から選択された対象画素の特徴を示す評価値を算出する算出手段と、
前記入力画像の基準となる画素値である基準画素値を取得する取得手段と、
前記対象画素の画素値と前記基準画素値を比較して比較情報を生成する比較手段と
前記比較情報と前記評価値に基づいて前記対象画素を前記選択画素とするか否かを判定する判定手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記取得手段は、予め設定された値である前記基準画素値を取得することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記入力画像の画素値の分布を統計的に解析する解析手段を更に有し、
前記取得手段は、前記解析手段による解析結果に基づいた前記基準画素値を取得することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記取得手段は、ユーザーによって設定された露出値に基づいて計算された前記基準画素値を取得することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記対象画素の画素値と前記基準画素値は、それぞれ輝度値で表されることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記比較手段は、前記対象画素の画素値と前記基準画素値の差の絶対値を前記比較情報とすることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記対象画素の画素値と前記基準画素値は、それぞれ複数次元のベクトルデータで表され、
前記比較手段は、前記対象画素の画素値と前記基準画素値で対応するベクトル要素ごとに比較することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項８】
前記比較手段は、前記対応するベクトル要素それぞれのの差の絶対値の和を前記比較情報とすることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記判定手段は、前記比較情報の値がより小さい対象画素を前記選択画素とすると判定することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記判定手段は、前記比較情報と前記評価値を重み付けした値を用いて前記対象画素を前記選択画素とするか否かを判定することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１１】
前記設定手段、前記算出手段、前記取得手段、前記比較手段、および前記判定手段を、前記入力画像を分割した画像に機能させることを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記判定手段は、所定数の前記選択画素を決定することを特徴とする請求項１乃至１１のいずれか１項に記載の画像処理装置。
【請求項１３】
前記判定手段によって決定された前記所定数の前記選択画素それぞれについて、前記入力画像における位置を示す座標値および前記評価値が記載されたリストを生成する生成手段を更に備えることを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
複数の入力画像それぞれについて、前記判定手段によって決定された前記所定数の前記選択画素の対応点を探索する探索手段を更に備えることを特徴とする請求項１２または１３に記載の画像処理装置。
【請求項１５】
入力画像から選択画素を決定する画像処理方法であって、
前記入力画像の中から選択された対象画素の特徴を示す評価値を算出する算出工程と、
前記入力画像の基準となる画素値である基準画素値を取得する取得工程と、
前記対象画素の画素値と前記基準画素値を比較して比較情報を生成する比較工程と
前記比較情報と前記評価値に基づいて前記対象画素を前記選択画素とするか否かを判定する判定工程と、
を備えることを特徴とする画像処理方法。
【請求項１６】
請求項１乃至請求項１４のいずれか１項に記載の画像処理装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の特徴点を検出する像処理方法、画像処理装置、及びプログラムに関する。
【背景技術】
【０００２】
コンピュータビジョン分野には、特徴点検出（もしくは、特徴点抽出）と呼ばれる処理がある。非特許文献１や非特許文献２によれば、特徴点検出の方式には、ハリス作用素方式やＦＡＳＴ方式など様々な方式が存在する。また、検出目標数を設定し、検出した各特徴点の信頼度（以下、特徴点スコア）に応じて特徴点検出数を目標数に絞り込む方法が、特許文献１に記載されている。
【０００３】
特徴点検出の応用としては、対応点探索による動き情報の取得がある。対応点探索は、２つの画像から特徴点を検出し、検出した特徴点の特徴量を算出して、画像間で各特徴点の特徴量を比較するマッチング処理により、類似度が最も高い特徴点のペアを探索する処理である。この２つの画像が連続する場合、特徴点ペアの相対位置は特徴点の移動量とみなせる。この移動量から、特徴点が含まれる被写体や画像全体の動きを求めることが可能となる。例えば、画像に手ブレによる動きが含まれている場合、このようにして求めた画像全体の移動量を補正する形で幾何変換を行えば、手ブレ補正処理が実施できる。また、左右２つの画像から構成されるステレオ画像から特徴点を検出した場合、画像間でマッチングできた特徴点ペアの相対位置から、三角測量の原理を使って特徴点の奥行きを推定することができる。つまり、ステレオ画像から３次元画像を構成することができる。他にも、画像検索、画像認識などの応用例があり、特徴点検出の産業上の利用範囲は広い。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】電子情報通信学会誌  Ｖｏｌ．８７、  Ｎｏ．１２、ｐｐ１０４３−１０４８、  ２００４
【非特許文献２】精密工学会誌  Ｖｏｌ．７７、  Ｎｏ．１２、ｐｐ１１０９−１１１６、  ２０１１
【特許文献】
【０００５】
【特許文献１】特開２０１２−２３４２５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特徴点スコアを絞り込みのための優先度の指標として、設定された目標数に絞り込む特徴点検出方法において、特徴点スコアが同等となる場合は、絞り込みのための優先度は処理の走査順に依存していた。これは、特徴点のマッチングを行うときにマッチング性能の低下にもつながるものである。
【０００７】
本発明は、上記課題に鑑みなされたものであり、特徴点スコアに加えて、特徴点の画素値と基準画素値との差を、絞り込みのための優先度の指標として特徴点の絞り込みを行うことを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための一手段として、本発明の画像処理装置は以下の構成を備える。すなわち、入力画像から選択画素を決定する画像処理装置であって、前記入力画像の中から選択された対象画素の特徴を示す評価値を算出する算出手段と、前記入力画像の基準となる画素値である基準画素値を取得する取得手段と、前記対象画素の画素値と前記基準画素値を比較して比較情報を生成する比較手段と前記比較情報と前記評価値に基づいて前記対象画素を前記選択画素とするか否かを判定する判定手段
を備えることを特徴とする。
【発明の効果】
【０００９】
特徴点スコアに加えて、特徴点の画素値と基準画素値との差を、絞り込みのための優先度の指標として特徴点の絞り込みを行うことにより、絞り込み処理における走査順への依存性が低下する。これにより、特徴点のマッチングを行うときには特徴点のマッチングを行う際のマッチング性能が向上する。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態における特徴点検出方法を説明するフロー図。
【図２】第２実施形態における特徴点検出方法を説明するフロー図。
【図３】第３実施形態における特徴点検出方法を説明するフロー図。
【図４】第４実施形態における特徴点検出方法を説明するフロー図。
【図５】第５の実施形態における特徴点検出方法を説明するフロー図。
【図６】対応点探索方法を説明するフロー図。
【図７】データフォーマットを説明する図。
【図８】画素の走査例を説明する図。
【図９】画像ヒストグラムの例を説明する図。
【図１０】装置構成を説明する図。
【発明を実施するための形態】
【００１１】
［第１実施形態］
まず、所定数の特徴点検出目標数を設定して、目標数分の特徴点を検出する特徴点検出方法を説明し、次に、この特徴点検出方法を用いた対応点探索方法の第一実施形態について説明する。本実施形態では、ＰＣ内でのＣＰＵが各ステップを実行するものとして説明する。しかし、これに限定はなく、スマートフォンやカメラ内で実行してもよいし、全ステップあるいはステップの一部を専用ハードウェアが処理を実行する形態をとってもよい。
【００１２】
以下、本実施形態におけるＰＣの構成と各モジュールの動作について、図１０（ａ）を使って説明する。図１０（ａ）は、ＰＣの内部構成を説明する図である。本実施形態におけるＰＣでは、ＲＡＭ１００２、グラフィックプロセッサ１００３、ＣＰＵ１００５、ユーザＩ／Ｆ１００６、外部ストレージ１００７、ネットワークＩ／Ｆ１００８、外部撮像部１００９は、バス１００１で接続されている。本実施形態では、ユーザＩ／Ｆ１００６はタッチパネルとするが、これに限定されず、マウスなどでもよい。また、外部ストレージ１００７は不揮発性のメモリで構成され、外部撮像部１００９はカメラなどで構成される。なお、本実施形態では、各ＨＷの制御処理などをＣＰＵが実行するものとして説明するが、専用ＨＷを追加しそのＨＷがＣＰＵの代わりに処理を実行する構成をとってももよい。
【００１３】
本実施形態では、実行されるプラグラムおよびデータは、外部ストレージ１００７に記録されており、これらをＲＡＭ１００２へ展開し、ＣＰＵ１００５が実行および処理する構成をとる。プログラムおよびデータはバス１００１を介して入出力が行われる。画像データを入力する場合、特別な記述がない場合、外部ストレージ１００７から画像データを読み込み、内部画像フォーマットに変換して利用するものとする。本実施形態では、内部画像フォーマットは輝度成分のみで構成された８ビットの画像であり、ディスプレイγ（γ＝２．２）で補正された画像であるとして説明するが、これに限定はなく例えば１６ビット画像などを扱うことも可能である。
【００１４】
画像データには、メタデータとして露出などの撮影条件が付加されているものとする。画像の入力は、外部撮像部１００９やネットワークＩ／Ｆ１００８から行うことも可能である。ＵＩ（ユーザーインターフェース）画面や処理画像結果は、グラフィックプロセッサ１００３を介して、ディスプレイ１００４上に表示することができる。グラフィックプロセッサ１００３は、入力した画像の幾何変換を行うことが可能で、変換した画像をＲＡＭ１００２に記憶したり、ディスプレイ１００４に直接出力したりすることも可能である。ユーザーＩ／Ｆ１００６は、ディスプレイ１００４上に表示されたボタンなどをタッチするなどして、ユーザーからの入力を受け付けることができる。処理データは、外部ストレージ１００７に記録したりＲＡＭ１００２に記憶したりして、他のプログラムと共有することができる。
【００１５】
以下、本実施形態による特徴点検出方法の具体的な動作フローについて、図１を使って説明する。図１は、特徴点検出方法を説明するフロー図である。本実施形態では、一つの画像に対して特徴点検出目標数を設定し、図１に示す特徴点検出フローが完了後、設定した目標数の特徴点情報が特徴点情報リストに格納されるものとする。なお、特徴点情報とは、一つの特徴点の検出結果に関する情報である。
【００１６】
ここで、本実施形態における特徴点情報について、図７（ａ）を使って説明する。図７（ａ）は、特徴点情報のフォーマットを説明する図である。本実施形態では、特徴点情報は特徴点のＸ座標値、Ｙ座標値、特徴点スコアＳからなる。また、特徴点情報は構造体として扱われる。本実施形態では、構造体変数をＰとした場合、構造体のＸ座標値、Ｙ座標値、特徴点スコアＳを保持する変数を、Ｐ．Ｘ、Ｐ．Ｙ、Ｐ．Ｓと表し、ピリオドを使って構造体のメンバ変数にアクセスできるものとして説明する。本実施形態では、特徴点情報が特徴点情報リストで管理されるものとして説明するが、これに限定はなく、可変長配列などを用いて管理されるようにしてもよい。また、本実施形態では、特徴点情報リストに格納された特徴点情報は、特徴量算出プログラムやマッチングプログラムと共有し処理される。なお、図１において、特別な記述がない場合、各ステップは、図中で示した矢印に従って実行されるものとする。さらに、依存関係のない処理に関してステップ順に限定はなく、順序を変えても実施されることも可能である。
【００１７】
図１のＳ１０１０では、ＣＰＵ１００５は、画素を走査して対象画素を設定し、対象画素のＸ座標値、Ｙ座標値、対象画素の画素値（輝度値）を取得して、それぞれ、Ｘ、Ｙ、Ｖに代入する。ＣＰＵ１００５は、Ｓ１０１０の処理を実行するごとに図８（ａ）に示されるような走査順で次々に対象画素を設定する。図８（ａ）は、画像の画素の走査例を説明している。図８（ａ）に示す画素の走査では、画像のラインごとに上から下へ、ライン中の画素毎に左から右へ走査されるものとする。Ｓ１０２０では、ＣＰＵ１００５は、画素がコーナーであるか否かを判定する。コーナーと判定された場合にはＳ１０３０へ、それ以外の場合は処理ステップをＳ１１００へ処理を遷移する。本実施形態においては、コーナー判定はＦＡＳＴ方式を用いて行われるものとして説明するが、コーナー判定の方式に限定はない。
【００１８】
Ｓ１０３０では、ＣＰＵ１００５は、特徴点スコアＳを算出する。特徴点スコアＳは、対象画素の特徴を示す評価値であり、本実施形態では、ＦＡＳＴ方式において非極値抑圧の判定に利用される値を特徴点スコアＳとして用いる。本実施形態では、８ビット画像において、特徴点スコアＳは８ビットで表現される値とする。なお、本実施形態では、非極値抑圧を実施しないものとして説明しているが、非極値抑圧を実施してもよい。また、特徴点スコアＳの算出方式はＦＡＳＴ方式に限定されない。例えば、特徴点スコアＳは、例えば、ハリス作用素などを用いて計算されるようにしてもよい。
【００１９】
Ｓ１０４０では、ＣＰＵ１００５は、基準画素値を取得して、Ｖｂａｓｅに代入する。本実施形態では、８ビット画像を扱っているため、輝度レンジ０から２５５の中央の値である１２８を基準画素値とする。Ｓ１０４１では、ＣＰＵ１００５は、基準画素値Ｖｂａｓｅと画素値Ｖを比較して、その差の絶対値を取得し、これを比較情報としてＤｉｆｆに代入する。Ｄｉｆｆは、画素値Ｖがどのくらい基準画素値Ｖｂａｓｅに近いかを表現している。すなわち、Ｄｉｆｆが小さいほど、画素値Ｖが基準画素値Ｖｂａｓｅに近いことを意味する。
【００２０】
Ｓ１０５０では、、ＣＰＵ１００５は、Ｓ１０４１で取得した比較情報ＤｉｆｆとＳ１３０３で算出した特徴点スコアＳを使って、１６ビットの新スコアＳｎｅｗを以下の式によって算出する。
Ｓｎｅｗ＝ｋ０×Ｓ＋（Ｖｏｆｆｓｅｔ−ｋ１×Ｄｉｆｆ）
以下、この式の詳細について説明する。まず、比較情報Ｄｉｆｆと特徴点スコアＳの優先度を指定するための重みを、それぞれｋ０とｋ１とする。本実施形態では、ｋ０＝２５６、ｋ１＝１とする。また、Ｓｎｅｗが負の数を取らないためのオフセット値をＶｏｆｆｓｅｔとする。本実施形態では、比較情報Ｄｉｆｆは０〜２５５の８ビット値しからとり得るないため、オフセット値Ｖｏｆｆｓｅｔを２５５とすれば、新スコアＳｎｅｗは負の値にならない。ｋ０を乗じたＳから、ｋ１を乗じたＤｉｆｆを引き、Ｖｏｆｆｓｅｔを加えることにより求められるＳｎｅｗは、画素値Ｖが基準画素値Ｖｂａｓｅに近いほど、大きい値となる。なお、ｋ０とｋ１の値を変更することによって、それぞれの項の寄与率を調整することが可能である。
【００２１】
Ｓ１０６０では、ＣＰＵ１００５は、特徴点情報リストの中の特徴点を示す要素数（以下、要素数）と画像あたりの特徴点検出目標数を比較し、要素数が目標数以下の場合には、Ｓ１１１０へ処理を遷移し、それ以外の場合には、Ｓ１０７０へ処理を遷移する。Ｓ１１１０では、ＣＰＵ１００５は、新しい構造体変数Ｎに対し、Ｎ．Ｓ＝Ｓｎｅｗ、Ｎ．Ｘ＝Ｘ、Ｎ．Ｙ＝Ｙとしてそれぞれ値を代入し、構造体Ｎをリストに追加する。これにより特徴点情報リストの要素数が増加する。
【００２２】
一方、Ｓ１０７０〜Ｓ１０９０では、ＣＰＵ１００５は、特徴点情報リストの要素数が目標数を超えた場合の処理として、既に作成されている特徴点情報リストにおいて特徴点スコアの更新を行う。まず、Ｓ１０７０では、ＣＰＵ１００５は、特徴点情報リストの全構造体変数Ｎの中から、特徴点スコアが最も小さい構造体変数を探索し、その構造体変数を変数Ｒとする。なお、Ｒは参照型の変数として扱われ、Ｒの書き換えは、特徴点情報リスト内の構造体変数そのものを書きかえること同義であるものとする。Ｓ１０８０では、ＣＰＵ１００５は、Ｒ．ＳとＳｎｅｗを比較し、Ｒ．Ｓが小さい場合にはＳ１０９０の処理を実行し、それ以外の場合はＳ１１００へ処理を遷移する。Ｓ１０９０では、ＣＰＵ１００５は、変数Ｒ．Ｓ、Ｒ．Ｘ、Ｒ．Ｙにそれぞれ、新スコアＳｎｅｗ、Ｘ座標値、Ｙ座標値を代入する。すなわち、Ｓ１０９０では、画素値Ｖが基準画素値Ｖｂａｓｅにより近いことを意味する、より大きな値の新スコアＳｎｅｗを用いて特徴点情報リストを更新する。
【００２３】
このように、Ｓ１０６０からＳ１１１０の処理を実行することによって、特徴点情報リスト記憶された目標数分の特徴点情報は、より大きな値の新スコアＳｎｅｗを有する特徴点情報となる。すなわち、一つの画像に含まれる全画素のうち、基準画素値により近い画素値を有するように選択された選択画素についての特徴点情報リストが生成される。次に、本特徴点検出方法を用いた対応点探索方法について、図６を使って説明する。
【００２４】
図６は、対応点探索方法を説明するフロー図である。Ｓ６０１０では、ＣＰＵ１００５は、第一の画像（以下、画像１とする）を入力して、図１のフローを実行し、特徴点情報リストを生成する。生成された特徴点情報リストを特徴点情報リスト１とする。Ｓ６０２０では、ＣＰＵ１００５は、特徴点情報リスト１に含まれる全ての特徴点の特徴量を算出し、特徴量情報リストを生成する。これを特徴量情報リスト１とする。本実施形態において、特徴量算出には２５６ビットのＢＲＩＥＦ方式を利用するものとする。ただ、特徴量算出のための方式に限定はなく、ＲＩＦＦ方式やＳＩＦＴ方式による特徴量算出を実施してもよい。また、特徴量情報リストは、一特徴点の特徴量に関する情報である特徴量情報をリスト形式で管理するデータ構造である。
【００２５】
以下、特徴量情報について図７（ｃ）を使って説明する。図７（ｃ）は、特徴量情報フォーマットを示している。特徴量情報は、特徴点のＸ座標値、Ｙ座標値、２５６ビットの特徴量ビットデータからなる。ただし、このフォーマットに限定はなく、例えば、座標情報でなく特徴点情報を参照するためのアドレスを持ち、アドレスを参照して座標情報を得るなど形態をとること可能である。また、本実施形態ではリストで管理するとしたが、これに限定はなく例えば可変長配列で管理してもよい。
【００２６】
Ｓ６０３０では、ＣＰＵ１００５は、第一の画像と異なる第二の画像（以下、画像２とする）を入力して、図１のフローを実行し、特徴点情報リストを生成する。生成された特徴点情報リストを特徴点情報リスト２とする。Ｓ６０４０では、ＣＰＵ１００５は、特徴点情報リスト２に含まれる全ての特徴点の特徴量を算出し、特徴量情報リストを生成する。これを特徴量情報リスト２とする。Ｓ６０５０では、ＣＰＵ１００５は、特徴量情報リスト１と特徴量情報リスト２に含まれる特徴量ビットデータを使ってマッチングを行い、対応点情報リストを生成する。本ステップでは、ＣＰＵ１００５は、２つのリストの特徴量ビットデータの全ての組合せのハミング距離を計算し、ハミング距離が最も短い特徴点同士で特徴点ペアを作る。対応点情報リストは、一つの特徴点ペアを表現する対応点情報をリスト形式で管理するデータ構造である。
【００２７】
以下、対応点情報について図７（ｄ）を使って説明する。図７（ｄ）は、対応点情報のフォーマットを説明する図である。対応点情報は、マッチングした特徴点ペアのうち、画像１の特徴点Ｘ座標値、Ｙ座標値、画像２の特徴点Ｘ座標値、Ｙ座標値からなる。なお、本実施形態ではリストで管理するとしたが、これに限定はなく例えば可変長配列で管理してもよい。このようにして生成された対応点情報リストは、他のプログラムと共有され、例えば手ブレ補正や三次元画像構成などに利用されることになる。
【００２８】
以下、従来の特徴点検出と本実施形態における特徴点検出に違いについて説明する。従来は、ＣＰＵ１００５は、基準画素値Ｖｂａｓｅと画素値Ｖの比較を行っていなかった。この場合、ＣＰＵ１００５は、新スコアＳｎｅｗの代わりに特徴点スコアＳをそのまま使ってＳ１０８０での判定と１０９０でのスコア更新を行っていた。つまり、スコアが同一となる画素は処理順で早い画素が選ぶ処理になる。図８（ａ）で示したように一般的な画像処理では、画像のラインごとに上から下へライン中の画素毎に左から右へ走査され、特徴点検出も同様である。そのため、基準画素値Ｖｂａｓｅと画素値Ｖの比較を行わない場合、画像上部の特徴点が選ばれやすく、特徴点の選択に位置依存性が発生してしまうことを意味する。そのため、画面全体から均等に特徴点が選択されにくくなっていた。特に、ＦＡＳＴ方式のように単純な加減算や絶対値演算でスコアを算出する方式を８ビット画像に適用した場合、スコア値は０から２５５の範囲（８ビット）で算出される。これはハリス作用素を３２ビット浮動小数点で求めるような場合に比べ、分解能が低くスコアが同一になりがちなため、位置依存に関する傾向がより強くなってしまっていた。
【００２９】
一方、本実施形態では、ＣＰＵ１００５は、画素値Ｖと基準画素値Ｖｂａｓｅを比較し、その比較情報Ｄｉｆｆと特徴点スコアＳを使って求めた新スコアＳｎｅｗに基づいて、Ｓ１０８０での判定と１０９０でのスコア更新が行われる。また、本実施形態では、新スコアＳｎｅｗは１６ビットの値をとるため、ＦＡＳＴ方式のスコアである８ビット値に比べて、確率的にスコア値は同一になりにくい。よって、特徴点の走査順依存性が低下し、画面全体から均等に特徴点を求めやすくなる。また、２つの画像の位置を合わせるには、それぞれの画像に存在する同一の特徴点を振い落さずに選択しマッチングさせることが重要である。本実施形態では、ＣＰＵ１００５は、大きい値の新スコアＳｎｅｗを特徴点情報リストに格納する。すなわち、ＣＰＵ１００５は、基準画素値Ｖｂａｓｅに近い輝度を持つ特徴点を優先して選択する。これにより、２つの画像の間で同一の特徴点を残す確率が高まり、結果としてマッチングの成功確率が高まるというメリットがある。このメリットは、スコア値が浮動小数点で表現される場合にも効果があるため、本実施形態は、ＦＡＳＴ以外の特徴点検出方式にも適用しても効果が得られる。
【００３０】
また、本実施形態では、スコア値が大きいものを優先するものとして説明したが、値が小さいほど特徴点の特徴の度合いが大きいスコア値算出方法もある。その場合、下記のような計算式を用いて、スコア値が低い特徴点を優先して選択する構成をとってもよい。
Ｓｎｅｗ’＝ｋ０’×Ｓ’＋ｋ１’×Ｄｉｆｆ
ただし、Ｓ’は、値が小さいほど特徴点の特徴の度合いが大きいスコアである。ｋ０’、ｋ１’は、スコアとＤｉｆｆの寄与率を決める係数である。Ｓｎｅｗ’は、低値優先の新スコアである。
【００３１】
このように、本実施形態では、基準画素値に近い画素値を持つ特徴点を優先して選択することにより、特徴点選択に際しての走査順への依存度が低下し、複数の画像から抽出された特徴点のマッチングを行う時のマッチング性能が向上する。
【００３２】
［第２実施形態］
特徴点検出方法の第２実施形態について、図２を使って説明する。特別な記述がない限り、本実施形態の動作は、第１実施形態に準じるものとする。図２は、第２実施形態における特徴点検出方法を説明するフロー図である。図２のフローでは、図１のフローに対して、Ｓ２０００が追加され、Ｓ１０４０がＳ２０４０に置き換わっている。以下、追加または変更されたステップについて説明する。
【００３３】
Ｓ２０００では、ＣＰＵ１００５は、画像の輝度分布を表現する画像ヒストグラムを生成する。生成される画像ヒストグラムは、例えば、図９に示されるようなヒストグラムになる。図９の詳しい説明は後述する。Ｓ２０４０では、ＣＰＵ１００５は、生成した画像ヒストグラムから、解析結果として最も出現頻度の高い画素値（以下、最頻値）を取得し、基準画素値としてＶｂａｓｅに代入する。すなわち、本実施形態によれば、ＣＰＵ１００５は、画像ヒストグラムを解析することにより、画像ヒストグラムの統計指標値として最頻値を求め、それを基準画素値としている。この基準画素値は、画像の特性を示す値である。特徴点数を目標数に絞り込むための絞り込み処理において、従来の特徴点スコアに加えて、統計指標値に近い画素値を持つ画素を優先的に選択して残すことにより、画像に存在する確率が高い画素値をもつ画素が選択されやすくなる。これはマッチング性能の向上にもつながる。
【００３４】
例えば、時間的に連続する画像から特徴点を検出してマッチングを行う場合に高い効果が得られる。同一シーンを時間的に連続で撮影した画像を扱う場合、レンズの絞り状態の変化や環境光の変化により露出が変動することがある。このときに固定の基準画素値に近い画素を優先的に選択すると、画像間では異なる特徴点を選ぶ確率が高まるという問題がある。本実施形態によれば、画像ごとに、画像ヒストグラムの統計指標値に近い画素値をもつ画素を優先的に選択することにより、この問題を解決できる。以下、同一のシーンを撮像しながら露出が高い状態から低い状態に変化した場合の特徴点検出の例について、図９を使って説明する。
【００３５】
図９は、画像ヒストグラムの例を説明する図である。図９において、横軸は画素値を示し、縦軸は画素単位の出現頻度を示す。また、図９（ａ）は、高露出（画像の平均輝度が高い）画像、図９（ｂ）は、低露出（画像の平均輝度が低い）画像のそれぞれの画像ヒストグラムを示している。露出の違いは、全画素の画素値が高くなる、あるいは、低くなるという違いであるため、ヒストグラム上の山が左右に移動したものとして観察できる。露出の異なる画像を入力して第１実施形態を適用すると、基準画素値Ｖｂａｓｅが１２８固定であるため、高露出画像から基準画素値が１２８に近い画素を優先的に選択することになる。このことは、図９（ａ）を見ても分かるとおり、画像内の画素で相対的に暗い画素を選択していることになる。一方、低露出画像の場合は、１２８に近い画素を優先的に選択することになる。このことは、図９（ｂ）を見ても分かるとおり、画像内の画素で相対的に明るい画素を選択することになる。同一シーンの中には、相対的に暗い被写体も明るい被写体も存在しているため、結果として、２つの画像間で異なる被写体に含まれる特徴点をそれぞれ選択してしまうことになる。
【００３６】
一方、本実施形態では、特徴点情報リストを作成する都度、ＣＰＵ１００５は、画像ヒストグラムを解析しその統計量を使用することによって最適な基準画素値を決定する。よって、露出の高い画像からは画素値１５０付近の画素が優先して選択され、露出の低い画像からは画素値１００付近の画素が優先して選択される。これは、同じ被写体に含まれる特徴点を選択する確率が高いことを示している。
【００３７】
このように、本実施形態によれば、画像ヒストグラムを統計的に解析した結果を用いることにより、画像の露出度に応じて適切な特徴点検出が可能となる。なお、本実施形態では、基準画素値の算出に画像ヒストグラムの最頻値を利用するものとして説明したが、これに限定されず、平均値、中央値などの統計指標値を用いてもよい。また、主成分分析を行い、主成分のヒストグラムから計算される統計指標値を用いてもよい。また、画像が連続して入力・処理される構成において、画像間で急激な露出変化がない場合には、前フレームの統計指標値や過去の近傍フレームの統計指標値の移動平均などを基準画素値として利用する構成をとってもよい。この構成では、同一画像の統計処理結果と特徴点検出結果に依存関係がなく、処理を並列に実行することができ処理時間を削減できる。
【００３８】
また、本アルゴリズムが対象とする画像として、例えば図８（ｂ）のように入力画像を分割した領域分割画像単位で処理をしてもよい。図８（ｂ）は、画像の分割、および、分割画像単位の画素の走査例を示している。領域分割画像単位でヒストグラムを解析し、領域分割画像単位で特徴点の目標数を設定して、図８（ｂ）のように領域内で画素を走査して特徴点検出処理を行う。このように領域分割を行うことにより、領域分割画像毎に最適な基準画素値を設定して特徴点を検出することができる。なお、図８（ｂ）のような走査順は、いずれの実施形態において適用されてもよい。
【００３９】
［第３実施形態］
特徴点検出方法の第３実施形態について、図３を使って説明する。特別な記述がない限り、本実施形態の動作は、第１実施形態に準じるものとする。図３は、第３実施形態における特徴点検出方法を説明するフロー図である。図３のフローは、図１のフローに対して、Ｓ１０４０、Ｓ１０４１、Ｓ１０５０がなくなり、Ｓ３０８１、Ｓ３０８２、Ｓ３０８３が追加されている。また、Ｓ１０８０、Ｓ１０９０、Ｓ１１００がそれぞれ、Ｓ３０８０、Ｓ３０９０、Ｓ３１１０に置き換わっている。以下、追加または変更されたステップについて説明する。
【００４０】
本実施形態における特徴点情報について図７（ｂ）を使って説明する。図７（ｂ）は、第３実施形態における特徴点情報のフォーマットを説明する図である。本実施形態における構造体は、図７（ａ）で説明した構造体に加えて画素値Ｖを格納するメンバ変数領域が追加されている。本実施形態では、構造体変数をＰとするとＰ．Ｖという形でアクセスできるものとして説明する。
【００４１】
図３において、Ｓ３０８０では、ＣＰＵ１００５は、Ｒ．ＳとＳを比較して、Ｒ．Ｓ＞Ｓの場合にはＳ１１００へ、Ｒ．Ｓ＝Ｓの場合にはＳ３０８１へ、Ｒ．Ｓ＜Ｓの場合にはＳ３０９０へ処理を遷移させる。Ｓ３０８１では、基準画素値Ｖｂａｓｅを取得する。本実施形態では、Ｖｂａｓｅは、第１実施形態と同様に１２８とする。Ｓ３０８２では、ＣＰＵ１００５は、基準画素値Ｖｂａｓｅと画素値Ｖから差の絶対値Ｄｉｆｆを計算する。Ｓ３０８３では、ＣＰＵ１００５は、｜Ｒ．Ｖ−Ｖｂａｓｅ｜＜Ｄｉｆｆを判定して、判定結果が真の場合にはＳ３０９０へ、偽の場合にはＳ１１００へ処理を遷移させる。Ｓ３０９０では、ＣＰＵ１００５は、Ｒ．Ｓ、Ｒ．Ｘ、Ｒ．Ｙ、Ｒ．Ｖにそれぞれ、Ｓ、Ｘ、Ｙ、Ｖを代入する。
【００４２】
Ｓ３１１０では、ＣＰＵ１００５は、新しい構造体変数Ｎに対し、Ｎ．Ｓ＝Ｓ、Ｎ．Ｘ＝Ｘ、Ｎ．Ｙ＝Ｙ、Ｎ．Ｖ＝Ｖとなるように値を代入し、構造体Ｎをリストに追加する。本実施形態では、現在の画素の特徴点スコアＳと前回リストに記憶された特徴点スコアＲ．Ｓが同一になる場合でも、Ｓ３０８２で画素値Ｖと基準画素値Ｖｂａｓｅを比較した結果Ｄｉｆｆを用いて条件判定されている。これにより、より位置依存性の低い絞り込みを実施することができる。
【００４３】
このように、本実施形態によれば、特徴点スコアが同一の値となる場合であっても、画素値と基準画素値との差に基づいて、いずれかの特徴点スコアを選択して特徴点を検出することができる。また、第１実施形態のようにＳｎｅｗを算出していないため、計算量が低減するという効果もある。
【００４４】
［第４実施形態］
特徴点検出方法の第４実施形態について、図４を使って説明する。特別な記述がない限り、本実施形態の動作は、第１実施形態に準じるものとする。図４は、第４実施形態における特徴点検出方法を説明するフロー図である。図４のフローは、図１のフローに対して、Ｓ１０４０、Ｓ１０５０が、それぞれＳ４０４０、Ｓ４０５０に変更されている。以下、変更されたステップについて説明する。
【００４５】
Ｓ４０４０では、ＣＰＵ１００５は、外部撮像部１００９で設定された露出値ＥＶに基づいて基準画素値Ｖｂａｓｅを計算する。本実施形態では、露出値ＥＶは画像データにメタデータとして存在し、ＣＰＵ１００５がそのデータを取得するものとする。また、Ｎｂａｓｅは、輝度レンジの中央の値である。本実施形態では、輝度レンジを０から１．０で表現しており、Ｎｂａｓｅの値は０．５とする。また、γ値は、画像がディスプレイγ（γ＝２．２）で補正されていることから、２．２とする。なお、Ｎｂａｓｅやディスプレイγの値や式の形に限定はなく、これらの値はシステム構成に応じて最適に値や式の形を変えてもよい。
【００４６】
Ｓ４０５０では、ＣＰＵ１００５は、画素値Ｖと基準画素値Ｖｂａｓｅの差の絶対値Ｄｉｆと特徴点スコアＳを使って、１６ビットの新スコアＳｎｅｗを以下の式によって算出する。
Ｓｎｅｗ＝（Ｓ×（Ｘ−Ｄｉｆｆ））＞＞ＳＨＩＦＴ
以下、この式の詳細について説明する。ＸとＳＨＩＦＴは定数であり、本実施形態ではそれぞれＸ＝１０２４、ＳＨＦＩＴ＝２とする。＞＞は、右シフト演算を示し、Ａ＞＞Ｂは、Ａを右にＢビットシフトすることを示す。Ｓが８ビット、Ｘが１０ビットであることから、Ｓｎｅｗは、１６ビットとなる。画素値Ｖが基準画素値Ｖｂａｓｅに近いほどＳの乗数が大きくなる、つまり、Ｓｎｅｗが大きくなる。また、スコア値の分解能もＳ値の８ビットから１６ビットに増加している。これにより、第１実施形態と同等の効果を得ることができる。また、Ｘを増減させることによりＳｎｅｗ算出における｜Ｖ−Ｖｂａｓｅ｜項の寄与率を調整することもできる。
【００４７】
このように本実施形態によれば、第２実施形態のように画像ヒストグラムを解析しなくても、露出値ＥＶを用いて基準画素値を計算することにより、第２実施形態のように、画像間の平均輝度の違いを考慮した結果を得ることができる。
【００４８】
［第５実施形態］
特徴点検出方法の第５実施形態について、図５を使って説明する。本実施形態の特徴点検出で扱う内部画像フォーマットは、点順次で構成されたＲＧＢ成分で構成された８ビットの画像とする。内部画像フォーマットに限定はなく、例えば、異なるビット幅であってもよいし、点順次でなく面順次で構成された画像を扱ってもよい。特別な記述がない限り、本実施形態の動作は、第１実施形態に準じるものとする。
【００４９】
図５は、第５実施形態における特徴点検出方法を説明するフロー図である。本実施形態では、図１のフローに対し、Ｓ１０１０〜Ｓ１０５０が、それぞれＳ５０１０〜Ｓ５０５０に置き換わり、Ｓ５０００とＳ５００１が追加されている。また、対象画素および基準画素値は、ＲＧＢ成分を表現する三次元ベクトルデータとして扱われる。以下、追加または変更されたステップについて説明する。
【００５０】
Ｓ５０００では、ＣＰＵ１００５は、ＲＧＢ画像ごとにそれぞれ画像ヒストグラムを生成する。Ｓ５００１では、ＣＰＵ１００５は、画像の画素を走査して、ＲＧＢ値から画素値を算出し、算出した画素値から輝度画像を生成する。本実施形態では、特徴点検出に使う画像を視聴用に使う構成ではないため、簡易的な輝度計算を用いてよい。例えば、画素値Ｌは以下の式によって算出できる。
Ｌ＝Ｒ＋２×Ｇ＋×Ｂ
また、画素値は例えば以下の式によっても算出できる。
Ｌ＝０．２９９×Ｒ＋０．５８７×Ｇ＋０．１１４×Ｂ
また、他の処理で事前に輝度画像が生成されている場合には、このステップは不要である。
【００５１】
Ｓ５０１０では、ＣＰＵ１００５は、画素を走査して対象画素を設定し、対象画素のＸ座標値、Ｙ座標値、画素のＲＧＢ値を取得して、それぞれ、Ｘ、Ｙ、Ｒ、Ｇ、Ｂに代入する。ＣＰＵ１００５は、本ステップを実行するごとに、次々に対象画素を変えて実行する。Ｓ５０４０では、ＣＰＵ１００５は、ＲＧＢそれぞれの基準値を取得し、Ｒｂａｓｅ、Ｇｂａｓｅ、Ｂｂａｓｅに代入する。本実施形態では、基準値は、ＲＧＢヒストグラム、それぞれの平均値とする。Ｓ５０４１では、ＣＰＵ１００５は、画素値であるＲ、Ｇ、Ｂと基準画素値でＢｒ、Ｂｇ、Ｂｇの差の絶対値を計算し、重み付き平均Ｄｉｆｆを計算する。なお、本実施形態では、Ｄｉｆｆを差の絶対値の重み付き平均としたが、これに限定されず、例えば、に二乗誤差を用いた以下の式によって算出される値でもよい。
Ｄｉｆｆ
＝（Ｒ−Ｒｂａｓｅ）２＋（Ｇ−Ｇｂａｓｅ）２＋（Ｂ−Ｂｂａｓｅ）２
【００５２】
Ｓ５０５０では、ＣＰＵ１００５は、差の絶対値の重み付き平均Ｄｉｆｆと特徴点スコアＳを使って、新スコアを算出する。以下、Ｓ５０５０に示す式の詳細について説明する。ｋ０及びｋ１は、比較情報と特徴点スコアの優先度を指定するための重みである。本実施形態では、ｋ０＝１０２４、ｋ１＝１とする。Ｖｏｆｆｓｅｔは、Ｓｎｅｗが負の数を取らないためのオフセット値である。本実施形態においては、Ｖｏｆｆｓｅｔを１０２３とすればＳｎｅｗは負の値をとらない。
【００５３】
本実施形態によれば、画素値の比較を複数次元のベクトルデータの各ベクトル要素であるＲＧＢ独立で行うことにより、確率的に同一の画素値となっていた異なるＲＧＢバランスの画素を、絞り込みに処理においてより蓋然的に識別し選択することができる。このようにして検出した特徴点を用いてマッチングを行うことにより、第１実施形態において述べた効果に加えて、マッチング性能が向上する。
【００５４】
［第６実施形態］
ＰＣ以外の装置で処理される例について、第６実施形態として説明する。本実施形態では、特徴点検出、および、対応点探索機能をもったカメラ装置を例に説明する。なお、特別な記述がない限り、動作および構成は第１実施形態の説明に準じるものとする。図１０（ｂ）は、カメラ装置の構成を説明する図である。図１０（ｂ）のカメラ装置の構成および動作は、多くが図１０（ａ）と同等であるが、図１０（ａ）の外部撮像部１００９の代わりに、図１０（ｂ）では撮像部１０１０が追加されている。また、図１０（ｂ）では、図１０（ａ）に対して、画像処理部１０１１、特徴点検出部１０１７、特徴量算出部１０１８、マッチング部１０１９、画像ヒストグラム解析部１０２０が追加されている。特徴点検出部１０１７は、さらに、コーナー判定部１０１２、特徴点スコア算出部１０１３、画素値比較部１０１４、新特徴点スコア算出部１０１５、上位抽出部１０１６から構成される。以下、本実施形態における装置の動作について具体的に説明する。
【００５５】
ユーザーＩ／Ｆ１００６はタッチパネルであり、ディスプレイ上に表示されたボタンなどユーザーがタッチすることによって、絞り、シャッタースピード、露出値などを撮像条件などの設定を可能とする。撮像条件はＲＡＭ１００２に保存されると同時に撮像部１０１０に出力される。なお、ユーザーＩ／Ｆ１００６は、タッチパネルに限定されず、物理的なダイヤルやボタンであってもよい。
【００５６】
撮像部１０１０は、光学系、センサー、センサー画像をデジタル画像に変換する回路をもつ撮像ユニットである。撮像処理は、ユーザーＩ／Ｆ１００６によって設定された撮像条件に従って、処理がなされる。撮像部１０１０が撮像し撮像画像は、ＲＡＭ１００２に保存される。画像処理部１０１１は、撮像画像を内部フォーマットに変換し、ＲＡＭ１００２に保存する。本実施形態では、８ビット輝度画像を内部フォーマットとする。ただし、内部フォーマットに限定はなく、例えば、第５実施形態において説明したようにＲＧＢ画像を用いてもよい。
【００５７】
特徴点検出部１０１７は、８ビット輝度画像から特徴点を検出し、検出した特徴点の情報を特徴点情報配列としてＲＡＭ１００２に保存する。特徴点情報は第１実施形態において説明したデータフォーマットと同じであり、特徴点情報配列は複数の特徴点情報を配列として扱うデータ構造である。特徴点検出部内部構成については後述する。
【００５８】
特徴量算出部１０１８は、特徴点情報配列の特徴点情報を参照して各特徴点の特徴量を算出し、それらを特徴量情報配列としてＲＡＭ１００２に保存する。本実施形態のおける特徴量算出はＢＲＩＥＦ方式とするが、これに限定はなく他の特徴量算出方式を用いることも可能である。特徴量情報は、第１実施形態において説明したデータフォーマットと同じであり、特徴量情報配列は、複数の特徴量情報を配列として扱うデータ構造である。
【００５９】
マッチング部１０１９は、特徴量情報配列を参照して、それぞれの特徴点のマッチングを行い、マッチングできた点の対応関係を対応点情報配列として、ＲＡＭ１００２に保存する。本実施形態におけるマッチング方法は、第１実施形態において説明した方式と同等とする。対応点情報も第１実施形態において説明したデータフォーマットと同じであり、対応点情報配列は、複数の対応点情報を配列として扱うデータ構造である。画像ヒストグラム解析部１０２０は、画像ヒストグラムを解析し、平均値、最頻値、中央値などの統計量を算出する。
【００６０】
次に、特徴点検出部１０１７の内部構成およびその動作について説明する。この内部動作は、図８（ａ）のように走査された画素が画素単位で処理されるものとする。以下、走査中の処理画素を対象画素と表現する。コーナー判定部１０１２は、対象画素がコーナーであるか否かを判定し、真である場合には１０１３から１０１６を実行させる。本実施形態では、コーナー判定にはＦＡＳＴ方式を用いるものとするがこれに限定はない。特徴点スコア算出部１０１３は、対象画素およびその周辺画素を参照して特徴点スコアＳを算出する。特徴点スコアＳは１０１５へ出力される。本実施形態では、ＦＡＳＴ方式が非極値抑圧の判定に利用する値を特徴点スコアとするが、これに限定されない。
【００６１】
画素値比較部１０１４は、基準画素値Ｖｂａｓｅと対象画素の画素値Ｖを入力して、２つの値の差の絶対値計算し１０１５に出力する。基準画素値Ｖｂａｓｅは、Ｉ／Ｆ１００６でユーザー設定した露出値ＥＶを入力して、以下の式によって計算され設定されるものとする。
Ｖｂａｓｅ＝Ｍｉｎ（（２ＥＶ×Ｎｂａｓｅ）１／γ、１）×２５５
本実施形態では、第４実施形態と同様にＮｂａｓｅ＝０．５、γ＝２．２とする。Ｍｉｎ（ａ、ｂ）は、ａ、ｂの値のうち小さい値を返す関数である。計算された差の絶対値は、新特徴点スコア算出部１０１５に出力される。
【００６２】
新特徴点スコア算出部１０１５は、差の絶対値Ｄｉｆｆと特徴点スコアＳを入力して、新スコアＳｎｅｗを算出する。スコアの算出方法は第１実施形態において説明した算出方法と同等である。新スコアＳｎｅｗは、上位抽出部１０１６へ出力される。上位抽出部１０１６は、新スコアＳｎｅｗを入力し、特徴点情報配列から特徴点スコアが最も小さい特徴点情報を探索する。上位抽出部１０１６は、最も小さい特徴点スコアが新スコアＳｎｅｗよりも小さい場合には、その新スコアＳｎｅｗと該新スコアＳｎｅｗに対応する画素の座標値を含む特徴点情報で、最も小さい特徴点スコアの特徴点情報を更新する。なお、特徴点情報配列は常にＲＡＭ１００２に存在してもよいし、上位抽出部に内部ＲＡＭを持ち、一画像の処理が終わった段階でＲＡＭ１００２に出力してもよい。
【００６３】
本実施形態では、カメラシステムとして第１実施形態と同等の効果を得ることができる。また、一般的なカメラに搭載された自動露出補正機能を使うと、露出値は画像ごとに変動する。基準画素値が固定であると、露出値が異なる画像間で対応する特徴点が選択されにくいという問題がある。本実施形態では、撮像時に設定した露出値を使って基準画素値を計算しているため、画像間で対応する特徴点が選択されやすい。これはマッチング性能の向上につながる。本実施形態では、露出情報を取得して基準画素値を算出する構成をとったが、それに限定されず、装置内に画像ヒストグラム解析部１０２０を具備し、第２実施形態のように画像ヒストグラム解析部１０２０が算出した統計量を基準画素値とする構成をとってもよい。また、本実施形態では、第３実施形態乃至第５実施形態において説明した処理を行うようなカメラ装置を構成してもよい。
【００６４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015052942.tif 000003
【図２】
2015052942.tif 000004
【図３】
2015052942.tif 000005
【図４】
2015052942.tif 000006
【図５】
2015052942.tif 000007
【図６】
2015052942.tif 000008
【図７】
2015052942.tif 000009
【図８】
2015052942.tif 000010
【図９】
2015052942.tif 000011
【図１０】
2015052942.tif 000012