全景动态光场采集的分布式存储与管理
2013-10-08章清锋程鹤群周文晖
章清锋,程鹤群,孟 影,周文晖
(杭州电子科技大学计算机应用技术研究所,浙江杭州310018)
0 引言
全景动态光场采集与建模是计算机视觉领域近年来提出的一个研究热点,通过捕获场景的空间、时间、视角及光谱等高维视觉信息,增强和扩展了传统像机的数据采集能力,能全方位地采集真实场景信息。目前已提出的光场采集系统往往受制于自身软、硬件体系结构和采集机制等局限,通常只能扩展出全光函数的某一维或某几维信息,文献[1-2]提出了4维静态光场采集,文献[3]通过增加时间维度提出了5维动态光场采集。清华大学在此基础上引入表面反射场,提出了7维动态光场采集系统[4-5],但上述采集系统受硬件结构限制,缺乏高效的数据存储和管理机制,只能实现单目标静态或简单周期运动的光场采集,且系统软硬件系统可扩展性差,难以实现采集节点扩充和调整。本文针对复杂非规则多运动目标的高维光场信息采集与捕获,借鉴目前分布式数据存储和管理机制[6-7],设计并实现了一个面向大规模全景动态光场采集的分布式存储与管理系统。
1 动态光场采集的硬件架构
为确保捕获多运动目标的光场信息,设计并搭建了一个直径10 m,高7 m的穹窿形采集系统[8]。由于多运动目标在光场采集时比单目标存在更多遮挡,要求更高空间分辨率和更密集的视角采集,因而在采集系统内安置了3圈相机接口,最多可实现60个200万象素相机的同时采集。相机两个为一组,每圈有10组。同时安装有2 000个均匀分布在半球上的LED灯作为可变光源,以实现变光照采集,整个表面由易于背景抠像的蓝色幕布覆盖,满足了面向复杂非规则多运动对象,采集时间跨度大,更高空间分辨率和更密集的视角分布等更高的要求。
2 分布式存储与管理的软件架构
2.1 软件架构设计
系统软件架构分为数据库模块、主节点模块、采集节点管理表模块和采集节点模块4个部分,架构图如图1所示。数据库用来存放集群采集的光场数据的索引信息,光场采集的数据存放在各个采集节点上。主节点利用数据库来整个集群进行管理,提供用户界面,获得用户任务消息,转化为指令,发送给集群。采集节点管理表模块用来动态的接收和生成采集节点上的配置信息,方便监视集群系统状态和易于集群的扩展。采集节点接收主节点发来的指令,并采集光场数据,存储在本地,发送数据的索引信息给主节点。
图1 系统软件架构图
2.2 分布式采集和存储
为了通过对硬件的屏蔽达到分布式采集和存储的目的,采取对每一层涉及到的硬件层都进行屏蔽,留出上一层调用的接口。主节点对LED灯组的控制只需要对单片机主控制板发送LED灯组的编号和开关属性的相关信息,中间通过单片机主控制板对从单片机发送指令,对应单片机接收到指令后对相应的LED灯组进行相关的操作。采集的时候,主节点需要打开相机阵列,只需将打开相机的指令发到网络上,采集节点接收到指令,自动的调用硬件驱动来启动相机阵列,系统将采集的光场数据按照帧序列先存放在本地节点上,待采集完毕后,将这些信息打包发给主节点,以便管理。为了实现上述结构控制和数据流图,设计了两个不同的客户端部署在主节点和采集节点上,其工作流如图2所示。
图2 上层软件的工作流图
2.3 基于分布式采集和存储的数据管理
本系统中分布式管理由主节点来集中管理整个集群的光场数据的分布。采集节点在采集光场数据完成之后,将把这些数据以少量的关键字的形式打包发给主节点,并由主节点将这些关键字写入数据库。数据库的设计中还采用了提高数据写入速度的方法,如存储过程等。
由于光场数据在在时间、空间、光照信息上都具有关联性,所以要求在管理光场数据的时候必须具有时间检索和光照信息的检索。若需要某一时刻的光场数据,直接可以通过搜索数据库的时间索引来获得那一时刻的数据记录,然后由主节点将这些数据从集群上获得。
3 实验结果
实验环境:主节点和采集节点的操作系统均为Microsoft Windows XP Professional x64 Edition,数据库为SQL Server 2005 9.0.1399,网卡均为RTL8168E PCI-E Gigabit Ethernet NIC百兆网卡,相机的型号是Point Grey的GRAS-20S4C-C 2.0MP。实验测试的时候启用了6台采集节点,20个相机作为测试。
操作主节点启动相机阵列,为相机阵列的标定采集数据,实验数据如表1所示,每张图片的大小为1 024×768,格式为BBG。集群写入速率,即数据库的写入速率计算方法:写入数据库的最后一条记录时间与第一条记录时间差t,总共的记录条数n,那么速率v=n/t。
表1 实验结果
从表1中看出,在长时间高密度的采集条件下,并没有出现丢帧的现象。
4 结束语
本文提出的分布式存储与管理采集系统屏蔽了对硬件层的直接操作,在长时间高密度采集的条件下能够完整的采集光场数据。但是由于硬件上的限制和软件算法上的不足,本系统在数据恢复的时候,采用的是单线程的逐个轮询方式进行回传,数据的传输效率不高,这些方面都需要进一步的优化和改进。
[1]Levoy M,Hanrahan P.Light field rendering[C].New York:Association for Computing Machinery,1996:31 -42.
[2]Debevec P,McMillan L.Image-based modeling,rendering,and lighting[J].IEEE Computer Graphics and Applications,2002,22(2):24 -25.
[3]Wenger A,Gardner A,Tchou C,etal.Performance Relighting and Reflectance Transformation with Time-Multiplexed Illumination[J].Association for Computing Machinery Transactions on Graphics,2005,24(3):756 -764.
[4]曲震.变光照动态多视角采集系统的设计[D].北京:清华大学,2008.
[5]刘烨斌.动态光场的关键技术研究[D].北京:清华大学,2010.
[6]Gao Y,Zheng J L.Isolated distributed architecture for cloud-storage services based on structured strategy[J].Journal of Theoretical and Applied Information Technology,2012,46(1):78 -83.
[7]Prosser A,Cardoso G,Chramowicz J,etal.Distributed Data Acquisition and Storange Architecture for the SuperNova Acceleration Probe[J].Nuclear Science,2008,55(1):246 - 250.
[8]任浩然,周文晖.动态多光照三维采集系统设计与实现[J].杭州电子科技大学学报,2012,32(6):65-69.