(原)IOU的计算

Posted darkknightzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(原)IOU的计算相关的知识,希望对你有一定的参考价值。

转载请注明出处:

http://www.cnblogs.com/darkknightzh/p/9043395.html

参考网址:

https://github.com/deepinsight/insightface/blob/master/src/align/align_megaface.py中IOU的计算。

理解不对的地方敬请谅解。

 

IOU是两个矩形的交集与两个矩形并集的比值(可以这样理解吧)。

如下图所示:

黄色矩形起点坐标(x11,y11),终点坐标(x12,y12)

蓝色矩形起点坐标(x21,y21),终点坐标(x22,y22)。

则:

黄色矩形宽W1=x12-x11,高H1=y12-y11

蓝色矩形宽W2=x22-x21,高H1=y22-y21

 

两个矩形交集(红色矩形)宽W=W1+W2-(x22-x11)=x12-x21 (谢谢1楼@ plllala的提醒,已更正)

两个矩形交集(红色矩形)高H=H1+H2-(y22-y11)=y12-y21   (谢谢1楼@ plllala的提醒,已更正)

 

红色矩形面积(两个矩形交集)为area=W*H

两个矩形并集为area1+area2-area

 

如果x12<x21或者y12<y21,说明两个矩形无公共区域,IOU=0;

否则,IOU=area/(area1+area2-area)

 

以上是关于(原)IOU的计算的主要内容,如果未能解决你的问题,请参考以下文章

使用Python计算四边形与拟合四边形的最大交并比IOU

IOU计算Python代码实现

mask-rcnn代码解读:mask_iou的计算

目标检测——IoU 计算

Python - 计算两个球体相交的IoU

python 计算两个盒子之间的IoU