ICCV2017 论文解读:基于图像检索的行人重识别 | PaperDaily #13

简介:

如果你对本文工作感兴趣,点击底部的阅读原文即可查看原论文。

关于作者:罗浩,浙江大学博士研究生,研究方向为计算机视觉和深度学习,现为旷视科技(Face++)的 research intern。

  • 论文 | Neural Person Search Machines
  • 链接 | http://www.paperweekly.site/papers/1088
  • 作者 | LUOHAO

1. 摘要

作者调查了一下室外真实场景下的 Person ReID 工作,大部分相关工作都是 detection+ReID 分成两步来做的,这篇文章提出 NPSM 方法来实现一步到位。

NPSM 主要借助 LSTM 和 attention的思想,逐步衰减原图中所应该关注的 ROI 区域,直到最后得到一个很精确的 ROI 区域,这个区域就是应该搜索的 person 目标。实验结果表明,在 CUHK-SYSU 和 PWR 数据集上都取得了 State-of-the-arts 的结果。

2. Detection & ReID

2c06b578293ee17a5651a3e8e4f162ab7cca7eef

上图给出了目前 Person ReID 的主流做法和本文做法的对比。(a) 是主流做法,先会用一个 detection 的模型检测图片中的行人图片,可能存在错误检测的 bounding box,然后用一个训练好的 ReID 模型把所有 bounding box 的图片和带检索的 Query 图片进行相似度比较,之后按照相似度进行一个排序,排名最靠前的就是检索的结果。

而 NPSM 则把两个结合起来,每次输入 ROI 区域图片,根据 Query 图片生成 attention map,然后选择 attention 比较大的区域作为新的 ROI 区域。所以新的 ROI 区域是之前输入 ROI 区域的子集,进过 LSTM 反复衰减这个 ROI,最终就可以得到一个比较精确的搜索结果。

当然这里不负责任的吐槽一下,这个插图很可能是为了体现这篇工作的一个“摆拍”。因为提供原图的 ReID 数据集比较少,论文里使用了 CUHK-SYSU 和 PWR 两个数据集,但是这幅图根据我的经验应该不属于这两个数据集,也许是为了体现主流方法失效而本文方法有效的一个摆拍吧。

因为在着装非常类似的情况下,比如都穿黄衣服的两个行人主流方法确实很难区分,所以不是很清楚这个是不是为了写论文自己去拍的或者从数据集里面特意挑选的。不过这都没关系,作为一副插图,很明白的展现自己工作的创新点,一图胜千言,所以这幅插图是非常合格的。

3. Neural Search Networks

这篇论文的模型以 seq2seq 为背景,主要在三个点上做改进。(1)在 embedding 上加情感信息(2)改进 loss function(3)beam search 时考虑情感。

336da4ae3aab61abea25487cbb4898025c0e1ffe

Neural Search Networks (NSN) 主要的核心就是一个 Conv-LSTM 网络,CNN 网络采用的是 Resnet50。Resnet50 被分成了两部分,前面几层浅层特征用来提取 attention map,后面几层高层网络用来提取 ReID 所需要的 feature。

如上图所示,输入一张 query 图片,经过 Resnet50(Primitive Memory)之后会输出两个,一个是 ROI pooling 得到的 feature map,这个 feature map 用来输入到 NSN 里进行 attention map 的计算。另外一个就是输出的就行高层的 ReID feature,这个 feature 将会输入到 IDNet 进行 ReID 的识别任务。

Query 图片经过 Primitive Memory 网络的 part1 部分会得到一个 attention map q,之后 q 将会输入到 NSN 的 LSTM 单元里进行计算,传统的 LSTM 的 cell 是考虑隐状态?tp=webp&wxfrom=5&wx_lazy=1和当前的输入?tp=webp&wxfrom=5&wx_lazy=1,在 NSN 中进一步增加了 query 图片的特征 q,最终改进后的 LSTM 的公示如下所示:

3a693ae2e8f3e96b2eb4fccde3fe87708ce23448

可以看出就是把 q 引入到 LSTM 里面去计算三个门的值而已。LSTM 单元的状态一直在变,但是输入的 q 是一直不变的,因为需要用新的 ROI 区域和 Query 图片比较来得到新的 attention map。不过 LSTM 的时间步长论文没有提及。

4. Region Shrinkage with Primitive Memory

上一个小节介绍了如何更新 attention map,但是得到 attention map 之后要如何得到 ROI 区域?

