65.9K
CodeProject 正在变化。 阅读更多。
Home

获奖者将增强现实与百科全书相结合,推出了 ARPedia*

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2014 年 4 月 16 日

CPOL

12分钟阅读

viewsIcon

16094

Zhongqian Su 和一群研究生使用了 Intel® Perceptual Computing SDK 和 Creative Interactive Gesture Camera Kit,将增强现实 (AR) 和一本普通的百科全书结合起来,创建了 ARPedia*——增强现实遇上维基百科。

引言

明天的界面已经在实验室和测试屏幕上等待着转化为成熟的样品和演示。事实上,您只需看看在CES 2014上宣布的英特尔®感知计算第二阶段挑战赛(Intel® Perceptual Computing Phase 2 Challenge)的创意用户体验类别的获胜者。Zhongqian Su和一群研究生同学使用了英特尔®感知计算SDK(Intel® Perceptual Computing SDK)、创意交互手势摄像头套件(Creative Interactive Gesture Camera Kit)以及英特尔开发者区(Intel® Developer Zone)提供的其他技术资源,将增强现实(AR)与通用百科全书相结合,创造了ARPedia*——增强现实遇上维基百科*。ARPedia是一种新型知识库,用户可以通过手势而不是键盘输入来解锁信息。

来自北京理工大学(Beijing University of Technology)的六名团队成员在两个月内开发了该应用程序,并使用了各种工具。团队使用Maya* 3D创建3D模型,依靠Unity* 3D渲染3D场景并开发应用程序逻辑,然后使用包含在SDK中的英特尔感知计算SDK Unity 3D插件将所有内容整合在一起。他们的演示结合了3D模型和动画视频,创造了一种与虚拟世界互动的新方式。该应用程序通过身体动作、手势、语音和触控,鼓励用户在未知世界中进行数字探索,未来的工作潜力令人兴奋。

关于恐龙的一切

将ARPedia设想成一个带有AR视觉效果的故事创作和体验游戏。在用户享受无缝互动体验的同时,即使是最简单的互动也蕴含了大量的技术。在PC游戏中,通常使用鼠标和键盘,或者触摸屏来与应用程序进行交互。但在ARPedia中,这些都不使用。在AR应用程序中,自然用户界面非常重要。ARPedia用户能够通过裸手手势和面部表情进行操作,这得益于Creative Senz3D*摄像头(Creative Senz3D* camera)。设计了许多有趣的手势来帮助推进游戏,例如抓取、挥手、指向、举起和按压。这些手势使得玩家真正掌控了游戏和恐龙的虚拟世界。

图1:ARPedia*结合了增强现实和基于维基百科的百科全书,通过手势导航界面。

团队负责人Zhongqian Su在他的早期教育应用开发工作中使用了微小的霸王龙(Tyrannosaurus rex)角色,因此他让这种著名的恐龙成为了ARPedia应用程序的主角。玩家使用手部动作去抓取微小的恐龙图像,然后将其放置在屏幕上的不同位置。根据放置恐龙的位置,玩家可以获取关于该生物饮食、习性和其他特征的信息。

图2:用户与微小的霸王龙互动,学习化石、古生物学和地质学。

根据团队成员Liang Zhang的说法,该团队在使用这种恐龙的3D模型之前,曾为教育市场编写过AR应用程序。虽然他们已经有了应用程序的基础,但为了符合比赛要求,他们还需要做很多工作。例如,他们内部的摄像头使用了3D技术,因此需要重写代码(见图3)以兼容更新的创意交互手势摄像头套件。这也意味着需要快速掌握英特尔感知计算SDK。

bool isHandOpen(PXCMGesture.GeoNode[] data)
    {
        int n = 1;
        for(int i=1;i<6;i++)
        {
            if(data[i].body==PXCMGesture.GeoNode.Label.LABEL_ANY)
                continue;
            bool got = false;
            for(int j=0;j<i;j++)
            {
                if(data[j].body==PXCMGesture.GeoNode.Label.LABEL_ANY)
                    continue;
                Vector3 dif = new Vector3();
                dif.x = data[j].positionWorld.x-data[i].positionWorld.x;
                dif.y = data[j].positionWorld.y-data[i].positionWorld.y;
                dif.z = data[j].positionWorld.z-data[i].positionWorld.z;
                if(dif.magnitude<1e-5)
                    got = true;
            }
            if(got)
                continue;
            n++;
        }
        return (n>2);
    }
图3:ARPedia*团队重写了摄像头代码,以适应创意交互手势摄像头。

