基于Android平台的图像搜索研究与实现.docx

上传人:b****4 文档编号:3835837 上传时间:2023-05-06 格式:DOCX 页数:36 大小:942.07KB
下载 相关 举报
基于Android平台的图像搜索研究与实现.docx_第1页
第1页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第2页
第2页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第3页
第3页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第4页
第4页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第5页
第5页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第6页
第6页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第7页
第7页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第8页
第8页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第9页
第9页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第10页
第10页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第11页
第11页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第12页
第12页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第13页
第13页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第14页
第14页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第15页
第15页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第16页
第16页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第17页
第17页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第18页
第18页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第19页
第19页 / 共36页
基于Android平台的图像搜索研究与实现.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Android平台的图像搜索研究与实现.docx

《基于Android平台的图像搜索研究与实现.docx》由会员分享,可在线阅读,更多相关《基于Android平台的图像搜索研究与实现.docx(36页珍藏版)》请在冰点文库上搜索。

基于Android平台的图像搜索研究与实现.docx

基于Android平台的图像搜索研究与实现

 

毕业设计论文

 

设计题目:

基于Android平台的图像搜索研究与实现

系别:

专业:

班级:

学号:

学生姓名:

指导老师:

日期:

摘要随着移动设备的兴起,移动互联网技术的不断完善,人们通过计算机、电视机等获取信息的途径,开始更多地转向我们手中的手机。

本系统主要是为了实现基于Android手机平台的图像搜索功能,手机客户端用户将图片上传到服务端,并搜索服务器端的图片管理系统的相似图片,图像的匹配则完全在服务器端完成。

核心功能为图像识别,系统采用均值哈希算法通过计算灰度图像每个像素灰度与平均值的差异将图片转换为一个唯一标识的指纹字符串,通过比较两张图片指纹的相似度来完成图像识别。

文章中首先对系统概况、研究现状进行分析,然后设计的过程和实现的功能进行详细的讲解。

关键字移动设备;均值哈希算法;图像搜索;图片管理系统

 

ABSTRACTWiththeriseofmobiledevices,mobileInternettechnologycontinuestoimprove,people'saccesstoinformationthroughcomputers,televisions,etc.,beganmoretowardsourhandsphone.ThesystemismainlybasedontheAndroidmobileplatforminordertoachieveanimagesearchfunction,themobileclientuserstouploadpicturestotheserver,andsearchforsimilarimagesontheserversideofthepicturemanagementsystem,imagematchingisdoneentirelyontheserverside.Corefunctionalityforimagerecognition,thesystemusesahashingalgorithmbycalculatingthedifferencebetweenthemeangraylevelofeachpixelgrayscaleimagewiththeaveragepictureisconvertedtoastringthatuniquelyidentifiesthefingerprintbycomparingthesimilarityofthetwofingerprintimagestocompleteimagerecognition.

Inthispaper,thestatusofsystemsurvey,researchandanalysis,andthenonthetechnologyusedinthesystem,andrealizethefunctionindetail.

KEYWORDSMobiledevices;Meanhashalgorithm;Imagesearch;Imagemanagementsystem

目录

1、绪论1

1.1项目背景2

1.2国内外研究现状2

1.3研究目标3

1.4技术支持3

1.4.1图像识别技术3

1.4.2JSP技术3

1.4.3J2EE的WEB开发4

2、系统分析5

2.1系统需求分析5

2.1.1产品功能概述5

2.1.2用户类型和特征6

2.1.3功能需求分析6

2.1.4非功能需求分析6

2.1.5系统运行结构要求7

2.1.6系统运行环境需求7

2.2系统可行性分析8

2.2.1技术可行性分析8

2.2.2经济可行性分析8

2.2.3操作可行性分析8

2.2.4社会环境可行性分析8

3、系统总体架构设计9

3.1开发环境9

3.1.1开发环境的搭建9

3.2本系统的框架结构9

3.2.1服务端程序设计9

3.2.2服务端接口实现10

3.2.3客户端程序设计11

3.2.4客户端端接口实现11

3.2.5数据传输过程11

3.3用例分析12

3.3.1用例图12

3.3.2用例规约13

3.4UML建模15

3.4.1类图15

3.4.2活动图15

3.4.3时序图16

3.4.4状态图19

4、数据库设计20

4.1数据库设计原则20

4.2数据库设计20

4.3数据库需求分析20

4.4数据库概念结构设计20

4.5数据库与数据库表的设计21

4.6数据库操作21

5、系统详细设计与实现23

5.1图片处理与算法识别模块23

5.1.1均值哈希算法23

5.1.2图片压缩处理23

5.1.3计算灰度值24

5.1.4图片模糊识别25

5.2服务器端登录模块25

5.3服务器端修改密码模块26

5.4服务器端图片添加模块26

5.4服务器端图片管理模块27

5.5客户端图片列表模块27

5.6搜索结果展示模块27

6、总结与展望29

参考文献30

致谢31

1、绪论

图像识别技术一直以来都是人们研究的热点,从工商业的印刷、数码,到互联网的以图搜图,再到移动应用的验证识别,图片识别技术的应用在我们日常生活中随处可见。

本系统使用主要使用的是模糊识别的图像识别技术设计的一款能实现客户端与服务端交互的图像搜索软件。

在本文中,我将对系统中应用的主要技术和实现的功能进行讲解。

论文总体结构如下:

第一章讲述了系统的概况,以及目前国内外研究的情况,以及相关技术支持。

第二章系统分析,确立目标与用户,并讲述系统的需求分析与系统的可行性分析。

第三章介绍了系统总体架构设计,开发工具的选择、环境的配置,J2EE三层结构MVC模式开发,UML建模。

第四章数据库结构的设计。

第五章详细讲解系统各功能模块的实现与测试截图。

第六章总结与展望。

附上相关参考文献。

1.1项目背景

近年来中国移动互联网产业不断发展,移动终端从通信到现在的手机上网看视频、浏览网页,甚至到使用手机购物,逐步地改变着我们的生活习惯,其影响力也在各行各业逐渐扩大。

在中国,2012年移动终端首次超过台式电脑网民,2013年移动终端使用者首度超过美国。

中国的手机用户不同于外国,相对于美国手机用户对手机使用更多的是通讯,中国的手机用户更加喜欢的是配置好,功能又强大的手机,他们更喜欢使用手机上网,体验更加特别又新潮的事物。

因此,为了满足中国这个庞大的消费市场的需求,手机开发商和互联网巨头们不得不为手机平台研发更多的功能以满足人们的需求。

现在的中国手机用户,大多是手机的重度使用者,他们往往喜欢通过手机来展现他们的个性,甚至一张手机壁纸就能体现一个人的喜好。

我们常常在手机浏览网页,下载各种个性化图片,如果能够通过手机上传搜索相似的图片,这将为我们提供了很多方便。

因此,中国手机市场消费者对于基于手机平台的图像搜索应用的需求是非常大的。

而现在关于移动设备上的图像搜索软件还是比较少的,基于移动设备的图像搜索成为了移动开发中的一个重要课题。

1.2国内外研究现状

识别,一直是计算机视觉的核心问题,图像识别功能实现首先要对计算机视觉要有所了解。

计算机视觉就是以计算机代替人的视觉把人看到的东西通过计算机进行识别和处理。

而如何实现该功能,这就需要图像处理技术和模式识别技术的支持了。

本系统采用的是图片灰度化的处理结合模糊识别的技术实现的一款图片搜索软件。

图像识别技术从出现到现在,已经广泛应用于各个领域。

其发展从文字识别到图像识别到物体识别,技术要求在不断地提高,理论体系也在逐步地完善。

文字识别研究最早开始于20世纪50年代,其应用已经非常广泛,其中最被我们熟知的就是印刷机。

现在的印刷技术已经接近完美,平时我们很难看到有出现打印文字错误,这正说明文字识别技术已经相当完善。

而文字识别可以说是图像识别的一个特例。

图像识别最近备受青睐,自谷歌推出以图搜图功能后,国内各网络巨头也不甘落后纷纷推出相应产品,如XX搜图、淘宝搜图等。

同时电商也来分一杯羹,最近美菱推出的云图像识别冰箱领跑着白电智能化的新时代。

这同时表明我国的图像识别技术已经走在世界前沿。

1.3研究目标

本系统设计的目标是为了为手机用户提供一个图片搜索的手机应用,满足其搜索相似图片的需求。

并通过该项目的研发完成以下预期目标:

1.开发出来的应用能在手机上运行良好,并有一定的实用性。

2.系统有可拓展性,可移植性,而且便于维护管理。

