如何在 Arcore(unity) 中获得 vuforia 云识别功能
How to get vuforia cloud recognition kind of feature in Arcore(unity)
我使用 vuforia 创建了一个统一的原型应用程序,我将图像上传到我的服务器,然后服务器将图像(以及相关的 assetbundle 的 link 元数据)发送到 vuforia 云以将其添加到图像目标数据库。然后当相机跟踪图像目标时统一下载资产包来增强它。
public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
{
TargetFinder.TargetSearchResult cloudRecoSearchResult =
(TargetFinder.TargetSearchResult)targetSearchResult;
mTargetMetadata = cloudRecoSearchResult.MetaData;
Debug.Log(mTargetMetadata);
mCloudRecoBehaviour.CloudRecoEnabled = false;
// Build augmentation based on target
if (ImageTargetTemplate)
{
Debug.Log("Image target activated");
// enable the new result with the same ImageTargetBehaviour:
ObjectTracker tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
ImageTargetBehaviour imageTargetBehaviour =
(ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(
targetSearchResult, ImageTargetTemplate.gameObject);
JsonData jd = JsonMapper.ToObject(mTargetMetadata);
string url = jd["content-url"].ToString();
Debug.Log("video url :"+ "http://192.168.2.92/arads/" + url);
vidPlayer.url = "http://192.168.2.92/arads/"+url;
vidPlayer.Prepare();
if(!vidPlayer.isPlaying)
vidPlayer.Play();
}
}
以上代码是从服务器获取关联视频。我可以用 arcore 或 arfoundation 获得类似的功能吗,我读到 arcore 的参考图像数据库可以有 1000 张图像,
如果我正在跟踪的图像不在当前数据库中怎么办,在这种情况下我可以切换到不同的数据库吗?
每当我在服务器上上传新图片时,是否必须下载图片并将其添加到应用程序的数据库中?
arcore 中的这些图像可以像 vuforia 中那样具有元数据吗?
ARCore 和 Vuforia 的区别在于,在 ARCore 中,您可以在 运行 时间内将图像添加到数据库,因此您不必使用任何服务器。
- 您可以通过修改会话配置来切换到不同的数据库:
GoogleARCore.ARCoreSessionConfig.AugmentedImageDatabase
- 正如我所说,您可以在 运行 时间内将图像添加到数据库,因此只要您的项目层次结构中有图像,您就可以
add images
到数据库。
- 我不认为拥有元数据是可能的,您唯一可以获得的信息是图像的数据库索引。
祝你好运!
我使用 vuforia 创建了一个统一的原型应用程序,我将图像上传到我的服务器,然后服务器将图像(以及相关的 assetbundle 的 link 元数据)发送到 vuforia 云以将其添加到图像目标数据库。然后当相机跟踪图像目标时统一下载资产包来增强它。
public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
{
TargetFinder.TargetSearchResult cloudRecoSearchResult =
(TargetFinder.TargetSearchResult)targetSearchResult;
mTargetMetadata = cloudRecoSearchResult.MetaData;
Debug.Log(mTargetMetadata);
mCloudRecoBehaviour.CloudRecoEnabled = false;
// Build augmentation based on target
if (ImageTargetTemplate)
{
Debug.Log("Image target activated");
// enable the new result with the same ImageTargetBehaviour:
ObjectTracker tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
ImageTargetBehaviour imageTargetBehaviour =
(ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(
targetSearchResult, ImageTargetTemplate.gameObject);
JsonData jd = JsonMapper.ToObject(mTargetMetadata);
string url = jd["content-url"].ToString();
Debug.Log("video url :"+ "http://192.168.2.92/arads/" + url);
vidPlayer.url = "http://192.168.2.92/arads/"+url;
vidPlayer.Prepare();
if(!vidPlayer.isPlaying)
vidPlayer.Play();
}
}
以上代码是从服务器获取关联视频。我可以用 arcore 或 arfoundation 获得类似的功能吗,我读到 arcore 的参考图像数据库可以有 1000 张图像,
如果我正在跟踪的图像不在当前数据库中怎么办,在这种情况下我可以切换到不同的数据库吗?
每当我在服务器上上传新图片时,是否必须下载图片并将其添加到应用程序的数据库中?
arcore 中的这些图像可以像 vuforia 中那样具有元数据吗?
ARCore 和 Vuforia 的区别在于,在 ARCore 中,您可以在 运行 时间内将图像添加到数据库,因此您不必使用任何服务器。
- 您可以通过修改会话配置来切换到不同的数据库:
GoogleARCore.ARCoreSessionConfig.AugmentedImageDatabase
- 正如我所说,您可以在 运行 时间内将图像添加到数据库,因此只要您的项目层次结构中有图像,您就可以
add images
到数据库。 - 我不认为拥有元数据是可能的,您唯一可以获得的信息是图像的数据库索引。
祝你好运!