深度学习驱动下的目标检测技术:原理、算法与应用创新(二)

三、主流深度学习目标检测算法剖析

3.1 R - CNN 系列算法

3.1.1 R - CNN 算法详解

R - CNN(Region - based Convolutional Neural Networks)是将卷积神经网络(CNN)应用于目标检测领域的开创性算法,其在目标检测发展历程中具有重要的里程碑意义 。该算法的提出打破了传统目标检测方法依赖手工设计特征的局限,开启了深度学习在目标检测领域的新纪元 。

R - CNN 的基本原理是将目标检测任务分解为区域提议(Region Proposal)和类别分类与 bounding box 回归两个主要步骤 。在区域提议阶段,R - CNN 采用 Selective Search 算法在图像中生成约 2000 个可能包含目标的候选区域 。Selective Search 算法基于图像的颜色、纹理、大小和形状等视觉特征,通过不断合并相似区域的方式生成候选区域 。它首先将图像分割成小区域,然后计算相邻区域之间的相似度,选择相似度最高的区域对进行合并,重复这个过程,直到所有区域都被合并或达到一定的合并次数 。这样可以生成多样化且尽可能覆盖目标的候选区域 。在一幅包含车辆的图像中,Selective Search 算法会根据车辆的颜色、轮廓等特征,生成一系列可能包含车辆的矩形区域,这些区域的大小、形状和位置各不相同 。

在得到候选区域后,R - CNN 对每个候选区域进行特征提取 。它将候选区域图像输入到预训练的 CNN(如 AlexNet、VGG16 等)中,通过卷积层和池化层的操作,提取出固定长度的特征向量 。以 VGG16 为例,它包含 13 个卷积层和 5 个池化层,通过这些层的层层处理,能够从候选区域图像中提取到丰富的语义特征 。这些特征向量作为后续分类和回归的输入 。对于每个候选区域,经过 VGG16 网络的处理后,会得到一个 4096 维的特征向量 。

接下来是类别分类与 bounding box 回归步骤 。R - CNN 使用线性 SVM 分类器对提取的特征向量进行分类,判断每个候选区域中目标的类别 。对于每个类别,都有一个对应的 SVM 分类器,通过计算特征向量与分类器的决策边界的距离,来判断候选区域是否属于该类别 。在检测行人时,行人类别的 SVM 分类器会根据候选区域的特征向量,判断该区域是否包含行人 。由于候选区域的位置可能不够精确,R - CNN 还使用线性回归器对候选区域的 bounding box 进行精修,以提高目标定位的准确性 。线性回归器通过学习候选区域与真实目标框之间的偏移量,预测出更准确的 bounding box 位置 。

R - CNN 的训练过程较为复杂,需要多个阶段的训练 。首先在大规模图像分类数据集(如 ImageNet)上对 CNN 进行预训练,以学习到通用的图像特征 。然后使用目标检测数据集对预训练的 CNN 进行微调,调整网络参数以适应目标检测任务 。在微调过程中,将与人工标注的框的 IoU 大于 0.5 的区域认为是正类,小于 0.3 的是背景,通过反向传播算法更新网络参数 。在训练 SVM 分类器和线性回归器时,需要提取候选区域的特征向量,并根据标注信息进行训练 。训练 SVM 分类器时,将正样本和负样本的特征向量输入到 SVM 中,通过调整 SVM 的参数,使其能够准确地区分正样本和负样本 。

R - CNN 的出现显著提升了目标检测的精度,在 PASCAL VOC 2012 数据集上相比之前的传统方法,mAP(平均精度均值)有了大幅提升 。它将深度学习的强大特征提取能力引入目标检测领域,为后续的算法发展奠定了基础 。然而,R - CNN 也存在诸多缺点 。它的训练和测试速度较慢,由于对每个候选区域都要独立进行特征提取,计算量巨大 。在检测一张图片时,需要对约 2000 个候选区域分别进行 CNN 特征提取和 SVM 分类,导致检测时间较长 。R - CNN 的训练过程需要多步操作,包括候选区域生成、特征提取、SVM 训练和回归器训练等,步骤繁琐且复杂 。由于需要保存大量候选区域的特征向量,占用的存储空间较大 。在处理大规模数据集时,存储这些特征向量需要大量的硬盘空间 。这些缺点限制了 R - CNN 在实际应用中的推广和使用 。

3.1.2 Fast R - CNN 算法改进

Fast R - CNN 是在 R - CNN 基础上的重要改进算法,旨在解决 R - CNN 存在的计算效率低下和训练步骤繁琐等问题,大幅提升了目标检测的速度和性能 。

Fast R - CNN 对 R - CNN 的改进主要体现在以下几个关键方面 。共享卷积是 Fast R - CNN 的重要改进之一 。在 R - CNN 中,每个候选区域都要独立进行卷积特征提取,导致大量的重复计算 。而 Fast R - CNN 将整幅图像输入到卷积神经网络中进行一次卷积操作,生成整幅图像的特征图 。然后,根据候选区域在原图中的位置,在特征图上找到对应的区域,这样就可以共享卷积特征,大大减少了计算量 。在检测包含多个目标的图像时,R - CNN 需要对每个候选区域分别进行卷积计算,而 Fast R - CNN 只需对整幅图像进行一次卷积,然后在生成的特征图上对不同的候选区域进行处理,显著提高了计算效率 。

RoI Pooling(Region of Interest Pooling)层是 Fast R - CNN 的另一个重要创新 。由于不同候选区域的大小和形状各不相同,而后续的全连接层需要固定大小的输入 。RoI Pooling 层的作用就是将不同大小的候选区域在特征图上对应的区域,通过池化操作转换为固定大小的特征向量 。它将每个候选区域均匀分成 M×N 块,对每块进行 max pooling 操作,从而得到固定维度的特征表示 。这样,无论输入的候选区域大小如何,都可以通过 RoI Pooling 层得到统一大小的特征向量,便于后续的全连接层处理 。对于大小不同的两个候选区域,经过 RoI Pooling 层后,都可以得到相同维度的特征向量,如 7×7 的特征向量 。

Fast R - CNN 还将类别分类和 bounding box 回归合并到一个网络中,实现了多任务学习 。它使用 Softmax 函数进行分类,同时使用回归器对候选区域的 bounding box 进行回归 。在网络训练过程中,分类损失和回归损失同时参与反向传播,使得两个任务能够相互促进,提高了模型的性能 。这种端到端的训练方式简化了训练流程,避免了 R - CNN 中分类和回归分别训练的繁琐步骤 。在 Fast R - CNN 中,通过一次前向传播就可以得到候选区域的类别和边界框的预测结果,然后根据真实标签计算分类损失和回归损失,通过反向传播更新网络参数 。

