一种简单的利用方式是将Mega Detector预测的BBox 裁剪出来,同原图一起送给网络进行训练,这样可以有效环节ROI 尺寸过小的问题。 不过这种方案的缺陷在于,如此训练分类网络,会使得网络获得两个scale完全不同的输入,一个是原图,一个是BBox裁剪出的图像,这会对分类网络学习特征带来一定的干扰。
为此,团队修改了策略,同时训练两个网络。分别输入原始图像,和Mega detector裁剪出的置信度最高的bbox图像。 在预测阶段,再将网络的输出进行Ensemble,从而可以同时捕捉到原图全局的信息和BBox中前景的信息。 挑战二:不同背景造成的问题 除过ROI 储存过小之外,另一个问题是训练集的camera trap 取景位置和测试集的camera trap 不相交所导致的背景差异问题。
训练集图片均来自于蓝色点表示的区域,它和红色区域没有相交。 因此这会造成domain shift的问题。即在训练地表现好的模型并不一定也会在test地有同样表现。因为模型有可能学到一些和location相关的信息,而它们不是可以用于分类动物的通用信息。 此外,与正常的domain adaptation不同,iWildCam 的训练集包括很多不同domain(如果将每个camera trap地点作为一个domain,则训练集包含441个,而测试集包含111个)。 因此,如果能利用训练集中的位置标注来帮助网络学习location invariant的特征,那么网络就可捕捉更多与位置无关而和分类相关的信息。 对此,domain adaptation领域非常著名的论文Unsupervised domain adaption by backpropagation为团队提供了启发。
如上图首先可以假设,如果在原来的2048维上加一个额外位置(location)的classifier,那么网络提取的特征就会倾向于将不同location的特征相互推远。如上方右图所示(不同形状表示不同类别,不同颜色表示不同),虽然每个类别的特征之间有分类的可分性约束,但是location之间的相互排斥也会导致一些location图片的特征被推到一个不太有利于分类的局面,从而导致网络学到的特征并不能实现location invariant,从而在测试集上表现欠佳。 对此,文章提出一个非常简单的梯度翻转的技巧来实现location invariant。
如上方左图所示,在梯度反传经过location classifier时将梯度乘-1,从而实现翻转梯度的方向。
因此在右图可以看到,原本的推开不同location之间特征的梯度经过翻转后,会将其一起拉近。在加上分类的约束后,可以保证网络学到的特征表示实现location invariant,并且还能保证分类的效果,提高网络对之前未见的location的泛化性能。 挑战三:数据长尾分布
上方指数图展示的是数据的分布情况,可以看到数目最多的类别有超过十万张图,而最少的类别可能只有不到十张图片,一般而言,将类别数多的类别称为head类,类别数少的类别称为tail类 。 因此,如果直接随机采样batch来训练分类模型,会见到很多head类样本,而tail类样本则很少见到,这样会使得模型更偏向于预测head类而不是tail类,从而损伤网络的表示能力。 因此,对于长尾分布,一般有两种解决方案,一种是Re-Sampling, 另外一种是Re- Weighting。