Logo
Section 1 / 3

从图像分类到目标检测

了解图像分类与目标检测之间的联系。

导入

从图像分类到目标检测

了解图像分类与目标检测之间的联系。

图像分类 vs. 目标检测

图像分类任务专注于对整张图像进行类别判断,而在目标检测中,我们可能需要寻找图像中的多个不同对象。我们的目标是找出所有这些对象,并用最合适的边界框将它们框出,同时确定每个对象所属的类别。因此,目标检测的任务比图像分类更为复杂:我们首先要通过定位来检测对象的存在(即生成边界框),然后对每个框内的对象进行分类,以确定该框(物体)属于哪个类别。

  • 图像分类:预测整张图像的类别。
  • 目标定位:在图像中定位对象的位置,并使用边界框标示其所在区域。
  • 目标检测:不仅用边界框定位图像中各个对象的位置,还对每个被定位的对象进行分类,识别其类别。

综上所述,由于目标检测需要同时提供对象的位置和类别信息,可以将其视为图像分类与目标定位两项任务的结合。根据不同的目标检测架构,这两个任务可以被同时处理或依次完成。但无论采用何种方式,一个完整的目标检测模型都必须解决这两个问题。

图像分类仅涉及对整个图像进行分类,而目标检测则更加复杂,需要解决多个子问题:首先需预测边界框的四个坐标值(即位置回归),然后再对该框内的内容进行分类。值得注意的是,目标定位本质上不是一个分类问题,而是一个回归问题!

分类 vs. 回归

在处理分类与回归任务时,明确两者之间的区别非常重要。下面我们来看一下回归的主要类型以及它与分类的关系:

线性回归

线性回归用于预测连续型或数值型变量。例如,根据房屋的位置、面积和房龄来预测其租金价格。这种任务的输出不是离散类别,而是由模型预测出的一个连续数值。

简单线性回归的一种常见形式是公式 y=mxy = mx,其中输入 xx 的取值范围通常为 [−∞,+∞][-∞, +∞],对应的输出 yy 也有类似的无限范围。我们在神经网络的隐藏层中也见过类似线性函数的激活函数,比如 ReLU——正因为其广泛的输出范围,使得线性关系能够有效地在网络各层间传递信号。

逻辑回归(Sigmoid 回归)

假设我们有两个类别,希望根据输入 xx 判断其属于类别 aa 还是 bb。线性回归的输出范围太宽泛,不利于直接分类。如果我们能将预测结果限制在 [0,1][0,1] 区间内,就可以设定阈值来进行分类:例如当 y>0.5y > 0.5 时判定为类别 aa,否则为类别 bb。逻辑回归(又称 Sigmoid 回归)正是通过 Sigmoid 函数实现这一目的,将输出压缩到 00 到 11 之间,从而适用于二分类任务。

虽然 Sigmoid 函数在反向传播中存在梯度消失等问题,不适合作为隐藏层的激活函数,但在输出层中,若任务为二分类,Sigmoid 仍是合理且常用的选择。

分类(Softmax 回归)

如前所述,Softmax 函数可将模型最后的原始输出转换为概率分布。经过 Softmax 处理后,每个类别的输出值表示其可能性,且所有类别的概率之和等于 11。最终,我们将概率最大的类别作为模型的预测结果。

是否可以用线性回归来做分类任务?理论上是可以的,无论是二分类还是多分类问题,都可以通过对线性回归的输出施加某些条件来进行分类,例如设置阈值:“如果 y>阈值y > \text{阈值},则判为类别 aa”。但这种方法并不推荐,因为线性回归对异常值非常敏感,容易导致分类结果不稳定。因此,针对具体问题选择合适的回归或分类方法,对于获得鲁棒的模型性能至关重要。

模型部署

单阶段与两阶段架构