3DGS语义分割之LangSplat

news2024/10/7 10:25:40

LangSplat是CVPR2024的paper. 实现3DGS的语义分割(可文本检索语义)
github: https://github.com/minghanqin/LangSplat?tab=readme-ov-file

主要思想是在3DGS中加入了CLIP的降维语义特征,可用文本检索目标,实现分割。

配置环境:
environment.yml一步一步执行。

conda create -n langsplat python=3.7.13
conda activate langsplat

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
pip install numpy
pip install tqdm
pip install matplotlib
pip install submodules/langsplat-rasterization
pip install submodules/simple-knn
pip install open-clip-torch
pip install mediapy
pip install tensorboard
pip install opencv-python

pip install submodules/segment-anything-langsplat
pip install submodules/langsplat-rasterization
pip install submodules/simple-knn

作者有训练好的ckpt 和 output, 直接下载下来,按照issues里面的step操作了一下。
https://github.com/minghanqin/LangSplat/issues/18

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

执行成功,但是在本机效果很差,有点像模型没有被训练,直接用随机值预测的一样。
iou=0.02, localization accuracy=0.1

结果图

RGB:
在这里插入图片描述

apple gt:

在这里插入图片描述

预测的:

在这里插入图片描述

其他的目标也都一样效果不好。

于是决定重新训练一遍。

首先,准备数据集:
下载lerf_ovs。

刚开始里面是images, sparse这两个要用到的文件夹。

然后按github的说明,运行3DGS, 得到一个权重和点云文件。
也就是output这个文件夹全部。
在这里插入图片描述

进入到3DGS的github:https://github.com/graphdeco-inria/gaussian-splatting
按照它的说明。

# HTTPS
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive

python train.py -s ~/dataset/lerf_ovs/teatime

这个模块是要安装的,每修改一次都要重新安装,

pip install submodules/diff-gaussian-rasterization

训练好了,但是没有pth文件
需要这样训练才会保存pth文件

python train.py -s ~/dataset/lerf_ovs/teatime --checkpoint_iterations 30000

然后把输出的output文件夹整个copy到~/dataset/lerf_ovs/teatime下面。

下一步,
提取语言特征

python preprocess.py --dataset_path ~/dataset/lerf_ovs/teatime

训练autoencoder

cd autoencoder
python train.py --dataset_path ~/dataset/lerf_ovs/teatime --dataset_name teatime --encoder_dims 256 128 64 32 3 --decoder_dims 16 32 64 128 256 256 512 --lr 0.0007

训练3D语义特征

python test.py --dataset_path ~/dataset/lerf_ovs/teatime --dataset_name teatime

下面要训练不同feature_level的LangSplat模型
–start_checkpoint是上面训练的3DGS模型

python train.py -s ~/dataset/lerf_ovs/teatime -m output/teatime --start_checkpoint ~/dataset/lerf_ovs/teatime/output/teatime/chkpnt30000.pth --feature_level 1
#同样的训练level 2 和 level 3

渲染

 python render.py -s ~/dataset/lerf_ovs/teatime -m output/teatime_1 --include_feature
 #同样的渲染level 2 和 level 3

最后eval, 需要改一下eval.sh中的gt路径。

cd eval
sh eval.sh

现在的效果好多了。
iou=0.5514, localization accuracy=0.7966

现在产生的apple mask

在这里插入图片描述

render.py产生的并不是ply文件,而是npy和png文件, 每张图片分别对应一个.

output/teatime_1/train/ours_None/renders里面是png文件,
是3DGS根据相机的位姿生成对应的渲染语义图片。

在这里插入图片描述
所以其实LangSplat生成的结果是3DGS,
即output/teatime下面的cnkpnt30000.pth,
里面存的有语义信息,通过渲染可以得到不同视角下的语义图片。

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

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

相关文章

[office] Excel数据透视表有什么用途?Excel数据透视表怎么做? #学习方法#职场发展

Excel数据透视表有什么用途?Excel数据透视表怎么做? Excel数据透视表是一种数据汇总手段,如果表格内的数据太多,单靠肉眼是很难准确分辨数据的,而使用数据透视表,就可以很方便的筛选各种数据。如果你不知道…

什么是广告联盟变现

广告联盟变现,作为一种连接广告主与各类媒体平台的机制,正展现出强大的生命力和影响力。它为拥有流量资源的一方提供了将其转化为实际经济收益的有效途径。通过广告联盟,媒体平台可以与众多广告主建立合作关系,获取多样化的广告内…

基于STM32开发的智能停车场管理系统

目录 引言环境准备智能停车场管理系统基础代码实现:实现智能停车场管理系统 4.1 车辆检测传感器数据读取4.2 车位状态管理4.3 实时数据监控与分析4.4 用户界面与数据可视化应用场景:停车场管理与优化问题解决方案与优化收尾与总结 1. 引言 随着城市化…

AI日报|文生语音大模型国内外均有突破,Pika完成6亿新融资,视频大模型也不远了!

文章推荐 AI搜索哪家强?16款产品实战测评,效率飙升秘籍! AI日报|智谱AI再降价,同时开源9B系列模型;国内外气象大模型竞逐升级 字节推出文本到语音模型家族Seed-TTS:擅长情感表达,…

视觉SLAM十四讲:从理论到实践(Chapter12:建图)

前言 学习笔记,仅供学习,不做商用,如有侵权,联系我删除即可 一、主要目标 1. 理解单目SLAM中稠密深度估计的原理。 2. 通过实验了解单目稠密重建的过程。 3. 了解几种RGB-D重建中的地图形式。 构建的地图也有多种功能分类&…