Fast R - CNN 的训练过程相对 R - CNN 更加简洁高效 。它可以直接在目标检测数据集上进行端到端的训练,无需像 R - CNN 那样进行多步训练 。在训练时,首先对整幅图像进行卷积操作得到特征图,然后根据候选区域在特征图上提取特征,通过 RoI Pooling 层将特征转换为固定大小,最后输入到全连接层进行分类和回归 。在反向传播过程中,同时更新卷积层、RoI Pooling 层和全连接层的参数 。这种训练方式不仅提高了训练速度,还使得模型能够更好地学习到目标检测的特征和模式 。

与 R - CNN 相比,Fast R - CNN 在检测速度上有了显著提升 。由于共享卷积和 RoI Pooling 层的使用,大大减少了计算量,使得检测一张图像的时间大幅缩短 。在 PASCAL VOC 2012 数据集上,Fast R - CNN 的检测速度比 R - CNN 快了近 9 倍,同时在检测精度上也有一定的提升,mAP 达到了 68.4% 。这使得 Fast R - CNN 在实际应用中更具可行性,能够满足一些对检测速度有较高要求的场景,如实时视频监控等 。然而,Fast R - CNN 在生成候选区域时仍然依赖外部算法(如 Selective Search),这在一定程度上限制了检测速度的进一步提升 。在处理复杂场景图像时,生成候选区域的过程仍然较为耗时,成为了 Fast R - CNN 检测速度的瓶颈 。

3.1.3 Faster R - CNN 算法突破

Faster R - CNN 是目标检测领域的又一重大突破,它在 Fast R - CNN 的基础上,通过引入区域生成网络(Region Proposal Network,RPN),解决了候选区域生成效率低下的问题,实现了端到端的目标检测,在检测速度和精度上都取得了显著的提升 。

Faster R - CNN 的最大创新点在于 RPN 的引入 。RPN 是一个全卷积网络,它与 Fast R - CNN 共享卷积层特征,能够在特征图上直接生成候选区域 。RPN 通过在特征图上滑动一个小的网络窗口,对每个位置生成多个不同尺度和长宽比的锚框(Anchor Boxes) 。这些锚框作为先验框,覆盖了图像中不同大小和形状的目标可能出现的位置 。在一幅图像经过卷积层得到特征图后,RPN 在特征图的每个位置生成 9 个锚框,这些锚框具有三种不同的尺度(如 128×128、256×256、512×512)和三种不同的长宽比(如 1:1、1:2、2:1) 。

RPN 不仅生成锚框,还对每个锚框进行前景 / 背景分类和边界框回归 。它通过两个并行的分支,一个分支用于预测锚框是否包含目标(前景 / 背景分类),使用 softmax 函数输出每个锚框属于前景或背景的概率;另一个分支用于预测锚框相对于真实目标框的位置偏移(边界框回归),通过回归器输出四个偏移量,用于调整锚框的位置和大小,使其更接近真实目标框 。在训练过程中,根据锚框与真实目标框的交并比(IoU)来确定锚框的标签,IoU 大于一定阈值(如 0.7)的锚框被视为正样本,IoU 小于一定阈值(如 0.3)的锚框被视为负样本 。通过最小化分类损失和回归损失来训练 RPN,使其能够生成高质量的候选区域 。

Faster R - CNN 的网络结构主要由四部分组成:特征提取网络(Backbone)、RPN、RoI Pooling 层和分类回归网络 。特征提取网络通常采用预训练的深度卷积神经网络,如 VGG16、ResNet 等,用于提取输入图像的特征图 。以 VGG16 为例,它包含 13 个卷积层和 5 个池化层,通过这些层的层层卷积和池化操作,能够提取到图像的高级语义特征 。RPN 在特征图上生成候选区域,RoI Pooling 层将候选区域在特征图上对应的区域转换为固定大小的特征向量,最后分类回归网络对这些特征向量进行分类和边界框回归,得到最终的目标检测结果 。在实际检测过程中,输入图像首先经过特征提取网络得到特征图,然后 RPN 在特征图上生成候选区域,RoI Pooling 层对候选区域进行处理,最后分类回归网络根据处理后的特征向量判断目标的类别和位置 。

Faster R - CNN 的训练过程采用交替训练的方式 。首先,使用 ImageNet 预训练模型初始化网络参数,然后独立训练 RPN,优化区域提议的生成 。在训练 RPN 时,根据锚框与真实目标框的匹配情况,计算分类损失和回归损失,通过反向传播更新 RPN 的参数 。接着,使用 RPN 生成的提议区域来训练 Fast R - CNN,进行目标检测任务 。在这个过程中,将 RPN 生成的候选区域与真实目标框进行匹配,计算分类损失和回归损失,更新 Fast R - CNN 的参数 。固定 Fast R - CNN 的检测头部分,使用检测网络来初始化 RPN,并共享卷积层,对 RPN 进行微调 。通过这种交替训练的方式,使得 RPN 和 Fast R - CNN 能够相互协作,共同提高目标检测的性能 。

与 Fast R - CNN 相比,Faster R - CNN 的检测速度有了质的飞跃 。由于 RPN 直接在网络内生成候选区域,避免了外部算法生成候选区域的时间消耗,使得检测速度大幅提升 。在 PASCAL VOC 2007 数据集上,Faster R - CNN 的检测速度可达 5 帧 / 秒,同时在检测精度上也有进一步的提高,mAP 达到了 73.2% 。这使得 Faster R - CNN 在实时目标检测场景中具有更强的竞争力,能够满足如自动驾驶、智能安防等对检测速度和精度都有较高要求的应用场景 。Faster R - CNN 也为后续的目标检测算法发展提供了重要的思路和基础,许多改进算法都是在其基础上进行拓展和优化的 。

3.2 YOLO 系列算法

3.2.1 YOLOv1 算法原理

YOLOv1(You Only Look Once version 1)是 YOLO 系列算法的开山之作,其创新性地将目标检测任务视为一个回归问题,从图像像素信息直接得到目标的边框以及所属类别的概率,实现了端到端的目标检测,具有极高的检测速度,能够满足实时检测的需求 。

