ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:132.95KB ,
资源ID:7653988      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7653988.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Hadoop图像处理HIPI.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Hadoop图像处理HIPI.docx

1、Hadoop图像处理HIPI毕 业 论 文 目 录1 绪论 12 Hadoop平台介绍及HIPI介绍 22.1 Hadoop平台介绍 22.2 HIPI介绍 23 Hadoop平台的搭建与开发平台配置 43.1 实验平台及其基本配置 43.2 分布式搭建 43.3 开发平台配置 64 基于HIPI的图像处理实现 64.1 上传 64.2 HIB文件转换为图像束文件 74.3 灰度处理 74.4 下载 84.5 HIB文件转换为jpg文件 95 总结与展望 9致谢 9 全文共 10 页 4327 字基于Hadoop的图像处理研究计算机与信息工程学院指导教师 讲师摘要 图像获取和存储技术的发展,使

2、图像数据大量增加,如何应对日益增多的海量数据,并进行有效的存储和快速处理,成为我们面临的主要难题。本文在Hadoop开源平台的基础上,利用分布式文件系统HDFS与分布式计算框架MapReduce,结合数字图像处理理论与HIPI开放式API,讨论了图像的分布式处理的相关技术,实现平台下海量图像数据的上传、下载、合并及灰度处理等功能。关键词 Hadoop;HIPI;图像处理;分布式1 绪论 图像作为一种信息媒介,它不仅没有语言的限制而且内容丰富。各个应用领域图像数量增长十分迅速,从天文观测到对地遥感,从电子商务到社交网站,每天都在产生TB级的图像。图像文件相比文本文件有占用空间大,处理速度慢的特点

3、,因此提高图像的处理效率对于具体应用来讲,有着重要的理论意义和实用价值。Hadoop默认处理文本文件,而图像文件的保存和处理方式与普通文本文件不一样,且Hadoop没有自带图像处理接口。况且Hadoop框架很适合大文件的操作,我们平时使用的图片的文件都比较小,如果这种小文件不经过处理直接上传,会十分影响性能。所以本文采用第三方开发的图像处理接口HIPI(Hadoop Image Processing Interface),它将来源的图像进行合并处理,并存储到HDFS上再进行MapReduce处理。本文主要研究基于Hadoop的图像处理问题,重点在于实现基本的分布式图像处理,并减少图像处理的时间

4、。首先简单描述了图像处理和云计算的国内研究现状以及本文的主要研究内容;其次介绍了Hadoop平台、HIPI以及平台的搭建和配置;最后实现了Hadoop HIPI图像处理,并做出总结和展望。2 Hadoop平台介绍及HIPI介绍 2.1 Hadoop平台介绍Apache Hadoop是一款支持数据密集型分布式应用并以Apache2.0许可协议发布的开源软件框架,它有很多分支,如HDFS、MapReduce和Hbase等,主要有可扩展性、低成本、高效性、可靠性等特点。HDFS(Hadoop Distributed File System) 是管理网络中跨多台计算机存储的文件系统,适合部署在廉价的普

5、通商业机器上。对外部客户机而言,HDFS跟传统的分级文件系统一样,可以进行文件的创建、删除、移动和重命名操作。HDFS是一种基于一组特定的节点构建的架构,这些节点包括一个NameNode和多个DataNode,NameNode在 HDFS 内部提供元数据服务,DataNode为HDFS 提供存储块。文件被分成块存储在HDFS中,这些块存储在多个DataNode中。块的大小(通常为64MB)和副本的数量可以在部署集群时设定。NameNode可以控制所有文件操作。在Hadoop上开发运行应用程序对于用户来讲并不难,处理海量数字图像更不在话下。任何MapReduce应用程序至少包含三个函数:一个Ma

6、p函数、一个Reduce函数和一个main函数。main函数将作业控制和文件的输入和输出结合起来。Hadoop 提供了为Hadoop应用程序开发人员提供许多工具,如大量的接口和抽象类,降低了调试和性能度量的难度。2.2 HIPI介绍图像处理方法可以分为两大类,即光学图像处理和数字图像处理。本文中所指图像处理为后者,是用计算机对各种数字图像信息进行处理,来得到某种预期的效果或者从图像中提取有用的信息。要想完成数字图像处理,首先要将图像文件存储于HDFS系统中。Hadoop默认处理的是大数据的文本文件,而图像文件保存和处理方式与普通文本文件不一样,Hadoop没有自带的图像处理接口。由于Hadoo

7、p框架对大文件的操作有优势,而我们平时使用的图片的文件都比较小,如果这种小文件不经过处理直接上传,会十分影响性能。HIPI是基于Hadoop MapReducede平台的一个大型的图像处理和计算机视觉库。它的设计是为了使大型的图像处理变得简单,提高图像处理的效率。HIPI由弗吉尼亚大学(The University of Virginia)的Chris Sweeney等人编写。它提供了分布式计算环境中执行数字图像处理任务所需要API,用于合并及切割图像文件。HIPI中提供了图像的数据类型、文件输入格式和片段读取方式,HIPI中最基本的类是HipiImageBundle类、FloatImage类

