SegAnyGAussians(SAGA)项目配置和运行

GitHub项目地址:Jumpat/SegAnyGAussians: The official implementation of SAGA (Segment Any 3D GAussians) (github.com)


 一、项目准备

1、下载原项目的zip包解压

2、下载third_party目录下的两个模块,放到对应目录下

3、下载预训练模型和数据集

数据集和预训练模型放到项目目录下,项目结构可以参考下图(之后的参考命令也是以此项目结构为基础):


二、项目配置

1、配置CUDA 11.6环境,使用nvcc -V命令确认

2、配置pytorch环境,使用命令:

pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116

3、配置pytorch3d,使用命令:

conda install https://anaconda.org/pytorch3d/pytorch3d/0.7.1/download/linux-64/pytorch3d-0.7.1-py37_cu116_pyt1121.tar.bz2

4、分别cd到以下几个目录,通过命令安装子模块

在以下目录:
./submodules/diff-gaussian-rasterization
./submodules/diff-gaussian-rasterization_contrastive_f
./submodules/simple-knn
./third_party/kmeans_pytorch
./third_party/segment-anything分别使用命令:
pip install -e .

5、其他需要的模块使用 pip install即可

pip install plyfile==0.8.1
pip install tqdm
pip install jupyter
pip install opencv-python
pip install matplotlib
pip install numba

6、一些常见的报错
# (1)No such file or directory: ':/usr/local/cuda-11.6/bin/nvcc': ':/usr/local/cuda-11.6/bin/nvcc'
解决:终端执行export CUDA_HOME=/usr/local/cuda
# (2)subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1
解决:setup.py中的“cmdclass={'build_ext': BuildExtension}”改为“cmdclass={'build_ext': BuildExtension.with_options(use_ninja=False)}”
# (3)Unable to create environments file. Path not writable.
解决:终端执行sudo chown -R 1000:1000 /home/userName/.conda,然后重启电脑。其中,userName就是当前登陆用户的用户名。


三、项目运行

1、extract_features.py的第18行加上parser.add_argument("--downsample", default="4", type=str)

说明:设置一次。以防使用下采样4倍的数据集时报错。

2、特征提取。

python extract_features.py --image_root <path to the scene data> --sam_checkpoint_path <path to the pre-trained SAM model> --downsample <1/2/4/8>例如:python extract_features.py --image_root data/360_v2/bicycle --sam_checkpoint_path dependencies/sam_ckpt/sam_vit_h.pth --downsample 4

3、mask生成。

python extract_segment_everything_masks.py --image_root <path to the scene data> --sam_checkpoint_path <path to the pre-trained SAM model> --downsample <1/2/4/8>例如:python extract_segment_everything_masks.py --image_root data/360_v2/bicycle --sam_checkpoint_path dependencies/sam_ckpt/sam_vit_h.pth --downsample 4

4、预训练3DGS模型。

python train_scene.py -s <path to COLMAP or NeRF Synthetic dataset>例如:python train_scene.py -s data/360_v2/bicycle

5、训练三维特征。

python train_contrastive_feature.py -m <path to the pre-trained 3DGS model>例如:python train_contrastive_feature.py -m output/1c7b8dc0-0其中:1c7b8dc0-0是预训练的3DGS模型

6、分割。

执行prompt_segmenting.ipynb,也可以将其另存为prompt_segmenting.py并执行

其中需要设置这些参数:

参数

参数值

DATA_ROOT

data/360_v2/bicycle

MODEL_PATH

./output/1c7b8dc0-0

FEATURE_GAUSSIAN_ITERATION

30000

SAM_CKPT_PATH

./dependencies/sam_ckpt/sam_vit_h.pth

mask_id

0,1,2

input_point

Np.array([[392,500]])

说明:

(1)mask_id根据需要设置为0或1或2。

(2)input_point:提示点。来源于数据集的第一张图片。例如使用下采样4倍后的数据集,那么应该使用images_4的第一张图片来指定提示点。此处使用了一个提示点。实际训练时根据需要可使用多个提示点。

