基于Keras-frcnn的web图像识别系统的设计与实现.doc

上传人:滴答 文档编号:4012901 上传时间:2019-09-10 格式:DOC 页数:74 大小:15.42MB
下载 相关 举报
基于Keras-frcnn的web图像识别系统的设计与实现.doc_第1页
第1页 / 共74页
基于Keras-frcnn的web图像识别系统的设计与实现.doc_第2页
第2页 / 共74页
基于Keras-frcnn的web图像识别系统的设计与实现.doc_第3页
第3页 / 共74页
基于Keras-frcnn的web图像识别系统的设计与实现.doc_第4页
第4页 / 共74页
基于Keras-frcnn的web图像识别系统的设计与实现.doc_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、 毕业设计(论文)题目:基于 Keras-frcnn 的 web 图像识别系统的设计与实现 专 业: 软件工程基于 Keras-frcnn 的 web 图像识别系统的设计与实现摘 要随着机器学习和人工智能技术的快速发展,越来越多的企业和技术团队将人工智能图像识别这一新兴技术作为核心技术并使其商业化。国内最大的游戏陪玩平台-比心应用程序,为了维护平台价值观和内容风格、以及增加应用可玩性进而提升用户黏着度,需要对平台内的图像内容做出分类处理。通过对分类后的内容进行维护,衍生出一些新的应用玩法,如“战绩广场”。同时,根据用户和“大神”(该平台主要内容生产者)对某一分类的消费或生产喜好,给出有针对性的

2、推荐。在搜索引擎中加入内容搜索,针对任意分类搜索出对应图像结果。风控系统每天需要大量人力或第三方平台对用户发布图像进行审核,避免敏感图片出现,这部分的开销可以用人工智能取代。本文首先分析了机器学习以及图像识别系统的背景,明确了本设计的研究思路和方向,再根据软件工程项目的要求,进行了业务需求分析,并通过对整个流程的整理和分析,整理出系统需求,根据分析结果对整体框架作出了设计,包括架构设计以及部分业务逻辑设计。其间,利用 UML 进行系统的设计,明确了采用二层架构来实现该系统。由于本系统不适用于数据持续化,故采用了缓存式数据库来存储数据。最后,对系统进行了开发和运行测试,使用 flask 和 ht

3、ml 提供了一个用户可以轻松交互的界面,并开发一个从上层消息队列到下层数据库的批量处理的调度任务,并对系统进行了相关测试。本设计旨在开发一个基于用户分享图片的类型进行内容识别、内容分发的系统作为整个应用程序的核心功能,从而提高内容分发精准度,得到“千人千面”的效果。增加基于内容分发的“图像广场”等功能,增加平台玩法,提高用户粘性。同时,在扩展整个机器学习图像库后,可以取代目前市场主流的敏感图片屏蔽服务(即风控系统),减少这方面的开销。关键词:图像识别系统;python;Keras-frcnn 算法Design and Realization of Image Recognition Syste

4、m Based on Keras-frcnnAbstractWith the rapid development of machine learning and artificial intelligence technology, more and more enterprises and technical teams take the emerging technology of image recognition with artificial intelligence as the core technology and commercialize it. BIXIN Applica

5、tion is the nations largest accompany-gaming platform. In order to maintain the values and content style of the platform and increase the play-ability of the application and then improve users stickiness, It is necessary to classify the image content in the platform and maintain the classified conte

6、nt, as well as to generate some new application playing method, such as “game record square“. At the same time, according to the consumption or production preferences of users and “dashen“ (the major content producer of the platform) for a certain category, targeted recommendations will be given. Co

7、ntent search can be added into the search engine, and corresponding image results are found for any classification. The risk control system costs a lot of manpower or a third-party platform to review the images posted by users every day to avoid the occurrence of sensitive images. This part of the c

8、ost can be replaced by artificial intelligence.In this paper, I analyze the background in machine learning and image recognition system, to get the research idea and the direction of the design, according to the requirements of software engineering project. I analyzed the business requirements, thro

9、ugh the collection and analysis of the entire process, sorted out the system requirements, according to the analysis results to the overall framework design, including software architecture design and some business logic design. Meanwhile, the UML is used to design the system, and the two-layer arch

10、itecture is used to realize the system. Since the system is not suitable for data persistence, the cache database is used to store the data. Flask and HTML were used to provide an interface for users to easily interact, and a batch processing task from the message queue to the database will be made,

11、 and the system should be tested.This design aims to develop a system of content recognition and content distribution based on the type of pictures shared by users as the core function of the whole application program so as to improve the accuracy of content distribution and obtain the effect of “th

