基于卷积神经网络的目标检测与识别∗
2020-05-15王高峰徐子同王翠翠
王高峰 徐子同 卢 玮 王翠翠 高 涛
(1.贵州宇鹏科技有限公司 贵阳 550014)(2.长安大学信息工程学院 西安 710072)
1 引言
目标的检测和识别是人工智能领域很重要的研究方向,它的目的就是利用计算机识别一幅图像中目标的种类,并给出它边界框的位置。由于目标出现遮挡或者视角变化,都会发生识别的准确率降低,同时由于卷积神经网络和区域建议网络优化问题以及计算机的运算能力,都会影响到目标识别和检测的速度。对于传统的目标检测方法,研究的重点是特征提取和分类,但它对目标的分类依靠的是人工设计的特征,因此得到的准确度很低。即使最近的Fast R-CNN实现了近实时检测的速率,但它忽略了生成区域建议框的时间。
为了提高运算速度和准确率,本文提出一种新的基于区域建议网络和卷积神经网络的目标检测算法,该算法摒弃了传统的 selective search[16]选择候选区域的方法,而是利用RPN算法获得候选区域的边界框,减小计算量,然后通过Fast R-CNN开源框架,得到待检测图像的所有特征,最后,利用LocNet网络,输入已经得到的候选区域,计算候选区域的边界概率,得到最优的目标边界框。
2 基于区域建议网络和卷积神经网络的快速目标检测原理
卷积神经网络的优点在于可以通过利用自主学习特征的这种优势,使特征表达能力和分类能力都比传统目标检测识别方法好,所以基于卷积神经网络的目标检测和识别方法取得了较高的准确率。但是,由于无法满足实时检测的要求,Gir⁃shick[4]等提出了R-CNN模型,这种卷积神经网络的目标检测和识别算法摒弃了遍历搜索方式,利用选择性搜索法从待检测图像中提取许多的候选区域,极大提高了速度和准确率,然而R-CNN还存在明显的缺陷:占用大量的磁盘空间、会丢失信息和区域建议框有大量的重叠等。Girshick又提出了Fast R-CNN模型。相比于R-CNN模型,它不需要对每一个候选区域都进行特征提取,极大减少了不必要的运算量,但是它也有很大的缺点,选择性搜索法是一种单独的操作,对整个网络速度还是有很大影响,所以我们提出了基于区域建议网络和卷积神经网络的快速目标检测识别算法。
2.1 改进的基于卷积神经网络的目标检测识别算法的工作过程
目前最好的目标检测网络都要用到区域建议算法来预测目标的位置,生成候选区域。而本文提出了一种改进的基于卷积神经网络的目标检测识别算法,这个算法使用了深度计算建议框网络(Region Proposal Networks,RPN)[13],它与 Fast R-CNN 共享卷基层,极大提高了速度。工作过程如图1所示。
图1 算法工作过程
2.2 区域建议网络
区域建议网络(RPN)作用就是在卷积神经网络的最后一个卷积层输出的特征图上滑动窗口,然后生成许多可能存在检测目标的候选区域,利用这些候选区域建议框来完成目标识别检测。
1)区域建议网络的工作过程
图2 区域建议网络工作过程
区域建议网络主要工作过程:(1)在特征图上生成许多建议框,识别哪些建议框是前景,哪些是背景,简称RPN Classification;(2)获取前景区域的大致坐标,简称RPN bounding box regression。工作过程和任务如图2所示。
2)区域建议网络的Anchor机制
RPN网络中核心思想就是生成许多Anchor来预测目标及边界。由于目标大小尺寸不定,因此An⁃chor给出一个基准窗,根据不同的倍数和不同的长宽比得到不同大小的窗,然后又生成多种Anchor。
3)区域建议网络损失函数计算
(1)softmax loss的计算:需要与某个anchor相对应的人工标定和预测的边界框结果来求。
(2)regression loss的计算:需要从三个部分开始计算,第一个是建议框的坐标位置x,y,w,h;第二个是reference box,其中每一个都有个中心点坐标x_a,y_a,w_a,h_a;第三个是ground truth所标定的框对应的中心位置点坐标x*,y*,w*,h*。计算公式如下:
则RPN的损失函数可以由下面公式计算。
其中Ncls是大小为256的batch,Lcls(pi,pi*)是目标前景与背景的对数损失,pi是anchor i被预测为目标的概率是前景的标签值,如果anchor是正样本,的值为1,反之anchor是负样本,则的值为0。R是鲁棒损失函数smooth L1。
2.3 区域建议网络与卷积神经网络共享机制
第一步,训练RPN,用VGGNet预训练的模型来初始化RPN参数,微调来训练RPN参数到最优。
第二步,孤立对Fast-RCNN网络的训练,将上一步RPN输出的proposal作为Fast-RCNN网络的输入。
第三步,利用对目标检测分类的Fast-RCNN网络来初始化RPN训练,但把共享的卷积层固定不变,只对RPN特有的层微调,这时两个网络可以共享卷积层了。
第四步,继续保持共享的卷积层固定,只对Fast R-CNN的全连接层进行微调。利用这种方法使两个网络能够共享卷积层。
2.4 LocNet网络
使用LocNet[9]网络进行更加精确地边界框定位也是本文的创新点之一。传统的边界框定位就是直接通过回归的方法得到边界框坐标,但误差很大,通常很难获得非常准确的边界框位置。摒弃bbox回归得到边界的方法,而利用概率模型来确定边界框位置是一种新型的目标定位法,可以使边界框的定位更精确,使用LocNet网络时,将边界框作为识别的区域,通过计算边界框这个区域内每一行和每一列是否包含目标的条件概率,利用概率可以知道建议框具体位置的信息,从而准确推断出建议框的位置。
3 实验设计与结果分析
3.1 实验设计
实验结构模型如图3所示。
图3 实验结构模型
整个模型可分为以下四部分:
1)特征提取部分:卷积层卷积、激活函数以及池化操作,用于提取特征图。
2)RPN部分:区域建议网络用于生成候选区域建议框Proposal,首先利用RPN网络结构生成多种Anchors,然后利用Softmax对判断Anchors属于前景还是背景,同时借助Bounding Box Regression对Anchors的位置进行回归预测,从而得到Proposal的准确坐标。
3)Proposal Layer部分:计算proposals和ground truth boxes的偏移量,用于回归层中边界框的位置回归和参数的学习,获得更精确的位置。
4)ROI池化部分:利用卷积层得到的待检测图像feature map和RPN网络得到的候选区域建议框proposal,把propopal在待检测图像中的坐标映射到最后一个卷积层(conv5-3)输出的feature map中,然后把这些映射到的区域进行RoI池化操作,得到固定大小特征图,然后与之后的fc层相连。
3.2 实验结果与分析
图4 目标识别准确率与训练次数关系
图5 损失函数与训练次数关系
图6 目标检测识别结果图
图6 中框代表目标位置,数字代表识别分类的概率,数字越高说明分类越准确。
实验准确率及损失函数值如表1所示。其中AP(Average Precision)代 表 平 均 准 确 率 ,mAP(mean Average Precision)代表不同种类的目标识别准确率的平均值,lose损失函数代表错误率,利用梯度下降法找到最小值,即调到最优参数,识别效果最好。
表1 实验准确率及损失函数值
在与Fast R-CNN网络相比较时,通过实验数据得到的AP值和mAP值看出,此方法确实比Fast R-CNN网络检测识别更准确,而且本方法不仅识别物体的准确率高于其他方法,得到的物体边界框也更加精确。
本文所用方法与Fast R-CNN网络分别对VOC2007图像集的测试的对比试验结果如图8和图9所示。
图7 本文使用方法的损失函数
图8 本文所用方法识别结果图
图9 Fast R-CNN方法识别结果图
由结果图可得出结论:Fast R-CNN网络使用selective search的方法选出大量的候选区,虽然取代了传统的遍历,减少了计算量,但它需要人工设计分割的策略,有可能会因为分割不到位,导致目标检测识别率不高;其次无法对选出的区域筛选,不能去除不相关的区域而减少计算量。并且Fast R-CNN网络使用的是bounding box回归的方法确定边界框位置,相比于LocNet网络,使用回归的方法不能准确找到目标边界框位置,但LocNet网络使用概率模型,可以用卷积神经网络学习从而确定更准确的位置。
4 结语
本文提出了一种新的目标检测和识别算法——基于区域建议网络和卷积神经网络的目标检测识别算法。这种算法由生成建议框的卷积神经网络、用于目标检测的Fast R-CNN网络和使边界框回归更精确的LocNet网络构成。通过对实验结果进行分析和对比,可以直观看出新的目标识别检测算法在速度、识别检测准确率和边界框位置精确度上都更加优异。