首页 > 其他分享 >mobileNetV1、2、3与YOLOV4

mobileNetV1、2、3与YOLOV4

时间:2023-09-27 15:34:15浏览次数:31  
标签:YOLOV4 16 卷积 mobileNetV1 Inverted 1x1 block 通道

一、mobileV1

MobileNet模型是Google针对手机等嵌入式设备提出的一种轻量级的深层神经网络,其使用的核心思想便是depthwise separable convolution(深度可分离卷积块)能够有效降低参数量。

  对于常规卷积:假设有一个3×3大小的卷积层,其输入通道为16、输出通道为32。具体为,32个3×3大小的卷积核会遍历16个通道中的每个数据,最后可得到所需的32个输出通道,所需参数为16×32×3×3=4608个。

  对于深度可分离卷积:用16个3×3大小的卷积核分别遍历16通道的数据,得到了16个特征图谱。在融合操作之前,接着用32个1×1大小的卷积核遍历这16个特征图谱(进行升维),所需参数为16×3×3+16×32×1×1=656个。
可以看出来depthwise separable convolution可以减少模型的参数。

  如下这张图就是depthwise separable convolution的结构;可以看到深度可分离卷积包含:深度可分离卷积核、1*1卷积。

 

   如下图,整个网络几乎都是有深度可分离卷积构成。

二、mobileNetV2

  相对V1的改进:有人在实际使用的时候, 发现深度卷积部分的卷积核比较容易训废掉:训完之后发现深度卷积训出来的卷积核有不少是0;将ReLU替换成线性激活函数。

MobileNetV2是MobileNet的升级版,它具有一个非常重要的特点就是使用了Inverted resblock,整个mobilenetv2都由Inverted resblock组成。

Inverted resblock可以分为两个部分:

  •   左边是主干部分,首先利用1x1卷积进行升维,然后利用3x3深度可分离卷积进行特征提取,然后再利用1x1卷积降维。
  •   右边是残差边部分,输入和输出直接相接。

 

  整体网络结构如下:(其中Inverted resblock进行的操作就是上述结构)

  补充:参考:https://blog.csdn.net/Roaddd/article/details/111416386?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.no_search_link&spm=1001.2101.3001.4242.1&utm_relevant_index=2

 Inverted Residual(逆残差)

原始Residual block和Inverted residual block对比

(a)Original residual block:reduce – transfer – expand (中间窄两头宽)
Residual block先用1x1卷积降通道过ReLU,再3x3卷积过ReLU,最后再用1x1卷积过ReLU恢复通道,并和输入相加。之所以要1*1卷积降通道,是为了减少计算量,不然中间的3x3卷积计算量太大。所以Residual block是中间窄两头宽。
(b)Inverted residual block:expand – transfer – reduce (中间宽两头窄)
在Inverted Residual block中,3x3卷积变成Depthwise了,计算量很少了,所以通道数可以多一点,效果更好,所以通过1x1卷积先提升通道数,再Depthwise3x3卷积,最后用1x1卷积降低通道数。两端的通道数都很小,所以1x1卷积升通道和降通道计算量都并不大,而中间的通道数虽然多,但是Depthwise 的卷积计算量也不大。下图即为具体实例:

   

– 为什么要使用Inverted residual
skip connection这种bottleneck的结构被证明很有效,所以想用。但是如果像以前那样先压缩channal,channal数本来就少,再压没了,所以不如先增大后减少。

三、mobileNetV3

  mobilenetV3使用了特殊的bneck结构。bneck结构如下图所示:

 

 它综合了以下四个特点:
a、MobileNetV2的具有线性瓶颈的逆残差结构(the inverted residual with linear bottleneck)。

 

 

  即先利用1x1卷积进行升维度,再进行下面的操作,并具有残差边。

b、MobileNetV1的深度可分离卷积(depthwise separable convolutions)。

 

 c、轻量级的注意力模型。

  这个注意力机制的作用方式是调整每个通道的权重。

举个例子:SE注意力机制流程:特征图(h,w,c)经过全局平均pooling之后,得到维度为1,1,c的特征图,通过第一个FC+Relu将其调整至维度为C/4的特征图,经过第二个FC+hard-sigmoid将其调整至维度为(1,1,C)的特征图,然后与原特征图每个通道对应相乘。

d、利用h-swish代替swish函数,用hard-sigmoid代替sigmoid
  在结构中使用了h-swish激活函数,代替swish函数,减少运算量,提高性能,便于移动端量化。

 

