自定义数据实现SA3D

SA3D:基于 NeRF 的三维场景分割方法 SA3D:基于 NeRF 的三维场景分割方法 Segment anything in 3d with nerfs 阅读详情

SA3D:Segment Anything in 3D with NeRFs
实现了3D目标分割
在这里插入图片描述
原理是利用SAM(segment anything) 模型和Nerf分割渲染3D目标,
SAM只能分块,是没有语义标签的,如何做到语义连续?
SA3D中用了self-prompt, 根据前一帧的mask自己给出提示点,用SAM再预测下一帧的mask.

1.准备数据

这里用llff数据的格式。
它需要的input是图像,colmap建好的poses, 训练好的nerf。

通过llff的fern文件夹说明自定义数据怎么准备。

nerf_llff_data/fern文件夹包含如下数据,

在这里插入图片描述
其中images是相机拍摄的原图,size为4032 * 3024,
由于图片太大,于是有了下采样4倍的images_4, 下采样8倍的images_8.
用的时候images_4就可以了。
sparse和database.db 是colmap生成的相机内外参,colmap怎么用参考其他。
poses_bounds.npy由sparse生成,后面会说。
最后2个用不到。

1.1 拍摄图片或视频

图片的话按照llff github 上的要求,

根据经验,您应该使用视图之间最大视差不超过约 64 像素的图像(观察距离相机最近的物体,不要让它移动超过视图之间水平视场的 1/8)。图片)。我们的数据集通常包含 20-30 张以粗略网格模式手持拍摄的图像。

最好是网格状拍。

在这里插入图片描述
如果拍的是视频,把视频转为图片序列。

把images里面拍到的图片下采样4倍,存入images_4文件夹。

1.2 生成pose

自己安装colmap. 或者用llff github 上的imgs2poses.py。
这里用colmap生成。

colmap选Reconstruction -> Automatic Reconstruction.
只需要填workspace folder和image folder.
image folder要选images,而不是images_4.
Dense model的勾可以去掉,节省时间。
然后run, 你就会得到sparse文件夹。

然后你需要用这里的pose_utils.py生成poses_bounds.npy.
需要下载这3个文件。

在这里插入图片描述

2.训练模型

2.1 训练nerf

设置文件:
configs/llff/fern.py
configs/liff/seg_fern.py

调整factor需要的文件
configs/llff/llff_default.py
configs/default.py
configs/llff/llff_seg_default.py
configs/seg_default.py

上面这些设置文件可以修改了直接用,也可以新建类似的。
2个设置文件中修改数据集的路径。

如果你不用下采样4倍的图片,比如要用下采样8倍的,
在后面4个文件中,把factor置8. 如果用原图,factor=1.

训练nerf

python run.py --config=configs/llff/fern.py --stop_at=20000 --render_video --i_weights=10000

你可能会遇到sam3d.py中的bug,
UnboundLocalError: local variable ‘sam_model_registry’ referenced before assignment
解决方法,修改sam3d.py,

class Sam3D(ABC):
    '''TODO, add discription'''
    def __init__(self, args, cfg, xyz_min, xyz_max, cfg_model, cfg_train, \
                 data_dict, device=torch.device('cuda'), stage='coarse', coarse_ckpt_path=None):
        ...
        if args.mobile_sam:
            ...
        else:
            from segment_anything import sam_model_registry  #加上这一句,修复bug
            sam_checkpoint = "./dependencies/sam_ckpt/sam_vit_h_4b8939.pth"
            ...

然后会在log/xx/xx/render_video_fine_last下面得到渲染好的3D场景。

2.2 训练SAM+nerf

python run_seg_gui.py --config=configs/llff/seg/seg_fern.py --segment \
--sp_name=_gui --num_prompts=20 \
--render_opt=train --save_ckpt

会给一个链接,点进webUI,
这第一帧图包括后面训练的图,是上面训练nerf时渲染的图片,
如果你换了数据集,一定要重新训练nerf, 不然这些图片就还是之前的。

