本文转载自 AI人工智能初学者,作者ChaucerG
传统的目标检索任务旨在学习具有内部相似度和内部相异度的区分特征表示,它假设图像中的对象是手动或自动精确裁剪的。但是,在许多现实世界中的搜索场景(例如,视频监视)中,很少准确地检测或标注对象(例如,人、车辆等)。因此,在没有边界框注释的情况下,物体级检索变得很棘手,这导致了一个新的但具有挑战性的主题,即图像搜索。
行人搜索是图像搜索问题的第一个尝试。在此之前,虽然对人的检测和重识别做了大量的努力,但大多数都是独立处理这两个问题的。也就是说,传统方法将行人搜索任务划分为两个独立的子任务。
首先,利用行人检测器从图像中预测人物的边界盒,然后根据预测的边界盒的坐标对被检测人物的矩形区域进行裁剪。其次,提取检测框内行人的特征用于重新识别人物。
在一般的行人重识别(Re-ID)任务中,对行人图像进行人工注释和裁剪,然后用于训练的鉴别特征表示网络。一方面是因为在真实的视频监控任务中,大多数检测器不可避免地会出现误检和框选不准的情况,在一定程度上可能会导致ReID精度的性能显著下降。另一方面,这两个独立的子任务似乎对实际应用程序中的最终Re-ID不太友好。
图1 传统ReID+检索的过程和本文所提方法的对比图
在本文中,为了解决图像搜索问题,我们首先介绍一个端到端集成网(I-Net),它具有三个优点:
借助分而治之的理念,文章进一步提出了一种改进的I-Net,称为DC-I-Net,它做出了两个新的贡献:
在著名的面向图像级搜索的基准数据集上的大量实验表明,所提出的DC-I-Net优于最新的tasks-integrated和tasks-separated的图像搜索模型。
这篇论文是I-Net的一个实质性扩展,在网络架构和损失函数方面做出了以下新贡献:
为了实现更好的图像搜索任务,I-Net(Siamese I-Net)将行人检测和行人重识别设计为端到端(End-to-End)的框架,如下图:
对于每一次迭代,包含相同身份id的图像对将被输入到Siamese I-Net中。利用骨干网络进行初步特征的提取。然后,通过两个RPN结构得到候选区域。再然后将这些候选区域特征输入到ROIPooling中并输出的特征图,最后是两个全连接层分别用于检测任务和检索检索(即ReID)任务。同时该结构的提出的同时也提出了两个损失函数,即OLP Loss和HEPLoss,用于学习与ReID相关的有效特征。
通过两个RPN生成的候选区域,ROI池化层被集成到I-Net中。然后,两个Stream汇集的特征被输入到有4096个神经元的两个FC中。为了消除行人候选区域的假阳性使用二值交叉熵损失区分训练。(注意,对于一般的图像搜索任务都会使用softmax分类器来进行目标检测);除此之外L1损失用来约束候选框的位置,同时会有一对256-D的特征用通过OLP Loss和HEP Loss来训练ReID Branch的模型。
设计OLP损失函数主要从以下几个角度考虑的:
OLP Loss的设计形式如下:
OLP损失可以按照如下步骤进行复现:
OLP损失函数使正样本对的余弦距离更小,负样本对的余弦距离更大,这并不能直接对损失函数中的id标签进行回归。另外,传统的基于softmax的分类器交叉损失训练方法没有考虑样本在数据中的难易程度。基于上述考虑,提出了HEP Loss,目的是回归具有高优先级的身份标签。
在图4中,Hard Example的选择如下:
最后,利用传统的基于softmax的交叉熵损失和选择的优先级类,将提出的HEP损失函数表示为:
其中,表示分类器给出的第i个proposal的分数,j表示第j个类。在损失函数中,只使用选定的类别进行损失计算,进而使得损失函数集中在硬类别上。
I-Net是一种将检测和重识别结合起来进行训练的端到端模型。因此损失由两部分组成:检测损失()和重识别损失(和),表示如下:
相较于I-Net,DC-I-NET:
损失函数定义如下:
DC-I-Net总损失为:
更为详细内容可以参见论文中的描述。
[1] Tasks Integrated Networks: Joint Detection and Retrieval for Image Search