68、Learning Object-Compositional Neural Radi

news2024/11/18 13:49:20

简介

在这里插入图片描述
设计了一种新的双通路架构,其中场景分支编码场景几何和外观,而对象分支编码以可学习的对象激活码为条件的每个独立对象。为在严重杂乱的场景中生存训练,提出一种场景引导的训练策略,以解决遮挡区域的3D空间模糊性,并学习到每个物体的清晰边界。

实现过程

论文实现基于体素方法NSVF
在这里插入图片描述
场景分支旨在编码整个场景的几何形状和外观,在可编辑场景渲染中渲染周围背景,并协助对象分支识别遮挡区域,场景分支以空间坐标x为输入,插值后的场景体素以x处的 f s c n f_{scn} fscn和光线方向d为输入,输出场景的颜色 c s c n c_{scn} cscn和透明度 σ s c n σ_{scn} σscn
对象分支采用额外的对象体素特征 f o b j f_{obj} fobj(有助于拓宽学习分解能力,并且为所有对象共享)以及对象激活代码 l o b j l_{obj} lobj,以条件输出仅包含特定对象在其原始位置的颜色 c o b j c_{obj} cobj和透明度 σ o b j σ_{obj} σobj,其他所有内容都被删除。训练过程中将一堆打乱的对象激活码分配给训练射线,同时学习对多个对象进行编码,而不需要分别为每个对象进行训练

对象分支

对象辐射场应该只在对象占据的区域是不透明的,其他地方是透明的(即零不透明度),论文利用2D实例分割作为目标分支的监督信号。

假设在一个场景中有K个注释对象的训练过程,以及一个可学习的对象代码库 L = { l o b j k } L = \{ l^k_{obj}\} L={lobjk},批量训练集 N r N_r Nr 中的每条射线 r,我们选择一个对象 k 作为训练目标,并将对象激活码 l o b j k l^k_{obj} lobjk 分配给对象分支输入,最后得到渲染颜色 C ^ o b j k \hat{C}^k_{obj} C^objk,2D对象不透明度 O ^ ( r ) o b j k \hat{O}(r)^k_{obj} O^(r)objk
在这里插入图片描述
其中 a i = 1 − e x p ( − σ o b j j δ j ) a_i = 1 - exp(-\sigma_{obj_j}\delta_j) ai=1exp(σobjjδj),2D对象不透明度 O ^ ( r ) o b j k \hat{O}(r)^k_{obj} O^(r)objk以满足2D实例掩模,最小化到对应实例掩模M ®k的平方距离,同时最小化了带掩膜的渲染物体颜色和地面真实颜色之间的平方距离
在这里插入图片描述
w ( r ) k w(r)^k w(r)k是实例掩码的0到1信号之间的平衡权重

场景引导、3D掩膜训练策略

在这里插入图片描述

在现实世界的场景扫描中,目标对象经常被其他前景遮挡,从而产生不完整的实例掩码,直接使用这些不完整的掩模作为监督可能会过度杀灭部分对象并学习破碎的辐射场,不能简单地忽视对空白区域的监督,否则模型将在无监督区域呈现意外的浮动。

场景引导:
利用场景分支的透射率来指导目标分支的偏差采样,称为场景引导,显著减少了遮挡区域内的点采样,减轻了对目标分支的错误监督

当目标对象经常被其他实例遮挡时,学习到的对象辐射度场仍然会受到影响,如上图中的d
在这里插入图片描述

3D掩膜:
采用3D保护掩模来停止应用于被遮挡区域的梯度,通过场景分支在线渲染场景深度 d s c n d_{scn} dscn,并以较小的距离 ε 沿相机方向轻微推动它,利用3D保护模板来保护被遮挡的部分,该模板是通过从比推送的场景深度 d s c n + ε d_{scn} + ε dscn+ε 更远的3D空间中减去可见实例空间来构建的。

在对象分支的训练过程中,显式地修剪3D保护掩模内的射线样本。

假设两个标注对象之间的距离通常大于ε,如果可以在没有任何遮挡的情况下查看目标对象,3D保护掩码将允许对对象和周围空间进行足够的点采样,因此实例监督信号将引导对象分支对目标对象进行编码,并消除其他一切,如果目标对象被遮挡,则遮挡区域的“空”信号的梯度将被遮挡,而可见区域仍然可以得到适当的监督

