概述
Surface视觉系统能够识别由特殊图案的圆点所组成的标签(Tag)做标记的标记对象(Tagged Object)。
标签是一个红外线反射与吸收的区域的几何排列。标记对象对于应用程序处理原始图像有以下优点:
1. 标记对象效率高。标签小巧而精确,所以在视觉系统中能够快速、准确、有效地定位和跟踪这些特殊的标签代码。
2. Surface平台直接识别标签,使得编写一个使用标签的应用程序容易得多。(相比之下,使用原始图像的应用程序必须包括它自己的图像识别算法。)
3. 每个标签存储一个独特的二进制代码值,使应用程序可以区分有标签的物体。
为了达到最佳效果,在应用程序中应该每个标签都用不同的代码。此外,如果用户移动标签太快,或使多个标签靠得太近,Surface视觉系统可能无法正确识别对象。
在WPF中,使用TagVisualizer控件来创建一个屏幕上的视觉对象以跟踪表示标签。这个控件可以识别、跟踪并在界面上显示放置的物体,可以使用TagVisualizer的PhysicalCenterOffsetFromTag 和 OrientationOffsetFromTag属性来调整标签位置。
在应用程序中,需注册所有标记对象使用到的标签,注册方法请参见“标签注册”。
微软Surface SDK示例包中的ItemCompare程序示例如何做标签设计及开发。
标记对象的应用
标记对象可以有很多种用途:
1. 用于识别对象。比如识别一个物体,或者区分一种物质。
2. 作为应用程序的指令,比如在Surface设备上放置一个标记对象弹出一个菜单栏或播放一部电影。
3. 用于启动或关闭应用程序。
4. 用作会员卡或系统用户卡
另外,不要用标签做如下用途:
1. 不要用于访问私人数据,因为标签本身是非安全保密的。在用作用户卡时,要让用户输入密码确认权限方能访问数据。
2. 不要用作密码或密令使用。
3. 如果你需要标记保密,不要使用Surface标签,因为标签在应用程序中是不加密的,即使在注册时也是不能加密的。
4. 标签可以用作识别,不要用作认证。因为标签是可复制的。
标签组成
目前,标签可以表示0-255的值。
标签结构:
图中的1为红外吸收背景。
图中的2是一个0.125英尺大的红外反射圆形区域,用于表示标签的中心位置。
图中的3是三个0.08英尺大的红外反射圆形区域,三个圆圈分别位于距离中心0.28英尺的左、下、右三个方向,用于指示标签的方向。
另外,标签中还有两外8个0.075英尺大的红外反射圆形区域,分别排列在标签的四个角,8个反射圆构成表示256个数字的结构。
打印标签
用户可以在微软网站http://www.microsoft.com/en-us/download/details.aspx?id=11029里面下载标签集。
被磨损的标签可能无法正常使用。喷墨或激光打印机打印的标签使用时磨损得很快。
另外,不要使用Microsoft XPS文档创建标签,XPS文档会在标签边缘生成一些灰色线条,这些线条会影响标签的识别。
程序中注册标签