一篇讲Person Re-ID的论文,与人脸识别(认证)有很多相通的地方。
文章链接: 《In Defense of the Triplet Loss for Person Re-Identification》
Github链接:https://github.com/VisualComputingInstitute/triplet-reid 目前还没有放出代码,作者说等论文录用了就放出来。
Introduction
Re-ID和图像检索有点类似。这样来看,Google的FaceNet利用Triplet Loss训练的高度嵌入的特征,似乎很适合做这样大范围的快速比对。 但是,很多的研究文献表明常见的classification或者结合verification Loss比Triplet Loss似乎更适合这个任务。 他们通常将CNN作为特征提取器,后面再接专门的测度模型。但是这两种Loss有着明显的缺点:
Classification Loss: 当目标很大时,会严重增加网络参数,而训练结束后很多参数都会被摒弃。
Verification Loss: 只能成对的判断两张图片的相似度,因此很难应用到目标聚类和检索上去。因为一对一对比太慢。
但是 Triplet Loss还是很吸引人啊: 端到端,简单直接; 自带聚类属性; 特征高度嵌入。
为什么Triplet训不好呢或者说不好训呢?
首先需要了解,hard mining在Triplet训练中是一个很重要的步骤。 没有hard mining会导致训练阻塞收敛结果不佳,选择过难的hard又会导致训练不稳定收敛变难。此外,hard mining也比较耗时而且也没有清楚的定义什么是 “Good Hard”。
文章的贡献主要有两个方面:
(1) 设计了新的Triplet Loss,并和其它变种进行了对比。
(2) 对于是否需要 pre-trained模型,进行了实验对比分析。
Triplet Loss
这一小节主要介绍几种Triplet 变种。
Large Margin Nearest Neighbor loss
比较早的Triplet形式(参考文献[1])。 \(L_{pull}\) 表示拉近属于同一目标的样本; \(L_{push}\) 表示拉远不同目标的样本。
由于是最近邻分类,所以同一类当中可能有多个cluster,而且固定的cluster中心也比较难以确定。
FaceNet Triplet Loss
Google的人脸认证模型FaceNet(参考文献[2]), 不要求同类目标都靠近某个点,只要同

本文深入探讨了Person Re-Identification中Triplet Loss的应用,分析了不同类型的Triplet Loss,如Large Margin Nearest Neighbor、FaceNet、Batch All和Batch Hard,以及Lifted Embedding Loss。研究指出,合适的Hard Mining策略和Soft-margin函数对训练至关重要。实验表明,Batch Hard + soft-margin的组合在Re-ID任务中表现出色,但预训练模型并非总是最佳选择,自定义网络也能取得良好效果。
最低0.47元/天 解锁文章
915





