并行跟踪是metaio用户提出的最常见问题之一,所以本章节单独讲解它的实现方法。其实并行跟踪实现起来很简单,最新的SDK版本支持所有平台上的并行跟踪。至于同时跟踪的最大目标数,它的大小和设备性能有直接关系。由于并行跟踪会消耗可用资源,同时跟踪的目标越多设备就会越慢。因此,用户必须在需求和性能之前找到平衡点。如果您需要同时跟踪大量的目标(如超过180个),我们推荐您使用Continuous Visual Search(CVS)服务。
在本文中,我们使用无标识2D跟踪(又称图像跟踪)配置来同时跟踪两个图片。值得注意的是,您只需对此配置做些许修改,就可以利用它进行ID标识并行跟踪。
鉴于metaio SDK在各个平台上的代码都很相似,在本文中我们用C++(Windows平台)来展示并行跟踪的实现方法
设置跟踪配置
首先,我们需要对跟踪文件中的MaxObjectsToTrackInParallel标签做调整,它决定系统所能同时跟踪的最大目标个数。本教程所要实现的并行跟踪只对两个目标有效,因此我们将这个标签的参数值设置为2即可。相关脚本如下:- // XML
- <MaxObjectsToTrackInParallel>2</MaxObjectsToTrackInParallel>
复制代码 在metaio SDK模板应用中,跟踪配置文件中只定义了一个SensorCOS。由于本文需要同时跟踪两个目标,我们必须再设置一个SensorCOS,其包括跟踪目标等信息。在给坐标系命名时,建议您选一个易记的名字。为了和第一个坐标系保持一致,我们把第二个SensorCOS命名为Patch2,如下面脚本所示。ReferenceImage标签指定第二个目标图片的名称。设置完SimilarityThreshold的参数值之后,跟踪配置文件就设置好了- // XML
- <SensorCOS>
- <SensorCosID>Patch2</SensorCosID>
- <Parameters>
- <ReferenceImage>target2.jpg</ReferenceImage>
- <SimilarityThreshold>0.7</SimilarityThreshold>
- </Parameters>
- </SensorCOS>
复制代码
应用端调整
在应用端,并行跟踪的配置非常容易,您只需对3D模型设置相对应的坐标系ID即可。在本例中,第一个坐标系使用的是metaio man目标图片,所以我们把metaio man模型的坐标系设置为1;同理,由于第二个坐标系的跟踪目标是地球,我们把地球模型的坐标系设置为2- // C++
- m_geometry1 = m_pMetaioSDK->createGeometry("../../../_Windows/Examples_SDK/Example/metaioman.md2");
- m_geometry1->setCoordinateSystemID(1);
-
- m_geometry2 = m_pMetaioSDK->createGeometry("../../../_Windows/Examples_SDK/Example/Earth.zip");
- m_geometry2->setCoordinateSystemID(2);
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|
|
|
|
|