在第一帧图上选你要分割的物体。

在这里插入图片描述

训练中不需要再标注,SAM本身是没有语义的,为了保持语义的连续性,采用自标注的方法,
不断在mask上产生新标注的点。
在这里插入图片描述
分割及渲染结果。
在这里插入图片描述

SA-BEV: Generating Semantic-Aware Bird’s-Eye-View Feature for Multi-view 3D Object Detection 对于显式深度估计,他会把伪点云投影到BEV平面压扁,但这个操作并没有利用图像特征的语义信息,并且会将大量的背景信息注入到BEV特征图中。因此本篇文章充分图像的语义信息,提出了Semantic-Aware的BEV Pooling,在投影到BEV空间前,首先预测特征图的语义分割,如果该点属于背景空间,则不会投影到BEV图中;此外,深度分数低的点也不会被投影。总的来说,SA-BEVPool能够有效过滤大多数背景BEV特征从而缓解背景信息淹没前景信息的问题,这里的语义分割是在深度分支上同时预测小尺寸图像特征的语义。 阅读详情

相关推荐

SA-SSD:阿里达摩院最新3D检测力作(CVPR2020)

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达Brief来自CVPR2020的研究工作,也是仅仅使用Lidar数据进行3D检测的文章,CVPR2020接收的几篇文章中,采用LiD...

3D视觉工坊 1586

推荐您探索:Segment Anything in 3D with NeRFs(SA3D)

在三维重建和物体识别的领域中,每一次的技术突破都可能引领着行业的新方向。今天我们来聚焦一款革命性的开源工具——**Segment Anything in 3D with NeRFs(简称SA3D)**。这不仅是对3D场景理解的一次深度实践,更是在神经辐射场(NeRF)基础上的一次创新跃进。 ### ???? 项目介绍 SA3D是由上海交通大学人工智能研究所的科研团队携手华为等合作机构共同研发的一项...

gitblog_00732的博客 486

pgpool-II踩坑日记两则

最近结合pgpool-II进行postgreSQL高可用的部署,过程非常煎熬,作为新手,公司也没有前辈熟悉postgreSQL,只能自己摸索。好在已经搞明白了,把困扰我很长时间的两个问题分享一下。 1. show pool_nodes 第一个问题就是 show pool_nodes 的使用,照着教程建好后,在哪里执行这个指令呢?我在pg服务器上怎么执行这个指令都显示 ERROR: unrecognized configuration parameter "pool_nodes",一度怀疑人生。翻阅了很多资料

zhaizhai6_6的博客 4540

华为&上交重磅新作! | SA3D:NeRF辅助SAM,从2D分割进阶到3D分割

本文提出了SA3D,这是一种将SAM推广到使用神经辐射场(NeRF)作为结构先验进行三维物体分割的新框架。基于训练好的NeRF和单个视角中的一组提示,SA3D执行迭代过程,包括渲染新的2D视图,通过自我提示进行2D分割,并将分割投影回3D掩模网格中。SA3D可以高效地应用于各种三维分割任务。论文的研究为将视觉基础模型从2D提升到3D的资源有效方法提供了启示。

专注计算机视觉全栈知识分享 1495

通过python下载西门子技术中心文档

本篇文章纯粹记录如何下载通过python下载西门子技术中心文档,所下载文档完全自己学习使用,非商业用途

John_09040211的博客 561

yolov5部署之七步完成tensorRT模型推理加速

目录前言step 1. 下载yolov5源码以及tensorrtx源码,并将yolov5s.pt转为.wts模型step 2. 确定并下载自己准备使用的CUDA版本。step 3. 根据自己的CUDA版本下载对应版本的cuDNN以及TensorRTstep 4. 根据自己使用的VS版本下载对应版本的OpenCVstep 5. 安装CUDAstep 6. 安装cuDNN、TensorRT以及验证TensorRT是否安装成功 前言     前段时间研究了Pytorch的环境配置,之后便从github上下载了yo

