コンピュータビジョンや画像処理において、特徴とは画像の内容に関する情報であり、一般的には画像の特定領域が特定の特性を持っているかどうかに関する情報です。特徴は、点、エッジ、オブジェクトなど、画像内の特定の構造である場合があります。また、画像に対して適用された一般的な近傍演算や特徴検出の結果である場合もあります。その他の特徴の例としては、画像シーケンス内の動きや、曲線や異なる画像領域間の境界によって定義される形状などが挙げられます。
より広義には、特徴とは、特定のアプリケーションに関連する計算タスクを解決するために重要なあらゆる情報のことです。これは、機械学習やパターン認識における特徴と同じ意味ですが、画像処理では非常に高度な特徴群が用いられています。特徴の概念は非常に一般的であり、特定のコンピュータビジョンシステムにおける特徴の選択は、対象となる具体的な問題に大きく依存する可能性があります。
特徴とは何かという普遍的かつ厳密な定義は存在せず、その正確な定義は問題やアプリケーションの種類によって異なることが多い。しかしながら、特徴は一般的に画像中の「興味深い」部分として定義され、多くのコンピュータビジョンアルゴリズムの出発点として用いられる。
特徴量は、後続のアルゴリズムの出発点および主要な基本要素として使用されるため、アルゴリズム全体の性能は、多くの場合、特徴検出器の性能に左右されます。したがって、特徴検出器に求められる望ましい特性は再現性、つまり、同じシーンの2つ以上の異なる画像で同じ特徴量が検出されるかどうかです。
特徴検出は、低レベルの画像処理操作です。つまり、通常は画像に対する最初の操作として実行され、各ピクセルを調べて、そのピクセルに特徴が存在するかどうかを確認します。これがより大きなアルゴリズムの一部である場合、アルゴリズムは通常、特徴が存在する領域のみを画像から調べます。特徴検出の前提条件として、入力画像は通常、スケール空間表現においてガウスカーネルによって平滑化され、1つまたは複数の特徴画像が計算されます。これらの特徴画像は、多くの場合、局所的な画像微分演算によって表現されます。
特徴検出の計算コストが高く、時間的な制約がある場合、より高レベルのアルゴリズムを使用して特徴検出段階を誘導し、画像の特定の部分のみを特徴探索対象とすることがあります。
コンピュータビジョンアルゴリズムの多くは、最初のステップとして特徴検出を用いるため、結果として非常に多くの特徴検出器が開発されてきた。これらの特徴検出器は、検出する特徴の種類、計算の複雑さ、再現性において大きく異なっている。
画像に適用される局所近傍操作によって特徴が定義される場合(この手順は一般的に特徴抽出と呼ばれます)、特定の画像点に特定のタイプの特徴が存在するかどうかを局所的に判定する特徴検出手法と、結果として非バイナリデータを生成する手法とを区別することができます。この区別は、検出された特徴が比較的疎である場合に重要になります。局所的な判定は行われますが、特徴検出ステップの出力はバイナリ画像である必要はありません。結果は、特徴が検出された画像点の(連結または非連結の)座標の集合として表現されることが多く、場合によってはサブピクセル精度で表現されます。
局所的な判断を行わずに特徴抽出を行う場合、その結果はしばしば特徴画像と呼ばれます。したがって、特徴画像は、元の画像と同じ空間(または時間)変数の関数であるという意味で画像と見なすことができますが、ピクセル値は輝度や色ではなく、画像の特徴に関する情報を保持しています。つまり、特徴画像は、イメージセンサーによって生成される通常の画像と同様の方法で処理できます。特徴画像は、特徴検出アルゴリズムの統合ステップとして計算されることもよくあります。
アプリケーションによっては、画像データから関連情報を取得するために、1種類の特徴だけを抽出するだけでは不十分な場合があります。代わりに、2つ以上の異なる特徴が抽出され、各画像ポイントで2つ以上の特徴記述子が得られます。一般的な手法は、これらの記述子によって提供される情報を、一般的に特徴ベクトルと呼ばれる1つのベクトルの要素として整理することです。可能なすべての特徴ベクトルの集合は、特徴空間を構成します。[ 1 ]
特徴ベクトルの一般的な例として、各画像点を特定のクラスに分類する場合が挙げられます。各画像点には適切な特徴セットに基づいた対応する特徴ベクトルがあり、各クラスが対応する特徴空間で明確に分離されていると仮定すると、各画像点の分類は標準的な分類手法を用いて行うことができます。
もう一つの関連する例として、ニューラルネットワークを用いた画像処理が挙げられます。ニューラルネットワークに入力されるデータは、多くの場合、各画像点からの特徴ベクトルとして与えられます。このベクトルは、画像データから抽出された複数の異なる特徴から構成されます。学習段階において、ネットワークは、目の前の問題を解決するためにどの特徴の組み合わせが有用かを自ら見つけ出すことができます。
エッジとは、2つの画像領域間の境界(またはエッジ)が存在する点のことです。一般に、エッジはほぼ任意の形状をとることができ、接合部を含む場合もあります。実際には、エッジは通常、画像内で勾配の大きさが大きい点の集合として定義されます。さらに、一般的なアルゴリズムでは、勾配が大きい点を連結して、エッジのより完全な記述を形成します。これらのアルゴリズムは通常、形状、滑らかさ、勾配値など、エッジの特性に何らかの制約を設けます。
局所的には、辺は一次元構造を持つ。
コーナーと注目点という用語は、ある程度互換的に使用され、画像内の局所的な二次元構造を持つ点状の特徴を指します。「コーナー」という名称は、初期のアルゴリズムが最初にエッジ検出を行い、次にエッジを分析して方向の急激な変化(コーナー)を検出したことに由来します。その後、これらのアルゴリズムは、例えば画像勾配の高い曲率を探すことによって、明示的なエッジ検出が不要になるように開発されました。その後、いわゆるコーナーが、従来の意味でのコーナーではない画像の部分(例えば、暗い背景上の小さな明るい点)でも検出されていることが認識されました。これらの点は注目点としてよく知られていますが、「コーナー」という用語は慣習的に使用されています。
ブロブは、点のようなコーナーとは対照的に、領域という観点から画像構造を補完的に記述します。ただし、ブロブ記述子には優先点(演算子応答の局所最大値または重心)が含まれることが多く、そのため多くのブロブ検出器は関心点演算子としても機能します。ブロブ検出器は、コーナー検出器では検出できないほど滑らかな画像領域を検出できます。
画像を縮小してからコーナー検出を実行することを考えてみましょう。検出器は、縮小された画像ではシャープな点に反応しますが、元の画像では滑らかな点である可能性があります。この時点で、コーナー検出器とブロブ検出器の違いはやや曖昧になります。この区別は、適切なスケールの概念を取り入れることで大部分解消できます。しかしながら、異なるスケールで異なる種類の画像構造に対して反応特性を示すため、LoGおよびDoH ブロブ検出器もコーナー検出に関する記事で言及されています。
細長い物体の場合、稜線の概念は自然なツールです。グレースケール画像から計算される稜線記述子は、メディアル軸の一般化と見なすことができます。実用的な観点から、稜線は対称軸を表す一次元曲線と考えることができ、さらに各稜線点に関連付けられた局所的な稜線幅という属性を持ちます。しかし残念ながら、一般的なクラスのグレースケール画像から稜線の特徴を抽出することは、エッジ、コーナー、またはブロブの特徴を抽出するよりもアルゴリズム的に困難です。それでも、稜線記述子は、航空写真からの道路抽出や医療画像からの血管抽出によく使用されます(稜線検出を参照)。

