当前位置:网站首页>深度学习——卷积的滑动窗口实现
深度学习——卷积的滑动窗口实现
2022-06-30 07:22:00 【头发没了还会再长】
卷积的滑动窗口
全连接层到卷积层的转化
为了构建滑动窗口的卷积应用,首先要知道如何把神经网络的全连接层转化成卷积层。
假设对象检测算法输入一个 14×14×3 的图像,在这里过滤器大小为 5×5,数量是 16,14×14×3 的图像在过滤器处理之后映射为 10×10×16。然后通过参数为 2×2 的最大池化操作,图像减小到 5×5×16。然后添加一个连接 400 个单元的全连接层,接着再添加一个全连接层,最后通过 softmax 单元输出𝑦。
现在演示的就是如何把这些全连接层转化为卷积层
画一个这样的卷积网络,它的前几层和之前的一样,而对于下一层,也就是这个全连接层,我们可以用 5×5 的过滤器来实现,数量是 400 个,输入图像大小为 5×5×16,用 5×5 的过滤器对它进行卷积操作,过滤器实际上是 5×5×16,因为在卷积过程中,过滤器会遍历这 16 个通道,所以这两处的通道数量必须保持一致,输出结果为 1×1。假设应用 400 个这样的 5×5×16 过滤器,输出维度就是 1×1×400,我们不再把它看作一个含有 400 个节点的集合,而是一个 1×1×400的输出层。从数学角度看,它和全连接层是一样的,因为这 400 个节点中每个节点都有一个5×5×16 维度的过滤器,所以每个值都是上一层这些 5×5×16 激活值经过某个任意线性函数的输出结果。
我们再添加另外一个卷积层,这里用的是 1×1 卷积,假设有 400 个 1×1的过滤器,在这 400 个过滤器的作用下,下一层的维度是 1×1×400,它其实就是上个网络中的这一全连接层。最后经由 1×1 过滤器的处理,得到一个 softmax 激活值,通过卷积网络,我们最终得到这个 1×1×4 的输出层,而不是这 4 个数字
通过卷积实现滑动窗口对象检测算法
假设向滑动窗口卷积网络输入 14×14×3 的图片,和前面一样,神经网络最后的输出层,即softmax单元的输出是1×1×4.
假设输入给卷积网络的图片大小是 14×14×3,测试集图片是 16×16×3,现在给这个输入图片加上黄色条块,在最初的滑动窗口算法中,你会把这片蓝色区域输入卷积网络(红色笔标记)生成 0 或 1 分类。接着滑动窗口,步幅为 2 个像素,向右滑动 2 个像素,将这个绿框区域输入给卷积网络,运行整个卷积网络,得到另外一个标签 0 或 1。继续将这个橘色区域输入给卷积网络,卷积后得到另一个标签,最后对右下方的紫色区域进行最后一次卷积操作。我们在这个 16×16×3 的小图像上滑动窗口,卷积网络运行了 4 次,于是输出了了 4 个标签。
最终,在输出层这 4 个子方块中,蓝色的是图像左上部分14×14 的输出(红色箭头标识),右上角方块是图像右上部分(绿色箭头标识)的对应输出,左下角方块是输入层左下角(橘色箭头标识),也就是这个 14×14 区域经过卷积网络处理后的结果,同样,右下角这个方块是卷积网络处理输入层右下角 14×14 区域(紫色箭头标识)的结果。
所以该卷积操作的原理是我们不需要把输入图像分割成四个子集,分别执行前向传播,而是把它们作为一张图片输入给卷积网络进行计算,其中的公共区域可以共享很多计算,就像这里我们看到的这个 4 个 14×14 的方块一样。
再看一个更大的图片样本,假如对一个 28×28×3 的图片应用滑动窗口操作,如果以同样的方式运行前向传播,最后得到 8×8×4 的结果.因为最大池化参数为 2,相当于以大小为 2 的步幅在原始图片上应用神经网络。
总结:
在图片上剪切出一块区域,假设它的大小是 14×14,把它输入到卷积网络。继续输入下一块区域,大小同样是 14×14,重复操作,直到某个区域识别到汽车。但是正如在前一页所看到的,我们不能依靠连续的卷积操作来识别图片中的汽车,比如,我们可以对大小为 28×28 的整张图片进行卷积操作,一次得到所有预测值,如果足够幸运,神经网络便可以识别出汽车的位置。
以上就是在卷积层上应用滑动窗口算法的内容,它提高了整个算法的效率。不过这种算法仍然存在一个缺点,就是边界框的位置可能不够准确。
边栏推荐
- Processes, jobs, and services
- Implementation of double linked list in C language
- Program acceleration
- Self study notes -- use of 74h573
- Solve the linear equation of a specified point and a specified direction
- 期末複習-PHP學習筆記3-PHP流程控制語句
- MCU essay
- Calculate Euler angle according to rotation matrix R yaw, pitch, roll source code
- Variable storage unit and pointer
- Examen final - notes d'apprentissage PHP 3 - Déclaration de contrôle du processus PHP
猜你喜欢
November 22, 2021 [reading notes] - bioinformatics and functional genomics (Section 5 of Chapter 5 uses a comparison tool similar to blast to quickly search genomic DNA)
Basic knowledge points
Disk space, logical volume
November 16, 2021 [reading notes] - macro genome analysis process
Cadence physical library lef file syntax learning [continuous update]
November 22, 2021 [reading notes] - bioinformatics and functional genomics (Chapter 5, section 4, hidden Markov model)
深度学习——嵌入矩阵and学习词嵌入andWord2Vec
right four steps of SEIF SLAM
Global digital industry strategy and policy observation in 2021 (China Academy of ICT)
Spring Festival inventory of Internet giants in 2022
随机推荐
Commands and permissions for directories and files
Basic theory of four elements and its application
Final review -php learning notes 1
Video player (I): process
2021 China Enterprise Cloud index insight Report
Basic knowledge points
Tencent and Fudan University "2021-2022 yuan universe report" with 102 yuan universe collections
November 22, 2021 [reading notes] - bioinformatics and functional genomics (Section 5 of Chapter 5 uses a comparison tool similar to blast to quickly search genomic DNA)
Network, network card and IP configuration
Quick placement of devices by module in Ad
期末複習-PHP學習筆記5-PHP數組
Halcon: read the camera and binary it
Final review -php learning notes 4-php custom functions
Wangbohua: development situation and challenges of photovoltaic industry
2021 private equity fund market report (62 pages)
2022.01.20 [bug note] | qiime2: an error was encoded while running dada2 in R (return code 1)
How to quickly delete routing in Ad
6月底了,可以开始做准备了,不然这么赚钱的行业就没你的份了
RT thread kernel application development message queue experiment
How to batch modify packaging for DXP schematic diagram