摘要
提出基于强化学习算法演员-评论家算法(Actor-Critic)的实时单目标跟踪算法。Actor 用于在连续动作空间(action space)中选择最优决策跟踪目标当前位置,Critic预测Q值引导两部分训练学习。
介绍
深度学习算法太慢,关于强化学习用于跟踪有一篇论文提出一个动作决策网络Action decision network,它是在一帧内选择一系列的动作直到跟踪目标,但也未达到实时跟踪。本文希望Actor 模型一步决策直接跟踪到目标,Critic 评估跟踪效果。
贡献
1.在连续动作空间中选择动作用于跟踪,并每帧只决策一次
2.演员评论家算法用于跟踪,强化学习的方式离线训练并在线调整。
3.实验
方法
在演员评论家算法中,Actor模型通过目标框的移动决策在当前帧预测目标位置,其它可使用强化学习离线训练,Critic评估决策质量并提升跟踪性能。
问题描述
用强化学习方式跟踪目标后,跟踪问题转化的一个马尔科夫决策过程。也就是要确定Action, State, State Transition, Reward
State:目标观测状态,用目标相应位置矩形框表示,
b
=
[
x
,
y
,
w
,
h
]
b = [x,y,w,h]
b=[x,y,w,h]表示目标位置与大小,则目标状态为图片在该位置下裁剪的图片。记为
s
=
ϕ
(
b
,
F
)
s = \phi(b,F)
s=ϕ(b,F),
F
F
F是给定帧,再将裁剪图片调整大小使其可输入网络中。
Action and State Transition: 动作与状态变换。动作Action指如何移动目标框位置,如何变化框大小能在当前帧框出目标,记为
a
=
[
Δ
x
,
Δ
y
,
Δ
s
]
a=[\Delta x, \Delta y, \Delta s]
a=[Δx,Δy,Δs],描述相应位置与尺度变化。和目标检测边框回归一样,不直接预测对应值,而是预测相应变换并限制取值范围,
−
1
≤
Δ
x
≤
1
,
−
1
≤
Δ
y
≤
1
,
−
0.05
≤
Δ
s
≤
0.05
-1 \leq \Delta x \leq 1,-1 \leq \Delta y \leq 1,-0.05 \leq \Delta s \leq 0.05
−1≤Δx≤1,−1≤Δy≤1,−0.05≤Δs≤0.05,预测出三个值后可对当前目标位置作出预测
b
′
b^{'}
b′
因为新的目标位置预测出来了,也就得到了目标新的状态
s
=
ϕ
(
b
′
,
F
)
s = \phi(b^{'},F)
s=ϕ(b′,F)。三个变换值组成一个动作,使用Actor 模型预测,输入是目标状态s,输出为动作向量a,即
a
=
μ
(
s
∣
θ
μ
)
a = \mu (s|\theta ^\mu)
a=μ(s∣θμ),
θ
μ
\theta ^\mu
θμ为网络参数。
Reward:反映采取动作a 后状态由s 变换为s’后定位提升效果。
离线训练
网络结构
三个来自VGG-M的卷积层,Actor网络还有两个512输出的全连接层,和一个三维输出的全连接层,在Critic离线训练的时候(对应网络中箭头train 分支),第二个512输出的全连接层与Actor网络输出合并预测Q值。
训练
训练使用DDPG方法,基于强化学习的方法采N个样本
(
s
i
,
a
i
,
s
i
′
,
r
i
)
(s_i, a_i, s^{'}_i, r_i)
(si,ai,si′,ri),Critic 使用Q-learning训练 ,最小化损失
然后更新Actor模型,J是强化学习的目标函数 ,Actor训练是基于策略梯度法,公式4 是确定性策略的目标函数梯度。
训练过程改进
跟踪过程的动作空间范围太大,DDPG方法不是很适合。采用随机搜索策略找到一个正回报的动作概率太小,利用初始帧的监督信息初始化Actor 模型(是在初始帧目标周围采样初始化模型的意思,离线训练 和跟踪的时候都这样微调),最小化损失来调整网络
正负样本不平衡问题,源DDPG算法以概率在演员家模型输出加上噪声,
这里以
ϵ
\epsilon
ϵ的概率用专家决策代替动作模型的输出,随着训练过程的进行,概率逐渐降低.
在线跟踪
在Ground truth 周围采样M个修行框
b
m
∣
m
=
1
M
b_m|_{m=1}^M
bm∣m=1M,并计算相应的动作
a
m
∣
m
=
1
M
a_m|_{m=1}^M
am∣m=1M,使用这些样本,最小化L2损失初始化Actor网络。
在线跟踪时,Critic 网络作为一个二分类器,根据IoU打label
最小化公式8 损失函数训练Critic ,
S
+
,
S
_
S_+,S_ \_
S+,S_表示正负样本。
跟踪过程
在t帧时,计算目标状态 s t = ϕ ( b t − 1 ′ , F ) s_t=\phi(b_{t-1}^{'},F) st=ϕ(bt−1′,F), b t − 1 ′ b_{t-1}^{'} bt−1′是前一时刻的跟踪结果,将 s t s_t st输入到Actor网络中,得到输出 a t a_t at,计算新的目标位置 b t ′ b_{t}^{'} bt′和新的目标状态 s t ′ s_t^{'} st′,将 s t ′ s_t^{'} st′输入到Critic网络,如果网络输出大于0,则认为Actor的结果可依赖的, b t ′ b_{t}^{'} bt′作为目标的新位置,如果网络输出不大于0,则重新检测目标,在 b t − 1 ′ b_{t-1}^{'} bt−1′周围采样,选择Critic 输出最高的作为目标位置。
实验
算法与其它算法比较
算法与本身算法的变种比较