【面相源码模板】【手机遥控软件++源码】【网站日志分析+源码】NMS源码

时间:2024-11-20 07:06:56 编辑:微驾校源码 来源:源码之家轮播代码

1.YOLOv1详解
2.yolo5参数说明

NMS源码

YOLOv1详解

            从目标检测任务(Object Detection Task)发展来看,主要有两类方法。一类是R-CNN系列及其类似算法,称为two-stage,将目标检测任务分为边界框回归和物体分类两个模块。虽然模型前面大量的提取特征以及候选框的选取都是单个网络完成,但回归和分类任务毕竟还是分开的,分开训练造成网络较难收敛,且预测时速度慢,但准确度较高。另一类是本文描述以及后面会更新换代的YOLO算法,称为one-stage,将目标检测任务单纯看做回归任务。YOLOv1使用端到端的网络训练模型,速度快,但准确度相对低些,主要用于实时检测,例如视频目标检测。

             由于YOLOv1是端到端进行训练,因此YOLOv1只有一条单一的网络分支。YOLOv1输入为 的图像,经过一个修改的GoogLeNet网络(网络到底什么样的其实不用管,只要知道是一堆卷积和池化的堆叠即可),后面接一些全连接层(同样无所谓接什么全连接层,看下参数或者源码就直接懂了),最后接到一个 的全连接层,直接reshape为 (这里reshape成这样是有意图的,具体参见下面部分)。

            YOLOv1将一张图像(例如 )划分为 个网格(YOLOv1中 ,如下图所示),一共 个网格。

            损失函数有多个部分,我们现在把它们分开来说,后面直接挨个加起来即可。

             第一部分如下所示,计算预测边界框和GT框中心点之间的差距。其中 表示第 个网格的第 个边界框是否负责一个物体,是为1,不是为0。

             第二部分类似第一部分,主要计算预测宽高和GT宽高损失。这里加上根号表示大边界框小偏差应该比小边界框小偏差更重要。

             第三部分计算对于每个边界框的置信度分数与预测的置信度分数之间差距。 表示置信度分数, 表示预测的边界框和对应GT框的IoU。

             最后一部分计算类概率损失, 表示当网格中没有物体时不惩罚。

        其中, , 。

        论文原文: /hackernoon/understanding-yolo-f5abbc

        NMS参考: /presentation/d/1aeRvtKGKHdD5lg6Hgyhx5rPq_ZOsGjG5rJ1HP7BbA/pub?start=false&loop=false&delayms=#slide=id.p

yolo5参数说明

       在尝试使用yolo5进行图像识别时,我最初主要依赖GitHub上的hpc案例,但对加载模型时的某些参数感到困惑。为了解答疑问,我直接查看了yolo训练模型的面相源码模板源代码,从而揭示了这些参数的手机遥控软件++源码含义。

       首先,conf_thres,即置信度阈值,它决定推理结果的显示条件。当预测概率超过此阈值时,才会显示结果。这个阈值的网站日志分析+源码设定直接影响了识别的精度和召回率。

       其次,iou_thres是交并比阈值,用于衡量预测框与真实框的重叠程度。阈值增大时,网盘源码+asp可能导致对同一物体的多个预测被视为多个物体,反之,阈值减小时,可能会合并多个不同的微信转盘+源码物体预测为一个。这个参数影响了检测的精确性和完整性。

       max_det则控制每个类别允许的最大检测数量,如果设置为1,意味着只保留预测概率最高的一个结果。这对于避免重复检测非常关键。

       最后,agnostic_nms是关于类别无关NMS(Non-Maximum Suppression)的选择。默认情况下为false,即进行类别相关的NMS。如果设为true,会在不同类别间进行NMS,避免了如足球和排球这类相似物体的混淆,只保留最匹配的预测框。