特徴検出には、画像情報の抽象化を計算し、各画像点において、特定の種類の画像特徴が存在するかどうかを局所的に判定する方法が含まれる。得られる特徴は画像領域の部分集合であり、多くの場合、孤立点、連続曲線、または連結領域の形で現れる。
特徴抽出は、複数のスケールにわたって行われる場合がある。その方法の一つが、スケール不変特徴変換(SIFT)である。
特徴が検出されると、その特徴周辺の局所的な画像パッチを抽出できます。この抽出には、かなりの量の画像処理が必要になる場合があります。結果は、特徴記述子または特徴ベクトルとして知られています。特徴記述に使用される手法としては、Nジェットや局所ヒストグラムなどが挙げられます(局所ヒストグラム記述子の一例として、スケール不変特徴変換を参照してください)。このような属性情報に加えて、特徴検出ステップ自体も、エッジ検出におけるエッジの方向と勾配の大きさ、ブロブ検出におけるブロブの極性と強度など、補完的な属性を提供する場合があります。
画像データ内の特定の構造に基づいて定義される特定の画像特徴は、多くの場合、さまざまな方法で表現できます。たとえば、エッジは、各画像点において、その点にエッジが存在するかどうかを示すブール変数として表現できます。あるいは、エッジの存在を示すブール値の代わりに確実性を示す表現を使用し、これをエッジの向きに関する情報と組み合わせることもできます。同様に、特定の領域の色は、平均色(3つのスカラー)またはカラーヒストグラム(3つの関数)のいずれかで表現できます。
コンピュータビジョンシステムまたはコンピュータビジョンアルゴリズムを設計する際、特徴表現の選択は重要な問題となる可能性があります。場合によっては、問題を解決するために特徴の記述においてより詳細なレベルが必要になることがありますが、これはより多くのデータとより要求の厳しい処理を扱う必要があるという代償を伴います。以下では、適切な表現を選択する際に関連するいくつかの要素について説明します。この説明では、特徴表現のインスタンスは、特徴記述子、または単に記述子。
画像の特徴の例として、画像シーケンスにおける局所的なエッジの向きと局所的な速度が挙げられます。向きの場合、対応する近傍に複数のエッジが存在すると、この特徴の値は多かれ少なかれ不確定になる可能性があります。対応する画像領域に空間的な変化がない場合、局所的な速度は不確定になります。このことから、特徴値に関する記述に関連する確実性または信頼度を示す尺度を含む特徴表現を使用することが適切である場合があります。そうでない場合、確実性の低い特徴値とゼロに近い特徴値を表すために同じ記述子が使用されることが一般的であり、その結果、この記述子の解釈に曖昧さが生じます。アプリケーションによっては、このような曖昧さが許容される場合とされない場合があります。
特に、特徴画像が後続の処理で使用される場合は、確実性や信頼度に関する情報を含む特徴表現を採用するのが良いでしょう。これにより、例えば同じ画像ポイントで異なるスケールで計算された記述子、あるいは異なるが隣接するポイントで計算された記述子など、複数の記述子から新しい特徴記述子を、対応する確実性から重みを導出した加重平均によって計算することが可能になります。最も単純なケースでは、対応する計算は特徴画像のローパスフィルタリングとして実装できます。結果として得られる特徴画像は、一般的にノイズに対してより安定します。
表現に確実性尺度が含まれていることに加えて、対応する特徴値の表現自体が平均化操作に適している場合とそうでない場合があります。ほとんどの特徴表現は実際には平均化できますが、結果として得られる記述子を特徴値の観点から正しく解釈できるのは特定の場合に限られます。このような表現は平均化可能と呼ばれます。
例えば、辺の向きを角度で表す場合、角度が最大値から最小値に切り替わる箇所で不連続性が生じます。その結果、類似した2つの向きが、元の角度のどちらにも近くない平均値を持つ角度で表されることがあり、この表現は平均化できません。一方、構造テンソルなど、平均化可能な辺の向きの表現方法もあります。
別の例として、動きに関するものがあります。動きの場合、あるエッジに対する法線速度のみを抽出できる場合があります。このような特徴が2つ抽出され、それらが同じ真の速度を表していると仮定できる場合、この速度は法線速度ベクトルの平均として与えられるわけではありません。したがって、法線速度ベクトルは平均化できません。その代わりに、行列やテンソルを用いた動きの別の表現方法があり、法線速度記述子の平均演算によって真の速度を表します。
各画像で検出された特徴を複数の画像間で照合することで、対応する点などの対応する特徴を確立できます。
このアルゴリズムは、参照画像とターゲット画像間の点対応を比較分析することに基づいています。混雑したシーンのいずれかの部分が閾値を超える対応を共有している場合、混雑したシーン画像のその部分がターゲットとなり、そこに参照オブジェクトが含まれているとみなされます。[ 18 ]
{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク)