当前位置: 首页 > news >正文

人工智能|大白话YOLOv2

🌞欢迎来到人工智能的世界
🌈博客主页:卿云阁

💌欢迎关注🎉点赞👍收藏⭐️留言📝

📆首发时间:🌹2026年4月24日🌹

✉️希望可以和大家一起完成进阶之路!

🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!


目录

YOLOV2网络架构

锚框和位置偏移运算

YOLOV2网络架构

采用Darkent-19作为新的主干网络。

Darkent-19中只有1*1和3*3的卷积核,但是YOLOv1中还有7*7的卷积核。YOLOv2直接舍弃了大

的卷积核。比如我们使用7*7的卷积核进行运算,需要的权重参数是49个,但是如果我们使用3个

3*3 卷积核,需要的权重参数是27个,感受野还相同。5*5的卷积核相当于两个3*3的卷积核。(权

重参数从25个降低到17个)。Darkent-19在每个网络之后进行了批量归一化操作。


YOLOv1 先用 224×224 的 ImageNet 数据预训练分类模型(分类训练阶段),再将输入尺寸放大

到 448×448,在检测数据集上微调,最终得到一个端到端的目标检测器。(检测训练阶段)

阶段输入尺寸数据集目标
分类训练阶段(左)224×224ImageNet学习通用图像特征
检测训练阶段(右)448×448Pascal VOC 等检测数据集学习目标定位与检测

YOLOv2 延续了 “先预训练,再检测微调” 的思路,但做了更精细的优化,分为两大阶段:

阶段子步骤输入尺寸数据集关键信息
预训练阶段Train224×224ImageNet160 个 epoch
Fine-tune448×448ImageNet10 个 epoch
检测阶段Detection416×416(或 352/608)Pascal VOC & COCO尺寸是 32 的倍数,每 10 个批次更换尺寸

上面原始论文上的网络架构仅仅是预训练阶段的(分类训练)的网络架构。在检测阶段和实际的使

用当中,后面的部分会被替换掉。只保留网络主干部分。

在 YOLOv2 的网络结构中,模型保留了Darknet-19作为骨干特征提取网络,并在其后额外堆叠了

两个卷积层。为了融合不同层级的特征信息,模型引入了直通层(Passthrough Layer):将骨干

网络第 5 组卷积层输出的高分辨率浅层特征,进行空间到通道(Space-to-Depth)的重排后,与

网络尾部卷积层输出的低分辨率深层特征进行拼接融合。最后,再通过两个卷积层直接输出目标检

测结果。直通层的设计实现了高低分辨率特征的有效融合,显著提升了模型对小目标的检测能力。

我们以26×26 特征图为例,将其左上角的2×2 区域划分为4 个不同颜色的格子,并以步长 2 遍历

整个特征图。遍历完成后,将所有相同颜色的格子按通道维度进行重组,原本的 26×26 特征图就

会被转换为13×13×4 的特征张量,这就是典型的Space-to-Depth(空间到深度)重排操作。

在 YOLOv2 的直通层(Passthrough Layer)中,该操作会被应用于骨干网络输出的 512 通道

26×26 特征图:通过上述2×2 分块与重组,空间维度上的信息被重排到通道维度中,最终得到一

13×13×2048的特征张量。

随后,这个13×13×2048的高分辨率特征,会与网络深层输出的 13×13×1024低分辨率特征进行

通道拼接,最终得到一个13×13×3072 的融合特征图

直通层通过这种方式,实现了浅层细粒度特征与深层语义特征的有效融合,解决了 YOLOv1 中小

目标检测精度低的问题,让模型能够捕捉到更多细节信息,从而显著提升了小目标的检测性能。


锚框和位置偏移运算

模型最终输出为尺寸 13×13×5×(5+C)的三维特征矩阵。

其中,参数 5代表 YOLOv2 为每个网格预先设定的5 组先验锚框。

整张特征图共划分为 13×13个网格单元,每个网格都会独立预测 5 个边界框。

维度 (5+C)为单个预测框的输出向量长度,含义如下:

前 4 个数值:分别预测目标边界框的中心偏移量、框体宽度与高度;

第 5 个数值:目标存在置信度,用于判断该区域内是否包含物体;

末尾 C个数值:对应全部目标类别的预测概率。

在后处理阶段,置信度分支的输出需经过 Sigmoid 激活函数映射至 0~1 区间,以此得到最终有

效的目标置信得分,完成检测结果的解码与输出。

在现实场景中,待检测目标的外形与尺寸往往具备固定规律。例如:行人多呈现竖向长条形态,俯

视视角下的车辆则偏向宽矩形结构。不难发现,不同类别的物体,其边界框的长宽比例、尺寸大小

都存在明显共性。

我们可以从数据集中归纳出一批具有代表性、普适性较强的边界框尺寸与比例,将这类起到先验模

板作用的基准框,定义为锚框(Anchor)。

为了获得适配数据集、泛化性更强的通用锚框,YOLOv2/YOLOv5 不再依靠人工经验手动设定尺

寸,而是采用聚类算法,对数据集中所有真实标注的边界框做维度聚类分析,自动统计并归纳特

