首页 > 其他分享 >Yolo系列——Yolo v2

Yolo系列——Yolo v2

时间:2024-10-25 22:45:09浏览次数:3  
标签:系列 YOLOv2 训练 卷积 模型 Yolo 网格 v2 预测

文章目录


YOLOv2(You Only Look Once version 2)是一种用于目标检测的深度学习模型,它在YOLOv1的基础上进行了多项改进,提高了检测速度和精度。

一、核心原理

YOLOv2将目标检测问题视为一个单个的回归问题,通过在图像上划分网格并在每个网格上预测边界框和类别概率来实现目标检测。具体来说,它将输入图像划分为S×S个网格,每个网格负责预测中心点落在该网格内的目标。对于每个网格,它预测B个边界框、每个边界框的置信度以及C个类别概率。

二、网络结构

YOLOv2采用了一个新的基础模型(特征提取器),称为Darknet。Darknet包括19个卷积层和5个最大池化层(其中1*1的卷积层主要是为了节省参数),主要用于提取图像特征。
在这里插入图片描述

三、关键改进

在YOLOv1的基础上一步一步通过实验改进最终得到YOLOv2,实验结果如下:

在这里插入图片描述

1.Batch Normalization

在最初的YOLOv1网络中,每一层卷积的结构都是线性卷积和激活函数,到了YOLOv2去除原有的dropout,在每个卷积层后面都添加了Batch Normalization层,以加快收敛速度,降低模型过拟合。它可以正则化模型,即使去除原有的dropout也不会造成过拟合。这一改进使得YOLOv2的mAP(mean Average Precision)提升了2.4%。

2.高分辨率分类器

YOLOv1是用224x224大小的输入训练分类网络,而用448x448大小的输入训练检测网络,这就导致分类网络和检测网络输入分辨率不匹配;YOLOv2的分类网络使用ImageNet预训练模型,并将输入图像的分辨率从224×224提高到448×448进行微调。让网络有时间调整它的参数,好让其能更好的运行在新分辨率上,最终给模型带来了4%mAP的提升。
在这里插入图片描述

3.Anchor机制

YOLOv2借鉴了Faster R-CNN中的Anchor机制,使用先验框来预测边界框的偏移。但与Faster R-CNN不同的是先验框并不是根据长宽固定比给定,这一改进提高了模型的召回率,由81%升至88%。
在这里插入图片描述

YOLOv2也使用k-means聚类方法在训练集上对先验框进行聚类,以产生更合适的先验框。
在这里插入图片描述

流程:在模型训练之前,提前把训练集的标签值提取出来,通过k-means聚类的方法,聚类出5个类别。结果当作是先验框。最后在进行模型训练。

4.直接坐标预测

Directed Location Prediction是一种方法,其目的是进行位置微调,预测偏移量。它用于限制偏移量,以防止在训练时出现发散。这种方法预测的是相对位置,即相对于网格的偏移量。
当YOLO使用anchor boxes进行训练时,在迭代初期会出现训练不稳定问题,大部分的不稳定性来自于对矩形框的(x,y)坐标位置预测。基于anchor boxes直接预测(x,y)坐标的公式如下:
在这里插入图片描述

如果tx的预测值为1,x的预测结果将是向右偏移该anchor box的宽度,相反,如果tx为-1,x的预测结果将向左偏移同样的量。会导致收敛问题,模型不稳定。所以在最开始训练时,v2选择相对gral cell的偏移量。如下图:
在这里插入图片描述
这里为大家例举一个示例,如上图预测值和上一个预选框的 p w p_w pw​与 p h p_h ph​都已经给定,通过计算公式我们可以得到在特征图上的位置与在原图的位置。

5.多尺度训练

YOLOv2支持多尺度训练,即在训练过程中随机调整输入图片的大小。这一机制迫使神经网络学会在各种输入维度上进行良好的预测,从而提高了模型的泛化能力。
在这里插入图片描述
多尺度训练的好处就在于可以改变数据集中各类物体的大小占比。
多尺度训练就是在训练网络时,每训练迭代10次,就从{320、…、608}选择一个新的图像尺寸用作后续10次训练的图像尺寸。注意,这些尺寸都是32的整数倍,因为网络的最大降采样倍数就是32。

四、总结

YOLOv2是一种高效、准确的目标检测模型。它通过改进网络结构、引入Anchor机制、使用高分辨率分类器和多尺度训练等策略提高了模型的检测速度和精度。同时它还具有较好的泛化能力和实时性能,已被广泛应用于多个领域。

