APP下载

基于RCNN的车辆区域检测研究

2019-05-14贾瑞

数字技术与应用 2019年2期

贾瑞

摘要:作为计算机视觉研究的一个比较重要的领域,目标识别在实际应用中的对车辆检测和车型识别具有十分重要的意义。本文运用基于Cifar10Net训练的RCNN模型,利用RCNN对车辆区域进行检测。在进行识别检测时,利用cifar10Net和RCNN训练出目标检测器,然后利用训练好的AlexNet模型进行车型识别。

关键词:车辆检测;车型识别;RCNN

中图分类号:U495 文献标识码:A 文章编号:1007-9416(2019)02-0096-02

2014年Ross Girshick在CVPR上发表《Rich feature hierarchies for Accurate Object Detection and Segmentation》,RCNN(Regions with Convolutional Neural Network Features)就是这篇文章的核心算法。此文首次提出利用深度学习来实现目标检测,是目标检测领域的经典文献,一举将PASCAL VOC上的检测率从35.1%提升到53.7%。RCNN关于深度学习的目标检测算法,及对目标检测的总体思路,对后来人们开展相关研究提供了重要的技术思想基础。

RCNN的贡献主要分为两部分:(1)将卷积神经網络应用于区域检测的策略,自底向上训练可以用来定位目标物体和图像分割。(2)当标记数据比较稀疏时,在有监督的训练集(如ImageNet)上预训练,在得到训练模型后,再对精调特定的数据集,这样得出的结果就比较理想。

1 RCNN算法步骤

传统的图片定位方法是使用滑动窗口探测器,为了保证较高的空间分辨率,这些卷积神经网络通常只有两个卷积层和池化层,然而由于更深的网络,更大的输入图片和滑动步长,使得使用滑动窗口来定位的方法充满了挑战。RCNN通过使用区域检测的方法来解决卷积神经网络的定位问题,这个方法在目标检测和语义分割中都取得了成功。测试阶段,对每一张输入图片,先定位出2000个物体候选框,然后采用卷积神经网络提取每个候选框中图片的特征向量,特征向量的维度是4096维,接着采用SVM算法对每个候选框中的物体进行分类识别,也就是分为四个阶段:候选区域生成、对每个候选区域利用深度学习网络提取特征、使用特定的SVM分类器对提取的特征向量进行分类、使用回归器精细修正候选框位置。下面对每一步骤进行详解。

1.1 候选区域生成

对一张图片不断的分割合并成许多小图。这步利用的是选择性搜索方法。选择性搜索是先将图片利用分割手段分割成一些小图,再将小图通过一定的合并规则均匀的合并。对于原图,分割合并后的小图还是小图。按照这个方法,经过数次分割合并,直到合并成整张原图。在这个过程中,将小图生成的途径过程中的所有小图,就形成了候选区域,如图1所示。通过这个算法搜索出2000个互不相同的候选区域,但是在卷积神经网络中,图片的大小是固定的,因此对于每个候选框都要缩放到固定的大小,在这里有各向异性缩放和各向同性缩放两种缩放方法。

各向异性缩放就是通过编程,直接将图片缩放到卷积神经网络要求的图片大小,而在此过程中,不考虑图片的长款比例及图片是否有扭曲。

因为图片扭曲后,会对卷积神经网络的训练精度有影响,于是就有了各向同性缩放方案。这个方法就是直接在原始图片中,把候选框的边界进行延伸成正方形,然后再进行裁剪,如果已经延伸到原始图片的外边界,就用候选框中的颜色均值填充。

1.2 卷积神经网络训练

RCNN的网络训练包括两部分:预训练和调优训练。

(1)预训练。预训练的网络结构采用的是Hinton在ImageNet上的分类网络AlexNet,这样避免了直接从随机初始化的参数进行训练,使得网络开始之前参数都是经过训练过的参数,可以大大提高精度,这种方法叫有监督的训练方式(也称为迁移学习)。

(2)调优训练。网络结构同样使用上述结构,最后一层换为输出为21个类别的全连接网络,在其它网络层的参数不变的同时,在最后一层直接对参数进行随机初始化,然后开始训练。从一个候选区域和所有标定区域(人工标注的候选区域)重叠面积最大的区域中选取考察对象。考察过程中,若重叠面积比例大于50%,则认为此候选区域为此标定的类别(正样本),否则认为此候选区域为背景(负样本)。学习率为0.001,每一批包含32个正样本(属于20类)和96个背景的负样本。

1.3 SVM分类器训练和测试