幸运的是,张说,他的公司热衷于投入时间和精力来学习新技术。“我们已经做了很多应用程序,”他说。“我们跟踪我们可以在业务中使用的新的硬件和软件改进。在此次比赛之前,我们使用了Microsoft Kinect*来实现自然的身体交互。当我们发现这款摄像头时,我们非常兴奋,想尝试一下。我们认为这次比赛也能给我们一个证明自己技术实力的机会,为什么不呢?”

前期明智选择

由于比赛时间紧迫,团队必须快速掌握新技术。张花了两个星期学习英特尔感知计算SDK,然后团队设计了张能想到的各种不同的交互技术。

与此同时,一位编剧开始撰写团队可以编码的故事和可能的场景。他们开会讨论选项,张根据他对SDK的了解指出优缺点。他足够了解技术细节,可以做出明智的决定,因此团队对选择他所描述的“……最好的故事和最有趣、最适用的互动”感到满意。

张说,他们早期最重要的决定之一是让玩家完全沉浸在游戏中。例如,在早期孵蛋环节中,玩家扮演着造物主的角色,创造地球,使其下雨,投射阳光等等。玩家在设置和学习时需要很多手势。

在另一个场景中,玩家需要捕捉恐龙。张设置了这样一个系统:一块肉掉在玩家手上,恐龙会过来吃肉(图4)。这个动作让玩家与恐龙互动,增加了参与感。“我们希望玩家始终沉浸在虚拟世界中,并与其保持一致,”他说。

图4:喂养幼年恐龙让用户保持参与感,并增加投入。

然而,向前发展这些计划需要更多的努力。演示包含了许多新的手势,用户在使用时遇到了困难。“在CES的英特尔展位上,我和玩游戏的人交谈时,”张说,“我发现他们自己弄不清楚怎么玩游戏,因为有很多关卡,每个关卡都有不同的手势。我们了解到,它不像我们最初认为的那么直观,而且当我们增加新的交互方法时,设计必须更加直观。我们下次项目肯定会牢记这一点。”

ARPedia团队在他们的参赛作品中引入了两个关键手势。一个是“双手张开”,另一个是“单手张开,手指伸展”。双手张开手势用于启动应用程序,是一个直接的编码工作。但编码第二个手势花费了更多精力。

图5:团队努力确保摄像头不会将手腕检测为手掌点。

“最初的‘张开手’手势不太精确。有时手腕被检测为手掌点,”张解释道。“然后拳头被检测为一根手指,系统认为这意味着张开,这是错误的。所以我们设计了一个新的张开手手势,当至少有两根手指伸展时才会被识别。”然后,他们在屏幕上添加了文字提示来指导用户进行这些补充(图5)。

英特尔®感知计算SDK

ARPedia团队使用了英特尔感知计算SDK 2013,并特别欣赏其易于进行的摄像头校准、应用程序调试以及对语音识别、面部分析、近距离深度跟踪和AR的支持。它允许多个感知计算应用程序共享输入设备,并包含一个隐私通知,告知用户RGB和深度摄像头何时开启。SDK旨在轻松添加更多使用模式、添加新输入硬件、支持新游戏引擎和定制算法,并支持新编程语言。

这些实用程序包括C/C++组件,如PXCUPipeline(C)和UtilPipeline(C++)。这些组件主要用于设置和管理管道会话。框架和会话端口包括Unity 3D、Processing、其他框架和游戏引擎的端口,以及C#和Java*等编程语言的端口。SDK接口包括核心框架API、I/O类和算法。感知计算应用程序通过这三个主要功能块与SDK进行交互。

“英特尔[感知计算]SDK非常有帮助,”张说。“我们在开发这个应用程序时没有遇到任何问题。我们能够在很短的时间内提高工作效率。”

英特尔®实感™技术

世界各地的开发者正在更多地了解英特尔®实感™技术(Intel® RealSense™ technology)。英特尔实感技术于2014年CES上发布,是原英特尔®感知计算技术(Intel® Perceptual Computing technology)的新名称和品牌。直观的新用户界面具有手势和语音等功能,英特尔已于2013年将其推向市场。借助英特尔实感技术,用户将获得新的、附加的功能,包括3D扫描、修改、打印和共享,以及AR界面的重大进步。这些新功能将带来游戏和应用程序,用户可以使用先进的手部和手指感应技术自然地操控和玩耍扫描的3D对象。

