官方教程 收藏本版 已有2人收藏 +发表新主题
查看: 32954|回复: 5
打印 上一主题 下一主题

metaio SDK官方教程--FAQ之并行跟踪

[复制链接]

metaio SDK官方教程--FAQ之并行跟踪

Luc_metaio 发表于 2014-5-29 11:30:58 浏览:  32954 回复:  5 只看该作者 复制链接


并行跟踪是metaio用户提出的最常见问题之一,所以本章节单独讲解它的实现方法。其实并行跟踪实现起来很简单,最新的SDK版本支持所有平台上的并行跟踪。至于同时跟踪的最大目标数,它的大小和设备性能有直接关系。由于并行跟踪会消耗可用资源,同时跟踪的目标越多设备就会越慢。因此,用户必须在需求和性能之前找到平衡点。如果您需要同时跟踪大量的目标(如超过180个),我们推荐您使用Continuous Visual Search(CVS)服务。

在本文中,我们使用无标识2D跟踪(又称图像跟踪)配置来同时跟踪两个图片。值得注意的是,您只需对此配置做些许修改,就可以利用它进行ID标识并行跟踪。

鉴于metaio SDK在各个平台上的代码都很相似,在本文中我们用C++(Windows平台)来展示并行跟踪的实现方法



设置跟踪配置

首先,我们需要对跟踪文件中的MaxObjectsToTrackInParallel标签做调整,它决定系统所能同时跟踪的最大目标个数。本教程所要实现的并行跟踪只对两个目标有效,因此我们将这个标签的参数值设置为2即可。相关脚本如下:
  1. // XML

  2. <MaxObjectsToTrackInParallel>2</MaxObjectsToTrackInParallel>
复制代码
在metaio SDK模板应用中,跟踪配置文件中只定义了一个SensorCOS。由于本文需要同时跟踪两个目标,我们必须再设置一个SensorCOS,其包括跟踪目标等信息。在给坐标系命名时,建议您选一个易记的名字。为了和第一个坐标系保持一致,我们把第二个SensorCOS命名为Patch2,如下面脚本所示。ReferenceImage标签指定第二个目标图片的名称。设置完SimilarityThreshold的参数值之后,跟踪配置文件就设置好了
  1. // XML

  2.             <SensorCOS>
  3.                 <SensorCosID>Patch2</SensorCosID>
  4.                 <Parameters>
  5.                     <ReferenceImage>target2.jpg</ReferenceImage>
  6.                     <SimilarityThreshold>0.7</SimilarityThreshold>
  7.                 </Parameters>
  8.             </SensorCOS>
复制代码


应用端调整

在应用端,并行跟踪的配置非常容易,您只需对3D模型设置相对应的坐标系ID即可。在本例中,第一个坐标系使用的是metaio man目标图片,所以我们把metaio man模型的坐标系设置为1;同理,由于第二个坐标系的跟踪目标是地球,我们把地球模型的坐标系设置为2
  1. // C++

  2. m_geometry1 = m_pMetaioSDK->createGeometry("../../../_Windows/Examples_SDK/Example/metaioman.md2");
  3. m_geometry1->setCoordinateSystemID(1);

  4. m_geometry2 = m_pMetaioSDK->createGeometry("../../../_Windows/Examples_SDK/Example/Earth.zip");
  5. m_geometry2->setCoordinateSystemID(2);
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享至:
| 4 人收藏
回复

使用道具 举报

该用户从未签到

推荐
luxu024@163.com 发表于 2015-4-29 16:10:53 只看该作者
如果出现两模型站在同一图片中,将两个tracker的transform camera项的勾去掉.
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

沙发
梦想 发表于 2014-8-6 16:26:50 只看该作者
unity的工程好像只修改
// XML

            <SensorCOS>
                <SensorCosID>Patch2</SensorCosID>
                <Parameters>
                    <ReferenceImage>target2.jpg</ReferenceImage>
                    <SimilarityThreshold>0.7</SimilarityThreshold>
                </Parameters>
            </SensorCOS>
是无法实现同时识别的还要添加
<COS>
                        <Name>Patch2</Name>
                        <Fuser Type="SmoothingFuser">
                                <Parameters>
                                        <KeepPoseForNumberOfFrames>5</KeepPoseForNumberOfFrames>
                                        <GravityAssistance></GravityAssistance>
                                        <AlphaTranslation>0.8</AlphaTranslation>
                                        <GammaTranslation>0.8</GammaTranslation>
                                        <AlphaRotation>0.5</AlphaRotation>
                                        <GammaRotation>0.5</GammaRotation>
                                        <ContinueLostTrackingWithOrientationSensor>false</ContinueLostTrackingWithOrientationSensor>
                                </Parameters>
                        </Fuser>

                        <SensorSource>
                                <SensorID>FeatureTracking</SensorID>
                                <SensorCosID>Patch2</SensorCosID>
                                <HandEyeCalibration>
                                        <TranslationOffset>
                                                <X>0</X>
                                                <Y>0</Y>
                                                <Z>0</Z>
                                        </TranslationOffset>
                                        <RotationOffset>
                                                <X>0</X>
                                                <Y>0</Y>
                                                <Z>0</Z>
                                                <W>1</W>
                                        </RotationOffset>
                                </HandEyeCalibration>
                                <COSOffset>
                                        <TranslationOffset>
                                                <X>0</X>
                                                <Y>0</Y>
                                                <Z>0</Z>
                                        </TranslationOffset>
                                        <RotationOffset>
                                                <X>0</X>
                                                <Y>0</Y>
                                                <Z>0</Z>
                                                <W>1</W>
                                        </RotationOffset>
                                </COSOffset>
                        </SensorSource>
                </COS>
不知道我有没有错求版主解答
回复 支持 反对

使用道具 举报

该用户从未签到

板凳
someone 发表于 2014-9-2 01:44:33 只看该作者
在unity中,并行跟踪只在一张目标图上显示,不会显示在两张图上~
回复 支持 反对

使用道具 举报

该用户从未签到

5#
k-mart23 发表于 2015-12-23 10:59:48 只看该作者
还要在<Connections>标签中添加包含<COS>标签中指定坐标系,参考http://helpdesk.metaio.com/quest ... tstotrackinparallel
回复 支持 反对

使用道具 举报

该用户从未签到

6#
nicklam1994 发表于 2017-4-22 00:21:06 只看该作者
本帖最后由 nicklam1994 于 2017-4-22 00:31 编辑
luxu024@163.com 发表于 2015-4-29 16:10
如果出现两模型站在同一图片中,将两个tracker的transform camera项的勾去掉.

可以了,但是有一张图片的模型大,一张图片的模型小,请问这个比例在哪里设置
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2013-2017 ARinChina-增强现实中国技术论坛   All Rights Reserved.