Christo的博客 4万+

【论文笔记】SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model

【论文笔记】SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model

weixin_45657478的博客 5630

告别NEDC!手把手教你将CLTC/WLTP等最新工况文件导入AVL Cruise(附资源包)

本文详细指导如何将CLTC、WLTP等最新工况文件导入AVL Cruise软件,替代传统的NEDC工况。从资源获取、文件预处理到分步导入指南,再到常见问题排查,帮助工程师高效完成汽车仿真性能评估。附赠全球主流工况文件资源包,助力精准仿真分析。

weixin_30374009的博客 461

一文读懂SAM 3D:单张 2D 图秒变完整 3D 场景,重建技术迎来革命性突破

一文读懂SAM 3D:单张 2D 图秒变完整 3D 场景,重建技术迎来革命性突破

阿旭的博客 2973

VMFS数据存储(datastore)丢失后恢复步骤

vmfs datastore恢复步骤

jetliu05的博客 3266

保姆级教程:在RK3588开发板上配置USB-C PD充电(基于HUSB311芯片与DTS详解)

本文详细介绍了在RK3588开发板上配置USB-C PD充电的完整流程,重点解析了HUSB311芯片的硬件原理与DTS安全配置。通过实战案例和调试技巧,帮助开发者避免常见错误,实现稳定可靠的Type-C PD快充功能,适用于从基础开发板到工业设备的多场景需求。

weixin_42552315的博客 520

3D 生成重建016-SA3D从nerf中分割一切

在 SA3D (Segment Anything in 3D) 方法中,自我提示(Self-Prompting) 是一种关键的技术,用来通过多视角的迭代过程生成三维掩膜。具体来说,自我提示的实现过程可以分为以下几个步骤:初始二维掩膜生成:1、给定一个视角中的目标物体,用户提供一个手动的粗略分割提示(例如一些粗略的点或框)。使用 SAM(Segment Anything Model)对这个视角中的物体进行分割,生成一个二维掩膜(mask)。2、掩膜反向渲染。

小熊哥哥的博客 1326

Android 中 app freezer 原理详解(二):S 版本

在之前的两篇博文《Android 中app内存回收优化(一)》和《Android 中app内存回收优化(二)》中详细剖析了 Android 中 app 内存优化的流程。这个机制的管理通过 CachedAppOptimizer 类管理,为什么叫这个名字,而不叫 AppCompact 等?freezer,一个针对应用进程长期处于 Cached 状态的优化。在之前博文《app freezer 原理 R 版本》

私房菜 3610

SA-GS:在3D高斯抛雪球中实现SAM任意物体分割

大量的分割实验表明,SA-GS可以有效地在三维高斯中获得高质量的物体分割结果,从而可以轻松地应用于场景编辑和碰撞检测任务。

soaring_casia的专栏 1776

Xiaojie雷达之路---手把手教你从串口获取雷达原始数据(一)---新建工程(开始)

Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章---利用串口获取毫米波雷达中的原始数据,本系列文章将从新建工程到最后原始数据显示到PC上进行逐步介绍,这个系列的文章大约是一个4-5篇左右。本篇文章呢,主要讲的是如何新建一个毫米波雷达的工程。

XiaoJie的博客 5808

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

点云3d检测SA-SSD

点云3d目标检测方法SA-SSD,引入点级监督学习辅助网络,学习结构信息,借助前景分割任务提高对象边界定位精度,中心估计任务帮助对象尺度和形状的确定,实现更精准的目标定位。同时,改进PSRoIAlign,提出PSWarp,减少后处理NMS预测框和置信度不一致问题。......

weixin_34961608的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

2.0 SA-SSD KITTI 3D数据可视化

KITTI 3D雷达数据可视化

weixin_38362784的博客 846

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【3D目标检测】OpenPCDet自定义数据集训练

【3D目标检测】OpenPCDet自定义数据集训练

qq_44703886的博客 8625