8、和CullMapper类。HIPI使用的输入类型被称为HipiImageBundle(HIB)。 ImageHeader和FloatImage分别是一个图像文件的元数据信息和数据信息,ImageBundleInputFormat和ImageBundleRecordReader分别是文件的输入格式和片段读取方式。图2-1 HIPI图像处理流程图为了提高某些程序的效率,HIPI允许用户指定一个挑选功能,用来剔除不符合标准的图像,如剔除大于1000万像素的图像或者长宽超过限制的图像。如图2-1所示,调用用户指定的CullMapper类对每个测试图像进行挑选。用户可以在安装过程中通过重新更改HipiJ

9、ob对象来修改图像处理的执行参数,并以此来修改MapReduce过程。3 Hadoop平台的搭建与开发平台配置3.1 实验平台及其基本配置整个实验平台由5台普通pc机和一个交换机构成,4个slave节点,内存为1G,磁盘 31.7G。1个master节点,内存8G,磁盘38.3G。操作系统为ubuntu-12.04,Hadoop 软件版本为Hadoop-2.3.0,java环境为jdk-6u41。为了方便运行,在master节点安装了Eclipse。3.2 分布式搭建各节点在集群中的角色,机器名,用户名及IP如下表所示:表3-1 集群网络配置hostname角色登录用户IP网关hapmaste

10、rmasterHadoop210.31.181.211210.31.181.1hapslave1slaveHadoop210.31.181.216210.31.181.1hapslave2slaveHadoop210.31.181.217210.31.181.1hapslave3slaveHadoop210.31.181.218210.31.181.1hapslave4slaveHadoop210.31.181.219210.31.181.1具体部署步骤如下:(1) 安装ubuntu12.04 系统,更新源,初始化root用户,关闭防火墙,按表3-1中个节点的配置修改IP,更改 hostnam

11、e和hosts,重启电脑使更改生效。表3-2 配置hadoo-env.sh和yarn-env.sh的参数参数取值说明JAVA_HOME/home/hadoop/jdk1.6.0_41设置Java安装目录表3-3 配置core-site.xml的参数参数取值说明fs.defauleFShdfs:/210.31.181.211:9000设置文件系统hadoop.tmp.dirfile:/home/hadoop/hadoop-2.3.0/tmphadoop的临时目录(2) 安装SSH ,并检查是否安装成功。(3) 安装JDK,修改环境变量,使更改生效,查看java版本。(4) 安装Hadoop,配置

12、环境变量,重载source /etc/profile,查看Hadoop版本,Step赋予用户对Hadoop安装目录可写的权限。(5) 控制Hadoop安装的配置文件有很多,这些配置文件都在Hadoop根目录下etc/hadoop/文件夹中,最重要的是以下几个配置文件:hadoop-env.sh为Bash脚本格式文件,用于记录运行Hadoop脚本要用的环境变量;core-site.xml为Hadoop配置XML格式文件,用于配置HadoopCore的配置项,如HDFS和MapReduce常用的I/O设置。上述配置文件的内容如上表3-2、表3-3。hdfs-site.xml为Hadoop配置XML

13、格式文件,用于配置Hadoop守护进程的配置项,包括Namenode、辅助Namenode和Datanode等;mapred-site.xml为Hadoop配置文件XML格式,用于配置MapReduce守护进程的配置项,包括jobtracker和tasktracker;slaves文件为纯文本格式,用于配置运行Datanode和tasktracker的机器列表,每行一个Datanode的hostname。上述配置文件的内容如下表3-4、表3-5和表3-6所示:表3-4 配置hdfs-site.xml的参数参数取值说明dfs.namenode.name.dirfile:/home/hadoop/

14、hadoop-2.3.0/dfs/nameNamenode工作目录dfs.namwnode.data.dirfile:/home/hadoop/hadoop-2.3.0/dfs/dataDatanode工作目录dfs.replication3文件块的副本数表3-5 配置mapred-site.xml的参数参数取值说明mapreduce.framework.nameyarnmap-reduce运行框架表3-6 配置slaves节点名参数取值说明slaveshapslave1hapslave2hapslave3hapslave4所有slave节点的hostname (6) 使用将hapmaster

15、的所有文件及配置复制到hapslave,并修改IP和hostname。(7) 生成新公钥,并复制到其他节点,重启SSH服务使其生效,并登陆。(8) 启动Hadoop集群,查看集群状态。3.3 开发平台配置(1) 进入安装包所在的文件夹,并解压安装包到Hadoop用户文件夹下。tar -zxvf eclipse-standard-luna-M2-linux-gtk.tar.gz -C /home/Hadoop/(2) 复制Hadoop-eclipse-plugin-2.3.0.jar到eclipse安装目录/plugins/下。 (3) 重启eclipse,配置Hadoop installati

16、on directory。 打开Window-Preferens,选择Hadoop Map/Reduce选项,在这个选项里配置Hadoop installation directory。配置完成后退出。(4) 配置Map/Reduce Locations。在Window-Show View中打开Map/Reduce Locations。在Map/Reduce Locations中新建一个Hadoop Location。在这个View中,右键-New Hadoop Location。在弹出的对话框中配置Location name为Hadoop,Map/Reduce Master Host为210