实验证明,3D保护掩模对ε的选择不敏感
在这里插入图片描述

loss

场景分支损失
在这里插入图片描述
总损失
在这里插入图片描述

场景编辑

在背景阶段,在修剪目标区域的点采样的同时,从场景分支中获取场景颜色和不透明度 { c s c n i , σ s c n i } i = 1 N \{c_{scn_i}, σ_{scn_i}\}^N_{i=1} {cscniσscni}i=1N,从而将原始物体从场景中移除,在对象阶段,对K个目标物体发射光线,并按照用户定义的操作将物体特定的颜色和不透明度 { c o b j i k , σ o b j i ∣ k } i = 1 N   K = 1 K \{c^k_{obj_i},σ^k_{obj_i|}\}^N_{i=1} \ ^K_{K=1} {cobjikσobjik}i=1N K=1K变换到所需的位置,按照光线方向的距离排序,聚合所有的不透明度和颜色,并使用积分规则渲染像素颜色
在这里插入图片描述

实验

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

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

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

相关文章

【ElasticSearch7.X】学习笔记(四)

【ElasticSearch7.X】学习笔记八、SpringData集成ElasticSearch8.1、框架8.1.1、SpringData8.1.2、Spring Data Elasticsearch8.2、搭建8.2.1、maven引入8.2.2、编写配置8.2.3、编写config8.2.4、Product类8.2.5、dao8.2.6、索引操作8.2.7、文档操作8.2.8、文档搜索八、SpringD…

基于 Tensorflow 2.x 从零训练 15 点人脸关键点检测模型

一、人脸关键点检测数据集 在计算机视觉人脸计算领域,人脸关键点检测是一个十分重要的区域,可以实现例如一些人脸矫正、表情分析、姿态分析、人脸识别、人脸美颜等方向。 人脸关键点数据集通常有 5点、15点、68点、96点、98点、106点、186点 等&#x…

ccc-sklearn-14-朴素贝叶斯(2)

文章目录sklearn中的其他贝叶斯算法一、MultinomialNB多项式贝叶斯sklearn中的MultinomialNB二、BernoulliNB伯努利朴素贝叶斯三、ComplementNB补集朴素贝叶斯案例:贝叶斯做文本分类sklearn中的其他贝叶斯算法 一、MultinomialNB多项式贝叶斯 基于原始的贝叶斯理论…

【openGauss实战2】客户端连接工具及配置

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!😜&#x1f61…

shell第七天练习

awk题目: 1、获取根分区剩余大小 2、获取当前机器ip地址 3、统计出apache的access.log中访问量最多的5个IP 4、打印/etc/passwd中UID大于500的用户名和uid 5、/etc/passwd 中匹配包含root或net或ucp的任意行 7、请打印出/etc/passwd 第一个域,并且在第一…

广度优先搜索BFS进阶(一):多源BFS、优先队列BFS、双端队列BFS

一、多源BFS 在上一篇博客:广度优先搜索BFS基础中,我们接触到的BFS均是单起点(单源)的,但是对于某一些问题,其有多个起点,此类问题我们称为多源BFS问题。先思考下面一道例题: 1.腐…

类加载,类初始化,对象创建过程总结

总结&#xff1a;假如一个类还未加载到内存中&#xff0c;那么在创建一个该类的实例时&#xff0c;具体过程是怎样的&#xff1f;父类的类构造器<clinit>() -> 子类的类构造器<clinit>() -> 父类的成员变量和实例代码块 -> 父类的构造函数 -> 子类的成…

Go第 11 章 :面向对象编程(下)

Go第 11 章 &#xff1a;面向对象编程(下) 11.1 VSCode 的使用 11.1.1 VSCode 使用技巧和经验 11.2 面向对象编程思想-抽象 11.2.1 抽象的介绍 我们在前面去定义一个结构体时候&#xff0c;实际上就是把一类事物的共有的属性(字段)和行为(方法)提取 出来&#xff0c;形成一…

手把手教你图文并茂windows10安装VMware创建CentOS-7-x86_64运行linux系统

VMware是什么 VMWare (Virtual Machine ware)可以使你的计算机上同时运行几个系统、例如windows、DOS、LINUX等同时存在&#xff0c;可以将这些系统像程序似的随时切换&#xff0c;并且不会影响主系统&#xff0c;所有系统共享一个IP。 下载 VMware官网 安装 网上搜索一个序…

