一. CNN特征提取
通过上一篇文章的学习,我们已经知道,我们训练的目的在于寻找一种特征映射方法,使得映射后的特征 “类内距离最小,类间距离最大”,这种特征映射 可以看作是 空间投影,选择一组基,得到基于这组基的特征变换,与 PCA 有点像。
这一篇我们讲的就是基于 CNN的特征提取,特征提取过程也就是训练过程,训练结果就是 CNN 的参数。
以 Triplet Function 为例,对于 一个输入图像三元组 Trip<I, +,I->,通过一个共享参数的网络进行训练,通过下图可以看到,三个图像 <I, +,I-> 分别得到了一个特征空间,这个特征空间只要满足 前面提到的距离度量函数(后面的Distance Cost),那么训练就算完成了。
这里面有几个关键点:
- 提取全局特征与局部特征结合,可以学到更能描述行人的特征;
- CNN采用共享权值方式进行特征提取;
- Distance Cost 作为Loss函数驱动 CNN特征参数调整;
二. 训练过程
还是通过 Loss 函数来看训练过程(每N个Trip样本训练一次):