主页:https://dannydriess.github.io/nerf-rl/
基础知识:
论文证明了在神经辐射场(NeRFs)的监督下学习状态表示,可以提高RL的性能。
learned latent scene RL 的一般思想是学习一个编码器Ω,该编码器将观测点 y ∈ Y y∈Y y∈Y 映射到场景的 k 维潜向量 z = Ω ( y ) ∈ Z ⊂ R k z = Ω(y)∈Z⊂R^k z=Ω(y)∈Z⊂Rk。然后 RL 组件,例如 Q-fuction 或者 policy,操作 z 作为其状态描述。对于策略 π,这意味着作用 a ~ π(·| z) = π(·| Ω(y)) 的条件是潜在向量 z,而不是直接的观测 y。潜向量的维数 k 通常比观测空间Y 的维数小得多,但比状态空间 S 的维数大得多。
而论文中使用(合成)NeRF解码器
实验表明,对于多个环境,NeRF的监督会导致潜在的表示,并且NeRFs提供3D inductive biases,与通过2D CNN解码器的监督相比,RL过程效率更高
贡献点
强化学习(RL)算法的样本效率关键取决于其操作的底层系统状态的表示,状态的低维(直接)表示,例如环境中对象的位置,被认为是使产生的RL问题最有效的。
但是,低维、直接的状态表示可能有几个缺点:
很多方法直接从原始、高维观测(如图像)中考虑RL。
例如通过编码器解码器获取图像特征,编码器接受高维输入并将其映射到状态的低维潜在表示,RL算法(如Q函数或策略网络)将潜在向量作为状态输入,这样就不需要单独的感知模块,框架可以从与任务相关的原始观察中提取信息,原则上可以在具有挑战性的环境中进行推广,例如,对象形状不同
联合训练能够单独处理RL信号的高维输入的编码器是一项挑战。为了解决这个问题,一种方法是对编码器进行不同任务的预处理,例如图像重建、多视图一致性或时间对比任务。或者,可以在RL过程中添加潜在编码的辅助损失
深层RL成功的关键因素之一是它能够从高维观测数据中找到环境的有效表示,广泛的研究已经开始探索使用各种辅助目标函数学习更好的状态表示的不同方法,其中对比学习在计算机视觉应用中的无监督表示学习中取得了成功,在此基础上,可以提高深度RL的性能和采样效率,其中对比信号可以来自时间对齐、相机视角和不同的感官模式,并应用于现实机器人任务
首先,在离线数据集上的多视图重构损失的监督下训练编码器和NeRF解码器,学习潜在空间,其中解码器是潜在条件的NeRF,它可以是global,也可以是compositional NeRF解码器。然后对编码器的权值进行冻结,将隐空间作为状态输入,用RL训练策略。单个对象的掩模仅对于编码器的组成变体是必需的。
RL 算法操作的状态表示 z 是由编码器产生的潜在向量,该编码器将图像从多个视图映射到潜在 z,该潜在 z 由(合成的)潜在条件NeRF解码器训练
假设该框架对下游RL任务是有益的,因为它产生潜在向量,代表场景中对象的实际3D几何形状,可以很好地处理多个对象,以及通过提供形状补全以一致的方式融合多个视图来处理遮挡,所有这些都与解决几何形状很重要的任务相关
论文研究了自动编码器框架的两种变体,一种是global的,其中整个场景由一个单独的潜在向量表示,另一种是compositional的,其中对象由它们自己的潜在向量表示。对于后者,对象通过视图中的掩码来标识
假设场景的一个观测 y = ( I 1 : V , K 1 : V , m 1 : V ) y = ( I^{1:V}, K^{1:V}, m^{1:V}) y=(I1:V,K1:V,m1:V) 由RGB图像 I i ∈ R 3 × h × w , i = 1 , … , V I_i∈R^{3×h×w}, i = 1,…, V Ii∈R3×h×w,i=1,…,V,取自 V 个摄像机视图,它们各自的摄像机投影矩阵 K i ∈ R 3 × 4 K_i∈R^{3×4} Ki∈R3×4(包括本征和外征),每个视图图像掩模 M 1 : V M^{1:V} M1:V。
对于global NeRF解码器,这些是全局非背景掩码 M t o t i ∈ 0 , 1 h × w M^i_{ tot}∈{0,1}^{h×w} Mtoti∈0,1h×w
对于 compositional NeRF 解码器,这些是二进制掩码 M j i ∈ 0 , 1 h × w M^i_ j∈{0,1}^{h×w} Mji∈0,1h×w 的集合,它们标识对象 j = 1,…, m 在视图 i 中的场景中
全局情况相当于m=1时, M t o t i = M j = 1 i M^i_{ tot} = M^i_ {j=1} Mtoti=Mj=1i
编码器 Ω 将这些来自多个视图的姿态图像观察映射到一组潜在向量 z 1 : m z_{1:m} z1:m 中,其中每个 z j z_j zj 在构图情况下分别表示场景中的每个对象,或单个 z 1 z_1 z1 表示场景中的所有对象
对于对象 j ,训练编码器的监督信号是图像重建损失
在输入视图 i 上,其中解码器 D 为潜在向量 z 1 : m z_{1:m} z1:m 集合中的摄像机矩阵 K 指定的任意视图渲染图像 I = D ( z 1 : m , K ) I = D(z_{1:m}, K) I=D(z1:m,K)
编码器和解码器都是端到端同时训练的
解码器的目标图像在 global 和 compositional 的情况下是相同的
I i ◦ M t o t i I_i◦M^i_{tot} Ii◦Mtoti是全局掩模图像,在 compositional 的情况下,这可以用 M t o t i = V j = 1 M M j i M^i_{tot} =V^M_{j=1}M^i_j Mtoti=Vj=1MMji 来计算
通过将来自物体的多个视图的信息融合到潜在向量中,解码器必须能够从多个视图渲染场景,这个自动编码器框架可以学习表示场景中物体的3D配置(形状和姿势)的潜在向量。
为了从自动编码器中的NeRF创建一个解码器来学习潜在空间,将NeRF f(·,z) 设为潜在向量 z ∈ R k z∈R^k z∈Rk,潜在代码旨在表示场景变化,即对象的形状和配置,以便RL agent 可以使用它作为状态表示。
在Compositional情况下,编码器产生一组潜在向量 z 1 : m z_{1:m} z1:m,分别描述每个对象 j=1…m,这导致了 m 个 NeRFs ( σ j ( x ) , c j ( x ) ) = f j ( x ) = f ( x , z j ) , j = 1 , . . . , m (σ_j(x), c_j(x)) = f_j(x) = f (x, z_j),j=1,...,m (σj(x),cj(x))=fj(x)=f(x,zj),j=1,...,m 及其相关的体积密度 σ j σ_j σj 和颜色值 c j c_j cj。
虽然可以为每个对象使用不同的网络 f j f_j fj 和各自的网络权重,但论文为所有对象使用单一的网络 f,这意味着物体的姿态以及它的形状和类型都是通过潜在代码 z j z_j zj 表示的。为了迫使那些条件NeRF分别学习每个物体的3D配置,将其合成为一个全局NeRF模型,并使用合成公式 σ ( x ) = ∑ j = 1 m σ j ( x ) , c ( x ) = 1 / σ ( x ) ∑ j = 1 m σ j ( x ) c j ( x ) σ(x) = ∑^m_{j=1} σ_j (x), c(x) = 1/σ(x) ∑^m_{j=1} σ_j (x)c_j (x) σ(x)=∑j=1mσj(x),c(x)=1/σ(x)∑j=1mσj(x)cj(x)。
由于这种合成发生在3D空间中,潜在向量将被学习,以便它们正确地表示场景中物体相对于其他物体的实际形状和姿态,假设这可能对RL agent 有用
编码器 Ω 通过将多个视图融合在一起来估计 RL 任务的潜在向量。研究从 nerf 构建的解码器来训练编码器端到端是否有利于RL,考虑了两种不同的编码器架构
第一个是2D CNN,它平均了来自不同视图的特征编码,其中每种编码都附加了该视图的摄像机矩阵的条件。
第二种方法是基于learned 3D neural vector field,通过三维卷积和相机投影在三维空间中融合不同的相机视图,从而融合了三维偏差。
这样,能够区分编码器和解码器中包含的3D先验的重要性。
对于全局版本,我们使用 《3d neural scene representations for visuomotor control》 中的网络架构作为编码器的选择。为了在组合情况下处理多个对象,修改上述网络体系结构,将对象掩码考虑在内,如下所示。对于每个对象 j, 2D CNN编码器进行计算
E C N N E_CNN ECNN 是一个 ResNet-18 CNN 特征提取器,从每个视图 i 的对象 j 的掩码输入图像 I i ◦ M j i I_i◦M^i_j Ii◦Mji 确定特征,然后与(平面化)相机矩阵连接。
因此,网络 g M L P g_{MLP} gMLP 的输出是每个视图的编码,包括相机信息,这些信息被平均,然后用 h M L P h_{MLP} hMLP 处理,以产生最终的潜在向量。
在全局情况下,设m =1, M j = 1 i = M t o t i M^i_{j=1} = M^i_{tot} Mj=1i=Mtoti ,使得 Ω C N N Ω_{CNN} ΩCNN 产生一个单独的潜在向量。
一些做法考虑将3D偏差纳入编码器学习中,通过从查询的3D场景位置计算像素对齐的特征,直接在3D空间中融合来自不同相机视图的信息。
论文利用了 《Learning multi-object dynamics with compositional neural radiance fields》 中的编码器架构,其思想是在三维空间中学习神经向量场 ϕ [ I 1 : V , m j 1 : V ] : R 3 → R E \phi [I^{1:V}, m^{1:V}_j]: R^3→R^E ϕ[I1:V,mj1:V]:R3→RE,条件是输入视图和掩码。 ϕ \phi ϕ 的特征是通过将查询点从各自的视图投影到相机坐标系中计算出来的。
为了将 ϕ \phi ϕ 转化为潜向量,在工作空间集 X h ∈ R d X × h X × w X X_h∈R^{d_X ×h_X ×w_X} Xh∈RdX×hX×wX (三维网格) 上进行查询,然后通过三维卷积网络进行处理,即 z j = E 3 D C N N ( ϕ [ I 1 : V , m j 1 : V ] ( X h ) ) z_j = E_{3D CNN} (\phi [I^{1:V}, m^{1:V}_j] (X_h)) zj=E3DCNN(ϕ[I1:V,mj1:V](Xh))
实验表明:compositional NeRF中的3D先验作为解码器比编码器中的先验更重要
NeRF训练目标强烈要求每个 f ( ⋅ , z j ) f(·,z_j) f(⋅,zj) 以其实际3D配置表示每个对象,并相对于场景中的其他对象(合成情况),包括其形状。这意味着潜在向量 z j z_j zj 必须包含此信息,即,它们经过训练以确定场景中的对象类型、形状和姿势。在全局情况下, z 1 z_1 z1 必须表示整个场景的几何图形。由于考虑的任务需要策略来考虑对象的几何形状,因此假设,能够参数化NeRF以在3D空间重建场景的潜在矢量必须包含足够的对象相关3D信息,这样策略才能成功。
global NeRF RL变体不依赖于推送场景中的单个对象遮罩,其性能高于所有基线,即遮罩将提高NeRF URL的性能,因为它们启用合成版本,但它们似乎并不重要
着重于从随机动作收集的数据集中离线预训练潜在表示。在RL期间,编码器是固定的,仅学习策略网络。这有一个优点,即相同的表示可以用于不同的RL任务,而训练表示的数据集不一定来自相同的分布。然而,如果需要策略来探索状态空间的合理区域,那么离线收集数据集以了解足以覆盖状态空间的潜在空间对于离线方法来说可能更具挑战性。对于实验来说,这不是一个问题,因为随机操作的数据收集就足够了。实际上,对同一环境的不同起始状态和不同形状(分布内)进行了概括。未来的工作可能会在在线设置中调查NeRF监管。
通过NeRF的重建损失在计算上比通过2D CNN去视频更为苛刻。解码器或对比术语,使得NeRF监控在每个RL培训步骤中都是一种辅助损失,成本高昂。一个潜在的解决方案是不在每个RL培训步骤中应用辅助损耗,而是使用较低的频率。就计算效率而言,对比学习比基于NeRF的解码器具有优势,因为使用CURL的编码可以在半天内训练,而NeRF自动编码器需要2天才能适应环境。然而,当对RL使用编码器时,推理时间没有差异
自动编码器框架可以将多个摄像机视图的信息融合为描述场景中对象的潜在矢量。这样,可以解决遮挡问题,代理可以从不同的摄影机角度更好地了解场景的3D。访问多个摄影机视图及其摄影机矩阵是额外假设,尽管相信利用此信息的能力是该方法的优势