17、.31.181.211,Port为10020;DFS Master Port为9000。(5) 新建Map/Reduce项目,验证Hadoop插件是否安装成功。 File-New-Other-Map/Reduce Project项目名取为WordCount。复制 Hadoop-2.3.0-src/Hadoop-mapreduce-project/Hadoop-mapreduce-examples/src/main/java/org/apache/Hadoop/examples/WordCount.java到workspace刚刚新建的的项目文件夹下。 (6) 把hipi-dev.tar.gz中

18、3rdparty中的metadata-extractor-2.3.1.jar导入的到项目中去。(7) 将junit-4.11.jar导入到项目中。由于现在HIPI还有一些BUG,所以把hipi-dev.tar.gz中src的源码和experiments源码引入到eclipse的jar项目中,一方面便于学习源码,另一方面便于修改其中的问题。4 基于HIPI的图像处理实现4.1 上传通过MyAddImage.java在HDFS上新建一个HipiImageBundle hib,并将本地文件夹下所有图片通过文件遍历方法(共123.5M,297项)上传,合并为一个hib文件,生成test.hib(2.4

19、K)和test.hib.dat(117.8M)(图4-2中input文件夹下)。hib文件存储所有图像的元数据信息,而hib.dat文件存储图像数据。 该方法实现代码如下:public static void ReadAllFile() throws IOException Configuration conf=new Configuration(); HipiImageBundle hib=new HipiImageBundle(new Path(hdfs:/210.31.181.211:9000/input/test.hib), conf); hib.open(AbstractImageB

20、undle.FILE_MODE_WRITE,true); File f = null; f = new File(/home/hadoop/input/test/); File files = f.listFiles(); List list = new ArrayList(); for (File file : files) FileInputStream fis=new FileInputStream(file); hib.addImage(fis,ImageType.JPEG_IMAGE); 4.2 HIB文件转换为图像束文件图4-1 参数设置图4-2 DFS视图设置CreareSequ

21、enceFile.java运行的输入路径和输出路径,参数有两个,第一个参数为待转换的hib文件路径, 第二个参数为输出路径。参数设置如图4-1所示。使用CreareSequenceFile.java将上一步生成的hib文件(117.8M)转换成SequenceFile文件(39.9M,图4-2中part-r-00000)。4.3 灰度处理通过Img2Gray.java可以处理SequenceFile文件,输入有三个参数,第一个参数为输入文件路径,第二个参数是输出文件路径,输出文件为jpg格式,第三个参数是输入文件的格式。该方法可以处理的图像文件格式有四种:hib、har、small_files

22、、sequence。相同情况下处理sequence文件(即图像束文件)的速度较快。运行该程序得到经过灰度处理并且用hashcode存储的jpg文件,这一步通过convert(FloatImage.RGB2GRAY)和hashCode()实现。输出的文件名为 hashCode + .jpg。将上一步生成的图像束文件进行灰度处理,处理结果及比较如表4-1所示。表4-1 图像处理前后比较项目图4-4 处理前图4-5 处理后文件(缩放10%)文件名a1.jpg22511833.jpg大小527,630 字节282,025 字节原始尺寸高度:42.33cm 宽度:67.73cm高度:31.75cm 宽度

23、:50.8cm4.4 下载图4-3 Downloader.java数据处理过程运行Downloader.java可以从互联网下载图片,输入三个参数,第一个参数是存有待下载图片URL的文本文件,第二个参数是输出路径,下载的图像文件合并后将存放在这个文件夹,第三个参数是参与下载任务的节点数。如图4-3所示,该过程分四步来完成:首先,指定图像下载列表;其次,将待下载的RUL分成几组,并发送给Mapper;然后集群从互联网下载图像;最后将图像存储为HIPI图像束文件。4.5 HIB文件转换为jpg文件运行JpegFromHib.java,输入有两个参数,第一个参数是输入的hib文件的路径,第二个参数为

24、jpg文件的输出路径。5 总结与展望本文针对海量图像处理的问题,在高性能计算平台上搭建Hadoop集群环境,采用分布式计算技术来达到减少图像处理时间的目的,并实现了图像的基本的分布式处理,取得一定效果,在此过程中体现了Hadoop处理数据的优越性,但离预期的效果还有很大的差距,需要改进地方有很多: (1) 由于 HDFS 适合处理大数据文件,而一个图像文件的大小有限,为了处理大量图像数据,每次都要合并成一个序列化文件,这样做有很多弊端。所以需要学习HIPI的实现过程,并且修改及完善其功能。(2) 本文实现了简单的图像处理,这些简单的处理并没有什么实际应用意义,只是作为了解Hadoop图像处理的途径。今后应逐步加强和完善这个图像处理系统的功能,并提高其效率。致谢在这里我要感谢孟繁军老师,过去的四年中,孟老师不仅教会了我很多科学知识和学习方法,还深深地影响了我的人生观。感谢智敏老师,感谢我同学、朋友和家人支持我、鼓励我。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1