darknet源码阅读-1

darknet整体框架 darknet是使用C和CUDA编写的开源的神经网络框架,它快速且使用简单,之前在海康做caffe方面的工作,本想研究caffe的源代码,但是被导师推荐阅读darknet源代码加深对深度学习的理解而且还能巩固C语言,由此记录一下我的darknet源码阅读之路。 一、darknet安装 本记录主要是阅读源码,所以opencv gpu我就先不弄了,darknet安装非常简单,直接源码安装,在git... 阅读详情

我也才刚接触yolov2不久,大四小白一只,摸索中过河,之前在github上面找到了一个有中文注释的工程,不过作者水平挺高的,

所以就关键位置注释了一下,对于我这种语言基础不算特别好的,看起来还是比较吃力,这边推荐一下点击打开链接,希望对于

初学的小朋友有帮助吧.

emmmm所以我的思路是从训练和测试的命令出发,首先是训练的命令 ./darknet detector train cfg/voc.data cfg/tiny-yolo.cfg xxx.weights,好,那我今天先从

darknet.c开始

1 main函数

417行detector参数进入run_detector函数

可以看到run_detector函数里面首先是对参数进行解析,前面的prefix,thresh,hier_thresh,cam_index,

frame_skip,avg六个参数是从咱们敲的命令中去解析是否存在这些参数,如果没有应该就是用他的默认值了,然后

找到之后把对应的参数从argc数组中删掉,作者这个写的非常巧妙,整整齐齐.ok,继续往下看,detector.c第652行,

看样子是查看有没有权重文件,这个先不管,继续往下.656行定义了两个字符数组的指针,不过这边可以直接理解为是

定义了两个字符数组(动态分配内存).这个ngpus看来是用来判断有几个gpu的,接下来又是一堆参数的检查,balabla,

然后我们来看train_detector函数

2 train_detector函数(先酱紫,下次更)


darknet:Darknet(AB版)框架原始码解析:详细的中文注释(逐句)和原理分析! 说明 2019接近尾声,开始想扩展到一个框架。比较了多个框架,发现darknet是一个较大的轻型的完全基于C与CUDA的开源深度学习框架,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。真正可以对神经网络的组件一探究竟,是提高自己对深度学习有效范本。 ``本人对Darknet的解读,为期接近3个月时间,从2020年8月5日到至今(10月23日),期间几乎查遍了优快云,知乎,github所有能看到关于Darknet的解读资源,这里特别感谢github上: 在此期间,也感谢那些微信上的联系人,经历他们的交流,因此让我疑惑的很多问题逐渐变得清晰起来。 由于darknet代码整个工程量还是很大的,以后,为了方便朋友们快速简单地了解darknet整个框架思想,我写了一个darknet迷你版本,整个代码只实现了所有和分类网络相关的火车部分。去除了其他seg,d 立即下载

相关推荐

手把手教你用STM32F103的普通IO口读取SSI编码器(附完整代码与示波器调试心得)

本文详细介绍了如何利用STM32F103的普通IO口读取SSI绝对式编码器数据,提供完整的硬件连接方案、精确时序控制的软件实现及示波器调试技巧。通过低成本方案实现高精度位置反馈,适用于工业自动化和机器人控制领域。

weixin_29172963的博客 452

YOLO源码(Darknet源码)解读(yolo.c)

yolo.c#include "darknet.h" // 20个类别定义 char *voc_names[] = {"aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow",

Enjoy Coding 3796

Android 16(API 36)状态栏颜色适配全攻略:从沉浸式到自定义背景

本文全面解析Android 16(API 36)强制沉浸式状态栏带来的适配挑战,提供了从FrameLayout包裹法到动态修改Window背景色的核心解决方案。针对传统状态栏颜色设置失效问题,详细阐述了如何利用WindowInsets API实现自定义背景,并涵盖全屏模式、Fragment切换及第三方ROM兼容性等实战场景,为开发者提供一站式适配指南。

weixin_29227425的博客 594

tensorflow之yolo1代码讲解

yolov1已经出来很久了,起初公布的代码作者采用的是自己实现的网络框架darknet,该网络框架是基于c语言实现。尽管现在有着各种各样的框架,不过个人感觉tensorflow在使用方面依旧有着很强的优势,主要体现在扩展性方面。不过因人而异吧,毕竟只是一个工具而已。网上其他博客也有对这份代码的讲解,不过个人感觉依旧有些不到位,所以决定还是结合自己的理解讲解下。下面的代码主要是基于tensorflo...

仰望星空 1896

echarts实现3D地图——map3D

【代码】echarts实现3D地图——map3D。

xiaoququ的博客 7317

C/C++李峋同款跳动的爱心代码(完整代码)

C++语言实现出李峋同款跳动的爱心的完整代码。

AIGC 10万+

darknet源码学习(一) 入口及测试总体流程

