其中$d=\left | a_n-b_n \right | ^2$,代表两个样本的欧式距离,y为两个样本是否匹配的标签,y=1代表两个样本相似或者匹配,y=0则代表不匹配,margin为设定的阈值。
参考:https://www.jianshu.com/p/21be99fb58ca
参考:https://zhuanlan.zhihu.com/p/462539667
对一个三元组,包含一个锚点(anchor)、一个正样本(positive)和一个负样本(negative)。锚点和正样本是同一类的,而负样本则是和锚点不同类的。triplet loss的目标是让锚点和正样本的距离尽可能的小,而锚点和负样本的距离尽可能的大。
其公式为: 其中,d(a,p)表示锚点和正样本的距离,d(a,n)表示锚点和负样本的距离,margin是一个超参数,用来控制锚点和负样本的距离大于锚点和正样本的距离。一般来说,margin的值在0.2到0.5之间。
参考:https://zhuanlan.zhihu.com/p/137764312
为每一类的点与类中心距离的平均值。
一般将其与softmax loss加权求和使用如下:
Angular Margin相关的损失函数就是把softmax loss改成对余弦值求softmax
而一般对类i求softmax值时,会对i项的指数进行更改,以增大类i与其它类的距离,如:
其公式如下:
其公式如下:
其公式如下:
ArcFace论文解读:https://zhuanlan.zhihu.com/p/374733665
形式上统一了triplet loss和softmax ce loss,并加上了自适应(但不可学习)的参数来调节对Loss中各样本的重视程度(硬例挖掘)。
参考(学习资料):https://zhuanlan.zhihu.com/p/126701500 参考(评价,含作者亲自答):https://www.zhihu.com/question/382802283
提出了第一个人-自行车数据集,并做了第一个进行人-自行车配对再识别的工作。
BPReid数据集的特点:
要考虑的困难有:光线、遮挡、视角、相似识别对象
相比人员再识别增加的困难有:
本文仅关心给出一个基本流程,故使用方法较基础,效果较差
流程:分割-特征提取-度量学习(Metric Learning)
分割方法极为粗浅,无参考价值
resize经验表明在其流程下识别精度对人像大小远比自行车图像大小更敏感(它的resize是含拉伸的)
特征提取方法可参考:ELF, LOMO and GOG,上GOG下ELF与上ELF下GOG的效果较好。一般来说,ELF提取局部特征,GOG提取全局特征。LOMO表现差,因为其涉及极大值,容易注意到噪声。
和度量学习(Metric Learning)配合使用时:MLAPG对单车效果较佳,鲁棒性较好,不过较耗时;改进的FDA如LFDA与XQDA也有较好的表现
源自对sort算法的改进:
SORT算法利用卡尔曼滤波算法预测检测框在下一帧的状态,将该状态与下一帧的检测结果进行匹配,实现车辆的追踪。那么这样的话,一旦物体受到遮挡或者其他原因没有被检测到,卡尔曼滤波预测的状态信息将无法和检测结果进行匹配,该追踪片段将会提前结束。
遮挡结束后,车辆检测可能又将被继续执行,那么SORT只能分配给该物体一个新的ID编号,代表一个新的追踪片段的开始。所以SORT的缺点是:受遮挡等情况影响较大,会有大量的ID切换
那么如何解决SORT算法出现过多的ID切换呢?毕竟是online tracking,不能利用全局的视频帧的检测框数据,想要缓解拥堵造成的ID切换需要利用到前面已经检测到的物体的外观特征(假设之前被检测的物体的外观特征都被保存下来了),那么当物体收到遮挡后到遮挡结束,我们能够利用之前保存的外观特征分配该物体受遮挡前的ID编号,降低ID切换。
DeepSORT中采用了一个简单(运算量不大)的CNN来提取被检测物体(检测框物体中)的外观特征(低维向量表示),在每次(每帧)检测+追踪后,进行一次物体外观特征的提取并保存。
后面每执行一步时,都要执行一次当前帧被检测物体外观特征与之前存储的外观特征的相似度计算,这个相似度将作为一个重要的判别依据(不是唯一的,因为作者说是将运动特征与外观特征结合作为判别依据,这个运动特征就是SORT中卡尔曼滤波做的事)。