基于苹果手机采集数据实现RGBD三维重建

本文介绍了如何利用苹果手机的雷达功能和ARKitAPI采集RGB和深度数据,以及通过第三方App简化数据获取。重点讲述了使用TSDF和Open3D进行三维重建的方法,包括数据预处理、置信度筛选和GPU加速的bundlefusion重建技术。

由于苹果手机自带雷达(pro),因此在进行三维重建过程中,可以借助苹果手机,实现对深度图和rgb图像的采集,再根据手机相机的内参和姿态,实现三维重建。

RGBD数据采集

苹果手机的开发API是ARkit,这意味着如果想获取苹果手机拍摄的深度数据和RGB数据等,需要通过它的api进行开发,调用手机的相机接口,进行获取数据,显然这个流程太麻烦且没有必要,因此有人开发了相关的app,只需要通过app进行拍摄,就可以获取一份数据包,然后导出到电脑即可。

  • 相关程序app介绍:链接
  • image.png
  • 操作也很简单,打开录制,对着物体录制一段视频,然后内存里面就会存储一个文件夹,文件夹名称随机,主要内容包括:
    • confidence:置信度文件夹,记录每一帧深度图的置信度信息,png格式
    • depth:深度图文件夹,记录每一帧深度数据
    • camera_matrix.csv: 相机内参
    • imu.csv: 记录相机移动的数据
    • rgb.mpg: 录制的彩色视频,即rgb数据

进行三维重建

使用app提供方法

该作者同样提供了相关的python处理代码:链接,使用方式也比较简单,只需要将采集的数据文件夹放在项目根目录下,输入命令: python stray_visualize.py <path-to-dataset>即可显示,通过支持查看点云、重建、相机坐标系等参数
image.png
image.png

总结

项目使用tsdf的方式进行三维重建,借助open3D实现可视化和模型生成,其首先根据置信度将深度图进行筛选,小于限定置信度的深度值设置为0,其次将视频处理成rgb帧,融合深度图里,借助相机内参和姿态进行三维重建

tsdf重建

上一种方式也是通过tsdf进行重建,但是是借助open3D来实现,tsdf-fusion-python 是一个比较直观的实现tsdf算法的程序,其主要思想参考:链接
由于tsdf-fusion-python 可以借助gpu进行运算,这意味着对于处理大批量的场景和数据,其运行速度可以远远小于第一种方式,因此,如果需要调用gpu,只需要配置cuda,程序默认会查看能否调用gpu,当然如果不支持gpu方式,那么通过也可以用cpu跑
问题是,tsdf-fusion-python 程序支持的数据格式和第一种方式并不一致,这意味着需要写脚本将采集到的rgbd数据做一层转换,处理成该程序支持的格式,主要流程如下:

def deal_camera_data(flags,data):
    out_path 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

水塔鸡丝

创作不易,感谢支持

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

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

打赏作者

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

抵扣说明:

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

余额充值