IoU(Intersection over Union)
原文链接:https://cloud.tencent.com/developer/article/1150075
Intersection over Union是一种测量在特定数据集中检测相应物体准确度的一个标准。我们可以在很多物体检测挑战中,例如PASCAL VOC challenge中看多很多使用该标准的做法。
IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxex)的任务都可以用IoU来进行测量。为了可以使IoU用于测量任意大小形状的物体检测,我们需要:
- 1、 ground-truth bounding boxes(人为在训练集图像中标出要检测物体的大概范围);
- 2、我们的算法得出的结果范围。
也就是说,这个标准用于测量真实和预测之间的相关度,相关度越高,该值越高。
下图展示了ground-truth和predicted的结果,蓝色标线是人为标记的正确结果,橘色标线是算法预测出来的结果,IoU要做的就是在这两个结果中测量算法的准确度。
很简单,IoU相当于两个区域重叠的部分除以两个区域的集合部分得出的结果。
一般来说,这个score > 0.5 就可以被认为一个不错的结果了。
https://cloud.tencent.com/developer/article/2361952
近年来,YOLOv8引入了多种改进的IOU方法,包括WIoU(Weighted IOU)、α-IoU(Alpha IOU)、SIoU(Soft IOU)和EIoU(Enhanced IOU)等。
非极大值抑制(NMS)
原文链接:https://blog.csdn.net/Code_and516/article/details/130281080
非极大值抑制(Non-Maximum Suppression,NMS)是一种图像处理中的技术。
目标检测一般分为两个过程:训练过程+检测(推理)过程。
在训练过程中,目标检测算法会根据给定的ground truth调整深度学习网络参数来拟合数据集的目标特征,训练完成后,神经网络的参数固定,因而能够直接对新的图像进行目标预测。
在实际的目标预测中,我们通常使用一个检测器来检测出可能存在的物体,并给出其位置和大小的预测框。一般的目标检测算法(R-CNN,YOLO等等)都会产生非常多的目标框,其中有很多重复的框定位到同一个目标,NMS作为目标检测的最后一步,用来去除这些重复的框,只保留最优的一个。
基本原理:先在图像中找到所有可能包含目标物体的矩形区域,并按照它们的置信度进行排列。然后从置信度最高的矩形开始,遍历所有的矩形,如果发现当前的矩形与前面任意一个矩形的重叠面积大于一个阈值,则将当前矩形舍去。使得最终保留的预测框数量最少,但同时又能够保证检测的准确性和召回率。具体的实现方法包括以下几个步骤:
- 1、对于每个类别,按照预测框的置信度进行排序,将置信度最高的预测框作为基准。
- 2、从剩余的预测框中选择一个与基准框的重叠面积最大的框,如果其重叠面积大于一定的阈值,则将其删除。
- 3、对于剩余的预测框,重复步骤2,直到所有的重叠面积都小于阈值,或者没有被删除的框剩余为止。
通过这样的方式,NMS可以过滤掉所有与基准框重叠面积大于阈值的冗余框,从而实现检测结果的优化。值得注意的是,NMS的阈值通常需要根据具体的数据集和应用场景进行调整,以兼顾准确性和召回率。
总结来说,非极大值抑制原理是通过较高置信度的目标框作为基准,筛选出与其重叠度较低的目标框,从而去除掉冗余的目标框,提高目标检测的精度和效率。
置信度
原文链接:https://blog.csdn.net/AI_dataloads/article/details/134235198
在YOLO中,置信度是一个介于0和1之间的数值,表示模型对检测到的目标的确信程度。如果置信度接近1,那么模型相信该框中包含了目标对象。如果置信度接近0,模型认为该框中可能没有目标。所以,置信度可以看作是一个概率值,表示目标的存在概率。
置信度的计算主要基于两个因素:
- 1、边界框内是否存在物体:如果边界框正确地框住了一个物体,那么算法会给出较高的置信度。反之,如果框里什么都没有,置信度就会很低。
- 2、边界框与真实物体的匹配程度:这其实是看预测的边界框与实际物体的框有多接近。它们越接近,说明预测越准确,置信度也就越高。这个匹配程度通常用一个叫做IoU(交并比)的指标来衡量。
*置信度 :pr(object)× IOU(true,pref)
其中:
- Pr(Object) 是边界框内存在对象的概率。如果边界框内有对象,则Pr(Object)=1;如果没有对象,则Pr(Object)=0。
- IOU(Intersection over Union)是真实框(ground truth)与预测框(predicted box)的交并比,即预测框和真实框面积的交集与并集的比值。
内/外测试
原文链接:https://www.cnblogs.com/azbane/p/8066837.html
在图形学中判断一个点是否在多边形内,若多边形不是自相交的,那么可以简单的判断这个点在多边形内部还是外部;若多边形是自相交的,那么就需要根据非零环绕数规则和奇-偶规则判断。
判断多边形是否是自相交的:多边形在平面内除顶点外还有其他公共点
内-外测试
-
不自交的多边形:多边形仅在顶点处连接,而在平面内没有其他公共点,此时可以直接划分内-外部分。
-
自相交的多边形:多边形在平面内除顶点外还有其他公共点,此时划分内-外部分需要采用以下的方法。
(1)奇-偶规则(Odd-even Rule):奇数表示在多边形内,偶数表示在多边形外
从任意位置p作一条射线,若与该射线相交的多边形边的数目为奇数,则p是多边形内部点,否则是外部点。
(2)非零环绕数规则(Nonzero Winding Number Rule):若环绕数为0表示在多边形内,非零表示在多边形外
首先使多边形的边变为矢量。将环绕数初始化为零。再从任意位置p作一条射线。当从p点沿射线方向移动时,对在每个方向上穿过射线的边计数,每当多边形的边从右到左穿过射线时,环绕数加1,从左到右时,环绕数减1。处理完多边形的所有相关边之后,若环绕数为非零,则p为内部点,否则,p是外部点。
参考例子
- 案例一
判断点p是否在多边形内,从点p向外做一条射线(可以任意方向),多边形的边从左到右经过射线时环数减1,多边形的边从右往左经过射线时环数加1,最后环数不为0,即表示在多边形内部。
- 案例二
非零绕数规则和奇偶规则会判断出现矛盾的情况,如下图所示,左侧表示用 奇偶规则判断绕环数为2 ,表示在多边形外,所以没有填充。右侧图用非零绕环规则判断出绕数为2,非0表示在多边形内部,所以填充。
- 案例三
另外一个例子,如下