首先作者使用一个无监督的 object proposal 模型(例如 Edgeboxes)来产生很多个 proposal,很多 detection 的任务都是这样做的。之后每个 proposal 我们都可以得到其矩形的中点,之后利用中点的坐标来对这些 proposal 进行聚类。而作者使用最简单的欧氏距离来进行距离的衡量,假设 aa 和 bb 是两个 proposal 框的中点坐标,则它们的距离定义为:

2f37fd2cff6c59f8ae950e990df90cc9b7bddc83

之后利用聚类算法可以将所有的 proposal 聚为 C 类,聚类细节论文没有提及。每一类的子区域由区域?tp=webp&wxfrom=5&wx_lazy=1覆盖,所有?tp=webp&wxfrom=5&wx_lazy=1区域的父区域定义为?tp=webp&wxfrom=5&wx_lazy=1。这一块不是很看懂,可能?tp=webp&wxfrom=5&wx_lazy=1也是覆盖所有?tp=webp&wxfrom=5&wx_lazy=1区域的意思。很明显第 时刻的?tp=webp&wxfrom=5&wx_lazy=1区域是从 t−1 时刻的?tp=webp&wxfrom=5&wx_lazy=1中产生。 

另外由于每次 NSN 输出的 ROI 区域大小都是不一样的,这对于后续计算 ReID 的 feature 是不好处理的,于是作者自己设计了一个 ROI pooling,保证不管输出多大的 ROI 区域,进过 ROI pooling 之后都可以得到一个固定大小 K×K×D 的 feature map 输入到后面的网络。

当然这个 pooling 的细节论文里也没透露。之后对于 K×K 的 feature map,我们可以计算它们的 attention 得分,其实就是很简单的做了一个二维的 softmax,公示如下:

eb0da637d07bd8f292996e9fdb37ec0d17a01149

是每个像素点坐标的 attention 得分,加起来整幅图的总分就是 1。前面我们通过聚类得到了一些 proposal,现在我们就要计算每个 proposal 的重要性得分。实现方式就是计算每个 proposal 中所有像素重要性得分的平均值,那个 proposal 的平均值更高,就认为这个框的更重要,最终选择分最高的那个作为 ROI 区域输入到下一个时刻。

5. Training Strategy

LSTM 最后一个时刻输出的 ROI 区域进过 ROI pooling 进入到网络的 part2 计算 ReID feature,然后这个 feature 用来计算 ReID 的损失,作者在论文中使用 IDNet,也就是说把 ReID 当做分类问题来看待,计算分类损失。

另外还有一部分损失时输出的 bounding box 的损失,计算方法就是 grand truth 的 bounding box 中的像素如果落在 Rt 中就认为 ok,否则就算一个损失,就是一个很简单的 0-1 损失问题。这个损失会强迫 grand truth 落在网络的预测的 ROI 里面,并且随着 ROI 的衰减这个 ROI 会越来越接近 grand truth。

6. 结果

作者使用 CUHK-SYSU 和 PWR 两个数据集来验证算法的有效性,因为和一般 detection+ReID 的方法不同,所以计算 mAP 和 top-1 的方法有点不一样。mAP 和标准的 detection 任务的计算方法一样,使计算 bounding box 的坐标,而 top-1 计算是认为网络预测的 ROI 和 grand truth 重合度超过 50% 就认为识别正确。因此本论文也只能和自己思路一样的方法进行比较,最后结果是本文方法比 baseline 高了两个点左右。

e27a22c8ef5e194f52aaaa3f91577d78af536590

从展现出来的 attention map 来看,方法还是比较不错的:

b5c18911d9af9186650da0e1ee143b82b31bb8bf

7. 简评

这篇论文的工作和主流的 ReID 工作不大一样,把 detection+ReID 结合在一起做,方法还是比较新颖的,不过有太多论文细节没有透露,除非作者公布源码否则复现起来基本不可能。另外除了 ReID 任务,我觉得这篇文章扩展成 tracking 可能更加有意义。


原文发布时间为:2017-11-13

本文作者:罗浩

本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”微信公众号

