英语原文共 11 页
安卓版Forthroid:一种基于二维码的智能手机信息访问系统
摘要
Forthroid是一种基于位置的系统,它利用多媒体信息“增强”物理对象,并允许用户接收物理对象的信息或请求与物理对象相关的服务。它采用计算机视觉技术和快速响应码(QR码)。我们已经在Android平台上实现了一个原型,并通过系统度量和主观测试评估了它的性能。我们讨论了我们在Android操作系统原型设计中的发现和挑战。分析表明,网络和服务器是延迟的主要来源,而CPU负载可能因特定的forthroid操作而变化。初步的主观测试结果表明,用户可以容忍这些延迟,所提供的服务可能特别有用。
第1章 引言
无线网络的出现及其在全世界范围内的持续部署已经触发了位置感知和普及计算服务和应用的快速增长。我们设计和评估了Forthroid,这是一个基于位置的系统和一组服务,使用户可以使用手机获取有关特定兴趣点的多媒体信息,并提供与实物相关的服务(例如打印服务)。Forthroid可以很容易地部署和使用在室内和室外环境中,如博物馆、校园和大都市地区。Forthroid使用快速响应代码(QR代码),它是二维条码,可以对各种类型的信息进行编码。qrcodes可以附加到物理对象上。已经在几个大城市地区设置了此类代码,例如,在商店、建筑物入口处,以提供楼层平面信息,在墙上发布即将到来的活动。Forthroid的用法示例如图2所示。
Forthroid体系结构包括二维码(与附近的物理对象相关联)、在Android智能手机上运行的Forthroid客户端和Forthroid多线程服务器。Forthroid客户端可以扫描二维码(与某个兴趣点相关联),并通过互联网与Forthroid服务器通信,以检索多媒体信息或请求与该兴趣点相关联的服务。尽管社区已经提出了类似的QRcode信息访问系统(如[1]–[5]),但据我们所知,还没有实证研究来分析它们的性能。
Forthroid建立在我们早期的工作上,《摄影杂志》。PhotoJournal是一种新型的基于位置的媒体共享应用程序,它允许用户创建交互式日志,将多媒体文件与地图上的位置关联起来,并与其他用户共享这些信息。本文的贡献是双重的:它介绍了系统的设计和体系结构,以及使用主观测试和系统度量的性能评估,如延迟、距离估计误差、电池消耗和CPU负载。此外,它还讨论了程序员在开发Simil时经常遇到的一些主要挑战。AR应用程序。本文的组织结构如下:第二节介绍相关工作,第三节重点介绍系统的体系结构。第四节讨论了系统的性能和用户研究,最后,第五节总结了我们的主要结论和未来的工作计划。
第2章 相关工作
社区已经开发了几个令人兴奋的位置感知和移动计算应用程序。例如,HP实验室的CoolTown项目是一个位置感知的无所不在系统,通过将URL与放置在对象上的可视代码关联起来,探索Web技术、无线网络和便携式客户端设备的融合提供的机会,以支持人员、地点和事物的“Web存在”。一些移动计算应用程序一直在使用条形码[1]–[5]。例如,Ljungstrand等人建议的条形码贴纸,可贴在实物上。条形码贴纸将网页映射到物理对象,并允许用户通过扫描附加的条形码访问网页。
Maidi等人对几种基于视觉的距离估计算法进行了性能比较分析。〕。作者提出了一种混合距离估计方法,将迭代法和解析法结合起来进行姿态估计。他们的方法与几种复杂的基于视觉的算法进行了比较。对于一个姿态估计,其混合方法的执行时间为112微秒,对于1米的距离,平均距离误差为7.2毫米。
索尼公司开发了一种新型的标记器,名为Cybercode[1],同时还开发了一种具有跟踪功能的视觉标记系统。普通的手机可以很容易地识别网络编码标签,从而能够估计相机相对于标签的三维位置和方向。Trip是一个计算机视觉系统,使用可打印的二维圆形标记来识别和定位物体。在平均误差小于3cm的情况下,能成功识别98%的物体,识别3米距离内的实体。鲁克齐奥等。提出了一种系统,使移动设备能够使用摄像头和近场网络与海报“互动”。RoHS等人。使用二维视觉代码,类似于二维码,以检索与对象相关的信息。它们的识别算法可以同时检测多个编码,并计算编码诱导的坐标系中目标的坐标。
图1 (a)典型的二维码。(b)二维码的主要组成部分
图2 (a)用户扫描二维码以检索电信和网络实验室(FORTH)感兴趣点的信息。(b)返回给用户的特定兴趣点信息的屏幕快照。
系统架构
Forthroid的主要实体是二维码及其主要组成部分,即查找模式、定时模式、对齐模式和编码区域(如图1所示)。每个QRcode中都会编码一个唯一的标识符。Forthroid定义并使用两种二维码类型,即信息感知和行动感知二维码。信息感知的二维码附在兴趣点上,并与特定的多媒体信息相关联,而行动感知的二维码则将相应的兴趣点与可提供给用户的某些服务相映射。
Forthroid体系结构采用客户机-服务器范式:它由运行在移动设备(客户机)和服务器上的应用程序组成。客户端使用ZXing应用程序编程接口(API)和Google提供的条码扫描器开源应用程序扫描和解码二维码。服务器由信息检索和距离估计两个模块组成。为了支持信息检索,服务器部署了一个mysql数据库,其中包含有关所有兴趣点的信息,而opencv框架用于执行距离估计。服务器是多线程的,可以支持大量的客户机/请求。
图3说明了Forthroid的一般结构。持有Android智能手机的用户指向一个二维码(与兴趣点关联,例如一幅画)。Forthroid移动应用程序检测qrcode并在本地解码其唯一标识符。对该兴趣点的查询形成,其中包含特定二维码和捕获图像的标识。客户机通过Internet向服务器发送查询。当服务器接收到一个查询时,它根据所附的标识符来确定QRcode的类型。如果类型对应于信息感知二维码,则调用信息检索和距离估计模块。信息检索模块访问数据库检索适当的信息,距离估计模块进行摄像机标定。服务器形成一个响应,其中包含有关兴趣点和智能手机与二维码之间的估计距离的多媒体信息,并将响应发送给客户。
在有动作意识的二维码的情况下,由服务器执行动作特定操作。目前,我们已经设计并评估了打印服务:当用户扫描附在打印机上的二维码时,会显示他/她访问过的所有兴趣点的列表。然后,用户可以从此列表中选择一个项目,存储在Forthroid服务器中的该项目的信息将发送到打印机。Forthroid服务器跟踪最近Forthroid用户访问过的兴趣点。具体来说,每次客户机发送查询请求感兴趣点的信息时,服务器都会在数据库中创建一个新条目,其中包含客户机的IP和感兴趣点的标识。由于IP是动态分配的,新客户机可能具有与“离开”网络的旧客户机相同的IP,因此这些条目在一段时间后过期。
Forthroid的主要操作发生在预览和查询期间。特别是,在预览期间,Forthroid客户端使用移动摄像头反复扫描该区域,直到能够检测和解码二维码。查询周期包括客户机-服务器通信所需的时间以及智能手机屏幕上显示结果的时间。
通过摄像机校准技术估计智能手机与QRcode连接的飞机之间的距离。相机校准过程确定矩阵M(公式(1)),该矩阵将三维点P从世界坐标系投影到图像坐标系中的二维点P[9]:
p = MP (1)
其中m是3x4投影或完整的摄像机校准矩阵。式(1)可进一步分解为:
p = K[R|t]P (2)
其中k是内置相机特定参数的3x3矩阵,[r t]是3x4关节旋转和平移矩阵,即外部参数的矩阵。外部参数根据相对于世界坐标的方向和平移来描述相机的位置。为了估计外部摄像机参数,首先必须识别出世界上各点与图像坐标系之间的对应关系。然后,可以使用几种摄像机校准方法来估计摄像机矩阵M,如最小二乘法[10]、非线性估计法[11]和迭代算法[9]。
Forthroid使用封底图案的角作为校准图案。具体地说,36封信函被创建,每封都与一个特定的角落相关联。左上角用于定义世界坐标系的原点。摄像机标定过程分为两个阶段:只进行一次的本征参数标定和本征参数估计。使用Matlab校准工具箱[12]完成相机内部校准。当查询到达服务器时,执行外部参数校准,以估计智能手机与二维码的距离。为此,首先,逆时针旋转图像,使图像中填充图案的位置与实际二维码中填充图案的位置相匹配(从填充图案中心穿过的线形成一个“”形状)。旋转角度通过检查捕获图像中填充图案中心的位置来估计,并包含在客户机查询中。然后,进行角点检测程序,以创建世界到图像的对应关系。Harris角检测算法[13]应用于二维码的三种模式。具体来说,Harris角探测器的目标是确定每种纹理内三个正方形的角对应的十二个角。然后将所得的对应关系用于外部参数估计。然后,摄像机位置的三维世界坐标,即摄像机中心C,可由式(3)[14]确定:
C = minus;Rminus;1t (3)
用户与二维码的距离是相机中心距世界坐标系原点的欧几里得距离。
性能分析
为了评估Forthroid的性能,进行了基于经验的测量和主观测试。具体来说,我们首先测量了安卓设备上运行的Forthroid的延迟、距离估计误差和电池消耗。然后,我们在福斯-ICS实验室进行了初步的主观研究。
测试台包括一个运行Android 2.2的HTC NexusOne智能手机和一个2.66GHz Core2 Duo-Dell台式机,带有2048 MB RAM和Linux Ubuntu操作系统服务器。服务器通过FasterNet连接,智能手机(客户端)通过IEEE802.11接入点(AP)连接到Forth-ICS基础设施网络。
a.延迟
如表一和表二所示,用户体验的总延迟由以下部分组成:
1)服务器延迟:它对应于服务器接收查询和传输响应之间的总时间。它的主要组成部分是距离估计和信息检索模块。
2)网络延迟:包括网络和传播延迟。
3)android客户端延迟:包括生成查询的时间和在屏幕上显示服务器响应的时间。
图4 各种延迟的累积分布函数
图5 平均延迟与并发请求数(95%置信区间)
为了测量这些延迟,对表1中所示的事件进行了定义。当特定事件发生时,我们的软件会调用系统调用,以获得当前系统时间(毫秒)。在评估阶段,Forthroid客户机扫描信息感知的二维码。这个过程重复了30次。中位总延迟、服务器延迟、网络延迟和Android延迟分别为5.68、2.68、1.99和1.01秒,差异相对较小(如图4所示)。
为了研究同时请求的数量对延迟的影响,我们使用了一台台式PC机,它向Forthroid服务器发送一些对兴趣点的并发模拟查询。我们将并发请求的数量从5个更改为50个(第5步)。对特定数量的并发请求的每个实验重复10次,测量总延迟以及服务器延迟(如图5所示)。当并发请求的数量为40个或更多时,由于处理它们所需的内存的大量增加,延迟会显著增加。因此,一些线程可能需要等待其他线程完成,从而增加服务器和总延迟。
b.距离估计
为了测试距离估计模块的精度,在40 cm至2 m的范围内,每10 cm扫描一个11x11 cm2大小的二维码。上述距离范围(40 cm,2 m)分别对应于zxing库能够检测和解码二维码的最小和最大距离。在我们的度量中使用了以下场景:
bull;场景A:用户位于二维码前面,将相机与安装二维码的表面平行。
bull;场景B:用户从不同角度扫描手持相机的二维码。
bull;场景C:用户可以任意旋转相机。因此,二维码在拍摄的图像中旋转。用户可以站在二维码前或任意角度。
每个场景在每个距离上重复三次(总共有3x17个实验)。图6说明了报告距离和实际距离之间的误差。场景A的中间误差为1.3cm,而场景B和场景C的中间误差为2.6cm。此外,应用程序报告的距离估计分别为场景A、B和C的94%、84%和87%。如果通信不正确识别,例如图像模糊或不稳定,则距离估计程序将失败。
图6 距离估计误差的累积分布函数
图7 预览和查询期间电池消耗的累计分布函数
c.电池消耗
考虑到移动设备的能量限制,开发人员应该考虑有效的内存分配和CPU使用。评估了Forthroid应用程序的电池消耗和CPU使用情况。进行了以下实验:在预览期间,移动设备扫描信息感知的二维码。使用PowerTutor应用程序记录两个时期的电池消耗量[15]。实验重复了90次。在每次运行中,分别测量由于无线接口、有机发光二极管(OLED)显示器和CPU造成的电池消耗。在查询期间,无线接口的平均功耗为0.17mw/ms(如图7所示)。由于预览期间没有无线通信,因此无线接口不消耗电池。由于在预览期间,由于CPU的消耗比在查询期间要高得多,因为在预览期间,客户端设备会反复尝试检测和解码一个二维码(这会导致大量的CPU负载)。请注意,由于OLED操作的消耗取决于屏幕上显示的特定内容和颜色,因此无法轻易得出有关电池消耗的最终结论[16]。我们还观察到,在一些情况下,由于OLED操作导致的电池消耗明显低于其中值(如图7所示)。在这些情况下,在查询期间,内容将从相机捕获的特定图像更改为几乎为黑色的屏幕,其中显示检索到的信息。此外,相机预览快照仍在低强度的显示器上。当用户在读取检索到的信息时,以内容快速变化的方式持有移动设备时,就会发生这种情况。
表3
初步主观研究问卷
表4
在每个用户中提供特定分数的用户百分比问题
此外,还测量了Android设备在预览和查询期间的CPU使用情况。为此,我们实现了一个更轻量的linux top命令版本,它显示了系统中CPU密集型任务的列表。我们对它进行了修改,以在短于一秒钟的时间间隔内(默认情况下,原始顶级工具使用的时间间隔)测量CPU使用情况。
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。