YOLO fastest cfg文件理解及注释

K230边缘AI视觉识别实战:从模型部署到STM32通信全流程指南 边缘AI视觉识别是嵌入式系统与人工智能结合的关键技术,其核心原理在于将训练好的深度学习模型部署到资源受限的边缘设备上,实现本地实时推理。这项技术的价值在于降低延迟、保护数据隐私并减少对云端算力的依赖,广泛应用于智能安防、工业质检、自动驾驶和消费电子等领域。在具体工程实践中,开发者常面临模型转换、硬件适配和系统集成等挑战。本文以K230芯片和YOLOv5模型为例,深入探讨了模型部署、串口通信协议设计以及与STM32主控的协同调试,提供了从环境搭建到性能优化的完整解决方案,帮助开发者高效构建稳定可靠的嵌入式视觉 阅读详情

YOLO fastest cfg文件注释分析,大体上跟其他版本的YOLO配置文件一致,此处主要是记录一下,针对自己不熟悉的地方额外添加一点说明。

1.[net]层

[net]
batch=64
subdivisions=1
width=320
height=320
channels=3
momentum=0.949 #动量参数影响着梯度下降到最优值的速度。
decay=0.0005 #权重衰减正则项,防止过拟合。
angle=0 #数据增强,设置旋转角度。
saturation=1.5 #饱和度
exposure=1.5 #曝光量
hue=.1 #色调
这里的batch与普遍意义上的batch不是一致的。训练的过程中将一次性加载16张图片进内存,然后分4次完成前向传播,每次4张。经过16张图片的前向传播以后,进行一次反向传播。在网上的其他博客中,测试的时候需要如下设置
#Testing
#batch=1
#subdivisions=1
在YOLO fastest的cfg文件中不需要更改,因为在测试的时候,parse_network_cfg_custom函数内根据train和test进行了区分设置。
网络的宽、高和通道个数设置,由于YOLOv3的下采样一般是32倍,所以宽高必须能被32整除。多尺度训练选择为32的倍数最小320*320,最大608*608。长和宽越大,对小目标越好,但是占用显存也会高,需要权衡。
learning_rate=0.001 #学习率:刚开始训练时可以将学习率设置的高一点,而一定轮数之后,将其减小。在训练过程中,										#一般根据训练轮数设置动态变化的学习率。
burn_in=4000 # 在迭代次数小于burn_in时,其学习率的更新有一种方式,大于burn_in时,才采用下面的policy的更新方式。网上查到的都是这么一句描述,小于burn_in的时候是怎么更新的,我在看代码的时候没有看到yolo fastest内具体的一个计算方式,只在void update_network_gpu(network net)函数内,看到if (l.burnin_update && (l.burnin_update*net.burn_in > iteration_num)) continue;这一句,后面有时间再研究下这块。
max_batches=250000 #训练过程中最大batch
policy=steps #学习率调整的策略:constant, steps, exp, poly, step, sig, RANDOM,constant等方式。
steps=150000,180000
scales=.1,.1 #steps和scale是设置学习率的变化,比如迭代到400000次时,学习率衰减十倍,45000次迭代时,学习率又会在前一个学习率的基础上衰减十倍。

2.[convolutional]

[convolutional]
batch_normalize=1    		#是否做BN操作
filters=32              #输出特征图的数量
size=3               		#卷积核的尺寸
stride=1                #做卷积运算的步长
pad=1               		#如果pad为0,padding由padding参数指定。如果pad为1,padding大小为size/2,													#padding应该是对输入图像左边缘拓展的像素数量
activation=leaky     		#激活函数的类型:logistic,loggy,relu,elu,relie,plse,hardtan,															#lhtan,linear,ramp,leaky,tanh,stair
# alexeyAB版添加了mish, swish, nrom_chan等新的激活函数

3.下采样都是通过调整卷积层参数进行的,不存在maxpooling下采样方式:

[convolutional]
filters=8
size=3
pad=1
stride=2
batch_normalize=1
activation=leaky

4.上采样 只有一个upsample层

[upsample]
stride = 2 #上采样通过线性插值实现

5.shortcut和route层 cfg中有18个shortcut层,2个route层