采用一个线性SVM二类分类器判别同一类目标。当进行车辆检测时,只有把整辆车的图像区域都包含在内的边框,才是正样本;则没有把整辆车的图像区域包含在内的边框,就是负样本。但是由于实际中负样本数量远远大于正样本数量,所以Ross Girshick选择IOU阈值为0.3,即当每一个候选框和和本类目标中所有标定框的重叠面积均小于0.3时,即将其做为负样本。

1.4 利用回归器精细修正候选框位置

目标检测问题的衡量标准是重叠面积,许多检测结果往往由于候选框的不精确导致不准确,因此需要对候选框位置进行修正。回归器对每一类目标,使用一个线性脊回归器进行精修。正则项λ=10000,输入4096维特征,输出xy方向的缩放和平移,训练样本判定为本类的候选框中,和真值重叠面积大于0.6的候选框。

综上所述,RCNN检测和识别的过程如下:先用选择性搜索的方法选择2000个目标候选区域,然后对每一个区域都在卷积神经网络上运行两次,第一次在利用AlexNet进行分类模型训练,之后能进行SVM分类,在分类后需要将AlexNet模型改为检测模型,然后利用SVM进行二分类判断当前检测出的区域是否含有目标物体,最后才在检测模型的基础上进行边界检测,得到所需候选框。

2 车型检测和识别实现

我们通过采用cifar10Net来训练RCNN得到车辆具体位置。Cifar10是由Hinton的学生收集的一个用于普遍适用识别目标的数据集。它由60000张32*32的RGB彩色图片构成,共10个分类(鸟、人、狗、貓、青蛙等),50000张训练图片,10000张测试图片(交叉验证)。这个数据集的优点在于将目标识别应用到了普通物体,而且解决了不同分类的问题。与已经成熟的人脸识别相比,普通物体识别则困难重重,因为普通物体的数据中含有大量特征、噪声,而且由于所识别的物体种类繁多,且体积大小差距较大,这已经超出了SVM的识别能力。所以,Cifar10相对于传统图像数据集有显著优势。

2.1 算法实现步骤

之所以采用Cifar10Net来训练RCNN,是因为matlab 2016b(只能是2016b及以上版本)的计算机视觉系统工具箱已经使用Cifar10数据集训练停止检测标志,通过微调网络,可以将原始任务学习的特征适用于新任务。

首先在matlab中读入Cifar10Net。

由于cifar10所包含物体种类较少,且Cifar10Net只有三个卷积层,两层全连接,因此cifar10巡练速度较快,但准确率也有所下降。训练策略采取动力0.9,初始学习率0.005,每次训练迭代的最小批次为100,训练最大次数为100。训练效果如图2所示。

2.2 RCNN实现效果图

运用已经训练好的Cifar10 Net RCNN模型对目标车辆区域进行检测,再利用训练好的AlexNet模型对车型进行识别,运行Pic_Detect_Recognition.m文件,识别效果如图3所示。

3 结语

本文实现了基于任意角度车辆图片的车辆型号识别,但由于硬件及各种条件的影响,本文的工作还有很多需要改进的地方。本文的车辆区域检测模型是用Cifar10训练的RCNN得到的,但RCNN存在重复计算问题及速度瓶颈,可以选择Fast RCNN或Faster RCNN进行车辆检测。虽然模型选取关系到识别速度和精度,但如何优化代码提升识别速度也是本研究能否应用的关键,而且本文的算法基本上是基于Matlab编写的,后期准备利用C++结合深度学习工具Caffe进行实现,提高识别速度。

参考文献

[1] 邓柳.基于深度卷积神经网络的车型识别[D].西南交通大学,2015.

[2] 王茜,张海仙.基于深度神经网络的汽车车型识别[J].四川大学学报,2015(35):61-64.

[3] 张飞云.基于深度学习的车辆定位及车型识别研究[D].江苏大学,2016.

[4] 赵永科.深度学习21天实战Caffe[M].北京:电子工业出版社,2016,10.

Research on Vehicle Area Detection Based on RCNN

JIA  Rui

(College of Electrical Engineering, Suzhou Chien-shiung Institute of Technology, Taicang Jiangsu  215400)

Abstract:As a relatively important field of computer vision research, target recognition is of great significance for vehicle detection and vehicle identification in practical applications. In this paper, the RCNN model based on Cifar10Net training is used to detect the vehicle area using RCNN. In the identification test, the target detector is trained using cifar10Net and RCNN, and then the model is identified using the trained AlexNet model.

Key words:vehicle detection; vehicle type identification; RCNN