多目标跟踪的帧间数据关联可以分为online(frame-by-frame)和offline(batch-by-batch)两类。前者讲究追求real-time tracking,跟踪结果的给出无时延,理论上讲可以拼Real-time(可惜往往没戏嘻嘻。。);后者讲究利用前后帧更多的信息,即在一个time window中一次性实现多帧的关联,用精度换速度换时效性。不可避免地带了了输出的迟滞,而且关联的问题也由online的二部图匹配提升到多部图匹配,且匹配的解空间随batch的增大而指数增长。
用Network flow(NF)解多目标跟踪中的帧间数据关联基本属于标准操作,隶属于上述的第二类batch-mode。此类用NF方法解detections或者tracklets之间关联的业界标杆是USC Nevatia大师的CVPR08佳作《Global Data Association for Multi-Object Tracking Using Network FLows》以及ECCV08《Robust Object Tracking by Hierarchical Association of Detection Responses》。当然,我的带教导师UCF Dr.Shah也在此方面多有建树。但是Shah大师更倾向于用multi-clique的方法来formulate多目标关联的问题,详情请搜GMCP tracker~~~
下接正文:
核心上说,Bipartite Matching是逐帧关联,是一种online method;Network Flow是一种batch-mode,offline多帧关联。不论是BM还是NF,都可以化作一个Linear Programming的优化问题求解。而且,Bipartite matching(乃至多步图匹配问题)也可以化作network flow的问题。而在这个优化问题中,最关键的是cost function。
Cost function和affinity metric是分不开的。作为衡量pair-wise cost而言,链各个entities之间的affinity往往是影响cost的重要依据。而这种pair-wise affinity的来源,一般有detector confidence,motion & appearance similarities,i.e. temporal & spatial distances。
本文是分步走的DA,先DR2DR生成TLs(没有用Detector,DR是直接用数据库给出的DR),再由TLs生成Traj。DR2DR DA用的是overlapping temporal window做的batch-wise network flow minimization bi-level optimization;而TL2TL用的是HA做二部图匹配,affinity用的是两个TL之间重合的DR数目。
在DR2DR用network flow解多步图匹配阶段establish E2E learning。学什么?学cost,准确说是学cost function中的参数。把多步图匹配求解的问题转化为一个bi-level minimization,其中的cost term是参数化的,学就学cost里面的参数。当然,因为是E2E,所以gradient BP回前段计算appearance affinity时的CNN feature extractor too。所谓参数化cost,就是省去原来hand-crafted cost function时1.对function的选择,2. Grid search优化调参。可学习的cost function就是一些MLP把输入feature转化为一个scalar value output。
- 如何把一个多帧DA的多步图匹配转化为一个Network Flow问题(即构建一个NF grap