3.加深图像识别技术的了解,同时致力于找出一种更加高效且安全的识别算法。

4.深入了解当下移动互联网手机应用的开发过程并对移动互联网的发展趋势有所了解。

5.加深对代码编写的规范化,深入了解更多的移动应用技术。

6.最终,顺利通过毕业设计的考核。

1.4技术支持

1.4.1图像识别技术

就像人能够识别看过的事物一样,图像识别就是认出它是使用过的图形的过程,也叫图像再认。

在图像识别中,既要有当时进入感官的信息相当于客户端上传的图片信息,也要有记忆中存储的信息,相当于服务器端储存的图片信息。

只有通过存储的信息与当前的信息进行比较的加工过程,才能实现对图像的再认。

图像识别技术是人工智能的一个重要领域。

为了编制模拟人类图像识别活动的计算机程序,人们提出了不同的图像识别模型。

例如模板匹配模型。

这种模型认为,识别某个图像,必须对图片经过处理,处理后的信息就是一个模版。

当上传的图片经处理后,就能跟数据库上处理过的模版进行匹配。

描述图片的算法有很多SIFT描述子,感知哈希算法PHASH,差异哈希算法DHASH等。

1.4.2JSP技术

JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

JSP是为服务器端开发提供的一种脚本,它接受来自于客户端的请求并根据请求响应生成一种html文档。

JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。

在Web应用开发中,可供选择的动态页面语言技术有很多,例如PHP,ASP,JSP等,在这些动态页面语言中,JSP凭借其自身的优点成为开发人员最喜欢的语言之一。

JSP相对于ASP、PHP开放性更高,支持的平台更多,而且可以建立大型的web应用程序,执行程序的速度却毫不逊色。

1.4.3J2EE的WEB开发

本系统服务器端使用的是J2EE平台,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准,它是Java技术不断适应和促进企业级应用过程中的产物。

Sun推出J2EE的目的是为了克服传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。

J2EE平台支持的JDBC技术也为数据库连接提供极大方便。

JSP+Servlet+JavaBeans的开发方式使得网页的逻辑关系能与网页设计分开。

高效、便捷的操作环境和友好的可视化操作界面使其成为web程序开发者们最喜欢的编程平台之一。

2、系统分析

2.1系统需求分析

2.1.1产品功能概述

管理员将图片存放在后台数据库中,管理员通过web页面查看和管理,Android手机用户通过上传手机图片搜索数据库中的相似图片。

主要功能如下:

1.系统设置:

数据库设置,图片管理设置,管理员设置。

2.图片上传功能:

实现管理员上传本地图片到数据库、实现手机用户上传移动设备上的图片到服务端缓存文件夹。

3.图片管理功能:

系统将数据库图片显示在查询页面,管理员可以在此执行删除操作。

4.帐号管理功能:

更改相应的管理员信息,提高安全系数。

5.客户端图片管理功能:

用户可以在软件中对手机图片进行管理,如重命名、删除、上传搜索等功能。

产品分为为管理员设计的图片管理系统和为Android客户端用户设计的Android应用软件两部分。

客户端使用http访问技术与图片管理系统进行数据交互。

图2-1图片管理系统设计分析

图2-2客户端软件设计分析

2.1.2用户类型和特征

通过在之前需求调研过程中的数据分析,本系统的预期用户为Android手机用户。

主要的服务人群有一下两类类是需要大量图片素材的社会工作者。

比如一些UI设计者或网页设计师,他们需要大量的相似的图片素材来丰富他们的设计内容。

第二类为潮流时尚的年轻人。

现在的青少年一般都比较的潮,经常在网上进行购物之类的,当他们看到一个图片,可以在网上搜索出类似的。

2.1.3功能需求分析

功能模块:

实现管理员信息管理。

操作功能:

管理员登录需要做相应验证,若登录信息与数据库内的管理员信息不匹配则无法登录。

登录后管理员对密码进行修改,修改过程中也要做相应验证,保证密码安全可靠。

功能模块:

实现图片上传功能。

操作功能:

管理员登录后,可以在系统子页面中为系统图库添加图片。

可对图片添加描述同时应该包含上传时间方便管理员查看管理。

功能模块:

实现图片信息库管理。

操作功能:

管理员登录并上传图片后,可以在系统中查找、删除图片。

