云识别API概述

使用云数据库检测和跟踪数百万云图像目标。本文介绍了在本机中实现Cloud reco的一般步骤。

云图像目标是存储在Vuforia服务器中的图像目标。这允许您从单个云数据库中存储、检测和跟踪数百万个图像目标。使用上载云图像目标目标经理。另请参阅云目标Web API.

常规设置

请参阅Vuforia发动机生命周期了解Vuforia引擎生命周期的一般介绍。引擎是创建和使用观察程序所必需的。

创建云图像目标观测器

云识别由引擎通过云图像目标观测器处理。使用配置云识别VuCloudImageTargetConfig并使用检测识别事件VuCloudImageTargetObservation目标信息.

与SDK中的其他跟踪API不同,在SDK中,您可以通过国家的拉取机制获得持续的跟踪更新,云识别不一定会获得持续的信息;您需要注册一个处理程序来获取更新。使用vuCloudImageTargetObserverRegisterHandlers。创建并激活观察者后,将通过注册的回调函数报告搜索结果VuCloudImageTargetObservationsHandler.

从VuCloudImageTargetConfig创建观察员

要使用云识别,首先需要初始化系统并设置云数据库的凭据。创建过程需要活动的网络连接并异步运行。

下面创建云图像目标观测器。默认情况下,它处于激活状态。

VuObserver*observer=nullptr;VuCloudImageTargetConfig云映像目标配置=vuCloudImageTargetConfigDefault();cloudImageTargetConfig.userAuth=“<您的凭据>”;cloudImageTargetConfig.secretAuth=“<您的凭据>”;VuCloudImageTargetCreateError创建错误;if(vuEngineCreateCloudImageTargetObserver(引擎、观察者、云图像目标配置和创建错误)!=VU_SUCCESS){//处理观察者创建错误开关(creationError){案例VU_CLOUD_IMAGE_TARGET_CREATION_ERROR_NO_NETWORK_CONNECTION://处理“NO NETWORK”错误断裂;//处理其他VU_CLOUD_IMAGE_TARGET_CREATION_ERROR。。。错误}回报;}

注:在目标管理器的云数据库详细信息中查找您的身份验证密钥。

启动和停止云识别搜索

使用注册云图像目标的处理程序VuCloudImageTargetObservationsHandler。只要检测到新的云图像目标,就会触发此观察处理程序。然后,您可以选择使用创建图像目标观测器vuEngineCreateImageTargetObserverFromCloudObservation()开始跟踪图像。

MyClientData客户端数据;/*应用程序特定数据结构的占位符*/vuCloudImageTargetObserverRegisterHandlers(观察者、&recoEventHandler、&queryErrorHandler和&clientData);

处理搜索结果

在运行时,您需要处理新的云识别搜索结果,如果需要,还需要创建图像目标观测器进行跟踪。

下面是一个示例代码片段,通过vuCloudImageTargetObservationGetTargetInfo(vuCloudImageTargetObservationGetTargetInfo)。目标信息包括名称、唯一id、元数据和跟踪评级。

根据观察结果,样本创建一个图像目标观测器vuEngineCreateImageTargetObserverFromCloudObservation.

无效VU_API_CALLrecoEventHandler(const VuObservationList*观察值,void*客户端数据){MyClientData*MyClientData=static_cast<MyClientData**(客户端数据);int32_t numObservations=0;vuObservationListGetSize(观测值,&numObservisions);//迭代通过reco事件接收的所有云图像目标观测值for(int i=0;i<num观测值;i++){VuObservation*观测=nullptr;vuObservationListGetElement(观察值、i和观察值);//读取云图像目标信息VuCloudImageTargetObservationTargetInfo云图像目标信息;vuCloudImageTargetObservationGetTargetInfo(观测,&cloudImageTargetInfo);//print(“已识别云图像目标'%s'”,cloudImageTargetInfo.name);//使用云图像目标观测创建图像目标观测器VuImageTargetCloudObservationConfig cloudObservationConfig=vuImageTargetCloudObservationConfigDefault();cloudObservationConfig.observation=观测;cloudObservationConfig.activate=VU_TRUE;//如果发动机正在运行,则自动激活VuObserver*targetObserver=nullptr;VuImageTargetCloudObservation创建错误创建错误;if(vuEngineCreateImageTargetObserverFromCloudObservation(引擎,&targetObserve,&cloudObserverConfig,&创建错误)!=VU_SUCCESS){//错误处理继续;}}}

有关计算和处理云识别搜索结果的更多信息,请参阅计算云识别事件.

错误消息

创建Observer后异步检测到的错误将通过错误处理程序回调进行报告。下面是如何编写这样一个处理程序的示例:

无效VU_API_CALLqueryErrorHandler(VuCloudImageTargetQueryError查询错误,void*客户端数据){MyClientData*MyClientData=static_cast<MyClientData**(客户端数据);//处理与查询相关的错误开关(queryError){案例VU_CLOUD_IMAGE_TARGET_QUERY_ERROR_AUTHORIZATION_FAILED://处理“授权失败”错误断裂;//处理其他VU_CLOUD_IMAGE_TARGET_QUERY_ERROR_。。。错误}}

以下错误代码可能由VuCloudImageTargetQuery错误。此表列出了代码及其含义。

代码

含义

VU_云_IMAGE_目标_QUERY_ERROR

_无网络连接

无网络连接

VU_云_IMAGE_目标_QUERY_ERROR

_服务不可用

服务器未找到、关闭或过载

VU_CLOUD_IMAGE_TARGET_QUERY_ERROR(音量图像目标查询错误)

_授权失败

凭据错误或过期

VU_云_IMAGE_目标_QUERY_ERROR

_项目_取消

指定的项目已暂停

VU_云_IMAGE_目标_QUERY_ERROR

_坏帧质量

持续观察到低帧质量

VU_云_IMAGE_目标_QUERY_ERROR

_更新_SDK

SDK版本已过时

VU_云_IMAGE_目标_QUERY_ERROR

_时间戳_输出_范围

客户端/服务器时钟间隔太远

VU_云_IMAGE_目标_QUERY_ERROR

_请求_超时

超时后无网络请求响应