bag of visual words を用いた画像検索
Computer Vision Toolbox™ 関数を使用してイメージによる探索ができます。これはコンテンツ ベースの画像検索 (Content-Based Image Retrieval: CBIR) システムとも呼ばれます。CBIR システムは、クエリ イメージと似ているイメージ コレクションからイメージを検索するために使用されます。このタイプのシステムは、Web ベースの商品探索や監視システム、場所の視覚判定といったさまざまな分野に利用できます。システムは、まずイメージ コレクションを探索してクエリ イメージに視覚的に類似したものを見つけます。
検索システムは bag of visual words、つまりイメージ記述子のコレクションを使用して、イメージのデータ セットを表します。イメージには、ビジュアル ワードのマッピングを作成するためにインデックスが付けられます。インデックスは、各ビジュアル ワードをイメージ セット内の出現箇所にマッピングします。そしてクエリ イメージとインデックスを比較し、クエリ イメージに最もよく似ているイメージを判定します。CBIR システムのワークフローを使用して、既知のイメージ探索結果のセットの精度を評価することができます。
検索システムのワークフロー
検索するイメージ特徴を表すイメージ セットを作成します。
imageDatastore
を使用してイメージ データを保存します。さまざまな視点から見たオブジェクトを表せるよう、数多くのイメージを使用します。さまざまな視点からの多くのイメージを使用すると、bag of visual words の学習に役立ち、イメージ探索の精度が向上します。特徴のタイプ。関数
indexImages
は、Speeded Up Robust Features (SURF) を使用して bag of visual words を作成します。他のタイプの特徴の場合、カスタムの抽出器を使用できます。その後、bagOfFeatures
を使って bag of visual words を作成します。Create Search Index Using Custom Bag of Featuresの例を参照してください。学習セットには元の
imgSet
または別のイメージ コレクションを使用できます。別のコレクションを使用する場合、イメージ インデックスを作成する前に、関数bagOfFeatures
を使用して bag of visual words を作成してください。同じイメージ セットを使用すると、ビジュアル ボキャブラリが探索セットに合わせて調整されるというメリットが得られます。ただし、この方法には、大きく異なるイメージ セットに使用するビジュアル ボキャブラリを検索システムが学習し直さなければならないというデメリットもあります。独立したセットを使用すると、ビジュアル ボキャブラリによって、探索インデックスへの新しいイメージの追加をより効果的に処理できます。イメージのインデックス付けを行います。関数
indexImages
は、ビジュアル ワードをそのイメージ コレクションでの出現箇所にマッピングする探索インデックスを作成します。独立した集合またはサブセットの集合を使用して bag of visual words を作成する場合、indexImages
への入力引数としてbag
を含めてください。独立した bag of visual words を作成しない場合は、関数でimgSet
入力集合全体に基づいてこの bag が作成されます。イメージ インデックスに対して直接イメージを追加したり削除するには、addImages
メソッドとremoveImages
メソッドを使用できます。データ セットで類似したイメージを探索します。関数
retrieveImages
を使用してイメージ セットを探索し、クエリ イメージに類似したイメージを探します。結果の数を指定するにはNumResults
プロパティを使用します。たとえば、類似度が最も高いものから上位 10 個のイメージを返すには、クエリ イメージの小さい領域を使用するようにROI
プロパティを設定します。小さい領域は、探索対象のイメージ内にある特定のオブジェクトを分離するのに役立ちます。
画像検索結果の評価
関数 evaluateImageRetrieval
を使用して、クエリ イメージと既知の結果セットを用いて画像検索結果を評価します。期待どおりの結果が得られなかった場合、bag of visual words を使ってイメージ特徴を変更したり補足することができます。検索された特徴のタイプを確認します。検索に使用される特徴のタイプは、コレクション内のイメージのタイプによって決まります。たとえば、海辺、都市部、ハイウェイなどのシーンで構成されるイメージ コレクションには、大局的なイメージ特徴を使用します。カラー ヒストグラムなどの大局的イメージ特徴は、シーン全体の主要素を表現します。イメージ コレクション内で特定のオブジェクトを見つけるには、代わりにオブジェクトのキー ポイントの周りから抽出された局所的なイメージ特徴を使用してください。