ICCV 2019 野生东北虎再识别挑战赛双赛道冠军方案(含开源代码)

比赛 黑人 ⋅ 于 2个月前 ⋅ 1840 阅读

来源:情书的CV总结@知乎专栏
作者:情书


今天刚好研二新学期开学,这个研一的暑假基本就做了两个比赛,一个是ICCV19 Workshop的野生东北虎再识别的比赛,一个是CPIPC研究生人工智能创新大赛。今天主要来总结ICCV的比赛吧。至于另一个比赛,等决赛结束之后有时间再总结一下吧,希望到时候不会鸽掉╮(╯▽╰)╭

比赛主页 CVWC2019

这次的比赛一共分为四个赛道,分别是东北虎检测,东北虎关节点估计,东北虎再识别,东北虎野外环境下再识别。最终有幸在后两个再识别赛道上都取得了冠军。(o゜▽゜)o☆[BINGO!]

先交一波代码,欢迎star (๑•̀ㅂ•́) ✧。至于Solution paper,过段时间会放上来。

https://github.com/LcenArthas/CVWC2019-Amur-Tiger-Re-ID
file

1 比赛介绍

本次比赛主要是侧重于,将CV技术用于濒危的野生动物保护,特别是关注野生东北虎,也被称为西伯利亚虎或东北华南虎。东北虎种群主要集中在远东地区,特别是俄罗斯远东和中国东北地区。剩下的野生种群估计有600只,所以保护是至关重要的。

比赛一共分为四个赛道,分别是东北虎的检测,东北虎关节点的估计,东北虎的再识别,野外环境下的东北虎的再识别。这里解释一下最后一个野外东北虎的再识别赛道,这个赛道给出的是未进行检测的东北虎的照片,可能一幅图片中有一个也可能有多只老虎。这个赛道可以说是对前面三个赛道的一个综合考量。

file
检测和关节点注释的可视化


2 数据分析

比赛主办方为了这次比赛,自己提出了一个东北虎的数据集ATRW,现在简单来分析下这个数据集。这里主要分析下Re-ID的数据,更详细的内容可以查看主办方发的论文[1],在论文中还提出一个老虎再识别的Baseline,感兴趣的可以去看下,这里就不做过多的解释了。

ATRW的Re-ID数据集中,训练集提供了3392张图片,但是真正有ID的图片只有1887张,主办方给出的解释是剩下没有ID的图片主要是因为都是老虎正面的照片,而本次比赛的目的在于利用老虎身上的花纹进行再识别。

在这1887张图片中,共有107个不同的老虎ID。其中不同ID的老虎个数并不一致,其中ID为‘153’的老虎图片最多有98张,ID为‘1’的最少,只有10张。但是大部分都分布在15~30这个区间。ID的分布如下所示:

file
训练集ID分布
所有的图片均是RGB彩图,但是图片的大小尺寸并不一致,其中长宽比分布如下:

file
训练集图片长宽尺寸比例分布
与其他行人Re-ID数据集不同的是,标注文件除了给出了每张图片老虎的ID,还给出了每只老虎的关节点坐标信息。每只老虎按照关节位置标注了15个关节点,如下(左)图所示。但是比较坑爹的是,并非所有老虎都有15个标注的关节点,其中差不多400+的图片没有关节点的标注,具体分布如下(右)图。也就是说,标注信息不是全面的,或者说很不完整。

file
关节点标注信息
其实通过上面简单的分析可以得知,这道题的难点,也就是提分点在于如何利用这些并不完整的关节点信息。


3 方法模型

如果是做Re-ID的朋友应该知道,再识别里面用最多的也就是就是ID Loss(交叉熵loss)和Triplet-Loss。在这次的比赛中,我们同样是混合了这两种loss进行训练。

另外为了更好地提取特征,进行最后的性相似度比较。这次比赛中,我们设计出了一个三分支的网络模型,如下图所示。

file
Tiger Re-ID 网络结构
利用老虎的关节点信息,对一张完整的老虎图片分割成躯干,左右前腿,左右后大腿,左右后小腿等7部分。同时把躯干和四肢分成两个网络分支,分别提取特征,即上图的TP-Stream和LP-Stream分支。

针对老虎躯干上花纹多,表征能力更强的特点,我们利用了PCB的做法,对躯干部分按垂直的水平条来提取特征;对于四肢部分,则是设计了6路不同的并行子网络分别提取特征。最后利用concatenation操作特征融合。

针对整张原图,我们则是利用一个全局分支F-Stream网络进行特征提取,最后相加全局和局部的特征信息,利用上文提出的两个混合Loss进行训练。

值得一提的是,我们在最后的推理测试阶段,我们只利用原图进行推理测试,这样做就恰好利用上了关节点信息(在训练时)也弥补了关节点信息不完整的缺点。

另外,对于最后一个 Tiger Re-ID in the Wild 赛道,由于时间和设备有限╮(﹀_﹀)╭,我们只训练了一个Faster-RCNN(resnet50)作为检测器,利用上面的网络进行再识别。也就是说我们省去了关节点估计这一步,使得我们也有幸在这个赛道也取得了冠军。检测器代码如下:

https://github.com/LcenArthas/CVWC2019-Amur-Tiger-Detection


4 一些Tricks

这次比赛中我们参考了行人再识别的常用trick,具体可以参考这篇论文[2]。其中很多方法是值得借鉴的,包括warmup,stride=1,BNNeck等。

另外我们参考了之前的kaggle的座头鲸识别比赛[3]中的一个trick,即水平翻转图片进而产生新的ID。使得训练集增加,这使得在最后MAP有将近5个点的提高。

此外增大图片的输入尺寸,经过试验,当输入尺寸为256x512时效果最好,比128x256的输入提高6个点左右。

同时由于比赛最后提交测试只有一周的时间,我们只对主干分支(F-Stream)进行了几种网络的替换测试,其中ResNet101表现最好,而另外两个分支都利用ResNet34作Backbone。


5 总结

其实最开始并不太想做这个比赛,一是因为假期中真的是成吨的比赛Σ(っ °Д °;)っ,而是毕竟是学术会议的比赛,必然会吸引成吨的大佬们过来ε(┬┬﹏┬┬)3,分分钟被秒成渣渣。但后来女票看了一眼数据集,发现这些大猫居然很可爱Σ( ° △ °|||)︴,让我试试......

就这样阴差阳错做了两周左右。因为这个比赛最后只有一周时间开放测试,而做过这个比赛的都知道,这个比赛线上线下真的是差距太大,所以最后一周基本是天天熬夜实验室,通宵上分。但还好,最后结果还是很开心的,最后放一张当时最后熬夜上分时候发的胖圈纪念一下。

file
最后,如果有任何问题随时评论私信( ̄▽ ̄)~■干杯□~( ̄▽ ̄)

参考
^Amur Tiger Re-identification in the Wild https://arxiv.org/abs/1906.05586
^Bag of Tricks and A Strong Baseline for Deep Person Re-identification https://arxiv.org/abs/1903.07071
^Humpback Whale Identification https://www.kaggle.com/c/humpback-whale-identification



推荐阅读:
年轻人的第一块金牌:我是如何成为 Kaggle 全网第一的
天池 | 布匹疵点识别&面料裁剪利用率优化大赛
各大视觉技术竞赛冠军及 TOP 方案集锦(欢迎回帖补充)

file
△ 扫一扫关注 极市平台
每天推送最新CV干货

黑人

本帖已被设为精华帖!
本帖由 Admin 于 2个月前 加精
回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!