YOLOv1 的核心思想是将输入图像划分为 S×S 的网格 。如果某个目标的中心落入了某个网格中,则由该网格负责检测这个目标 。在 YOLOv1 中,每个网格会预测 B 个边界框(bounding box)和 C 个条件类别概率 。以 S = 7,B = 2 为例,将图像划分为 7×7 的网格,每个网格会预测 2 个边界框和相应的类别概率 。每个边界框包含 5 个预测值:x、y、w、h 和置信度 。其中,(x, y) 表示边界框中心相对于网格边界的偏置(通常指网格的左上角),取值范围是 [0, 1],通过相对于网格边长的比例进行归一化;(w, h) 是边界框的宽度和高度,以图像的宽度和高度为基准进行归一化,取值范围也是 [0, 1];置信度表示预测框与实际边界框之间的交并比(IoU),反映了该模型对预测框的准确程度,取值范围同样是 [0, 1] 。置信度的计算公式为:Confidence = Pr (Object)×IoUtruth,其中 Pr (Object) 表示该边界框是否包含目标,有目标时为 1,无目标时为 0 。在设置标签时,如果该单元格中存在目标,则置信度应为 1(因为有目标,Pr (Object)=1,并且希望预测框与实际边界框完全重合,IoUtruthpred=1);如果该单元格中不存在目标,置信度应该为 0 。在测试时,当置信度输出为 1,说明预测框与实际边界框完全重合,这是最理想的情况;但如果置信度为 0,说明预测框与实际边界框不重合,检测结果不可靠 。

对于存在目标的网格,还需要预测 C 个类别概率 。这里的类别概率是条件类别概率,即 P (Classi | Object),表示在一个网格中有目标的前提下,该目标属于某个类别的概率 。在测试阶段,将网格的条件类别概率 P (Classi | Object) 和以该网格为准预测出来边界框的置信度相乘,即可得到边界框中包含的目标的类别的概率 。假设某个网格预测的条件类别概率中,行人的概率为 0.8,该网格预测的某个边界框的置信度为 0.9,那么该边界框中目标为行人的概率就是 0.8×0.9 = 0.72 。

YOLOv1 的网络结构基于 GoogLeNet,包含 24 个卷积层和 2 个全连接层 。在训练过程中,使用均方误差(MSE)作为损失函数,对边界框的坐标、置信度和类别概率进行联合优化 。损失函数由定位损失、置信度损失和类别损失三部分组成 。定位损失用于衡量预测边界框与真实边界框之间的位置差异,通过计算边界框坐标的均方误差来实现 。置信度损失用于衡量预测置信度与真实置信度之间的差异,真实置信度根据预测框与真实框的 IoU 计算得到 。类别损失用于衡量预测类别概率与真实类别之间的差异,采用交叉熵损失函数 。在计算损失时,对于有目标的网格,定位损失和置信度损失的权重会加大,以突出对目标的检测和定位;对于无目标的网格,置信度损失的权重会相对较小 。通过不断调整网络的参数,使得损失函数逐渐减小,从而提高模型的检测性能 。

YOLOv1 的优点显著,首先是检测速度极快,由于其将目标检测视为单一回归问题,在一次向前传递中直接从完整图像预测边界框和类概率,无需像传统方法那样进行复杂的候选区域生成和特征提取过程,因此能够实现实时检测 。在一些对检测速度要求较高的场景,如实时视频监控中,YOLOv1 可以快速处理视频流中的每一帧图像,及时检测出目标物体 。其次,YOLOv1 在做预测时,使用的是一整张图像的全局信息,相比那些每次只 “看到” 图像一块区域的方法,它可以将目标整个的外观信息以及类别进行编码,对目标的上下文信息有更好的理解,因此背景错误较少 。在复杂背景下,YOLOv1 能够综合考虑图像中的各种信息,更准确地检测出目标,而不容易将背景误判为目标 。然而,YOLOv1 也存在一些缺点 。其准确度落后于一些两阶段(two - stage)的目标检测算法,如 Faster R - CNN 。由于其使用比较粗糙的网格来划分原图,导致其对小目标的检测效果不是很好 。在一幅图像中,如果小目标的中心刚好落在两个网格的边界上,可能会导致小目标被漏检 。每个网格只能预测固定数量的边界框,对于密集目标的检测能力有限,容易出现漏检和误检的情况 。

3.2.2 YOLOv2 算法优化

YOLOv2 在 YOLOv1 的基础上进行了一系列的优化和改进,旨在提升模型的精度和稳定性,使其在目标检测任务中表现更加出色 。

在网络结构方面,YOLOv2 采用了更深的 Darknet - 19 网络,该网络包含 19 个卷积层和 5 个最大池化层 。Darknet - 19 的设计借鉴了 VGG16 的思想,通过堆叠多个 3×3 的小卷积核来增加网络的非线性表达能力,同时减少参数数量 。在 VGG16 中,使用多个 3×3 的卷积层代替一个大卷积核,不仅可以减少参数数量,还能增加网络的深度,提高特征提取能力 。Darknet - 19 的这种结构设计使得模型能够学习到更丰富的图像特征,从而提升检测精度 。YOLOv2 还引入了 Batch Normalization(批归一化)技术 。Batch Normalization 在每个卷积层之后对数据进行归一化处理,使得数据的分布更加稳定,加快了模型的收敛速度,同时也减少了梯度消失和梯度爆炸的问题 。在训练过程中,Batch Normalization 能够自动调整数据的均值和方差,使得网络对不同的输入数据具有更好的适应性,提高了模型的泛化能力 。实验表明,引入 Batch Normalization 后,YOLOv2 的 mAP(平均精度均值)提升了 2.4% 。

YOLOv2 对训练方法也进行了重要改进,引入了 Anchor Boxes(锚框)机制 。在 YOLOv1 中,每个网格直接预测边界框的坐标,而在 YOLOv2 中,通过在每个网格上设置多个不同尺度和长宽比的 Anchor Boxes,模型预测的是边界框相对于 Anchor Boxes 的偏移量和缩放比例 。这样可以增加模型对不同大小和形状目标的适应性,提高检测精度 。在训练过程中,根据真实目标框与 Anchor Boxes 的 IoU(交并比)来确定 Anchor Boxes 的标签,IoU 大于一定阈值(如 0.5)的 Anchor Boxes 被视为正样本,小于一定阈值(如 0.1)的被视为负样本 。通过这种方式,模型能够更好地学习到不同目标的特征和位置信息 。为了确定合适的 Anchor Boxes 尺寸和数量,YOLOv2 采用了 K - means 聚类算法对训练集中的真实目标框进行聚类分析 。根据聚类结果,选择了 5 种不同尺度和长宽比的 Anchor Boxes,这些 Anchor Boxes 能够更好地覆盖训练集中的目标框,提高了模型的检测性能 。

YOLOv2 还在多尺度训练方面进行了创新 。在训练过程中,YOLOv2 会每隔一定的迭代次数(如 10 次)随机调整输入图像的尺寸 。由于 YOLOv2 的网络结构下采样倍数固定为 32,所以输入图像的尺寸必须是 32 的倍数 。YOLOv2 会在 {320, 352, …, 608} 这些 32 的倍数中随机选择一个尺寸作为输入图像的大小 。这种多尺度训练方式使得模型能够适应不同分辨率的图像,提高了模型的泛化能力 。在实际应用中,模型可以更好地处理不同分辨率的图像,如在视频监控中,不同摄像头拍摄的视频分辨率可能不同,YOLOv2 能够在不同分辨率下都保持较好的检测性能 。

在预测阶段,YOLOv2 对边界框的预测方式进行了改进 。它使用逻辑回归对每个 Anchor Box 预测一个 objectness score(目标存在得分),表示该 Anchor Box 是否包含目标 。通过 sigmoid 函数将 objectness score 限制在 [0, 1] 之间,当 objectness score 大于一定阈值(如 0.5)时,认为该 Anchor Box 包含目标 。在计算边界框的坐标时,YOLOv2 采用了一种新的公式,将边界框的中心坐标相对于网格的偏移量通过 sigmoid 函数进行约束,使其取值范围在 [0, 1] 之间,这样可以更好地预测边界框的位置 。这种改进后的预测方式使得边界框的预测更加准确和稳定 。

通过这些优化和改进,YOLOv2 在检测精度和速度上都有了显著提升 。在 PASCAL VOC 2012 数据集上,YOLOv2 的 mAP 达到了 76.8%,相比 YOLOv1 有了大幅提高 。同时,YOLOv2 仍然保持了较高的检测速度,能够满足实时检测的需求 。这些改进为后续的 YOLO 系列算法发展奠定了坚实的基础 。

3.2.3 YOLOv3 及后续版本演进

YOLOv3 在 YOLOv2 的基础上进行了多方面的改进,进一步提升了目标检测的性能,尤其是在小目标检测和多尺度目标检测方面取得了显著进展 。

YOLOv3 的网络结构有了较大的创新,采用了 Darknet - 53 作为骨干网络 。Darknet - 53 包含 53 个卷积层,借鉴了残差网络(ResNet)的思想,引入了残差连接(Residual Connection) 。残差连接允许网络直接学习输入和输出之间的残差,解决了深度神经网络中的梯度消失和梯度爆炸问题,使得网络可以训练得更深,从而提取更丰富的特征 。在 Darknet - 53 中,通过将输入直接加到经过卷积层处理后的输出上,形成残差块,使得网络能够更好地学习到图像的高级语义特征 。实验表明,Darknet - 53 在 ImageNet 图像分类任务上的表现优于 VGG16 和 ResNet101,同时计算量相对较低,为目标检测提供了强大的特征提取能力 。

多尺度检测是 YOLOv3 的重要改进之一 。YOLOv3 在不同尺度的特征图上进行目标检测,分别在 32 倍下采样、16 倍下采样和 8 倍下采样的特征图上进行预测 。这样可以兼顾不同大小目标的检测,小目标在高分辨率的特征图(如 8 倍下采样的特征图)上更容易被检测到,而大目标在低分辨率的特征图(如 32 倍下采样的特征图)上能够更好地利用其全局特征 。为了实现多尺度检测,YOLOv3 采用了特征融合的策略 。它将深层特征图经过上采样(Up - Sampling)操作后与浅层特征图进行融合,使得融合后的特征图既包含了深层的语义信息,又包含了浅层的细节信息 。在融合过程中,通过逐元素相加或拼接的方式将不同尺度的特征图进行合并,然后再经过卷积层进行特征提取和整合 。这种特征融合方式提高了模型对不同尺度目标的检测能力,在 COCO 数据集上,YOLOv3 对小目标的检测精度有了明显提升 。

YOLOv3 还改进了分类方式,采用了多标签分类(Multi - label Classification) 。在 YOLOv1 和 YOLOv2 中,每个网格只能预测一个类别,而 YOLOv3 允许每个边界框预测多个类别 。它使用逻辑回归对每个类别进行独立的预测,通过 sigmoid 函数将每个类别的预测值限制在 [0, 1] 之间,当某个类别的预测值大于一定阈值(如 0.5)时,认为该边界框包含该类别目标 。这种多标签分类方式更符合实际应用中目标可能存在多个类别的情况,提高了模型的适应性和准确性 。

在损失函数方面,YOLOv3 沿用了 YOLOv2 中的一些设计,并进行了适当调整 。它同样使用均方误差(MSE)来计算边界框的坐标损失,使用二元交叉熵损失(Binary Cross - Entropy Loss)来计算目标存在得分(objectness score)和类别预测的损失 。在计算损失时,对于不同尺度的特征图和不同类别的目标,采用了不同的权重设置,以平衡不同尺度和类别的检测效果 。对于小目标的检测,给予更高的权重,以提高小目标的检测精度 。

YOLO 系列后续版本(如 YOLOv4、YOLOv5、YOLOv6、YOLOv7、YOLOv8 等)在 YOLOv3 的基础上继续演进和优化 。YOLOv4 结合了多种先进的技术,如 CSPDarknet53 骨干网络、Mish 激活函数、DropBlock 正则化等 。CSPDarknet53 通过跨阶段局部网络(CSPNet)减少了计算量,提高了模型的推理速度;Mish 激活函数相比 ReLU 等传统激活函数具有更好的非线性表达能力,能够提升模型的性能;DropBlock 正则化通过随机丢弃部分特征,防止模型过拟合 。在训练策略上,YOLOv4 采用了 Cosine 学习率衰减等方法,使得模型在训练过程中能够更好地收敛 。

YOLOv5 并非官方版本,但在社区中广泛使用 。它采用了 PyTorch 框架,提供了更易于使用的接口和更高的训练效率 。YOLOv5 在网络结构上进行了优化,引入了 Focus 结构,通过切片操作将输入图像的信息进行重组,在不增加计算量的情况下丰富了特征图的信息 。它还采用了自适应锚框计算和自适应图片缩放等技术,进一步提高了检测速度和精度 。

YOLOv6 是美团视觉智能部研发的一款目标检测框架,专注于工业应用 。该框架同时关注检测的精度和推理效率,采用了硬件感知神经网络搜索(HNAS)和重参数化技术(RepVGG) 。HNAS 能够根据硬件平台的特点自动搜索最优的网络结构,提高模型在特定硬件上的运行效率;RepVGG 通过将多分支结构在训练和推理阶段进行转换,在不损失精度的前提下提高了推理速度 。

YOLOv7 引入了新的网络结构和训练策略,如扩展的高效层聚合网络(ELAN)和可训练的袋中策略(Bag - of - Freebies) 。ELAN 通过对特征进行更有效的融合和传播,提高了模型的性能;可训练的袋中策略则通过一系列的训练技巧,如数据增强、标签平滑等,进一步提升了模型的泛化能力和检测精度 。

YOLOv8 是 YOLO 系列的最新版本,采用了最新的技术,如自注意力机制和 Transformer 结构 。自注意力机制能够让模型更好地关注目标的关键特征,提高对复杂场景和目标的理解能力;Transformer 结构则增强了模型对长距离依赖关系的建模能力,进一步提升了检测性能 。它还在模型的可扩展性和易用性方面进行了改进,提供了更多的功能和灵活的配置选项 。

这些后续版本的不断演进,使得 YOLO 系列算法在目标检测领域始终保持着较高的性能和广泛的应用 。

3.3 SSD 算法解析

SSD(Single Shot MultiBox Detector)是一种单阶段目标检测算法,它在目标检测领域具有独特的优势,能够在保证一定检测速度的同时,实现较高的检测精度 。

SSD 的核心设计理念是在不同尺度的特征图上进行多尺度特征图检测 。它基于一个基础的卷积神经网络(如 VGG16),在网络的不同层输出的特征图上进行目标检测 。SSD 会在这些不同尺度的特征图上生成一系列不同大小和长宽比的默认框(Default Boxes,也称为锚框,Anchor Boxes) 。小尺度的特征图感受野大,适合检测大目标,因此在小尺度特征图上生成较大的默认框;大尺度的特征图感受野小,适合检测小目标,所以在大尺度特征图上生成较小的默认框 。在 VGG16 网络中,通常会选取不同层级的特征图,如 conv4_3、conv7、conv8_2、conv9_2、conv10_2 和 conv11_2 等层的特征图 。在 conv4_3 特征图上,由于其分辨率较高,感受野较小,生成的默认框尺寸相对较小,用于检测小目标;而在 conv11_2 特征图上,分辨率较低,感受野较大,生成的默认框尺寸较大,用于检测大目标 。每个特征图上的每个位置都会生成多个不同长宽比的默认框,一般会设置 3 到 6 种不同的长宽比,如 1:1、1:2、2:1、1:3、3:1 等 。这样可以覆盖图像中不同大小和形状的目标可能出现的位置,增加检测的可能性 。

SSD 采用直接回归的方式来预测目标的类别和位置 。对于每个默认框,SSD 通过卷积层直接预测其是否包含目标(前景 / 背景分类)以及目标相对于默认框的位置偏移(边界框回归) 。在分类方面,使用 softmax 函数对每个默认框预测其属于各个类别的概率,通过比较概率值确定目标的类别 。在预测一个包含行人的图像时,SSD 会对每个默认框计算其属于行人、背景以及其他类别的概率,如果属于行人的概率最高且超过设定的阈值,则认为该默认框检测到了行人 。在边界框回归方面,通过回归器预测目标相对于默认框的位置偏移量,包括中心坐标的偏移和宽高的缩放比例 。假设默认框的中心坐标为 (x0, y0),宽高为 (w0, h0),预测的偏移量为 (Δx, Δy, Δw, Δh),则预测的边界框中心坐标为 (x = x0 + Δx, y = y0 + Δy),宽高为 (w = w0 * exp (Δw), h = h0 * exp (Δh)) 。通过这种直接回归的方式,SSD 可以在一次前向传播中同时完成目标的分类和定位,大大提高了检测速度 。

SSD 的损失函数由分类损失和定位损失两部分组成 。分类损失采用交叉熵损失,用于衡量预测类别与真实类别之间的差异 。定位损失采用平滑 L1 损失,用于衡量预测边界框与真实边界框之间的位置差异 。在训练过程中,根据默认框与真实目标框的交并比(IoU)来确定默认框的标签,IoU 大于一定阈值(如 0.5)的默认框被视为正样本,小于一定阈值(如 0.1)的默认框被视为负样本 。通过最小化损失函数,不断调整网络的参数,使得模型能够准确地检测出目标的类别和位置 。

与其他目标检测算法相比,SSD 具有以下优势 。由于 SSD 在一次前向传播中直接完成目标的检测,无需像 R - CNN 系列算法那样进行复杂的候选区域生成和多次特征提取过程,因此检测速度快,能够满足实时检测的需求 。在视频监控场景中,SSD 可以快速处理视频流中的每一帧图像,及时检测出目标物体 。SSD 通过在不同尺度的特征图上生成不同大小和长宽比的默认框,能够有效地检测不同大小和形状的目标,在检测精度上表现较好 。与 YOLOv1 相比,SSD 对小目标的检测能力更强,能够更好地适应复杂场景下的目标检测任务 。SSD 的网络结构相对简单,易于实现和部署,可以在不同的硬件平台上运行 。它可以方便地集成到各种应用系统中,如智能安防、自动驾驶等领域 。然而,SSD 也存在一些不足之处,例如在处理密集目标时,由于默认框的重叠问题,可能会出现漏检和误检的情况 。在检测人群密集的场景时,可能会有部分行人被漏检或被误检为其他目标 。

四、目标检测算法的性能评估与优化策略

4.1 性能评估指标

在目标检测领域,为了全面、准确地衡量算法的性能表现,一系列性能评估指标被广泛应用。这些指标从不同角度反映了算法在目标检测任务中的准确性、召回率和综合性能等关键方面,对于算法的研究、改进以及实际应用具有重要的指导意义 。

平均精度均值(mAP,Mean Average Precision)是目标检测中最为重要的综合评估指标之一,用于衡量算法在多个类别上的整体性能 。其计算基于每个类别的平均精度(AP,Average Precision) 。AP 的计算过程较为复杂,首先需要对每个类别生成一系列的检测结果,包括边界框和置信度评分 。然后按照置信度从高到低对检测结果进行排序 。在不同的置信度阈值下,计算对应的精确率(Precision)和召回率(Recall) 。精确率表示预测为正样本(即检测到目标)的样本中,真正为正样本的比例,计算公式为:Precision = TP / (TP + FP),其中 TP(True Positive)表示真正例,即预测为正样本且实际也为正样本的数量;FP(False Positive)表示假正例,即预测为正样本但实际为负样本的数量 。召回率表示实际为正样本的样本中,被正确预测为正样本的比例,计算公式为:Recall = TP / (TP + FN),其中 FN(False Negative)表示假反例,即实际为正样本但被预测为负样本的数量 。通过在不同置信度阈值下计算精确率和召回率,可以绘制出精确率 - 召回率曲线(PR 曲线) 。AP 就是 PR 曲线下的面积,通常使用积分或插值法来计算 。对于每个类别都计算其 AP 值,最后将所有类别的 AP 值求平均,得到 mAP 。在一个包含车辆、行人、交通标志等多个类别的目标检测任务中,分别计算每个类别的 AP 值,然后将这些 AP 值平均,得到的 mAP 值能够综合反映算法在不同类别目标检测上的性能 。mAP 的取值范围是 [0, 1],值越接近 1,表示算法的性能越好 。在 PASCAL VOC 和 COCO 等常用的目标检测数据集上,mAP 被广泛用于评估不同算法的性能,是衡量算法优劣的重要标准 。

精确率(Precision)和召回率(Recall)是衡量目标检测算法性能的两个基本且关键的指标 。精确率反映了检测结果的准确性,即检测到的目标中真正属于该类别的比例 。在行人检测任务中,如果模型检测出 100 个行人,其中有 80 个是真正的行人,20 个是误检(将非行人误判为行人),那么精确率为 80 / (80 + 20) = 0.8 。召回率则体现了模型对目标的覆盖程度,即实际存在的目标中有多少被成功检测出来 。在上述行人检测任务中,如果实际图像中有 100 个行人,模型检测出 80 个,还有 20 个未被检测到,那么召回率为 80 / (80 + 20) = 0.8 。精确率和召回率之间通常存在一种权衡关系 。当提高精确率时,可能会降低召回率;反之,提高召回率时,可能会降低精确率 。如果将检测的置信度阈值设置得较高,只有置信度非常高的检测结果才被认为是正样本,这样可以减少误检,提高精确率,但可能会导致一些真实目标因为置信度略低而被漏检,从而降低召回率 。相反,如果将置信度阈值设置得较低,更多的检测结果会被认为是正样本,召回率会提高,但误检的情况可能会增加,导致精确率下降 。为了综合考虑精确率和召回率,常常会绘制 PR 曲线来直观地展示它们之间的关系 。PR 曲线越靠近右上角,说明算法在精确率和召回率上的综合表现越好 。

交并比(IoU,Intersection over Union)是衡量检测结果与真实标签之间重叠程度的重要指标 。它的计算方法是检测框与真实框的交集面积除以它们的并集面积 。IoU 的取值范围是 [0, 1],值越接近 1,表示检测框与真实框的重叠度越高,检测结果越准确 。在计算 IoU 时,首先确定检测框和真实框的坐标,然后计算它们的交集和并集面积 。假设检测框的坐标为 (x1, y1, x2, y2),真实框的坐标为 (x3, y3, x4, y4),则交集的左上角坐标为 (max (x1, x3), max (y1, y3)),右下角坐标为 (min (x2, x4), min (y2, y4)) 。交集面积为 (max (0, min (x2, x4) - max (x1, x3))) * (max (0, min (y2, y4) - max (y1, y3))) 。并集面积为检测框面积加上真实框面积减去交集面积 。如果检测框完全覆盖了真实框,或者真实框完全覆盖了检测框,IoU 的值为 1;如果检测框和真实框没有任何重叠,IoU 的值为 0 。在实际应用中,通常会设置一个 IoU 阈值(如 0.5),当检测框与真实框的 IoU 大于该阈值时,认为检测正确 。在目标检测算法的评估中,IoU 常用于判断检测结果是否准确,是计算精确率、召回率以及 AP 等指标的基础 。

除了上述主要指标外,还有一些其他指标也在目标检测性能评估中发挥着作用 。F1 值是精确率和召回率的调和平均数,计算公式为:F1 = 2 * (Precision * Recall) / (Precision + Recall) 。F1 值综合考虑了精确率和召回率,能够更全面地反映算法的性能 。当精确率和召回率都较高时,F1 值也会较高 。在一些对精确率和召回率都有较高要求的场景中,F1 值是一个重要的评估指标 。漏检率(Miss Rate)是指实际为正样本但被错误预测为负样本的比例,即 FN / (TP + FN) 。漏检率与召回率互补,召回率越高,漏检率越低 。误检率(False Alarm Rate)是指预测为正样本但实际为负样本的比例,即 FP / (FP + TN),其中 TN(True Negative)表示真反例,即预测为负样本且实际也为负样本的数量 。误检率与精确率相关,精确率越高,误检率越低 。在实际应用中,根据不同的需求和场景,可能会重点关注不同的指标 。在安防监控领域,可能更注重召回率,以确保尽可能少地漏检目标;而在一些对准确性要求极高的场景,如医学影像诊断,可能会更关注精确率 。

4.2 优化策略探讨

4.2.1 数据增强技术

数据增强技术在目标检测领域中具有至关重要的作用,它通过对原始训练数据进行各种变换,人为地扩充数据集的规模和多样性,从而有效提升模型的泛化能力和鲁棒性 。在实际应用中,由于获取大量标注数据往往面临成本高、耗时久以及标注难度大等问题,数据增强技术成为了一种经济高效的解决方案,能够在有限的数据集上显著提高模型的性能 。

随机翻转是一种简单而有效的数据增强方法,包括水平翻转和垂直翻转 。水平翻转是将图像沿着水平方向进行镜像变换,垂直翻转则是沿着垂直方向进行镜像变换 。在行人检测任务中,对训练图像进行水平翻转后,原本朝右行走的行人变为朝左行走,这样可以让模型学习到行人在不同方向上的特征,增强模型对行人姿态变化的适应性 。在实际应用中,通常会以一定的概率(如 0.5)对图像进行随机翻转操作,以增加数据的多样性 。随机翻转操作不仅可以扩充数据集的规模,还可以减少模型对图像方向的依赖,提高模型的鲁棒性 。

随机裁剪是从原始图像中随机截取一部分区域作为新的训练样本 。通过随机裁剪,可以使模型学习到目标在不同位置和大小下的特征 。在一幅包含车辆的图像中,随机裁剪可能会截取到车辆的不同部位,如车头、车尾或车身的一部分,这有助于模型更好地理解车辆的整体结构和局部特征 。在进行随机裁剪时,需要注意保持裁剪区域内目标的完整性,避免裁剪掉过多的目标信息 。可以根据目标的边界框信息,设置裁剪区域的大小和位置,确保裁剪后的图像中包含目标物体 。通常会设置一个最小的裁剪区域大小,以保证目标在裁剪后的图像中仍然具有足够的特征信息 。

随机缩放是对图像进行放大或缩小操作,从而使模型能够学习到目标在不同尺度下的特征 。在检测不同大小的物体时,随机缩放可以让模型适应目标大小的变化,提高检测的准确性 。在一个包含不同大小车辆的图像中,通过随机缩放,模型可以学习到大型卡车和小型轿车在不同尺度下的特征,从而更好地检测出各种大小的车辆 。随机缩放可以采用不同的缩放因子,如 0.8、1.2 等,以生成不同尺度的图像样本 。为了保持图像的纵横比,可以在缩放时采用等比例缩放的方式 。

除了上述几何变换方法,数据增强还包括光度变换,如亮度调整、对比度调整、色调调整和饱和度调整等 。亮度调整是改变图像的明亮程度,对比度调整是增强或减弱图像中不同区域之间的对比度,色调调整是改变图像的颜色基调,饱和度调整是调整图像颜色的鲜艳程度 。通过这些光度变换,可以使模型学习到目标在不同光照和颜色条件下的特征,提高模型对复杂环境的适应性 。在不同光照条件下拍摄的图像中,通过调整亮度和对比度,可以让模型学习到目标在不同光照强度下的特征,从而在实际应用中能够准确检测到目标 。

数据增强技术还可以结合其他方法,如 MixUp 和 CutOut 。MixUp 通过将两个图像混合在一起来创建新图像,边界框也相应地混合 。这种方法可以让模型学习到不同图像之间的特征融合,提高模型的泛化能力 。CutOut 则是随机屏蔽图像的矩形区域,这可以帮助模型学习关注对象的不同部分,避免模型过度依赖某些局部特征 。在训练过程中,随机在图像上屏蔽一些区域,让模型学习从剩余的区域中提取目标特征,从而提高模型的鲁棒性 。

在实际应用数据增强技术时,需要注意对边界框的处理 。每当对图像进行变换时,必须相应地变换边界框的位置和大小 。如果对图像进行旋转操作,边界框也需要按照相同的旋转角度进行旋转;如果对图像进行缩放操作,边界框的尺寸也需要按比例缩放 。在进行随机裁剪时,需要根据裁剪区域调整边界框的坐标,确保边界框与裁剪后的图像相对应 。为了实现准确的边界框变换,可以使用一些专门的库,如 Albumentations、Imgaug 和 TensorFlow 的 tf.image 模块等,这些库提供了在正确处理边界框的同时轻松应用各种数据增强操作的功能 。

4.2.2 模型压缩与加速

在目标检测领域,随着深度学习模型的不断发展,模型的规模和复杂度日益增加,这虽然带来了性能的提升,但也导致了计算资源的大量消耗和推理速度的降低 。模型压缩与加速技术旨在在保持模型性能的前提下,减少模型的大小和计算量,提高模型的推理效率,使其能够更好地应用于资源受限的环境中,如移动设备和嵌入式系统 。

剪枝是一种常用的模型压缩方法,其核心思想是通过去除模型中不重要的连接或神经元,来减少模型的参数数量和计算复杂度 。在神经网络中,并非所有的连接和神经元对模型的性能都有同等重要的贡献 。有些连接的权重非常小,对模型的输出影响较小,这些连接可以被认为是不重要的 。剪枝方法通常分为非结构化剪枝和结构化剪枝 。非结构化剪枝是对单个权重进行修剪,直接删除权重值小于某个阈值的连接 。这种方法可以有效地减少模型的参数数量,但由于删除的连接是随机的,会导致模型结构变得不规则,难以在硬件上高效实现 。结构化剪枝则是对整个神经元或卷积核进行修剪,删除整个神经元或卷积核,使得模型结构保持规则,便于在硬件上加速 。在卷积神经网络中,可以删除一些卷积核,使得模型在减少计算量的同时,仍然能够保持较好的性能 。剪枝过程通常需要进行多次迭代,每次迭代后重新评估模型的性能,以确保剪枝不会导致模型性能的大幅下降 。在每次剪枝后,需要使用验证数据集对模型进行评估,如果模型性能下降过多,则需要调整剪枝策略或恢复部分被剪枝的连接 。

量化是另一种重要的模型压缩技术,它通过将模型中的参数和激活值用低比特表示来减少内存占用和计算量 。在传统的深度学习模型中,参数和激活值通常使用 32 位浮点数表示,而量化技术可以将其压缩为 8 位整数或更低比特数 。量化分为训练后量化和量化感知训练 。训练后量化是在模型训练完成后,对模型进行量化处理 。它通过对参数和激活值进行统计分析,确定合适的量化范围和量化步长,然后将其映射到低比特表示 。训练后量化的优点是实现简单,不需要重新训练模型,但可能会导致一定的性能损失 。量化感知训练则是在模型训练过程中引入量化操作,让模型在训练过程中适应量化带来的误差 。通过在训练过程中模拟量化误差,使得模型能够学习到更鲁棒的特征表示,从而减少量化对性能的影响 。在量化感知训练中,会在模型的前向传播和反向传播过程中加入量化和反量化操作,通过调整量化参数和模型参数,使得模型在低比特表示下仍然能够保持较好的性能 。

