YOLOV3 深度解析:目标检测的高效利器

在计算机视觉领域,目标检测一直是一个重要且热门的研究方向,广泛应用于安防监控、自动驾驶、机器人视觉等诸多场景。YOLO(You Only Look Once)系列算法凭借其出色的实时性和较高的检测精度,在目标检测领域占据着重要地位。本文将深入探讨 YOLOV3 算法,带你全面了解这一目标检测的高效利器。

一、YOLOV3 核心改进

yolo v3的最大改进是网络架构,采用Darknet-53网络结构代替原来的Darknet-19,使其更适合小目标检测

特征做的更细致,融入多持续特征图信息来预测不同规格物体

先验框更丰富,3种scale,每种3个规格,一共9种

softmax改进,采用独立的逻辑回归分类器代替 softmax,预测多标签任务

二、网络架构升级

YOLOv3 最大的改进之一体现在网络架构上,采用 Darknet-53 代替了 YOLOv2 中的 Darknet-19。Darknet-53 由 53 个卷积层组成,其主要由 1×1 和 3×3 卷积层交替堆叠,并且大量运用残差连接。残差连接的引入,有效解决了深度神经网络中梯度消失的问题,使得网络能够不断加深层数。相比 Darknet-19,Darknet-53 能够提取到更丰富、更细致的图像特征,尤其是对小目标的特征捕捉能力显著增强。​

残差链接:可以搭建更大、更深层次的网络。缓解梯度消失问题,加快网络收敛速度,加强特征表达能力,降低网络学习难度

三、多尺度特征融合及先验框优化

YOLOv3 融入多尺度特征图信息来预测不同规格物体,这是其另一个关键优化。算法在 3 个不同尺度的特征图(13×13、26×26 和 52×52)上进行预测。小尺寸特征图感受野大,适合检测大目标;大尺寸特征图感受野小,对小目标检测更具优势。通过这种多尺度预测机制,YOLOv3 实现了对不同大小目标的全面覆盖。​

在融合多尺度特征时,YOLOv3 先对骨干网络输出的特征图进行下采样得到小尺寸特征图,再通过上采样与中间层、浅层特征图进行融合。这种方式使得网络既能获取高层语义信息用于目标分类,又能保留底层细节信息用于目标定位。以自然场景图像为例,在检测其中的鸟类、昆虫等小目标,以及树木、建筑等大目标时,多尺度特征融合让 YOLOv3 能够同时精准检测出各类目标,显著提升检测的完整性和准确性。

采用 3 种 scale,每种 scale 包含 3 个规格,共计 9 种先验框。这些不同大小和宽高比的先验框,能够更好地匹配数据集中各种形状和尺度的目标。在训练过程中,模型依据真实边界框与先验框的匹配情况,学习如何调整先验框,使其更贴合目标实际形状和位置。

图像金字塔:将图像通过不同尺度的缩放,生成一系列不同分辨率的图像,类似金字塔形状 。一般是先对原始图像进行下采样得到低分辨率图像,再逐步往上采样得到不同分辨率的图像层。

单一输入:仅将原始图像作为网络输入,不进行多尺度缩放处理 。直接对原始图像进行特征提取、目标检测等操作。

但是这两张方法不利于yolo检测速度

对不同特征图分别利用:从网络不同层获取不同尺度特征图,每个特征图单独进行目标检测预测,不进行特征图间融合操作 。例如在卷积神经网络中,浅层特征图包含更多细节信息,深层特征图包含更多语义信息,分别用这些特征图做预测。

不同特征图融合后进行预测:先对不同尺度特征图进行上采样或下采样等操作,使它们在相同尺度下,再通过拼接、相加等方式融合特征信息,最后基于融合后的特征图进行目标检测预测 。如 YOLOv3 通过上采样将深层特征图和浅层特征图融合,结合不同层次特征优势。

YOLO3延续了K-means聚类得到先验框的尺寸方法,为每种下采样尺度设定3种先验框,总共聚类出9种尺寸的先验框。在COCO数据集这9个先验框是:(10x13),(16x30),(33x23),(30x61),(62x45),(59x119),(116x90),(156x198),(373x326)。

