文章目录
1. 目标定位
图片分类任务之前我们很熟悉了,本节学习定位分类问题。不仅仅要判断图片是不是一辆汽车,还要在图中标记其位置,后面还会讲多目标定位。
图片分类任务流程很熟悉,比如,输入一张图片到多层卷积神经网络,输出一个特征向量,然后反馈给softmax单元来预测图片类型。
如果构建一个自动驾驶系统(如上图),对象可能包括:行人、汽车、摩托车和背景。这四种分类就是softmax函数可能的输出结果。这是分类任务,如果我们让神经网络增加4个输出,标记为
这四个数字是被检测对象边界框的参数化表示。
notations:
左上角坐标(0,0),右下角坐标(1,1)。
红色边框中心点(bx,by),边框高度bn,宽度bw。
训练集不经包括类别标签,还应该有这四个参数,通过监督学习方法,输出一个分类标签和四个参数值。
上图对应的y见图中y向量。如果没有检测对象,训练样本pc=0,其余为问号(表示毫无意义)。
最后说一下神经网络的损失函数:(参数为类别y和输出y_bar)
采用平方误差策略:
pc不等于0,等于所有元素差值平方和;等于0的时候,只需关注pc的准确度。
在实际应用中,对分类和边框使用不同的误差函数。分类pc应用逻辑回归函数,对边界框坐标用平法差。
2. 特征点检测
让神经网络输出四个特征点标签就好了。
这里没啥可说的,就是定义训练即的特征点标注,然后输出的时候增加相应的神经元。需要注意的是,训练数据中的特征点标记的位置要一致。
3. 目标检测
有了对象定位和特征点检测的先验知识,本节构建一个基于滑动窗口的目标检测算法。
步骤:
- 首先创建一个标签训练集,经过适当的剪切,作为训练集开始训练卷积神经网络,输出y表示图片有无汽车。
- 选择一个特定大小的窗口,将每个红色小方块输入到卷积神经网络中,预测红框内有无汽车。依次往后滑动,如果需要滑动的更快,选择比较大的步幅。
问题:计算成本过大。