IOU为交并比,指的是两个bbox的交集面积比上他们的并集面积,用来评估两个bbox的重合度。。
应用
(1)在目标检测中,同一个目标可能被预测多个矩形框,这时候只想保留得分最高的那一个,需要剔除与高score bbox有较高重合度的低score bbox(NMS),而这里的重合度评估标准就是计算他们的IOU;
(2)训练faster R_CNN中,对于预测的bounding box,需要通过计算预测框和目标框的IOU来判断这个框是正样本还是负样本,进而训练模型;
(2)对预测框性能评估时,评估指标为mAP(可以简单理解为精确度),我们要对预测正确的框计算mAP,那么怎么才算预测正确呢?这里就用到了IOU,当预框与真实框的IOU>0.5,并且类别一致,说明预测正确,这里就用到了IOU;
代码实现
其实这个实现代码在吴恩达老师的深度学习课程中的编程作业里有实现:
两个矩形框的面积很好求,难点在于求交集的矩形面积,貌似要考虑多种交集的情况,但实际上,所有的情况都是一种情况。。
# box1 -- first box, list object with coordinates (x1, y1, x2, y2), (upper left and lower right)
# box2 -- second box, list object with coordinates (x1, y1, x2, y2)
xi1 = max(box1[0], box2[0]) ## 左上x
yi1 =