【阅读论文随笔】Feature 3DGS

论文题目:Feature 3DGS: Supercharging 3D Gaussian Splatting to Enable Distilled Feature Fields

只是快速记录一下,阅读后脑中的思路。可能会不严谨,如果有任何错误,感谢纠正!
在这里插入图片描述

特征 3DGS 是一种新颖的三维高斯泼溅启发框架,利用2d foundation model的指导,对特征场进行提炼。
在这里插入图片描述

这里,我以clip-lseg 为例。从pipeline的右侧我们可以看到,给定一幅图像后,CLIP-LSeg 会生成language feature(语言特征)。在左侧,每个高斯都初始化一个semantic feature(语义特征) (开始时是一个低维随机变量)。这里引入了一个加速模块(speed-up module),使语言特征空间语义特征空间保持一致。该模块是一个轻量级卷积解码器。

由于我们计算的是渲染特征图(dim = N)和语言特征嵌入(dim = M)之间的损失,因此理想的条件是维度相同。然而,由2d foundation model生成的特征维度较高,导致计算开销很大。实际上,语义特征比语言特征维度要小得多。解码器通过将低维语义特征映射到高维语言特征空间来解决这个问题。这种设计可以让模型在rasterization阶段在低维空间中进行高效计算,而解码器则确保与高维空间对齐,以便在渲染后进行损失计算。

### 3D 图形特性实现与解释 对于希望理解或实现与3D图形相关的功能而言,重要的是先掌握计算机如何处理三维空间中的对象以及这些对象是如何渲染到二维屏幕上的过程[^1]。 #### 理解3D图形基础概念 3D图形涉及多个核心组件和技术: - **几何建模**:创建物体的形状和结构。这通常通过定义顶点、边和面来完成。 - **变换操作**:包括平移、旋转、缩放等动作,用于改变模型的位置、方向和大小。 - **光照计算**:模拟光源对场景内各表面的影响,从而赋予图像真实感。 - **材质属性**:指定不同材料的颜色、反射率和其他物理特征。 - **纹理映射**:将图片应用至多边形表面上增加细节层次。 - **投影转换**:把3D坐标系下的数据转化为适合显示于平面显示器上的形式。 为了验证GPU是否支持CUDA技术以便加速上述某些运算环节,在Linux环境下可以通过命令`$ lspci | grep -i nvidia`检查是否存在NVIDIA显卡设备。 #### 实现简单3D图形程序示例 下面是一个简单的Python脚本例子,它利用PyOpenGL库绘制一个基本立方体并对其进行旋转变换展示动画效果: ```python import sys from PyQt5.QtWidgets import QApplication, QOpenGLWidget from OpenGL.GL import * from OpenGL.GLU import * class MyGLWidget(QOpenGLWidget): def initializeGL(self): glClearColor(0.0, 0.0, 0.0, 1.0) def paintGL(self): global angle glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) glEnable(GL_DEPTH_TEST) glLoadIdentity() gluLookAt(0, 0, 5, 0, 0, 0, 0, 1, 0) glRotatef(angle, 1, 1, 1) glBegin(GL_QUADS) colors = [(1,0,0),(0,1,0),(0,0,1),(1,1,0), (1,0,1),(0,1,1),(0.5,0.5,0.5)] i = 0 for surface in ((4,7,6,5), (3,2,6,7), (2,1,5,6), (1,0,4,5), (0,3,7,4), (0,1,2,3)): glColor3fv(colors[i]) for vertex in surface: glVertex3fv(vertices[vertex]) i += 1 glEnd() vertices = [[-1,-1,-1], [1,-1,-1], [1,1,-1], [-1,1,-1], [-1,-1,1], [1,-1,1], [1,1,1], [-1,1,1]] angle = 0 if __name__ == '__main__': app = QApplication(sys.argv) widget = MyGLWidget() timer = QTimer(widget) def update(): global angle angle += 1 widget.update() timer.timeout.connect(update) timer.start(10) widget.show() sys.exit(app.exec_()) ``` 此代码片段展示了如何设置OpenGL环境,并在一个窗口中呈现不断自转的彩色正方体。这里使用了Qt框架作为GUI工具包,而实际绘图工作则交给了Open GL API负责执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值