python目标检测IOU的特点是什么,如何计算IOU
Admin 2022-09-16 群英技术资讯 292 次浏览
神经网络的应用还有许多,目标检测就是其中之一,目标检测中有一个很重要的概念便是IOU
IOU是一种评价目标检测器的一种指标。
下图是一个示例:图中绿色框为实际框(好像不是很绿……),红色框为预测框,当我们需要判断两个框之间的关系时,需要用什么指标呢?
此时便需要用到IOU。
计算IOU的公式为:
可以看到IOU是一个比值,即交并比。
在分子部分,值为预测框和实际框之间的重叠区域;
在分母部分,值为预测框和实际框所占有的总区域。
交区域和并区域的比值,就是IOU。
与分类任务不同,我们的预测框的坐标需要去匹配实际框的坐标,而坐标的完全匹配是不现实的。因此,我们需要定义一个评估指标,奖励那些与匹配框匹配较好的预测框。
本文将画出两个矩形框,并计算他们的IOU。
效果如下:
import cv2 import numpy as np def CountIOU(RecA, RecB): xA = max(RecA[0], RecB[0]) yA = max(RecA[1], RecB[1]) xB = min(RecA[2], RecB[2]) yB = min(RecA[3], RecB[3]) # 计算交集部分面积 interArea = max(0, xB - xA + 1) * max(0, yB - yA + 1) # 计算预测值和真实值的面积 RecA_Area = (RecA[2] - RecA[0] + 1) * (RecA[3] - RecA[1] + 1) RecB_Area = (RecB[2] - RecB[0] + 1) * (RecB[3] - RecB[1] + 1) # 计算IOU iou = interArea / float(RecA_Area + RecB_Area - interArea) return iou img = np.zeros((512,512,3), np.uint8) img.fill(255) RecA = [50,50,300,300] RecB = [60,60,320,320] cv2.rectangle(img, (RecA[0],RecA[1]), (RecA[2],RecA[3]), (0, 255, 0), 5) cv2.rectangle(img, (RecB[0],RecB[1]), (RecB[2],RecB[3]), (255, 0, 0), 5) IOU = CountIOU(RecA,RecB) font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(img,"IOU = %.2f"%IOU,(130, 190),font,0.8,(0,0,0),2) cv2.imshow("image",img) cv2.waitKey() cv2.destroyAllWindows()
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
什么是运算符重载,就是让自定义的类生成的对象(实例)能够使用运算符进行操作,这篇文章主要给大家介绍了关于Python运算符重载的相关资料,需要的朋友可以参考下
常见的 Python 文件后缀有:py、pyc 、pyo、 pyi、pyw、 pyd、 pyx 等。本文给大家介绍Python相关文件常见的后缀名,感兴趣的朋友跟随小编一起看看吧
这篇文章主要介绍了Python-OpenCV的基本使用和相关函数介绍,主要包括图像的读取保存图像展示问题,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
这篇文章主要介绍了利用python开发app实战的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这次还是围绕surface对象进行详细介绍,并形成完整的案例过程,文中有非常详细实现百叶窗动态效果的代码示例,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008