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

版权声明: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

课程介绍 本套课程从技术理念到项目实践,教大家系统掌握ARKit技术开发,随心打造iOS端AR增强现实应用。由一开始的开发环境搭建,到Unity ARKit Plugin、ARFoundation ARKit等不同时期技术的讲解。从平面模型放置、识别图片、手势交互、3D物体识别、面部AR贴纸、光照估计、环境探针、多人AR技术,甚至包含ARKit3.0的动作捕捉技术等。除了以上课程内容,更加入了随着技术更新与时俱进更新的ARKit连载技术教学内容。课程收益 轻松理解ARKit的技术原理,从零到一创建自己的第一个AR项目。学习UnityARKit Plugin经典技术,了解ARKit中的常见概念和原理。学会在 ARFoundation 中使用ARKit,进行企业级AR项目开发。学会如何在AR项目里播放模型动画,通过触屏手势交互实现模型的旋转和缩放。 了解ARKit的图片识别,掌握AR卡片、AR书籍的实现方法。 学会使用面部增强技术,实现热门短视频应用的AR贴纸效果,实现面部表情追踪。学会使用ARKit物体检测技术,实现3D物体识别,可以广泛应用于工业、建筑、古董、玩具手办、艺展览等不同场景。学习ARKit中的经典交互案例,优化AR项目的用户体验。熟练使用环境纹理、光照估计技术,让AR内容随当前现实场景自动变化调节,看起来更加真实。基于WorldMap、CollaborativeSession AR技术,实现AR场景的持久化及多人AR体验效果。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_DavidWang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值