python的继承

本章正式开始之前,先让我们回顾一下什么是 对象 ? 什么是 类 ? 小贝 喜欢 猫咪,今年领养了一只名叫 Kitty 的 布偶猫。则下列哪项是 对象 呢?  A. 猫咪 B. Kitty C. 布偶猫 相比之下,闻闻 更喜欢 犬科 动…

鸿蒙全栈开发-基于ARKTS开发之初识框架-app.json5

前言 随着鸿蒙的不断发展,华为自行研制的“鸿蒙系统”横空出世,华为用实力为自己开辟了一个全新的时代,让中国品牌走向世界,并为程序员们带来了新的职业机遇。 这里来跟大家简单的聊一下鸿蒙基于ARKTS开发之初识框架-app.json5 当我们新建一个工程或者…

PICRUSt2在微生物功能预测分析中的应用解读

谷禾健康 微生物组学研究现已超越微生物群落组成分析得到更广泛的使用。大量的人类微生物组研究证据表明,肠道微生物组的功能变化对炎症和免疫反应的影响起到关键的影响作用。 16S rRNA分析是微生物组研究作为最常用便捷且具有成本效益的测量技术,用于分…

Hadoop3:MapReduce工作流程图解

一、流程图 二、流程说明 上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解,如下: (1)MapTask收集我们的map()方法输出的kv对,放到内存…

笔记95:车辆横向动力学方程转化为误差形式 -- 详细推导过程

1. 非误差型车辆横向动力学方程 注:关于轮胎侧偏刚度的正负 深蓝课程推导得到的车辆横向动力学返程使用的轮胎侧偏刚度是默认为正数;老王课程推导得到的车辆横向动力学方程使用的轮胎侧偏刚度是默认为负数; 1.1 深蓝课程推导得到的方程&…

工厂生产计划难以执行的真正原因及对策

在制造业中,生产计划的执行对于企业的运营至关重要。然而,许多工厂在生产计划执行过程中面临着诸多挑战,尤其是物料齐套率低的问题。本文将探讨工厂生产计划难以执行的真正原因,并提出相应的解决对策。 一、生产计划难以执行的真…

前端技术探索:从基础到进阶

前端技术作为现代Web开发中不可或缺的一部分,其重要性不言而喻。随着技术的快速发展,前端领域涌现出了许多经典且值得深入探索的技术和框架。本文将带您领略前端技术的魅力,从基础到进阶,一起探讨前端开发的精髓。 一、前端技术基…

顶顶通呼叫中心中间件-如何配置识别不同语种的ASR

文章目录 前言联系我们创建不同语种的语音识别任务开始对接识别不同语种的ASR重启 asrproxy 程序使用识别不同语种的ASR 前言 之前讲过顶顶通的 asrproxy 程序如何对接第三方的ASR,比如:阿里云的ASR。不知道如何对接的,可以参考:…

音视频开发17 FFmpeg 音频解码- 将 aac 解码成 pcm

这一节,接 音视频开发12 FFmpeg 解复用详情分析,前面我们已经对一个 MP4文件,或者 FLV文件,或者TS文件进行了 解复用,解出来的 视频是H264,音频是AAC,那么接下来就要对H264和AAC进行处理,这一节…

HackTheBox-Machines--Aragog

Aragog 测试过程 1 信息收集 NMAP 服务器开启了 21、22、80端口 21 端口测试 首先测试 21 端口,21端口开启了匿名登录 ftp服务器上存在 test.txt 文件,test.txt 文件是 xml 格式。 80 端口测试 echo "10.129.97.250 aragog.htb" | sudo tee…

[office] 如何才能用EXCEL打开dat文件- #微信#学习方法

如何才能用EXCEL打开dat文件? 方法: 1、打开EXCEL软件; 2、文件,打开,选择要转化的DAT文件; 3、在弹出的向导文件(步骤1)中,选择合适的文件类型(按预览选择&#xf…

浏览器中的disable cache对文件下载服务的影响

客户端缓存文件 对于HTTP的文件请求来说,为了保证请求的速度,会使用客户端缓存的机制。比如客户端向服务器端请求一个文件A.txt。服务器在接收到该请求之后会将A.txt文件发送给客户端。 其请求流程如下: 步骤1:客户端请求服务器…

基于fabric封装一个简单的图片编辑器(vue 篇)

介绍 前言vue demo版本react 版本 前言 对 fabric.js 进行二次封装,实现图片编辑器的核心功能。核心代码 不依赖 ui响应式框架vue ,react 都适用。 只写了核心编辑相关代码便于大家后续白嫖二次开发 核心代码我就没有打包发布 会 和 业务代码一起放到项目中。 vu…

一篇教会你CSS定位

前言:在网页布局的时候,我们需要将想要的元素放到指定的位置上,这个时候我们就可以使用CSS中的定位操作。 先让我们看一下本篇文章的大致内容: 目录 什么是定位 1.相对定位 2.绝对定位 3. 固定定位 4. 粘性定位 5. 定位层级…

【vue-lottie实现高级菜单效果】

文章目录 概要整体交互使用技术准备工作技术细节小结 概要 主要实现利用lottie动画实现复杂动画交互效果,项目为大屏系统,设计是做一个全局菜单,不用的时候折叠成一个小盒子,使用的时候点击小盒子可以展开菜单页,展开效…