YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载

提出目标:相比低计算量(BFLOP),更着重于优化并行计算,在production system中实现快速计算。

YOLOv4的作者阵容里并没有Joe Redmon,
一作为俄罗斯 Alexey Bochkovskiy ,是 YOLO 的 windows 版本github的作者。
并得到YOLO官方github的认可,
文章也对pytorch 版的yolo做了致谢。

paper YOLOv4: Optimal Speed and Accuracy of Object Detection
107ref 17 pages
链接:https://pan.baidu.com/s/1XrcPHdp2_4c-dKge2Guw4w
提取码:xsxb
翻译
https://tongtianta.site/paper/89863

1 概况

(1)效果

越右上越好。在 MS COCO 数据集上获得了 43.5% 的 AP 值 (65.7% AP50),在 Tesla V100 上实现了 ∼65 FPS 的实时速度。
在取得与 EfficientDet 同等性能的情况下,速度是 EfficientDet 的二倍!
与 YOLOv3 相比,新版本的 AP 和 FPS 分别提高了 10% 和 12%。
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第1张图片

  • 提出适合单GPU 训练一个快速准确的目标检测器。
  • 验证了当前最优 Bag-of-Freebies (训练阶段优化方法)和 Bag-of-Specials(测试阶段优化方法) 目标检测方法在检测器训练过程中的影响。

(2)总体结构

YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第2张图片
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第3张图片
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第4张图片

(3)改进方法

堆了20多种skills进行了对比和选择

分两类: Bag-of-Freebies (训练阶段优化方法)和 Bag-of-Specials(测试阶段优化方法)

训练阶段优化方法

骨干网络训练阶段优化

  • 数据增强Mosaic data augmentation
  • 正则化DropBlock regularization
  • 类标签平滑Class label smoothing
  • Cutmix

骨干网络检测阶段优化

  • Mish 激活 Mish-activation
  • Cross-stage partial connections (CSP)
  • Multi-input weighted residual connections (MiWRC)加权残差连接

detector训练阶段优化

  • 损失CIoU loss
  • Cross mini-Batch Normalization (CmBN)
  • 正则化DropBlock regularization
  • 数据增强Mosaic data augmentation
  • 自对抗训练Self-adversarial-training (SAT)
  • Eliminate grid sensitivity
  • Using multiple anchors for a single ground truth
  • Cosine annealing scheduler [52]
  • 使用遗传算法选择最优超参数Optimal hyper-parameters
  • Random training shapes

detector检测阶段优化

  • Mish 激活 Mish-activation
  • SPP-block
  • SAM-block
  • PAN path-aggregation block
  • DIoU-NMS

(4)对比试验

横向上对比了其他检测算法

efficientdet tridentnet
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第5张图片

纵向上,在自身模型上对上述方法加上与否做了对比,

数据增强方法对比

YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第6张图片
有效方法:

  • CutMix
  • Mosaic
  • LabelSmoothing
  • Mish

YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第7张图片

训练方法对比

YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第8张图片

  • M: Mosaic data augmentation - using the 4-image mosaic during training instead of single image 有效
  • GA: Genetic algorithms - using genetic algorithms for selecting the optimal hyperparameters during network 有效
  • CBN: CmBN - using Cross mini-Batch Normalization for collecting statistics inside the entire batch, instead of collecting statistics inside a single mini-batch 有效
  • CA: Cosine annealing scheduler - altering the learning rate during sinusoid training 有效
  • GIoU, CIoU, DIoU, MSE - using different loss algorithms for bounded box regression CIoU 最有效

对yolov4无效的方法

  • IT: IoU threshold - using multiple anchors for a single ground truth IoU (truth, anchor) > IoU threshold training on the first 10% of time periods
  • S: Eliminate grid sensitivity
  • LS: Class label smoothing - using class label smoothing for sigmoid activation
  • DM: Dynamic mini-batch size - automatic increase of mini-batch size during small resolution training by using Random training shapes
  • OA: Optimized Anchors - using the optimized anchors for training with the 512x512 network resolution

测试阶段方法对比

有效方法

  • PANet
  • SPP
  • SAM
    YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第9张图片

骨干网络选择

cspdarknet优于cspresnext

  • Mish 有效

YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第10张图片

minibatch 大小影响

minibatch越大越好,cspdarknet对minibatch不敏感,利于单卡训练
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第11张图片

2 结构

(1)骨干网络 backbone

**目的:**找出输入网络分辨率、卷积层数量、参数量(滤波器大小滤波器通道/组)和层输入数量(滤波器)四者之间的最优平衡。

在卷积层中使用少量组(1-8 组):CSPResNeXt50 / CSPDarknet53
CSPNet块思路:
类似块级别的跳层连接。把上一部分层分成两部分,分别不被处理和处理后,在concat
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第12张图片

CSPNet开源了一部分cfg文件,其中一部分cfg可以直接使用AlexeyAB版Darknet还有ultralytics的yolov3运行。

https://github.com/WongKinYiu/CrossStagePartialNetworks

利用netron可视化cfg,可以看到cspdarknet 一个netron的结构

左侧不处理,最后和右侧concat
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第13张图片

csp介绍

(2)Neck 额外块

理解为多尺度特征融合
目的是挑选能够增加感受野的额外块(additional block),以及针对不同级别的检测器从不同骨干层中挑选最佳的参数聚合方法,如 FPN、PAN、ASFF 和 BiFPN 网络。

SPP块

Spatial pyramid pooling in deep convolutional networks for visual recognition
研究者在 CSPDarknet53 上添加了 SPP 块,因为它能够极大地增加感受野,分离出最显著的上下文特征,并且几乎没有降低网络运行速度。

分别使用1,5,9,13的maxpool
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第14张图片

PANet

Path aggregation network for instance segmentation
针对不同级别的检测器,挑选 PANet 作为对不同backbone层进行参数聚合的方法,而放弃了 YOLOv3 中使用的 FPN 网络。

concat 能够提供更丰富的信息。
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第15张图片

SAM

注意力模块主要分为通道注意和点注意,这两种注意模型的代表是 SE [29]和空间注意模块(SAM)[ 85]。尽管SE模块可以将ImageNet图像分类任务中的ResNet50的功能提高1%至top-1准确性,但其代价是仅将计算工作量增加2%,但是在GPU上通常会增加大约10%的推理时间,因此更适合在移动设备中使用。
SAM它只需要支付0.1%的额外费用即可在ImageNet图像分类任务上将ResNet50-SE的top-1准确性提高0.5%。最好的是,它根本不影响GPU上的推理速度。
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第16张图片
并没有看到sam在网络里的使用?

Mish激活函数

平滑的激活函数允许更好的信息深入神经网络,从而得到更好的准确性和泛化。
直接看Mish的代码会更简单一点,简单总结一下,Mish=x * tanh(ln(1+e^x))。

其他的激活函数,ReLU是x = max(0,x),Swish是x * sigmoid(x)。

硬件不友好,提高的一两个点精度的代价竟然是几十几百倍的硬件复杂度。
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第17张图片

# -*- coding: utf-8 -*-
import torch
import torch.nn as nn
import torch.nn.functional as F
from matplotlib import pyplot as plt

class Mish(nn.Module):
    def __init__(self):
        super().__init__()
        print("Mish activation loaded...")
    def forward(self,x):
        x = x * (torch.tanh(F.softplus(x)))
        return x

mish = Mish()
x = torch.linspace(-10,10,1000)
y = mish(x)

plt.plot(x,y)
plt.grid()
plt.show()

(3)Head

YOLOV3 基于anchor的预测方法

3 改进方法

(1) 训练阶段优化方法

数据增强方法

mosaic

新型数据增强方法 Mosaic 混合了 4 张训练图像,而 CutMix 只混合了两张输入图像,具体如下图所示:
YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第18张图片

自对抗训练(SAT)

也是一种新的数据增强方法,它包括两个阶段。第一个阶段中,神经网络更改原始图像;第二阶段中,训练神经网络以正常方式在修改后的图像上执行目标检测任务。

BN

YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第19张图片

(2) 测试阶段优化方法

code 测试

默认运行过之前版本
https://blog.csdn.net/qq_35608277/article/details/79468896?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158842468819724848311078%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=158842468819724848311078&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~rank_v25-2

编译发现报错

根据机器情况,把.vcxproj cuda版本改一下,v10.

nvcc fatal : Unsupported gpu architecture 'code=sm_75‘
gpu算力对应不上

把.vcxproj 关于cuda的改一下,去掉compute部分,

