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

news/2024/11/14 11:58:02/

提出目标:相比低计算量(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%。
在这里插入图片描述

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

(2)总体结构

网络结构细节
https://blog.csdn.net/weixin_41560402/article/details/106119774
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(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
在这里插入图片描述

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

数据增强方法对比

在这里插入图片描述
有效方法:

  • CutMix
  • Mosaic
  • LabelSmoothing
  • Mish

在这里插入图片描述

训练方法对比

在这里插入图片描述

  • 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
    在这里插入图片描述

骨干网络选择

cspdarknet优于cspresnext

  • Mish 有效

在这里插入图片描述

minibatch 大小影响

minibatch越大越好,cspdarknet对minibatch不敏感,利于单卡训练
在这里插入图片描述

2 结构

(1)骨干网络 backbone

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

在卷积层中使用少量组(1-8 组):CSPResNeXt50 / CSPDarknet53
CSPNet块思路:
类似块级别的跳层连接。把上一部分层分成两部分,分别不被处理和处理后,在concat
在这里插入图片描述

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

https://github.com/WongKinYiu/CrossStagePartialNetworks

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

左侧不处理,最后和右侧concat
在这里插入图片描述

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
在这里插入图片描述

PANet

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

concat 能够提供更丰富的信息。
在这里插入图片描述

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上的推理速度。
在这里插入图片描述
并没有看到sam在网络里的使用?

Mish激活函数

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

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

硬件不友好,提高的一两个点精度的代价竟然是几十几百倍的硬件复杂度。
在这里插入图片描述

# -*- coding: utf-8 -*-
import torch
import torch.nn as nn
import torch.nn.functional as F
from matplotlib import pyplot as pltclass Mish(nn.Module):def __init__(self):super().__init__()print("Mish activation loaded...")def forward(self,x):x = x * (torch.tanh(F.softplus(x)))return xmish = 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 只混合了两张输入图像,具体如下图所示:
在这里插入图片描述

自对抗训练(SAT)

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

BN

在这里插入图片描述

(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行
在这里插入图片描述

在这里插入图片描述
即可编译通过

用下载的权重(一般是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 = 0layer   filters  size/strd(dil)      input                output0 conv     32       3 x 3/ 1    608 x 608 x   3 ->  608 x 608 x  32 0.639 BF1 conv     64       3 x 3/ 2    608 x 608 x  32 ->  304 x 304 x  64 3.407 BF2 conv     64       1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  64 0.757 BF3 route  1                                      ->  304 x 304 x  644 conv     64       1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  64 0.757 BF5 conv     32       1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  32 0.379 BF6 conv     64       3 x 3/ 1    304 x 304 x  32 ->  304 x 304 x  64 3.407 BF7 Shortcut Layer: 4,  wt = 0, wn = 0, outputs: 304 x 304 x  64 0.006 BF8 conv     64       1 x 1/ 1    304 x 304 x  64 ->  304 x 304 x  64 0.757 BF9 route  8 2                                    ->  304 x 304 x 12810 conv     64       1 x 1/ 1    304 x 304 x 128 ->  304 x 304 x  64 1.514 BF11 conv    128       3 x 3/ 2    304 x 304 x  64 ->  152 x 152 x 128 3.407 BF12 conv     64       1 x 1/ 1    152 x 152 x 128 ->  152 x 152 x  64 0.379 BF13 route  11                                     ->  152 x 152 x 12814 conv     64       1 x 1/ 1    152 x 152 x 128 ->  152 x 152 x  64 0.379 BF15 conv     64       1 x 1/ 1    152 x 152 x  64 ->  152 x 152 x  64 0.189 BF16 conv     64       3 x 3/ 1    152 x 152 x  64 ->  152 x 152 x  64 1.703 BF17 Shortcut Layer: 14,  wt = 0, wn = 0, outputs: 152 x 152 x  64 0.001 BF18 conv     64       1 x 1/ 1    152 x 152 x  64 ->  152 x 152 x  64 0.189 BF19 conv     64       3 x 3/ 1    152 x 152 x  64 ->  152 x 152 x  64 1.703 BF20 Shortcut Layer: 17,  wt = 0, wn = 0, outputs: 152 x 152 x  64 0.001 BF21 conv     64       1 x 1/ 1    152 x 152 x  64 ->  152 x 152 x  64 0.189 BF22 route  21 12                                  ->  152 x 152 x 12823 conv    128       1 x 1/ 1    152 x 152 x 128 ->  152 x 152 x 128 0.757 BF24 conv    256       3 x 3/ 2    152 x 152 x 128 ->   76 x  76 x 256 3.407 BF25 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF26 route  24                                     ->   76 x  76 x 25627 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF28 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF29 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF30 Shortcut Layer: 27,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF31 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF32 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF33 Shortcut Layer: 30,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF34 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF35 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF36 Shortcut Layer: 33,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF37 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF38 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF39 Shortcut Layer: 36,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF40 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF41 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF42 Shortcut Layer: 39,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF43 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF44 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF45 Shortcut Layer: 42,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF46 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF47 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF48 Shortcut Layer: 45,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF49 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF50 conv    128       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 128 1.703 BF51 Shortcut Layer: 48,  wt = 0, wn = 0, outputs:  76 x  76 x 128 0.001 BF52 conv    128       1 x 1/ 1     76 x  76 x 128 ->   76 x  76 x 128 0.189 BF53 route  52 25                                  ->   76 x  76 x 25654 conv    256       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 256 0.757 BF55 conv    512       3 x 3/ 2     76 x  76 x 256 ->   38 x  38 x 512 3.407 BF56 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF57 route  55                                     ->   38 x  38 x 51258 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF59 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF60 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF61 Shortcut Layer: 58,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF62 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF63 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF64 Shortcut Layer: 61,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF65 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF66 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF67 Shortcut Layer: 64,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF68 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF69 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF70 Shortcut Layer: 67,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF71 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF72 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF73 Shortcut Layer: 70,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF74 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF75 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF76 Shortcut Layer: 73,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF77 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF78 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF79 Shortcut Layer: 76,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF80 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF81 conv    256       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 256 1.703 BF82 Shortcut Layer: 79,  wt = 0, wn = 0, outputs:  38 x  38 x 256 0.000 BF83 conv    256       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 256 0.189 BF84 route  83 56                                  ->   38 x  38 x 51285 conv    512       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 512 0.757 BF86 conv   1024       3 x 3/ 2     38 x  38 x 512 ->   19 x  19 x1024 3.407 BF87 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF88 route  86                                     ->   19 x  19 x102489 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF90 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF91 conv    512       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x 512 1.703 BF92 Shortcut Layer: 89,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF93 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF94 conv    512       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x 512 1.703 BF95 Shortcut Layer: 92,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF96 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF97 conv    512       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x 512 1.703 BF98 Shortcut Layer: 95,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF99 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF100 conv    512       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x 512 1.703 BF101 Shortcut Layer: 98,  wt = 0, wn = 0, outputs:  19 x  19 x 512 0.000 BF102 conv    512       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.189 BF103 route  102 87                                 ->   19 x  19 x1024104 conv   1024       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x1024 0.757 BF105 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF106 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF107 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF108 max                5x 5/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.005 BF109 route  107                                            ->   19 x  19 x 512110 max                9x 9/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.015 BF111 route  107                                            ->   19 x  19 x 512112 max               13x13/ 1     19 x  19 x 512 ->   19 x  19 x 512 0.031 BF113 route  112 110 108 107                        ->   19 x  19 x2048114 conv    512       1 x 1/ 1     19 x  19 x2048 ->   19 x  19 x 512 0.757 BF115 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF116 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF117 conv    256       1 x 1/ 1     19 x  19 x 512 ->   19 x  19 x 256 0.095 BF118 upsample                 2x    19 x  19 x 256 ->   38 x  38 x 256119 route  85                                     ->   38 x  38 x 512120 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF121 route  120 118                                ->   38 x  38 x 512122 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF123 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF124 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF125 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF126 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF127 conv    128       1 x 1/ 1     38 x  38 x 256 ->   38 x  38 x 128 0.095 BF128 upsample                 2x    38 x  38 x 128 ->   76 x  76 x 128129 route  54                                     ->   76 x  76 x 256130 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF131 route  130 128                                ->   76 x  76 x 256132 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF133 conv    256       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 256 3.407 BF134 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF135 conv    256       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 256 3.407 BF136 conv    128       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 128 0.379 BF137 conv    256       3 x 3/ 1     76 x  76 x 128 ->   76 x  76 x 256 3.407 BF138 conv    255       1 x 1/ 1     76 x  76 x 256 ->   76 x  76 x 255 0.754 BF139 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.600000140 route  136                                            ->   76 x  76 x 128141 conv    256       3 x 3/ 2     76 x  76 x 128 ->   38 x  38 x 256 0.852 BF142 route  141 126                                ->   38 x  38 x 512143 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF144 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF145 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF146 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF147 conv    256       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 256 0.379 BF148 conv    512       3 x 3/ 1     38 x  38 x 256 ->   38 x  38 x 512 3.407 BF149 conv    255       1 x 1/ 1     38 x  38 x 512 ->   38 x  38 x 255 0.377 BF150 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.600000151 route  147                                            ->   38 x  38 x 256152 conv    512       3 x 3/ 2     38 x  38 x 256 ->   19 x  19 x 512 0.852 BF153 route  152 116                                ->   19 x  19 x1024154 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF155 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF156 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF157 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF158 conv    512       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 512 0.379 BF159 conv   1024       3 x 3/ 1     19 x  19 x 512 ->   19 x  19 x1024 3.407 BF160 conv    255       1 x 1/ 1     19 x  19 x1024 ->   19 x  19 x 255 0.189 BF161 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 = 1068395Allocate 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:

在这里插入图片描述
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


http://www.ppmy.cn/news/674376.html

相关文章

DarkNet框架下YOLO-v4算法推理过程的特征图可视化

说明 本篇文章针对AB版DarkNet源代码进行了修改,添加了一些函数,进行全通道特征图可视化。主要针对YOLO-v4推理过程中,对中间计算结果的特征图数据进行转换,将转换结果用表示成图片进行保存。 DarkNet源代码修改 在network_ker…

Ubuntu18.04下安装NVIDIA显卡驱动、docker、nvidia-docker;容器中编译安装opencv-4.4.0与darknet-yolov4并完成测试;容器封装镜像转移。2022

记录一下第一次在CSDN发博客,欢迎大家光临~ 文章目录 前言一、宿主机配置1.安装Ubunntu18.04 64位系统2.为宿主机系统更换国内软件源Ubuntu 官方源服务器在欧洲,国内访问很慢。所以这里有必要将软件源更换为国内的源,2.1-复制以下内容2.2-备份文件2.3-更…

Java实现内存分配算法 FF(首次适应算法) BF(最佳适应算法)

一、概述 因为这次os作业对用户在控制台的输入输出有要求,所以我花了挺多的代码来完善控制台的显示。 MemoryAlgorithm类里只是和控制台输入输出有关的操作,而对内存的所有逻辑操作都是用Memory类里对应的方法实现的。 因为不同内存分配算法,…

Ubuntu18.04 搭建YOLOV4环境

Darknet是一个轻型的深度学习和训练框架,从这一点上,它和tensorflow以及pytorch这种没有什么不同,特点在轻型二字,它主要对卷集神经网络进行了底层实现,并且主要用于YOLO的目标检测,特点主要有: C语言实现没有依赖项,除了opencv进行视频和UVC摄像头处理容易安装,可移植…

【darknet】2、yolov4模型训练之模型训练

文章目录 1、进行模型训练数据准备1.1 划分训练和验证集1.2 将数据标注格式转换为YOLO格式 2、修改配置文件2.1 新建cfg/vechle.names2.2 新建cfg/vechle.data 2.3 根据所选模型的不同,设置不同的配置文件2.3.1 新建cfg/yolov4_vechle.cfg2.3.2 新建cfg/yolov4_tiny…

数据结构之平衡二叉树的平衡因子BF 的计算

在书上看了平衡二叉树的代码后,发现前人的智慧真是无限。但是因为一次性给出的最完美的代码让人有时候看不太懂... 后来经过仔细推敲,才慢慢发现了其中的奥秘。一开始并不知道关于平衡二叉树的平衡因子BF是怎么修改的,后来才发现关于平衡二叉…

LangChain-Evaluation—如何评估LLM及其应用(三)

省流:目前没有真正完美的解决方案,比如分类有精度这样接近完美的评估方案,但LLM目前没有 This section of documentation covers how we approach and think about evaluation in LangChain. Both evaluation of internal chains/agents, b…

通常家庭说的100M宽带,下载速度是?

通常移动/电信/联通说的100 M宽带,其实他们的单位是Mbps,其中换算单位是: 1Mbps1024Kbps1024/8KBps128KB/s 从以上的换算公式可以得知:1M 的宽带下载速度理论能达到 128KB/s ,那么100M宽带下载按照公式计算结果&#x…