卷积神经网络&目标检测

卷积神经网络&目标检测


一、Inception网络

一般来说,提升网络性能最保险的方法就是增加网络的宽度和深度,这样做同时也会伴随着副作用。首先,越来越深的网络有着巨大的参数量,数据量很少的时候会出现过拟合,并且当网络深度很深的时候,很容易造成梯度消失。Inception网络可以解决这两个问题。

1、Inception网络基本思想

卷积神经网络&目标检测
有多个卷积层结构和Pooling结构,利用了padding的原理,让经过这些结构的最终结果大小不变。
多个Inception层组合在一起,就构成了Inception网络,但是这样计算量很大,所以下面使用1*1卷积核来降低计算量。

2、采用1×1卷积降低计算量

卷积神经网络&目标检测
**包含11的卷积模块:**参数量为1125632+553264=59392个参数,连接数为((11256+1)32nn+(5532+1)64nn)=59488nn个
**不包含1
1的卷积模块:**参数量为5525664=409600个,连接数为(55256+1)64nn=409664nn个

3、Inception模块和Inception网络

卷积神经网络&目标检测
Inception网络是由上面的Inception模块一环接一环构成。其中有时候还会包含输出端的全连接层,还有中间层引出多个输出,在连接softmax,这样可以减少过拟合。
卷积神经网络&目标检测

二、迁移学习

可以从开源网站下载代码和权重,已经有许多训练好的模型可以利用,可以采用冻结前几个层的方法,将后面的层换位自己的隐藏层和softmax输出层。随着数据数据数目增多,可以训练更多的层次。也可以选取权重,作为自己的初始化权重。

三、数据扩充方法

1、镜像对称
2、随机修剪、旋转、局部扭曲
3、色彩转换

四、目标检测

在一张图片中,不仅仅要判断是否有目标物体,而且需要用框框选出。
利用神经网络进行对象定位,即通过输出四个参数值bx、by、bh和bw给出图片中对象的边界框。
概括地说,神经网络可以通过输出图片上特征点的(x,y)坐标来实现对目标特征的识别
卷积神经网络&目标检测

1、特征点检测

构建一个人脸识别应用,希望算法可以给出眼角的具体位置,眼角坐标为(x,y),可以让神经网络的最后一层多输出两个数字 x和y,作为眼角的坐标值.
卷积神经网络&目标检测

2、通过卷积网络进行对象检测

基于滑动窗口的目标检测算法

1、创建一个标签训练集,对于训练集的期望,一开始可以使用适当剪切的图片,让目标物体尽可能充满整个图片。
2、训练卷积网络。
3、可以用其来实现滑动窗口目标检测
具体步骤:
(1)选定一个特定大小的窗口,如下图。判断红色方框内是否有汽车。
(2)移动这个窗口,再次输入给卷积网络,输入给卷积网络的只有红色方框内的区域。重复操作。每个窗口位置按0或1进行分类。
卷积神经网络&目标检测
缺点:计算成本过大,窗口一个一个进入卷积网络进行处理,计算数量巨大。

3、如何将全连接层转化为卷积层

全连接层:
卷积神经网络&目标检测
卷积层:(优点:提高了算法的效率,缺点:边界框的位置可能不够准确)
卷积神经网络&目标检测
卷积神经网络&目标检测
可以不用连续的卷积操作来识别图片中的汽车,例如可以用大小为28*28的整张图片进行卷积操作,一次得到所有的预测值。

4、Yolo算法初步学习

卷积神经网络&目标检测
判断对象是否在这个格子里面,是观察对象中点,将对象分配到中点所在的格子内。
优点:神经网络可以输出精确的边界框 ,不会受滑动框的步长限制。并且是卷积实现,没有将每个格子都跑一边程序。可以达到实时识别。
限制:每个格子的对象最多有一个
参数表示:
bx,by 目标对象相对于本格子左上角的坐标,[0,1]
bh,bw 红色框的长宽,可能>1

5、交并比(loU)——评价对象定位算法

loU(交并比)函数:
计算两个边界框交集和并集之比
评价标准:
一般情况,IoU >= 0.5 (人为规定)检测正确,反之错误。
卷积神经网络&目标检测

6、非最大值抑制

算法可能对同一个对象作出多次检测,所以算法不是对某个对象检测出一次,而是检测出多次,非最大值抑制可以确保算法对于每个对象只检测一次

选取最高IoU值的矩阵,然后去掉其他IoU值较高(大于事先规定的IoU的界值)的矩阵
多个对象就要独立进行多次非最大值一直

7、Anchor Boxes

前面每个格子只能检测出一个对象,下面采用AnchorBox来处理一个格子多个对象的情况。
卷积神经网络&目标检测

8、YOLO算法

卷积神经网络&目标检测
非最大值抑制:
如果采用两个Anchor box 那么对于每一个都会有两个预测的边界框。其中一个P很低;下面抛弃概率低的预测,对于每个对象类别都要单独运行非最大值抑制。最终可以得到结果。

9、R-CNN算法 带区域的卷积网络

这个算法尝试选出一些区域,在这些区域上运行卷积网络分类器是有意义的,所以不再针对每一个滑动窗口跑检测算法,只是选择少数窗口上运行卷积网络分类器。
选择方法:
运行图像分割算法,在存在色块的地方运行卷积网络分类器
缺点:速度很慢
卷积神经网络&目标检测

上一篇:对Inception V1的理解


下一篇:【图像分类】一文彻底搞明白GoogLeNet