【Vuforia+Unity】AR05-实物3D模型识别功能实现(ModelTarget )

不管是什么类型的识别Vuforia的步骤基本都是:

把被识别的物体转成图、立体图、柱形图,3D模型、环境模型,然后模型生成Vuforia数据库-导入Unity-参考模型位置开始摆放数字内容,然后参考模型自动隐藏-发布APP-识别生活中实物-数字内容叠加上去!

对于3D物体的识别,可以是虚拟的也可以是实物的,但是对于虚拟的三维模型意义不大,我们完全可以把三维模型放在屏幕上截一张图,以图片识别的方式召唤数字内容,不过在虚拟现实中或许有用。

因此本文探讨的技术路线主要是,生活中的实物被摄像头识别后,在对应的三维位置弹出数字内容。

经过探究得出技术路线:

1.首先把生活场景某个实物模型进行扫描成模型(这会用到一个APP)然后放入PC端的软件(vuforia-windows-modeltargetgenerator)生成Vuforia数据库

2.如果是自建模型直接放入PC端的软件(vuforia-windows-modeltargetgenerator)生成Vuforia数据库

3.如果上面2条都不想做,没条件,可以下载第三方生成模型的APP(Scaniverse\RealityScan\Luma)然后导出放在PC端的软件(vuforia-windows-modeltargetgenerator)生成Vuforia数据库

3.Vuforia数据库导入Unity

4.在Unity搭建ModelTarget ,选择模型数据库构建数字内容

咱们一步一步的说

1.实物扫描为模型-官方的3D物体扫描APP 

这个Vuforia官方APP叫 Creator App

1.1官方的3D物体扫描APP下载地址:

Tool Download | Engine Developer Portal



但是别高兴太早,这个APP对设备是有要求的:

 1.2这个APP对设备的要求

手机设备必须具有激光雷达扫描仪LIDAR不然不起作用,具体如下:Supported Versions | Vuforia Library

使用LiDAR:只有iPhone 12 Pro、iPhone 13 Pro、iPad Pro 11 英寸(第2 代和第3 代)和iPad Pro 12.9 英寸(第4 和第5 代)配备激光雷达扫描仪。

相关文章iPhone 12 Pro 的激光雷达能做哪些有趣的事? - 少数派

1.3 官方的3D物体扫描APP使用教程:


APP使用教程 Vuforia Creator App | Vuforia Library

2.实物扫描成3D模型-普通手机

 如果你没有这样的设备,只有普通手机,也有一个APP可以帮助我们快速把生活中实物扫描成3D模型!

推荐几个APP:Scaniverse\RealityScan\Luma

手机帮我我们建模后导出通用格式FBX,然后进行下一步,生成数据库!

3.实物形成模型-用3D软件自建模型

生活中的物体,我们也可以1:1在3Dmax等软件中手动建模,用于识别的数据库,真正识别的时候还是识别现实物体,建模后然后需要用PC端工具把模型导入,生成数据库

4.前面准备好的模型转成Vuforia可识别数据库

导入模型并生成识别数据库,PC端工具下载地址:

Tool Download | Engine Developer Portal

登录,点击创建,输入CAD名字,模型名字(必须和你三维模型在电脑上的真实命名一模一样,不带后缀),加载地址是模型所在文件夹

 然后,无脑下一步!直到最后生成一个模型文件

这个模型文件中选择Unitypackage放入Unity!

双击导入Unity,数据库安装到Unity,就可以拖到场景进行数字内容摆放了

5.在Unity搭建模型识别场景

 右键创建Model Target 和AR camera

把识别后需要召唤的模数字内容,放在ModelTarget 子物体下面即可,如果不满意也可以自己写脚本让数字内容按照自己设计的剧本进行展示!

完毕!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/698267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZooKeeper注册中心:分布式系统的协调大师与服务注册利器(一)

本系列文章简介: 本系列文章将会深入探讨ZooKeeper的各个方面,从基本概念到实际应用,从架构原理到开发实践,帮助读者全面了解和掌握这个强大的注册中心。我们会通过丰富的实例和案例,帮助读者理解和应用ZooKeeper的各种…

SQL面试题及答案

介绍 在快节奏的数据管理和信息技术世界中,导航和操作结构化数据的能力是一项非常重要的技能。SQL,即结构化查询语言,是关系数据库的基石,掌握这种语言的专业人员的需求量很大。SQL 面试在科技行业很常见,潜在的候选人会接受测试以展示他们的知识和解决问题的能力。为了帮…

嵌入式Linux中apt、apt-get命令用法汇总

在Linux环境开发过程中接触ubuntu虚拟机时,在安装软件或者更新软件时apt和apt-get命令使用相对较频繁,下面对这两个命令的用法进行汇总。 apt(Advanced Package Tool)和 apt-get 是用于在基于 Debian 的 Linux 发行版中进行软件包…

Echarts与后台(mongoose)交互

Echarts引入地址可参考 echarts组件引入 <template><div><div id"main" style"width: 600px;height:400px;"></div></div> </template><script setup> import { onMounted, ref } from vue; import * as echa…

协程源码 launch 流程跟踪学习

为了更深入学习协程的底层实现原理&#xff0c;了解协程线程切换的根本本质。也为了以后在工作中可以根据不同的需求场景&#xff0c;更加随心所欲的使用不同的协程。 今天通过 launch 跟踪一下协程的执行流程。 fun getData() {Trace.beginSection("getData");Log.…

