End-to-end Active Object Trackin

2018-08-18  本文已影响0人  Junr_0926

End-to-end active object tracking and its real-world deployment via Reinforcement Learning

对于以往的追踪来说,都会假设在镜头内总有感兴趣的物体,作者称之为 passive tracker(消极追踪),这样的追踪不会去控制摄像头的运动。在这篇论文中,作者提出了一种端到端(end-to-end)的追踪方案,通过增强学习来进行active tracker(积极追踪)。具体来说,作者使用了ConvNet-LSTM,将原始的视频作为输入,输出摄像头的运动(e.g., move forward, turn left 等)
作者使用模拟器来模拟摄像头的运动和运动后得到的图像,算法采用了A3C。同时,作者采用了一种环境增强的方法(environment augmentation)来增加追踪器的泛化性能。为了实现环境增强(随机地改变环境),作者花费了很多时间在准备不同的环境,不同物体的apperances,不同的背景,物体不同的运动轨迹。

our approach

在环境的模拟上,作者使用ViZDoom,在虚拟环境中建立一个怪物作为被跟踪对象,这个怪物会根据设定好的路径进行运动,由于ViZDoom无法提供真实的环境景象,作者还使用了Unreal Engine来组建接近真实的虚拟环境。

增强学习算法

t时刻的观察到的图像为o_t,它就是摄像机在该时刻拍摄的原始图像,状态s_t是一直到该时刻累计的观察经验,s_t = (o_1, o_2, ..., o_t)。在时刻t,agent收到来自摄像机的原始图像o_t,同时也收到来自环境的reward r_t \in Rr_t根据reward function计算得到r_t=g(s_t)。接下来,agent根据当前的策略a_t \sim t(\cdot|s_t)来选择动作a_t \in A。根据当前的状态s_t和动作a_t,就会根据环境得到下一个状态s_{t+1}=f(s_t, a_t),也就能够得到一个三元组的序列,称之为trajectory, \tau = \{..., (s_t, a_t, r_t), (s_{t+1}, a_{t+1}, r_{t+1}), ...\}
R_{t:\infty}=r_t+\gamma r_{t+1} + ...表示discounted accumulated reward, 价值函数就可以表示为它的加权平均,也就是说状态s_t在策略\pi的价值为V^{\pi}(s) = E[R_{t:\infty}|s_t=s],action-value 函数表示为Q^\pi(s, a)=E[R_{t:\infty}|s_t=s, a_t=a, \pi], advantage function就可以表示为两者的差A^\pi(s,a)=Q^\pi(s, a)-V^\pi(s),它表示了每一个action的相对价值。

Actor-Critic算法
\pi(a|s_t;\theta)
\theta \leftarrow \theta + \alpha\nabla_\theta \log \pi(a_t|s_t;\theta)A(s_t, a_t) + \beta \nabla_\theta H(\pi(a|s_t; \theta))

V(s_t;\theta^{'})
\theta^{'} \leftarrow \theta{'} - \alpha \nabla_{\theta^{'}} 1/2 (R_{t:t+n-1}+\gamma^{n}V(s_{t+n};\theta^{'-})-V(s_t:\theta{'}))^2

其中H是entropy regularizer,\beta是regularizer factor, \theta^{'-}是前一次更新后的参数,因为更新是在每n步之后进行的,也就是利用这n步的trajectory来进行参数的更新。

Network Architecture

整个网络包含三个主要部分:一个obervation encoder, 一个sequence decoder,一个actor-critic 网络,如下图


网络结构

Observation Encoder

类似于大多数encoder,作者这里使用一个encoder f_o(s_t)来讲原始输入的像素图像转换为一个特征向量\phi_t

Sequence Encoder

Sequence encoder\varphi_t = f_s(\phi_1, \phi_2, ...\phi_t)将所有观察历史的信息组合起来,用于actor-critic网络。因此,\varphi_t具备了存储预测物体运动的能力,因为它将物体在之前时刻的信息都利用了起来,相对地\phi_t就仅仅只是包含了物体的what, where信息。自然地,作者也就使用了RNN来作为Encoder。

Actor-Critic 网络

Actor网络和Critic网络使用了相同的输入:\varphi_t,其中critic估计value function: V(s_t),actor输出策略:policy distribution \pi(\cdot;s_t),使用这两个网络的输出 V(s_t), \pi(\cdot;s_t)就可以根据之前的更新公式来进行网络的训练。

Reward Function

reward function 的设计应该能够鼓励agent紧紧地盯住物体,因此作者设计了一个二维的local坐标系,如下图:


坐标系

公式如下:


公式
上一篇下一篇

猜你喜欢

热点阅读