首页IT科技常见目标检测算法有哪些(常见经典目标检测算法)

常见目标检测算法有哪些(常见经典目标检测算法)

时间2025-09-19 12:07:28分类IT科技浏览5570
导读:1、目标检测基本概念 1.1 什么是目标检测...

1                 、目标检测基本概念

1.1 什么是目标检测

目标检测(Object Dectection)的任务是找出图像中所有感兴趣的目标(物体)                ,确定他们的类别和位置                 。

1.2 目标检测要解决的核心问题

除图像分类外                         ,目标检测要解决的核心问题是:

1.目标可能出现在图像的任何位置                        。

2.目标有各种不同的大小        。

3.目标可能有各种不同的形状             。

1.3 目标检测算法分类

Two stage目标检测算法

先进行区域生成(region proposal,RP)(一个可能包含待检测物体的预选框)        ,再通过卷积神经网络进行样本分类                        。

任务:特征提取->生成RP->分类/定位回归            。

常见Two stage目标检测算法有:R-CNN                        、SPP-Net        、Fast R-CNN和R-FCN等         。 One stage 目标检测算法

不用RP            ,直接在网络中提取特征来预测物体分类和位置                         。

任务:特征提取->分类/定位回归                。

常见的one stage目标检测算法有:OverFeat             、YOLOv1                        、YOLOv3            、SSD和RetinaNet等    。

1.4 应用领域

人脸检测 行人检测 车辆检测 道路检测 障碍物检测 等等

2         、Two stage 目标检测算法

2.1 R-CNN

2.1.1 R-CNN 创新点

使⽤CNN(ConvNet)对 region proposals 计算 feature vectors                         。从经验驱动特征(SIFT                         、HOG)到数据驱动特征(CNN feature map)                         ,提⾼特征对样本的表⽰能⼒                    。 采⽤⼤样本下(ILSVRC)有监督预训练和⼩样本(PASCAL)微调(fine-tuning)的⽅法解决⼩样本难以训练甚⾄过拟合等问题。

注:ILSVRC其实就是众所周知的ImageNet的挑战赛            ,数据量极⼤;PASCAL数据集(包含⽬标检测和图像分割等)        ,相对较⼩                     。

2.1.2 R-CNN 介绍

R-CNN作为R-CNN系列的第⼀代算法                         ,其实没有过多的使⽤“深度学习                 ”思想                 ,⽽是将“深度学习                        ”和传统的“计算机视觉        ”的知识相结合                        。⽐如R-CNN pipeline中的第⼆步和第四步其实就属于传统的“计算机视觉             ”技术

    。使⽤selective search提取region proposals    ,使⽤SVM实现分类                 。

预训练模型                        。选择一个预训练模型(pre-trained)神经网络(如AlexNet                、VGG)        。

重新训练全连接层使用需要检测的目标重新训练(re-train)最后全连接层(connected layer)             。

提取prosals并计算CNN特征                        。利用选择性搜索(Slective Search)算法提取所有prosals(大约2000幅images),调整(resize/warp)它们固定大小                        ,以满足CNN输入                     ,然后将feature map保存到本地磁盘            。

训练SVM         。利用feature map训练SVM来对目标和背景进行分类(每个类一个二进制SVM)                         。

边界框回归(Bounding boxes Regression)                。训练将输出一些校正因子的线性回归分类器    。

2.1.3 R-CNN实验结果

R-CNN在VOC 2007测试集上mAP达到58.5%,打败当时所有的⽬标检测算法                         。

2.2 Fast R-CNN

2.2.1 Fast R-CNN有哪些创新点?

只对整幅图像进行一次特征提取                    。 ⽤RoI pooling层替换最后⼀层的max pooling层                    ,同时引⼊建议框数据                         ,提取相应建议框特征。 Fast R-CNN⽹络末尾采⽤并⾏的不同的全连接层    ,可同时输出分类结果和窗⼝回归结果                , 实现了end-to-end的多任务训练【建议框提取除外】                         ,也不需要额外的特征存储空间【RCNN中的特征需要保持到本地        ,来供SVMBounding-box regression进⾏训练】                     。 采⽤SVD对Fast R-CNN⽹络末尾并⾏的全连接层进⾏分解            ,减少计算复杂度                         ,加快检测速度                        。

2.2.2 Fast R-CNN 介绍

Fast R-CNN是基于R-CNN和SPPnets进⾏的改进    。SPPnets            ,其创新点在于计算整幅图像的the shared feature map        ,然后根据object proposal在shared feature map上映射到对应的feature vector(就是不⽤重复计算feature map了)                 。当然                         ,SPPnets也有缺点:和R-CNN⼀样                 ,训练是多阶段(multiple-stage pipeline)的    ,速度还是不够"快"                        ,特征还要保存到本地磁盘中                        。

将候选区域直接应⽤于特征图                     ,并使⽤RoI池化将其转化为固定⼤⼩的特征图块        。以下是Fast R-CNN的流程图

2.2.3 RoI Pooling 层详解

因为Fast R-CNN使⽤全连接层,所以应⽤RoI Pooling将不同⼤⼩的ROI转换为固定⼤⼩             。

RoI Pooling 是Pooling层的⼀种                    ,⽽且是针对RoI的Pooling                         ,其特点是输⼊特征图尺⼨不固定    ,但是输出特征图尺⼨固定(如7x7)

什么是RoI呢?

RoI是Region of Interest的简写                ,⼀般是指图像上的区域框                         ,但这⾥指的是由Selective Search提取的候选框                        。 提取候选框

往往经过RPN后输出的不⽌⼀个矩形框        ,所以这⾥我们是对多个RoI进⾏Pooling            。 RoI Pooling的输入

输⼊有两部分组成: 特征图(feature map):指的是上⾯所⽰的特征图            ,在Fast RCNN中                         ,它位于RoI Pooling

之前            ,在Faster RCNN中        ,它是与RPN共享那个特征图                         ,通常我们常常称之

为“share_conv                        ”; RoIs                 ,其表⽰所有RoI的N*5的矩阵         。其中N表⽰RoI的数量    ,第⼀列表⽰图像index                        ,其余四

列表⽰其余的左上⾓和右下⾓坐标                         。

在Fast RCNN中                     ,指的是Selective Search的输出;在Faster RCNN中指的是RPN的输出,⼀堆矩形候选框                    ,形状为1x5x1x1(4个坐标+索引index)                         ,其中值得注意的是:坐标的参考系不是针对feature map这张图的    ,⽽是针对原图的(神经⽹络最开始的输⼊)                。其实关于ROI的坐标理解⼀直很混乱                ,到底是根据谁的坐标来    。其实很好理解                         ,我们已知原图的⼤⼩和由Selective Search算法提取的候选框坐标        ,那么根据"映射关系"可以得出特征图(featurwe map)的⼤⼩和候选框在feature map上的映射坐标                         。⾄于如何计算            ,其实就是⽐值问题                         ,下⾯会介绍                    。所以这⾥把ROI理解为原图上各个候选框(region proposals)            ,也是可以的。

2.2.4 RoI 的具体操作

根据输入image        ,将ROI映射到feature map 对应位置

注:映射规则比较简单                         ,就是把各个坐标除以“输入图片与feature map的大小的比值            ”                 ,得到了feature map上的box坐标                     。

2.将映射后的区域划分为相同大小的sections(sections数量与输出的维度相同)

3.对每个sections进行max pooling操作                        。

这样我们就可以从不同大小的方框得到固定大小的相应的feature maps    。值得⼀提的是    ,输出的feature maps的大小不取决于ROI和卷积feature maps大小                 。RoI Pooling 最大的好处就在于极大地提高了处理速度                        。

2.2.5 ROI Pooling的输出

输出是batch个vector                        ,其中batch的值等于ROI的个数                     ,vector的大小为channelwh;ROI Pooling的过程就是将一个个大小不同的box矩形框,都映射成大小固定(w*h)的矩形框        。

ROI Pooling 示例

2.3 Faster R-CNN

2.3.1 Faster R-CNN有哪些创新点?

Fast R-CNN依赖于外部候选区域⽅法                    ,如选择性搜索             。但这些算法在CPU上运⾏且速度很慢                        。在测试中                         ,Fast R-CNN需要2.3秒来进⾏预测    ,其中2秒⽤于⽣成2000个ROI            。Faster R-CNN采用与Fast R-CNN相同的设计                ,只是它⽤内部深层⽹络代替了候选区域⽅法         。新的候选区域⽹络(RPN)在⽣成ROI时效率更⾼                         ,并且以每幅图像10毫秒的速度运行                         。

候选区域⽹络(RPN)将第⼀个卷积网络的输出特征图作为输⼊                。它在特征图上滑动⼀个3×3的卷积核        ,以使用卷积⽹络(如下所示的ZF网络)构建与类别⽆关的候选区域    。其他深度⽹络(如VGG或ResNet)可⽤于更全⾯的特征提取            ,但这需要以速度为代价                         。ZF网络最后会输出256个值                         ,它们将馈送到两个独立的全连接层            ,以预测边界框和两个objectness分数        ,这两个objectness分数度量了边界框是否包含⽬标                    。我们其实可以使⽤回归器计算单个objectness分数                         ,但为简洁起⻅                 ,Faster R-CNN使⽤只有两个类别的分类器:即带有⽬标的类别和不带有⽬标的类别。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
手机连不上wifi电脑可以连上怎么办(手机连不上wifi是怎么回事电脑可以连网)