本文只是记录笔者关于这篇论文的解读,并不是文章翻译,所以想看关于introduction或者related的可以去直接看文章或者其他的笔记。
论文地址
代码地址
FairMot是一个把检测和跟踪结合在一起的模型,模型的输出同时有检测信息以及re-id的信息,根据re-id的feature的信息把前后帧检测出的目标进行关联起来。
网络结构如图所示,输出的同时用detection和re-id部分,其中网络的backbone采用的DLA-34,在检测方面采用的是anchor-free的检测思路,输出的heatmap的中心点是行人的概率,heatmap与groundtruth的中心点的距离center-offset,以及bbox的大小box-size。
假设backbone的输出大小为C * W * H,则heatmap的Size为1 * W * H,center-offset的Size为2 * W * H,box-size的Size为2 * W * H.
re-id部分的Size为128 * W * H.
包括detection和re-id,损失函数一共有4部分,
heatmap损失函数:
groundtruth的定义:对于任意object,其box为 b i = ( x 1 i , y 1 i , x 2 i , y 2 i ) b^i=(x^i_1,y^i_1,x^i_2,y^i_2) bi=(x1i,y1i,x2i,y2i),可以得到其中心点坐标 b c i = ( x c i , y c i ) b^i_c=(x^i_c, y^i_c) bci=(xci,yci)。由网络结构可知,stride为4。所以box在heatmap上的位置为 ( x c i ~ , y c i ~ ) = ( ⌊ x c i 4 ⌋ , ⌊ y c i 4 ⌋ ) (\tilde{x^i_c},\tilde{y^i_c})=(\lfloor{\frac{x^i_c}{4}}\rfloor, \lfloor{\frac{y^i_c}{4}}\rfloor) (xci~,yci~)=(⌊4xci⌋,⌊4yci⌋)
heatmap中每个位置映射为 M x y = ∑ i = 1 N e x p − ( x − x c i ) 2 + ( y − y c i ~ ) 2 ~ 2 σ c 2 M_{xy}=\sum^N_{i=1}exp-\frac{(x-\tilde{x^i_c)^2+(y-\tilde{y^i_c})^2}}{2\sigma^2_c} Mxy=∑i=1Nexp−2σc2(x−xci)2+(y−yci~)2~,其中N为图片中object的个数,对于某个object而言,当heatmap离中心点越近 M x y M_{xy} Mxy的值就越高。heatmap的损失函数如下所示
这里有点问题,笔者认为如果按照以上的loss,作者是希望当heatmap和groundtruth的中心点重合的时候M为1,但是若是多个目标在一张图片中,当heatmap的坐标和groundtruth的坐标重合的时候,因为用的sum反而导致了M不为1,所以笔者认为这里应该用MAX而不是sum,这样就可以保证在一张图片中有多个目标的时候,当heatmap和groundtruth重合时,M的值为1。
offset和box损失函数:
我们在已知box为 b i = ( x 1 i , y 1 i , x 2 i , y 2 i ) b^i=(x^i_1,y^i_1,x^i_2,y^i_2) bi=(x1i,y1i,x2i,y2i)时,可以计算到box的size s i = ( x 2 i − x 1 i , y 2 i − y 1 i ) s^i=(x^i_2-x^i_1, y^i_2-y^i_1) si=(x2i−x1i,y2i−y1i),而中心点的偏差主要就是heatmap的坐标和实际中心点坐标的差异 o f f s e t = ( x c i 4 , y c i 4 ) − ( ⌊ x c i 4 ⌋ , ⌊ y c i 4 ⌋ ) offset=(\frac{x^i_c}{4},\frac{y^i_c}{4})-(\lfloor{\frac{x^i_c}{4}}\rfloor, \lfloor{\frac{y^i_c}{4}}\rfloor) offset=(4xci,4yci)−(⌊4xci⌋,⌊4yci⌋)
Loss如下所示
存疑,为什么大多数关于回归的loss都是1范式的,而不是欧式距离的,如果有读者知道的可以告诉我。
re-id损失函数
根据heatmap,我们可以得到每个object的box所对应在feature map的位置在re-id分支上为 E x y E_{xy} Exy。文中说的得到其概率分布p(k)和groundtruth的one-hot的表达形式L(k)
这里与人脸识别中的应用方式一致,即在训练集中有多少个人,则设置多少类。在实际应用的时候,只使用其feature,而不需要进行softmax。
这里在网络前向之后,其实与大部分的跟踪方法是一致的,只是在判断检测框和跟踪器的关系时,用的是re-id的信息和IOU。