Introduction
Person search任务的目的是:定位并识别目标行人。其包含了两个子任务:行人检测和行人重识别。现有方法主要分为两类:二步检索框架和一步二阶段检索框架。前者先通过目标检测算法定位行人位置,再裁切出行人进行重识别,这类方法比较耗时;后者实现了两种任务的端到端学习,通过ROI对齐层获取行人区域(如Faster-RCNN),这类方法存在密集anchor计算复杂的问题以及超参数敏感(anchor数量、尺寸等)的问题。
相比之下,作者提出了anchor-free方法,设计了无需anchor的间接架构,并拥有较高的检索速度。当前anchor-free的检测方法存在一些问题:① 需要使用FPN网络来学习多尺度特征,却会对行人重识别任务引入尺寸不对齐问题;② 由于缺少ROI,anchor-free难以依据局部区域来对齐reid特征和检测特征,因此reid特征需要在缺乏局部对齐的情况下学习;③ 行人检索是一个多任务的框架,需要实现reid和检测两个任务的平衡。
为此,作者设计了Feature Aligned Person Search Network (AlignPS)。其中设计了一个anchor-free检测模型以及一个aligned feature aggregation (AFA)模块。具体而言:AFA利用了可变卷积(deformable convolution)和特征融合来改造FPN,解决区域、尺寸的不对齐问题。作者也优化了两个子任务的训练过程,让网络去学习更加鲁邦的reid特征映射。
Feature-Aligned Person Search Networks
(1) Framework Overview:
框架在FCOS的基础上实现,不同之处是:作者提出的框架采用“reid first”的原则,着重学习鲁棒的行人特征。框架中,通过AFA模块融合了不同尺寸的特征图。AFA输出的特征图直接作为reid最终的特征映射。detection head包含了两个分支来完成回归和分类任务,每个分支包含了4个3x3卷积层,
(2) Aligned Feature Aggregation:
① Scale Alignment:
原版FCOS采用了不同层的特征来检测不同尺寸的目标。然而,在reid任务中,当需要匹配不同尺寸的同一个人,reid特征可能不在同一个尺寸上提取。因此,作者只对AFA输出的最后层上进行检测。骨干网络采用的ResNet50,AFA依次输出,其stride分别为32/16/8。
② Region Alignment:
由于anchor-free方法无法从行人检测框中精确提取特征,作者从下面三个角度来解决这个问题:
1) 在特征融合模块中采用3x3可变形卷积(deformable conv),让网络自适应地调整感受野,隐式地实现区域对齐;
2) 在特征融合模块中使用级联来替换求和,这样可以更好地聚合多级特征;
3) AFA输出的特征图再次使用可变形卷积,进一步对齐区域。
③ Task Alignment:
作者采用了“reid first”的原则来进行训练。原因如下:
1) 本框架继承了现有的FCOS目标检测的优势,任务的重心更应该倾向reid;
2) 相比“detection first”和并行结构,“reid first”不需要额外的层来提取reid特征,因此更加高效。
(3) Triplet-Aided Online Instance Matching Loss
现有方法大部分都采用OIM损失来进行reid训练。将所有带标签的行人特征作为lookup table,即,没有带标签的行人特征作为circular queue,即。x属于第i个ID的概率值为:
其中为控制概率分布的超参数。OIM损失计算为:
为了提高OIM性能,作者嵌入了一种新的三元组损失,将行人中心周围的一组特征作为正样本,其他行人的一组特征为负样本,计算其三元组损失:
Experiments
(1) Datasets and Settings:(表格来源)
(2) Implementation Details:
backbone:ResNet-50;
optimizer:SGD;
learning rate:0.001 (epoch 16和22时下降0.1);
epoch:24;
tricks:warmup,多尺度训练(图像的边长在667~2000间随机调整);
test image size:1500x900;
(3) 实验结果:
其中 AlignPS+指的是在骨干网络中嵌入了可变形卷积。