点击我爱计算机视觉标星,更快获取CVML新技术
望楼武侯是怎么练成的!
天宝二年,吐蕃对大唐全面停止互市,并挑唆南诏叛唐,一时间局势骤然紧张起来。自古攘外必先安内,为了防止贼人趁机作乱,朝廷成立靖安司,负责两京及四方治安捕盗之事。
靖安司在长安城中每三百步设一望楼,并选边军善射者,驻扎在望楼之上,称为武侯,监控长安东西两市及一百零八坊。
武侯目力极佳,街面上的风吹草动都逃不过他们的眼睛。但是在人群之中能够连续追踪一个人却并非易事,需要武侯们相互配合,通过约定暗语将这个人的体貌特征传遍各个望楼,男女,服饰等等一一通过暗语穿出,但是却发现很多时候语焉不详。例如,同样是紫袍老者戴黑冠,可能是郭将军,也可能是何监,或者是右相。
因此武侯们不再强求暗语的意义,而是对每个人通过暗语发出一串数字。如果两串数字距离近,那么它们所代表的人就可能是同一个人;反之,那么它们就不应该是同一个人。
若要得到这串数字,武侯们便需要习得一套本领,对同一个人的时候,无论光照,方向,姿态如何,所得到的数字距离都要近;而对不同人的时候,数字的距离都需远。为了做到这一点,免不了进行大量的练习。
行人重识别(ReID),即判断不同摄像头下两张图中的人物是否为同一个人,在安防领域有着广泛的应用。在21世纪初,就已经有不少学者在做行人ReID的研究。
早期ReID的研究主要集中在两个层面:
(1)如何设计更好的行人特征,即上文中的“暗语”;
(2)如何对特征进行相似度的度量。
前者比较有代表性的方式是HOG特征和LOMO特征,而后者比较有代表的是KISSME和XQDA等等。但是传统手提特征+相似度度量的方法无法应对复杂的真实环境,而随着深度学习技术的发展,行人ReID和大量CV任务一样,开始进入深度学习时代。
靖安司让武侯尽数在西市训练,在六座望楼上观察了一千五百零一人,对每个望楼上观察到的每个人,按照同一规则编撰暗语。
开始的时候,暗语设计不甚高明,对于某一个望楼发出的暗语,有几乎一半的情况,另一个望楼收到暗语后,发现暗语最相近的是另外一个人。但功夫不负苦心人,武侯们昼夜苦练,这种情况终于减少到每一百次中仅出现五次左右。
2015年是ReID技术发展史中很重要的一个分水岭,该年郑良博士等人在ICCV上发布了Market1501数据集,从此ReID进入了深度学习时代。
起初,ReID多采用全局特征,主要特点是直接将网络Backbone输出的global feature作为行人图片的ReID特征,而研究的主要目标就是如何设计网络的损失函数。
全局特征最近研究的比较少,一般作为目前研究工作的baseline,可以参考“专栏第一篇”:https://zhuanlan.zhihu.com/p/61831669。
在全局特征发展一段时间之后,性能遇到了瓶颈,这时候局部特征local feature的方法开始发展,特点是融合多个局部区域的特征,根据局部区域取得的方式不同,可以分为人体语义分块和物理切割分块。
前者比较有代表性的方法包括SpindleNet,GLAD等;而后者代表的方法有PCB,AlignedReID,MGN等,用于Partial ReID的VPM也可认为是后者的变种,可以参考“专栏第三篇”:https://zhuanlan.zhihu.com/p/71260436。
靖安司大喜,令武侯们登上望楼执勤。但是武侯们却每每跟丢嫌犯,令圣人大为不满。靖安司也大为困惑:明明于西市之中,都能够准确跟踪他人,为什么一推广到整个长安就不灵了?
原来,在西市之中,有天时地利人和之便。所谓天时,武侯观察西市千余人和之后追踪他们都在同一时间,光照类似;所谓地利,是因为观察和追踪都在西市,场景类似;所谓人和,是因为西市多商贾,衣着风格类似。而一旦推广到整个长安,天时地利人和俱失,因此此法就不灵了。
局部特征把同源ReID的性能刷到了一个很高的水平,例如目前在Market1501上Top1最高可以达到95%以上,但类似精度的模型直接用于非同源任务,如DukeMTMC-reid,Top1往往不到40%。
这就是domain adaptation问题,在机器学习领域普遍存在。而考虑到ReID领域相对较小的数据集和较单一的场景,这个问题就格外严重了。
在cross-domain reid中,训练集来自于source domain,而测试集来自target domain,两个数据集之间通常存在显著的domain gap。
例如,公开数据集Market-1501采集在夏天国内校园,行人多着短袖、色彩也相对鲜明;而DukeMTMC-reID采集于冬季国外校园,行人多着厚重冬装、色彩也相对暗沉。
这种显著的着装风格差异塑造了两个数据集之间的domain gap,并降低模型在这两个数据集之间跨域使用的准确率,对模型的泛化能力提出了很高的要求。
为了能让望楼之法在长安推行,这个问题必须解决。靖安司让武侯们在观察西市中的一千五百零一人的时候,先用幻术将其幻化成在其他坊中的样子,甚至是在各个望楼上看到的样子,再来编撰暗语;或者把在西市习得的暗语,先用于其他各坊中人员,由此得到一个坊中人员的相似程度,再根据这先入为主的印象为该坊重编暗语;还有些武侯在观察西市众人时,同时观察其他坊中人物,只是并不知晓这些外坊人物中哪些是一个人,哪些又不是。
尽管如此,只要在编写暗语的时候,同时让这暗语与人的四肢躯干相吻合,用于外坊也大有补益。武侯们经过这些训练追踪嫌犯大有长进。终于,在长安,乃至大唐十道三百二十八府一千五百七十三县,武侯们能够如当初在西市中一样,侦稽捕盗,十有九中。
为解决cross-domain reid问题,学术界提出了很多方法:
A. source domain向target domain风格迁移。
该方案直截了当,希望能够把训练样本(source domain)风格迁移到测试集(target domain),在原始图像层面,减小domain gaps。这类方法大多需要依赖生成对抗网络(GAN)来实现风格迁移——给定sourcedomain的图像,GAN的生成器尝试将其转换成targetdomain 的图像、以假乱真;而GAN的鉴别器则试图区分生成图像的伪造本质。
生成器与鉴别器在这样一个左右手互搏下共同提高。CVPR2018 中,两篇工作就使用了这样的方案,分别是“Image-ImageDomain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity forPerson Re-identification”和“Person Transfer GAN toBridge Domain Gap for Person Re-Identification”。
值得一提的是,这些工作不只是简单地利用GAN进行风格迁移,为了更好地将GAN风格迁移与re-ID任务目标结合、提高迁移效果,它们还设计了一些特别的约束。例如“Image-ImageDomain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity forPerson Re-identification”设计了ID保持约束,即source domain图像向target domain进行风格迁移时,并不应该改变图像ID。为此,他们额外使用了一个re-ID中常用的metric (contrastive) loss来增强GAN的风格迁移效果:
公式中,当图像x1,x2分别是原域图像和风格迁移后图像时,二者构成正样对,希望二者的距离近可能接近0;当图像分别是风格迁移后图像与目标域图像时,我们可以断定二者ID不同,因此构成负样对,希望二者的距离尽可能远离。
原文实验证明这样一个re-ID约束与GAN风格迁移训练结合,提高了最终cross domain下的re-ID准确率。这就是上文中提到的通过“幻术”幻化出同一个人在不同坊内的样子。
B. target domain内部的风格迁移。
另一些研究表明,不直接在source domain和target domain之间进行风格迁移,而是在target domain内部进行细粒度的风格迁移同样也能提高模型在target domain的泛化能力。ECCV2018的“Generalizing A Person Retrieval Model Hetero- and Homogeneously”工作中,作者利用StarGAN让target domain不同相机图像之间互相迁移风格。
并且,该工作同样巧妙设置了一种ID保持机制——target domain的图像在迁移相机风格后,ID不应改变,与原图像可以构建正样对。与此同时,target domain的图像与source domain的任意图像可以构建负样对——毕竟,source domain和target domain图像属于同一个ID的概率几乎为0。这个工作在2018年取得了cross domain re-ID的国际领先水平。这就是上文所谓对每一座望楼进行幻化。
C. 在target domain进行无监督学习。上述两种方法牵涉到图像层面的风格迁移,都必须依赖GAN来实现。而2019年CVPR两篇工作中,舍弃了GAN,它们的共同特点是在target domain引入一些无监督学习任务,提高模型在target domain的泛化能力。
其中一篇是“Invariance Matters Exemplar Memory for Domain Adaptive”,它引入了三项invariance约束,分别是exemplar invariance, camerainvariance和neighborhood invariance。
除了第二项camera invariance仍然需要GAN的辅助、在不同相机见进行风格迁移,其它两项都直接依赖在target domain的无监督学习。
其中第一项给target domain每幅图像一个独立的标签——这个做法看上去匪夷所思,但是在之前无监督学习的一些工作中已经被探索并证明是有效的;
第三项则认为,target domain中,相近样本是有可能共享ID的,因此,给当前样本的K近邻的样本一定的概率,要求它们能够以相应的概率被预测到当前样本类别中;
另一篇工作“Unsupervised Person re-identification by Soft Multi-label Learning”是CVPR2019 Oral paper。
它提出了一种新颖的做法,利用sourcedomain模型给target domain图像生成各自的softlabel——这个label使用模型的softmax输出,表征一个连续的概率分布,因此是soft label。这个soft label虽然不够准确,但却被巧妙地用来监督deep embedding learning。为此,他们使用了如下的损失函数:
这个损失函数虽然采用了三元组构建(正、负样对),但与传统的contrastiveloss或者triplet loss形式并不相同,尽管如此,目标是一致的——在特征空间,让正样对距离减小、负样对距离增大。这就是上文提到根据先入为主的印象重新编写暗语。
D. 在target domain进行辅助的监督学习。
虽然目标域上没有行人ID标签,无法进行有监督的行人特征学习,但是并不妨碍引入一些辅助学习任务——这些附加的学习任务并不需要行人ID标签。
例如,“EANet: Enhancing Alignment for Cross-Domain PersonRe-identification”利用在目标域额外的human parsing任务,提高了模型在目标域的泛化能力。实现这样一个效果需要有两个前提:辅助任务的标签可以自动获取、辅助任务本身对re-ID性能有促进作用。
EANet正是找到了human parsing这样一个切入点:human parsing的标签可以用Deep Lab等模型自动产生,而human parsing帮助模型区分语义部件,对re-ID是有潜在好处的。这就是上文提到的通过让暗语与四肢躯干相吻合,而增进泛化能力。
天宝三年上元节,有狼卫混入长安,妄图焚毁大唐帝都。靖安司启用张小敬捉狼,在十二时辰中拯救了长安。其中,望楼武侯也贡献了自己的一份力量。
圣人本欲在大唐各地推行望楼之法。然而河东,范阳,平卢三镇节度使联名上书,言以此法监视百姓大不妥,遂作罢。后世经五代十国之乱,靖安司文档付之一炬,望楼之法遂绝于世。
欢迎各位同学关注旷视研究院视频分析组(及知乎专栏:https://zhuanlan.zhihu.com/r-video),简历可以投递给视频分析组负责人张弛(zhangchi@megvii.com)。
ReID交流群
关注最新最前沿的行人重识别ReID技术,欢迎加入微信交流群,扫码添加CV君拉你入群,(如已为CV君好友请直接私信)
(请务必注明:ReID)
喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。
(不会时时在线,如果没能及时通过验证还请见谅)
长按关注我爱计算机视觉