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

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Easy平面追踪、表面跟踪和运动跟踪、稀疏空间地图解析与实战

 项目实战可看此篇文章

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

基础内容

image.gif编辑

image.gif编辑

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

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

easyar在unity的基本运行

image.gif编辑

平面追踪

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

准备:一张物体图片

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

image.gif编辑

两种追踪模式

Constant Value Description
PreferQuality 0 优先质量
PreferPerformance 1 优先性能

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

单图像跟踪

使用ImageFile文件进行跟踪

1添加EasyAR_ImageTracker-1 Prefab到场景

2添加ImageTarget Prefab到场景

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

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

5配置ImageTarget

image.gif编辑

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

6添加跟随ImageTarget的3D内容

7可以直接在windows中运行

8也可以在Android设备上运行

使用data文件进行跟踪

1 EasyAR--Image Target Data

2image.gif编辑

多图像跟踪

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

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

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

image.gif编辑

c#脚本程序控制

1添加控制器

image.gif编辑

2添加脚本

image.gif编辑

3添加游戏对象

image.gif编辑

4代码对应的对象配置

image.gif编辑

image.gif编辑

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;    //卸载图像
        }
    }
}

image.gif

平面图像跟踪视频播放

3D物体跟踪

表面跟踪和运动跟踪

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

表面跟踪基本结构

image.gif编辑

运动跟踪基本结构

image.gif编辑

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

表面跟踪基本配置

1 EasyAR_SurfaceTracker和WorldRoot拖入场景

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

image.gif编辑

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

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

实现效果

image.gif编辑

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

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

运动跟踪基本配置

1 EasyAR_MotionTracker和WorldRoot拖入场景

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

实现效果

image.gif编辑

image.gif编辑

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

稀疏空间地图

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

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

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

可同时加载多个地图

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

image.gif编辑

对象解析

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 视频教程合集 -


目录
相关文章
|
6月前
|
定位技术
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
190 0
|
机器学习/深度学习 传感器 算法
支持三维主应力空间中岩石破坏包络线的定量绘制和分析附matlab代码
支持三维主应力空间中岩石破坏包络线的定量绘制和分析附matlab代码
|
机器学习/深度学习 传感器 数据可视化
【免费】以 3D 形式显示热图、高程或天线响应模式表面数据附matlab代码
【免费】以 3D 形式显示热图、高程或天线响应模式表面数据附matlab代码
ArcMap矢量图层的零碎、空洞区域填补与独立区域剔除:消除面部件
本文介绍在ArcMap软件中,基于消除面部件(“Eliminate Polygon Part”)工具,对矢量面要素的零碎、空洞区域加以删除,同时将游离于要素主体之外的部分剔除的方法~
112538 1
ArcMap矢量图层的零碎、空洞区域填补与独立区域剔除:消除面部件
|
编解码 算法 数据可视化
【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)
【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)
110 0
|
6月前
|
图形学 计算机视觉
GEE错误——如何将原有矢量将维度转化为地理坐标系,重投影坐标坐标无法实现?
GEE错误——如何将原有矢量将维度转化为地理坐标系,重投影坐标坐标无法实现?
66 0
|
6月前
ArcGIS矢量面要素中零碎小面积空洞区域补全与单独部分区域分离并剔除
ArcGIS矢量面要素中零碎小面积空洞区域补全与单独部分区域分离并剔除
149 1
|
6月前
|
C++
[Halcon&定位] 解决Roi区域外的模板匹配成功
[Halcon&定位] 解决Roi区域外的模板匹配成功
207 0
|
定位技术 Python
通过ArcMap的模型构建器生成空间坐标系转换的代码
本文介绍在ArcMap软件中,通过创建模型构建器(ModelBuilder),导出地理坐标系与投影坐标系之间相互转换的Python代码的方法~
104 2
通过ArcMap的模型构建器生成空间坐标系转换的代码
3D孪生场景搭建:模型区域摆放
NSDT 3D孪生场景编辑器区域绘制功能详解。
161 0
3D孪生场景搭建:模型区域摆放