摄像机域内监督行人重识别问题

LogicAdventurer
• 阅读 2352
作者 | 祝向平
编辑 | CV君
报道 | 我爱计算机视觉(微信id:aicvml)

本文是对『Intra-Camera Supervised Person Re-Identification』一文的详细解读,IJCV接收论文。

作者信息:

摄像机域内监督行人重识别问题

01前言

行人重识别(person re-id, person re-identification)考虑的是一个跨摄像头关联目标人物的问题。对于传统的全监督行人重识别,为了训练得到一个性能较好的模型,大量标注好的行人数据是必不可少的。

标注行人重识别数据是一个耗时又耗力的工作。由于这个原因,无监督(unsupervised)和跨领域无监督(unsupervised domain adaption)行人重识别算法在近几年得到了越来越多的关注也获得了很大的进步。但是相比于全监督行人重识别模型而言,无监督模型的性能依然有一定的差距。

另外, 和全监督行人重识别模型类似,跨领域无监督模型需要一个准确地标注好的数据集来作为源域数据集。

基于这些发现,我们提出了一种在全监督和无监督之间的行人重识别问题---摄像机域内监督行人重识别问题(ICS person re-id, Intra-Camera Supervised person re-identification),并且就该问题设计了一种行人重识别模型(MATE, Multi-tAsk mulTi-labE deep learning model)。

实验结果表明,摄像机域内监督行人重识别可以减少数据标注的复杂性和工作量,我们基于该问题所提的行人重识别模型也能够取得比无监督和跨领域无监督模型更好的性能(所选的对比结果更新在论文提交的时间,即 2019 年 12 月)。

02摄像机域内监督(ICS)行人重识别

为了简化问题,我们可以把全监督行人重识别的数据标注过程分为两个阶段:1)摄像机域内行人图片标注;

2)摄像机之间行人(个体)关联。

对于摄像机域内行人图片的标注,除了人工标注我们还可以利用一些性能较好的跟踪算法进行初步标注,然后人工进行图片的选取和核对,从而大大降低数据标注的工作量。

但是对于摄像机之间的行人,由于摄像机和摄像机之间可能存在比较大的差异,比如室内和室外照片的光照差异,入口和出口拍到行人的角度差异等等,这些原因导致了跟踪算法往往不能够成功地跨摄像头跟踪目标人物。这也是行人重识别问题提出来的原因之一。

因此,对于摄像机之间的行人关联往往需要人工的参与。跨摄像头行人关联是一个比较复杂的过程,对于每一个需要关联的行人,我们需要将他与其他摄像头下所有未标注的行人进行比对。此外,还需要保证不同的标注员标注相同行人时给的是同一个标签。基于这些发现,我们提出了摄像机域内监督行人重识别问题。

摄像机域内监督行人重识别问题

图 1, 传统全监督行人重识别数据和摄像机域内监督行人重识别数据的对比

图 1 表示了传统全监督行人重识别数据和摄像机域内监督行人重识别数据的差异。相比于全监督行人重识别数据,摄像机域内监督行人重识别数据只提供了每个摄像机下  行人照片的标签信息,而没有提供相同行人在不同摄像机下的关联标签。

因此在创建 摄像机域内监督行人数据集时可以减少跨摄像头标注的工作量。我们做过一个定量模拟的小实验也发现:ICS 的行人数据人工标注的工作量要远远小于传统直接进行跨摄像头行人图片关联所需要的工作量。另外在标注摄像机域内监督行人数据集时,多个标注员可以同时进行标注(如图 2 所示)。

摄像机域内监督行人重识别问题

图 2, (a)传统全监督行人重识别数据集标注过程,

(b)摄像机域内监督行人重识别数据集标注过程

根据数据集中标签的特性,摄像机域内监督行人重识别问题需要解决以下两个任务:

  1. 如何利用在每个摄像机下所提供的标签信息;
  2. 如何让模型自动关联不同摄像机下相同的行人并且利用这些自动关联上的标 签。

为了评估模型自动关联不同摄像机下相同行人的质量,我们在创建摄像机域内监督行人重识别的数据集时,除了提供每个摄像机下的行人标签,我们也提供了摄像机之间相同行人的关联标签。

03MATE 模型

摄像机域内监督行人重识别问题

图 3,Multi-tAsk mulTi-labE (MATE) deep learning model