张现在已经亲眼看到了其他开发人员如何使用AR技术。在2014年CES展会上,他观看了来自世界各地的多个演示。虽然每个演示都独具特色,并旨在实现不同的目标,但他对快速发展的3D摄像头技术感到鼓舞。“SDK中包含手势检测功能意义重大。人们仍然可以以不同的方式使用摄像头,但基础已经为他们打好了。我建议开发人员做好这项技术的功课,找到充分发挥其想法的能力。”

通过先进的手部和手指跟踪,开发人员可以让用户处于能够以更高的精度控制设备的状态,从最简单的命令到复杂的3D操作。结合自然语言语音技术和准确的面部识别,设备将能够以新的水平了解用户。

深度感应使游戏感觉更具沉浸感,而准确的手部和手指跟踪为任何虚拟冒险带来了出色的精度。游戏变得更具沉浸感和趣味性。利用AR技术和手指感应,开发人员将能够将现实世界与虚拟世界融合。

张认为即将推出的英特尔实感3D摄像头将非常适合他熟悉的应用程序场景。“据我所知,它将做得更好——更准确,功能更多,更直观。我们对此很期待。还将有3D面部跟踪和其他很棒的功能。这是第一款适用于笔记本电脑的3D摄像头,可以作为运动感应设备,”他说,“但它与Kinect不同。它的覆盖范围也和家用3D摄像头一样。我认为新的英特尔摄像头将是制造商集成到笔记本电脑和平板电脑中的更好设备。作为便携式微型用户界面设备,这也非常重要。我们将来一定会用这款摄像头开发很多程序。”

Maya 3D

ARPedia团队使用Maya 3D动画软件不断调整他们制作的微小、逼真的著名霸王龙模型的细节。通过构建正确的模型——具有逼真的动作和精美的细节色彩——为应用程序的其余部分奠定了基础。

Maya是创建3D计算机动画、建模、模拟、渲染等的黄金标准。它是一个高度可扩展的生产平台,支持下一代显示技术,拥有加速的建模工作流,并能处理复杂数据。团队对3D软件是新手,但他们有一些使用Maya的经验,并能够轻松地更新和集成他们现有的图形。张说,团队花了很多时间在图形上。“我们花了一个月的时间来设计和修改图形,以使一切看起来更好,并改善交互方法,”他说。

Unity 3D

团队选择Unity引擎作为其应用程序的基础。Unity是一个强大的渲染引擎,用于创建交互式3D和2D内容。Unity工具集被称为应用程序构建器和游戏开发工具,以其直观、易于使用和可靠的多平台开发支持而闻名。它为希望开发模拟、休闲和严肃游戏以及Web、移动或控制台应用程序的初学者和经验丰富的用户提供了理想的解决方案。

张说,选择Unity是一个简单的决定。“我们使用Unity开发了我们所有的AR应用程序,包括这个,”他说。我们熟悉它,并信任它能完成我们需要的任务。”他能够快速轻松地从Maya导入专有的3D应用程序文件的网格,节省了时间和精力。

今日信息,明日游戏

ARPedia在未来有很多有趣的应用方向。首先,团队看到了游戏和其他应用程序的机会,将他们从英特尔感知计算挑战赛中获得的成果作为基础。“我们与一些感兴趣的各方进行了很多交流,”张说。“他们希望我们将这个演示开发成一个完整、完整的版本。希望我们能在市场上找到一席之地。我们将在游戏中增加更多恐龙,并引入对这些恐龙的全面了解,以吸引更多兴趣。它们处于一个有趣的环境中,我们将围绕它设计更多有趣的互动。”

“我们还计划设计一个宠物游戏,用户可以饲养和培育自己的虚拟恐龙。他们将拥有自己的特定收藏品,可以互相展示。我们也将使其成为网络游戏。我们计划为一个新版本做更多场景。”

团队对获奖感到非常惊讶,因为他们不熟悉世界各地其他开发团队的作品。“我们不知道别人的作品。我们做自己的东西,很少有机会看到别人在做什么,”张说。现在他们知道了自己的位置,并且已经准备好迎接更多挑战。“这次比赛激励我们证明自己,并有机会与其他开发者进行比较和交流。我们非常感谢英特尔提供的这次机会。我们现在对全球主要技术有了更多的了解,并且对未来开发增强现实应用程序更有信心。”

资源

英特尔®开发者区提供跨平台应用程序开发工具和操作指南、平台和技术信息、代码示例以及同行专业知识,以帮助开发人员创新并取得成功。加入我们的物联网Android*英特尔®实感™技术Windows*社区,下载工具、访问开发套件、与志同道合的开发者分享想法,并参与黑客马拉松、比赛、路演和本地活动。

© . All rights reserved.