图片除了图片显示还应该包括该图片的描述、上传时间显示以方便管理员对相应的图片进行管理。

功能模块:

实现客户端本地图片的管理。

操作功能:

手机用户可对本地图片进行管理,可以删除拍照不理想的图片,又或者把图片按自己喜好命名。

用户可以点击相应图片选择上传搜索,返回的图片信息显示在图片查看页面。

功能模块:

实现搜索结果显示。

操作功能:

搜索结果显示要求,显示结果全面、清晰,使用gallery控件,能通过拖拉实现大量图片的显示。

点击相应图片能在gallery控件下方显示该图片的大图,方便用户查看和比较。

2.1.4非功能需求分析

安全性需求:

对于服务器端上传的图片应该严格要求,不能上传一些有危害到个人或国家利益的图片。

上传的图片应该经过处理并指明出处。

易用性需求:

要求系统具备良好的操作性,界面要求简洁、美观、大方,软件功能完善,可靠、健壮、高效、易于维护可拓展性好。

性能需求:

空间上对存储器和磁盘空间的需求;对存储在数据库中表的最大行数有一定的需要。

时间上对所有页面操作、帐号信息显示、数据库的操作都能合理地响应。

2.1.5系统运行结构要求

服务端的实现技术有多种,主要有客户机/服务器(C/S)型架构和采用Web技术的浏览器/服务器(B/S)型架构两种。

B/S是英文Browser/Server的缩写,即我们经常所说的浏览器-服务器模式。

它是C/S结构衍生的一种为了适应现在高速发展的Internet技术的结构。

我们利用浏览器作为客户端,用户只需要在浏览器里面输入自己需要访问的地址,就可以访问存在与服务器端的应用。

这种模式使用于小型的局域网和大型的网络系统。

在这种模式下,客户端无需安装任何的东西,只需要安装一个浏览器,就可以访问自己想要的系统,这样大大减轻客户端的占用,减轻了系统维护与升级的成本和工作量,降低了用户的成本。

B/S结构是跟随者Internet技术一起发展起来的,与C/S模式类似,浏览器作为客户端。

考虑到我们开发的系统客户端是手机终端,C/S架构对于开发应用于多个操作系统的东西很难,对于系统升级维护也有限制。

基于上述考虑,同时也考虑到B/S模式的优点,我们选择了浏览器/服务器(B/S)型架构

2.1.6系统运行环境需求

选择Windows7操作系统。

运行时的基本配置如下:

服务器端:

硬件环境:

CPUPentium以上,内存512mb以上;

软件环境:

操作平台WindowsNT4.0Server及后续版本,数据库系统SQLServer2005;

客户端:

android2.3以上的系统;

2.2系统可行性分析

2.2.1技术可行性分析

技术上的可行性分析需要考虑采用的硬件和软件技术能否满足用户提出的要求。

由于本系统设计难度不大,sun公司有一套非常完善的javaweb开发技术用于这种中小型的项目开发。

2.2.2经济可行性分析

由于是中小型的开发项目,资金投入主要是配置电脑、服务器、及相关的网络设备、申请域名等。

相对于企业级的投入要小很多。

2.2.3操作可行性分析

现在手机用户对于年龄的限制逐渐减少,为了争取获得更多的高、低龄用户,我们产品设计以人性化为生产理念。

客户端操作与界面设计简单易懂,使高、低龄用户上手更加容易。

服务端的操作与界面设计方便快捷,能极大提高管理员的工作效率。

2.2.4社会环境可行性分析

由于手机用户的逐年增加,中国更是拥有全球最多的手机用户。

而图片搜索的手机应用现在还是比较少的,在中国拥有很大的市场。

而且现在的年轻人更加喜好show自己手机拍摄的图片,网络的图片信息越来越多,对图片搜索的需求也越来越大。

 

3、系统总体架构设计

3.1开发环境

本系统采用服务端+客户端的模式,服务端主要采用B/S的架构模式,采用jsp作为系统界面,tomcat作为服务器,SQLserve作为数据库。

客户端采用android平台作为操作系统。

3.1.1开发环境的搭建

搭建开发环境需要的软件:

1)操作系统:

window7或linux

2)IDE环境:

EclipseIDE+ADTEclipse3.3以上

3)apache-tomcat-6.0.35

3.2本系统的框架结构

图片管理系统框架分为三层分别是:

