1. モデル分類の目的
データの分類は正例(Positive)と負例(Negtive)の2種類であり、それぞれP、Nで表します。
一方、予測の場合、分類の正しさをT (True)、誤差を F (False) で表現すると、次の 4 種類の表現になります。
TP :(真陽性 正しい判断は良い例です 実際のポジティブな例) |
TN :(真陰性 正しい判断は否定的な例です 実際のマイナスの場合) |
FP :(ファスルポジティブ 誤検知_ 実際のマイナスの場合) |
FN :(偽陰性 否定的な例_ 実際のポジティブな例) |
Ps. このうち、P と N は分類器が考慮する正例と負例であり、実際の正例と負例は分類が正しいかどうかと組み合わせる必要があります。
2. 分類評価指標
①精度
(陽性と判定された全症例に占めるTPの割合)
精度 = TP / ( TP +FP )
②再現率(リコール)
(実際の陽性例におけるTPの割合)
リコール = TP / ( TP + FN ) = TP / P
③F1スコア
P = 精度 R = 再現率
④サポート
サポート度:このクラスに属する元の実データの数
⑤精度(Acc)
正しいクラスとして予測された合計の割合
⑥加重平均(加重平均)
加重平均 =
重量はサンプルを支えるものです
3. ターゲットの検出と評価指標
①IoU
交差と和の比率、つまり、予測フレーム(予測) と実際のターゲット(グラウンド トゥルース)の交差と和の比率。これは、予測ターゲットの信頼性を決定するために使用され、予測フレームの IoU が特定のしきい値よりも大きい場合、肯定的な分類とみなされます (通常は 0.5 または 0.3)。
つまり、 一般的な理解は、総面積に対する重なり合う面積の比率です。
②AP
平均精度 (Average Precision)。PR 曲線の下の領域を意味します。PR カーブは、 PrecisionとRecall をそれぞれXY 軸としたカーブであり、取得方法は次のとおりです。
1. モデルの予測結果を予測値の信頼度に応じて降順に並べる
2. リコールに従って 11 の異なるデータセットを選択します (リコール = [0,0.1...0.9,1.0])
3. この11個のデータを使って画像を描画します
と
ターゲット検出の場合、精度と再現率は次の式に単純化できます。
以下の画像を例に挙げます (緑はグラウンドトゥルース、赤は予測)
1. 処理の際、予測フレームを信頼度の高い順に並べて次の表を描画します (ACC は累積を意味します)
たとえば、オブジェクト K の場合、ACC TP = K の前にあるすべての TP の数 (K を含む)、および ACC FP は同じですが、オブジェクト K の精度と再現率を解く式は次のように簡略化できます。
(15 は実際のターゲット数です)
2. 処理が完了したら、すべてのポイントを PR マップとして描画します
3.APの計算
AP = A1+A2+A3+A4、Recall の各グループについて、最大の P 値を持つものを計算に使用します。たとえば、グラフ A3=(0.4-0.13333)x0.4285=0.1142
③地図
すべてのカテゴリのAP が合計され、平均化されます。
mAP は、新旧のターゲット検出アルゴリズムの違いを比較するための比較的優れた指標としてのみ使用されます。
3. コードの実装
参照: mAP 描画、描画時には次の 2 つの txt ファイルがデータ ソースとして必要です。
検出結果: 予測結果の座標 (最初の次元は信頼度)
グラウンドトゥルース: 実際のターゲットの座標
VOCライブラリのxmlファイルをグラウンドトゥルースに変換し、予測結果を検出結果として出力する独自のプログラムを作成できます。
すべてのクラスの混合 mAP マップを描画する必要がある場合は、次のように変更する必要があります。
サイクルを変更し、すべてのクラスを同じグラフに順番に描画し、最後に保存します。これには、plt コントロールのクリア (plt.cla) とイメージの保存 (plt.savefig) が含まれます。詳細については、plt コントロールのアプリケーションを参照してください。