交并比的计算
在目标检测中,经常需要计算预测回归框和真实回归框的交并比(Intersection Over Union,IOU),也称重叠度,计算公式如下。
\(IOU = \frac{预测回归框与真实回归框的交集}{预测回归框与真实回归框的并集}\)
由于回归框只是确定物体的位置,不需要考虑物体的倾斜、旋转等情况。那么已知两个回归框A,B各自左上顶点右下顶点的坐标,如何计算二者的交集和并集。假定回归框A的左上顶点和右下顶点的坐标分为\((x_{a_1},y_{a_1}),(x_{a_2},y_{a_2})\),回归框B的左上顶点和右下顶点的坐标分为\((x_{b_1},y_{b_1}),(x_{b_2},y_{b_2})\)。为方便理解,将回归框用集合语言来描述:
\(A=\{(x,y)| x_{a_1} \leq x \leq x_{a_2},y_{a_1} \leq y \leq y_{a_2},x,y \in R\}\\B=\{(x,y)| x_{b_1} \leq x \leq x_{b_2},y_{b_1} \leq y \leq y_{b_2},x,y \in R\}\)
-
交集
A,B集合要想有交集,直观来看不等式右端点的最小值必须大于左端点的最大值,以横坐标为例,有一下三种情况:
-
无交集
-
有交集
-
重叠
-
则可得到不等式组:
\[max\{x_{a_1},x_{b_1}\} \leq min\{x_{a_2},x_{b_2}\}\\ max\{y_{a_1},y_{b_1}\} \leq min\{y_{a_2},y_{b_2}\}
\]
成立时,集合A、B交集非空,且当不等式组成立时,交集C为:
\[C=A \cap B=\{(x,y)|max\{x_{a_1},x_{b1}\}\leq x \leq min\{x_{a_2},x_{b_2}\},max\{y_{a_1},y_{b1}\}\leq y \leq min\{y_{a_2},y_{b_2}\}\}
\]
-
并集
显然,由于已求得交集,可以很轻松得到预测回归框和真实回归框的并集为\(D = A \cup B=A+B-A \cap B\)
-
IOU
求得预测回归框和真实回归框的交集和并集之后,可以很容易计算出IOU的值:
\[S_C={(min\{x_{a_2},x_{b_2}\}-max\{x_{a_1},x_{b_1}\})\times(min\{y_{a_2},y_{b_2}\}-max\{y_{a_1},y_{b_1}\})}
\]
\[S_D=S_A+S_B-S_C=(x_{a_2}-x_{a_1})(y_{a_2}-y_{a_1})+(x_{b_2}-x_{b_1})(y_{b_2}-y_{b_1})-S_C
\]
\[IOU = \frac{S_C}{S_D}=\frac{{(min\{x_{a_2},x_{b_2}\}-max\{x_{a_1},x_{b_1}\})\times(min\{y_{a_2},y_{b_2}\}-max\{y_{a_1},y_{b_1}\})}}{{(x_{a_2}-x_{a_1})(y_{a_2}-y_{a_1})+(x_{b_2}-x_{b_1})(y_{b_2}-y_{b_1})-(min\{x_{a_2},x_{b_2}\}-max\{x_{a_1},x_{b_1}\})\times(min\{y_{a_2},y_{b_2}\}-max\{y_{a_1},y_{b_1}\})}}
\]
关于交并比计算的更详细内容,可以参考以下链接: