互联网资讯 / 人工智能 · 2024年1月3日 0

九种深度学习算法概览

一. 两阶段算法

两阶段检测将候选框的筛选与对目标的分类与定位的回归分成两个独立阶段。不同的处理策略组成了多种具体的算法实现。

1. R-CNN算法

2014年,R-CiRShiCk 等人提出了 R-CNN。其核心思路是先利用选择性搜索从原图中挑出若干候选框;随后将每个候选框对应区域按相同的尺度缩放,输入卷积神经网络提取特征;最后用支持向量机对特征进行分类,判断该区域是否属于背景或属于关注的目标类别。

在 VOC2007 数据集上,相较于早期方法,R-CNN 的检测性能实现显著提升(从 33.7% 提升到 58.5%),成为检测领域的里程碑式突破。

尽管取得了显著进展,R-CNN 的缺点也很明显:需要对大约两千个候选框逐一提取特征,导致效率低下。这一瓶颈催生了后续一系列改进方案。

2. SPP-Net算法

2014年,何恺明等人提出了 SPP-Net(Spatial Pyramid Pooling Networks,空间金字塔池化网络)。

与对输入尺寸有严格要求的 R-CNN 不同,SPP-Net 通过添加一个空间金字塔池化层,能够处理任意尺寸的候选区域,将它们统一采样为固定尺寸的特征表示。

在检测流程中,原图仅需进行一次卷积运算,得到整幅特征图后,对每个候选区域经过空间金字塔池化后再送入后续网络进行特征提取,所得特征维度一致,最终进入全连接层实现分类。

SPP-Net 在不降低精度的前提下,大幅提升了速度,相较于 R-CNN,速度提升约为 20 倍。

3. FAst R-CNN算法

2015年,R-CiRShiCk 等人提出 Fast R-CNN,在 R-CNN 与 SPP-Net 的基础上进一步改进。Fast R-CNN 可以在网络内部同时预测目标类别的概率和边框的回归偏移。

在 VOC2007 数据集上,Fast R-CNN 将平均精度(mAP)从 58.5% 提升至 70.0%,速度也比 R-CNN 高出约 200 倍。尽管性能与速度均有显著提升,但仍受限于候选框的检测阶段,因此催生了更加高效的后续算法。

4. FAsteR R-CNN算法

2015年,S. Ren 等人提出 Faster R-CNN,它是首个端到端的目标检测框架,也是实现近乎实时深度学习目标检测的里程碑。以 ZF-Net 为骨干网络,在 VOC2007 数据集上,mAP 达到 73.2%,处理速度达到约 17 fps。

Faster R-CNN 的核心在于将候选框的生成、目标分类和边框回归等步骤整合在同一个端到端网络中,并共享底层卷积特征。它打破了候选框检测的速度瓶颈,是两阶段检测的重要发展。

5. FPN算法

2017年,Lin 等人在 Faster R-CNN 的基础上提出了 FPN(Feature Pyramid Network,特征金字塔网络)。

在早期方法中,大多数检测器依赖于卷积网络最高层特征进行预测,深层特征虽然包含全局信息,但细节往往不足,尤其在小目标定位方面表现不佳。FPN 通过自顶向下的结构和侧向连接,将深层和浅层特征融合,使得特征既具全球信息又保留细节。

同时,检测也基于多层特征图实现多尺度表征,增强对不同尺寸目标的适应性。基于 FPN 的 Faster R-CNN 在 COCO 数据集上达到优越性能,FPN 已成为搭建检测模型的基础策略。

二. 一阶段算法

一阶段算法与两阶段算法最大的区别在于省略单独的候选框筛选步骤,直接回归目标的位置和类别概率。常见的一阶段检测器如下。

1. YOLO算法

2015年,R. Joseph 等人提出了 YOLO(You Look Only Once),这是最早的一阶段目标检测框架之一。

YOLO 将输入图像分成网格,然后让网格中的每个单元回归目标的类别概率和边框坐标。作为一阶段方法,YOLO 的最大优点是速度极快。在 VOC2007 上的 mAP 为 63.4%,检测速度可达到 45 fps;改进版本的 mAP 为 52.7%,速度甚至可达到约 155 fps。

不过,YOLO 在定位精度上要低于部分两阶段方法,尤其是在小目标检测方面表现不佳。因此,后续版本的 YOLO 及其他一阶段算法都在努力改进这方面的问题。

2. SSD算法

2015年,W. Liu 等人提出了 SSD(Single Shot MultiBox Detector),这是第二个广为人知的一阶段检测框架。

与仅使用顶层特征图的预测方式不同,SSD 引入了基于多尺度特征图的检测策略,显著提升了对小目标的检测性能。在 VOC2007 上,mAP 达到 76.8%。

3. Retina-Net算法

RetinaNet 的核心目标是解决一阶段检测中的正负样本不平衡问题。传统的一阶段检测器在训练时,背景样本往往比目标样本多得多,导致模型对目标样本关注不足,成为精度提升的瓶颈。

RetinaNet 引入了新的损失函数,在训练中对交叉熵损失进行加权处理,使难以正确分类的样本在总损失中所占权重更大,从而在维持高速度的同时提升检测精度。