LeetCode栈和队列经典例题

本期博客给大家带来了几道经典栈和队列题&#xff0c;吃透它简直易如反掌~1.括号匹配问题题目地址&#xff1a;20. 有效的括号 - 力扣&#xff08;Leetcode&#xff09;解题思路&#xff1a;在这里我们创建一个栈&#xff0c;每次将字符入栈之前先对比栈顶元素是否相同&#xf…

蓝桥杯嵌入式之 LED 闪烁

这篇文章将详细为大家介绍如何实现 LED 闪烁。 我们使用的是 HAL 库。 文章目录前言一、STM32CubeMX配置:二、LED 原理图&#xff1a;三、LED闪烁 讲解&#xff1a;1. HAL_GPIO_WritePin 函数&#xff1a;用于操作 *GPIO* 电平。2.HAL_Delay函数&#xff1a;作为毫秒级延迟的函…

【消息队列】Centos7 虚拟机安装 RocketMQ 及启动控制台

文章目录前言目的注意点官网虚拟机1. 环境变量2. 安装并启动rocketmq3. 安装docker4. docker拉取并运行rocketmq-dashboard5. 关闭防火墙6. 宿主机查看控制台7. 关闭虚拟机的进程后记前言 目的 模拟在服务器上运行RocketMQ&#xff0c;并且有控制台的能力。以后本地window可以…

【自学C++】C++变量作用域

C变量作用域 C变量作用域教程 C 中的一个 变量 或 常量 在程序中都有一定的作用范围&#xff0c;我们称之为作用域。C 变量作用域可分为局部作用域和全局作用域。 C局部变量 在 函数 内部声明/定义的变量叫局部变量&#xff0c;局部变量的作用域仅限于函数内部。同时&#…

Linux应用编程---8.共享内存

Linux应用编程—8.共享内存 ​ 共享内存是进程之间通讯的方式。大概原理是先申请一块共享内存&#xff0c;然后通过“映射”&#xff0c;映射到进程中。进程中读写这块被映射过来的内存&#xff0c;共享内存也会随之改变&#xff0c;同理其它进程也能做相同的操作。所以&#…

dubbo源码实践-protocol层例子

1 概述本文提供了基于protocol层的一个客户端、服务端代码例子。从dubbo 2.7的架构图上可以看到protocol层上在Remoting层之上的&#xff0c;个人理解Protocol层不在讨论客户端和服务端的概念了&#xff0c;开始讨论服务提供者和服务消费者的概念了。参考上一篇dubbo源码实践-p…

基于ngxin一个http模板

1.初始化 static char * ngx_http_mytest(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);static ngx_int_t ngx_http_mytest_handler(ngx_http_request_t *r);static ngx_command_t ngx_http_mytest_commands[] {{ngx_string("mytest"),NGX_HTTP_MAIN_CONF | N…

分布式基础篇2——分布式组件(谷粒商城)

一、SpringCloud Alibaba1、简介2、为什么使用3、版本选择4、依赖选择二、SpringCloud Alibaba 组件1、Nacos作为注册中心2、OpenFeign3、Nacos作为配置中心namespaceData IDGroup同时加载多个配置文件三、Spring Cloud1、GateWay简介三大核心部分网关的使用视频来源: 【Java项…

爬虫学习+实战

爬虫 概念&#xff1a; 网络爬虫&#xff1a;就是模拟客户端发送请求&#xff0c;获取响应数据&#xff0c;一种按照一定的规则&#xff0c;自动地抓取万维网上的信息的程序或者脚本 爬虫分类: 通用爬虫&#xff1a;抓取系统中重要的组成部分。抓取的是一整张页面数据聚焦爬…

I2C总线驱动

一. I2C背景知识 SOC芯片平台的外设分为&#xff1a; 一级外设&#xff1a;外设控制器集成在SOC芯片内部二级外设&#xff1a;外设控制器由另一块芯片负责&#xff0c;通过一些通讯总线与SOC芯片相连 Inter-Integrated Circuit&#xff1a; 字面意思是用于“集成电路之间”的…

SELECT COUNT(*) 会造成全表扫描?回去等通知吧

本文已经收录到Github仓库&#xff0c;该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点&#xff0c;欢迎star~ Github地址&#xff1a;https://github.com/T…