限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410
3D 高斯泼贱「火」了已经有一段时间了,Luma平台上3D高斯泼溅的案例也越来越多,看起来质量也都比较好。
我自己也找了一个地方,直接利用我的手机( 12/高清/60帧视频模式)来进行视频拍摄,然后通过Luma平台进行模型的生成,但是最后的效果都并不是很理想,室外的花园基本上处于重建失败的状态,室内的连廊只有一个方向的角度看起来还行,但是另外一个方向看起来情况就比较糟糕。
我仔细看了一下,Luma平台上的建筑案例好像都是用无人机拍的ply格式,所以我也找来无人机飞了一圈,虽然水平很菜,但是从输出的结果上来看,好像确实好很多。
通过这个简单的实践,我好像明白了点什么:
1.在开放稍大的空间,单纯依靠手机,3D高斯泼溅场景重建的成功概率不高。
2.如果覆盖角度缺失,会在某些采集视角上,渲染的效果比较好,而在另外一些视角上表现会比较糟糕
3.采用在高处围绕建模对象旋转拍摄的方法,通常会取得比较好的重建效果,无规律的漫游拍摄整体效果会比较差,但是室内连续空间就很难具备这样的条件。
其背后的原因可能在于,一般的视觉3D高斯场景重建分为三个阶段:
一、初始化阶段,通过SfM方法,获取初始点云和相机姿态估计,并通过初始点云得到3D高斯椭球。
二、投影渲染阶段,3D高斯投影成2D 泼溅椭圆,并利用光栅化进行叠加融合渲染。
三、密集化阶段,通过光栅化后的图像与真值的对比确定误差,并进行误差传递,自适应训练加密3D高斯,欠重建区域复制加密ply格式,过度重建区域分割加密,并剔除透明度极低的3D高斯
而在这个过程中,SfM初始解算以及后续基于多视角的图片进行高斯加密训练在很大程度上就决定了最后场景的效果,在这个过程中利用无人机进行旋转拍摄可以提供更好的视角,所以相对来说训练出来的场景视角的一致性更好,但是由于无人机拍摄的高度的限制,其实地面上的一些地物的细节表现就不太好。
这个就需要通过一些地面的拍摄手段进行联合的解算处理,这样才能够保证多层次细节的实现。
在这个部分,如果是基于类似旋转拍摄的方式,其实在扩展到更大的场景的时候是会存在问题的。
所以现在比较多的尝试都是现在一个小的区域训练,然后再把这些区块合在一起联合训练成为更大的场景,这个应该也会是未来一段时间学术研究以及工程化的重点
继之后,最近浙江大学也发布了一个LoG(Level Of )的解决方案,根据给出的案例演示,目前应该是实现了几平方公里场景的训练和渲染,并且可以做到多层次细节。
原理上和过去三维的多层次细节有点类似,并且按照现在在场景建模的时候就已经生成了相应的多层次的场景,可能就不需要像现在这样先做精细模型,然后再通过一些手工简化或者自动简化的方式来构建这样的层次场景,现在都是端到端训练了。
除了室外空间,室内也是目前我们在项目中做的不满意的地方,它太依赖人工建模,而人工建模也存在周期长,细节表达不完整的问题,如下就是我们通过人工建模的方式作出来的室内模型,由于预算有限也不能无限制的投入到精细模型的建设上。
我们之前在一个水厂中尝试过针对大量的室内生产设备进行人工建模,虽然说最后整体效果还是不错的,但是整个建模投入占比太大,把信息化项目搞成数据项目了,这是难以被接受的,因为我个人认为,快速低成本的自动化3D场景重建才是更有前途的方式。
但是在目前的条件下,依赖Luma这样的平台,去训练室内场景:
第一、按照现有的采集方式,成功概率比较低;
第二、采集出出来的场景是需要和其他场景做合并和整合的,这就需要支持将这部分场景数据导入到新的编辑器中,并支持比较细节的场景编辑处理。
这次其实我也尝试了一下,这样的开源编辑工具,其中包括通过「画刷或者矩形」对周边「毛刺」进行擦除。
因为项目中的应用更大一部分其实是需要第三人称视角,所以在外部「毛刺」的修剪的基础上,同时还需要将室内模型的屋顶擦除,从而支持第三人称视角的集成,但目前还没有比较合适的工具能够支持直接将二者裁剪成两部分,所以视角的切换还需要切换两份不同的数据。
整体使用下来的感受是,整体功能还非常的不成熟,相机控制非常难用,不跟手,配合目前的矩形工具和画刷工具难以实现比较平整的修剪,而且在边缘处,即使经过擦除还是会存在比较明显的毛边现象,影响观感,这个未来是需要有相应的解决方案出来的。
修剪完的数据,需要将数据导出成为通用的格式,支持*.splat或者*.ply格式进一步的导出。看了一下数据导出的体积,经过裁剪的ply格式的室内场景大小约为700M,相对人工建模来说还是比较大的,但是选择压缩模式导出之后,该文件可以减小到40M左右,核心就是将球谐函数的系数转换成颜色存储,这样的数据体积就会小很多,网络应用加载的时候体验就会相对更好一些,但是某些视角上的效果就会打个折扣,毕竟球谐函数主要就是用来支持各向异性光照效果的。
通过压缩和编辑如上数据就可以导入到应用中进行使用了,但是在这个过程中,总结一些个人觉得期待改进的地方:
1、目前支持3D高斯泼溅的一些游戏引擎的插件,基本上也都是动态加载的,但是大部分情况我们是希望这些数据能够在编辑模式下,以静态资源的方式放进去,然后再进行进一步的数据叠合调整,因为高斯泼溅也需要与其他模型做整合,这个做起来就很费劲,这次本来是想做和如下图所示的当前Unity工程做一次叠合的,因为室外花园基本上没有做,但是由于太麻烦也就作罢了。
2、 特定对象的自动化处理,尤其是开放场景中会存在一些车以及人等特定的对象,目前一方面没有灵活的工具支持手工编辑,另一方面目前的一些生成工具也不支持自动化的去除这些对象,并实现自动的修补。
3、对象的自动化提取分割,这也是在工程化需要进一步完善的,是否可以基于现在AI算法上的进展自动实现对象的分割以及属性数据的挂接,而不需要人工进行对象的分割或者是通过矢量数据的动态叠加来实现。
4、地理坐标的支持,这个对于显示表达的结构难度不大,应该只是个工作量的事。
最后,你们觉得3D高斯泼溅还有哪些值得改进的地方,欢迎后台留言交流!
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410