相关文章
|
2月前
|
机器学习/深度学习 监控 算法
计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)
计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)
50 1
|
4月前
|
编解码 算法 自动驾驶
【计算机视觉】基于光流特征的目标跟踪算法LK光流法的讲解(图文解释 超详细)
【计算机视觉】基于光流特征的目标跟踪算法LK光流法的讲解(图文解释 超详细)
97 0
|
10月前
|
机器学习/深度学习 人工智能 文字识别
深度学习应用篇-计算机视觉-OCR光学字符识别[7]:OCR综述、常用CRNN识别方法、DBNet、CTPN检测方法等、评估指标、应用场景
深度学习应用篇-计算机视觉-OCR光学字符识别[7]:OCR综述、常用CRNN识别方法、DBNet、CTPN检测方法等、评估指标、应用场景
深度学习应用篇-计算机视觉-OCR光学字符识别[7]:OCR综述、常用CRNN识别方法、DBNet、CTPN检测方法等、评估指标、应用场景
|
11月前
|
机器学习/深度学习 编解码 自然语言处理
计算机视觉论文速递(八)ViTAE:COCO人体姿态估计新模型取得最高精度81.1AP
 人体姿态估计是计算机视觉领域的基本研究问题之一,具有很广泛的实际应用,例如医疗健康领域的行为分析、元宇宙领域的AIGC内容生成等。但是,由于人体姿态丰富,人物衣着表观变化多样,光照和遮挡等因素,人体姿态估计任务非常具有挑战性。之前的深度学习方法主要研究了新的骨干网络设计、多尺度特征融合、更强的解码器结构和损失函数设计等。
240 0
|
机器学习/深度学习 人工智能 自然语言处理
【论文速递】 MM2022 - : 基于特征分解的多模态情绪识别方法
【论文速递】 MM2022 - : 多模态情绪识别中的解构表示学习
322 0
【论文速递】 MM2022 - : 基于特征分解的多模态情绪识别方法
|
机器学习/深度学习 传感器 SQL
领域最全 | 计算机视觉算法在路面坑洼检测中的应用综述(基于2D图像/3D LiDAR/深度学习)(下)
本文首先介绍了用于2D和3D道路数据采集的传感系统,包括摄像机、激光扫描仪和微软Kinect。随后,对 SoTA 计算机视觉算法进行了全面深入的综述,包括: (1)经典的2D图像处理,(2)3D点云建模与分割,(3)机器/深度学习。本文还讨论了基于计算机视觉的路面坑洼检测方法目前面临的挑战和未来的发展趋势: 经典的基于2D图像处理和基于3D点云建模和分割的方法已经成为历史; 卷积神经网络(CNN)已经展示了引人注目的路面坑洼检测结果,并有望在未来的进展中打破瓶颈的自/无监督学习多模态语义分割。作者相信本研究可为下一代道路状况评估系统的发展提供实用的指导。
领域最全 | 计算机视觉算法在路面坑洼检测中的应用综述(基于2D图像/3D LiDAR/深度学习)(下)
|
机器学习/深度学习 传感器 数据采集
领域最全 | 计算机视觉算法在路面坑洼检测中的应用综述(基于2D图像/3D LiDAR/深度学习)(上)
本文首先介绍了用于2D和3D道路数据采集的传感系统,包括摄像机、激光扫描仪和微软Kinect。随后,对 SoTA 计算机视觉算法进行了全面深入的综述,包括: (1)经典的2D图像处理,(2)3D点云建模与分割,(3)机器/深度学习。本文还讨论了基于计算机视觉的路面坑洼检测方法目前面临的挑战和未来的发展趋势: 经典的基于2D图像处理和基于3D点云建模和分割的方法已经成为历史; 卷积神经网络(CNN)已经展示了引人注目的路面坑洼检测结果,并有望在未来的进展中打破瓶颈的自/无监督学习多模态语义分割。作者相信本研究可为下一代道路状况评估系统的发展提供实用的指导。
领域最全 | 计算机视觉算法在路面坑洼检测中的应用综述(基于2D图像/3D LiDAR/深度学习)(上)
|
传感器 机器学习/深度学习 存储
登顶KITTI和NuScenes | 2DPASS:2D先验辅助的激光雷达点云语义分割!ECCV2022
语义分割在大规模室外场景理解中起着至关重要的作用,在自动驾驶和机器人技术中有着广泛的应用[1-3]。在过去几年中,研究界投入了大量精力,使用相机图像[4-7]或激光雷达点云[2,8-12]作为输入来理解自然场景。
登顶KITTI和NuScenes | 2DPASS:2D先验辅助的激光雷达点云语义分割!ECCV2022