最近在使用YOLO fastest训练检测模型,之前听过很多次YOLO这个系列,跑过相关测试demo及现成的训练代码,但对里面的细节几乎一无所知。这次在对自己的数据格式进行转换调整后,进行训练,发现检测效果及性能都很好,在iPhone6s及以上机型可以轻松做到实时。但在训练的过程中,日志的输出却存在一些异常的地方。后来跟一些技术群里面的同学讨论过,应该是代码部分存在点小问题,所以需要研究下代码的细节。 darknet的主函数在darknet.c文件中,入口main函数根据命...

GeneralJing的专栏 5143

Proteus8.0仿真应用设计(九十一)基于STM32CubeMX、STM32F103C8T6 、FREERTOS、MCP41010(SPI接口)的8位数字电位器应用设计仿真

MCP41010是一款SPI接口的8位数字电位器。

zhusl6688的博客 558

yolo虚拟机配置cpu

git clone https://github.com/pjreddie/darknet.git cd darknet make wget http://pjreddie.com/media/files/yolov1/yolov1.weights ./darknet yolo test cfg/yolov1.cfg yolov1.weights data/dog.jpg

Eudemonia_mia的博客 928

YOLOv11改进策略【Neck】| 适用关键点检测:PSFM,深层语义融合模块 引入深层与浅层交叉注意力机制,动态建模不同层级的全局语义依赖关系

本文记录的是利用PSFM 模块改进 YOLOv11 的颈部融合部分,专门用于关键点检测。PSFM模块(Profound Semantic Fusion Module,深层语义融合模块) 通过在特征提取网络的深层引入跨模态交叉注意力机制,动态建模红外与可见光特征的全局语义依赖关系。本文将其应用到的颈部部分,融合深层与浅层特征,捕捉长距离语义关联,增强融合特征的判别性与场景理解能力,为检测头提供包含全局上下文的高层语义表示,从而提升模型在复杂场景下的目标检测准确率与语义推理鲁棒性。Rethinking the

Limiiiing的博客 649

【实战】基于 Inner-IoU 的 YOLOv8 优化指南:显著提升检测精度

Inner-IoU 凭借辅助边框的创新设计,成功解决了传统 IoU 损失在小目标、遮挡场景下的收敛难题,为 YOLOv8 注入了更强的定位能力。从原理剖析到代码集成,本教程已为你铺就了一条“精度提升”的实战路径。现在,不妨亲自上手尝试,让你的目标检测模型在各类数据集上都能交出一份“精度优异”的答卷——相信我,当你看到检测框精准贴合目标的那一刻,你会明白这份尝试的价值。

m0_64661770的博客 107

darknet 源码阅读(零) - Entry Point

就像所有的故事都有一个引人入胜的开头一样, darknet 也有一个漂亮的入口. 源码阅读第一步: 找到山门的入口 - main() 函数. 文件: darknet/examples/darknet.c. 函数: main() 1. 关于分析主线的确定. darknet 实现了较多的深度学习应用工具, 例如: classifier, segmenter, detector 等. 基于目...

Right here, Code is Magic 1757

基于深度学习的涂胶缺陷类型检测:数据集处理与YOLOv8模型实现

本文提出了一种基于YOLOv8深度学习的涂胶缺陷检测系统,针对断胶、溢胶、缺胶、气泡及胶条宽度异常等常见缺陷类型,实现了从数据采集到模型部署的完整解决方案。系统采用工业相机采集涂胶图像,通过多形态数据增强策略解决样本稀缺问题,利用YOLOv8框架实现高效检测。相比传统人工目检和规则式机器视觉方法,该系统在检测精度(mAP达97.5%)和实时性(单图检测耗时0.038秒)方面表现优异,可满足智能制造场景下的涂胶质量检测需求。

huanghm88的专栏 271

darknet 源码阅读

BBuf/Darknet: AlexeyAB-DarkNet源码解析 (github.com) 1. 依赖 1.1 环境要求 window系统或者linux系统。 CMake版本高于3.8。 CUDA 10.0,cuDNN>=7.0。 OpenCV版本高于2.4。 Linux下需要GCC 或者Clang, Window下需要Visual Studio 15、17或19版。 1.2 数据集获取 MS COCO数据集: 使用./scripits/get_coco_dataset.sh来获取

u010451780的专栏 1118

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

[darknet源码系列-1] darknet源码中的常见数据结构

[darknet源码系列-1] darknet源码中的常见数据结构 FesianXu 20201117 at UESTC 前言 最近笔者在好奇如何从最底层开始搭建一个深度学习系统,之前都是采用现成的成熟深度学习框架,比如PyTorch,TensorFlow等进行模型的搭建,对底层原理了解不是特别深刻。因此笔者最近在阅读darknet的源码,希望能从中学习到一些底层的知识,本文主要是对darknet中常见的数据结构进行记录和分析。如有谬误请联系指出,转载请联系作者并注明出处,谢谢。 ∇...

机器学习杂货铺1号店 1473

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

darknet的可视化操作

转载: Darknet卷基层浅层特征可视化教程 https://www.cnblogs.com/pprp/p/10146355.html darknet loss可视化软件 https://www.cnblogs.com/pprp/p/10248436.html darknet优化经验-AlexeyAB大神经验 https://www.cnblogs.com/pprp/p/102044...

