2) gaussian-splatting模型查看

news2024/11/15 10:02:14
      本文在上面环境配置好的基础上,下载模型并查看,主要分享SIBR_viewers的编译流程,并简单分析SIBR_gaussianViewer_app的源码结构

目录

  • 1 SIBR_viewers的编译
  • 2 SIBR_gaussianViewer_app源码解析

内容

  • SIBR_viewers的编译流程

       用CMake配置项目, 编译选项选择Visual studio/x64,整个配置过程中,会自动下载所需对应的三方库版本。此过程中由于选择的VS版本不同,OpenCV的配置会存在问题;在之后的编译过程中boost的依赖会存在问题,提示无法解析的外部符号,因此需做如下调整。

1)OpenCV调整

       本地选择的生成器是VS 2017,而自动下载下来的三方库OpenCV只有VC16版本,因此可复制VC16文件夹,将其改名为VC15即可,如下图所示:

2)boost配置

     需要至少1.71.0版本的boost,从vcpkg中安装boost,本地安装的vcpkg为vcpkg-2023.10.19,对应的boost版本为1.83。boost配置如下图所示:

     选择Boost_INCLUDE_DIR路径后,其它boost相关的依赖项会自动找到。

  • SIBR_gaussianViewer_app的源码结构

     

解决方案依次选择文件夹projects,gaussian、apps 下的SIBR_gaussianViewer_app项目。

1)参数设置

     设置模型路径,如下图所示:

模型路径下存在cfg_args文件,并修改其中的source_path路径为SFM后对应的文件夹。

2)参数解析

     读取点云ply文件:

     场景的创建,创建BasicIBRSene对象,解析数据,由于cfg_args中的source_path路径设置的为SFM后对应的文件夹,此处识别的为colmap2类型。@蔡平(caiping)至于与其他类型的区别有待深入研究。

2)视图创建

     创建GaussianView对象:

     其中GaussianView对象有如下成员变量。

     构造函数实现如下:

     解析ply文件:

创建MultiViewManager对象:

3)渲染

由上节创建的GaussianView对象,循环遍历。

调用GaussianView中的onRenderIBR方法,由当前视口状态变量sibr::Camera获取绘制纹理对象sibr::IRenderTarget。

将栅格化的结果以ScreenQuad的形式渲染到IRenderTarget对象上。

最后将纹理渲染到屏幕上:


总结:

       本文在上节环境配置好的基础上,下载模型并查看,主要分享SIBR_viewers的编译流程,并简单分析SIBR_gaussianViewer_app的源码结构。下节主要分析CUDA下栅格化算法,及绘制细节的解读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2095385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

幂等的 4 种通用方案,一次性吃透

兄弟们,79 节了,59元100个案例(实战源码文档技术支持) 涵盖:高并发、接口性能优化、幂等、超卖、MQ专题、分布式事务、分库分表、常见问题排查、接口签名、接口加解密等各种实战案例;需要的朋友加我微信&am…

亦菲喊你来学机器学习(18) --TF-IDF方法

文章目录 TF-IDF词频TF逆文档频率IDF计算TF-IDF值 应用实验使用TF-IDF1. 收集数据2. 数据预处理3. 构建TF-IDF模型对象4. 转化稀疏矩阵5. 排序取值完整代码展示 jieba分词总结 TF-IDF TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文档频率…

浅析Java线程池实现原理 1

目录 一、线程池 1.1 线程池是什么 1.2 线程池解决的问题是什么 二、线程池核心设计与实现 2.1 总体设计 ThreadPoolExecutor是如何运行,如何同时维护线程和执行任务的呢? 2.2 生命周期管理 2.3 任务执行机制 任务调度 任务缓冲 任务申请 任…

日常工作中的AI助手

近几年,人工智能进入了一个高速发展的阶段。AI也与各种业态深度融合,各类工具的出现也为行业赋能。今天,我们一起来探索几款能够在日常工作中提升效率的AI助手。 排名不分先后,内容仅供参考,大家可以根据实际需求自行…

计算机网络1.1

