手写目标检测非极大值抑制与 IoU 计算算子 (Live Coding: Non-Maximum Suppression & Intersection over Union in Pure Numpy) 是计算机视觉与多模态目标检测系统后处理阶段最核心的手撕代码题;包含两大部分:1) 向量化 IoU 计算:给定两组候选框
A,B∈RM×4(坐标为
[x1,y1,x2,y2]),利用矩阵广播计算两两相交区域的左上与右下坐标
(xinter1=max(Ax1,Bx1),yinter1=max(Ay1,By1),…),进而计算
IoU=AreaA+AreaB−Intersection AreaIntersection Area;2) NMS 贪心抑制过滤:按分类置信度得分降序排序所有框,每次挑选当前最高分框保留入输出集,并计算其与剩余所有框的 IoU,剔除所有
IoU>threshold 的重叠冗余框,循环直至候选集为空。