在机器学习领域,对于大多数常见问题,通常会有多个模型可供选择。当然,每个模型会有自己的特性,并会受到不同因素的影响而表现不同。
每个模型的好坏是通过评价它在某个数据集上的性能来判断的,这个数据集通常被叫做“验证/测试”数据集。这个性能由不同的统计量来度量,包括准确率( accuracy )、精确率( precision )、召回率( recall )等等。选择我们会根据某个特定的应用场景来选择相应的统计量。而对每个应用来说,找到一个可以客观地比较模型好坏的度量标准至关重要。
在本文,我们将会讨论目标检测问题中最常用的度量标准 --- 平均精度均值(Mean Average Precision, mAP)。
大多数情况下,这些度量标准都很容易理解和计算。例如,在二类分类问题中,精确率和召回率都是简单和直观的统计量。
而另一方面,目标检测则是一个相对不同且很有意思的问题。
即使你的目标检测器检测到一张图片中有猫,但是如果你找不到这只猫在图片中的具体位置,那么这个检测器也是没有任何用处的。
由于你现在需要预测一张图片中目标是否出现及其具体位置,那么我们如何计算这个度量就变得相当有意思了。
首先,让我们定义目标检测问题,这样我们可以对问题有一个统一的认识。
▌目标检测问题
对于“目标检测问题”,我的意思是,给定一张图片,找到图中的所有目标,确定他们的位置并对他们进行分类。
目标检测模型通常是在给定的固定类别上进行训练的,因此模型在图中只能定位和分类这些已有的类别。
此外,目标的位置通常是用边界矩形/边界框的形式来确定的。
因此,目标检测包含了两个任务,确定图片中目标的位置,以及对目标进行分类。
图1- 几个比较有名的图像处理问题,图片来自斯坦福大学 CS231n 课程幻灯片(第8讲)