[shortcut]
from=-5
activation=linear 
#shortcut操作是类似ResNet的跨层连接,参数from是−5,意思是shortcut的输出是当前层与先前的倒数第三层相加而得到。一般就是add操作
[route]
layers = -7 #当属性只有一个值时,它会输出由该值索引的网络层的特征图。 此处就是提取从当前倒数第7个层输出

[route]
layers=-1,81 # 当属性有两个值,就是将上一层和第81层进行concate,即沿深度的维度连接,feature map大小一致

6.yolo层

[convolutional]
size=1
stride=1
pad=1
filters=21 #每一个[region/yolo]层前的最后一个卷积层中的filters=num(每yolo层个数)*(classes+5) ,5的意义是5个坐标,代表论文中的tx,ty,tw,th,po 这里类别个数为2,(1+5)*3=21
activation=linear


[yolo]
# 该层预测哪个规模的框,0,1,2用于预测小物体的anchor
# 使用anchor的索引,0,1,2表示使用下面定义的anchors中的前三个anchor
mask = 0,1,2
# anchors = 26, 48,  67, 84,  72,175, 189,126, 137,236, 265,259
# own data anchors
anchors = 20, 24,  27, 36,  38, 52,  52, 35,  61, 66,  105, 94 # 有2个yolo层,所以6个anchor
classes=2
num=6 # anchor数量,每个grid cell预测的bounding box个数是anchor总数/yolo层个数,此处是6/2=3
jitter=.15
ignore_thresh = .5 # ignore_thresh 指得是参与计算的IOU阈值大小。当预测的检测框与ground true的IOU大于ignore_thresh的时候,不会参与loss的计算,否则,检测框将会参与损失计算。目的是控制参与loss计算的检测框的规模,当ignore_thresh过于大,接近于1的时候,那么参与检测框回								归loss的个数就会比较少,同时也容易造成过拟合;而如果ignore_thresh设置的过于小,那										 # 么参与计算的会数量规模就会很大。同时也容易在进行检测框回归的时候造成欠拟合。				               										# ignore_thresh一般选取0.5-0.7之间的一个值
# 小尺度(10*10)和大尺度(20*20)用的都是0.5,
truth_thresh = 1
random=0
scale_x_y = 1.00
iou_thresh=0.213
cls_normalizer=1.0
iou_normalizer=0.07
iou_loss=ciou
nms_kind=greedynms
beta_nms=0.6

7.dropout层 cfg中有18个dropout层,均在shortcut层前,probability的设置都为0.15

[dropout]
probability=.15 

 

深入了解和应用.cfg文件 本文还有配套的精品资源,点击获取 简介:配置文件,特别是.cfg文件,在个性化设置、自动化、软件更新兼容性及多环境适配上发挥关键作用。这种文本文件常用于存储配置参数,可以通过文本编辑器修改以适应软件需求。本文将探讨.cfg文件的基本结构、使用重要性以及适用场景,并提出管理和安全的最佳实践,以帮助用户更好地管理和利用这些文件。 1. .cfg文件定义及作用 在... 阅读详情

相关推荐

ucosii_os_cfg配置文件详细注释,仅供参考,

自己注释的ucosII操作系统中os_cfg.h的配置项名称,仅供参考,另外添加了配置手册,供使用ucos操作系统的时候方便查询。

cfg文件的批量注释方法

一个小技巧,关于使用notepad++进行文档或者config(cfg)文档进行批量注释的方法。 有时需要将配置文件(.cfg文档)中的一段进行全部注释,单个添加又很麻烦,但是又没有段注释符号,很麻烦。 点击行首,按住Alt,鼠标拖动,可以选中多行,然后输入#,则选中的行全部添加了注释符号。 ...

mkdirHelloWord的博客 3543

测绘无人船避坑指南:云卓H12Pro遥控器接海康摄像头,从网络设置到RTSP流延迟优化全流程

本文详细解析了测绘无人船视频子系统的优化方案,重点介绍海康威视摄像头与云卓H12Pro遥控器的深度适配流程。从网络设置到RTSP流延迟优化,提供了一套经过实测的低延迟(<200ms)解决方案,适用于复杂水域环境下的测绘任务。

weixin_30415113的博客 624

YOLOV3中Darknet中cfg文件说明和理解

