BundleFusion那些事儿

背景:前面几篇博客中写了很多关于BundleFusion的东西,主要包括bundlefusion的论文阅读笔记,.sens数据集的生成等,经过最近几天的工作,我对bundlefusion又有了新的技术积累,在这里整理一下,也算是理一下思路,然后开始新的工作。

1. 生成.sens文件

根据在https://graphics.stanford.edu/projects/bundlefusion/下载的.zip的数据集可知,一个数据集中包含,以frame-xxxxxx.color.png的彩色图像,有以frame-xxxxxx.depth.png命名的深度图像,以及,以frame-xxxxxx.pose.txt命名的位姿文件,该文件中存储的是一帧位姿,一个4x4的矩阵。如下图所示,所以首先你需要想办法得到这种标准格式的数据。我曾经把我使用kinectV2相机获取的深度图和彩色图对齐后的数据编辑为如下格式,所有的.pose.txt文件中我都写入单位阵。我还试着将TUM数据集和ICL-NUIM数据集编辑成下面这种格式,并且我将数据集提供的groundtruth写入到.pose.txt文件中,目的是想让bundlefusion按照groundtruth位姿来重建。由于数据集提供的groundtruth是用四元数表示的旋转,所以需要将四元数转换为旋转矩阵,由于我使用的是python脚本,这个是时候,scipy库就派上用场了,这里面有很多转换,包括,四元数,旋转矩阵,旋转向量,欧拉角之间的转换。

当然不要忘了,在目录的最后还有一个info.txt文件, 除了彩色图的尺寸,相机的内参数,要按照实际情况改写之后,还有很关键的一个参数就是m_depthShift,在BundleFusion官网上下载的数据集,info.txt中设置的m_depthShift =1000,而在我生成TUM和ICL的数据集时,这个值就得设置为10000,否则生成的数据集,重建不出来模型,具体的分析请阅读我的这篇博客,

BundleFusion算法虽然在实时重建和场景重建方面有一定的优势,但也存在一些不足之处: 1. 对大规模场景的处理能力有限:BundleFusion算法在处理大规模场景时可能会面临内存和计算资源限制的挑战。由于需要存储和处理大量的点云数据,算法的实时性能可能会受到限制。 2. 对运动快速或动态场景的鲁棒性较差:BundleFusion算法在处理运动快速或动态场景时可能会出现模糊或伪影等问题,导致重建结果的不准确性。算法对于相机姿态变化和场景动态性的鲁棒性有待改进。 3. 对纹理缺乏鲁棒性:由于BundleFusion算法主要依赖于特征点的提取和匹配,对于纹理缺乏或低纹理区域的处理可能会存在困难。这可能导致在低纹理区域的重建结果较差。 4. 对平面结构和非平面结构的处理不平衡:BundleFusion算法在处理平面结构和非平面结构时可能存在处理不平衡的问题。对于非平面结构,算法可能需要更复杂的建模和优化策略来捕捉其几何形状和细节。 5. 受限于输入传感器:BundleFusion算法对输入传感器的要求较高,需要精确的相机姿态和深度图像信息。这可能限制了算法在一些设备或传感器上的适用性。 综上所述,BundleFusion算法在实时重建和场景重建方面具有一定的局限性。然而,随着技术的不断发展和改进,这些问题有望得到进一步解决,并提高算法的稳定性和鲁棒性。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值