跟着Bubbliiiing学睿智的目标检测——第一天

前言

跟着Bubbliiiing学了一段时间了,睿智的目标检测这个专栏实在是太好啦,我决定从头开始跟着过一遍,加深印象,也加入了一些自己的理解~

关于IOU

参考这篇博文睿智的目标检测1——IOU的概念与python实例

IOU其实就是交并比,交集和并集的比值

import cv2
import numpy as np


def CountIOU(RecA, RecB):
    xA = max(RecA[0], RecB[0])#60
    yA = max(RecA[1], RecB[1])#60
    xB = min(RecA[2], RecB[2])#300
    yB = min(RecA[3], RecB[3])#300
    # 计算交集部分面积
    interArea = max(0, xB - xA + 1) * max(0, yB - yA + 1)#241*241
    # 计算预测值和真实值的面积
    RecA_Area = (RecA[2] - RecA[0] + 1) * (RecA[3] - RecA[1] + 1)#251*251
    RecB_Area = (RecB[2] - RecB[0] + 1) * (RecB[3] - RecB[1] + 1)#261*261
    # 计算IOU
    iou = interArea / float(RecA_Area + RecB_Area - interArea)

    return iou


img = np.zeros(shape=(512, 512, 3), dtype=np.uint8)#形状为(512, 512, 3),全0
img.fill(255)#填充背景为白色

RecA = [50, 50, 300, 300]#左上角坐标(50, 50),右下角坐标(300, 300)
RecB = [60, 60, 320, 320]

cv2.rectangle(img, (RecA[0], RecA[1]), (RecA[2], RecA[3]), (0, 255, 0), thickness=5)
cv2.rectangle(img, (RecB[0], RecB[1]), (RecB[2], RecB[3]), (255, 0, 0), thickness=5)

IOU = CountIOU(RecA, RecB)
font = cv2.FONT_HERSHEY_SIMPLEX#设置文本字体

#生成文本. %.2f输出两位小数的值,%是占位符,由后面的IOU代替
cv2.putText(img, "IOU = %.2f" % IOU, org=(130, 190), fontFace=font, fontScale=0.8, color=(0, 0, 0), thickness=2)

cv2.imshow("image", img)
cv2.waitKey()#是一个键盘绑定函数,如果没有的话窗口会闪烁秒退
#cv2.destroyAllWindows()#用来删除窗口的,取消分配内存使用。小函数的话没有也可以

mAP

参考这篇博文睿智的目标检测2——mAP的概念
以我最近关注的YOLOv8官网显示的结果参数为例,其中包括size, mAP, speed, params, FLOPs
YOLOv8不同模型参数
AP指单个类别的平均精度值,即P-R曲线下的面积
mAP指所有类别的平均精确度
举个例子:假设有M=1张图,这张图中有N=10个检测目标,其中具有K=2个检测类,使用目标检测器得到了S=10个Bounding Box(BB),每个BB包含BB所在位置以及对于K=2个类的得分C,计算IOU值。在这里插入图片描述

步骤1:
①对类别1来说,10个预测框,预测出是类别1且大于0.5的有0.85和0.93,故TP1=2, FP1=8
②对类别2来说,10个预测框,预测出事类别2且大于0.5的有0.76,0.52,0.8,0.82,0.75,故TP2=4,FP2=6
步骤2:
共得到20个C值
步骤3:
取前10个最大值
TP=6,FP=4, 由N=10,所以FN=4
得到S个点,
P分别是=0.93,0.85,0.82,0.8,0.76,0.75, 其他都为0了
由于S和N值相同,所以P和R相等
PS:此处是自己举的例子,点个数少,一般情况下PR曲线长这样子

那么mAP@0.5:0.95指的是IOU阈值从0.5到0.95间隔0.05取值(0.50、0.55、0.60、0.65、0.70、0.75、0.80、0.85、0.90、0.95)上的平均mAP。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值