Hierarchical Object Detection with Deep Reinforcement Learning论文笔记

Hierarchical Object Detection with Deep Reinforcement Learning论文笔记
这是一篇NIPS2016中有关目标检测的文章,虽然有点老,但是其free anchor的思想还是值得借鉴。尤其今年和free anchor相关的目标检测研究大火,但其大多是从先探测物体的中心点或者是关键点,由点到面从而学习到精确的轮廓或者位置信息。

一、研究动机

受人眼观察世界方式的启发:我们首先将我们的视线集中在一幅图片的显著位置,通过对该区域的信息提取有助于将我们的视线转移到相关区域直到完全理解图片将图片所有目标搜索完毕。同样对于目标检测其而言,在大幅图片上聚焦于信息丰富且有目标物集中的区域并且将其放大,通过训练一个智能体能够在一个图片中实现定义的五个窗口选出一个进行放大检测,该放大区域也会同样地延续刚才的选择步骤,如此递归直至将目标物框出。整个过程将图片按层次结构进行不断切分放大检测。
这和基于滑窗的目标检测方法不同之处在于:滑窗并没有考虑图片块之间的联系,而是对每个块展开独立的分析。而我们的智能体通过层次结构来表示图片从而很好的考虑到块之间的联系。与此同时不需要非极大值抑制的后处理,关键是减少了检测区域。

二、研究贡献

(1)采用一种自顶向下的树状搜索机制指导智能体搜索目标位置,对比了两种窗口设置的方式:有重叠和无重叠,探究了层次结构的设定与放大区域个数的设置对检测效果的影响。
(2)比较了两种特征抽取的方式:在切取的图片块中单独抽取特征和重复使用整张特征图,并在其上切取相应区域的特征图,最终选定第一种方式(得益于智能体搜寻过程中去掉大部分区域从而减少计算量)。

三、研究方法(层次化目标检测模型)

马尔可夫过程构建
(1)状态(State)
状态描述子由两部分组成:当前区域(current region)和记忆向量(memory vector)。一个memory vector 记录了为搜寻某个物体最近完成的4个动作,并将其用one-hot编码,因为有六种动作(左上、右上、左下、右下、中心、结束)memory actor一共有24维。
(2)动作(Actions)
包含移动动作(movement)和终结动作(terminal),前者规定只能在当前观察区域进行转换,且转换的方式只能是事先规定好的自顶向下的层次结构,后者暗示了一个物体别找到当前搜寻结束。动作执行流程可见下图(有重叠的方式):
Hierarchical Object Detection with Deep Reinforcement Learning论文笔记
(3)奖励(reward)
movement的奖励方程为动作前后两个搜索框和目标框IoU之差(从框b到b’):
Hierarchical Object Detection with Deep Reinforcement Learning论文笔记
terminal的奖励方程按照最终IoU是否大于某个阈值:
Hierarchical Object Detection with Deep Reinforcement Learning论文笔记
Q-learning
采用的是基于价值的模型——Q(s,a),智能体会选择拥有最高奖励的动作,而Q-learning通过bellman方程迭代更新动作策略。我们用DQN近似估计Q值。
完整模型
实验中采取了两种特征提取方式,第一种如下图篮框所示:每个图片区域resize到一定尺度进行特征提取,第二种如下图紫框所示:完整图片只提取一次特征,再将特征图切割。两种方式都会产生一个7x7的特征图,被送到公共的DQN网络输出一个动作(6维)
Hierarchical Object Detection with Deep Reinforcement Learning论文笔记
模型训练
(1)探索-利用(Exploration-Exploitation)
epsilon-greedy策略:epsilon以1起始,不断减小直至为0.1,表示以epsilon的概率采取随机动作。一开始采用随机action,在之后的每个epoch,智能体更依赖于学到的策略来采取行动。值得注意的是:为了加速训练,会强迫每次行动的当前区域IoU>0.5,也正是这种包含探索的策略会避免最终结果陷入局部最小值。
(2)学习轨迹(Learning trajectories)
在每个时间步骤,如果有多个物体存在在当前区域,下一个动作往往会更加关注于和ground truth重叠最大的物体,因此在这个自顶向下的过程目标物很有可能会变化。
(3)训练参数
DQN权重初始化采用正态分布,Adam作为优化器采用1e-6的学习率,每个模型训练50个epoch
(4)经验回放(experience replay)
维持一个1000的经验池,存放经历过的(s,a,r,s’),随机的抽样100个作为训练数据,以避免连续不断的经历过程导致不稳定的训练(强行制造非连续训练样本,避免前后耦合)
(5)折扣因子(discount replay)
为了更好的模拟长期奖励,离现在越远的未来奖励对现在的影响越小,当前取0.9.

四、实验分析

如下左图对比了交叠和非交叠切割方式,前者效果更佳。右图说明先切图再在切好的图块上提取特征做探测效果更佳。
Hierarchical Object Detection with Deep Reinforcement Learning论文笔记
本文针对不同尺度的物体进行搜寻的epoch做了分析,如下图:当目标占据整张图片的绝大部分时,直取要一步即可。物体越小则步骤越多。
Hierarchical Object Detection with Deep Reinforcement Learning论文笔记

五、总结

采用嵌套层次搜索的手段抛弃了基于区域建议的方式,而这种搜索方式正好满足强化学习适用于序列性任务的要求,用IoU指标制定相应的reward方程,为了规定有限个动作范围,采用了事先规定的五点子窗口区域,大大减少了检测的范围。不得不服!!!