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来组建接近真实的虚拟环境。
增强学习算法
时刻的观察到的图像为
,它就是摄像机在该时刻拍摄的原始图像,状态
是一直到该时刻累计的观察经验,
。在时刻
,agent收到来自摄像机的原始图像
,同时也收到来自环境的reward
,
根据reward function计算得到
。接下来,agent根据当前的策略
来选择动作
。根据当前的状态
和动作
,就会根据环境得到下一个状态
,也就能够得到一个三元组的序列,称之为trajectory,
。
用表示discounted accumulated reward, 价值函数就可以表示为它的加权平均,也就是说状态
在策略
的价值为
,action-value 函数表示为
, advantage function就可以表示为两者的差
,它表示了每一个action的相对价值。
Actor-Critic算法
其中是entropy regularizer,
是regularizer factor,
是前一次更新后的参数,因为更新是在每
步之后进行的,也就是利用这
步的trajectory来进行参数的更新。
Network Architecture
整个网络包含三个主要部分:一个obervation encoder, 一个sequence decoder,一个actor-critic 网络,如下图

Observation Encoder
类似于大多数encoder,作者这里使用一个encoder 来讲原始输入的像素图像转换为一个特征向量
Sequence Encoder
Sequence encoder将所有观察历史的信息组合起来,用于actor-critic网络。因此,
具备了存储预测物体运动的能力,因为它将物体在之前时刻的信息都利用了起来,相对地
就仅仅只是包含了物体的what, where信息。自然地,作者也就使用了RNN来作为Encoder。
Actor-Critic 网络
Actor网络和Critic网络使用了相同的输入:,其中critic估计value function:
,actor输出策略:policy distribution
,使用这两个网络的输出
就可以根据之前的更新公式来进行网络的训练。
Reward Function
reward function 的设计应该能够鼓励agent紧紧地盯住物体,因此作者设计了一个二维的local坐标系,如下图:

公式如下:

网友评论