看到网上关于这个东西很直观的一个解释,今天看代码,直接理解还是比较抽象,所以也想把这个记下来供以后查看可以简单的将橙色框理解为检测(检测框);黑色框(轨道)追踪框。计算IOU即为
IOU =两框交集/两框区域和

def iou(det,trk):
#det,trk 代表检测框与轨迹(追踪框)
"""
Computes IUO between two bboxes in the form [x1,y1,x2,y2]
坐标顺序为 xmin ymin xmax ymax 确定一个矩形
"""
#det[0]代表检测框的左上顶角横坐标; trk[0]代表追踪框的左上顶角横坐标
xx1 = np.maximum(det[0], trk[0]) #使用maximum 函数;X 与 Y 逐位比较取其大者;
yy1 = np.maximum(det[1], trk[1])
xx2 = np.minimum(det[2], trk[2])
yy2 = np.minimum(det[3], trk[3])
#找到交集的左上顶角到右下顶角的坐标
w = np.maximum(0., xx2 - xx1)
h = np.maximum(0., yy2 - yy1)
#得到交集的宽高
wh = w * h
#iou为交并比;求并集会多算一个交集区域,减去一个即可
output = wh / ((det[2]-det[0])*(det[3]-det[1])
+ (trk[2]-trk[0])*(trk[3]-trk[1]) - wh)
return(output)
本文详细解析了目标检测中检测框与追踪框的概念,介绍了如何通过计算交并比(IOU)来评估两个框之间的重叠程度。通过具体代码示例,展示了计算IOU的具体步骤,有助于深入理解目标检测与追踪算法。
2万+





