卷积神经网络—目标检测 学习笔记(上)
3.1 目标定位(Object Localization)
Image classification(图像分类):对输入图像进行分类。例如有一个猫狗分类器,当你输入一张图片时,分类器能分辨出这是猫或者是狗,这便是图像分类。
Classification with localization(定位分类):不仅要进行图像分类,还要得到被检测目标的位置(用包围盒bounding box表示)。注意,定位分类问题中每张图片仅涉及一个目标。
Detection:是能够同时处理多个、多种目标的分类定位。
三者之间实际是一种逐渐复杂的关系。
下面介绍定位分类算法:
如果使用监督学习进行训练,那么一个训练样本(X,Y)分别如下(假设有三种目标,编号为0,1,2):
X:输入图像
Y:
:目标是否存在
:包围盒中心的横坐标值
:包围盒中心的纵坐标值
:包围盒的高
:包围盒的宽
只有一个为1,表示被检测到目标的编号。
注意,当 时其余的分量没有意义。
简单起见,使用方差损失函数:
3.2 特征点检测(Landmark Detection)
获取特征点可以有许多有意思的应用,如判断人物的动作姿态,识别图片中的人物表情,以及相机的贴图功能等等。接下来介绍获得一个可以检测指定特征点的神经网络。
假设我们要检测人眼的关键点,那么需要的关键点是上图中四个绿色点,从左到右编号为。
一个训练样本(X,Y)设计如下:
X:输入图像
Y:
3.3 目标检测(Object Detection)
介绍了最基本的滑动窗口检测算法(sliding windows detection algorithm)。
如果我们现有有一个ConvNet,可以识别多种目标,那么如何在一张图片中(包含多个或多种目标)进行目标检测呢?滑动窗口可以。
使用一个固定大小的窗口在图片上滑动,并将对应的部分截取输入到ConvNet进行识别,当所截取部分包含目标时就可以获得分类信息和目标位置。
为了适应大小不同的目标,我们可以使用多个尺寸的窗口进行滑动操作。
滑动窗口是最基本的目标检测算法,优点是算法简单,缺点也显而易见:计算成本太高,因为窗口滑动会产生大量的截图,我们要将大量截图输入到ConvNet中进行识别,计算成本非常大。