本文发表于 202 天前,其中的信息可能已经事过境迁
文章摘要
加载中...

经典目标检测算法

两阶段目标检测算法

是目标检测领域的经典算法之一,也叫基于候选区的检测算法,其将目标检测其主要思想是先生成候选区域,再对候选区域进行分类和回归。两阶段目标检测算法的代表性算法有R-CNN系列算法和Faster R-CNN算法。

该类算法的主要流程如下:

生成候选区域 -> 送入卷积神经网络进行目标检测

两阶段目标检测算法的优点是准确率较高,但是速度较慢。

R-CNN系列算法

借鉴传统的目标检测方法,系列算法首先使用生成候选区域,作为初始区域集合,计算区域先私下,然后按照合并规则合并最大相似的两个相邻区域,得到更大区域,加入到区域集合中。重复区域合并过程,直到只剩下一个区域,得到最终的候选区域。

再将特征提取后的特征向量输入至进行分类,最后使用回归器对候选区域进行微调,得到最终的目标检测结果。

示例图如下:

R-CNN模型图R-CNN模型图

R-CNN检测流程R-CNN检测流程 1是输入一个图片。2是提取大约2000个候选区域。3是用CNN计算每一个候选区域的特征。4是用线性SVM对每一个候选区域进行分类。

但由于R-CNN模型特征提取阶段候选框较多(大约2000个),模型计算量大,速度慢,因此后续有了Fast R-CNN、Faster R-CNN等算法的提出。

Faster R-CNN算法

在采用选择性搜索算法图像对特征图提取到多个候选框后,通过增加(ROI pooling layer)实现特征区域的重复利用,避免了大量的重复计算,然后通过全连接层和 softmax 层进行分类和回归,提高了检测速度。

示例图如下:

Faster R-CNN算法模型结构Faster R-CNN算法模型结构

引用图来自 Faster R-CNN算法 原论文,解释来自CSDN-一文读懂Faster RCNN(大白话,超详细解析)

Faster R-CNN算法基本结构Faster R-CNN算法基本结构

  • conv layers。即特征提取网络,用于提取特征。通过一组conv+relu+pooling层来提取图像的feature maps,用于后续的RPN层和取proposal。
  • RPN(Region Proposal Network)。即区域候选网络,该网络替代了之前RCNN版本的Selective Search,用于生成候选框。这里任务有两部分,一个是分类:判断所有预设anchor是属于positive还是negative(即anchor内是否有目标,二分类);还有一个bounding box regression:修正anchors得到较为准确的proposals。因此,RPN网络相当于提前做了一部分检测,即判断是否有目标(具体什么类别这里不判),以及修正anchor使框的更准一些。
  • RoI Pooling。即兴趣域池化(SPP net中的空间金字塔池化),用于收集RPN生成的proposals(每个框的坐标),并从(1)中的feature maps中提取出来(从对应位置扣出来),生成proposals feature maps送入后续全连接层继续做分类(具体是哪一类别)和回归。
  • Classification and Regression。利用proposals feature maps计算出具体类别,同时再做一次bounding box regression获得检测框最终的精确位置。

Fast R-CNN 解决了 R-CNN 中重复计算问题,但其仍然使用选择性搜索产生候选 区域,选择性搜索耗时较长,依然不能满足目标检测的实时性。

为解决 Fast R-CNN 算法中选择性搜索耗时时间长的问题,Faster R-CNN 在保留Fast R-CNN 的 ROI 结构后,还采用了区域建议网络(Region Proposal Network RPN)快速生成候选区域,通过对 RPN 端到端的训练来生成高质量的候选区域,极大的缩短了候选区域生成时间。同时 Faster R-CNN 引入概念,在训练时,以真实边框位置和 Anchor Box 的偏移来训练样本,Faster R-CNN 最后的输入特征图每一像素都将进行预测,每一像素对应 9 个不同的大小和长宽比 Anchor Box,每个 Anchor Box 会去负责跟自己最匹配的那个物体。

如下图所示:

Faster R-CNN 模型结构图Faster R-CNN 模型结构图

但是 Faster R-CNN 仍然存在一些问题,如训练时需要两个网络,训练时间较长,且训练过程复杂,不利于端到端训练。

概念解释

  • 选择性搜索算法:选择性搜索算法是一种用于目标检测的候选区域生成算法,通过在图像中寻找相似区域,生成候选区域,用于目标检测。

  • 区域建议网络(Region Proposal Network RPN):区域建议网络是 Faster R-CNN 算法中的一个网络,用于快速生成候选区域,通过对 RPN 端到端的训练来生成高质量的候选区域,极大的缩短了候选区域生成时间。

  • 预定义边框(Anchor Box):预定义边框是 Faster R-CNN 算法中的一个概念,用于训练时,以真实边框位置和 Anchor Box 的偏移来训练样本,Faster R-CNN 最后的输入特征图每一像素都将进行预测,每一像素对应 9 个不同的大小和长宽比 Anchor Box,每个 Anchor Box 会去负责跟自己最匹配的那个物体。

  • ROI 结构层(ROI pooling layer):ROI 结构层是 Faster R-CNN 算法中的一个层,用于实现特征区域的重复利用,避免了大量的重复计算,然后通过全连接层和 softmax 层进行分类和回归,提高了检测速度。

  • 端到端训练:端到端训练是一种深度学习的训练方法,即将整个模型作为一个整体进行训练,而不是分阶段训练,可以提高模型的性能。

  • proposal: 候选区域,即通过选择性搜索算法或区域建议网络生成的候选区域。

单阶段目标检测待续......

问卷调查

在本篇学习笔记中,在多处使用了AI快捷搜索对话功能,作为读者,你认为这种功能对你的文章阅读有帮助吗?您可点击以下链接参与问卷调查,帮助我们更好地改进产品,本次问卷为有奖问卷,包括PostChat会员和现金奖励,感谢您的参与!点击参与问卷调查

评论 隐私政策