周文晖,程鹤群,孟 影,章清锋
( 杭州电子科技大学计算机应用技术研究所,浙江 杭州 310018)
基于MapReduce的图像序列可视外壳绘制方法
周文晖,程鹤群,孟影,章清锋
( 杭州电子科技大学计算机应用技术研究所,浙江 杭州 310018)
摘要:设计并实现了一种基于MapReduce架构的图像序列可视外壳并行绘制方法。首先,20个像机组成的环形像机阵列对物体进行图像采集。其次,获取物体的多视角图像序列后,使用一个6个节点的计算机集群对物体的可视外壳进行并行绘制。针对数据读写受HDFS性能制约的问题,采用基于分布式内存方法进一步提升速度。实验结果表明,MapReduce框架能很好地应用于可视外壳的绘制。与传统单机处理相比,MapReduce框架性能不仅具有很大优势,而且其分布式内存可以很好地解决HDFS的磁盘约束问题,带来更大的性能提升。
关键词:可视外壳;分布式计算;大数据;实时性
0引言
基于图像的可视外壳(Image-Based Visual Hull,IBVH)绘制是多视角三维重建的一个关键算法,当拍摄视角足够多时,空间物体的可视外壳是该物体的合理逼近[1]。如何对像机采集得到的图像序列进行快速地轮廓提取以及视觉外壳求交一直是可视外壳在动态三维场景重构方面的关键问题[2]。早期通过对极几何技术和GPU并行技术对可视外壳绘制进行加速[3],但都只局限于单机环境的性能加速,也没有将分布式采集过程考虑在内。在动态三维场景可视外壳绘制方面,由全光模拟系统[4],再到动态多光照三维光场采集系统[5],可视外壳绘制过程中虽然将分布式采集考虑在内,但是并没有考虑密集视角大数据量时重建的实时性。随着大数据相关应用日渐成熟,在简单的图片处理领域,可以搭建Hadoop集群运用MapReduce计算模型对卫星遥感图像进行处理[6],效率上有非常大的提升[7]。本文设计并实现了一个基于MapReduce的可视外壳绘制系统,采用分布式架构对图像序列的可视外壳进行绘制。分布式架构包含分布式计算和分布式文件系统。实验结果表明,所设计系统能高效地对动态三维场景进行可视外壳的绘制,而且利用集群的运算能力,性能方面可以达到传统单机的几十甚至几百倍。
1可视外壳绘制流程
可视外壳的概念最早于1994年提出,即由空间物体的所有已知侧影轮廓线决定并形成的该空间物体的包络[8]。IBVH算法利用各视点的轮廓图像,以及对应校准参数,计算物体表面的三维模型,并提供三维模型的一个可视化外壳。可视化外壳的绘制主要包括以下两个步骤,流程如图1所示。
1)背景分割。首先由20个像机组成的环形像机阵列对包含人体的场景进行拍摄,得到20张前景图像;然后对没有人体的场景进行拍摄,得到20张背景图像。对相同视角下的前景图像和背景图像进行背景分割即可得到每个视角下人体的轮廓;
2)对象建模。将目标像机的3D射线投影到参考图像平面,确定投影射线与参考图像轮廓图相交的区间,将得到的区间反投影到3D射线,并与其它参考图像反投影得到的3D射线上的区间求交集。
图1 可视外壳绘制流程图
2基于MapReduce的可视外壳绘制系统
系统架构从下到上分为硬件层、软件层和算法层3个部分。整体架构图如图2所示。硬件层包含计算机集群、环形像机阵列、传输网络和像机同步触发装置。软件层中的采集系统对目标进行图像序列采集,并将采集得到的图像序列存放在Linux文件系统或者HDFS中。MapReduce计算框架对文件系统中的图像序列进行处理并将生成的可视外壳存放在文件系统中。算法层为软件层提供算法支持,主要包含色键抠像、多视几何、IBVH和纹理映射。
图2 系统整体架构图
MapReduce是一种分布式并行计算框架,用于处理大量密集数据。MapReduce程序通常把输入的数据切分为若干独立的数据块,由多台计算机来并行处理,从而让程序获得更好的性能。可视外壳生成系统中,MapReduce并行计算模块设计如图3所示。计算模块从文件系统中读取数据,经过处理包括背景分割和对象建模等,并最终输出重建结果。首先,采集系统控制像机对物体进行采集,每个像机采集得到图像的像素为1 024×768。像机采集图片后,将图片上传存放在HDFS中。另外,20个像机的背景图像存放在HDFS中,供后期map中的背景分隔算法读取。
图3 MapReduce并行计算模块设计图
当Map任务执行时,每张采集图像作为一个分片输入到一个Map中,Map根据输入的前景图片从HDFS中读取相应像机的背景图片。抠图算法将采集得到的图像前景减去背景进行分割,提取采集对象轮廓后输出。Shuffle阶段后,根据图片的帧号进行Reduce。Reduce阶段进行IBVH算法,将得到的对象轮廓进行对象建模。IBVH是一种成熟的Visual Hull生成算法,算法可以得到物体的三维点云。Reduce运行IBVH后将点云存储在HDFS上。
图3中,背景图像每次都要从磁盘或者分布式文件系统中读取。为了提高读取速度以及减少数据输入量,将分布式内存引入MapReduce并行中,这里分布式内存基于Spark大数据处理框架来实现[9]。背景图像包放入分布式内存后,每次进行轮廓提取,背景图像从分布式内存中直接读取。轮廓提取时,每张采集图像对应一张背景图像,因此背景图像放入分布式内存后,总的数据输入量变为原先数据输入量的一半,极大地减少了磁盘的读取时间,提高了程序的整体性能。
3实验结果
本文的实验环境由6台用千兆网络连接的PC机组成,其中一台PC机作为Master节点,其他5台PC机作为Slave节点。节点上操作系统为CentOS6.4,代码编译采用JDK1.6,Hadoop版本是2.3。主节点和从节点的配置如表1所示。
表1 主节点/从节点配置
实验首先对比了基于Hadoop实现的MapReduce并行可视外壳生成系统和传统单机环境下的可视外壳生成系统的性能。两种情况下,采用了相同的抠图算法和可视外壳绘制算法。实验结果如表2所示。表2中列出了不同数据输入量时,PC和MapReduce下的处理时间和性能提升比。由于集群环境波动性较大,针对每个数据输入,运行3次取平均值来获得最终的结果。
表2 Hadoop与单机性能对比
其次,对比了基于Spark实现的分布式内存并行方案和Hadoop并行方案的性能差异,实验结果如表3所示。
表3 Hadoop方案与Spark方案性能对比
综上所述,单机、Hadoop方案、Spark方案效率对比如图4所示。
图4 单机、Hadoop方案、Spark方案效率对比图
4结束语
本文将大数据技术应用于可视外壳绘制,基于MapReduce计算框架设计并实现了一个针对多图像序列可视外壳的分布式绘制系统。实验结果表明MapReduce框架能够很好地应用于可视外壳绘制领域。对于数据密集和计算密集型的可视外壳绘制,本文设计并实现的可视外壳绘制系统较之传统单机系统,可以带来很大的性能提升。本系统不足的地方是在IBVH算法上没有进行更细的并行化,后期需优化改进。
参考文献
[1]朱芹.基于多视点图像的三维重构算法的研究及实现[D].兰州:兰州大学,2009:16-22.
[2]Matusik W,Buehler C,Raskar R,et al.Image-based visual hulls[C]//Proceedings of the 27th annual conference on Computer graphics and interactive techniques.New York:ACM Press/Addison-Wesley Publishing Co.,2000:369-374.
[3]Waizenegger W,Feldmann I,Eisert P,et al.Parallel high resolution real-time visual hull on GPU[C]//Image Processing (ICIP),2009 16th IEEE International Conference on.Cairo:IEEE,2009:4301-4304.
[4]曲震.变光照动态多视角采集系统的设计[D].北京:清华大学,2008:7-16.
[5]任浩然,周文晖.动态多光照三维光场采集系统设计与实现[J].杭州电子科技大学学报,2013,32(6):65-68.
[6]Almeer M H.Cloud Hadoop Map Reduce For Remote Sensing Image Analysis[J].Journal of Emerging Trends in Computing and Information Sciences,2012,3(4):637-644.
[7]Wang P,Wang J,Chen Y,et al.Rapid processing of remote sensing images based on cloud computing[J].Future Generation Computer Systems,2013,29(8):1963-1968.
[8]Laurentini A.The visual hull concept for silhouette-based image understanding[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,1994,16(2):150-162.
[9]Zaharia M,Chowdhury M,Das T,et al.Resilient distributed datasets:A fault-tolerant abstraction for in-memory cluster computing[C]//Proceedings of the 9th USENIX conference on Networked Systems Design and Implementation.CA,USA:USENIX Association Berkeley,2012:2-2.
Image Sequences Visual Hull Reconstruction Based on MapReduce
Zhou Wenhui,Cheng Hequn,Meng Ying,Zhang Qingfeng
(InstituteofComputerApplicationTechnology,HangzhouDianziUniversity,HangzhouZhejiang310018,China)
Abstract:This paper designs and implements an image sequences visual hull reconstruction method based on MapReduce framework.First we have built a circular camera array which contains 20 cameras to get the multi-view images.Then a computer cluster with 6 nodes has been set up to parallel compute the visual hulls.Furthermore distributed memory is used to decrease the performance constraints between Map and Reduce data transfer.Experimental results show that MapReduce framework can be well applied in visual hull reconstruction.Compared with the stand-alone environment,the MapReduce framework has great advantages on performance and it is showing that distributed memory can bring a better performance to traditional MapReduce.
Key words:visual hull;distributed computation;big data;real-time
中图分类号:TP316.4
文献标识码:A
文章编号:1001-9146(2015)06-0055-05
作者简介:周文晖(1977-),男,浙江天台人,副教授,计算机视觉.
基金项目:国家国际科技合作专项资助项目(2014DFA12040);浙江省自然科学基金重点资助项目(LZ14F020003);浙江省重点创新团队资助项目(2011R50009)
收稿日期:2014-11-05
DOI:10.13954/j.cnki.hdu.2015.06.012