baidu_40840693的博客 3374

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

darknet 源码阅读(三) - 训练网络

darknet 是如何从读取图片到最终反向传播完成一个完整的训练过程?

Right here, Code is Magic 1626

视频教程-YOLOv3目标检测:原理与源码解析-计算机视觉

YOLOv3目标检测:原理与源码解析 大学教授,美国归国博士、博士生导师;人...

weixin_33110413的博客 1027

内涵:目标检测之DarkNet-DarkNet源码解读<一>测试篇

目标检测-DarkNet源码解读DarkNet源码解读1.一些思考 1.1 DarkNet的本质 1.2 深度学习分为两条线 1.3 检测任务的步骤2.代码走读 2.1 程序入口 2.2 步骤1 加载网络 2.2 加载图片 2.3 前向 2.4 后处理3.一些细节 3.1 双向链表来存储网络 3.2 回调函数来模拟虚函数 3.3 分类阈值与nms操作到底是怎么操作的4.回头看 4.1 Yolov3到底是什么1.1大胆猜测1.2 小心求证1.2.1 入口函数1.2.2 核心操作1.2.2.1 加载网络2 .

4708

opencv canny源码解析_[darknet源码系列1] darknet源码中的常见数据结构

[darknet源码系列-1] darknet源码中的常见数据结构FesianXu 20201117 at UESTC前言最近笔者在好奇如何从最底层开始搭建一个深度学习系统,之前都是采用现成的成熟深度学习框架,比如PyTorch,TensorFlow等进行模型的搭建,对底层原理了解不是特别深刻。因此笔者最近在阅读darknet的源码,希望能从中学习到一些底层的知识,本文主要是对...

weixin_39524842的博客 114

[darknet源码系列-2] darknet源码中的cfg解析

[darknet源码系列-2] darknet源码中的cfg解析 FesianXu 20201118 at UESTC 前言 笔者在[1]一文中简单介绍了在darknet中常见的数据结构,本文继续上文的节奏,介绍如何从cfg文本文件中解析出整个网络的结构与参数。如有谬误请联系指出,本文遵守 CC 4.0 BY-SA 版权协议,转载请联系作者并注明出处,谢谢。 ∇\nabla∇ 联系方式: e-mail: FesianXu@gmail.com QQ: 973926198 github:...

机器学习杂货铺1号店 1384

darknet 源码阅读(数据预处理篇)—— voc_label.py

darknet 源码阅读(一)——yolo 数据预处理篇(voc_label.py) 简介 本文都是基于darknet-AB版本源码进行解读。源码链接:https://github.com/AlexeyAB/darknet voc——label.py 是yolo训练前数据预处理一部分,主要功能: 根据VOC数据集 ImageSets\Main目录下的train.txt、test.txt val...

jmu201521121021的博客 6747

darknet源码阅读之region_layer.c

darknet源码中的region_layer.c文件分析 最近在研究yolov2的模型,损失函数真的很头疼,感觉扎进了multi-task objection的原理的坑中,需要从源码进行些分析 前提缩写 gt = ground truth pred = prediction tx ty tw th : 网络输出的偏移量 bx by bw bh : 原图的0~1的中心点和选框长宽 文件中函数内容 ...

beingod0的摸爬滚打 756

内涵:目标检测之DarkNet-DarkNet源码解读<二>训练篇

1. 引言   本篇文章是介绍DarkNet的第三篇文章。第一篇文章主要是介绍DarkNet的使用,重点在于熟悉DarkNet训练集的数据标签形式和相关的使用指令。第二篇文章主要是介绍DarkNet的test线的源码:包括List数据结构;网络多链的实现;回调函数机制和检测的前向后处理。本文是第三篇文章,按照设计,DarkNet就会以这三篇文章作为主脉络,后续若再有相关的关于DarkNet的文章,也仅仅是对这三篇文章的一个补充。   作为DarkNet的最后一条主线文章,本篇文章依旧延续前两篇的风格:从入口

1316

DarkNet,Visual Studio 2015工程配置

1. 前言 最近使用DarkNet做yolo目标检测,为了方便梳理代码的结构,理顺其内部的实现过程,这里将DarkNet的源码提出来,融合到Visual Studio工程中去,这里将这个过程记录下来。 PS:这里使用的系统是Win10 x64,Visual Studio 2015,Win32控制台应用程序 2. 整合过程 2.1 配置Pthread库 下载Windows版本的Pt...

m_buddy的博客 2995

【代码阅读】darknet源码阅读(一):list.c/list.h

目录 1.list.h 2.list.c 3.额外的知识 3.1.关于#ifdef __cplusplus extern "C" 3.2 xmalloc 先放上参考资料:https://blog.youkuaiyun.com/caicaiatnbu/category_9096319.html 就是跟着别人的解析,一步一步去看darknet的结构。顺道加深C的学习,努力学习中。。 [使用...

weixin_38715903的博客 652
上一篇: 关于在windows上编译darknet,yolov2
下一篇: HDU3791
seekforcode
博客等级 码龄12年 9粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值