h-swish:https://blog.csdn.net/Harvey_Hawk/article/details/112241168

RELU6:https://blog.csdn.net/jsk_learner/article/details/102822001

  下图为整个mobilenetV3的结构图:

如何看懂这个表呢?我们从每一列出发:
第一列Input代表mobilenetV3每个特征层的shape变化;
第二列Operator代表每次特征层即将经历的block结构,我们可以看到在MobileNetV3中,特征提取经过了许多的bneck结构;
第三、四列分别代表了bneck内逆残差结构上升后的通道数、输入到bneck时特征层的通道数。
第五列SE代表了是否在这一层引入注意力机制。
第六列NL代表了激活函数的种类,HS代表h-swish,RE代表RELU。
第七列s代表了每一次block结构所用的步长。

 

标签:YOLOV4,16,卷积,mobileNetV1,Inverted,1x1,block,通道
From: https://www.cnblogs.com/feiyull/p/15459314.html

相关文章

  • 深度学习(MobileNetV1)
    整体网络结构如下:最关键的改进是使用了一个叫深度可分离卷积的结构,将原始的3*3卷积升通道的操作分解成了两部分:第一部分是保持通道不变的情况下做3*3卷积。第二部分是使用1*1的卷积做通道提升操作。结果就是能够减少很多的运算量。下面依然是一个猫狗大战的训练程序,并且增加......
  • YOLOv5/YOLOV4中的SPP/SPPF
    目录一、SPP的应用的背景二、SPP结构分析三、SPPF结构分析四、YOLOv5中SPP/SPPF结构源码解析(内含注释分析)一、SPP的应用的背景在卷积神经网络中我们经常看到固定输入的设计,但是如果我们输入的不能是固定尺寸的该怎么办呢?通常来说,我们有以下几种方法:(1)对输入进行resize......
  • yolov4
     yolov4论文:《YOLOv4:OptimalSpeedandAccuracyofObjectDetection》yolov4整体框架借鉴b站一位up的图: 相比于yolov3改进之处网络结构:Backbone:DarkNet53=>CSPDarkNet53Neck:SPP,PANHead:Yolov3没有改优化策略:Mosaic数据增强LabelSmoothing平滑CIOU......
  • [重读经典论文]YOLOv4
    推荐博客:YOLOv4网络详解配套视频:YOLOv4网络详解补充知识:3.1YOLO系列理论合集(YOLOv1~v3) 中的yolov3spp理论讲解(包括CIoU以及FocalLoss)(完)......
  • 基于YOLOv4的目标检测系统(附MATLAB代码+GUI实现)
    摘要:本文介绍了一种MATLAB实现的目标检测系统代码,采用YOLOv4检测网络作为核心模型,用于训练和检测各种任务下的目标,并在GUI界面中对各种目标检测结果可视化。文章详细介绍了YOLOv4的实现过程,包括算法原理、MATLAB实现代码、训练数据集、训练过程和图形用户界面。在GUI界面中,用户......
  • m基于简化后的轻量级yolov4深度学习网络农作物检测算法matlab仿真
    1.算法描述        YOLOv4的深层网络包括SPP模块、PANet模块、YOLOHead模块和部分卷积,其主要作用是加强目标特征提取并获取预测结果。SPP模块的输入端和输出端各连接一个三次卷积块,每个三次卷积块包含2个1×1卷积和1个3×3卷积。PANet模块包含特征层堆......
  • Yolov4的框架理解
                                                        ......
  • 【SDK案例系列 07】基于 MindX SDK + Pytorch YoLoV4的目标检测
    源码下载:https://gitee.com/ai_samples/atlas_mindxsdk_samples/blob/master/contrib/cv/object_detection/image_yolov4一、安装昇腾驱动先安装昇腾驱动,昇腾驱动请参考......
  • 万字长文解析Scaled YOLOv4模型(YOLO变体模型)
    摘要1,介绍2,相关工作3,模型缩放原则4,Scaled-YOLOv45,实验总结Reference参考资料ScaledYOLOv4的二作就是YOLOv4的作者AlexeyBochkovskiy。摘要作者提出了......
  • 万字长文解析Scaled YOLOv4模型(YOLO变体模型)
    ScaledYOLOv4模型最主要的贡献在于通过理论系统分析和实验证了模型缩放的原则,进一步拓展了CSPNet方法,并基于此设计了一个全新的Scaled-YOLOv4,Scaled-YOLOv4......