darknet 是由 C 和 CUDA 开发的,不需要配置其他深度学习的框架(如,tensorflow、caffe 等),支持 CPU 和 GPU 运算,而且安装过程非常简单。 1、cfg文件说明理解 [net] ★ [xxx]开始的行表示网络的一层,其后的内容为该层的参数配置,[net]为特殊的层,配置整个网络 # Testing ★ #号开头的行为注释行,在解析cfg的文件时会忽略该行 # batch=1 # s

幽冥之花的博客 4096

SAP PI实战:5分钟搞定REST适配器同步接口配置(含Postman测试技巧)

本文详细介绍了如何在SAP PI中快速配置REST适配器同步接口,包括ESR设计、集成流配置及Postman测试技巧。通过实战步骤和关键参数设置,帮助开发者高效实现系统集成,特别适合需要实时数据交互的业务场景。

weixin_33738555的博客 485

车载以太网抓包实战:100BASE-T1/1000BASE-T1高效监控方案解析

本文深入解析了车载以太网100BASE-T1/1000BASE-T1的高效抓包监控方案。针对智能汽车开发中的故障排查与性能测试需求,详细对比了交换机镜像、TAP分流和捕获模块三大主流方案的原理、核心优势与适用场景,并提供了基于实战经验的选型指南与操作避坑要点,帮助工程师精准定位网络问题。

desk3的博客 426

常见文件类型的注释方式总结(CMakeLists.txt、yaml、cfg、launch和xml等文件)

1、CMakeLists.txt文件的注释 (1)单行注释直接在行首添加#号即可; (2)块注释符号:#[[与]]结合使用,例如: #[[ add_executable(${PROJECT_NAME} src/main.cpp) target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES}) ]] 2、yaml文件注释 行首添加#号进行注释,yaml文件不支持多行注释,如果需要多行注释,就在每行添加#即可。 3...

竭尽全力的专栏 5573

本地部署ComfyUI:开源AI生图与视频生成完整实战指南

在生成式AI应用快速普及的今天,云端工具常受制于排队、积分和素材管理等问题,而本地化部署正成为开发者与创作者的高效替代方案。其核心思路是基于开源工作流引擎,将图像生成、视频生成与后期处理整合到同一套可离线运行的系统中。ComfyUI作为当前最受关注的节点式工作流平台,凭借灵活的模块组合和强大的自定义能力,降低了从图像模型调用到视频扩展的工程门槛。本文从环境配置与依赖安装入手,系统讲解如何部署ComfyUI、加载Checkpoint模型、跑通文生图基础流程,再通过自定义节点接入视频生成能力,同时介绍API批量

weixin_30985047的博客 558

YOLO系列(v1~v3)的学习及YOLO-Fastest在海思平台的部署(上)

文章目录声明前言本文的目标和前期准备1 YOLO主线系列通读与了解1.1 YOLOv11.1.1 YOLOv1网络算法(1)网络是如何定义一个目标的(2)理解损失函数(3)算法是如何嵌入到网络结构中的1.1.2 Darknet(pjreddie版)源码编译和示例运行1.1.3 网络结构1.1.4 源码实现中的网络输出1.2 YOLOv21.2.1 YOLOv2网络算法(1)在YOLOv1基础上做的改动(2)锚框(Anchor Boxes)、直接位置预测和维度聚类(Dimension Clusters)(3)

Turix附属空间[已停用] 4952

基于STM32、HAL库的W25Q01JVZEIQ TR FLASH存储器驱动应用程序设计

1Gb (128MB),分为512个可擦除块(block),每个块256KB。:块擦除约30-50ms,芯片擦除约30s。:标准SPI (支持1/2/4线模式)// 初始化CS引脚为高电平。// 擦除扇区(4KB)// 初始化Flash。/* 状态寄存器位 *//* 指令定义 *//* 超时定义 *//* 函数声明 */

corlin6688的博客 266

电磁场仿真软件:Sonnet_(1).Sonnet软件概述

根据特定需求自定义仿真流程,如多频率点仿真、多边界条件仿真等。

kkchenjj的博客 1447

RDPWrap 在 Windows 11 24H2 上打不开第二个远程桌面多用户会话,为什么?

