前段时间一直忙着硕士毕业的事情,所以好久没有写博客了。伴随着又一次开学,一切安置妥当,学习也上排上日程了,希望自己在新的领域能够有所贡献,一天比一天进步。
今天分享的是一篇有关小目标检测的论文:
论文链接:https://arxiv.org/abs/1912.10664
代码链接:TinyBenchmark/tiny_benchmark at master · ucas-vg/TinyBenchmark · GitHub
1、摘要
小目标检测存在特征表达难和复杂背景带来的高虚警率的问题。本文提出了一个新的benchmark TinyPerson,以实现长距离和复杂背景下的小目标检测。
作者发现用于网络预训练和检测器学习的数据集的尺度不匹配使特征表达不好,同时降低检测器的性能。于是,作者提出了一种尺度匹配方法,匹配两个数据集的目标尺度,从而提升小目标的特征表达。
2、引言
主要贡献:
1、基于海上快速救援的背景,提出TinyPerson,发起野外小目标检测的挑战。这是第一个用于长距离和大量背景下行人检测的benchmark。数据集公开!
2、提出Scale Match方法,以匹配用于网络预训练和检测器学习的数据集的特征分布;
3、与FPN相比,检测效果提升了5%。
3、TinyPerson Benchmark
本文用目标bounding box的平方根来定义目标的尺寸。
:第张图片的bounding box
:bounding box左上角的坐标
:bounding box的宽度和长度
:图片的宽和长
因此,目标的绝对尺寸和相对尺寸可以计算为
全文的目标尺寸均指绝对尺寸。
3.1Benchmark描述
1、数据集收集:从网络上的高分辨率视频中每50帧采集图片,然后按照一定的概率删除图片。手工标注了72651个目标的bounding box。
2、数据集属性介绍:
1)和其它数据集相比,TinyPerson中的人真的很小,见Figure1和Table1。
2)由Table1可知,TinyPerson中人的长宽比变化很大。并且人的姿势和角度存在多样性。
3)TinyPerson主要是海边附近的人,可用于快速海上救援和海上防御。
4)一些图片上的人是密集的(一张图片上可能超过200个人),因此该数据集还可用于行人计数等任务。
3、标注规则:
在TinyPerson数据集中,人类被分为“sea person”(persons in the sea)和“earth person”(persons on the land)两类。下面是定义规则:(可忽略)
1)在船上的人是“sea person”;
2)在水中的人是“sea person”;
3)超过半个身子在水中的人是“sea person”;
4)其余为“earth person”。
在该数据集中, 三种情况下的人会被标注为“ignore”:
1)人群。人群中的人难以一一标注。
2)模糊的区域。难以区分此处是否有人。
3)水中的倒影。
对于一些难以识别为人类的目标,标注为“uncertain”。标注的例子见Figure2。
4、评估:利用AP(average precision)和MR(miss rate)来评估结果。
此外,目标按照尺寸大小被分到三个区间:tiny[2,20],small[20,32]和all[2,inf]。tiny[2,20]包含三个子区间:tiny1[2,8],tiny2[8,12]和tiny3[12,20]。IoU阈值设定为0.5。在一些任务(如失事船舶搜寻和救援)中,更关注的是找到人类,而不是精确定位人类,因此此时IoU阈值设定为0.25。
在TinyPerson中,由于大部分ignore区域比人大很多,因此对于ignore类,我们利用IOD代替IOU,其它类仍使用IOU,如Figure3所示。在训练和测试的过程中,对待uncertain类的操作和ignore类的操作相同。
5、训练集和测试集:将图像随机分为两个子集,同一视频的图像不能分到同一个子集中。
在人类检测任务中,将“sea person”和“earth person”当做相同的类别(person类),并且只使用人类数量小于200的图片。
3.2数据集的挑战
1、小的绝对尺寸:
为了验证减小绝对尺寸对检测效果的影响,对CityPersons进行4倍下采样,得到tiny CityPersons,其中,目标绝对尺寸的平均值与TinyPerson一样。检测结果如Table4所示。
当目标缩小后,检测器的性能大幅下降,tiny CityPersons的 比CityPersons的低40%。由此可见,小目标的尺寸给目标检测带来了巨大的挑战。
利用MS COCO训练的FPN在和MS COCO中目标大小一致的目标上的检测效果更好,不适用于小目标。尺寸分布的巨大差异会导致性能的下降。此外,小目标往往是模糊的,因此包含较少的语义信息。
2、小的相对尺寸
由于是对整幅图像进行下采样,因此相对尺寸并没有发生变化。与CityPersons相比,TinyPerson是在很高的高度下拍摄的,因此相对尺寸要小的多,如Figure1所示。
为了验证小的相对尺寸的影响,分别对tiny CityPersons和TinyPerson进行3倍上采样,以得到3*3 tiny CityPersons和3*3 TinyPerson。FPN在两个新数据集上的结果由Table3所示:
对于3*3 tiny CityPersons,上采样使和分别提升了29.95和16.31,这和CityPerson的结果接近。对于TinyPerson,相同的上采样并没有使效果提升。由于目标的背景复杂,较小的相对尺寸会导致更多的假阳性和严重的正负样本不平衡。
4、小的人类目标检测
大量的数据对于提升算法的效果是十分有必要的,然而收集数据的成本很高。常见的做法是用其它数据集训练预训练(pre-trained)模型,然后在特定任务的数据集上进行微调(fine-tune)。由于其它数据集的域与特定任务的数据集相差很大,因此采用上述办法进行性能提升的效果是有限的。如何用其它数据集来帮助训练用于微小人类检测的模型呢?
公开数据集在目标类型和尺寸分布上与TinyPerson不同,如Figure1所示。受启发于人类认识的过程(这一段没看懂,懂得评论里讲一下~),作者提出了尺度变换的方法,从而另TinyPerson和其他数据集的尺寸存在一致性。
对于数据集,定义中目标尺寸的概率密度函数为,尺寸变换为,以将其他数据集中的目标尺寸的概率分布变换为目标数据集(TinyPerson)的目标尺寸概率分布,如公式(3)所示:
本文中,MS COCO数据集作为其它数据集,下文的Scale Match为尺寸变换。
4.1、Scale Match
令表示数据集中图像的第j个目标。Scale Match可表示为三步:
1、采样;
2、计算比例;
3、利用比例缩放目标得到。
对数据集中的所有目标进行Scale Match,即可得到。当数据集中的目标数量很大时,会和接近。算法细节如下图中的Algorithm1所示:
1、估计:按照机器学习中的假设“随机采样的训练集的分布与真实分布接近”,因此利用去估计。
2、校正直方图:离散直方图被用于估计,和是第k个bin的尺寸边界,是中目标的数量,是中第i张图片上的第j个目标,是第k个区间的概率,如公式(4)所示:
然而数据集分布的长尾问题(数据集中的少量类别占据了大量样本,而大量类别仅有少量样本,见Figure4)使得直方图拟合效率较低,即很多个bin的概率接近于0。 因此,作者提出了一个更加高效的校正直方图(见Algorithm2)。并利用(sparse rate)来表示概率接近于0的区间的个数:
其中,是直方图中bin的个数,设为100,设为10,为阈值。对于TinyPerson,在0.33到0.67间变化。
3、图像层面的缩放
对于数据集中的所有目标,需要关于采样,然后将目标缩放为大小。本文通过缩放整张图片使目标大小接近(防止破坏图片的结构)。然而图片中可能有多个尺寸不同的目标,此时只需保证所有目标的平均尺寸接近即可。
4、采样
首先关于的概率来采样bin的索引,然后在最小和最大尺寸分别为和的前提下,以均匀分布采样。第一步保证的分布接近于,第二步采用均匀采样法。
4.2、Monotone Scale Match
Scale Match可以将尺寸的分布变换到特定任务的数据集上,如Figure5所示。然而,该操作可能导致原始尺寸混乱:一个很小的目标可能采样一个大的尺寸,反之亦然。因此提出Monotone Scale Match,以保持尺寸的单调性。
Figure6为单调改变尺寸的图,利用单调函数将尺寸映射为,使的数据分布与一致。对于任何,计算如下:
其中,和分别表示中的目标的最小尺寸和最大尺寸。(ps:这个公式对吗?我怎么感觉不对)
5、实验
详见原文。