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

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
大数据开发治理平台 DataWorks,不限时长
实时计算 Flink 版,5000CU*H 3个月
简介: 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 视频教程合集 -


目录
相关文章
|
2月前
|
定位技术
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
84 0
|
10月前
|
机器学习/深度学习 传感器 算法
支持三维主应力空间中岩石破坏包络线的定量绘制和分析附matlab代码
支持三维主应力空间中岩石破坏包络线的定量绘制和分析附matlab代码
|
10月前
|
机器学习/深度学习 传感器 数据可视化
【免费】以 3D 形式显示热图、高程或天线响应模式表面数据附matlab代码
【免费】以 3D 形式显示热图、高程或天线响应模式表面数据附matlab代码
ArcMap矢量图层的零碎、空洞区域填补与独立区域剔除:消除面部件
本文介绍在ArcMap软件中,基于消除面部件(“Eliminate Polygon Part”)工具,对矢量面要素的零碎、空洞区域加以删除,同时将游离于要素主体之外的部分剔除的方法~
112402 1
ArcMap矢量图层的零碎、空洞区域填补与独立区域剔除:消除面部件
|
2月前
|
传感器 人工智能 搜索推荐
用 ChatGPT 4.0 实现获取并保存 RealSense 相机的深度图像,处理colorizer,histogram equalization配置,解决深度图像颜色分布异常问题
用 ChatGPT 4.0 实现获取并保存 RealSense 相机的深度图像,处理colorizer,histogram equalization配置,解决深度图像颜色分布异常问题
64 0
用 ChatGPT 4.0 实现获取并保存 RealSense 相机的深度图像,处理colorizer,histogram equalization配置,解决深度图像颜色分布异常问题
|
11月前
|
编解码 算法 数据可视化
【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)
【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)
|
2月前
ArcGIS矢量面要素中零碎小面积空洞区域补全与单独部分区域分离并剔除
ArcGIS矢量面要素中零碎小面积空洞区域补全与单独部分区域分离并剔除
|
2月前
|
定位技术
基于ENVI实现栅格遥感影像按图层行列号与像元数量划定矩形研究区域并裁剪
基于ENVI实现栅格遥感影像按图层行列号与像元数量划定矩形研究区域并裁剪
|
2月前
|
C++
[Halcon&定位] 解决Roi区域外的模板匹配成功
[Halcon&定位] 解决Roi区域外的模板匹配成功
93 0
|
10月前
|
定位技术 Python
通过ArcMap的模型构建器生成空间坐标系转换的代码
本文介绍在ArcMap软件中,通过创建模型构建器(ModelBuilder),导出地理坐标系与投影坐标系之间相互转换的Python代码的方法~
通过ArcMap的模型构建器生成空间坐标系转换的代码