1. 概要

このチュートリアルでは、画像比較のためのいくつかのアルゴリズムを紹介します。最初に問題の概要を説明し、次に最も単純なものから最も複雑なものまで3つのアルゴリズムを紹介します。

2. 問題の説明

画像比較では、 2つの入力画像があり、それらの類似性を測定することを目標としています。まず、類似性の概念が厳密に定義されておらず、さまざまな方法で解釈できることを理解する必要があります。 具体的には、2つの画像であり、次の場合に類似していると見なすことができます。

  • コントラスト、明るさ、回転の点でのみ異なります
  • それらは意味的に同一であり、同じオブジェクトを表すことを意味します

以下に、画像の類似性のさまざまな解釈を示します。 左の画像は元の画像を回転させたもので、コントラストがはっきりしています。右の画像は同じ犬を描いていますが、背景が異なります。

犬のポーズと背景の表面が同じであるため、左のケースの画像比較システムを実装する方がはるかに簡単であることがわかります。

このチュートリアルでは、最も単純なものから最も複雑なものまで、コンテンツに基づいて画像を比較するアルゴリズムを紹介します。

3. 素朴なアプローチ

素朴なアプローチは、画像の生のピクセルを入力として受け取り、それらの類似性を出力するメトリックを使用することです。 この場合、古典的な平均二乗誤差を使用して、2つの画像のピクセル間の差の二乗の平均値を計算できます。

MSEの値が低いほど、類似性が高いと見なすことができます。 その速度と単純さにもかかわらず、この方法には多くの問題があります。 ピクセル強度間の大きなユークリッド距離は、必ずしも画像のコンテンツが異なることを意味するわけではありません。

以下に示すように、画像のコントラストを変更するだけで、コンテンツを変更しなかったとしても、最終的なMSE値は大幅に増加します。

4. 画像マッチング

MSEのようなピクセルベースの方法は、入力画像がさまざまな角度や照明条件で撮影された場合には効果的ではありません。 これらのケースに対処するには、画像マッチングが適切な方法です。

画像マッチングの最初のステップは、豊富な視覚情報を含む入力画像のいくつかのポイントを検出することです。 これらのポイントは通常、画像内のオブジェクトのエッジとコーナーに対応します。 最もよく知られているキーポイント検出器は、ハリスコーナー検出器 SIFT SURFです。

以下に、前の画像にキーポイント検出器を適用した例を示します。 検出されたキーポイントは紫色で表示されます。

重要なポイントは、犬の目、耳、口、脚の領域にあることがわかります。

次のステップは、検出されたキーポイントごとにローカル記述子を計算することです。 ローカル記述子は、ポイントの視覚的な外観を表す1次元ベクトルによって定義されます。 その結果、オブジェクトの同じ部分からのポイントは同様のベクトルを持ちます。 前述のSIFTおよびSURFメソッドは、キーポイントを検出した後にローカル記述子を計算できます。

最後のステップは、2つの画像の記述子を一致させることです。これを行うには、画像の記述子を繰り返し比較して、類似している記述子のペアを検出します。 類似の記述子の量が特定のしきい値を超えている場合、2つの画像が同じオブジェクトを表し、類似していると見なされることを意味します。

以下では、2つの画像の犬の左耳と右前脚にあるポイントを一致させました。

キーポイント検出器とローカル記述子を使用した画像マッチングは、成功した画像比較方法です。 考えられる欠点の1つは、アルゴリズムの最終ステップの実行時間です。ここで、は検出されたキーポイントの数です。ただし、を使用して、キーポイント間のマッチングステップをより高速に実行するアルゴリズムが他にもあります。 X247X]四分木またはバイナリ空間分割

5. シャムネットワーク

その直感性にもかかわらず、画像マッチングは実際の画像ではうまく一般化できません。 そのパフォーマンスは、キーポイント検出器とローカル機能記述子の品質に依存します。 次に、SiameseNetworksを使用する現在の最高の画像比較アルゴリズムに移ります。

シャムネットワークは、2つの同一のサブネットワークで構成されるニューラルネットワークです。つまり、まったく同じパラメータと重みが含まれています。各サブネットワークは、畳み込みニューラルネットワークなどの画像用に設計された任意のニューラルネットワークにすることができます。 ]。 ネットワークの入力は、類似している(肯定的な例)または類似していない(否定的な例)画像のペアです。

トレーニング中に、サブネットワークを介して画像を渡し、各画像に1つずつ、2つの特徴ベクトルを出力として取得します。 入力ペアが類似している場合は、これら2つのベクトルをできるだけ近づけ、その逆も可能にします。これを実現するには、ベクトルのペアをとる対比損失関数を使用します。同様の画像からのユークリッド距離を最小化し、それ以外の場合は距離を最大化します。

画像が類似している場合とそうでない場合。 また、はハイパーパラメータであり、類似していない画像間の下限距離を定義します。

以下の画像では、ポジティブな例とネガティブな例の場合のシャムアーキテクチャを見ることができます。

トレーニング後、ネットワークは、出力ベクトルのユークリッド距離を使用して画像の任意のペアを比較することを正常に学習しました(距離が小さいと類似性が高くなります)。

シャムネットワークを使用することで、最も過酷な条件(低品質の画像、ぼやけ、オクルージョンなど)でも高精度で画像を比較することができます。 唯一の欠点は、これがトレーニング用のラベル付き画像データセットを必要とする学習ベースの方法であるということです。

6. 結論

このチュートリアルでは、画像比較のための3つのアルゴリズムについて説明しました。 まず、問題について簡単に紹介しました。 次に、例示的な例とともにアルゴリズムを提示しました。