美文网首页嵌牛IT观察
计算机视觉——典型的目标检测算法(R-CNN算法)(三)

计算机视觉——典型的目标检测算法(R-CNN算法)(三)

作者: 茶新味 | 来源:发表于2022-03-18 08:50 被阅读0次

    姓名:贾轶名    学号:21011210011     学院:通信工程学院

    【嵌牛导读】目标检测在现实中的应用很广泛,我们需要检测数字图像中的物体位置以及类别,它需要我们构建一个模型,模型的输入一张图片,模型的输出需要圈出图片中所有物体的位置以及物体所属的类别。在深度学习浪潮到来之前,目标检测精度的进步十分缓慢,靠传统依靠手工特征的方法来提高精度已是相当困难的事。而ImageNet分类大赛出现的卷积神经网络(CNN)——AlexNet所展现的强大性能,吸引着学者们将CNN迁移到了其他的任务,这也包括着目标检测任务,近年来,出现了很多目标检测算法。

    【嵌牛鼻子】计算机视觉

    【嵌牛提问】如何理解目标检测算法——R-CNN

    【嵌牛正文】

    深度学习目标检测算法主要分为双阶段检测算法单阶段检测算法,如图1所示。

           双阶段目标检测算法先对图像提取候选框,然后基于候选区域做二次修正得到检测结果,检测精度较高,但检测速度较慢;单阶段目标验测算法直接对图像进行计算生成检测结果,检测速度快,但检测精度低。

    1、双阶段目标检测算法

            双阶段目标检测方法主要通过选择性搜索(Selective Search)或者Edge Boxes等算法对输入图像选取可能包含检测目标的候选区域(Region Proposal),再对候选区域进行分类和位置回归以得到检测结果。

    R-CNN算法(Selective Search + CNN + SVM)

    2014年,Girshick等将卷积神经网络CNN应用于目标检测任务,提出了典型的双阶段目标检测算法R-CNN,R-CNN将AlexNet与选择性搜索算法相结合,包含区域建议基于CNN的深度特征提取分类回归三个模块:

    [if !supportLists](1)[endif]使用选择性算法从每张图像中提取2 000个左右可能包含目标物体的区域候选框;

    (2)对候选区域进行归一化操作缩放成固定大小,进行特征提取;

    (3)使用AlexNet将候选区域特征逐个输进SVM进行分类,通过使用边界框回归(Bounding Box Regression)和非极大值抑制(Non-Maximum Suppression,NMS)对区域得分进行调整和过滤,在全连接网络进行位置回归。

                                                                                 图1 R-CNN算法框架

    在一张测试图像上进行选择性搜索,以提取大约2000个候选区域(在所有实验中使用选择性搜索的“快速模式”),再把每一个候选区域都变换成要求的形状大小(224*224 RGB),并通过CNN向前传播,以便从所需的层读取特征图。然后,对于每个类,我们使用针对该类训练的SVM来对每个提取的特征图进行评分。给定图像中的所有得分区域,我们应用非极大抑制,如果它具有与交并比(IoU)重叠有着较高得分的非抑制区域大于学习阈值(阈值设为0.3),则排除该区域。

    R-CNN网络结构

    在训练时使用两个数据库: 

    识别库(ImageNet ILSVC 2012):标定每张图片中物体的类别,一千万张图像,1000类。 

    检测库(PASCAL VOC 2007):标定每张图片中,物体的类别和位置。一万张图像,20类。     使用识别库进行预训练,而后用检测库调优参数。最后在检测库上评测。

    训练过程:

    数据集采用pascal VOC,这个数据集的object一共有20个类别。首先用selective search方法在每张图像上选取约2000 region proposal,region proposal就是object有可能出现的位置。然后根据这些region proposal构造训练和测试样本,region proposal的大小不一,样本的类别是21个(包括背景)。

    预训练:在ImageNet数据集下用AlexNet进行训练。使用ILVCR 2012的全部数据进行训练,输入一张图片,输出1000维的类别标号。输入是前面的region proposal进行尺寸变换到一个统一尺寸227*227,保留f7的输出特征2000*4096维。

    调优训练在数据集上fine-tuning,网络结构不变(最后一层输出由1000改为21)使用PASCAL VOC 2007的训练集,输入一张图片,输出21维的类别标号,表示20类+背景。

    针对每个类别(一共20类)训练一个SVM分类器,以f7层的输出作为输入,训练SVM的权重4096*20维,所以测试时候会得到2000*20的得分输出,且测试的时候会对这个得分输出做NMS(non-maximun suppression),以去掉重复框的过程。同时针对每个类别(一共20类)训练一个回归器,输入是pool5的特征和每个样本对的坐标和长宽。

    用pool5的特征6*6*256维和bounding box的ground truth来训练回归,每种类型的回归器单独训练。输入是pool5的特征,以及每个样本对的坐标和长宽值。如上图,黄色框口P表示建议框Region Proposal,绿色窗口G表示实际框Ground Truth,红色窗口表示Region Proposal进行回归后的预测窗口,现在的目标是找到P到 

    的线性变换,使得与G越相近.

    相关文章

      网友评论

        本文标题:计算机视觉——典型的目标检测算法(R-CNN算法)(三)

        本文链接:https://www.haomeiwen.com/subject/ncypdrtx.html