标签:系列,YOLOv2,训练,卷积,模型,Yolo,网格,v2,预测
From: https://blog.csdn.net/2301_77698138/article/details/143179090

相关文章

  • 书生大模型实战营第4期系列课程——1.1 InternStudio开发机和Linux基础
    书生大模型(InternLM2.5)是由上海人工智能实验室推出的书生·浦语系列模型的全新版本。相较于上一代,InternLM2.5全面增强了在复杂场景下的推理能力,支持1M超长上下文,能自主进行互联网搜索并从上百个网页中完成信息整合。开源链接:https://github.com/InternLM/InternLM书生大......
  • 基于Dify实现--多Agent协作系列:三步翻译法,把翻译这件“小事”做好
    这篇文章篇幅不大,并不是非常的技术向,主要为了提供一些弹药,把一些AI的“小事”给做好,给大家提供更多的调优上升空间。工作流如下:我们的工作流接受一个输入,即要翻译的英文,接着经过四个大模型节点(LLM节点),分别进行:找术语直接翻译指出直译的问题二次翻译搭建好......
  • 搭建YOLOv8实现裂缝缺陷识别全流程教程:从源码下载到模型测试
    教程目的:yolov8的安装配置到训练模型,并完成使用模型进行识别前提注意:yolov8要求Python需要版本必需大于等于3.10,我用的Python3.12.3,这里分享下Python3.12.3的安装器=>夸克网盘分享以及教程中用到的yolov8源码、权重文件、GPU配套版本的Torch=> 夸克网盘分享大致步骤1.......
  • exec()系列函数
    exec()系列函数用于在当前进程中执行新的程序,它们是Unix/Linux系统中实现进程控制的重要组成部分。这些函数可以替换当前进程的映像,使其执行不同的程序,而不是创建新的进程。下面介绍主要的exec()系列函数:1.execl用法:接受程序路径、参数列表,参数以NULL结束。示例:execl......
  • 【WCH蓝牙系列芯片】-基于CH592开发板—独立看门狗功能
    ------------------------------------------------------------------------------------------------------------------------------------CH592芯片中是有专门的独立看门狗,独立看门狗(IWDG)内部是一个递减运行的12位计数器,当计数器的值减为0时,将会产生系统复位。独立......
  • 【芯智雲城】RICHTEK立锜RT949x系列 45W 充电方案,性能再提升!
    立锜推出可满足45W应用的Buck-Boost架构电池充电芯片RT9490/RT9492,以5A电流对2-4节串联锂离子/聚合物电池进行充电管理和系统电源路径管理,它采用低阻抗的功率开关,效率高,节省充电时间,延长电池放电时间,RT9490/RT9492的功能设置既是硬件引脚设置,也是软件寄存器设置。充电......
  • 【芯智雲城】一文看懂Puya普冉半导体PY32系列MCU如何选型
    普冉PY32系列MCU普冉PY32系列32位微控制器基于Arm®Cortex®-M处理器,包括M0+和M4系列产品。集高性能、实时操作、数字信号处理、低功耗性能、高性价比等特性于一身,同时还保持了系统简单、易于开发的特点,适用于消费类、工业类等多领域应用开发。普冉股份通用MCU产品采用M0及......
  • 苹果预告下周发布Mac新品:全系标配M4系列芯片
    10月25日消息,苹果高管GregJoswiak在社交平台上预告,苹果会在下周推出Mac新品。据悉,苹果不会举办新品发布会,而是以新闻稿的形式发布产品,届时苹果官网会同步上架。这次苹果将同时发布iMac、Macmini和MacBookPro,这些新品都将标配M4系列处理器,内存同时升级到16GB,为AppleIntellig......
  • 枫清·天枢多模态智能引擎 V2.1.2 版本正式发布!
    枫清·天枢多模态智能引擎(简称ArcNeural)是以Data-CentricAI为核心理念构建的多模态智能引擎,支持图、向量、表格、时序、JSON等多种数据模态的融合与处理。ArcNeural将传统数据库的“存储&计算”模式升级为更先进的“记忆&推理”架构,可以为企业AI智能应用提供更为便......
  • [QT基础系列]按钮QPushButton
    按钮QPushButton属性和方法、案例文本可以获取和设置按钮上显示的文本//获取和设置按钮的文本QStringtext()constvoidsetText(constQString&text)图标可以获取和设置按钮上显示的图标//获取和设置按钮的图标QIconicon()constvoidsetIcon(constQIcon......