12、ousands of faces“. Functions, such as “image square“ based on content distribution, increase the playing method of the platform and improve user stickiness. At the same time, after expanding the whole machine learning image library, it can replace the current market mainstream sensitive image blocki

13、ng service (risk control system) and reduce the costs.Keywords: Image Recognition System; python; algorithm目 录1 绪 论 .11.1 研究的背景及意义 .11.1.1 选题的背景 .11.1.2 国内外研究现状 .11.1.3 研究的意义 .21.2 系统目标 .21.2.1 技术选型 .21.2.2 选型原因 .22 需求分析 .62.1 功能需求 .62.1.1 子系统/模块说明 .62.1.2 功能需求描述 .62.2 非功能需求 .72.2.1 外部接口需求 .72.2.2 性

14、能需求 .73 总体设计 .83.1 运行环境 .83.2 基本处理流程 .93.3 模块结构 .93.4 外部接口 .103.5 内部接口 .104 数据库设计 .114.1 概念结构设计 .114.2 逻辑结构设计 .114.3 物理结构设计 .114.3.1 存取方式 .114.3.2 存储结构 .125 界面设计 .145.1 界面关系图或工作流图 .145.2 界面设计成果 .155.2.1 主界面 .155.2.2 子界面 .166 详细设计 .176.1 系统主要功能模块介绍 .176.2 训练模块设计 .176.2.1 训练模块算法描述 .176.2.2 训练模块程序流程图 .

15、196.2.3 训练模块关键类说明 .206.3 测试模块设计 .236.3.1 测试模块算法描述 .236.3.2 测试模块程序流程图 .246.3.3 测试模块关键类说明 .247 编码 .307.1 代码实现与核心算法 .307.2 代码优化分析 .338 测试 .368.1 测试方案设计 .368.1.1 测试策略 .368.1.2 测试进度安排 .368.1.3 测试资源 .368.1.4 关键测试点 .378.2 测试用例构建 .378.2.1 测试用例编写约定 .378.2.2 测试用例设计 .378.2.3 关键测试用例 .378.2.4 测试用例维护 .399 总结与展望 .

16、409.1 设计工作总结 .40谢 辞 .42参考文献 .43附录 A 外文翻译 原文部分 .45附录 B 外文翻译 译文部分 .51附录 C 软件使用说明书 .56附录 D 主要源代码 .57毕业设计11 绪 论1.1 研究的背景及意义1.1.1 选题的背景 随着泛娱乐行业的快速发展,有越来越多的用户会在各种娱乐、社交 app 上分享一些图片,如游戏截图、自拍、表情包等,而针对不同的分享内容,提供图像自动分类,从而集中展示某分类图片,或针对不同喜好展示某类图片,成了提高社交平台用户粘性,增加平台趣味性的优质提案。机器学习作为一门上世纪中叶就被提出的学科,自 90 年代计算机科学、统计学、神经

17、生物学等多学科综合发展后,已经形成了一整套成熟等理论和思想。在传统的机器学习过程中,以特征(feature)为输入数据,取缔了过去人为向计算机输入经验(experience)来生成知识。但是当特征工程(feature engineering)在不断试错的过程中发展了一段时间后,研究者发现机器学习对于特定特征过于敏感,且不具有可移植性,同时一些对于人类很好理解的知识(如图像),很难表达成便于机器学习的经验或模型。此外对于一些任务,人类根本不知道该如何用特征有效表示数据。例如,人们知道一辆车的样子,但完全不知道怎样设计的像素值配合起来才能让机器“看懂”这是一辆车。为了降低特征工程的人工难度,人们尝

18、试着把特征学习过程也转换成机器学习的一层算法,这就是“表示学习”,而“深度学习”就是“表示学习”中最重要的一科。深度学习的输入为原始数据(raw data),比如 RGB 图像、原始音视频数据等,经过算法的层层抽象得到最终所需的特征向量集,最后以特征映射到目标作为结束,在这之中没有任何人为干预的行为。深度学习中比较有代表性包括:递归神经网络(recurrent neural network)和卷积神经网络(convolution neural network)等。1.1.2 国内外研究现状 在计算机视觉领域,深度学习未开发时,仅图像局部特征的描述子就有不同的十几种标准,通常采用分治法利用大量的

19、分类器(判断样本所属类别的容器)和描述子(刻画特征的数据结构)得到全局问题的最优解。2012 年,在 ImageNet 图像分类竞赛上,Geoffrey E. Hinton 等运用卷积神经网络 Alex-Net 击败了诸如 VGG 等知名算法组,以80%以上的成绩拔得头筹,自此引发了学界开展卷积神经网络的学习。2013 年神经网络模型被 MIT Tecchnology Review 评为十大年度科技突破第一名,自此进入了全世界的第三次深度学习高潮,也就是深度学习时代(之前分别是控制论的诞生和连接主义的盛行)。从最初的五层,一直发展到现在的千层卷积神经网络,但是与之前的 LeNet 等在结构上并

