MATLAB で CBIR システムを作成し、類似度測定をユークリッド距離として使用しました。これをクエリ画像ごとに使用して、上位 20 の画像を取得します。
システムのテストにWANG データセットを使用しました。
10 個のクラス (アフリカ人、バス、バラなど) が含まれており、それぞれに 100 個の画像が含まれています (合計 1000 個の画像)。
私の方法:
1. ベクトル (それぞれ 64 + 196 + 28 = 288 次元) を構築するために、コレログラム、共起行列 (CCM)、およびピクセル スキャン パターン (DBPSP) の違いを使用しています。
- 1000 db の各画像には、事前にベクトルが作成されています。
- クエリ画像が来て、それもベクトルを構築します(再び228次元)。
- 類似性にはユークリッド距離を使用し、db 画像ベクトルをユークリッド距離の降順に並べ替えます。
上位 20 件の結果が表示されます。
それらの 20 で、TP または FP を持つことができます。
単一のクエリ画像の場合、このリンクを使用して、Precision と Recall を簡単に計算し、PR 曲線をプロットできます。
クラス全体で同じことを行うにはどうすればよいですか?
私のアプローチ: クラス A に属する各画像について、上位 20 枚の画像を見つけます。それはそれぞれ TP (真陽性) と FP (偽陽性) です。
TP FP
Image1 17 3
Image2 15 5
...
...
Image100 10 10
Total 1500 500
クラス A の精度 = 1500/(2000) = .75 (そうですか??)
クラス A のリコール ---> スタック ??
PR カーブ ----> スタック ?? いくつかのリンクには、そのために分類子が必要であると書かれていますが、そうでないリンクもあります...私は本当に混乱しています。