96SEO 2026-02-19 09:51 19
二、YOLOv1理论知识1.YOLOv1网络结构2.YOLOv1检测原理3.YOLOv1的训练流程1边界框的位置参数2边界框的置信度3类别置信度

对于初学者的你来说选择适合的论文、选择通俗易懂又全面的科普文章等具有太多的偶然性。
如果迟迟没有找到合适的文章那就不能理解什么是
框架。
对于小白来说直接上手开源项目难道比较大而且网上直接带你上手的
模型理论、损失函数和整体框架逻辑显得茫然不知因此这期文章我会一步一步带你了解
这里又有同学问什么是目标检测啊别着急接下来会带你理解什么是目标检测。
首先你要了解目标检测发展史吧其次需要理解一些主流框架最后了解它的一些经典工作。
在深度学习时代到来之前目标检测的研究大致可以分为两个主要阶段。
首先通过区域选择方法目前比较常用的就是滑动窗口的方法通过使用不同尺度的
Box根据图像的颜色、纹理、边缘等信息对整幅图像进行遍历选出大量的候选区域。
其次将这些视觉特征输入到
等特征提取方法这里就不解释太久远的方法了大家只要知道有这些方法就好了。
最后通过分类器如支持向量机、
小总结对于传统的方法来说要设计一个能够识别多种复杂物体的通用目标检测器难度则大得多这种难度的核心原因在于我们难以用一套精确的语言或数学公式来定义世间万物。
显然待检测的物体种类越多模型需要学习的特征也就越复杂仅靠手工进行标记方法已经难以应对这一需求。
因此研究界大佬开始需求新的方法下面开始详解第二个阶段方法。
等人提出的标志着目标检测领域的一次重要突破。
从整体上来看R-CNN
Proposals即感兴趣区域框然后对这些候选区域进行裁剪并将它们调整为固定大小的图像块然后使用一个卷积神经网络(convolutional
neuralnetworkCNN)分别处理每一个感兴趣区域ROI提取特征最后通过支持向量机SVM对这些特征进行分类判断这些区域中是否包含目标对象同时使用回归方法进一步调整边界框的位置。
R-CNN
个候选区域之后卷积神经网络对每个候选区域提取出相应的特征显然这一过程会十分耗时因为
R-CNN需要对每个候选区域单独执行卷积神经网络的特征提取导致计算量巨大且处理效率低。
为了解决这一问题在
的过程进行优化将候选区域的特征提取与分类过程结合起来从而加快了检测速度。
具体来说Fast
不再对每个候选区域单独进行卷积运算而是对整张图像进行一次卷积操作后利用区域建议网络RoI
都是“先提取后识别”的检测范式简称两阶段two-stage目标检测算法即先提取出可能包含目标的区域再依次对每个区域进行识别最后经过处理得到最终的检测结果。
R-CNN、Fast
采用了全新的思路将目标检测问题转化为一个端到端的回归问题简单来说就是提取候选区域定位和逐一识别分类完全可以由一个单独的网络同时完成无须分成两个阶段从而显著提升了检测速度这也是为什么
能在实时应用场景中表现出色的关键原因之一。
大家感兴趣可以去看一下
直接通过一次前向传播同时预测目标的位置和类别标签简称单阶段one–stage目标检测算法。
YOLO
解决了以往目标检测算法在速度和精度之间的平衡问题尤其是在需要实时检测的应用场景如无人驾驶、安防监控、视频分析等中YOLO
表现出了巨大的潜力。
因此在当年迅速走红被广泛应用于工业界和研究领域。
小总结通常来说两阶段框架往往具备较高的检测精度但速度较慢相对的单阶段框架则以较快的检测速度为优势但精度通常稍逊。
在许多计算机视觉任务中精度和速度常常是互相制约的也激励着研究界的大佬去探索和设计能够在二者之间找一个较为平衡的解决方案。
随着研究的深入和技术的进步现代的单阶段检测框架逐渐突破了这一限制成功在精度与速度两方面都取得了显著的提升实现了出色的平衡。
从深度学习时代开始目标检测网络的框架逐渐被确定典型的目标检测网络通常可以分为三大部分主干网络Backbone
Head。
这三部分共同协作完成从特征提取、特征融合到目标检测的整个流程。
主干网络是目标检测网络的核心部分负责从输入图像中提取特征。
主干网络通常基于卷积神经网络CNN如
等通过多层卷积、池化等操作从低级到高级提取图像的特征形成多尺度特征图。
较深的层次能捕捉图像的抽象特征而浅层则保留更多的空间细节信息。
主干网络的选择对检测性能包括速度和精度有重要影响因此许多目标检测方法都会根据实际应用需求选择不同的主干网络。
简单来说主干网络作用就是提取输入图像中的高级特征减少图像中的冗余信息以便于后续的网络去做深入的处理颈部网络Neck
颈部网络是连接主干网络和检测头的中间层主要用于特征融合。
由于主干网络提取的特征是多尺度的而不同尺度的特征对检测不同尺寸的目标物体有重要作用因此颈部网络的主要任务是对这些不同尺度的特征进行融合与加强。
常见的颈部网络结构包括
则通过自底向上的路径聚合网络增强大目标的检测效果。
除此之外还有很多单独的、可即插即用的模块如
模块等这些模块都可以添加在主干网络之后以进一步地处理和丰富特征信息扩大模型的感受野。
简单来说颈部网络的主要作用是将由主干网络输出的特征进行二次处理。
下面将详细解释常用的特征融合网络。
网络中的不同大小的特征图所包含的信息是不一样的即浅层特征图包含更多的位置信息且分辨率较高感受野较小便于检测小物体而深层特征图包含更多的语义信息且分辨率较低感受野较大便于检测大物体。
因此FPN
设计了一种自顶向下的融合方式将深层的特征不断融合到浅层特征中通过将浅层与深层的信息进行融合可以有效地提升网络对不同尺度物体的检测性能。
网络结构如下图
条并行的分支且每条分支用了不同大小的池化核。
SPP主要是通过在特征图上应用多种不同尺度的池化窗口如1x1、5x5、9x9
等然后将不同尺度的池化结果进行拼接形成一个更加丰富的特征向量能够同时获取到小物体的细节信息和大物体的全局信息。
SPP
性价比比较高我们可以看到在YOLOv4、YOLOv5、YOLOv6、YOLOv7、YOLOv8、和
工作中广泛应用需要注意的是在YOLOv5-6.0版本以后以及目前流行的
的多尺度池化过程在保持相似特征提取能力的同时加快计算速度减少计算成本。
SPPF
池化窗口模拟多尺度特征提取极大提高了计算速度和效率适合对实时性要求较高的任务。
而
使用多个不同尺度的池化窗口能够捕捉多尺度特征但池化次数较多计算开销稍大。
SPP
检测头是目标检测网络的最后一部分负责对主干网络和颈部网络输出的特征进行目标类别的分类和边界框的定位。
在
R-CNN中检测头首先生成候选区域再对这些候选区域进行精细的分类和边界框回归而在
SSD中检测头直接从特征图上生成目标的类别和边界框。
简单来说检测头也被称为解码器Decoder其核心任务是将主干网络和颈部网络提取并融合的特征转换为具体的目标检测结果即目标类别的分类和边界框的定位。
通常检测头的设计相对简单例如
采用了“解耦”结构的检测头这是当前目标检测网络中较为常用的结构设计。
所谓“解耦”结构它将定位和分类这两个任务分开进行每个任务由一条独立的分支来处理。
RetinaNet的网络结构如下图所示
通过了解目标检测发展史和目前主流的目标检测网络结构组成由主干网络、颈部网络、检测头。
重点YOLO目标检测架构是非常重要的市面上很多改进都是从这三部分出发提出各种修改。
接下来我会继续带领大家学习
YOLOv5、YOLOv7、YOLOv8、YOLOv9、YOLOv10
专栏地址-YOLOv8在主干网络、Neck网络、检测头等改进大家可以参考我写的专栏点击可跳转订阅专栏
专栏地址-YOLOv9在主干网络、Neck网络、检测头等改进大家可以参考我写的专栏点击可跳转订阅专栏
专栏地址-YOLOv10在主干网络、Neck网络、检测头等改进可以参考我写的专栏点击可跳转订阅专栏
设计之处有相对其它算法极大优势算法思想是将一整张目标图像输入神经网络卷积层用卷积计算然后直接进入输出层对
位置进行运算并在此过程进行类别的分类回归运算。
与传统的二阶段目标检测算法不同它没有候选框阶段会直接将目标检测问题转变为相对更加简单的回归问题。
YOLOv1
框架纷纷被提出不断迭代更新推动了这一新框架的持续优化使其逐渐成为目标检测领域的主流所以说
仅使用1×1的降维卷积层接着是3×3的卷积层。
YOLOv1网络结构如图下图所示
的年代典型的图像分类网络会将卷积层的输出特征图展平flatten成一维特征向量再通过全连接层进行分类。
YOLOv1也是如此YOLOv1
RHo×Wo×Co表示特征图是一个实数空间的三维张量Ho
输出层是一个三维向量因为考虑到目标检测是一个空间任务YOLOv1
权重参数每个神经元连接到展平后的每个输入单元因此权重的数量是展平后向量长度乘以神经元数量。
偏置参数每个神经元都有一个对应的偏置值。
7×7×102450176全连接层中的每个神经元都与展平后的输入向量的每一个单元相连。
因此权重的参数量等于展平后的输入向量长度乘以神经元的数量。
如果全连接层有
50176×4096205,520,896。
每个神经元都有一个对应的偏置因此偏置参数的数量等于全连接层中的神经元数量。
对于
数据集上的性能与其他检测模型的对比情况包括训练数据、mAPmean
值。
AP的计算通常是根据模型在不同置信度阈值下的精度-召回率曲线来进行积分。
FPSFrames
Second帧率表示模型每秒可以处理的多少张图像如果模型处理一张图像的时间为
的向量都包含了两个边界框的参数以及总数为20的类别数量。
每个网格单元预测边界框和这些边界框的置信度分数。
置信度分数反映了模型对边界框包含物体的信心以及模型认为边界框预测准确的程度。
每个边界框由
y)表示边界框中心相对于网格单元的坐标。
宽度和高度相对于整个图像进行预测。
最后置信度表示预测框与真实框的IOU。
简单来说YOLOv1的核心检测思想逐个网格找物体。
YOLOv1
的主干网络将原始图像转化为特征图特征图的每个网格单元都包含长度为
的特征向量该特征向量包含了该网格处的某种高级特征信息。
YOLOv1
遍历所有网格处理每个网格的特征信息预测该网格内是否有物体的中心点坐标及对应的类别信息。
每个网格单元还输出多个边界框及其置信度每个边界框由
个参数置信度和边界框位置参数表示因此每个网格总共会输出5BNc
x边界框中心的横坐标相对于网格单元的偏移y边界框中心的纵坐标w边界框的宽度h边界框的高度置信度预测该框内有物体的置信度。
中由于目标检测的原理是通过网格单元检测图像中的目标中心点因此只有目标中心点位于某个网格的情况下才会认为该网格单元包含物体。
为此YOLOv1
概念用来表示该网格是否包含物体。
若该网格包含目标物体objectness
0。
这个标志帮助模型区分哪些网格单元需要进一步处理以预测物体的类别和边界框。
中正样本候选区域的示意图。
带颜色的网格单元表明该网格有物体也就是图中的每个物体的边界框中心点图中的黄、蓝、粉点落在了这个网格内。
在训练过程中该网格内所要预测的边界框其置信度会尽可能接近1。
而对于其他没有物体的网格其边界框的置信度就会尽可能接近0。
黄色框、蓝色框、粉色框表示模型为不同物体自行车、狗、汽车生成的边界框。
只有物体的中心点所在的网格单元才被认为是“正样本”也就是说在训练过程中训练的正样本只会从此网格处的预测中得到而其他区域的预测都是该目标的负样本。
从上面图中目标的中心点通常并不会完全位于网格单元的正中央而是相对于该网格的四边存在一定的偏移量。
这是因为物体在图像中的位置是连续的而网格是离散的划分因此物体的中心点在其所属网格内可以有不同的偏移位置这是网格划分必然的结果。
在YOLOv1中虽然每个网格负责预测其范围内物体的中心点但仅靠网格的位置信息无法准确描述物体在图像中的精确位置。
为了解决这个问题YOLOv1通过网络训练学习每个网格单元内物体中心点的偏移量。
这个偏移量帮助模型对物体进行更加精确的定位。
那怎么计算偏移量呢?
(xmin,ymin)表示边界框在图像中的左上角位置。
与此同时边界框的右下角点坐标可以记作
(xmax,ymax)表示该框的另一端的坐标那么可以计算边界框的中心点公式如下
\begin{array}{c}{{x_{\mathrm{center}}\frac{x_{\mathrm{min}}x_{\mathrm{max}}}{2}}}\\
{{y_{\mathrm{center}}\frac{y_{\mathrm{min}}y_{\mathrm{max}}}{2}}}\end{array}
xcenter2xminxmaxycenter2yminymax
\begin{array}{r}{{\mathrm{grid}_{x}\left|{\frac{x_{\mathrm{center}}}{\mathrm{stride}}}\right|}}\\
{{\mathrm{grid}_{y}\left|{\frac{y_{\mathrm{center}}}{\mathrm{stride}}}\right|}}\end{array}
\begin{array}{c}{{t_{x}\frac{x_{\mathrm{center}}}{\mathrm{stride}}-\mathrm{grid}_{x}}}\\
{{t_{y}\frac{y_{\mathrm{center}}}{\mathrm{stat}}-\mathrm{grid}_{y}}}\end{array}
txstridexcenter−gridxtystatycenter−gridy
的核心思想之一即在逐网格进行目标检测的基础上使用偏移量提高目标定位的精度为此网格处的正样本的学习标签。
如下图更好解释中心点的偏移量。
是通过对偏移量公式进行逆运算来计算物体的最终中心点坐标计算公式如下
\begin{array}{c}{{x_{\mathrm{center}}\left({\mathrm{grid}_{x}t_{x}}\right)\times{\mathrm{stride}}}}\\
{{y_{\mathrm{center}}\left({\mathrm{grid}}_{y}t_{y}\right)\times{\mathrm{stride}}}}\end{array}
xcenter(gridxtx)×strideycenter(gridyty)×stride
之间的相对值。
在推理阶段模型通过这些预测的偏移量结合网格的绝对位置和步长
采用了归一化处理。
边界框的宽和高通常是相对于整个图像来说的因此其数值相对较大。
如果直接将这些值作为模型的回归目标可能会导致训练过程中的数值不稳定尤其是在损失函数中过大的损失值可能导致发散问题。
之间这有助于模型在训练时保持数值稳定避免因边界框尺寸过大导致损失函数不平衡或训练发散。
那么如何让网络确定中心点的位置为了让网络确定中心点的位置以及学习边界框的置信度YOLOv1
来优化这个部分。
置信度是一个关键的预测值它直接决定了一个网格是否包含目标的中心点。
下图展示
交集Intersection预测的边界框和真实的边界框之间的重叠区域并集Union预测的边界框和真实边界框的联合区域即二者的面积之和减去重叠区域的面积
1表示预测的边界框与真实边界框越接近定位精度越高。
于是YOLOv1
个预测边界框但不是所有的边界框都需要关注。
我们只关心那些包含目标中心点的网格。
如下图假设蓝框和绿框代表两个预测边界框红框表示真实边界框。
蓝框和绿框它们都属于正样本候选区域即该网格包含目标的中心点这里我们假设蓝框的
最大即该预测框更加精确因此我们就理所当然地希望这个预测框能作为正样本去学习目标的信息即
最大的蓝框作为训练的正样本去参与计算边界框的置信度损失、边界框的位置参数损失以及类别损失并做反向传播。
则绿框将其标记为负样本它不参与类别损失和边界框的位置参数损失的计算只计算边界框的置信度损失且置信度的学习标签为
直接预测每个网格的边界框而不是使用基于先验框anchor的策略。
IoU-aware
IoU交并比作为置信度评估的一部分直接影响类别预测提升了边界框预测的精度既考虑是否有物体也关注预测边界框与真实边界框的重合程度。
动态标签分配技术在
动态选择。
这一思想后来被称为动态标签分配技术即在训练过程中根据实际的预测结果决定哪些边界框作为正样本从而提高模型的学习效果和适应性。
在处理类别置信度时采用了一种相对简单的方法每个网格只预测一个目标且只对包含目标中心点的正样本网格进行类别学习不考虑其他网格。
类别标签采用了
大家可以通过标注工具来制作数据集正样本并且把数据集进行归一化操作训练流程了解后下面将介绍
损失函数的设计对于目标检测性能起着决定性作用。
好的损失函数设计能在边界框定位、置信度预测、类别分类之间找到平衡使模型在速度和精度上都表现出色。
如果损失函数设计不合理可能会导致边界框不准确、置信度预测错误或类别混淆从而影响模型的整体表现。
因此损失函数的设计直接关系到模型在实际应用中的效果。
的损失函数由三部分组成分别对应边界框位置的误差、物体置信度的误差以及物体类别的误差。
YOLOv1
用于降低无物体的置信度误差的权重避免大量负样本的影响论文中使用
YOLOv1训练完成之后当输入一张图像之后模型会为每个网格单元输出边界框和类别概率输出太多框显然不是我们想要的结果。
为此模型预测之后需要进一步筛选和过滤。
通常可以通过以下
使用边界框的置信度分数和类别概率计算每个边界框的最终得分score。
得分是边界框置信度和类别概率的乘积反映了该边界框包含特定物体的可能性。
计算了所有边界框的得分后设置一个得分阈值过滤掉得分低于该阈值的边界框。
通常这个阈值可以设置为
可能对同一个目标给出多个得分较高的边界框。
因此通过非极大值抑制NMS过滤重叠的边界框保留得分最高的边界框。
NMS
IOU交并比来去除重叠较大的框确保每个物体只保留一个边界框。
NMS具体步骤如下
选择得分最高的边界框对于某个类别的所有边界框首先选取置信度得分最高的边界框作为最有可能正确的检测结果。
计算IOU然后计算其他边界框与这个得分最高的边界框的交并比IOU。
循环处理对所有类别的边界框都依次进行这一过程直到所有的边界框都被筛选完毕。
最终只保留置信度最高且非重复的检测结果。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback