本文转载自知乎,已获作者授权转载。
链接:https://zhuanlan.zhihu.com/p/186905783
这篇文章是我们在CVPR2020 智慧城市AICity比赛中 得到冠军的基础,发表于 IEEE Trans. on Multimedia。拓展了我们在CVPR 2019 workshop中的工作。我们在比赛中领先第二名大约6个点。同时在VeRi-776上也达到了83.41% mAP(就是顺便测的resnet baseline,没有调参,没有rerank,没有PCB,就很高了)。
下面就来介绍一下我们的工作,可能比较工程化一点,也有一些我们的试错。感谢大家。
作者:Zhedong Zheng,Tao Ruan,Yunchao Wei,Yi Yang,Tao Mei
论文:https://arxiv.org/abs/2004.06305
比赛代码:https://github.com/layumi/AICIty-reID-2020
数据:
深度学习模型的基础就是data-driven,所以我们首先先关注了数据。我们发现大多数数据集都是长尾的,而且数据量不是很均衡。如下图a,我们统计了几个数据集,每类样本的个数,发现多数车辆类别少于10张训练图像。就导致了整体intra-class 类内的变化有限。
所以对于AICity 19年的比赛(AICity 2020比赛方则提供了生成数据),我们就采集了额外3个数据集来辅助训练。其实并没有解决intra-class的问题,而是加多了inter-class类间变化,使模型学的更好。
如图b,我们混合了额外3个数据集来帮助训练。我们也统计了其他的数据集信息如下:
模型学习:
有了数据以后,接下来就是模型学习。我们采用了一个很简单的方案。其实就是我们2017年就开源的baseline 中的方案。(https://github.com/layumi/Person_reID_baseline_pytorch)
而本篇文章 观测到 引入额外数据集会带来一些bias,所以我们采用了domain adaptation中两阶段训练。先在所有训练集上训练,然后再针对目标环境finetune。
我们分析了一下原理,其实就类似virtual class。有第一阶段的训练本质上,辅助了我们加大inter-class类间的距离,如下图的W3,所以我们第二阶段再finetune的时候就容易了。
后处理:
对于学术的数据集(VeRI 和 VehicleID),在报结果的时候,为了公平,我们没有用后处理,
而对于比赛,有很多细节,我们也尝试了很多后处理 来提高结果,最常用的包括 reranking, multi-scale ,还有model ensemble。整体流程如下图:
而我们在2020比赛中又针对 AICity数据集做了一些优化,比如组织者还提供了track的信息(哪几张图是一辆车在某个摄像头下的tracklist)所以我们还进一步做了优化。加入了一些group的概念。2020 年比赛的报告在https://github.com/layumi/AICIty-reID-2020/blob/master/paper.pdf
实验结果:
在VeRi-776 和 VehicleID上,我们没有用任何后处理, 就取得了比较高的结果。
我们还测试了不同的backbone 和 input size。
不同的后处理方式:
最后我们还可视化了学到的特征,集中在比较有鉴别力的区域:比如车头灯 和 轮胎上。
其他资源:
- 我也做了一些车辆重识别论文/数据集的收集:https://github.com/layumi/Vehicle_reID-Collection
欢迎大家关注,把新的paper issue上来。
京东AI组 也提供了很棒的汇总车辆reid,做了很多这方面的工作:(https://github.com/JDAI-CV/VeRidataset )提供了VeRi-776 数据集的排行榜
还有北大的工作有很多,我这边简要提供几个链接,方便大家顺藤摸瓜。(https://github.com/PKU-IMRE/VERI-Wild)
END
备注:车辆
车牌车辆识别与智能交通交流群
车牌识别、车辆重识别、智能交通等技术,
若已为CV君其他账号好友请直接私信。
我爱计算机视觉
微信号:aicvml
QQ群:805388940
微博知乎:@我爱计算机视觉
投稿:amos@52cv.net
网站:www.52cv.net
在看,让更多人看到