当前位置:主页 > 论文写作 >

计算机视觉技术的车辆「检测」与「识别」是怎么做

笔者曾经成功基于R-FCN设计出车辆识别网络,并在现实中得到了相应的验证。限于篇幅,将部分研究成果展示如下:
车辆识别就是根据系统中录入的静态图像或视频流信息,并最终应用于真实的交通场景中。传统的方法主要通过固定的角度提取特征,如Harr特征、HOG特征、LBP特征等,这些方法在面对真实场景下的车辆时,容易受到光照、拍摄角度等影响,而卷积神经网络能够自适应的提取图像特征,对不同的环境具有较好的鲁棒性。
计算机视觉技术的车辆「检测」与「识别」是怎么做
基于卷积神经网络的算法
RCNN算法
RCNN采用卷积神经网络提取图像特征,并将卷积层的数量由原来的2层提升为5层,大大提升了特征提取的质量。在目标定位时,为了避免穷举搜索问题,RCNN采用了一种选择性搜索的方法(Selective Search)。这种方法通过颜色、纹理和尺寸等信息寻找相似的区域,并将这些区域逐步合并以获得候选区域。RCNN的检测流程如下图4-1所示。
图一

图4-1  RCNN流程图
首先,待检测图像通过Selective Search算法得到2000个左右的候选区域框(Region Proposal),并对这些Region Proposal进行图像归一化处理,接着将它们输入到CNN中进行特征提取,然后将提取的Region Proposal特征输入到SVM中进行类别判断。
SPPNet网络
全连接层的卷积神经网络要求输入的图像的尺寸必须是固定的,此时需要对Region Proposal的特征图进行归一化处理,但是这一过程中的不同操作会造成图像信息的流失。如果对每一个Region Proposal进行提取特征,必然会导致大量的重复计算。SPPNet网络将最后一个池化层替换成空间金字塔池化(Spatial Pyramid Pooling,SPP)层,解决了Region Proposal特征图尺寸需要固定的问题,其具体结构如下图4-2所示。
图二

图4-2  SPPNet流程图
SPP层将最后一个卷积层的输出池化成一个固定维数的特征向量,并将它作为后面全连接层的输入。SPPNet网络的另一个改进就是将整张图像送入卷积神经网络中提取特征,将在原图上获取的Region Proposal映射到最后一个卷积层输出的特征图上,得到不同尺寸的Region Proposal特征图,然后通过SPP层固定成相同维度的特征向量,最终完成目标的分类和定位。
Fast RCNN网络
Fast RCNN结合SPPNet的思想对RCNN进行了改进,使得速度和准确率都得到了大幅度的提升。
SPPNet虽然具有一定的技术优势,但是其还存在一些固定的缺陷。因为SPPNet继承了RCNN算法的模式,各模块都需要单独操作和训练,包括获取Region Proposal、卷积神经网络提取特征、SVM分类器的训练和Bounding Box回归器的训练。在对数据进行转存时,需要耗费大量的时间。在如此情况下,出现了Fast RCNN,其具体结构如下图4-3所示。
图三

图4-3  Fast RCNN流程图
Fast RCNN采用一个感兴趣区域(Region of Interest,Ro I)池化层取代了SPP层。Ro I池化层的结构相当于单层的SPP层,因此可以进行梯度回传,并且继承了SPP层的优点。
Fast RCNN通过多任务损失函数满足了网络的整体训练,解决了SPPNet训练需要分开训练的问题。Softmax分类层最终以概率向量的形式输出K+1维P= 向量,p中的概率分别表示背景和K种类别的概率。回归层最终输出了坐标修正量 ,其中0≤k≤K。
网络训练时,输入的图像中的目标类别和位置分别被标注为u和v。则多任务损失函数可表示为:

式中:
——Softmax损失函数;
——分类任务与回归任务的平衡因子;
——一个函数可看作一个判别条件,当类别为背景时,u=0,此时不进行位置回归;
——位置损失函数。
相对于RCNN和SPPNet,Fast RCNN在性能上通过Ro I层和多任务损失函数取得了很大的突破。
Faster RCNN网络
虽然Fast RCNN中的Edge Boxes算法提取Region Proposal相比于Selective Search算法由原来的2s提升到0.2s,但是相对于网络整体运行仍然不够高效,主要原因是它仅能在CPU上运行。为了提高网络的运行效率,出现升级版的RCNN,即Faster RCNN。RPN的结构也是一个卷积神经网络,因此它可以通过GPU进行运算加速,很大程度上缩减了提取Region Proposal的时间,提取速度可达10毫秒/张,其具体的结构如下图4-4所示。
图四
图4-4  Faster RCNN结构图
Faster RCNN可以看作由两部分组成,一个是RPN网络,负责提取Region Proposal,另一个相当于Fast RCNN的检测部分,负责处理Region Proposal,最终得到的目标类别和位置。
RPN网络在卷积特征图上采用n×n的窗口方式实现Region Proposal的提取,窗口常采用3×3的尺寸。RPN网络结构,如下图4-5所示。