7、在SIBR_Viewers工具中执行:./install/bin/SIBR_gaussianViewer_app -m output/1c7b8dc0-0

说明:

(1)需要把seg_no_mask_point_cloud.ply重命名为point_cloud.ply。

(2)-m后面的是模型的路径。

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

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

相关文章

非计算机专业,如何从事研发岗位的建议!

首先&#xff0c;非计算机专业的毕业生通过读研和专门的培训是完全可以进入IT行业的&#xff0c;目前IT行业内也有大量非计算机专业毕业的技术开发&#xff08;研发&#xff09;人员&#xff0c;其中有不少人也非常优秀&#xff0c;发展空间同样比较大。 虽然IT行业内整体的人才…

IPFS分布式存储系统

一、 引言 IPFS是InterPlanetary File System的缩写。它是一个分布式的网络传输协议&#xff0c;它可以把文件分成很多小块放到服务器的不同地方&#xff0c;然后用一种特别的方式来寻找和传输这些小块。这样&#xff0c;我们就可以更快、更安全、更抗容错了的存储文件了。 可能…

从小到大输出四个整数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int a, b, c, d;int t 0;//提示用户&#xff1b;printf("请输入四个整数a b c d&…

python怎么判断整数

isinstance()函数 可以用来判断变量的类型&#xff0c;它返回的是一个布尔值&#xff0c;False or True。 >>>isinstance("123",str) >>>Flase >>>isinstance(123,int) >>>True >>>isinstance({123},list) >>&g…

【大数据】分布式文件系统HDFS

目录 1.什么是分布式文件系统 2.HDFS的特点 3.HDFS的核心概念 4.HDFS的体系结构 5.HDFS的配置建议 6.HDFS的局限性 7.HDFS的存储机制 7.1.数据冗余机制 7.2.错误与恢复 8.HDFS数据读写过程 1.什么是分布式文件系统 分布式文件系统是整个大数据技术的基础&#xff0c…

京东AI数字人“采销东哥”首秀观看量破2000万;天工 SkyMusic 音乐大模型开放公测

&#x1f989; AI新闻 &#x1f680; 京东AI数字人“采销东哥”首秀观看量破2000万 摘要&#xff1a;京东AI数字人“采销东哥”由京东云言犀打造&#xff0c;在其直播首秀中亮相并迅速吸引超2000万观看量。尽管“采销东哥”的外形和口音与创始人刘强东相似&#xff0c;但其直…

C语言的OJ判题机设计与实现

1. 接收判题入参 判题需要作答代码、测试输入和期望输出、编译器名称、时空限制。对于支持special judge的还需要传入是否为sj和sj代码。推荐使用消息队列&#xff0c;应对高并发的比赛情况会比较好。 但是消息队列是异步的&#xff0c;我为了快点实现能提交后在当前页面获得判…

量子密钥分发系统的设计与实现(二):光路子系统初步讨论

通过上一篇文章&#xff0c;我们对量子密钥分发系统的基本架构、硬件结构以及密钥分发流程进行了初步的总体介绍&#xff0c;从本文开始&#xff0c;我们就基于系统顶层的架构设计&#xff0c;开始从模块到器件&#xff0c;从硬件到软件开始详细讨论QKD系统的设计与实现。本文主…

双向链表详解

目录 带头双向循环链表带头双向循环链表的实现带头双向循环链表的功能实现创造新节点LTNode* CreateLTNode(LTDataType x)代码 初始化链表LTNode*LTInit(LTNode* phead)代码 打印链表void LTPrint(LTNode* phead)代码 链表尾插void LTPushBack(LTNode* phead, LTDataType x)代码…

C#语法知识之运算符

3、运算符 1、算数运算符 1、赋值符号 //把右侧的值赋给左侧的变量2、算数运算符 _ * / float f 1 / 2f; %3、算数运算符的优先级 //乘除余优先级高于加减 括号可以改变优先级&#xff0c;优先计算括号内的内容4、算数运算符的复合运算 复合运算符是用于自己 自己进行运算…

源码解读——SplitFed: When Federated Learning Meets Split Learning

