一、目标检测基础
** 图像分类 ** | ** 目标检测 ** | |
---|---|---|
不同 | 通常为单物体,占图像主要面积 | 物体数量、位置和大小不固定,需要检测出来 |
相同点 | 需要模型提取图像特征,根据图像特征完成任务 |
目标检测与滑窗(Sliding Window)
早期在进行目标检测时,其实质是通过在图像上移动滑窗来遍历图像的全部像素,通过分类模型来识别窗口中的对象,最终在图像上找出所有物体的位置,并区分出这些物体。并且为了检测到不同大小形状的物体,需要引入多尺度的滑窗,以此进行识别。
但很显然,滑窗在检测时会面临对大量窗口分类的情况,存在严重的效率问题,计算成本极大,故提出以下改进策略:
- 使用启发式算法替换原始暴力遍历法
R-CNN和Fast R-CNN就是采用Selective Search的方法生成提议框取代滑窗,但这种方法依赖外部算法,在系统中实现较为复杂,难以进行优化
- 密集预测,减少冗余计算
这种方法采用卷积网络进行密集预测,由卷积一次性计算图像中的所有特征,再取出对应位置特征完成分类,在重叠区仅进行一次卷积特征计算,无关窗口个数,大大减少了计算量,是当前常用的方法。
特征图与密集预测
在卷积神经网络中,由于卷积核的存在,不同特征的感受野会自然形成一系列等距分布的窗,这些窗的尺寸由神经网络去隐式定义而成,在提取到特征后,这些特征会被送入线性分类器中,形成一个概率向量来描述物体属于哪个种类的概率,向量为C+1维,C是种类数,1是背景类。
密集预测基本范式
本质是用卷积去取代滑窗方式,使得计算效率大大提升
值得注意的是,在早期的目标检测任务中,以R-CNN系列为首的两阶段算法在精度上要比单阶段算法(YOLO、SSD)优秀,直到多尺度技术(FPN)的出现,单阶段算法的精度才有所提升。
二、基础知识与基本概念
- 边界框(Bounding Box): 常指图像中包含感兴趣物体的框,通过左上右下以及边界坐标或中心坐标和框的长宽四个坐标进行描述。与区域(Region)为同义词。
- 区域提议(Region Proposal): 指算法预测的可能包含物体的框,某种识别能力不强的算法的初步预测结果,常在二阶段算法中使用,单阶段方案无用。
- 感兴趣区域(Region of Interst): 需要对某框进行进一步检测以确保是否有物体时,该框内区域即为感兴趣区域
- 锚框(Anchor Box): 图中预设的一系列基准框,类似滑窗,一些检测算法会基于锚框预测边界框
- 交并比(IoU): 定义为两矩形框交集面积与并集面积之比,是矩形框重合程度的衡量指标,计算公式如下:
- 置信度(Confidence Score): 模型预测出的结果概率,一般每个框对应一个预测概率
- 非极大值抑制(NMS): 多个相邻滑窗的存在,会使得分类模型对每个框都给出一个预测结果,但对于模型来说,仅需要一个最大的置信度结果即可,因此引入NMS算法,在面对相邻锚框只想同一个目标的情况时,通过删除相邻框来保留置信度最大的结果(扔掉非极大值)
- 边界框回归(Bounding Box Regression): 预测边界问题(回归问题),采用多任务学习方法,让模型在预测物体类别同时预测边界框相对于滑窗的偏移量,在分类的同时基于相同特征去计算偏移量,同时计算损失和backward(),将两个损失的梯度和积累到特征上进行下一步任务。
- 边界框编码(Bbox Coding):相较于分类任务,回归任务对神经网络较困难,边界框的绝对偏移量在数值上通常较大,不利于神经网络训练,通常需要对偏移量进行编码,作为回归模型的预测目标。