EasyAR平面图形跟踪和识别图上显示视频

2023-11-08

功能简介

Planar Image Tracking是用于检测与跟踪日常生活中有纹理的平面物体。所谓“平面”的物体,可以是一本书、一张名片、一幅海报,甚或是一面涂鸦墙这类具有平坦表面的物品或事物。这些物体应当具有丰富且不重复的纹理。

为了创建一个Planar Image Tracking实例,你仅需要准备好一张目标物体的设计图,或者是其正视角度的照片。目标物体的Target数据是在Tracker中自动生成的,除了准备上述图片,你不需要进行任何额外的操作或配置。

图片要求

  • 图片的格式建议为JPG或PNG。
  • 确保你的模板图片或目标物体拥有合适的纹理。“合适”意味着纹理应当具有丰富的细节,且不是遵循某种重复性的模式。纹理细节缺乏或模式重复的物体对检测和跟踪是不利的。
  • 物体内容本身应当尽可能地充满整个画面。
  • 模板图像不能过于狭长,其短边的长度至少应该达到长边长度的20%。
  • 模板图像的尺寸不能过小,也不能过大。建议分辨率介于SQCIF(128x96) 和QVGA(1280x960) 之间。

模板图像如果带有透明通道,则默认会按照白色背景的方式进行处理。如果你的本意并非如此,请避免使用透明通道。

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

设置ARCamera

  • 将场景中相机的标签设置为MainCamera。
  • Clear Flags:Clear Flags: 需要选择为 Solid Color 以确保Camera图像可以正常渲染。如果选择为 Skybox ,Camera图像将无法显示。
  • Background: 这个非必需配置,考虑到使用体验,建议将背景颜色设为黑色以便在Camera设备打开前和切换时以黑色显示。
  • Clipping Planes: 根据识别物体实际的物理距离设置。这里设置Near为0.1(米)以避免相机离物体较近时无法显示。

使用预设创建 AR Session

为了使用方便,在 GameObject 菜单中由许多预设,你可以在大多数情况下使用它们完成你需要的功能,如下图所示:
在这里插入图片描述

创建 ImageTarget

通过 EasyAR Sense > Image Tracking > Target : Image Target 创建 ImageTargetController 。
在这里插入图片描述
这时候场景中ImageTarget应该会显示成问号(注意需要将Gizmos开启,否则无法看到问号)
在这里插入图片描述
然后需要配置这个 ImageTarget。这通常由好几种不同的方法。这里使用其中的一种,使用StreamingAssets中的图片创建target。

在Assets中创建StreamingAssets文件夹
在这里插入图片描述
将需要识别的图片拖入StreamingAssets中。这里选用名片图。
在这里插入图片描述
然后配置这个 ImageTargetController 以使用 StreamingAssets 中的图片,
在这里插入图片描述

  • Source Type: 这里设置为 Image File ,表示将使用图片文件创建ImageTarget。
  • Path Type: 这里设置为 StreamingAssets ,表示 Path 将使用相对于StreamingAssets的路径。
  • Path: 图片相对于StreamingAssets的路径。
  • Name: target名字,可以随意输入。
  • Scale: 根据识别图宽度实际的物理大小设置。这里使用的名片实际大小为9mm,因此设为0.09(米)。
  • Tracker: 需要加载 ImageTargetController 的 ImageTrackerFrameFilter 。在添加ImageTarget时,它会被默认设为场景中的其中一个 ImageTrackerFrameFilter ,添加后仍可修改。

场景中ImageTarget的显示将随Path的输入而随时改变
在这里插入图片描述

添加跟随 Target 或 Map 的3D内容

选中我们需要跟随的Target,然后将我们的跟随模型作为其子物体,然后调整合适的尺寸和位置即可。
在这里插入图片描述
在这里插入图片描述

在target上播放视频

在需要播放视频的Imagetarget下创建一个Quad作为子物体,然后添加VideoPlayer组件,设置好需要播放的视频资源,然后调整Quad到一个合适的大小即可。
在这里插入图片描述