分配上,在最小的13*13特征图上(有最大的感受野)应用较大的先验框(116x90),(156x198),(373x326),适合检测较大的对象。中等的26*26特征图上(中等感受野)应用中等的先验框(30x61),(62x45),(59x119),适合检测中等大小的对象。较大的52*52特征图上(较小的感受野)应用较小的先验框(10x13),(16x30),(33x23),适合检测较小的对象。

四、预测机制改进:从 softmax 到多标签预测

YOLOv3用多个独立的Logistic分类器替代了传统目标检测模型中常用的Softmax分类层

YOLOv3 对预测机制进行了革新,改进了 softmax,使其能够处理多标签任务。传统的 softmax 函数假设每个目标仅属于一个类别,但在实际场景中,一个目标可能同时具有多个类别属性,比如一个救援机器人可能同时具备 "救援设备" 和 "移动机器人" 等多个标签。

在Logistic分类器(逻辑回归)中,每个类别的预测是独立进行的。对于输入样本,分类器会为每个类别计算一个概率值,表示该样本属于该类别的可能性。

Logistic分类器通常使用Sigmoid函数(也称为Logistic函数)作为激活函数。Sigmoid函数将神经网络的输出映射到(0, 1)区间,表示样本属于某个类别的概率。Sigmoid函数的数学表达式为如下图,其中,z是神经网络的原始输出。

假设有一个图像分类任务,需要识别图像中是否包含"猫"、"狗"和"鸟"三种动物。使用Logistic分类器时,模型会为每个类别(猫、狗、鸟)分别计算一个概率值。例如:
• 图像 A :猫的概率 =0.8 ,狗的概率 =0.3 ,鸟的概率 =0.1
• 图像 B :猫的概率 =0.2 ,狗的概率 =0.7 ,鸟的概率 =0.6

设定阈值为0.5,则:
• 图像 A 会被标记为"猫"(因为猫的概率 >0.5 ),而不会被标记为"狗"或"鸟"(因为它们的概率 <0.5 )。
• 图像 B 会被标记为"狗"和"鸟"(因为它们的概率都 >0.5 ),而不会被标记为"猫"(因为猫的概率 <0.5 )。

相关推荐
code bean1 小时前
【yolo】YOLOv8 训练模型参数与多机环境差异总结
yolo
arron88992 小时前
yolov8部署在一台无显卡的电脑上,实时性强方案
yolo·电脑
Coovally AI模型快速验证2 小时前
3D目标跟踪重磅突破!TrackAny3D实现「类别无关」统一建模,多项SOTA达成!
人工智能·yolo·机器学习·3d·目标跟踪·无人机·cocos2d
fanstuck3 小时前
2025 年高教社杯全国大学生数学建模竞赛C 题 NIPT 的时点选择与胎儿的异常判定详解(一)
人工智能·目标检测·数学建模·数据挖掘·aigc
菩提树下的凡夫4 小时前
瑞芯微RV1126目标识别算法Yolov8的部署应用
java·算法·yolo
荒野饮冰室5 小时前
分类、目标检测、实例分割的评估指标
目标检测·计算机视觉·分类·实例分割
微笑伴你而行7 小时前
目标检测如何将同时有方形框和旋转框的json/xml标注转为txt格式
xml·目标检测·json
Coovally AI模型快速验证8 小时前
无人机小目标检测新SOTA:MASF-YOLO重磅开源,多模块协同助力精度飞跃
人工智能·yolo·目标检测·机器学习·计算机视觉·无人机
飞翔的佩奇9 小时前
【完整源码+数据集+部署教程】骰子点数识别图像实例分割系统源码和数据集:改进yolo11-DCNV2
python·yolo·计算机视觉·数据集·yolo11·骰子点数识别图像实例分割
3DVisionary16 小时前
蓝光三维扫描技术赋能内衣胸垫设计:从精准制造到个性化体验的革新之旅
目标检测·制造·3d检测·工艺优化·蓝光三维扫描·内衣胸垫设计·个性化制造