源码地址 1. 源码概述 源码里一共包含了5个py文件 单机模型&#xff08;Normal_ResNet_HAM10000.py&#xff09;联邦模型&#xff08;FL_ResNet_HAM10000.py&#xff09;本地模拟的SFLV1&#xff08;SFLV1_ResNet_HAM10000.py&#xff09;网络socket下的SFLV2&#xff08;SF…

51单片机入门_江协科技_33~34_OB记录的自学笔记_LED呼吸灯与PWM直流马达调速

33. 直流电机驱动(PWM) 33.1. 直流电机介绍 •直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极&#xff0c;当电极正接时&#xff0c;电机正转&#xff0c;当电极反接时&#xff0c;电机反转 •直流电机主要由永磁体&#xff08;定子&#xff09;、线圈&…

MySQL 死锁案例解析一则

原文链接&#xff1a;https://www.modb.pro/db/448666 一、问题背景某业务模块反馈数据库最近出现过几次死锁告警的情况&#xff0c;本文总结了这次死锁排查的全过程&#xff0c;并分析了导致死锁的原因及解决方案。希望给大家提供一个死锁的排查及解决思路。基础环境&#xff…

一.NODE MCU(ESP8285,ESP8286)开发环境搭建

一.序言: 1.esp8285长什么样? 2.esp8285是什么,能做什么? 通过上面图片,看到上面的芯片,是带有多个阵脚的单片机。实际上,看着该芯片很小,但是却具有完整的wifi无线蓝牙功能,它本身可以运行一个极简的linux小系统,并且该极简的小linux系统具备无线蓝牙功能。。它同…

54岁前港姐与好友因一事反目成仇,20年后方破冰

现年54岁的前「金牌司仪」陈淽菁&#xff08;前名&#xff1a;陈芷菁&#xff09;是1994年落选港姐&#xff0c;之后加入TVB参演电视剧《天地男儿》、《壹号皇庭》入屋&#xff0c;后因口齿伶俐而转战主持界。2017年陈淽菁离巢&#xff0c;外出以个人名义成立「陈芷菁工作室」&…

每日学习笔记:C++ STL算法之容器元素转换、结合、互换

本文API 转换元素 transform(sourceBeg,sourceEnd,destBeg, op) 结合元素 transform(source1Beg,source1End,source2Beg,destBeg, op) 互换元素 swap_ranges(sourceBeg,sourceEnd,destBeg) 转换元素 结合元素 互换元素

深度学习驱动的流体力学计算与应用

在深度学习与流体力学深度融合的背景下&#xff0c;科研边界不断拓展&#xff0c;创新成果层出不穷。从物理模型融合到复杂流动模拟&#xff0c;从数据驱动研究到流场智能分析&#xff0c;深度学习正以前所未有的力量重塑流体力学领域。近期在Nature和Science杂志上发表的深度学…

ARM_day8:温湿度数据采集应用

1、IIC通信过程 主机发送起始信号、主机发送8位(7位从机地址1位传送方向(0W&#xff0c;1R))、从机应答、发数据、应答、数据传输完&#xff0c;主机发送停止信号 2、起始信号和终止信号 SCL时钟线&#xff0c;SDA数据线 SCL高电平&#xff0c;SDA由高到低——起始信号 SC…

汽车零部件制造迎来智能化升级,3D视觉定位系统助力无人化生产线建设

随着新能源汽车市场的蓬勃发展&#xff0c;汽车零部件制造行业正面临着前所未有的机遇与挑战。为了提高产能和产品加工精度&#xff0c;某专业铝合金汽车零部件制造商决定引进智能生产线&#xff0c;其中&#xff0c;对成垛摆放的变速箱壳体进行机床上料成为关键一环。 传统的上…

SpringBootSpringCloud升级可能会出现的问题

1.背景 之前负责过我们中台的SpringBoot和Cloud的升级&#xff0c;特次记录分享一下项目中可能出现的问题&#xff0c;方便后续的人快速定位问题。以及下述选择的解决方案都是基于让升级的服务影响和改动最小以及提供通用的解决方案的提前进行选择的。 1.1版本说明 升级前&a…