【EasyAR学习】平面追踪、表面跟踪和运动跟踪、稀疏空间地图

项目实战可看此篇文章

EasyAR项目图像识别与模型交互(全网首发,保姆级教程)_北村南的博客-CSDN博客

基础内容

可以在unity中调试运行:3D物体跟踪+平面图像跟踪

需要打包后在手机上运行:稀疏\稠密空间地图+运动跟踪+表面跟踪+录屏

easyar在unity的基本运行

平面追踪

功能:检测有丰富纹理的平面物体

准备:一张物体图片

原理:系统会根据图片自动计算特征数据

两种追踪模式

ConstantValueDescription
PreferQuality0优先质量
PreferPerformance1优先性能

官方提供图片识别度:EasyAR -检测可识别度

单图像跟踪

使用ImageFile文件进行跟踪

1添加EasyAR_ImageTracker-1 Prefab到场景

2添加ImageTarget Prefab到场景

3配置Camera,设置MainCamera,Solid Color,黑色

4创建StreamingAssets文件夹并在其中添加识别图

5配置ImageTarget

注意:这里scale是现实世界中物体的宽度,单位是米

6添加跟随ImageTarget的3D内容

7可以直接在windows中运行

8也可以在Android设备上运行

使用data文件进行跟踪

1 EasyAR--Image Target Data

2

多图像跟踪

1方法:修改Image Tracker中的Simultaneous Target Number值

2使用多Tracker进行跟踪:表示一些模型都是由我这个tracker来管理的

3一张图片也可有多个模型

c#脚本程序控制

1添加控制器

 

 2添加脚本

3添加游戏对象

4代码对应的对象配置

C#语言实现点击出现和消失功能

using System.Collections;
using System.Collections.Generic;
using System;
using UnityEngine;
using easyar;

public class ITcon : MonoBehaviour
{
    // Start is called before the first frame update
    public ImageTrackerFrameFilter tracker;
    public ImageTargetController targetController;
    

public void SetTracker(bool status)
    {
        tracker.enabled = status;	//设置是否跟踪
    }
public void SetTarget(bool status)
    {
        if (status)
        {
            targetController.Tracker = tracker; //加载图像
        }
        else
        {
            targetController.Tracker = null;    //卸载图像
        }
    }

}

平面图像跟踪视频播放

3D物体跟踪

表面跟踪和运动跟踪

功能:在空间内出现3D物体,随着使用者位置的移动,3D物体位置不发生变化

表面跟踪基本结构

运动跟踪基本结构

使用方法:在手机上才能运行

表面跟踪基本配置

1 EasyAR_SurfaceTracker和WorldRoot拖入场景

2 选中EasyAR_SurfaceTracker游戏对象,将WorldRoot游戏对象拖到World Root Controller属性中为其赋值

3 在WorldRoot下放入需要使用的3D模型

4 调整3D物体在主摄像机的位置

实现效果

当设备小范围移动时,3D物体位置变化不大。当设备大范围移动时,3D物体也会跟着变化,也就是会受周围环境的影响。

总结:适合小范围的移动,实现效果不是很好

运动跟踪基本配置

1 EasyAR_MotionTracker和WorldRoot拖入场景

2 与平面跟踪基本配置一样

实现效果

总结:在大范围移动后,回头看3D物体位置基本没有变化,相比于表面跟踪其稳定性要好很多很多。

稀疏空间地图

背景:以运动跟踪为基础,将二维图像变成三维图像

作用:扫描环境形成三维视觉地图,提供视觉定位跟踪

可多个设备实时共享,实现多人互动

可同时加载多个地图

精度影响因素:纹理、透明度、色调、光照、角度、定位,有一定的环境要求,主要是光线不要太暗

对象解析

EasyAR+WorldRoot:标准运动跟踪

SparseSpatialMapWorker:游戏对象管理者

SparseSpatialMap:游戏对象,在同个场景可有多个

功能解析

SparseSpatialMapWorker:

BuilderMapController.Host:保存地图的方法,需输入地图名称和缩略图(可输入no)

BuilderMapController.MapHost:保存地图的返回值,关键可返回地图ID和名称,因为官方没有提供API可实现自动获取地图ID和名称

Localizer.start:开始定位

Localizer.stop:结束定位

SparseSpatialMap:

Source Type:Map Bulder(建立地图),Map Mannager(定位,若填上地图信息,则无需写程序,直接可以使用,系统自动下载地图并尝试定位)

参考资料

EasyAR UnityPlugin 视频教程合集 -

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北村南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值