104行和154行
在这里插入图片描述

YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第20张图片
即可编译通过

用下载的权重(一般是coco数据集的,所以用了coco.data )

cmd:

darknet.exe detector test data/test_coco.data  cfg/yolov4.cfg weights/yolov4.weights
net.optimized_memory = 0
mini_batch = 1, batch = 8, time_steps = 1, train = 0
   layer   filters  size/strd(dil)      input                output
   0 conv     32       3 x 3/ 1    608 x 608 x   3 ->  608 x 608 x  32 0.639 BF
   1 conv     64       3 x 3/ 2    608 x 608 x  32 ->  304 x 304 x  64 3.407 BF
   2 conv     64       1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  64 0.757 BF
   3 route  1                                      ->  304 x 304 x  64
   4 conv     64       1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  64 0.757 BF
   5 conv     32       1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  32 0.379 BF
   6 conv     64       3 x 3/ 1    304 x 304 x  32 ->  304 x 304 x  64 3.407 BF
   7 Shortcut Layer: 4,  wt = 0, wn = 0, outputs: 304 x 304 x  64 0.006 BF
   8 conv     64       1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  64 0.757 BF
   9 route  8 2                                    ->  304 x 304 x 128
  10 conv     64       1 x 1/ 1    304 x 304 x 128 ->  304 x 304 x  64 1.514 BF
  11 conv    128       3 x 3/ 2    304 x 304 x  64 ->  152 x 152 x 128 3.407 BF
  12 conv     64       1 x 1/ 1    152 x 152 x 128 ->  152 x 152 x  64 0.379 BF
  13 route  11                                     ->  152 x 152 x 128
  14 conv     64       1 x 1/ 1    152 x 152 x 128 ->  152 x 152 x  64 0.379 BF
  15 conv     64       1 x 1/ 1    152 x 152 x  64 ->  152 x 152 x  64 0.189 BF
  16 conv     64       3 x 3/ 1    152 x 152 x  64 ->  152 x 152 x  64 1.703 BF
  17 Shortcut Layer: 14,  wt = 0, wn = 0, outputs: 152 x 152 x  64 0.001 BF
  18 conv     64       1 x 1/ 1    152 x 152 x  64 ->  152 x 152 x  64 0.189 BF
  19 conv     64       3 x 3/ 1    152 x 152 x  64 ->  152 x 152 x  64 1.703 BF
  20 Shortcut Layer: 17,  wt = 0, wn = 0, outputs: 152 x 152 x  64 0.001 BF
  21 conv     64       1 x 1/ 1    152 x 152 x  64 ->  152 x 152 x  64 0.189 BF
  22 route  21 12                                  ->  152 x 152 x 128
  23 conv    128       1 x 1/ 1    152 x 152 x 128 ->  152 x 152 x 128 0.757 BF
  24 conv    256       3 x 3/ 2    152 x 152 x 128 ->   76 x  76 x 256 3.407 BF
  25 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF
  26 route  24                                     ->   76 x  76 x 256
  27 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF
  28 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF
  29 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF
  30 Shortcut Layer: 27,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
  31 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF
  32 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF
  33 Shortcut Layer: 30,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
  34 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF
  35 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF
  36 Shortcut Layer: 33,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
  37 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF
  38 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF
  39 Shortcut Layer: 36,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
  40 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF
  41 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF
  42 Shortcut Layer: 39,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
  43 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF
  44 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF
  45 Shortcut Layer: 42,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
  46 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF
  47 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF
  48 Shortcut Layer: 45,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
  49 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF
  50 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF
  51 Shortcut Layer: 48,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF
  52 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF
  53 route  52 25                                  ->   76 x  76 x 256
  54 conv    256       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 256 0.757 BF
  55 conv    512       3 x 3/ 2     76 x  76 x 256 ->   38 x  38 x 512 3.407 BF
  56 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF
  57 route  55                                     ->   38 x  38 x 512
  58 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF
  59 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF
  60 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF
  61 Shortcut Layer: 58,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
  62 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF
  63 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF
  64 Shortcut Layer: 61,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
  65 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF
  66 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF
  67 Shortcut Layer: 64,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
  68 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF
  69 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF
  70 Shortcut Layer: 67,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
  71 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF
  72 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF
  73 Shortcut Layer: 70,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
  74 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF
  75 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF
  76 Shortcut Layer: 73,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
  77 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF
  78 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF
  79 Shortcut Layer: 76,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
  80 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF
  81 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF
  82 Shortcut Layer: 79,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF
  83 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF
  84 route  83 56                                  ->   38 x  38 x 512
  85 conv    512       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 512 0.757 BF
  86 conv   1024       3 x 3/ 2     38 x  38 x 512 ->   19 x  19 x1024 3.407 BF
  87 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF
  88 route  86                                     ->   19 x  19 x1024
  89 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF
  90 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF
  91 conv    512       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x 512 1.703 BF
  92 Shortcut Layer: 89,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF
  93 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF
  94 conv    512       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x 512 1.703 BF
  95 Shortcut Layer: 92,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF
  96 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF
  97 conv    512       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x 512 1.703 BF
  98 Shortcut Layer: 95,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF
  99 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF
 100 conv    512       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x 512 1.703 BF
 101 Shortcut Layer: 98,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF
 102 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF
 103 route  102 87                                 ->   19 x  19 x1024
 104 conv   1024       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x1024 0.757 BF
 105 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF
 106 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF
 107 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF
 108 max                5x 5/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.005 BF
 109 route  107                                            ->   19 x  19 x 512
 110 max                9x 9/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.015 BF
 111 route  107                                            ->   19 x  19 x 512
 112 max               13x13/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.031 BF
 113 route  112 110 108 107                        ->   19 x  19 x2048
 114 conv    512       1 x 1/ 1     19 x  19 x2048 ->   19 x  19 x 512 0.757 BF
 115 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF
 116 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF
 117 conv    256       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 256 0.095 BF
 118 upsample                 2x    19 x  19 x 256 ->   38 x  38 x 256
 119 route  85                                     ->   38 x  38 x 512
 120 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF
 121 route  120 118                                ->   38 x  38 x 512
 122 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF
 123 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF
 124 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF
 125 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF
 126 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF
 127 conv    128       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 128 0.095 BF
 128 upsample                 2x    38 x  38 x 128 ->   76 x  76 x 128
 129 route  54                                     ->   76 x  76 x 256
 130 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF
 131 route  130 128                                ->   76 x  76 x 256
 132 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF
 133 conv    256       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 256 3.407 BF
 134 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF
 135 conv    256       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 256 3.407 BF
 136 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF
 137 conv    256       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 256 3.407 BF
 138 conv    255       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 255 0.754 BF
 139 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.20