图4-5  RPN网络结构图
RPN中anchor的类别只有目标和背景。在RPN训练过程中,每个anchor都会被分配标签,正样本采用与真值框的交并比(Io U)最高或者大于0.7的anchor,负样本则用与真值框的Io U小于0.3的anchor,其他的anchor样本不参与训练。
基于R-FCN的车辆识别网络设计
位置敏感得分图
R-FCN采用全卷积网络作为基础网络,并将位置敏感得分图融入到网络中,从而配合Ro I池化层获取目标的类别及精确位置信息。此时的Ro I池化层被称为位置敏感Ro I池化层,并且它与位置敏感得分图之间没有权重层,网络可以进行端对端的训练,其具体的结构如下图4-6所示。
图四

图4-6  R-FCN结构图
R-FCN用于车辆识别
基于R-FCN的车辆识别流程如下图4-7所示。

图4-7  基于R-FCN的车辆识别流程
首先将车辆图像输入到共享卷积网络中提取特征,然后将得到的特征图送入RPN提取Region Proposal并送入Ro I池化层中,再将特征图通过卷积映射得到位置敏感得分图和位置敏感回归图,最后通过Ro I池化层分别得到用于车辆Ro I的分类的 个通道输出和定位的4 个通道输出。
分类模块中,每一个类别得到 个得分图,它们分别对应目标的不同位置。回归模块中,每个偏移量得到 个得分图,它们分别对应目标位置的坐标信息。car类别的可视化如下图4-8、4-9所示。
 
图4-8  R-FCN(k∗k=3∗3)对car类别的可视化

图4-9  当Ro I与目标不正确重叠时的可视化
摄像头配置与解码
借助HIKVISION摄像头采集实时的图像,并将图像以帧为单位存储在系统中,按照车牌识别、车身识别的顺序来完成全部操作。接入系统的摄像头实物,如下图4-10所示。

图4-10  接入系统的HIKVISION摄像头
根据该监控识别系统的具体使用环境采用的四路摄像头。监控软件安装如下图4-11所示。

图4-11  监控软件安装
安装成功后可以在监控软件中看到所添加的设备,如下图4-12所示。

图4-12  添加设备
系统用户在输入自己的登录名和登录密码后,需要经过系统的数据库对比,如果通过系统数据库的对比,即可进入系统;不同的用户获得的操作权限存在差别。当用户进入预览界面时,系统的右侧会显示“camera01”、“camera02”、“camera03”、“camera04”四个摄像通道。如果需要对其中一个通道进行配置,直接点击即可进行设置。具体的参数设置模式,如下图4-13所示。

图4-13  通道内容配置页面
如果系统的浏览级别设置过高,会影响到用户的操作,因此可以借助预览功能对界面进行预览。具体的设置步骤如下:
(1)在计算机的浏览器中找到Internet选项,如下图4-14作图所示;
(2)选择低安全级别;也可以直接在启用项中勾选“Active X控件”,如下图4-14右图所示。

图4-14  设置浏览器安全级别
算法检验
使用Open CV中提供的一个可以用来读取监控视频文件的接口Video Capture来获取停车场监控视频进行处理。该实验系统通过对停车场监控视频的视频帧进行处理判断停车场的车辆状态,选择停车场进行R-FCN算法的泛化性以及准确率。
试验场景:某小区露天停车场,监测12个车位,监测时段为9:00-10:00和15:00-16:00两个时段。
监控的一帧图像如下图4-15所示。

图4-15  监控的一帧图像
用训练好的模型检测视频帧中的车辆,结果如下图4-16所示。

图4-16  检测结果图
检测框的四个端点和中心点的坐标如下表4-1、4-2所示。
表4-1  检测框的端点坐标
检测框编号j
1 43.52,71.69 43.52,53.27 63.08,52.34 63.08,73.18
2 61.86,72.68 61.86,53.06 83.27,51.74 83.27,72.94
3 77.54,70.68 77.54,50.38 97.68,52.27 97.68,72.19
4 54.64,53.26 54.64,32.87 77.38,32.28 77.38,52.76
5 76.83,51.37 76.83,32.19 96.37,33.27 96.37,53.72
6 120.37,52.26 120.37,32.71 139.69,32.46 139.69,52.73
7 83.34,87.21 83.34,73.49 94.37,73.64 94.37,87.95
8 107.26,84.37 107.26,72.84 121.38,72.61 121.38,84.75
9 121.06,85.37 121.06,75.62 134.73,75.29 134.73,87.34
 
表4-2  检测框的中心点坐标
检测框编号j
1 53.62 54.47
2 73.19 63.81
3 86.47 62.27
4 64.38 43.12
5 86.47 42.06
6 129.87 42.37
7 87.62 81.53
8 114.68 79.82
9 128.16 81.27
 
按照R-FCN算法得到的检测结果如下表4-3所示。
表4-3  车辆识别结果
测试场景 测试时间 实际变化 误检次数 漏检次数 正确率
场景一 9:00-10:00 11 0 1 92.3%
场景二 15:00-16:00 12 0 0 100%
 
从表4-3中,可以看出R-FCN算法可以很好的识别停车场中的车辆,出现漏检的原因是因为车辆停车不规范。
 
 
如果我的回答对你有帮助,麻烦点个关注,我也会不定期的整理分享哦!

  • 添加微信,提供课题关键词,帮你找

猜你喜欢

热搜课题