YOLOv3 SPP源码解析(网络搭建)

视频链接地址

前期准备知识

filter和channel的具体意义

  • 个人理解:filter英文直译为滤波器,主要是针对与卷积核所说的,其数量和卷积核的个数相等,可以将其感性理解为相机传感器中的分层滤色片,每一个卷积核对应一种不同的滤色片,也就能从图像上提取出不同的信息。经过卷积核提取出来的一层信息我们称之为feature map(特征图)
  • channel英文直译为深度,在深度学习中我们有channel、in_channel、out_channel,其中channel一般指矩阵的深度信息,也就是它的层数。in_channel、out_channel也是针对矩阵而言的,但是其数量关系和卷积核又相关,具体数量关系可以见下图。


  • 在代码中我们有如下所示关系。
    in_channels(这一层输入矩阵的深度)= output_filters[-1](上一层输出矩阵的深度/上一层卷积核的个数)
    out_channels(这一层输出矩阵的深度)= filters(这一层卷积核的个数)

    参考文献,这篇博客讲的很清楚,可以详细阅读。

代码解析

  • route模块
    i对应的为route对应的索引
    因为在最初增加了一个图像输入层,也就是第一张图片里的output_filters=[3],所以我们网络架构的第一层对应的索引就从0到了1,之后的以此类推,简而言之就是我们网络在最初的位置多加了一层,所以索引顺序数时要+1,逆序数则不用
    区分layer和channel,layer说的是第几层,也就是总体结构中的层数,channel为每个layer层对应的深度channel



  • shortcut模块
    这里的output是记录的每一个模块的输出,要和output_layers进行区



  • create_grid模块



    其中实现框为预测框,虚线框为我们的先验框,而作为真实标注框(GT)图中并未给出,l为预测值,g为真实值

  • torch.meshgrid模块



  • 后续内容可以根据代码注释观看,需要对代码熟悉之后才能跟得上思路
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容