ARFoundation之路-3D物体识别之一

article/2025/9/11 18:05:47

版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。

  3D物体跟踪技术,是指通过图像处理技术对摄像头中拍摄到的3D物体识别定位并对其姿态进行跟踪的技术。3D物体跟踪技术的基础也是图像识别,但比前述图像识别跟踪要复杂得多,原因在于现实世界中的物体是三维的,从不同角度看到的物体形状、纹理都不一样,在进行图像对比时需要的数据比2D图像识别要多得多。

  在ARFoundation中,3D物体跟踪通过预先记录3D物体的空间特征信息,在真实环境中寻找对应的3D真实物体对象,并对其姿态进行跟踪。与图像跟踪类似,要在ARFoundation中实现3D物体识别跟踪也需要一个参考物体库,这个参考物体库中的每个对象都是一个3D物体的空间特征信息。获取参考物体空间特征信息可以通过扫描真实3D物体采集其特征信息,生成.arobject参考物体空间特征信息文件,.arobject文件只包括参考物体空间特征信息,不能用该文件复原参考物体结构。。参考物体空间特征信息对快速、准确识别3D物体起着关键作用。

(一)获取参考物体空间特征信息

  Apple提供了一个获取物体空间特征信息的扫描工具,这是一个XCode工程源码,需要自己编译,源码名为 Apple’s Object Scanner app[https://developer.apple.com/documentation/arkit/scanning_and_detecting_3d_objects],读者可自行下载使用XCode编译。该工具的主要功能是扫描真实世界中的物体并导出.arobject文件,可作为3D物体检测识别的参考物体。

  参考物体空间特征信息对后续3D物体检测识别速度、准确性有直接关系,因此,正确的扫描生成.arobject文件非常重要,遵循下述步骤操作可以提高扫描成功率。扫描过程其实是对物体表面3D特征点信息与空间位置信息的采集过程,这是一个计算密集型的工作,为确保扫描过程流畅、高效,建议使用高性能的iOS设备,当然扫描工作可以在任何支持ARKit的设备上进行,但高性能iOS设备可以更好的完成这一工作。

在这里插入图片描述

  1、将需要扫描的物体放置在一个背景干净不反光的平整面上(如桌面、地面),运行工具应用,将被扫描物体放置在摄像头正中间位置,如果工具检测到物体会出现一个空心长方体(包围盒),移动手机,将长方体大致放置在物体的正中间位置,如上图左图所示,屏幕上也会提示包围盒的相关信息,但这时包围盒可能与实际物体不匹配,点击“Next”可调整包围盒大小。

  2、在正式扫描之前需要调整包围盒的大小,工具程序只采集包围盒内的物体特征点信息,因此,包围盒大小对采集信息的完整性非常关键。围绕着被扫描物体移动手机,工具程序会尝试自动调整包围盒的大小,如果自动调整结果不是非常理想,也可以手动进行调整,方法是长按长方体的一个面,当这个面出现延长线时拖动该面可以移动该面,长方体6个面都可以采用类似方法进行调整。包围盒不要过大或过小,过小采集不到完整的物体特征点信息,过大可能会采集到周围环境中的物体信息,不利于快速检测识别3D物体。调整好后点击“Scan”开始对物体空间特征信息进行采集,如上图左2所示。

  3、在开始扫描物体后,工具程序会给出视觉化的信息采集提示,其会将成功采集过的区域用淡黄化标识出来,如上图石2所示。

  4、缓慢移动手机(保持被扫描物体不动),从不同角度遂面扫描物体,确保包围盒的所有面都成功扫描(通常底面不需要扫描,只需要扫描前后左右上5个面即可),如上图右图所示,工具程序会在所有面信息采集完后自动进入下一步,或者在采集完所有信息后可以手动点击“Finish”进行到下一步,如果在未完整采集到所需信息时点击“Finish”则会提示采集的信息不足,如下图所示。
在这里插入图片描述

  5、在采集完物体特征信息后会在物体上显示一个X,Y,Z的三维彩色坐标轴,如下图左图所示。这个坐标轴的原点表示这个物体的原点(这个原点代表的就是模型的局部坐标系的原点),可以通过拖动三个坐标轴边上的小圆球调整坐标轴的原点位置。在图中可以看到“Load Model”按钮,点击该按钮可以加载.usdz格式文件,加载完后会在三维坐标轴原点显示该模型,就像是在真实环境中检测到3D物体并加载数字模型一样。

  6、在调整好坐标轴后可以对采集的空间特征信息进行测试验证,点击“Test”进行测试,如下图中图所示。将被扫描物体放置到不同的环境、不同的光照下,使用摄像头从不同的角度查看该物体,看能否正确检测出物体的位置及姿态,如果出现验证时无法检测识别的问题,说明信息采集不太完整,需要重新扫描采集一次,如果验证无问题则可导出使用。导出可以直接点击“Share”导出该单个物体采集的空间特征信息文件,如下图右图所示,也可以点击左上角的Merge Scans合并多个物体空间特征信息文件,如下图右2所示,合并可以是合并之前采集导出的.arobject文件,也可以开始新的物体扫描合并两次扫描结果。

在这里插入图片描述
  7、在点击“Share”后该工具程序会将采集的物体空间特征信息导出为.arobject文件,在打开的导出对话框中,如上图右图所示,可以选择不同的导入方式,可以保存到云盘,也可以通过邮件、微信等媒介发送给他人,也可以通过AirDrop(隔空投送)的方式直接投送到Mac计算机或其他iOS设备。在使用AirDrop投送到Mac计算机时,只需要打开Finder,只需点击“隔空投送”,接受来自手机发送的文件即可(在已完成配对的情况下,还需要打开Mac计算机的蓝牙),如下图所示,接受的文件存储在下载文件夹中,后辍为.arobject。

在这里插入图片描述

  在得到参考物体的空间特征信息文件,即.arobject文件后,就可以将其用于后续的3D物体检测识别中了。

(二)扫描获取物体空间特征信息的注意事项

  如前所述,参考物体空间特征信息对3D物体识别的速度、准确性有非常大的影响,因此,在扫描获取参考物体空间特征信息时,遵循以下原则可大大的提高参考物体空间特征信息的可用性及保真度。

  扫描环境
  1、确保扫描时的照明条件良好,被扫描物体有足够的光照,通常要在250-400流明。
  2、使用白光照明,避免暖色或冷色灯光照明。
  3、背景干净,最好是无反光、非粗糙的中灰色背景。

  被扫描物体
  1、将被扫描物体放置在摄像机镜头正中间,最好与周边物体分开一段距离。
  2、被扫描物体最好有丰富纹理细节,无纹理或反光物体不利于特征信息提取。
  3、被扫描物体大小适中,不过大或过小。扫描或检测识别时对可放在桌面的中等尺寸物体有特殊优化。
  4、被扫描物体最好是刚体,不会在扫描与检测识别时发生融合、折叠、扭曲等影响特征点空间信息的形变。
  5、扫描时的环境光照与检测识别时的环境光照信息一致时效果最佳,应防止扫描与检测识别时光照差异过大。
  6、在扫描物体时应遂面缓慢扫描,不要大幅度快速移动手机。

参考文献

1、Scanning and Detecting 3D Objects Scanning and Detecting 3D Objects


http://chatgpt.dhexx.cn/article/QgLxkZCm.shtml

相关文章

ARFoundation系列讲解 - 57 3D物体识别一

一、介绍 目前在ARFoundation中,3D物体识别只支持A9处理器或更高版本的iOS设备,系统版本要求iOS 12或更高版本,Android不支持此功能 。使用3D物体识别跟踪功能需要预先采集3D物体特征点信息。苹果公司给我们提供了一个采集3D物体特征点工具,我们需要下载并使用Xcode编译成应…

实战三:手把手教你实现物体识别

实战三:手把手教你实现物体识别 一、基于HaadAdaboost实现人脸识别 1.原理介绍(参考下面的博客文章) http://www.cnblogs.com/ello/archive/2012/04/28/2475419.html Haar分类器 Haar-like特征积分图方法AdaBoost级联 Haar分类器算法的…

手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码

文章目录 前言一、物体识别算法原理概述1、物体识别的概念2、Yolo算法原理概述 二、opencv调用darknet物体识别模型(yolov3/yolov4)1、darknet模型的获取2、python调用darknet模型实现物体识别3、LabVIEW调用darknet模型实现物体识别yolo_example.vi4、L…

颜色和移动物体识别系统

颜色和移动物体识别系统 1.开发工具 Python版本:Anaconda 的python环境3.8版本 开发软件:Pycharm社区版 识别模型:深度学习模型,普通学习模型 相关模块:opencv-python3.4.8.29模块 2.环境搭建 安装Anaconda并将路径添加…

[Vuforia]二.3D物体识别

之前说过10之后的版本没有3dScan了,所以还是9.8的版本或者之前更早的版本。 3d物体扫描需要先下载扫描的APK进行扫面。 首先要在手机上装一个扫描程序,扫描现实中的三维物体,然后上传高通官网,在下载成UnityPackage类型让Unity能…

K210视觉体验—物体识别

K210视觉体验—物体识别 使用设备ZTFR开发板 人脸识别构造函数导入模型 示例代码基础测试 使用设备 ZTFR开发板 人脸识别 首先简单介绍一下 K210 的 KPU。KPU 是 K210 内部一个神经网络处理器,简单来说就是 KPU 能加载和运行各种现成的 AI 算法模型,实现…

tensorflow 物体识别

tensorflow推出的object detection模块,为我们做物体检测提供了极大的便利,如果还没有安装该模块,可以参照 http://blog.csdn.net/hanshuobest/article/details/79222685 下面的示例演示如何用已训练的模型做物体检测 import numpy as np …

计算机视觉物体识别的过程,计算机视觉之从OpenCV到物体识别(二)

前言:上一章节我们学会了图片、视频以及外设获取帧图片的方式,以及OpenCV 的灰度图片处理。计算机不像人眼可以很轻易地辨别物体,本质是将一张图片转换成灰度图,通过一定的模型训练,使得机器能够从0,1(黑与白)中分辨物体的特征,由局部到整体,图片越复杂,所需的训练程度…

unity c# 触摸屏物体识别桌算法

unity源码地址链接:unityc#触摸屏物体识别桌算法-C#文档类资源-CSDN下载 实操的时候出现算出来的坐标不对,没有时间去找问题,优化了,所以代码仅供参考。 使用的是Lean Touch插件,免费的。 模块由三个点构成&#xf…

如何用AR引擎技术, 5步优雅实现物体识别和跟踪

AR技术让应用实现虚拟世界和现实世界的融合,让开发者的创意和脑洞能够拥有更多炫酷有趣的呈现方式。AR拍照、AR购物、AR教育、AR搜索等丰富应用场景,凭借着AR技术的加持,为用户带来更优质的沉浸式体验,为用户创造更多价值。 例如…

物体识别全流程(Ubuntu16.04)结合ROS

物体识别全流程(Ubuntu16.04)结合ROS 1.使用labellmg,标记图片,生成xml标签 在此下载labellmg包 下载之后解压到要放置的目录 推荐使用Python3Qt5 打开labellmg包 在当前目录终端下运行如下命令行 sudo apt-get install pyqt5-…

opencv人脸识别以及自定义物体识别系统

目录 一、简介: 二、软硬件应用: 三、模块介绍: (一)人脸识别: (二)、自定义物体识别: (三)、图片展示: (四&#x…

opencv物体识别-识别水果

前言 玩一玩用opencv做一些简单的物体识别 1.思路讲解 我们基于简单的opencv的阈值分割,通过这个阈值分割,我们能把我们需要识别的物体在二值图里面变成白色,其余的变成黑色。然后对我们分割出来的物体部分提取轮廓,算出覆盖轮…

物体识别

一、物体识别 图像识别:很重要,是很多算法的基础 图像识别定位:识别出来是猫,且定位出猫的位置 物体检测:每个图像中含有多物体,检测出有几个个体,并框出来位置 图像分割:不仅仅框…

【AI技术】物体识别概述1

【AI技术】物体识别概述1 1、背景2、物体识别3、应用 1、背景 主要针对客户以及初学者概述物体识别。 2、物体识别 物体识别又叫目标识别,物体分类,图像分类,习惯性称为图像分类,即对整张图片进行分类。 物体识别针对的是物体分…

目标检测和物体识别的方法有哪些?如何进行物体定位和分类?

目标检测和物体识别是计算机视觉领域中重要的任务,旨在从图像或视频中自动定位和识别出不同类别的物体。这些任务在许多应用领域中具有广泛的应用,如自动驾驶、视频监控、人机交互等。本文将介绍目标检测和物体识别的方法以及如何进行物体定位和分类。 一…

小程序 跳转 公众号 文章

1.通过组件 web-view https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html <web-view src"https://mp.weixin.qq.com/s/Cz4x4QpvF_Pozn7xjYOVyw"></web-view>2.如果是关联好小程序的公众号 1.如果是 左图文章 都是 https://m…

微信小程序跳转公众号h5页面

小程序提供了web- view组件进行用来内嵌网页 根据限制说明准备域名即可&#xff0c;开发阶断可以使用http的域名&#xff0c;在开发者工具中勾选不验证https证书即可&#xff0c;发布上线时必须使用https的域名。 同时需要小程序后台配置业务域名。

微信小程序跳转微信公众号

1 webview 嵌套 微信公众号的页面 然后 文章里 添加 公众号二维码 然后引导用户长按识别公众号 2 公众号有关注的页面 路径 需要自己找 我记得是替换什么officeid啥的 百度即可 3 利用<official-account bindload"lookSuccess" binderror"lookFai…

微信小程序跳转公众号

长按识别跳转 步骤&#xff1a; 新建一个页面使用web-view组件的src链接到公众号编辑好的一篇带有公众号的二维码的文章 微信规则只有小程序关联的公众号里的文章可以长按识别二维码 <template><view><!--微信规则只有小程序关联的公众号里的文章可以长按识别…