nms_kind: greedynms (1), beta = 0.600000
 140 route  136                                            ->   76 x  76 x 128
 141 conv    256       3 x 3/ 2     76 x  76 x 128 ->   38 x  38 x 256 0.852 BF
 142 route  141 126                                ->   38 x  38 x 512
 143 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF
 144 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF
 145 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF
 146 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF
 147 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF
 148 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF
 149 conv    255       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 255 0.377 BF
 150 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.10
nms_kind: greedynms (1), beta = 0.600000
 151 route  147                                            ->   38 x  38 x 256
 152 conv    512       3 x 3/ 2     38 x  38 x 256 ->   19 x  19 x 512 0.852 BF
 153 route  152 116                                ->   19 x  19 x1024
 154 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF
 155 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF
 156 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF
 157 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF
 158 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF
 159 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF
 160 conv    255       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 255 0.189 BF
 161 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.05
nms_kind: greedynms (1), beta = 0.600000
Total BFLOPS 128.459
avg_outputs = 1068395
 Allocate additional workspace_size = 33.55 MB
Loading weights from weights/yolov4.weights...
 seen 64, trained: 32032 K-images (500 Kilo-batches_64)
Done! Loaded 162 layers from weights-file
Enter Image Path:

YOLOV4 论文原理 模型分析 win10 vs2015 cuda9 opencv3.3 代码测试 网盘权重yolov4.conv.137 yolov4.weight下载_第21张图片
data/dog.jpg: Predicted in 47.783000 milli-seconds.
bicycle: 91%
dog: 98%
truck: 92%
pottedplant: 32%
多检测出了个 pottedplant 盆栽,更加敏感了,
单看确实很符合盆栽特性,但yolo不会对周围语义判断。
在1070上速度20fps,慢了

ref
https://www.cnblogs.com/pprp/p/12771430.html

你可能感兴趣的:(深度学习)