计算机网络:多台电脑 通过交换机 相互连接 互连网:多个计算机网络 通过路由器 连接 互联网:最大的互连网 电路交换: 报文交换:传送的数据在中间节点进行储存,再进行转发(根据转发表确定转…

ctfshow(web入门-命令执行)-1

1.web29 只有当c参数的值不包含“flag”(区分大小写),才会执行这段代码 $c $_GET[c];if(!preg_match("/flag/i", $c)){eval($c);}只要payload中没有flag即可 先尝试cat (右键源代码) tail,tac皆可 system("tail fla*"…

利用深度学习实现验证码识别-1

验证码(CAPTCHA)是网络安全中常用的一种机制,用于区分人类用户和自动化程序。然而,随着人工智能技术的发展,计算机视觉和深度学习算法在识别验证码方面取得了显著进展。本文将介绍如何使用PyTorch框架实现一个深度学习模型来识别简单的数字验证码。 数据生成与预处理 首先,我…

数据图像处理26

六、图像分割 6.3 分水岭图像分割 6.3.1分水岭算法的基本概念 分水岭算法之所以得名,是因为其的分割原理与地理学中的分水岭现象非常相似。在地理学中,分水岭是分隔相邻水系的山岭或高地,雨水会分别流向两侧的水系。 分水岭算法常用于图像…

代码随想录训练营day34|62.不同路径,63. 不同路径 II,343.整数拆分,96.不同的二叉搜索树

不同路径1 题目 题目并不难想&#xff0c;每一个点只有两种走到的方法&#xff0c;要么从左侧来&#xff0c;要么从上侧来&#xff0c;所以 dp[i][j]dp[i-1][j]dp[i][j-1]; vector<vector<int>> dp(m,vector<int>(n,0)); for(int i0;i<m;i){for(int j0;j…

MLM之Qwen:Qwen2-VL的简介、安装和使用方法、案例应用之详细攻略

MLM之Qwen&#xff1a;Qwen2-VL的简介、安装和使用方法、案例应用之详细攻略 目录 Qwen2-VL的简介 1、主要增强功能&#xff1a; 2、模型架构更新&#xff1a; 3、性能 图像基准测试 视频基准测试 代理基准测试 多语言基准测试 4、新闻 5、限制 Qwen2-VL的安装和使用…

【hot100篇-python刷题记录】【翻转二叉树】

R7-二叉树篇 一眼递归 递归具有相同子问题的特点。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def in…

metallb-speaker缓存

手动修改metallb-config arping返回2个mac地址 删除pod mac正常返回 pkill 进程 返回2个mac

pycharm 2024.1下载、安装

下载 下载官网&#xff1a; Other Versions - PyCharm 选择需要的版本下载&#xff0c;这里以 2024.1 的版本为例 安装 双击下载好的安装程序&#xff0c;点击下一步 选择安装路径&#xff0c;最好是英文路径&#xff1b;然后下一步 点击完成 激活 网址&#xff1a; Some…

突发!某GPU芯片独角兽!400+人 原地解散!

今天偶然打开脉脉APP&#xff0c;看看最近IT圈子又有什么劲爆消息&#xff0c;发现某芯片独角兽全员原地解散的消息登上热搜 No1了。 之前没有怎么关注过芯片行业&#xff0c;因此完全不知道这家公司&#xff0c;没想到成了热搜No1&#xff1b;由此可见该公司在行业内应该还是比…

安装vmtools管理虚拟机教程

目录 1.什么是vmtools 2.安装教程 2.1删除和安装 2.2文件的复制和粘贴 2.3指令操作 3.检验效果 4.小结 1.什么是vmtools vmtools就是安装之后可以让我们更好的管理我们的虚拟机&#xff1b; 我们可以设置windows和centos共享的文件夹&#xff0c;让该文件夹实现共享&am…

C++初始化列表,staic成员变量

初始化列表的引入 class Stack { public:Stack(int capacity){_arr (int*)malloc(sizeof(int) * capacity);if (_arr NULL){perror("malloc->_newarr");return;}_capacity capacity;} private:int _capacity;int _size;int* _arr; //默…

滚动视图ScrollView

activity_scroll_view.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_pare…

嵌入式全栈开发学习笔记---Linux常用库(json)

目录 入门级问题 为什么使用json? 什么是json? json-c库 json源码 安装方法 json-c API Json类型 C-API 将一个字符串转换成符合json格式的字符串(json对象) 定义一个字符串数组 定义一个json_object结构体指针 把一个字符串转换成一个json对象 将转换成json对…

TS类型注解(下)

文章目录 前言三、TypeScript类型约束&#xff08;5&#xff09;对象&#xff08;6&#xff09;接口&#xff08;TS中对象类型的专属约束&#xff09;&#xff08;7&#xff09;TS中的扩展类型 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&…

台式机CPU温度90℃以上-排查思路

虽然现在台式机不值钱。 但是对于穷苦老百姓来说&#xff0c;还是害怕它坏掉&#xff0c;坏掉就又需要花钱买了。 ①风扇清理所有灰尘&#xff08;风扇的散热网是可以拆下来的&#xff09;&#xff0c; 主板清理所有灰尘&#xff08;用画笔或者干燥的牙刷&#xff0c;注意是…