论文部分内容阅读
作为编织未来梦想的机构,微软研究院创办至今已经走过了20个年头,它当年研发的很多技术都已经应用到了现今的产品中,并在实实在在地改变着我们的生活。然而如果我们去了解微软研究院正在研发的技术,会发现未来的科技生活还将发生翻天覆地的改变。
虚拟与现实的桥梁
Kinect的出现使游戏的体验迈入了完全不同的层次,它标志着人与设备的交互进入了全新的时代。然而就像我们之前所介绍的,Kinect进入游戏领域仅仅是牛刀小试,Kinect真正的应用前景远比现在广阔得多,例如借助微软研究院正在研发的MirageBlocks技术,就可能将虚拟与现实的融合度带入全新的阶段。
Kinect的硬件不仅包含普通的二维摄像头,还包括能够获取景物深度信息的传感器,深度信息能够帮助数字设备更好地感知这个世界,用通俗的方式理解,深度信息能够告诉计算机面前物体的每一个点与摄像头的距离,将这些点的深度信息对应到一个三维空间中后,即可得到该物体的三维模型。以往建立物体的三维模型主要有两种手段,其一是在三维建模软件中绘制,另外一种方式是使用工业级的三维物体扫描设备进行扫描建模。但是这两种方式实现的难度都很大,成本也比较高。而借助并不昂贵的Kinect,我们可以轻松地为一个物体生成虚拟的三维模型,轻松地将三维建模技术引入民用级市场。
MirageBlocks技术巧妙地将Kinect软硬件组件和快门式三维投影组件联系起来,组成了一个有机的整体。它通过位于一侧的Kinect硬件捕获物体的三维模型,之后将三维模型与二维的物体贴图组合在一起,生成一个三维的虚拟物体。然后再将这个虚拟物体通过三维投影组件投射出来,用户在戴上三维快门眼镜后将能够看到立体的虚拟物体。更重要的是,通过算法优化,微软研究院的研究员将MirageBlocks技术做到了完全实时化,这意味着Kinect捕捉到的物体将能够马上生成对应的三维虚拟物体,它甚至能实时捕捉一个运动物体,并生成虚拟的三维动画。目前,MirageBlocks的实验模型还仅仅使用了一个Kinect设备,这意味着它仅能生成物体面向Kinect部分的三维模型。MirageBlocks技术将拥有十分广阔的应用前景,在微软研究院的演示中,我们可以分别将一块块积木摆放在MirageBlocks的展示台上扫描,然后快速地将生成的虚拟三维积木块拼接成一个完整的“建筑”,数字化的三维物体可以随意放大、缩小或旋转。这意味着我们可以将现实世界中不同尺寸、材质的部件都扫描到一个虚拟世界中,然后根据需要进行修改和拼接。在建筑、工程、工业设计甚至交互游戏中,这种应用都将具有很大的价值。另外,MirageBlocks的实时特性还能使它可以被使用在电话会议等应用中,未来我们将可以在通话中看到对方的三维虚拟模型,获得更加身临其境的体验。
虚拟的真实世界
实际上MirageBlocks技术还只是将某个物体进行三维虚拟化,KinectFusion的目标则更加宏大,即将整个世界虚拟化。KinectFusion的设计理念很简单,如果说将Kinect放在固定位置,仅仅能获取Kinect前方物体部分的三维虚拟模型的话,那么令Kinect运动起来,将可以获得并生成整个房间,甚至整个世界的虚拟三维模型。
KinectFusion技术允许用户手持Kinect在一定范围内走动,拍摄下周围景物的全貌,并可以实时地获取这些景物的三维模型,在短短几秒内借助这些三维模型生成虚拟的三维世界。而且用户在Kinect镜头前的动作也可以被捕捉和识别,使用户直接可以与三维世界中的物体进行生动的交互。例如在微软研究院的演示中,一个手持Kinect的用户拍下了桌上的茶壶、书本和布偶,在一边的计算机画面中就可以看到一个完全虚拟的三维画面被生成出来,光影效果和物体细微的凹凸都能得到良好的再现。当用户用手在真实环境中的墙面上比划了几下之后,在虚拟的三维场景中墙面上就可以多出一个手绘的图案。这一技术在三维电影制作和虚拟现实游戏等应用中将有十分广阔的前景,未来在它的帮助下我们将有可能把自己的家做成CS游戏的对战地图。
这项技术通过不断记录Kinect在6个自由度空间(6DOF)中的实时变化,并将这些变化数据与Kinect捕获的三维数据相互结合,实现将被拍摄物体的多个角度的三维模型相互拼接,进而形成完整且连贯的三维场景。为了实现三维景物实时生成和用户互动功能,微软研究院的研究员利用了GPGPU(通用图形处理器)的通用计算技术,借助GPU强大的并行计算能力在最短的时间内完成场景捕捉和三维画面的生成。
“拼”出的精彩
硬件设备的开发一直有一套非常复杂的流程,用户首先要对硬件的电路原理非常了解,并需要自己手动设计电路板、选购电子元件和进行焊接制作,之后才能进行功能设计。这使得绝大部分有开发和设计欲望的普通人望而却步,为了让更多的人能够尽情地释放自己的想象力,而不被硬件设计所累,微软研究院的研究员开发出了.NET Gadgeteer。
.NET Gadgeteer是一套用于创造不同用途小型电子设备的开源工具集,为没有电子硬件基础的用户设计和开发小型电子模块或嵌入式设备提供一个快速且容易构建的原型机平台。它使用.NET Micro Framework语言和Visual Studio/Visual C# Express工具进行软件功能代码的编写,.NET Micro Framework就像是嵌入式领域内的脚本语言,可以大大提高硬件开发效率,节省开发时间。这使得开发者构建一个功能齐全设备的时间缩短为几个小时,而不再是原来的几天或几周。.NET Gadgeteer包括容易搭建和使用的硬件功能模块,每个模块都可以提供某个功能,如显示图片、播放音乐、采集图像、获取环境参数等。
.NET Gadgeteer能够帮助商业用户快速完成小型电子功能模块的开发,也可以用于教学,帮助学生和业余爱好者快速学习和了解电子硬件的开发过程。
无线通信“软”天线
由微软亚洲研究院研究员所研发的软件无线技术(SORA,Software Radio)则有望彻底解决目前无线通信所遇到的升级难的问题,今年1月份的国际计算机学会的会刊《ACM通信》特别介绍了SORA系统,他们认为该技术论文是近年来无线领域最重要的论文之一。
这项技术的核心思想就是使用软件技术来模拟无线通信协议标准,如IEEE 802.11 a/b/g/n,也就是尽可能地使用通用处理器,如我们电脑或手机中的CPU来进行网络信号的处理和计算,而不再使用无线网卡上的硬件芯片进行计算。在具体实现方法上,微软亚洲研究院的研究员们尝试将软件参与的部分尽可能贴进无线通信的最前端和最底层。目前所有的无线通信技术都要涉及到数模转换的过程,也就是将模拟的电磁波转换成数字信号,再交由专用的网络芯片来处理。而在SORA技术中,传统的网络通信模块将只保留数模转换的部分和天线,数字信号的处理工作则完全交给软件和通用处理器,也就是说传统无线网络协议中的数据包处理工作全部由软件模拟的无线模块来完成,硬件模块只负责处理最原始的电磁波信号。这样一来,只要天线和数模转换模块能够满足工作频段的要求,如2.4GHz或5GHz,那么软件就可以模拟支持运行在这些频段上的所有网络协议标准,而且只要新的网络协议仍工作在这些旧有频段上,那么SORA平台就可以通过升级软件的方式对其实现支持。开发人员甚至可以自主订立全新标准的无线通信规范,只需保证两套SORA平台之间的软件平台支持的是同一标准就可以保证正常通讯。
从原理上看,SORA技术在实现上并不复杂,但是事实上用软件模拟硬件存在很多技术上的难点,软件模拟硬件的性能往往不佳。为了解决这个问题,微软亚洲研究院的研究员们做过很多尝试,最终的解决方案是利用现在的多核心处理器及其强大的计算力来保证数据通信的实时性。其次,SORA技术还要对传统的处理算法进行改良以提升效率。例如传统的DSP处理算法都基于硬件电路,在迁移到软件平台上后就要采用一些技巧进行优化,通过这些优化使信号处理算法能够更好地利用目前处理器的并行计算能力。
SORA能够帮助我们更灵活地利用现在的无线频段资源,例如一个传统的IEEE 802.11g协议规定标称传输速度是54Mb/s,而如果我们此时网络的应用仅仅是语音通话,那么所需要的带宽可能仅仅是300Kb/s,此时大量的频段资源会被浪费,而SORA软件技术则可以根据应用的实际需要灵活地调整数据带宽,提高资源利用率。而且如果将频段管理与公司的整个IT管理系统相结合的话,IT系统将可以像分配IP地址那样为公司内部需要交换数据的两个无线通信设备分配特定的频段和带宽,这样就能最大限度地避免干扰。
SORA的软件可升级能力还可以解决目前现有标准一经制定就修改困难的问题,未来的无线通信标准可以像现在的操作系统一样,随时通过更新修补漏洞。SORA还将能够推动物联网的发展,家用电器设备不再会遇到因为无线通信标准不统一而导致不同品牌家电无法接入同一个物联网的问题了,这些家电只需具备基本的无线天线和通用处理器,之后在未来安装或升级相同的软件就可以实现互相通信。
为搜索提速
随着使用搜索引擎的用户和设备的增多,需要想尽办法提高搜索引擎服务器的数据吞吐量。这包括两个方面的指标,一是单台服务器可以索引的网页数量,二是单台服务器每秒可以支持的搜索次数。一般来说,会使用这两个指标的乘积作为索引服务器的效能指标。
微软亚洲研究院的研究员们为了提升Bing搜索的响应速度,建立了新的Tiger搜索平台,它将原来传统内存+机械硬盘的结构改为内存+SSD(固态硬盘)+机械硬盘的结构。利用SSD出众的突发随机读写性能和较好的数据吞吐带宽来提升服务器的效能指标。但是改变搜索引擎服务器结构并不是Tiger提升效能指标的唯一手段,更重要的是如何利用SSD的特性,使效能指标提升可以做到最大化。以往最简单的SSD利用方式就是将它作为速度较慢的内存或者速度较快的机械硬盘来使用,虽然这两种方法都能在一定程度上提升搜索性能,但是都无法充分发挥出SSD的潜力,因此微软研究院的研究员们根据新的硬件架构,彻底改写了搜索引擎数据的存储方式。他们借助针对搜索引擎长期研究获得的统计数据,通过综合分析数据访问的频度,将最经常访问的少量数据放在内存中,将最不常访问的绝大部分数据放在机械硬盘中,将访问频度适中、容量适中的内容放在SSD中,这些内容每秒读写频次、整体访问的数据量能够刚好与SSD的特性相匹配,以充分发挥SSD的潜力,最大程度地提升搜索引擎的效能指标。
通常搜索引擎要做两件事,一是找到包含关键词的网页,二是计算这些网页的相关度。为了尽可能地提高效能,微软研究院的研究员们会根据具体数据的类型进行分类放置。例如将他们找网页用的数据结构主要放在内存中,把计算相关度的数据主要放在SSD中。根据搜索引擎数据访问强度的变化,研究员们还会定期调整Tiger上的数据存放位置以使整个搜索系统与目前用户的使用习惯相匹配。最终的结果是,Tiger系统在不改变原来服务器计算力的情况下,将搜索响应效率提升了近一倍。
留住历史精彩
世界各国的文化遗产和自然遗产正遭受到各种破坏,为此微软亚洲研究院发起的“文化遗产数字化(eHeritage)”主题研究计划则在借助数字化手段保护文化遗产方面做出了有益尝试。目前eHeritage已经产生了很多项目成果,例如采用微软亚洲研究院基础研究项目Gigapixel Camera的技术,针对敦煌莫高窟复杂的洞窟空间进行二次改良的“飞天号”十亿级像素数字相机系统,它能够生成分辨率高达13亿像素的高质量图像,可用于文物的高精度数字化。
微软亚洲研究院还尝试使用更好的数字方式来展现文化遗产。例如传统的数字图片很难展现出玉器与瓷器的光泽与质感,为了解决这个问题,微软亚洲研究院的研究员们首次提出了利用GPU加速的Diffusion Equation实时求解技术,用扩散方程(Diffusion Equation)来描述光线在玉器中的传播过程,实现逼真的实时半透明材质绘制,更好地展现了玉器晶莹剔透的质地。
责任编辑:李涛 li_tao@chip.cn
收稿日期:2011-10-20
虚拟与现实的桥梁
Kinect的出现使游戏的体验迈入了完全不同的层次,它标志着人与设备的交互进入了全新的时代。然而就像我们之前所介绍的,Kinect进入游戏领域仅仅是牛刀小试,Kinect真正的应用前景远比现在广阔得多,例如借助微软研究院正在研发的MirageBlocks技术,就可能将虚拟与现实的融合度带入全新的阶段。
Kinect的硬件不仅包含普通的二维摄像头,还包括能够获取景物深度信息的传感器,深度信息能够帮助数字设备更好地感知这个世界,用通俗的方式理解,深度信息能够告诉计算机面前物体的每一个点与摄像头的距离,将这些点的深度信息对应到一个三维空间中后,即可得到该物体的三维模型。以往建立物体的三维模型主要有两种手段,其一是在三维建模软件中绘制,另外一种方式是使用工业级的三维物体扫描设备进行扫描建模。但是这两种方式实现的难度都很大,成本也比较高。而借助并不昂贵的Kinect,我们可以轻松地为一个物体生成虚拟的三维模型,轻松地将三维建模技术引入民用级市场。
MirageBlocks技术巧妙地将Kinect软硬件组件和快门式三维投影组件联系起来,组成了一个有机的整体。它通过位于一侧的Kinect硬件捕获物体的三维模型,之后将三维模型与二维的物体贴图组合在一起,生成一个三维的虚拟物体。然后再将这个虚拟物体通过三维投影组件投射出来,用户在戴上三维快门眼镜后将能够看到立体的虚拟物体。更重要的是,通过算法优化,微软研究院的研究员将MirageBlocks技术做到了完全实时化,这意味着Kinect捕捉到的物体将能够马上生成对应的三维虚拟物体,它甚至能实时捕捉一个运动物体,并生成虚拟的三维动画。目前,MirageBlocks的实验模型还仅仅使用了一个Kinect设备,这意味着它仅能生成物体面向Kinect部分的三维模型。MirageBlocks技术将拥有十分广阔的应用前景,在微软研究院的演示中,我们可以分别将一块块积木摆放在MirageBlocks的展示台上扫描,然后快速地将生成的虚拟三维积木块拼接成一个完整的“建筑”,数字化的三维物体可以随意放大、缩小或旋转。这意味着我们可以将现实世界中不同尺寸、材质的部件都扫描到一个虚拟世界中,然后根据需要进行修改和拼接。在建筑、工程、工业设计甚至交互游戏中,这种应用都将具有很大的价值。另外,MirageBlocks的实时特性还能使它可以被使用在电话会议等应用中,未来我们将可以在通话中看到对方的三维虚拟模型,获得更加身临其境的体验。
虚拟的真实世界
实际上MirageBlocks技术还只是将某个物体进行三维虚拟化,KinectFusion的目标则更加宏大,即将整个世界虚拟化。KinectFusion的设计理念很简单,如果说将Kinect放在固定位置,仅仅能获取Kinect前方物体部分的三维虚拟模型的话,那么令Kinect运动起来,将可以获得并生成整个房间,甚至整个世界的虚拟三维模型。
KinectFusion技术允许用户手持Kinect在一定范围内走动,拍摄下周围景物的全貌,并可以实时地获取这些景物的三维模型,在短短几秒内借助这些三维模型生成虚拟的三维世界。而且用户在Kinect镜头前的动作也可以被捕捉和识别,使用户直接可以与三维世界中的物体进行生动的交互。例如在微软研究院的演示中,一个手持Kinect的用户拍下了桌上的茶壶、书本和布偶,在一边的计算机画面中就可以看到一个完全虚拟的三维画面被生成出来,光影效果和物体细微的凹凸都能得到良好的再现。当用户用手在真实环境中的墙面上比划了几下之后,在虚拟的三维场景中墙面上就可以多出一个手绘的图案。这一技术在三维电影制作和虚拟现实游戏等应用中将有十分广阔的前景,未来在它的帮助下我们将有可能把自己的家做成CS游戏的对战地图。
这项技术通过不断记录Kinect在6个自由度空间(6DOF)中的实时变化,并将这些变化数据与Kinect捕获的三维数据相互结合,实现将被拍摄物体的多个角度的三维模型相互拼接,进而形成完整且连贯的三维场景。为了实现三维景物实时生成和用户互动功能,微软研究院的研究员利用了GPGPU(通用图形处理器)的通用计算技术,借助GPU强大的并行计算能力在最短的时间内完成场景捕捉和三维画面的生成。
“拼”出的精彩
硬件设备的开发一直有一套非常复杂的流程,用户首先要对硬件的电路原理非常了解,并需要自己手动设计电路板、选购电子元件和进行焊接制作,之后才能进行功能设计。这使得绝大部分有开发和设计欲望的普通人望而却步,为了让更多的人能够尽情地释放自己的想象力,而不被硬件设计所累,微软研究院的研究员开发出了.NET Gadgeteer。
.NET Gadgeteer是一套用于创造不同用途小型电子设备的开源工具集,为没有电子硬件基础的用户设计和开发小型电子模块或嵌入式设备提供一个快速且容易构建的原型机平台。它使用.NET Micro Framework语言和Visual Studio/Visual C# Express工具进行软件功能代码的编写,.NET Micro Framework就像是嵌入式领域内的脚本语言,可以大大提高硬件开发效率,节省开发时间。这使得开发者构建一个功能齐全设备的时间缩短为几个小时,而不再是原来的几天或几周。.NET Gadgeteer包括容易搭建和使用的硬件功能模块,每个模块都可以提供某个功能,如显示图片、播放音乐、采集图像、获取环境参数等。
.NET Gadgeteer能够帮助商业用户快速完成小型电子功能模块的开发,也可以用于教学,帮助学生和业余爱好者快速学习和了解电子硬件的开发过程。
无线通信“软”天线
由微软亚洲研究院研究员所研发的软件无线技术(SORA,Software Radio)则有望彻底解决目前无线通信所遇到的升级难的问题,今年1月份的国际计算机学会的会刊《ACM通信》特别介绍了SORA系统,他们认为该技术论文是近年来无线领域最重要的论文之一。
这项技术的核心思想就是使用软件技术来模拟无线通信协议标准,如IEEE 802.11 a/b/g/n,也就是尽可能地使用通用处理器,如我们电脑或手机中的CPU来进行网络信号的处理和计算,而不再使用无线网卡上的硬件芯片进行计算。在具体实现方法上,微软亚洲研究院的研究员们尝试将软件参与的部分尽可能贴进无线通信的最前端和最底层。目前所有的无线通信技术都要涉及到数模转换的过程,也就是将模拟的电磁波转换成数字信号,再交由专用的网络芯片来处理。而在SORA技术中,传统的网络通信模块将只保留数模转换的部分和天线,数字信号的处理工作则完全交给软件和通用处理器,也就是说传统无线网络协议中的数据包处理工作全部由软件模拟的无线模块来完成,硬件模块只负责处理最原始的电磁波信号。这样一来,只要天线和数模转换模块能够满足工作频段的要求,如2.4GHz或5GHz,那么软件就可以模拟支持运行在这些频段上的所有网络协议标准,而且只要新的网络协议仍工作在这些旧有频段上,那么SORA平台就可以通过升级软件的方式对其实现支持。开发人员甚至可以自主订立全新标准的无线通信规范,只需保证两套SORA平台之间的软件平台支持的是同一标准就可以保证正常通讯。
从原理上看,SORA技术在实现上并不复杂,但是事实上用软件模拟硬件存在很多技术上的难点,软件模拟硬件的性能往往不佳。为了解决这个问题,微软亚洲研究院的研究员们做过很多尝试,最终的解决方案是利用现在的多核心处理器及其强大的计算力来保证数据通信的实时性。其次,SORA技术还要对传统的处理算法进行改良以提升效率。例如传统的DSP处理算法都基于硬件电路,在迁移到软件平台上后就要采用一些技巧进行优化,通过这些优化使信号处理算法能够更好地利用目前处理器的并行计算能力。
SORA能够帮助我们更灵活地利用现在的无线频段资源,例如一个传统的IEEE 802.11g协议规定标称传输速度是54Mb/s,而如果我们此时网络的应用仅仅是语音通话,那么所需要的带宽可能仅仅是300Kb/s,此时大量的频段资源会被浪费,而SORA软件技术则可以根据应用的实际需要灵活地调整数据带宽,提高资源利用率。而且如果将频段管理与公司的整个IT管理系统相结合的话,IT系统将可以像分配IP地址那样为公司内部需要交换数据的两个无线通信设备分配特定的频段和带宽,这样就能最大限度地避免干扰。
SORA的软件可升级能力还可以解决目前现有标准一经制定就修改困难的问题,未来的无线通信标准可以像现在的操作系统一样,随时通过更新修补漏洞。SORA还将能够推动物联网的发展,家用电器设备不再会遇到因为无线通信标准不统一而导致不同品牌家电无法接入同一个物联网的问题了,这些家电只需具备基本的无线天线和通用处理器,之后在未来安装或升级相同的软件就可以实现互相通信。
为搜索提速
随着使用搜索引擎的用户和设备的增多,需要想尽办法提高搜索引擎服务器的数据吞吐量。这包括两个方面的指标,一是单台服务器可以索引的网页数量,二是单台服务器每秒可以支持的搜索次数。一般来说,会使用这两个指标的乘积作为索引服务器的效能指标。
微软亚洲研究院的研究员们为了提升Bing搜索的响应速度,建立了新的Tiger搜索平台,它将原来传统内存+机械硬盘的结构改为内存+SSD(固态硬盘)+机械硬盘的结构。利用SSD出众的突发随机读写性能和较好的数据吞吐带宽来提升服务器的效能指标。但是改变搜索引擎服务器结构并不是Tiger提升效能指标的唯一手段,更重要的是如何利用SSD的特性,使效能指标提升可以做到最大化。以往最简单的SSD利用方式就是将它作为速度较慢的内存或者速度较快的机械硬盘来使用,虽然这两种方法都能在一定程度上提升搜索性能,但是都无法充分发挥出SSD的潜力,因此微软研究院的研究员们根据新的硬件架构,彻底改写了搜索引擎数据的存储方式。他们借助针对搜索引擎长期研究获得的统计数据,通过综合分析数据访问的频度,将最经常访问的少量数据放在内存中,将最不常访问的绝大部分数据放在机械硬盘中,将访问频度适中、容量适中的内容放在SSD中,这些内容每秒读写频次、整体访问的数据量能够刚好与SSD的特性相匹配,以充分发挥SSD的潜力,最大程度地提升搜索引擎的效能指标。
通常搜索引擎要做两件事,一是找到包含关键词的网页,二是计算这些网页的相关度。为了尽可能地提高效能,微软研究院的研究员们会根据具体数据的类型进行分类放置。例如将他们找网页用的数据结构主要放在内存中,把计算相关度的数据主要放在SSD中。根据搜索引擎数据访问强度的变化,研究员们还会定期调整Tiger上的数据存放位置以使整个搜索系统与目前用户的使用习惯相匹配。最终的结果是,Tiger系统在不改变原来服务器计算力的情况下,将搜索响应效率提升了近一倍。
留住历史精彩
世界各国的文化遗产和自然遗产正遭受到各种破坏,为此微软亚洲研究院发起的“文化遗产数字化(eHeritage)”主题研究计划则在借助数字化手段保护文化遗产方面做出了有益尝试。目前eHeritage已经产生了很多项目成果,例如采用微软亚洲研究院基础研究项目Gigapixel Camera的技术,针对敦煌莫高窟复杂的洞窟空间进行二次改良的“飞天号”十亿级像素数字相机系统,它能够生成分辨率高达13亿像素的高质量图像,可用于文物的高精度数字化。
微软亚洲研究院还尝试使用更好的数字方式来展现文化遗产。例如传统的数字图片很难展现出玉器与瓷器的光泽与质感,为了解决这个问题,微软亚洲研究院的研究员们首次提出了利用GPU加速的Diffusion Equation实时求解技术,用扩散方程(Diffusion Equation)来描述光线在玉器中的传播过程,实现逼真的实时半透明材质绘制,更好地展现了玉器晶莹剔透的质地。
责任编辑:李涛 li_tao@chip.cn
收稿日期:2011-10-20