RDPWrap 装好了,RDPCheck 全绿,但远程桌面多用户会话的第二个会话就是连不上?答案很简单:把 mstsc 的计算机一栏从 127.0.0.1 改成 127.0.0.2。RDPWrap 的作用是解锁 Windows 自带的远程桌面主机限制,让同一台机器上多个并发会话并存;下面按"自检 → 动手 → 原理 → 排坑"的顺序,把每一步操作和系统判定背后的原因讲清楚。 ## 📋 动手前环

gitblog_00301的博客 192

医图论文 Arxiv‘24 | 自我先验引导的 Mamba-UNet 网络在医学图像超分辨率中的应用

作者提出了一种自我先验引导的 Mamba-UNet 网络(简称 SMamba-UNet)用于医学图像超分辨率。现有方法主要基于卷积神经网络(CNNs)或 Transformer。基于 CNN 的方法无法捕捉长距离依赖关系,而基于 Transformer 的方法由于其二阶计算复杂度,面临沉重的计算挑战。最近,状态空间模型(SSMs)尤其是 Mamba 出现了,它能够以线性计算复杂度建模长距离依赖。

小白学视觉 261

yolo-fast模型下anchor的使用

关于yolo 模型中anchors值的理解: anchor box就是从训练集中真实框(ground truth)中统计或聚类得到的几个不同尺寸的框。避免模型在训练的时候瞎找,有助于模型快速收敛。假设每个网格对应k个anchor,也就是模型在训练的时候,它只是会在每一个网格附近找出这k种形状,不会找其他的。anchor的设置其实就是对预测的对象范围进行约束,并加入了尺寸先验经验,从而实现多尺度学习的目的。 anchor box的生成:yolo网络中使用k-means算法在训练集中所有样本的真实框(gro.

weixin_42904656的博客 1122

AI算力网络与通信领域QoS保障的测试方法

在当今数字化时代,AI技术蓬勃发展,AI算力网络应运而生。它将分布在不同地理位置的算力资源进行整合,以高效地支持各种AI应用,如深度学习训练、智能图像识别等。而通信领域则是信息传输的基石,确保数据能够准确、快速地在不同节点之间传递。QoS保障在通信领域至关重要,它可以确保不同类型的业务(如语音通话、视频会议、在线游戏等)获得与其需求相匹配的服务质量。在AI算力网络中,QoS保障同样不可或缺,因为AI任务对网络的带宽、延迟、可靠性等指标有严格要求。

AI算力网络与通信的博客 526

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

YOLOV8V10改进系列指南

YOLOV8V10改进系列指南,仅仅69.9包含YOLOV8、YOLOV10的两个主流模型改进方案、含有300+种改进的集合,且含有多种二次创新和原创改进!

qq_37706472的博客 12万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

YOLO-Fastest训练自己的数据

YOLO-Fastest训练自己的数据 继续yolo-fastest的学习,上一篇已经基本跑通了yolo-fastest,接下来开始训练,本次代码依旧是:https://github.com/dog-qiuqiu/Yolo-Fastest 吐槽一句,这个代码里面怎么啥都有,感觉好乱啊!刚开始看的时候一脸懵逼,反复确认才明白没下载错代码。 然后作者官方Readme只要简简单单的一两句话介绍训练,估计是要逼死小白! 一、配置环境 1.win10 2.cuda10.2+cudnn 3.opencv451 4.v

小俊俊的博客 7740

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

YOLOv4目标检测:原理与源码解析

需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:原理与源码解析》,课程链接 https://edu.youkuaiyun.com/course/detail/29865【为什么要学习这门课】 Linux创始人Linus Torvalds有一句名言:Talk is cheap. Show me the code. 冗谈不够,放码过来!  代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。【课程内容与收获】 本课程将解析YOLOv4的实现原理和源码,具体内容包括:- YOLOv4目标检测原理- 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算- 代码阅读工具及方法- 深度学习计算的利器:BLAS和GEMM- GPU的CUDA编程方法及在darknet的应用- YOLOv4的程序流程- YOLOv4各层及关键技术的源码解析本课程将提供注释后的darknet的源码程序文件。【相关课程】 除本课程《YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括:《YOLOv4目标检测实战:训练自己的数据集》《YOLOv4-tiny目标检测实战:训练自己的数据集》《YOLOv4目标检测实战:人脸口罩佩戴检测》《YOLOv4目标检测实战:中国交通标志识别》建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。【YOLOv4网络模型架构图】 下图由白勇老师绘制  

【yolofastest上手】

yolofastest网上资料比较少,也没有视频教学,所以想要使用参考了很多资料,只能说各资料都不尽全,让刚接触的小白无从下手。

VanGotoBilibili的博客 1892

Windows版YOLOv4目标检测实战:中国交通标志识别

课程演示环境:Windows10 需要学习Ubuntu系统YOLOv4的同学请前往《YOLOv4目标检测实战:中国交通标志识别》 在自动驾驶中,交通标志识别是一项重要的任务。本项目以中国交通标志数据集TT100K为训练对象,采用YOLOv4目标检测方法实现实时交通标志识别。本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。具体项目过程包括:安装YOLOv4、TT100K标注格式转换成PASCAL VOC格式、训练集和测试集自动划分、修改配置文件、训练网络模型、测试训练出的网络模型、性能统计、先验框聚类分析和NMS(非极大抑制)方法修改。 本课程会讲述使用Python程序将TT100K数据集的格式转换成PASCAL VOC格式和YOLO格式的方法,并提供相应代码。

yolo-fastestv2 视频检测

python 版本 import os import cv2 import time import argparse import torch import model.detector import utils.utils import utils.datasets if __name__ == '__main__': #指定训练配置文件 parser = argparse.ArgumentParser() parser.add_argument('--data', type=

我是索隆啊 2951

Yolo-Fastest:轻量级yolo系列网络在各硬件实现工业级检测效果

计算机视觉研究院专栏作者:Edison_G目标检测是现在最热门的研究课题,也一直是工业界重点研究的对象,最近几年内,也出现了各种各样的检测框架,所属于YOLO系列是最经典也是目前被大家认可使用的检测框架。不论是PyTorch,还是Tensorflow,又或者是Keras和Caffe,可以说是全平台通用。公众号ID|ComputerVisionGzq学习群|扫码在主页获取加...

gzq0723的博客 2771

yolo-fastestv2小白全流程使用指南

搭建环境 1,安装anaconda和pycharm 所需软件工具:anaconda pycharm cuda Anaconda是一个管理用于python开发的包含不同库的虚拟环境的平台,可以高效的管理和创建适用于多个不同项目的project interpreter。安装完成自带一个根环境,路径在conda的安装目录下。进入后可以在环境管理页面创建新环境,新环境的路径在安装目录下的envs中存储,在pycharm中设置interpreter时需要找到所需环境的存储位置,interpreter设置选择con

weixin_47296244的博客 1万+

深度学习实战 | WIN10环境下配置Darknet并使用Yolov4-tiny训练Gun-and-Sword数据集

目录 一、准备工作 (一)环境配置 1.cuda和cudnn 2. Visual Studio配置 (二)Darknet安装 1. 下载源文件 2. 编译项目 二、使用Yolov3-tiny进行训练 (一)数据集标注 (二)模型配置 1. 模型文件修改 2. 下载预训练权重 (三)模型训练 (四)模型测试及效果 三、参考资料 一、准备工作 (一)环境配置 1.cuda和cudnn 配置cuda11.1+cudnn11.3,这里提供相应的下载链接,可以去官网下最新的,..

Genms的博客 1897

yolov4 darknet 源码学习笔记(一) yolov4.cfg文件各参数含义

yolov4 darknet 源码学习笔记(一)cfg文件各参数含义 [net] 网络参数模块 batch=64 # batch size subdivisions=8 # batch size 细分,训练中每次推理batch/subdivisions(64/8)幅图片,计算loss时使用batch(64)幅累加 Training #width=512 #height=512 width=608 # 输入图片统一尺寸为6086083 height=608 channels=3 momentum=0.949

JimmyGoong的博客 4459

yolov3的cfg配置文件注释及修改示例

yolov3的cfg配置文件的修改 大部分内容是网络整理的,希望能大家带来帮助 [net] # Testing ### 测试模式,测试的时候,去掉注释 # Training ### 训练模式 # batch=64 # subdivisions=16 --------------------------------------------------------------------------------------

kane的博客 8105
上一篇: C实现去除字符串中的指定字符
下一篇: darknet提取主干网络权重或者指定层数的权重
GeneralJing
博客等级 码龄15年 17粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值