20、无太大差异,实际上是硬件的发展和云服务的快速普及才让深度神经网络成为一门切实可行的应用科学。目前,在自然语言和图像识别等领域,卷积神经网络已经成为各大科技公司力求深入并随之产出的重要技术高地。国内比如百度、腾讯、阿里巴巴都成立了各自的深度学习人工智能研究院或相关技术团队。相信随着这门科学的发展,一些人Comment zyt1: 整段话只有一个句号,不合适。已修正基于 Keras-frcnn的 web系统的设计与实现2工的、机械的、枯燥的工作能够被机器取代,进一步的解放人类的生产力,让人们更多地投入到创新性和服务性的劳动中去。卷积神经网络是一类特殊的人工神经网络,区别于神经网络其他模型(如,递归

21、神经网络、Boltzmann 机等),其最主要的特点是卷积运算操作(convolution operators)。因此,CNN 和它的迭代产品(如 Fast RCNN,Faster RCNN)在诸多领域应用特别是图像处理的相关任务上表现突出,诸如,图像分类(image classfication)、图像语义分割(image semantic segmentation)、图像检索(image retrieval)、物体检测(object detection)等计算机视觉问题。此外,随着 CNN研究的深入,如自然语言处理(natural language processing)中的文本分类,软件数

22、据挖掘(software mining)中的软件缺陷预测等问题都在尝试利用卷积神经网络解决,并取得了相比传统方法甚至其他深度网络模型更优的预测效果。1.1.3 研究的意义 作为国内最大的游戏陪玩平台应用程序的开发者,在发现平台主要推荐内容质量不高,整体内容风格与期望不合时,为了优化用户体验,现对平台内主要的图像内容做出分类处理,并对这部分内容维护,衍生出一些应用玩法如:“战绩广场” 。同时根据用户和“大神”(该平台主要内容生产者)对某一分类下对消费或生产喜好,针对性的推荐,从而提高内容分发精准度,得到“千人千面” 的效果。在搜索引擎中加入对针对分类搜索出对应图像结果的功能。风控系统每天需要大量

23、人力或第三方平台对用户发布图像进行审核来避免敏感图片出现,在扩展整个机器学习图像库后,这部分的开销也可以被本系统取代。在完成项目开发的同时,能够深入的了解到卷积神经网络在商业化系统开发中的实现,熟悉系统开发架构和多服务端内容交互方式,提高开发水平和工程化思想等。1.2 系统目标1.2.1 技术选型 本项目使用 python做为开发语言,keras-frcnn 作为识别算法,300 张游戏截图作为初始样本集,阿里云机器学习服务器一台。另外有用户自拍、表情包、APP 截图等分类下的图片各 100张可以用于尝试项目功能的可拓展性。使用 flask框架对外提供 web服务,使用 kafka或文件系统操

24、作获取数据,在经过模型测试后将判断准确率为 90%以上的结果返回,可以使用 redis将得到的结果存入缓存数据库。最终形成一个可以或手动或自动批量的对图像打上分类标签的图像识别系统,且便于下游服务或数据层调用。1.2.2 选型原因1.Python:软件质量:Python 更注重可读性、一致性,具备了比传统脚本语言更优秀的可维护毕业设计3性和可重用性。高开发效率:相对于 C、Java 等编译/静态类语言,Python 开发效率要高出数倍,其代码大小只有 C+和 Java 的 1/5-1/3,而且 Python 程序可立即运行,无需编译及链接等步骤。可移植性:绝大多数 Python 程序无需任何改

25、变即可在主流平台上运行。标准库支持:Python 内置了众多预编译并可移植的功能模块,并可通过自行开发的库或第三方应用进行功能扩展。2.FASTER-RCNN:对比 R-CNN 和 FAST-RCNN 以下几点不同和优势:最后一层卷积层后加了一个 ROI pooling layer;损失函数使用了多任务损失函数(multi-task loss),将边框回归直接加入到 CNN 网络中训练。使用 RPN(Region Proposal Network)代替原来的 Selective Search 方法产生建议窗口;产生建议窗口的CNN 和目标检测的 CNN 共享。测试速度:R-CNN 把一张图像分

26、解成大量的建议框,每个建议框拉伸形成的图像都会单独通过 CNN 提取特征。实际上这些建议框之间大量重叠,特征值之间完全可以共享,造成了运算能力的浪费。FASTER-RCNN 将整张图像归一化后直接送入 CNN,在最后的卷积层输出的特征映射(feature map)上,加入建议框信息,使得在此之前的 CNN 运算得以共享。训练速度:R-CNN 在训练时,是在采用 SVM 分类之前,先把通过 CNN 提取的特征存储在硬盘上。这种方法造成了训练性能低下,因为在硬盘上大量的读写数据会使得在内存空间上堆积和 I/O 消耗从而使训练速度变缓。而 FAST-RCNN 在训练时,只需要将图像输入网络,对每张图

27、像一次性提取所有的 CNN 特征和建议区域,训练数据在 GPU 显存里再直接进损失(Loss)层,这样候选区域的前几层特征不需要再重复计算且不再需要把大量数据存储在硬盘上了。11FASTER-RCNN 创造性地采用卷积网络自行产生建议框,并且和目标检测网络共享卷积网络,使得建议框数目从原有的约 2000 个减少为 300 个,且建议框的质量也有本质的提高。训练所需空间:R-CNN 中独立的 SVM 分类器和回归器需要收集大量的特征作为训练样本,而这一步需要大量的硬盘空间。FAST-RCNN 和 FASTER-RCNN 把类别判断和位置回归统一使用深度网络实现,只需要消耗浮点运算能力,不再需要额

28、外存储。3.KerasKeras 是一个更高级、对用户最友好的 API,具有可配置的后端,由 Google Brain 团队成员 Francis Chollet 编写和维护。10优点:提供高级 API 来构建深度学习模型,使其易于阅读和使用编写规范的文档大型、活跃的社区位于其他深度学习库(如 Theano 和 Tensorflow,可配置)之上使用面向对象的设计,因此所有内容都被视为对象(如网络层、参数、优化器等)。所有模型参数都可以作为对象属性进行访问。例如:model.layers3.output 将提供模型的第三基于 Keras-frcnn 的 web 系统的设计与实现4层 model.

29、layers3。weights 是符号权重张量的列表4.Kafka:在需要以下功能点的服务系统中需要用到消息队列:解耦,冗余,峰值处理能力,可恢复性,缓冲,异步通信。5 那么对比其他消息队列,Kafka 具有以下优势:快速持久化,可以在 O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上即可以达到 10W/s 的吞吐速率;完全的分布式系统,分片(Broker)、生产者(Producer)、消费者(Consumer)都原生自动支持分布式,自动实现负载均衡;支持 Hadoop 数据并行加载,对于像 Hadoop 的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解

30、决方案。Kafka 通过 Hadoop 的并行加载机制统一了在线和离线的消息处理。5.Redis:速度快,完全基于内存,使用 C 语言实现,网络层使用 epoll 解决高并发问题,单线程模型避免了不必要的上下文切换及竞争条件(注:单线程仅仅是说在网络请求这一模块上用一个线程处理客户端的请求,想持久化它就会重开一个线程/进程去进行处理);丰富的数据类型,Redis 有 8 种数据类型,当然常用的主要是 String、Hash、List、Set、 SortSet 这 5 种类型,他们都是基于键值的方式存取数据。每一种数据类型提供了非常丰富的操作命令,可以满足绝大部分需求。Redis 还提供了像慢查

31、询分析、性能测试、Pipeline、事务、Lua 自定义命令、Bitmaps、HyperLog、发布/订阅、Geo 等个性化功能。6.TensorFlow:对于生产来讲,我们希望框架更加高效,扩展性强并且可维护。而对于研究人员,我们则希望我们使用的机器学习框架拥有更加灵活的操作。现在市面上用于替代TensorFlow 的框架,要么十分灵活但扩展性较差如 Chainer 和 PyTorch,要么可扩展性强但不太灵活,如 Caffe 和 MXNet。而 TensorFlow 具备了上述的所有优点,它既灵活又有较好的扩展性,既适合用于生产也适合用于科研工作。正是因为 TensorFlow 这种独一无

32、二的特性,这一独特的地位使 TensorFlow 得以迅速发展。 它目前已经被Google,OpenAI,NVIDIA,Intel,SAP,eBay,Airbus,Uber,Snap 等大公司所使用。截止到 2019 年 4 月 1 日,在 Github 上,TensorFlow 已经拥有了超过 125k 的 Star 以及70k 的相关的存储库,是其余框架的三倍以上。7.LabelImg:比起 PhotoShop 等常见图像标注工具,虽然 labelImg 界面相对粗糙,功能并不强大,但这是一款在标注后自动生成 XML 文件且完全遵循 PASCAL VOC 的格式的标注软件,这样让我们在使用 Keras-frcnn 时读取数据集会更加直接和方便,不需要靠自己手动生成。8.VGG16 网络模型:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。