征,最终筛选出 5 组最具代表性、贴合目标实际形态的锚框,以此作为模型的先验基准框,提升边

界框回归精度与检测效果。

模型将特征图划分为 13×13个网格单元,每个网格会从预设的一组锚框中,匹配并选用最合适的先

验锚框。以划分为 13×13网格的图像为例,首先标注出真实目标框及其中心位置。在训练阶段,模

型会为每个真实目标,逐一计算其与全部候选锚框的交并比(IoU),筛选出交并比最大的最优锚

框作为匹配基准。该匹配锚框的中心会落在对应网格内,随后以这个最优锚框为参照,结合模型实

时预测的边界框参数,计算坐标、宽高的偏移误差,以此完成边界框的回归训练,不断修正预测框

位置,提升定位精度。

锚框的尺寸为数据集图像下的相对尺度,具备较强的数据依赖性,因此需要根据自身数据集的目标

分布,定制适配的专属锚框,才能更好贴合实际检测场景。

以单个网格为例:假设第二行第二个网格中,红色框为模型输出的预测边界框,蓝色框为该网格匹

配的先验锚框。目标中心的偏移参数由模型直接回归预测得到。训练过程中,模型以蓝色锚框作为

基准模板,结合预测框坐标、宽高、置信度与类别信息,与真实标注框进行比对,进而计算坐标偏

差损失、置信度损失与分类损失,完成参数的迭代优化。

总结一下:

锚框是基于数据集目标特征预先设定的先验基准框,提前归纳了物体常见的尺寸与长宽比例;

为模型提供固定参考模板,避免网络凭空预测目标尺寸与形态,降低学习难度;

模型无需直接预测完整边界框,仅需以匹配的锚框为基础,微调中心坐标、宽高尺寸,简化回归任务;

适配不同形态的检测目标,有效提升边界框定位精度,加快模型收敛速度,改善小目标、异形目标的检测效果。

【1】参考

大白话讲明白Yolov3的Darknet-53网络架构 #YOLO #YOLOv3 #目标检测 #知识前沿派对 #深度学习 - 抖音

http://www.cnnetsun.cn/news/2078429.html

相关文章:

  • 保姆级教程:用Node.js复现抖音直播WSS链接的signature生成(附完整可运行代码)
  • 新药研发避坑指南:如何用ADMET预测工具(如ADMETlab 2.0)提前筛掉“问题分子”?
  • Taste-Skill:为AI编码助手注入设计品味,提升前端代码审美与工程实践
  • 别再只盯着DSI/CSI了!聊聊MIPI DPI:那个让无缓存屏幕动起来的‘老派’接口
  • Mistral与NVIDIA新语言模型技术解析与部署实践
  • SQL触发器如何获取触发源应用名_利用APP_NAME函数追踪
  • 晶科科技:国产芯模“协同破局、祛魅前行”,AIDC迎重大机遇
  • 为什么92%的车载软件团队弃用Eclipse改用VSCode?——基于ISO 26262 ASIL-B项目实测的4项性能跃升数据报告
  • 告别串口助手:用Python+PyQt5自制STM32 IAP升级上位机(支持Ymodem协议)
  • 【国家级等保2.0三级强制要求】:C项目上线前必须通过的5层内存安全静态验证关卡(含CI/CD自动化脚本模板)
  • 图像描述生成:Inject与Merge架构对比与实践
  • Keras实战:从零构建YOLOv8目标检测模型
  • Proma开源项目解析:Python驱动的程序化营销自动化工具库
  • 别再只调API了!手把手教你用BERT+CRF从零搭建一个中文知识库问答系统(附完整代码)
  • 不止是framework.jar:手把手教你为Android Studio配置完整的AOSP编译环境(含services.jar等)
  • 抖音内容获取的革命:从手动保存到智能批量下载的技术演进
  • 【嵌入式C与LLM适配避坑指南】:20年老兵亲授5大致命兼容陷阱及3步轻量级部署法
  • 从库存到装箱都能自主决策,工厂大脑正在重新定义供应链管理
  • 别再头疼EMI了!手把手教你搞定开关电源的传导干扰(附PCB布局实战)
  • 数据结构实验代码看不懂?我用C语言手把手带你拆解西工大NOJ实验(附详细注释和避坑点)
  • Cortex-A35 SIMD与浮点架构解析及优化实践
  • 从PID到ADRC:非线性跟踪微分器(TD)的C语言实践与参数调优
  • 三菱FX2N PLC在药品包装机中的核心控制策略与工程实践
  • Go语言的sync.Cond条件
  • 梯度下降法:从数学原理到机器学习优化实践
  • FPGA断电程序就丢?手把手教你用Vivado把程序‘焊死’进Flash(以S25FL128为例)
  • Kinect系列2:(Windows实战指南)Python3+Pykinect2+KinectV2实现彩色与深度图实时对齐与可视化
  • 【简单】不包含本位置值的累乘数组-Java:进阶问题
  • 终极NHS UK Frontend教程:3步构建专业医疗网站界面
  • 项目安全问题——前端两步完成加密