基于移动云计算的交通场景目标检测方法研究与实现毕业论文
2020-03-12 10:26:30
摘 要
随着移动互联网的大规模视觉应用得到了广泛部署,例如,移动图像、视频分享、社交、移动现场勘查等,用于场景目标识别的智能化移动视觉应用的需求日渐迫切。然而场景目标识别方法通常计算复杂,大规模移动视觉应用的计算需求动态变化幅度较大,如何提供一种面向移动场景目算标识别的高效云-端协同的计算模式成为一个关键问题。
针对复杂交通场景图片会生成大量交并比(Intersection over Union,以下简称IoU)较低候选区域的问题,本文基于Caffe开源库,在Faster R-CNN算法的区域建议网络(Region Proposal Networks,以下简称RPN)后加了一层候选区域重选择网络,剔除了IoU较低的侯选区域,将IoU较大的候选区域输入分类层和回归层完成分类与微调,降低了计算的空间复杂度。同时,本文基于改进的Faster R-CNN算法开发了道路场景下的目标识别系统。
为了提供易管理、可靠的、可移植的、弹性的、高效的服务平台,本文使用Docker的云平台设计与管理技术,构建了面向大规模视觉应用的移动云计算平台体系架构,集中管理计算与服务节点。移动端开发了微信小程序,将手机拍摄的交通道路上的常见目标,包括行人、车辆等上传至云服务平台,在线完成目标检测,并将识别结果展示在微信小程序上。
关键词:Faster R-CNN;Docker;候选区域重选择网络;目标检测;微信小程序
Abstract
As the large-scale visual applications of the mobile Internet have been widely deployed, the demand for smart mobile visual applications for scene object recognition has become increasingly urgent. For example, mobile images, video sharing, social networking,mobile site surveys, etc. However, the method of scene bject recognition is usually computationally complex, and the dynamic variation of computing demand of large scale mobile vision applications is quite large. How to provide a highly efficient cloud-end collaborative computing model for the recognition of moving scenes is becoming a key problem.
Aiming at the problem that a large number of region proposals with low Intersection over Union (IoU)are extrcted in complex traffic scenes, this paper adds Region Proposal Reselect Networks after Region Proposal Networks (RPN) of the Faster R-CNN algorithm based on the Caffe open source library. Taking advantage of Region Proposal Reselect Networks, my algorithm can remove some region proposals with low IoU, and input the region proposls with high IoU into the cls layer and the reg layer to classify and fine-tune the bounding boxes. This measure will reduce the space complexity of computing. Meanwhile, this paper provides a object recognition system based on the improved Faster R-CNN algorithm.
Moreover, in order to provide an easy-to-manage, reliable, portable, flexible, and efficient service platform, Docker's cloud platform design and management technology is used. Meanwhile, I build a mobile cloud computing platform architecture for large-scale visual applications for providing centralize management of computing and service nodes. At the same time, I developed a WeChat application to upload common objects on the roads which is taken by the mobile phone the mobile terminal, including vehicles, pedestrians, etc. The WeChat application can take these pictures to the cloud service platform for object detection online and then show the results.
Keywords: Faster R-CNN; Docker; Region Proposal Reselect Networks; object detection; WeChat application
目录
摘 要 I
Abstract II
第1章 绪论 1
1.1 研究背景 1
1.2 国内外研究现状 1
1.2.1 基于深度学习的目标检测与识别方法 2
1.2.2 Docker容器化技术 2
1.3 本文研究内容 3
1.4 本文组织结构 4
第2章 系统开发环境及相关技术介绍 5
2.1 Docker 5
2.1.1 镜像 6
2.1.2 容器 6
2.1.3 数据卷 6
2.2 Caffe 6
2.2.1 Blob 7
2.2.2 Layer 7
2.2.3 Net 7
2.2.4 Solver 7
2.2.5 Proto 7
2.3 Faster R-CNN算法介绍 8
2.3.1 RPN 10
2.3.2 损失函数 11
2.3.3 边框回归 12
第3章 Faster R-CNN目标识别与检测算法的改进 13
3.1 候选区域重选择网络结构 13
3.2 候选区域重选择网络参数 13
3.3 模型训练策略 15
3.4 实验结果分析 15
3.4.1 实验环境 15
3.4.2 实验数据集 16
3.4.3 基于候选区域重选择的改进算法与Faster R-CNN算法性能对比 16
3.4.4 识别效果展示 18
第4章 系统方案设计 19
4.1 微信小程序模块 19
4.1.1 拍照模块 20
4.1.2 通信模块 20
4.2 Docker容器模块 21
4.2.1 tomcat容器部署 21
4.2.2 Caffe容器部署 23
第5章 系统结果分析 26
5.1 服务端测试 26
5.2 移动端测试 27
5.3 目标识别模块测试 28
第6章 总结与展望 29
6.1 本文工作总结 29
6.2 本文工作展望 29
参考文献 31
致谢 33
第1章 绪论
当今社会,移动端设备为用户和互联网资源池中的海量数据构建了桥梁,同时也用户提供了各式各样的服务。随着基于移动互联网的大规模视觉应用得到了广泛部署,为了进行高效、可靠、方便的大规模图像、视频数据计算处理,云-端协同[1]的计算模式为移动视觉应用的智能化提供了技术路线。
1.1 研究背景
目标识别[2]是指利用计算机技术建立模型,编程实现类似于人类视觉感官感知物体信息的一项前沿技术,它的研究目标是使计算机程序能够感知图像或者视频数据源中的目标方位和目标周围信息,将目标区别于背景环境并且利用分类技术识别出目标信息,即从图像或视频中找出目标,定位目标并且检测目标种类,这项技术包括定位和检测两个过程。目标识别是计算机在图像领域的重要研究方向,其可以对各个场景下的视觉信息进行定位与检测,比如在交通场景下,可以使用目标识别技术定位检测行人、车辆、路标、车牌等信息[3],完成道路场景信息的采集与分析,对城市道路管理具有很重要意义。
目标识别在人类活动的各个领域都有着非常重要的意义。在国防军工领域,高可靠性的、高精度的目标识别系统依托于先进的硬件设备可以打造防空、海防等国防系统。在人工智能领域,像Google、百度等这些互联网引擎公司都着手于无人驾驶智能车的研究,这一研究的核心技术在于无人驾驶智能车的目标识别系统,复杂的交通条件带来非常庞大的目标及背景数据,这要求无人驾驶智能车的研究必须依托庞大的服务器集群,训练出可靠、高效的识别网络。随着深度学习网络的再度火热,目标识别方法的研究在计算机视觉领域越来越火热。基于目标识别的应用也时刻贴合人们的生活,例如智能停车场、刷脸门禁系统等。特别是在生产环境中,人工智能得到广泛应用,例如人脸识别[4]、智能身份证信息采集、医疗图像领域、搜索引擎数据匹配、卫星图像分析[5]、国防建设领域[5]、数据库图像查询等。
在人工智能领域,如何使用计算机技术完成对图像数据或视频流数据信息的特征化[6],分析出有利于生产需求的关键数据,如何利用计算机拥有的高容量与超强计算能力的硬件设备完成类似于人类视觉任务一直都是计算机视觉领域重要研究的问题与热点。每年的图像识别、分类大会,来自于世界各地的实验室不断革新目标识别的方法,运算的时间,以及在公开数据集上的识别精度,每一次进步都推动着计算机视觉领域的革新,越来越多用于目标识别的优秀方法不断涌现,展示着越来越优异的识别效果。
1.2 国内外研究现状
深度神经网络真正在目标识别领域大放异彩大概以2012年这一年为分界线。在这年的ILSVRC图片识别大赛上来自全世界各地在计算机视觉领域研究顶尖的团队展开了深度学习网络与基于传统特征提取方法[7,8]的较量。传统方法与深度学习算法在ImageNet数据库上展开了竞赛,第二名与第三名都是采用基于传统给计算机视觉方法进行的目标识别,然而都完败于采用深度学习方法的第一名。在2014年的NIPS会议上卷积神经网络(CNN)技术大放异彩,代表深度学习的目标识别算法性能远超过传统的基于特征提取的目标识别算法,随之而来的是在计算机视觉以及其他人工智能领域纷纷掀起深度学习的浪潮[9],以Google、微软为代表的互联网公司纷纷成立人工智能团队,推动着人工智能的大红大紫。
Docker[1]的前身为美国一家做虚拟化容器技术的公司,名为dotCloud。其主要的经营业务是提供PaaS(平台及服务)[10],dotCloud为互联网公司和其他开发商提供虚拟化的容器技术、框架、服务等。但是,互联网行业技术的革新日新月异,譬如Google、微软、FaceBook这样的互联网巨头造成的互联网市场氛围异常严酷,其在濒临倒闭的情况下开源了自己的Go语言源代码和Docker框架。在大型PaaS平台框架冗余、耦合度高、资源利用率低的背景下,Docker以其完全开源的优势,得到了全世界各地程序开发人员的赞叹,方便的部署及运行特点让它越来越火热,革新了新一代的容器引擎技术。
1.2.1 基于深度学习的目标检测与识别方法
在计算机视觉领域,随着深度学习网络的快速发展。以何凯明、Ross Girshick为代表的顶尖研究人员纷纷活跃在CVPR等顶级期刊或或会议上,发表了新型的深度学习算法,如R-CNN[11]、Faster R-CNN[12] 、Fast R-CNN[13]、SSD[14]、YOLO[15]方法等,还有2017年发表在ICCV上的Mask R-CNN[16]。深度学习算法不断进步,技术不断革新,各项技术推动着目标识别在公开数据集上的处理性能和识别精度有了飞跃式发展。在各国深度学习学者和深度学习爱好者,以及Google、微软等互联网公司的推动下,越来越多的优秀成果和突破性进发表在ICCV、CVPR、NIPS、TIP等国际顶尖会议和期刊上。
1.2.2 Docker容器化技术
从2013年Docker的最初的版本发布至今,Docker经过历时五年的版本更新,得到了飞速发展,Docker技术及框架也逐渐趋于完善并且变得越来越成熟,越来越多的生产需求推动着Docker技术的革新与发展。Docker社区吸纳了来自全球各地开发人员的意见和建议,不断更新Docker版本,随着Docker生态圈在全球范围内的不断崛起,Docker成为Amazon、VMware、Google、微软等互联网公司的欣赏,越来越多的公司宣布开放系统接口,为Docker提供友好可靠地兼容环境。现在微软平台的win10操作系统为开发者门提供了docker toolbox,以支持Docker在windows系统下的部署。Ubuntu、Centos、Red Hat等linux系统也完美支持Docker容器的部署。
在国内的互联网领域,从大公司到创业型公司。越来越多的开发者们将自己项目部署在Docker下,可以完美实现部门协同开发项目,方便地实现运维[17]。例如阿里巴巴旗下的淘宝,其在阿里云服务器部署了成千上万个Docker,集群式处理淘宝业务,完成不同时间不同流量的弹性可伸缩服务。在系统高流量时期,淘宝运行了数以万计的Docker集群,充分利用服务器资源,保证高流量下的数据传输处理的可靠性。在系统低流量时期,淘宝又可以关闭一部分Docker,解除服务器资源占用,充分提高阿里云服务器的资源利用率。Docker展现了越来越亮眼的优势,越来越受开发者喜爱,在互联网生态中不断革新,掀起一股微型可伸缩云的浪潮。
1.3 本文研究内容
针对复杂交通场景图片会生成大量IoU较低候选区域的问题,本文基于Caffe开源库,在Faster R-CNN算法的RPN后加了一层候选区域重选择网络,剔除了IoU较低的侯选区域,将IoU较大的候选区域输入分类层和回归层完成分类与微调,降低了计算的空间复杂度。
为了完成系统设计,一方面在Docker环境下的Caffe容器中,基于改进的Faster R-CNN算法和PASCAL VOC数据集,进行道路交通场景下的神经网络模型的训练,开发了道路场景下的目标识别系统;另一方面在tomcat容器中完成服务端代码编写与部署,为微信小程序提供数据交互端口。为实现高效云-端协同的计算模式,本系统使用Docker云平台设计与管理技术集中部署计算与web节点。移动端开发了微信小程序实现了图片上传至服务器的功能,手机端做预处理,云端离线训练模型、在线做目标检测,并将检测后的结果以图片形式返回给微信小程序展示。
本文主要完成以下几点工作:
- 首先,提出了候选区域重选择算法,保证RPN生成的候选区域中IoU较高的边界框才能进入分类层和回归层进行目标检测,提升了Faster R-CNN算法在交通场景下的识别精度,减小了计算的空间复杂度。其次,基于VGG16模型完成了交通场景下神经网络模型的训练。
- Docker云平台环境的搭建,使用Docker集中管理服务器中各个节点,采用容器的技术将神经网络算法制作成镜像并以“沙盒”模式运行计算方案,提供了对外交互的具体接口。
- 编写微信小程序,连接系统移动端与云端模块,完成系统功能验证及性能验证。
1.4 本文组织结构
本文共有五章,具体章节安排如下:
第1章是绪论部分,主要包括本文的研究背景、国内外研究现状、研究内容以及组织结构四部分内容。
第2章是系统开发环境及相关技术介绍。第一部分主要介绍了什么是Docker以及使用Docker容器技术可以带来哪些好处,并且阐述了Docker的镜像和容器两大重要组件以及数据持久化存储技术数据卷。第二部分介绍了深度学习框架Caffe的基本组成结构、基本数据单元、网络模型和各部分类等。第三部介绍了R-CNN和Fast R-CNN算法的目标识别过程以及改进版的Faster R-CNN算法的相关组件和技术优势。
第3章是Faster R-CNN目标识别与检测算法的改进。介绍了候选区域重选择网络的网络结构和网络参数,给出了候选区域重选择网络的损失函数及训练策略,也总结了该网络的算法描述。通过对比改进后的Faster R-CNN算法与Faster R-CNN算法的mAP和平均准确率,展示了较好的识别效果。
第4章是系统方案设计。第一部分讲述了移动端微信小程序的具体实现,本地相册选取照片以及实时拍照功能的接口函数,如何使用HTTPS POST向服务端上传图片以及从服务端下载图片以完成数据交互功能。第二部分讲解了如何编写服务端的JavaWeb代码并部署在Docker环境下的tomcat容器中。第三部分讲解了在Caffe容器中编译并配置py-faster-rcnn,以及基于交通场景数据集训练神经网络模型的过程,给出了基于py-faster-rcnn的目标检测与提取算法的描述。
第5章总结了论文的主要内容,提出了研究方法的特色与优点,仔细分析了神经网络算法的局限性以及平台的局限性,并展望了未来进一步的研究方向和优化方案。
第2章 系统开发环境及相关技术介绍
在目标识别领域,深度学习一度因为其繁琐的结构和复杂的编码过程被基于特征提取的目标识别与检测方法所取代。近几年,由于Ross Girshick等人在深度学习方面的巨大贡献,R-CNN、Fast R-CNN、Faster R-CNN、SDD等技术的兴起让深度学习在目标识别图像领域大放异彩。本文使用Docker容器技术,在Caffe容器中实现了改进后的Faster R-CNN算法,结合微信小程序完成在线目标检测任务。其中,Docker容器部署和Faster R-CNN目标识别与检测算法的改进是本文阐述重点。
2.1 Docker
云计算是一种集中提供计算资源服务的一种商业模式[18]。云计算可以给用户提供安全可靠、便捷可选择的远程主机服务,用户可以按需选择使用云端资源时间。除此之外,用户可以根据不同需求在云计算资源池中选择例如:存储、网络、计算、应用等服务[18]。在这种模式下,用户不需要自己预算资源数量,配置开发环境,只需要在云计算厂商提供资源的基础上开发自己的项目。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: