matlab练习程序(IOU交并比)
IOU(Intersection over Union)交并比是目标检测中用来评价检测结果和真实结果重合度的一个指标。
公式如下:
即两个集合的交集除以并集。
matlab代码如下:
clear all;close all;clc; A = [5,5,10,10]; B = [6,6,11,11]; xmin = max(A(1),B(1)); ymin = max(A(2),B(2)); xmax = min(A(3),B(3)); ymax = min(A(4),B(4)); intersection = (xmax-xmin+1)*(ymax-ymin+1); S1 = (A(3)-A(1)+1)*(A(4)-A(2)+1); %考虑到图像像素,这里有+1操作 S2 = (B(3)-B(1)+1)*(B(4)-B(2)+1); iou = intersection/(S1 + S2 - intersection); box1 = [A(1) A(2); A(1) A(4); A(3) A(4); A(3) A(2); A(1) A(2)]; box2 = [B(1) B(2); B(1) B(4); B(3) B(4); B(3) B(2); B(1) B(2)]; plot(box1(:,1),box1(:,2),'r'); hold on; plot(box2(:,1),box2(:,2),'b'); title(strcat('iou:',num2str(iou)));
结果如下: