当前位置: 首页 > 网络应用技术

死亡mmdet的yolov3

时间:2023-03-06 15:09:20 网络应用技术

  本文读取MMDetection v2.23.0版本的Yolov3版本。我们选择config/yolo/yolov3_d53_320_273e_coco.py作为分析对象,然后分析Mobilenet Yolo的主链。

  MMDET将目标检测过程分为人类结构,并将其分为三个过程:骨干,Next和Head.Yolov3还包括三个部分:骨干,下一个和头部。其参数和计算的数量和计算数量如下。MMDET将目标检测过程分为人类结构,并将其分为三个过程:骨干,NEXT和HEAD.YOLOV3还包括三个部分:骨干,下一个和下一个和下一个和头。其参数和计算的数量和计算数量如下。

  1280x800的三个通道的图像用作参数和漂浮次数的基础。

  没有详细的分析,从config/yolo/yolo/yolov3_d53_320_273e_coco.py的Train_Pipeline中,图片已经通过了Miniourandomcrop的预处理操作

  mmdet/型号/骨架/darknet.py

  量表的输出用作后续的yolov3neck输入。

  configs/yolo/yolov3_d53_mstrain-608_273e_coco.py的darknet描述如下,out_indices =(3、4、5),因此,请选择3、4和5的输出作为backbone网络的输出。

  mmdetection/mmdet/型号/骨架/darknet.py.py

  Darknet53中有5个CON_RES_BLOCK

  在Darknet中,通常在卷积层后面进行重视。以下make_conv_res_block函数将实现此功能。3x3卷积的卷积为2,卷积层的数量等于Resblock的输入和输出通道。

  /mmdet/models/backbones/darknet.py#l180 conv_res_block代码如下。

  Darknet53的重新块如下。首先,通过1x1卷积,然后添加3x3卷积,然后添加。在这次重视之后,输入和输出通道的通道数和宽度不变。

  Netron视觉残留结构F(X)= X + G(X)

  Resblock的代码为/mmdet/models/backbones/darknet.py#l14。每个重块包含两个卷积模块。输入和输出是作为最终输出的添加。在yolov3纸中,泄漏驱动式激活层的定位,第一卷积模块的卷积核是第二个卷积的一半。第一卷积为1x1,第二个卷积为3x3。

  以下红色框架部署是yolov3的颈部部分,可以被视为yolov3的简化版本。

  %yolov3neck14.71 M23.909%33.89417.485%

  MMDET/型号/脖子/YOLO_NECK.PY#l65的代码

  Yolov3neck可以被视为FPN的简化版本。它将从Backbone网络DarkNet获得特征提取结果,并执行一些样品和系列,以适应不同的比例特别融合,并将其输出到Yolov3head

  检测块由六个卷积层组成1x1xn,3x3x2n,1x1xn,3x3x2n,1x1xn,3x3x2n。第一个检测板的第一个卷积层是1x1x256。

  Yolov3的头定义了实际值的编码。输出为4维张量(batch_size,5+num_classes,高度,宽度)。在本文中,num_classes = 1。

  CORVS_BRIDGE6.197 M10.072%14.1777.314%CORVS_PRED0.032 M0.053%0.129Flopsyolov3head6.229 M10.125%14.3077.380%

  您可以在基于基础和bboxtestmixin中同时看到yolov3head继承

  mmdet/models/dense_heads/yolof_head.py#l43是yolov3head的代码。