热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

卷积滑动窗口检测算法原理

在目标检测中,基于滑动窗口的检测是一种常见的办法。
如下是该算法的主要思路:
首先该算法的实现需要预先训练卷积网络,将数据集(经过裁剪,使检测的物体尽量处于图像中心并占据图片较大位置)进行训练,然后通过固定大小的窗口以及固定步长扫描需要检测的图片,将图片中处于窗口中的图像送入训练好的卷积网络进行检测,判断有无物体输出,最终通过变换扫描窗口的大小,可以检测出有无物体以及物体的大致定位(该算法的定位不一定准确)
卷积滑动窗口检测算法原理
卷积滑动窗口检测算法原理
下面是卷积滑动窗口算法的实现过程,参考了吴恩达教程,如下图所示
1、全连接层转换为卷积层

卷积滑动窗口检测算法原理
如上图所示,输入图片大小为14×14×314\times{14}\times{3},通过16通道的5×55\times{5}的卷积核然后再通过2×22\times{2}的最大池化,变为5×5×165\times{5}\times{16}大小,然后通过2个400节点的全连接层,最后通过softmax层输出y的4个分类各自的概率。
将上述的全连接层转化为卷积的办法则是用400个5×5×165\times{5}\times{16}大小的过滤器将图像大小转化为1×1×4001\times{1}\times{400},在数学上这和全连接层400个单元是等价的,同理后面用相同办法处理,实现了全连接层到卷积层的转化。
2、卷积的滑动窗口实现
卷积滑动窗口检测算法原理
我们假设实际图像为16×1616\times{16},命令滑动窗口大小为14×1414\times14,步长为2,则测试图可以分为四个部分,如上图进行同样计算可以得到2×2×42\times 2\times 4的矩阵,如下图所示
卷积滑动窗口检测算法原理
其中2×22\times 2小矩阵的每个部分和大矩阵中窗口扫描的位置一一对应。
在卷积运算中,可以观察到很多运算都是重复运算,所以没有必要将每个被框中的图像一一检测,而是将整个大图像进行卷积网络运算。
如下图,整个图像被分为64块
卷积滑动窗口检测算法原理
将全连接层转化为卷积层的优点总结如下:
1、不用限制输入图像大小
2、前向传播效率更高,因为在卷积中很多计算是共享的


推荐阅读
author-avatar
mobiledu2502889253
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有