Browser层、WEB层、Database层。

Browser层为页面表示层,Database层为数据库访问层,WEB层为功能逻辑实现层。

3.2.1服务端程序设计

图3-1程序结构图

服务端主要的功能为管理员信息管理、图片上传、图片管理。

界面使用jsp技术开发的网页,主要有登录页面,主页面,图片上传页面,图片管理页面。

服务器端开发使用的是MVC开发模式即模型-视图-控制器模型。

模型就是应用业务逻辑部分,主要角色是JavaBeans。

本系统中用于与数据库交互的模版类pic类就是一个JavaBeans。

视图就是界面部分,在web应用程序中就是HTML、XML、JSP页面的设计。

控制器负责网站的整体逻辑,用于管理用户与视图发生的交互即java项目中的servlet。

它处在视图与数据之间,对视图与模型的交互进行管理。

系统运作过程如图3-2所示:

图3-2系统运作过程图

3.2.2服务端接口实现

数据库接口:

为了实现与数据库的交互,我们需要使用java提供的API-JDBC通过调用加载驱动类DriverManager实现数据库连接。

使用方法DriverManager.getconnection(url,username,password)获取指定地址、帐号和密码参数的帐号连接。

文件上传接口:

服务端的图片添加实现使用了应用于jsp的jspSmartUpload文件上传下载组件,以下为使用的主要方法。

Initialize(getserveltconfig(),request,response):

初始化,getserveltconfig()获取配置信息

SetMaxFileSize(longsize):

设定文件允许上传的最大长度

Upload():

上传文件数据

setAllowedFilesList(stringfilelist):

设定带有指定拓展名的文件

saveAs(stringothername,intoptionsaveas):

将文件换名另存optionsaveas为根目录

为了servlet能读取jsp页面的文件信息还需要设置input输入项的name属性,否则浏览器将不会发送上传文件的数据。

设置form的enctype属性为multipart/form-date,这样浏览器上传文件时将会把文件数据附加到http请求信息体中。

3.2.3客户端程序设计

客户端程序是在android平台下开发完成,内容有:

1.图片上传界面和图片查看页面实现

2.重命名、删除、搜索等activity点击事件实现

3.上传和下载图片的处理

4.使用HttpUrlConnection访问网络

3.2.4客户端端接口实现

客户端接口实现使用的是HTTP协议访问技术为手机用户搭建的一个实现图片上传搜索的接口。

通过HttpURLconnection模拟post表单的提交。

首先构造post正文,其中content-type属性必须为multipart/form-date,然后打开Dataoutputstream将文件信息写入,并将图片包装成能被服务端识别的类型。

使用FileInputStream类的read(byteb)方法依次写入图片信息到Dataoutputstream包装类里。

使用Dataoutputstream类的write方法上传数据。

服务端使用DiskFileUpload类的parseRequest(request)方法读取上传信息,parseRequest方法是对http请求信息进行解析的入口方法,它能解析出form表单中每个字段的数据,并将他们分别包装成独立的Fileitem对象。

使用ByteArrayOutputStream获取返回的IO流信息。

使用intent实现页面间数据传递,将获取到的图片显示在图片查看页面。

3.2.5数据传输过程

1.使用HashMap的get方法获取选中图片的图片信息

2.初始化HttpURLConnection类与服务端相应地址建立连接

3.使用Dataoutputstream类将图片包装成包含post请求正文和图片名的数据类型

4.使用hashmap的get(”title”)方法获取鼠标上的文件名提示即图片名

5.使用File类获取相应手机路径相应图片名的图片

6.使用FileInputStream类的read(byteb)方法依次写入图片信息到Dataoutputstream包装类里。

使用Dataoutputstream类的write方法上传数据。

7.服务端使用DiskFileUpload类的parseRequest(request)方法读取上传信息,parseRequest方法是对http请求信息进行解析的入口方法,它能解析出form表单中每个字段的数据,并将他们分别包装成独立的Fileitem对象。

8..使用FileItem类的write方法将FileItem对象中的内容保存到某个指定的文件中。

14.使用File类获取图片

9.使用图片识别算法筛选图片

10.使用PrintWriter类向前台的JSP页面输出结果

PrintWriterout=response.getWriter();out.print(result);

11.使用HttpURLConnection的getInputStream或getOutputStream方法可以释放与此实例关

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2