[OpenAI]继ChatGPT后发布的Sora模型原理与体验通道

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言OpenAI体验通道Spacetime Latent Patches 潜变量时空碎片, 建构视觉语言系统…

C语言——指针——第2篇——(第20篇)

坚持就是胜利 文章目录 一、指针和数组二、二级指针1、什么是 二级指针&#xff1f;2、二级指针 解引用 三、指针数组模拟二维数组 一、指针和数组 问&#xff08;1&#xff09;&#xff1a;指针和数组之间是什么关系呢&#xff1f; 答&#xff1a;指针变量就是指针变量&…

Kotlin 中注解 @JvmOverloads 的作用

JvmOverloads 注解的作用就是&#xff1a;在有默认参数值的方法加上 JvmOverloads 注解&#xff0c;则 Kotlin 就会暴露多个重载方法。 例如&#xff0c;没有加注解&#xff0c;默认参数没有起到任何作用。 fun f(a: String, b: Int 0, c: String "abc") {}那相当…

多窗口编程

六、多窗口编程 QMessageBox消息对话框&#xff08;掌握&#xff09; QMessageBox继承自QDialog&#xff0c;显示一个模态对话框。用于用户前台信息通知或询问用户问题&#xff0c;并接收问题答案。 QDialog的Qt源码中&#xff0c;派生类往往都是一些在特定场合下使用的预设好的…

物麒平台长按持续音量+-实现方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)&#xff1f;可加我微信hezkz17, 本群提供音频技术答疑服务&#xff0c;群赠送蓝牙音频&#xff0c;DSP音频项目核心开发资料, 1 问题 目前设置为长按音量-&#xff0c;但是默认的是单步加减方式(长按一次变化一格&a…

Leetcoder Day18| 二叉树 part07

语言&#xff1a;Java/Go 今天做了一个小决定&#xff0c;如果时间不够的话&#xff0c;可以先看go去找实习&#xff0c;所以现在加上用go去刷题 530.二叉搜索树的最小绝对差 给你一棵所有节点为非负值的二叉搜索树&#xff0c;请你计算树中任意两节点的差的绝对值的最小值。…

模方把工程换一个电脑,可以改工程读取的数据路径吗?

答&#xff1a;目前暂时还无法修改工程读取的数据路径。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.1新增自动单体化建模功能&#xff0c;支持一键自动提取房屋结构&#xff0c;平均…

C#_扩展方法

简述&#xff1a; 扩展方法所属类必需是静态类&#xff08;类名依据规范通常为XXXExtension&#xff0c;XXX为被扩展类&#xff09;扩展方法必需是公有的静态方法扩展方法的首个参数由this修饰&#xff0c;参数类型为被扩展类型 示例&#xff1a; static class DoubleExtens…

敏捷项目管理在现代软件开发中的应用

在现代软件开发领域&#xff0c;项目管理起着至关重要的作用。随着技术的不断进步和市场需求的快速变化&#xff0c;传统的项目管理方法已逐渐无法满足软件开发的需求。因此&#xff0c;敏捷项目管理应运而生&#xff0c;成为许多软件开发团队的首选方法。本文将探讨敏捷项目管…

蓝桥杯刷题--python-11-前戳和,差分,二分

3956. 截断数组 - AcWing题库 n=int(input()) lis_num=list(map(int,input().split())) lis_num=[0]+lis_num for i in range (1,n+1): lis_num[i]=lis_num[i-1]+lis_num[i] if lis_num[n] % 3: print(0) else: res=0 cnt=0 for j in range (2,n): …

【深基12.例1】部分背包问题

题目描述 阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有 N ( N ≤ 100 ) N(N \le 100) N(N≤100) 堆金币&#xff0c;第 i i i 堆金币的总重量和总价值分别是 m i , v i ( 1 ≤ m i , v i ≤ 100 ) m_i,v_i(1\le m_i,v_i \le 100) mi​,vi​(1≤mi​,vi​≤100)。阿里巴巴…

【C++】STL中List的详细实现解析

文章目录 前言list 代码实现1. 构造函数和析构函数1.1 构造函数1.2析构函数 2.operator的重载 和 拷贝构造函数2.1 拷贝构造2.2 operator的重载 3. 迭代器的实现3.1 普通迭代器3.2 const迭代器 4. 插入和删除5. 测试代码总结 前言 在 C STL&#xff08;标准模板库&#xff09;…

【discuz x3.5】网站迁移记录

近期需要迁移一个discuz x3.5 论坛&#xff0c;记录一下迁移过程&#xff0c;以备用&#xff01; 1、在原网站后台-站长>数据库进行数据备份 2、在根目录打包网站所有文件 3、到官网下载一个跟网站版本相同的安装包 4、把新的安装包里的-install-安装文件夹覆盖到原网站…

mac命令行安装java

安装 sdkman sdkman 是java的一个版本管理的工具&#xff0c;比homebrew安装java更方便。可以安装多个版本的java sdkman 的安装命令如下 # 安装sdkman需要科学上网&#xff0c;先设置一下curl的代理&#xff0c;否则会因为网络原因安装失败 # 我用的clashX&#xff0c;代理…

在C语言中,设置Linux系统时间

C 语言中使用 mktime 函数和 stime 函数来处理时间。 处理之前&#xff0c;需要先获取当前的时间戳。并使用当前的时间戳生成struct tm&#xff0c;struct tm是C语言中用于表示日期和时间的结构体&#xff0c;通常用于在程序中操作和处理日期时间信息。它包含了以下成员变量&a…