EasyAR 多目标¶
EasyAR支持同时跟踪多个目标。根据加载目标的不同,可以同时跟踪多个不同目标,也可以同时跟踪多个相同目标。EasyAR的接口非常灵活,可以通过两种方式来实现多目标跟踪。
如果你在使用EasyAR SDK Pro,还可以同时跟踪多个不同类型的target,比如同时跟踪ImageTarget和ObjectTarget。
Target和Tracker¶
EasyAR的target很灵活,你可以阅读 EasyAR Target 配置 了解更多信息。target代表可以被tracker的物体。对于ImageTracker和ObjectTracker,target只有在load到一个tracker中之后才能被跟踪。只要你愿意,EasyAR允许你创建很多tracker。当一个target被load到tracker之后,它将可以被这个tracker所跟踪,而其他tracker将不会触及这个target。因此当你将target load到tracker之后,在unload之前它将无法被load到另一个tracker中(Unity接口会自动unload)。
单个Tracker的方案¶
你可以设置tracker的simultaneous number来限制最多可被同时跟踪的目标的个数。只需要一个调用,tracker就可以同时跟踪多个target。你甚至可以在运行时动态修改这个数值,它会按你期望的方式工作。
多个Tracker的方案¶
在EasyAR设计之初你就可以创建多个tracker,这个概念一直没有改变。
你可以使用多个tracker来跟踪不同的target集合。一个tracker总是会跟踪最多 simultaneous number 个target,它只能跟踪load到它自身的target。如果你创建了多个tracker,你可以同时跟踪某个target集合中的一些target,以及另外一个target集合中的另外一些target。总共可以被跟踪的target个数是所有tarcker的最大跟踪数的总和。
两种方案的对比¶
两种方案的主要区别是,对于单tracker的情况,你只能同时跟踪一个target集合中预先设置的数量的target,但你不能控制哪个target永远可以被跟踪(即使这个target在场景中,由于检测顺序是随机的,所以无法保证某个target一定会被检测到并被跟踪)。但是多个tracker可以做到这一点。你可以将一个target分配给某个只跟踪一个target的tracker来跟踪,那么只要这个target在场景中,它就一定被检测并跟踪到。
相对于单tracker方案,多tracker方案没有性能影响,跟踪性能主要取决于所有tracker同时跟踪的target数目之和。
Editor设置(Unity)¶
simultaneous number可以在Tracker inspector上设置,它可以在运行时修改并生效。target需要load到的tracker可以在Target inspector上设置,它也可以在运行时修改并生效。
世界中心模式(Unity)¶
现在有三种模式。你可以从 ARCameraBaseBehaviour Class API文档中获取更多信息。
效率和数量限制¶
EasyAR逻辑上不限制最大可跟踪的target数目。最大的可跟踪target的个数取决于硬件性能和target在场景中的大小。
在PC上可以流畅的同时跟踪10个以上的target。在主流智能机上,可以流畅的同时跟踪4~6个target。