代码检测发现与丢失识别图

 private ImageTargetController controller;
    public Text txt_RemainMsg;
    // Start is called before the first frame update
    void Start()
    {
        controller = GetComponentInParent<ImageTargetController>();

        controller.TargetFound += () =>
        {
            txt_RemainMsg.text = "TargetFound";
        };

        controller.TargetLost += () =>
        {
            txt_RemainMsg.text = "TargetLost";
        };
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EasyAR平面图形跟踪和识别图上显示视频 的相关文章

  • 完美解决 vcpkg 下载速度慢

    vcpkg 下载慢非常令人头痛 下面是一位 github 用户的抱怨 非常真实 The download and compilation time of vcpkg is relatively long So during this wai

随机推荐

  • 人才画像--持续更新

    人力资源管理包括人力资源规划 招聘与配置 培训与开发 绩效管理 薪酬管理及员工关系 六大模块 六大模块之间相辅相成 相互联系 对解决企业人才的 留 选 育 用 问题具有极为关键的作用 大数据时代的到来 为其注入了新能量 有人认为 大数据将成
  • 【面试题】2、Docker和Spring相关

    1 Docker是什么 1 Docker是一个快速交互 运行应用的技术 可以将程序及其依赖 运行环境一起打包为一个镜像 该镜像可以迁移到任意的Linux操作系统 2 运行时利用沙箱机制形成隔离容器 各个应用之间互不干扰 3 移动和移除程序都
  • Oracle的三种高可用集群方案

    转载自 http www cnblogs com baiboy p orc2 html label1 Oracle的三种高可用集群方案 1 RAC Real Application Clusters 多个Oracle服务器组成一个共享的Ca
  • matlab 奇异值分解

    1 奇异值分解 关于matlab中的diag函数 矩阵对角元素的提取和创建对角阵
  • CPT104 习题笔记

    调度算法 时间 突发时间 Burst time 通常 我们忽略I O时间 只考虑进程的CPU时间 因此 突发时间是进程在CPU上执行所花费的总时间 Arrival Time 到达时间是流程进入就绪状态并为其执行做好准备的时间 Exit ti
  • Spring属性占位符PropertyPlaceholderConfigurer的使用

    Spring属性占位符PropertyPlaceholderConfigurer的使用 1 一个简单的Demo 1 1 创建conf xml
  • git clone remote: HTTP Basic: Access denied问题解决

    今天用git下载项目 突然提示 查阅资料才发现是因为最近更改gitlab密码的缘故 进入控制面板如下目录 修改对应的git普通凭据 问题解决
  • 华为这么容易进吗?轻轻松松拿到25K的offer...

    美本计算机专业 代码能力一般 之前有过两段实习以及一个学校项目经历 本人面试的是测试开发岗 期间经历了笔试 gt 性格测试 gt 技术一面 gt 技术二面 gt 总监面 gt OC这几个环节 基本上每周完成一个环节 由于华为面试环节全部完成
  • 实战分享:I2C总线详解

    大家好 我是阿荣 感恩遇见 本文部分图文来源于网络 并经过整合 编辑和勘误 实战分享栏目将重点介绍嵌入式的基础知识 并融合一些实战经验 持续勘误和迭代 建议关注和收藏 WX同名 I2C总线是一种常用的通信接口 让我们先来看看百度百科对它的定
  • 微信小程序 - 暗黑模式(深色模式)

    最近暗黑模式成为了潮流 微信小程序也推出了暗黑模式适配 下面来记录一个下适配暗黑模式 效果图 一 实现 1 开启暗黑模式 在 app json 中配置 darkmode true app json darkmode true 2 配置主题文
  • Linux 下 C语言编写 TCP/IP文件传输

    一 概述 文件传输 分为文件名字和文件内容 传递文件名后 等待另外一端创建相应的文件并回复 然后在开始传输文件内容 以下程序还设计到目录的查询 二 目录的查询 主要头文件 include
  • Android Studio 安装 (MAC)

    一 下载地址 Download Android Studio App Tools Android Developers 二 安装配置 1 Do not import settings 2 Cancel gt Next 3 Standard
  • 极限验证,滑动验证-java实现

    先给大家看个图 图中共色框内的验证码 大家应该见过 今天咱们就实现这个插件 其实这个插件是第三方服务的 极限验证码 官网 http www geetest com 官网有文档还有教程 大家可以自己看 我也是运行官方的源码 1 在官网 htt
  • JS中断循环

    js中断循环 中断循环 for var i 1 i lt 200 i if i 7 0 break 中断循环 document write i t 中断一次循环 继续下面的循环 for var i 1 i lt 100 i if i 3 0
  • 计算机投影仪显示无信号如何解决,投影仪无信号输入的解决办法是什么?

    Lin 4987 2015 11 05 13 27 笔记本电脑连接投影仪无信号 1 检查投影机与电脑连接使用的是VGA线还是HDMI线 2 如果是VGA连接 请检查投影机是否选择到VGA或者电脑模式 如果是HDMI连接的话 请检查投影机是否
  • ECCV 2016《SSD: Single Shot MultiBox Detector》论文笔记

    本学弱喜欢在本子上记笔记 但字迹又丑 望看不懂我的字的大佬不要喷我 看得懂的大佬批评指正
  • HCIA Datacom_DHCP基础与原理、常见的网络服务与应用、PPPoE原理与配置

    DHCP基础与原理 一 应用场景 DHCP服务器能够为大量主机分配IP地址 并能够集中管理 DHCP用来自动分配IP地址 在DHCP中有两个角色 DHCP客户端 DHCP服务器 DHCP是一种类型的C S架构 二 报文类型 1 DHCP D
  • android 使用BitmapShader实现圆形以及放大镜效果

    在一些显示用户头像的时候 大多数都是显示圆形的 而不是显示一个正方形或者长方形 这样显得很呆板 视觉效果也不好看 今天就用二种方式实现图片圆形显示的效果 在先讲这个效果实现之前 讲下BitmapShader到底能干嘛 android有几个关
  • 多尺度无序池化卷积神经网络——MOP-CNN(MultiScale Orderless Pooling)

    本文讲解的是Yunchao Gong发表在2014年的ECCV会议上的 Multi Scale Orderless Pooling of Deep Convolutional Activation Features 中文译名是深度卷积激活特
  • EasyAR平面图形跟踪和识别图上显示视频

    功能简介 Planar Image Tracking是用于检测与跟踪日常生活中有纹理的平面物体 所谓 平面 的物体 可以是一本书 一张名片 一幅海报 甚或是一面涂鸦墙这类具有平坦表面的物品或事物 这些物体应当具有丰富且不重复的纹理 为了创建