【3D分割】Segment Anything in 3D with Radiance Fields

NeRF(Neural Radiance Fields)是用于表示3D场景的连续函数,通过多层感知机(MLP)将空间坐标 和视角方向 映射到相应位置的颜色 和体积密度。渲染图像时,NeRF通过光线投射技术生成每个像素点的颜色,公式如下:其中,权重 表示在射线路径 r(t)上的透明度和体积密度的综合效果,公式如下:其中 tn 和 t 分别为光线的近界和远界。

cjy_colorful0806的博客 1850

3D点云学习:SA-SSD①

0.序言 硕士阶段开始接触基于深度学习的自动驾驶课题,主要研究方向是基于激光雷达的环境感知。目前环境感知的结果包括:语义分割,目标识别和目标跟踪。在这里记录一下自己看过的论文,用的时候可以方便的找到。 1.论文简介 源码链接: https://github.com/skyhehe123/SA-SSD. 论文链接: https://www4.comp.polyu.edu.hk/~cslzhang/paper/SA-SSD.pdf. SA-SSD这是一篇来自 港理工和阿里达摩院的合作文章。投出了一种基于sing

themasterbi的博客 1302

PVN3D 中 SA 模块与 FP 模块详解

本文分析了PVN3D中Pointnet2MSG点云主干网络的结构与实现。重点解析了SA(Set Abstraction)和FP(Feature Propagation)模块:SA模块通过多尺度分组实现点云下采样和局部特征提取,包含中心点采样、邻域构建和特征聚合;FP模块则通过3NN插值将深层语义特征传播回高分辨率点集。文章详细说明了各模块的输入输出、配置参数及核心算子实现,包括furthest_point_sample、ball_query等关键操作,并提供了Python伪代码说明数据流。该网络通过4层SA

豆破苍琼 477

SA Profile Keys 3D 模型:定制你的机械键盘

SA Profile Keys 3D 模型:定制你的机械键盘 项目介绍 你是否曾经梦想过拥有一个独一无二的机械键盘?SA Profile Keys 3D models 项目为你提供了一个强大的工具,帮助你设计和规划 Signature Plastics SA 键帽的布局和配色。无论你是键盘爱好者、设计师还是开发者,这个开源项目都能满足你对个性化键盘的需求。 项目技术分析 SA Profile Ke...

gitblog_00564的博客 1338

SA-Det3D 项目使用教程

SA-Det3D 项目使用教程 项目介绍 SA-Det3D 是一个基于自注意力机制的上下文感知三维物体检测项目,主要用于自动驾驶和三维深度学习领域。该项目由 Prarthana Bhattacharyya、Chengjie Huang 和 Krzysztof Czarnecki 开发,并在 ICCVW-2021 上发布。SA-Det3D 的代码基于 OpenPCDet,提供了一系列配置文件和支持代...

gitblog_00373的博客 508

3D点云学习:SA-SSD③源码注释

1 参考博客 在注释源码时,主要参考了另一个作者的几篇博客,帮助非常大。 参考博客: 简析SA-SSD在预处理训练评估的框架. 作者博客空间: 小白科研笔记. 由于代码量和注释量都比较大,因此截取几个第一次接触或者有启发的代码。 2 ...

themasterbi的博客 2910

SA-Det3D 项目常见问题解决方案

SA-Det3D 项目常见问题解决方案 1. 项目基础介绍 SA-Det3D 是一个基于自我关注(Self-Attention)机制的三维对象检测项目。该项目通过增强卷积特征来自我关注特征,以提高三维对象检测的准确性和效率。SA-Det3D 基于当前最先进的三维检测方法,如 BEV、体素、点和点-体素检测器,并通过引入全自我关注(FSA)和可变形自我关注(DSA)两种变体,在不同大小的点云数据上实...

gitblog_00263的博客 831
上一篇: ValueError: Could not find a backend to open path with iomode `wI` 解决
下一篇: 3D点云分割之SAGA(cvpr2023) 配置及使用
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值