目标检测
目标定位
今天我们来学习的内容是对象检测,它是计算机视觉领域中一个新兴的应用方向,在构建对象检测之前,我们需要先了解对象定位。
通过输出四个参数值bx by bh bw,给出图片中对象的边界框。概括的说,神经网络可以通过输出图片上特征点的(x,y)坐标来实现对目标特征的识别
卷积的滑动窗口实现
为了构建滑动窗口的卷积应用,首先要知道如何把神经网络的全连接层转化成卷积层。
假设对象检测算法输入一个14*14*3的图像,有16个大小为5*5的过滤器 ,图像在过滤器处理之后映射为10*10*16,然后通过参数为2*2的最大池化操作,图像减小到5*5*16,然后添加一个连接400个单元的全连接层,接着再添加一个全连接层,最终通过softmax单元输出Y
然后我们所做的就是如何把这些全连接层转化的卷积层。
前面三层都是一样,后面的话,我们不再把它看作一个含有400个节点的集合,而是一个1*1*400的输出层,我们再添加另外一个卷积层,这里用的是1*1卷积,假设有400个过滤器,在它们的作用下,下一层维度就是1*1*400,最后经由1*1过滤器的处理,得到一个softmax激活值 。
下面我们再看一下如何通过卷积实现滑动窗口对象检测算法
假设向滑动窗口卷积网络输入14*14*3的图片,图的话是与上面的例子一样的,然后测试集图片是16*16*3,在最初的滑动窗口算法中你会把这片蓝色区域输入卷积网络生成0或1分类,接着滑动窗口,步幅为2个像素。
然后使用过滤器进行卷积操作,得到输出层,然后执行最大池化,输出结果6*6*16,应用400个5*5的过滤器,得到一个2*2*400的输出层,应用1*1过滤器得到另一个2*2*400的输出层,再一次进行全连接操作,最终得到一个输出层。
该卷积操作的原理是,我们不需要把输入图片分割成四个子集分别执行向前传播,而是把它们作为一张图片输入给卷积网络进行计算