除了剪枝和量化,模型压缩还可以采用知识蒸馏等方法 。知识蒸馏是一种将教师模型的知识转移到学生模型中的技术 。教师模型通常是一个大型且准确的模型,而学生模型是一个较小且推理速度更快的模型 。知识蒸馏通过最小化学生模型预测与教师模型预测之间的差异来实现,从而使学生模型能够学习教师模型的知识 。在目标检测任务中,可以使用一个大型的 Faster R - CNN 模型作为教师模型,一个小型的 SSD 模型作为学生模型 。通过知识蒸馏,让 SSD 模型学习 Faster R - CNN 模型的检测知识,在减少模型大小的同时,保持较好的检测性能 。在知识蒸馏过程中,通常使用软标签来传递教师模型的知识 。软标签不仅包含了类别信息,还包含了模型对不同类别的置信度信息,相比硬标签(只有类别信息),软标签能够提供更丰富的知识 。

在模型加速方面,除了通过模型压缩减少计算量外,还可以采用一些硬件加速和算法优化策略 。在硬件方面,使用 GPU、TPU 等专用硬件加速器可以显著提高模型的推理速度 。GPU 具有强大的并行计算能力,能够同时处理多个计算任务,适合深度学习模型的大规模矩阵运算 。TPU 则是专门为深度学习设计的硬件加速器,在处理深度学习任务时具有更高的效率和更低的能耗 。在算法优化方面,可以采用模型融合、稀疏矩阵计算等方法 。模型融合是将多个小模型合并为一个大模型,减少模型切换带来的开销 。稀疏矩阵计算则是利用模型参数的稀疏性,只计算非零元素,减少计算量 。在一些稀疏神经网络中,大部分参数为零,通过稀疏矩阵计算,可以只对非零参数进行计算,从而大大提高计算效率 。

4.2.3 损失函数优化

损失函数在目标检测模型的训练过程中起着核心作用,它用于衡量模型预测结果与真实标签之间的差异,通过最小化损失函数来调整模型的参数,使得模型的预测结果尽可能接近真实值 。在目标检测任务中,常见的损失函数包括交叉熵损失、IoU 损失等,对这些损失函数的优化和改进是提高模型性能的关键之一 。

交叉熵损失是目标检测中常用的分类损失函数,它主要用于衡量模型预测的类别概率与真实类别之间的差异 。对于一个多类别分类问题,假设模型预测的类别概率分布为P=(p_1,p_2,\cdots,p_n),真实类别为y,其中y是一个 one - hot 编码向量,只有真实类别的位置为 1,其他位置为 0 。交叉熵损失的计算公式为:L = -\sum_{i = 1}^{n}y_i\log(p_i) 。当模型预测的类别概率与真实类别越接近时,交叉熵损失越小;反之,损失越大 。在一个包含车辆、行人、交通标志等类别的目标检测任务中,模型对每个检测框预测其属于各个类别的概率,通过交叉熵损失来衡量预测概率与真实类别的差异,从而指导模型的训练 。然而,在实际应用中,目标检测任务往往存在类别不平衡问题,即不同类别的样本数量差异较大 。在这种情况下,传统的交叉熵损失会使模型倾向于学习数量较多的类别,而对数量较少的类别检测效果不佳 。为了解决这个问题,Focal Loss 被提出 。Focal Loss 引入了一个调制因子(1 - p_t)^{\gamma},其中p_t是模型对样本的预测概率,\gamma是一个可调节的超参数 。当样本容易分类时,p_t接近 1,调制因子(1 - p_t)^{\gamma}接近 0,从而降低了易分类样本的损失权重;当样本难以分类时,p_t接近 0,调制因子(1 - p_t)^{\gamma}接近 1,增加了难分类样本的损失权重 。通过这种方式,Focal Loss 能够更关注难分类样本的训练,有效缓解类别不平衡问题 。在一个包含大量背景样本和少量目标样本的目标检测任务中,Focal Loss 可以使模型更加关注目标样本的分类,提高对目标的检测精度 。

IoU 损失(Intersection over Union Loss)主要用于衡量模型预测的边界框与真实边界框之间的重叠程度,它在目标检测的定位任务中起着重要作用 。IoU 的计算方法是预测框与真实框的交集面积除以它们的并集面积,取值范围是 [0, 1],值越接近 1,表示预测框与真实框的重叠度越高,定位越准确 。传统的 IoU 损失直接使用 1 减去 IoU 作为损失值,即L_{IoU}=1 - IoU 。然而,传统 IoU 损失存在一些局限性,当预测框与真实框不相交时,IoU 为 0,此时 IoU 损失无法反映两个框之间的距离信息,导致模型在训练过程中难以收敛 。为了克服这个问题,一些改进的 IoU 损失被提出,如 GIoU(Generalized Intersection over Union)损失、DIoU(Distance - IoU)损失和 CIoU(Complete - IoU)损失 。GIoU 损失在 IoU 的基础上,引入了最小外接矩形的概念,通过计算预测框和真实框的最小外接矩形与它们的并集之间的 IoU,来衡量两个框之间的相对位置关系 。当预测框与真实框不相交时,GIoU 损失能够反映它们之间的距离,使得模型能够更好地收敛 。DIoU 损失则直接考虑了预测框和真实框之间的距离,通过计算两个框中心点之间的欧氏距离与它们的对角线长度的比值,来衡量两个框之间的距离关系 。CIoU 损失在 DIoU 损失的基础上,进一步考虑了预测框和真实框的宽高比,使得损失函数更加全面地反映了两个框之间的差异 。在实际应用中,CIoU 损失能够使模型更快地收敛,并且在定位精度上有更好的表现 。

除了上述损失函数的改进,还可以将不同的损失函数进行组合,以满足目标检测任务的多任务需求 。在目标检测中,通常需要同时进行分类和定位任务,因此可以将交叉熵损失和 IoU 损失进行加权组合,得到一个综合损失函数 。L = \alpha L_{cls}+(1 - \alpha)L_{loc},其中L_{cls}是交叉熵损失,L_{loc}是 IoU 损失(或其他定位损失),\alpha是一个权重系数,用于平衡分类损失和定位损失的重要性 。通过调整\alpha的值,可以根据任务的需求来优化模型的性能 。在一些对定位精度要求较高的任务中,可以适当增大\alpha的值,使模型更加关注定位任务;在一些对分类精度要求较高的任务中,则可以减小\alpha的值,使模型更加关注分类任务 。还可以根据不同的场景和需求,设计更加复杂的损失函数,如结合语义分割信息的损失函数,以提高模型在复杂场景下的目标检测性能 。

代码在(三)中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值