CVPR2016 Top-push Video-based Person Re-identificantion

来源:互联网 发布:微信数据库损坏怎么办 编辑:程序博客网 时间:2024/04/28 15:29

本篇论文的下载地址:http://isee.sysu.edu.cn/~zhwshi/Research/PreprintVersion/Top-push%20Video-based%20Person%20Re-identification.pdf

在读这篇论文后,参考了一些博客对于本篇论文的理解。
总体来说,个人觉得有推荐价值的博客有二:

欢迎给出批评指正,有问题可以随时联系我:
qq邮箱:645574541@qq.com


First
http://www.cnblogs.com/fourseas/p/6659423.html

这篇博客是我师兄对这篇论文的理解,最重要的是,尽管这篇论文的code开源了,但是最核心的TDL部分代码是加密的。师兄根据作者已给出的代码,完成了TDL部分single-shot的代码,并在修正TDL中multi-shot的代码。近期会在以上博客中公布。

Second
http://blog.csdn.net/lv26230418/article/details/51172594
这篇博客阐述了对于与本篇论文相关工作的介绍,并且推荐了Person R-id方面的大牛。


其实本篇论文的算法流程不算复杂,这里不作赘述。本文的重点是介绍一下TDL的损失函数,因为事实发现,正是由于表达方式的简洁,对于损失函数的理解很容易出现偏差。对于single-shot的部分,还可能误打误撞;但对于multi-shot部分,则会出现问题,在此做下记录。

首先,在论文中的3.1.部分,给出了定义样本类间距离的公式:

minxi,xj,yi=yiD(xi,xj)

这里的min之前给了我很大的误导。我误以为是求出类间的最小距离,然后对所有的类间距离求和。但这样的理解其实是错误的。通过交流,才注意到,这里的min是加在总的求和公式之前的。也就是说,正确的理解是:先求出标签均为i的样本(即位于同一类i中的样本)间的距离之和,得到类i的类内距离。同时也按照这个方法,求出其他类的类内距离。并且对所有的类内距离求和。至于前面的min,并不是指求出最小的类内距离,而是指在TDL迭代过程中,通过更新M矩阵,不断降低总的类内距离,并在迭代结束时,使得类内距离之和取得最小。

现在给出论文中loss function的公式:

f(D)=(1α)xi,xj,yi=yiD(xi,xj)+αxi,xj,yi=yimax{D(xi,xj)minykyiD(xi,xk)+ρ,0)}

公式中的第一项即是刚刚解释的类内距离的求和值。

那么公式第二项中的子项,见下式:

minykyiD(xi,xk)

是指求出某一类中的第i个样本,与其他所有类中的每一个样本间的距离,并且找出最小距离,这个最小距离即是标签i的样本对应的类间最小距离。并存储下与第i个样本距离最小的样本具有的标签k(这个具有标签k的样本位于其他的类中)。
因此,每个类中的每一个样本,均有一个与其距离最近的其他类中的样本。存储下两者在各自类中的标签以及所属类的标号。

公式第二项中的max部分

max{D(xi,xj)minykyiD(xi,xk)+ρ,0)}

则是为了求出
D(xi,xj)minykyiD(xi,xk)+ρ


ρ

两者间的最大值,并不是为了求出类间最大距离,也不是我先前理解的为了确定标签j。标签j不需要确定。

第二项前面的求和公式,和第一项的求和公式等效,均是为了用每一个类中的两两样本代入公式进行计算。这里从始至终都不存在“求出类内的最小值或者最大值”这种说法,相反地,都是要用到类内所有样本两两之间的距离。

2 0