卷积神经网络—第三周

一、目标定位

目标定位从标准的CNN图像分类出发,在这个基础上又增加了更多的y值,比如

PC表示图片中是否有检测物,如果有是1,否是0

bx,by,bh,bw分别是定位矩形区域参数

c1,c2,c3表示定位出来的物品属于哪个类别

注意,如果pc是-,后面就没有意义,就全部不关心

损失函数:

 

二、特征点检测

除了用矩形框选出区域,我们哈可以对关键点定位,输入每个关键点的x,y坐标来定位,比如第一个为是否是人脸,然后后面一次是每个关键点的横坐标,纵坐标

三、目标检测

目标检测采用的滑动窗口法,首选搜集很多的图片,包括有车的,没车的。但是图片里面的汽车要占据整个图片,然后用这些图片来训练一个cnn模型,得到最终的模型

然后再测试图片上面,选择合适的大小窗口和步长,进行滑动遍历整张图片,每次滑动方框中的图片就输入到CNN中,判断是否有车子,最终都遍历完都没车,那就是没车,如果有就有

这种方法的计算代价很大,并且滑动窗口大小和步长需要人为确定。

四、卷积的滑动窗口实现

由于前面计算代价很大,因此我们可以使用卷积的方式来处理,单个滑动窗口区域的全连接层转化成卷积层如下

 

这个是单个窗口建立模型,也就是训练数据建立的模型

在检测图片上:同样用一样的卷积方式处理后会发现得到的是一个更大一点的图,图中每一个块代表了滑动过程中选择的区域。这里滑动步长是2,因为max_pool为2,要更改步长直接更改max_pool就可以了

 

 

 五、bounding box预测

由于滑动窗口有可能会出现无法刚好覆盖目标的情况,因此这里出现了yolo算法,通过把检测图片划分成小块,每块来做检测,最后生成n*n*8的图片,

每个网格中包含八个数字,第一个是否有目标检测物,第二个第三个是中心点坐标,yolo中中心店左边的原点是该小单元格从0-1,bh,bw分别是一个小格子长宽的比例,比如200%宽度,这个可以超过1

 

六、交并比

用来评价目标区域检测的准确性

 

 七、非最大值抑制算法

在yolo算法中可能会多个网格都会检测到有目标存在,但是其实是同一个目标,所以就需要用非最大值抑制算法,

算法步骤:

  1、先选择出最大的pc值的网格,

  2、计算这个区域跟其他区域的iou值,剔除掉iou值比较大的区域

  3.在选择出最大值的PC网格

  4、重复第二步

这样就能够把多个不同的目标检测出来,又不至于一个目标检测多次

 

 

 八、anchor boxes

前面介绍的都是一个网格检测一个目标的情况,如果在一个网格中出现了多个目标呢,这时候就要不同形状的anchor boxes

在anchor boxes为2的时候,我们的输出不再是3*3*8了而是3*3*2*8,然后查看检测区域与那个anchor boxes的iuo更大,就属于哪个anchorboxes

 

 九、yolo算法

 

十、RPN网络

 

posted @ 2018-05-09 16:35  慢慢来会比较快  阅读(405)  评论(0编辑  收藏  举报