深度学习:YOLO目标检测和YOLO-V1算法损失函数的计算

简介

YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,它的核心思想是将目标检测问题转化为一个回归问题,通过一个神经网络直接预测目标的类别和位置。

YOLO算法将输入图像分成SxS个网格,每个网格负责预测该网格内是否存在目标以及目标的类别和位置信息。此外,YOLO算法还采用了多尺度特征融合的技术,使得算法能够在不同尺度下对目标进行检测。 相比于传统的目标检测算法,如R-CNN、Fast R-CNN和Faster R-CNN等,YOLO算法具有更快的检测速度和更高的准确率。这得益于其端到端训练方式和单阶段检测的特性,使其可以同时处理分类和定位任务,避免了传统方法中的多阶段处理过程。因此,YOLO算法广泛应用于实时目标检测和自动驾驶等领域。

one-stage的优缺点:

优点:识别速度非常快,适合做实时检测任务

缺点:正确率相比较低

two-stage的优缺点:

优点:正确率比较高,识别效果理想

缺点:识别速度比较慢,通常达到5FPS

两阶段目标检测器是一种先生成候选框,然后对候选框进行分类和回归的检测方法。

这种方法主要包括两个阶段:

第一阶段:生成候选框。该算法从输入图像中生成多个候选框。每个候选框都会经过一个CNN模型进行特征提取,然后通过分类器进行过滤,保留与目标物体更相似的候选框。

第二阶段:在保留的候选框上进行精细的分类和回归。这个阶段通常使用另一个CNN模型或类似SVM的分类器来进行分类和回归。对于每个候选框,可能需要预测物体的类别、位置和大小等。 代表性的两阶段目标检测器包括R-CNN系列,以及其改进版本Fast R-CNN、Faster R-CNN和Mask R-CNN等。

Map指标

根据不同的阈值,绘制出召回率和精确率的曲线,将曲线以下的面积作为MAP值。当MAP值越大,则表示指标越好 。

网络架构

网络结构借鉴了 GoogLeNet 。24个卷积层,2个全链接层。(用1×1 reduction layers 紧跟 3×3 convolutional layers 取代Goolenet的 inception modules )

7×7意味着7×7个grid cell,30表示每个grid cell包含30个信息,其中2个预测框,每个预测框包含5个信息(x y w h c),分别为中心点位置坐标,宽高以及置信度,剩下20个是针对数据集的20个种类的预测概率。其中坐标的x,y用对应网格的归一化到0-1之间,w,h用图像的width和height归一化到0-1之间。

Yolo系列 v1 损失函数

YOLO-V1算法最后输出的检测结果为7x7x30的形式,其中30个值分别包括两个候选框的位置和有无包含物体的置信度以及网格中包含20个物体类别的概率。那么YOLO的损失就包括三部分:位置误差,confidence误差,分类误差。

i为第几个分格,j为预选框(总共两种)

i=30,j=1(1代表黄色的框,2代表蓝色的框)

位置误差

x,y为中心点坐标,w,h为预选框的长和宽

i=30时候为1,其他时候为0

i=30,j=1时候为1,其他时候为0

i=30,j=1时候为0,其他时候为1

confidence误差

置信度

c=Pr(Object)*lou

边界框内是否存在物体(Pr(Object)),以及边界框与真实物体的匹配程度(IOU)

分类误差

非极大值抑制(Non-Maximum Suppression,NMS)

目标检测中常用的一种技术,其主要作用是去除可能小的的检测框,只保留最有可能包含目标物体的框,从而提高检测的准确性和效率。

YOLO V1存在的优缺点:

优点

  1. 实时性
  2. 网络结构简单
  3. 多对象检测
  4. 泛化能力

缺点

  1. 定位精度
  2. 召回率低
  3. 对小目标检测不佳
  4. 每个cell只能生成有限的框
相关推荐
开源技术24 分钟前
深入了解Turso,这个“用Rust重写的SQLite”
人工智能·python
初恋叫萱萱25 分钟前
构建高性能生成式AI应用:基于Rust Axum与蓝耘DeepSeek-V3.2大模型服务的全栈开发实战
开发语言·人工智能·rust
仙俊红1 小时前
LeetCode487周赛T2,删除子数组后的最终元素
数据结构·算法
-dzk-7 小时前
【代码随想录】LC 59.螺旋矩阵 II
c++·线性代数·算法·矩阵·模拟
水如烟8 小时前
孤能子视角:“组织行为学–组织文化“
人工智能
大山同学8 小时前
图片补全-Context Encoder
人工智能·机器学习·计算机视觉
风筝在晴天搁浅8 小时前
hot100 78.子集
java·算法
Jasmine_llq8 小时前
《P4587 [FJOI2016] 神秘数》
算法·倍增思想·稀疏表(st 表)·前缀和数组(解决静态区间和查询·st表核心实现高效预处理和查询·预处理优化(提前计算所需信息·快速io提升大规模数据读写效率
薛定谔的猫19828 小时前
十七、用 GPT2 中文对联模型实现经典上联自动对下联:
人工智能·深度学习·gpt2·大模型 训练 调优
超级大只老咪8 小时前
快速进制转换
笔记·算法