Qualcomm技术william hill官网
直播中

李艺银

7年用户 1091经验值
私信 关注
[经验]

高通Vuforia SDK 2.8的Extended Tracking功能

高通Vuforia SDK 2.8已经正式推出了,此次SDK更新的亮点:增加Extended Tracking功能,即使目标离开视野仍能继续进行图像识别。使用Java API使开发更简单。采用基于云的内容存储。




Extended Tracking,简称 扩展追踪,在目标丢失的状态,通过扩展追踪,通过对周围环境的采集,让你在丢失识别卡片一段时间,仍然可以体验AR;这样,对于一些AR大场景的游戏,以及一些AR创意都可以更好的呈现;

目前,Extended Tracking可以支持很多中识别模式;

These targets support Extended Tracking:

Image Targets

Multi-Targets

Cylinders

User-Defined Targets

Cloud Recognition

提示: Text and Frame Markers do not support Extended Tracking.

具体,可以去一下链接去看;链接如下https://developer.vuforia.com/resources/dev-guide/extended-tracking

本人也测试过,得出以下结论,仅供参考:

(1)一定得在识别之后,然后,丢失识别之时,Extended Tracking才会发挥出其真正作用;

(2)ImageTargetBehaviour.cs中,代码不可见了,不知道为什么;

(3)在显示内容过于大的时候,从识别到丢失识别会卡一下;






Native API


这段代码显示了更新可追踪基类定义,以及用于更新的API


startExtendedTracking() and stopExtendedTracking which control this feature:



class

QCAR_API Trackable : private

NonCopyable

{










    ///
Starts extended tracking for this Trackable

    /**

     *
This function will return true if extended tracking was

     *
successfully started for this Trackable (or already started)

     *
and false otherwise.

     */

    virtual
bool startExtendedTracking() = 0;



    ///
Stops extended tracking for the Trackable

    /**

     *
This function will return true if extended tracking was

     *
successfully stopped for this Trackable (or already stopped)

     *
and false otherwise.

     */

    virtual
bool stopExtendedTracking() = 0;



    virtual
~Trackable()  {}

};




再次请注意,这仅适用于子类以下Trackables:ImageTargets,MultiTargets,Cylinders,User Defined Targets和Cloud Recognition。文本和Framemarkers不支持扩展跟踪。

接下来,TrackableResult类已更新,这样的的getStatus()API,现在返回一个EXTENDED_TRACKED的状态,如果是可跟踪拿出来看时,扩展跟踪已启用。如果可追踪是鉴于它返回跟踪的状态。

最后,Tracker class已经更新到启用和禁用持久性扩展跟踪和重置扩展跟踪,如前面所述。



class

QCAR_API Tracker : private

NonCopyable

{



    ///
Enables/disables persistent extended tracking

    /**

     *
In persistent extended tracking mode, the environment map will only

     *
ever be reset when the developer calls resetExtendedTracking().

     *
This function will return true if persistent extended tracking

     *
was set successfully (or was already set to the specified value)

     *
and false otherwise.

     */

    virtual
bool persistExtendedTracking(bool on) = 0;



    ///
Resets environment map for extended tracking

    /**

     *
Environment map can only be reset by the developer if persistent

     *
extended tracking is enabled.

     *
This function will return true if environment map was reset

     *
successfully and false otherwise.

     */

    virtual
bool resetExtendedTracking() = 0;

};

更多回帖

发帖
×
20
完善资料,
赚取积分