メインコンテンツまでスキップ

pairwise_ioa

pairwise_ioa(boxes1: Boxes, boxes2: Boxes) -> np.ndarray

  • 説明

    pairwise_ioa は、2 つの境界ボックスリスト間の IoA(交差比率)を計算する関数です。この関数は、すべての N x M ペアにおける境界ボックス間の IoA を計算します。入力される境界ボックスは Boxes 型である必要があります。

  • パラメータ

    • boxes1 (Boxes):最初の境界ボックスリスト。N 個の境界ボックスを含みます。
    • boxes2 (Boxes):2 番目の境界ボックスリスト。M 個の境界ボックスを含みます。
  • import docsaidkit as D

    boxes1 = D.Boxes([[10, 20, 50, 80], [20, 30, 60, 90]])
    boxes2 = D.Boxes([[20, 30, 60, 90], [30, 40, 70, 100]])
    ioa = D.pairwise_ioa(boxes1, boxes2)
    print(ioa)
    # >>> [[0.625 0.33333334]
    # [1.0 0.625]]

補足説明

IoA の概要

IoA(Intersection over Area)は、境界ボックスの重なり具合を評価する指標で、予測された境界ボックスと実際の境界ボックスの交差面積と実際の境界ボックスの面積の比率を測定します。

定義

IoA の計算式は、予測された境界ボックスと実際の境界ボックスの交差面積を実際の境界ボックスの面積で割ったものです。IoA の値は 0 から 1 の間で、数値が大きいほど予測された境界ボックスが実際の境界ボックスをより多く覆っていることを意味します。

計算手順

  1. 境界ボックスの座標を決定:まず、予測された境界ボックスと実際の境界ボックスの位置を決定します。通常、境界ボックスは 4 つの座標(x0, y0, x1, y1)で表され、(x0, y0) は左上角、(x1, y1) は右下角の座標です。

  2. 交差面積の計算:予測された境界ボックスと実際の境界ボックスの交差面積を計算します。

  3. IoA の計算:交差面積を実際の境界ボックスの面積で割り、IoA の値を得ます。

使用例

  • 物体検出:物体検出タスクでは、IoA は予測された境界ボックスと実際の境界ボックスの重なり具合を評価するために使用され、モデルの精度を評価するために役立ちます。

  • モデル評価:IoA は異なる物体検出モデルの性能を評価し比較するためによく使用されます。IoA の値が高いほど、モデルがより正確な検出を行っていることを示します。

  • 非極大値抑制(NMS):物体検出後の後処理において、IoA は非極大値抑制(NMS)に使用され、重なった検出ボックスを排除し、最適な検出結果を保持します。

長所と制限

  • 長所:IoA は予測された境界ボックスと実際の境界ボックス間の重なり具合を定量化し、モデルの精度を評価するのに役立ちます。

  • 制限:IoA は予測された境界ボックスと実際の境界ボックスの重なり具合だけを考慮し、境界ボックスの形状や向きなど他の要素を考慮していないため、特定の状況では十分に正確ではない場合があります。