美文网首页目标检测
目标检测(R-CNN)

目标检测(R-CNN)

作者: 海盗船长_coco | 来源:发表于2019-09-25 15:04 被阅读0次

    任务

    采用卷积神经网络对目标物体进行分类和定位。

    实现步骤

    (1)输入图片。
    (2)在原图片上提取两千左右的候选区域。
    (3)对于每个候选区域采用卷积神经网络计算特征。
    (4)对于每个候选区采用SVM进行分类。对于每个类都提供一个SVM分类器。


    目标检测系统概述

    聚焦的问题

    一、如何利用深度网络进行目标定位?
    二、如何在标注数据集较少的情况下,训练一个参数较多的模型?

    解决方法

    一、将定位看成一个回归问题,通过边界框回归来减少误定位。
    二、解决方法是对模型进行预训练,之后对训练好的模型进行微调,作者通过微调,使模型准确率提高8个百分点。

    实现细节

    候选区域提取:采用selective search方法对每张图片提取2000左右的候选区域。
    特征提取:通过AlexNet的卷积网络对图片进行特征提取,得到4096维的向量,由于输入的图片大小要是227x227。所以作者对图片大小进行调整以适应卷积网络的输入大小。

    使用了5个卷积层和2个全连接层
    预训练:作者直接将AlexNet训练好的前5层卷积层和2层全连接层参数作为现有参数。
    特定区域进行微调:将上图最后Softmax1000维的分类随机初始化维21维。因为所需分类的数量为20,还有一个背景类。将候选区域与真实框(人工标注)的交并比(IoU)大于0.5的作为正样本,其余作为负样本。对于每一个随机梯度下降(SGD),选取32个正样本,96个负样本进行迭代。由于有2000个候选区域,每个区域的维度是4096维,所以特征矩阵的大小为2000x4096。SVM的权重矩阵大小为4096xN,N为类别数量,由于上面说过有21个类别,所以SVM的权重矩阵为4096x21。
    目标类别分类:由于每个类别都提供一个SVM分类器,所以对于例如车分类器,图像中要不有车,要不没车。作者将IoU的阈值设定为0.3。使用hard negative mining method策略,即将分类错误的样本不断放回去训练。类似于你高中时的错题本。
    非极大值抑制:由于RCNN会从一张图片中找出n个可能是物体的矩形框,然后为每个矩形框为做类别分类概率。 一张图片有多个矩形区域
    比如A框包括了B框,A∩B=B,AUB=A。则A∩B/AUB=B/A。当IoU的值超过阈值时,可以将B框删除,这样可以减少很多不必要的矩形框。

    边界框回归实现定位:正样本的定义为与真实框相交IoU最大的候选区域,并且IoU>0.6的候选区域。黄色框口P表示建议框Region Proposal,绿色窗口G表示实际框Ground Truth,红色窗口G^表示Region Proposal进行回归后的预测窗口,现在的目标是找到P到G'的线性变换,使得G'与G越相近,这就相当于一个简单的可以用最小二乘法解决的线性回归问题。

    定位问题
    定位回归实现

    存在的缺点

    作者提到花费在region propasals和提取特征的时间是13s/张-GPU和53s/张-CPU,可以看出时间还是很长的,不能够达到及时性。
    对于每张图片显示提取2000个候选区域在对候选区域做卷积运算,存在许多冗余运算,浪费时间和计算资源,这在Fast-RCNN中将会得到解决。

    参考文章:https://zhuanlan.zhihu.com/p/23006190
    https://blog.csdn.net/WoPawn/article/details/52133338

    相关文章

      网友评论

        本文标题:目标检测(R-CNN)

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