图 3 展示了 MATE 模型的示例图。在该模型中,我们针对 ICS re-id 需要解决的两个任务对应设计了两个模块:摄像机域内监督多任务学习模块(Per-Camera Multi- Task Learning)和多摄像机多标签学习模块(Multi-Camera Multi-Label Learning)。

(1)摄像机域内监督多任务学习模块

摄像机域内监督行人重识别问题

图 3. 摄像机内域内监督多任务学习模块

摄像机域内监督多任务学习是对应解决上面提到的第一个任务,即如何利用在每个摄像机下所提供的标签信息。

摄像机域内监督行人重识别问题

摄像机域内监督行人重识别问题

如图 3 所示,在这个模块中我们采用一个多任务学习深度模型。设计的基本思想是每个摄像机对应一个行人分类任务,所有的这些任务共用一个特征提取模块,再把输出特征作为输入输入到全连接层上。每个摄像机对应后面一个全连接层。对于损失函 数,我们仅仅是采用最简单的 Softmax Cross-Entropy:

(2)多摄像机多标签学习模块

多摄像机多标签学习模块是对应解决上面提到的第二个任务,即让模型自动关联不同摄像机下相同的行人并且利用这些自动关联上的标签。我们在这个模块里又设计了两个子模块,一个是摄像机间的相同行人关联模块,另一个是多标签学习模块。

摄像机间相同行人关联模块主要是基于一个相同行人图片在不同图片类中互为最相似的思想。这个也是受启发于 CycleGan,但是 CycleGan 是 Pixel Level 的,而我们这里是 Feature Level 的。具体思路可用下面两个示意图表示:

摄像机域内监督行人重识别问题

摄像机间相同行人关联示意图 1

摄像机域内监督行人重识别问题

摄像机间相同行人关联示意图 2

摄像机域内监督行人重识别问题

摄像机间相同行人关联示意图 3

摄像机域内监督行人重识别问题

摄像机间相同行人关联示意图 4

多标签学习模块。如何两个行人关联上后,我们就采用多标签的方法在标签层面上让这两个行人关联上,具体做法是把关联上的图片的标签分别复制给对方。这样经过多标签处理后,不同摄像机下的相同行人就会拥有完全一样的多标签,如下图所示:

摄像机域内监督行人重识别问题

多标签学习策略示意图

经过上面两个模块的处理后,就可以关联上不同摄像机下的相同行人并且关联上的行人都会拥有新的标签。我们把这些新的标签更新到训练数据集中,并且再次采用softmax cross-entropy 来对模型进行再次更新:

摄像机域内监督行人重识别问题

摄像机域内监督行人重识别问题

最终的模型损失函数是这两个模块损失函数的线性叠加:

摄像机域内监督行人重识别问题

04实验结果

摄像机域内监督行人重识别问题

实验结果

我们将现有的行人重识别工作进行了分类,分为无监督,基于跟踪算法,跨域无监督,摄像机域内监督,半监督和全监督行人重识别。从表格可以看出我们的 MATE 模型在 Market1501 的性能还是很有竞争性的。更多的实验结果请阅读我们的论文。

后记:ICS 行人重识别问题是一个为了降低数据创建的复杂性而提出的一个折中方案。论文在评审中一个 reviewer 说这个方案是:a sweet compromise between unsupervised and fully supervised person re-id。论文[2]目前刚被 IJCV接收。ICS 这一新问题可以很容易地从现有的全监督数据集上过渡过来:只需要在全监督数据集上去掉摄像机间的行人关联标签就可以。为了完善这一个新问题,我们在论文中提供了三个简单的benchmark 模型作为参考。另外 MATE 模型在算法上也比较好实现,没有涉及复杂的损失函数。目前已经有学者开始 follow 这一个问题。已经 release 的关于 ICS re-id 的论文已经做出了比我们论文更好的结果,但是在摄像机数量比较多的数据集上,比如MSMT17,性能和全监督模型依然存在着比较大的差距。

参考文献

[1]Xiangping Zhu, Xiatian Zhu, Minxian Li, Vittorio Murino, and Shaogang Gong. "Intra-camera supervised person re-identification: A new benchmark."  InProceedings of the IEEE International Conference on Computer Vision Workshops, pp. 0-0. 2019.

[2]Xiangping Zhu, Xiatian Zhu, Minxian Li, Pietro Morerio, Vittorio Murino, and Shaogang Gong. "Intra-Camera Supervised Person Re-Identification."arXiv preprint arXiv:2002.05046(2020),accepted to IJCV 2021.

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
4年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这