这里提出instruct-ReID任务,实现一个任务兼容六种主流ReID任务。
论文地址:https//arxiv.org/abs/2306.07520
代码地址:https//github.com/hwz-zju/Instruct-ReID
引言
行为重识别(person re-identification, ReID)在安防领域有广泛与成熟的应用。不同的任务场景对ReID提出不同的需求,从而衍化出多种不同类型的ReID任务,例如针对较长周期识别的Clothes Changing ReID(CC-ReID)、利用文本描述进行识别的Text-to-Image ReID(T2I-ReID)等等。而由于现有ReID模型大多只能处理单任务,多种任务就需要多个模型来解决,给实际使用带来了额外训练、部署的开销,不方便大规模的落地应用。
那么能够用一个模型实现所有主流ReID任务呢?
答案是可以。文章提出了一种统一的ReID模型IRM(Instruct ReID Model),一网打尽6种ReID任务,包括:
- traditional ReID
- clothes-changing ReID (CC-ReID)
- clothes template based clothes-changing ReID (CTCC-ReID)
- visible-infrared ReID (VI-ReID)
- text-to-image ReID (T2I-ReID)
- language-instructed ReID (LI-ReID)
并在6个任务的10个数据集上均取得了state-of-art的结果,见图1(b)。
文章三大亮点:
- 提出instruct-ReID任务,实现一个任务兼容六种主流ReID任务
- 首个面向统一ReID范式的benchmark
- 一个模型在多种主流ReID任务上取得最优性能
Benchmark
文章提出了一个新的benchmark,OmniReID,用于instruct-ReID任务的训练与测试。
OmniReID的训练集基于12个公开数据集制作而成,共包含497万张图像与32.8万个体。与其他ReID benchmark的训练集对比见表1.
作者额外生成了instruction数据以构建CTCC-ReID与LI-ReID训练数据。以下为instruction制作的相关过程。
(1)LI-ReID instruction制作 LI-ReID给定了人的图片与一段文本描述,分别作为query和instruction输入,希望在gallery中找到符合文本描述的同一个人。为此,作者首先通过人工标注获得图片的attributes,例如年龄、性别、衣服类型等等;随后利用Alpaca-LoRA大语言模型,将这些attibutes连接成一段流程的话。最后由人工进行数据清洗,得到了最终的instruction。过程如图2(a)所示。
(2)CTCC-ReID instruction制作 CTCC-ReID与LI-ReID类似,不过instruction的输入不再是文本描述,而是衣服图片,并希望在gallery中找到穿着相同衣服的同一个人。因此,作者首先利用human parsing模型SCHP对ReID图片进行处理,得到仅包含衣服的图片。进一步的,作者从电商平台上,利用以图搜货的方式搜索这些衣服图片,获取了对应衣服的商品图片。最终经过数据清洗后得到了CTCC任务的instruction。过程如图2(b)所示
方法
instruction生成: instruct-ReID接收一个图像和一个instruction作为输入,并检索出对应的图像。通过改变的instruction输入,instruct-ReID可以视作不同的主流ReID任务。
实验
训练方法:文章采用了两种训练方法:
- 单任务训练(STL):训练只在相应数据集的训练与测试集上进行
- 多任务训练(MTL):先在联合数据集上训练,然后在各个数据集上进行测试
实现细节:文章使用经过ReID pretrain的ViT-Base网络作为图像编码器,使用ALBEF作为instruction的编码器。训练与测试中的所有图片均采用 256x128 大小
实验结果:
- Clothes-Changing ReID (CC-ReID). 在STL下,IRM在LTCC, VC-Clothes三个数据集上相较原有SOTA分别有+5.9%与+8.3%的提升。在MTL下,IRM在PRCC上取得了52.3%的mAP,取得了新的SOTA。具体数值如表2所示。
- Visible-Infrared ReID (VI-ReID). IRM在LLCM数据集上分别采用红外-可见光(IR-to-VIS)与可见光到红外(VIS-to-IR)两种设定进行实验。在MTL下,模型在两种设定上均取得了新的SOTA,相较原有SOTA提升了+4.3%与+1.7%。具体数值参见表3。
- Text-to-Image ReID (T2I-ReID). IRM在STL下,取得了65.3%的mAP,并在MTL下进一步取得了66.5%的mAP,相较之前的SOTA提升了2.6%。具体数值见表3。
- Clothes Template Based Clothes-Changing ReID (CTCC-ReID). 在STL下,IRM在COCAS+ Real2数据集上相较之前SOTA提高了+2.2%;在MTL下,IRM取得了更好的结果,相较之前SOTA提高了+11.7%。具体数值如表4所示。
- Language-Instructed ReID (LI-ReID). 由于LI-ReID是文章新提出的一种setting,所以文章使用在COCAS+ Real1上进行训练的ViT-Base作为Baseline。在STL下,IRM超过baseline +15.8%的mAP;在MTL下,IRM相较STL下进一步提升+9.1%,取得了SOTA的结果。具体数值如表4所示。
- Traditional ReID (Trad-ReID). IRM在传统ReID任务上也取得了不错的成绩。在STL下,IRM在CUHK03上相较原有单任务训练的SOTA提升了+6.9%,并在Market1501与MSMT17上取得了与 SOTA相近的结果;在MTL下,IRM性能进一步提升,在Market1501、MSMT17与CUHK03上均超越了原有SOTA。具体结果如表4所示。
消融实验:
- Editing Transformer. 为了验证editing transformer的有效性,文章将其替换成一个传统的ViT结构,只接收图像输入而不用instruction对其融合。实验结果表明,使用editing transformer在MTL下可以平均提升各个任务+0.6%的mAP,验证了editing transformer的有效性。具体数值见表5。
- Adaptive triplet loss. 为了验证Adaptive triplet loss的有效性,文章将其替换成了一个传统的triplet loss。实验证明在MTL下,传统的triplet loss将会平均引起-0.3%的mAP下降。另一方面,在STL下,使用adaptive triplet loss后在CTCC-ReID与LI-ReID任务上分别提升了+0.7%与+0.5%,验证了文章提出的adaptive triplet loss确实帮助模型同时理解identity与instruction的相似性。具体数值见表5。