学习
实践
活动
工具
TVP
写文章

【AlexeyAB DarkNet框架解析】一,框架总览

趁着自己C语言还没有完全忘记,我决定来仔细探索一番AlexeyAB的Darknet框架,所以就有了这个【AlexeyAB DarkNet框架解析】系列。 Darknet框架分析主线 分析主线的确定 Darknet相比当前训练的C/C++主流框架(如Caffe)来讲,具有编译速度快,依赖少,易部署等众多优点,我们先定位到src/darknet.c里面的main 而run_detector函数提供了AlexeyAB添加了各种新特性的目标检测算法,所以之后我们会从这个函数跟进去来解析Darknet框架Darknet提供的其他功能如run_super(高分辨率重建),run_classifier(图像分类),run_char_rnn(RNN文本识别)有兴趣可以自己去读(这个框架用来做目标检测比较好,其他算法建议还是去其它框架实现吧 框架的大概思路就是这个样子,之后会按照这个主线不断的添加代码理解。 后记 大概了解一下我会怎么去读Darknet框架,之后会按照这个主线不断的讲解,欢迎互相交流和学习。

1.1K40

Darknet-53_darknet_track

今天想下载这个文件,百度一搜,好多博主要收费才能下载,我就奇怪了,这玩意又不是他自己脑力活动创造的代码,收啥费啊,现在免费分享这个链接:

5820
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Darknet

    1.介绍darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。 darknet完全由C语言实现,没有任何依赖项,当然可以使用OpenCV,但只是用其来显示图片、为了更好的可视化;darknet支持CPU(所以没有GPU也不用紧的)与GPU(CUDA/cuDNN,使用 caffe的实现存在相似的地方,熟悉了darknet,相信对上手caffe有帮助2.基于Linux的安装教程  (1)在github上下载darknet$ git clone https://github.com /pjreddie/darknet.git$ cd darknet$ make如下图:? /darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg出现下图,并在 ?并出现检测完成的图片,如下图:?

    1.7K30

    【AlexeyAB DarkNet框架解析】十二,Dropout层代码详解

    前言 继续DarkNet源码解析,本次解析src/dropout.h和src/dropout.c两个文件,也即是Dropout层。 2. 后记 本文简单讲解了Dropout的原理以及DarkNet中Dropout的源码实现,有任何问题欢迎和我交流。

    55040

    【AlexeyAB DarkNet框架解析】三,加载数据进行训练

    前言 昨天讲了DarkNet的底层数据结构,并且将网络配置文件进行了解析存放到了一个network结构体中,那么今天我们就要来看一下Darknet是如何加载数据进行训练的。 在DarkNet中,图片的存储形式是一个行向量,向量长度为h*w*3。同时图片被归一化到[0, 1]之间。 测试代码为darknet_test_struct_memory_free.c。 // 不知道这段测试代码在VS中执行会怎样,还没经过测试,也不知道换用其他编译器(darknet的Makefile文件中,指定了编译器为gcc),darknet的编译会不会有什么问题?? 后记 本节从源码角度分析了DarkNet如何加载数据进行训练的详细步骤。相信结合前2节,你已经知道DarkNet是如何构建网络模型,并加载数据训练一个检测器模型的了。

    66120

    【AlexeyAB DarkNet框架解析】二,数据结构解析

    按照前面的思路,这一节进入到DarkNet的数据结构解析。Darknet是一个C语言实现的神经网络框架,这就决定了其中大多数保存数据的数据结构都会使用链表这种简单高效的数据结构。 基础数据结构 为了解析网络配置参数,DarkNet 中定义了三个关键的数据结构类型。 option_list.h文件中,具体定义如下: // kvp 键值对 typedef struct{ char *key; char *val; int used; } kvp; 在Darknet 将链表中的网络结构保存到network结构体 首先来看看network结构体的定义,在include/darknet.h中: // 定义network结构体 typedef struct network 后记 今天讲了DarkNet中底层数据结构是如何组织的,到现在为止我们可以获得一个存储了所有网络配置信息的network结构体,接下来就是加载数据进行训练以及测试了。

    81220

    darknet1

    ubuntu darknet记录 1.安装: git clone https://github.com/pjreddie/darknet cd darknet make 2.下载数据集权重: wget /darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

    29510

    使用darknet框架的imagenet数据分类预训练操作

    3、修改cfg/.data配置文件(*classf.data) classes=1000 train =/home/research/disk2/wangshun/yolo1700/darknet/coco /darknet classifier train cfg/classf.data cfg/classf.cfg -gpus 0,3(选择自己机器的gpu) ? 6 . 测试 . /darknet classifier predict cfg/classf.data cfg/classf.cfg backup/classf.weights data/eagle.jpg ? 以上这篇使用darknet框架的imagenet数据分类预训练操作就是小编分享给大家的全部内容了,希望能给大家一个参考。

    47931

    【AlexeyAB DarkNet框架解析】六,卷积层的反向传播解析

    记作f(x)),其导数值为f(x)'=f(x)*(1-f(x)),因此如果给出y=f(x),那么f(x)'=y*(1-y),只需要输出值y就可以了,不需要输入x的值, (暂时不确定darknet 激活函数(记作f(x)),其导数值为f(x)'=f(x)*(1-f(x)),因此如果给出y=f(x),那么f(x)'=y*(1-y),只需要输出值y就可以了,不需要输入x的值, // (暂时不确定darknet col2im函数解析 col2im函数是上一篇推文中介绍的im2col的逆过程,代码在src/col2im.c中实现,具体如下: // 注释来自https://github.com/hgpvision/darknet 上面给的博客链接给出了一种很好的求解方式, ** 但darknet并不是这样做的,为什么? 在这里插入图片描述 后记 本篇推文介绍了DarkNet中卷积层的反向传播详细代码解析,具体用到的知识就是链式法则,col2im,gemm。

    51820

    【AlexeyAB DarkNet框架解析】五,卷积层的前向传播解析

    本工程地址为:https://github.com/GiantPandaCV/darknet 前言 今天来介绍一下DarkNet中卷积层的前向传播和反向传播的实现,卷积层是卷积神经网络中的核心组件,了解它的底层代码实现对我们理解卷积神经网络以及优化卷积神经网络都有一些帮助 backward_convolutional_layer; l.update = update_convolutional_layer; ...剩余代码可以在https://github.com/GiantPandaCV/darknetDarkNet中和Caffe的实现方式一样,都是Kernel*Img,即是在矩阵乘法中: M=1 , N=output_h * output_w K=input_channels * kernel_h article/details/84837198 https://blog.csdn.net/u014540717/column/info/13752 https://github.com/hgpvision/darknet

    76220

    darknet速成】Darknet图像分类从模型自定义到测试

    1 Darknet是什么 首先不得不夸奖一下Darknet的主页风格不错。 ? 为了Yolo系列开发的框架Darknet几乎没有依赖库,是从C和CUDA开始撰写的深度学习开源框架,支持CPU和GPU。 咱们的第一个开源框架说的是Caffe,现在这最后一个Darknet跟caffe倒是颇有几分相似之处,只是更加轻量级。 2 Darknet结构解读 首先我们看下Darknet的代码结构如下: ? 总结 本文讲解了如何使用darknet深度学习框架完成一个分类任务,框架固然小众,但是速度真快,而且非常轻便,推荐每一个玩深度学习,尤其是计算机视觉的朋友都用起来。

    79430

    【AlexeyAB DarkNet框架解析】十一,BN层代码详解(batchnorm_layer.c)

    前言 继续探索AlexeyAB框架的BN层,为了将这个层的原理说清楚,我就不局限于只讲解这个代码,我结合了CS231N的代码以及BatchNorm的论文将前向传播和反向传播都清晰的进行讲解,希望看完这篇你可以对 np.sqrt(sample_var + eps) + 2.0 * dsigma * (x - sample_mean) / N + dmu / N return dx, dgamma, dbeta DarkNet return layer; } 2.前向传播公式实现 DarkNet中在src/blas.h中实现了前向传播的几个公式: /* ** 计算输入数据x的平均值,输出的mean是一个矢量,比如如果x是多张三通道的图片 前向传播和反向传播接口函数 DarkNet在src/batchnorm_layer.c中实现了前向传播和反向传播的接口函数: // BN层的前向传播函数 void forward_batchnorm_layer index]; } } scale_updates[f] += sum; } } // 对均值求导 // 对应了论文中的求导公式3,不过Darknet

    74140

    【AlexeyAB DarkNet框架解析】十,池化层代码详解(maxpool_layer.c)

    已经将所有的注释代码以及包含中文版README的AlexeyAB DarkNet总结在了这个网址上,需要自取:https://github.com/BBuf/Darknet 前言 继续阅读DarkNet l.bflops = (l.size*l.size*l.c * l.out_h*l.out_w) / 1000000000.; return l; } 最大池化层的前向传播 AlexeyAB DarkNet 的池化层和原始的DarkNet的池化层最大的不同在于新增了一个l.maxpool_depth参数,如果这个参数不为0,那么池化层需要每隔l.out_channels个特征图执行最大池化,注意这个参数只对最大池化有效 ** 但需要注意AlexeyAB DarkNet在原始的代码上改动比较多,具体注释如下。 实际上,在darknet中,不管是什么层, ** 其反向传播函数都会先后做两件事:1)计算当前层的敏感度图l.delta、权重更新值以及偏置更新值;2)计算上一层的敏感度图net.delta(

    61710

    【AlexeyAB DarkNet框架解析】八,YOLOV2损失函数代码详解(region_layer.c)

    想再说一下,这个系列的代码注释我放到https://github.com/GiantPandaCV/darknet 这里了,有需要的可以点star或者fork哦,还在持续更新中。 前言 昨天结合代码详细解析了YOLOV1的损失函数,今天AlexeyAB版DarkNet的YOLOV2损失函数代码解析也来了。 YOLOV2对每个预测box的[x,y],confidence进行逻辑回归,类别进行softmax回归; 在Darknet中,损失函数可以用下图来进行表示: ? YOLOV2损失函数 可以看到这个损失函数是相当复杂的,损失函数的定义在Darknet/src/region_layer.c中。对于上面这一堆公式,我们先简单看一下,然后我们在源码中去找到对应部分。 3.2 置信度损失 在计算obj置信度时, 增加了一项权重系数,也被称为rescore参数,当其为1时,损失是预测框和ground truth的真实IOU值(darknet中采用了这种实现方式)。

    93110

    【AlexeyAB DarkNet框架解析】七,YOLOV1损失函数代码详解(detection_layer.c)

    为了解决这俩问题,本文就结合DarkNet中的YOLOV1的损失函数代码实现(在src/detection_layer.c中)来帮助你理解,相信我,看完你真的能理解。 coords, int rescore) { detection_layer l = { (LAYER_TYPE)0 }; l.type = DETECTION; // 这些变量都可以参考darknet.h 后记 本文介绍了YOLOV1的损失函数实现,也即是src/detection_layer.c文件的内容,希望看完这篇你能彻底理解YOLOV1的损失函数,后面我会继续更新YOLOV2/YOLOV3的DarkNet

    1K10

    【AlexeyAB DarkNet框架解析】九,YOLOV3损失函数代码详解(yolo_layer.c)

    代码解析步骤 [yolo]层 YOLOV3使用[yolo] 层来计算损失函数以及预测分类和边界框回归,前面经过 darknet-53 的基础网络提取特征,又经过一些特征融合,就得到了3个不同尺度的 yolo max_boxes表示一张图片中最多有max_boxes个ground truth矩形框,每个真实矩形框有 //5个参数,包括x,y,w,h四个定位参数,以及物体类别),注意max_boxes是darknet index + 3 * stride]) * iou_normalizer; } else { // https://github.com/generalized-iou/g-darknet count, w, h, netw, neth, relative, letter);//调整 box 大小 return count; } 后记 yolo_layer.c到这里就讲完了,DarkNet 参考 https://github.com/hgpvision/darknet https://blog.csdn.net/caicaiatnbu/article/details/102923953 欢迎关注

    2.4K51

    Yolo-Darknet的安装和使用

    Yolo-Darknet介绍 YOLO是基于深度学习方法的端到端实时目标检测系统,目前有三个版本,Yolo-v1,Yolo-9000,Yolo-v2。 Darknet是Yolo的实现,但Darknet不仅包含Yolo的实现,还包括其它内容。 2. Darknet安装 安装过程如下: # 代码下载 git clone https://github.com/pjreddie/darknet.git # 修改Makefile cd darknet sed /darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg ? 输入图像名称进行检测 $ . /darknet/install/ https://pjreddie.com/darknet/yolo/ https://pjreddie.com/darknet/yolov1/

    2.1K70

    【AlexeyAB DarkNet框架解析】四,网络的前向传播和反向传播介绍以及layer的详细解析

    这个AlexeyAB DarkNet框架解析在AlexeyAB的DarkNet源码上会做大量注释,我克隆该工程然后添加注释,注释版DarkNet工程地址为:https://github.com/GiantPandaCV /darknet 前言 前面我们已经成功的获取了目标检测的网络结构(cfg文件的内容),并将网络保存在了一个network结构体中,然后我们还分析了数据加载方式。 值 // (该参数通过make_region_layer()函数赋值,在parser.c中调用的make_region_layer()函数), // 可以在darknet int dropblock_size_abs; int dropblock; float scale; // 在dropout层中,该变量是一个比例因子,取值为保留概率的倒数(darknet 可能没有,新版的darknet才有coco9k.map这个文件), * 可以发现,coco.names中每一个物体类别都可以在9k.names中找到,且coco.names中每个物体类别名称在

    86321

    【翻译】手把手教你用AlexeyAB版Darknet

    不过自来自俄国的大神AlexeyAB在不断地更新darknet, 不仅添加了darknet在window下的适配,而且实现了多种SOTA目标检测算法。 /darknet,window下使用darknet.exe. Linux中命令格式类似./darknet detector test ./cfg/coco.data . 如果使用CPU运行, 用darknet_no_gpu.exe 代替 darknet.exe。) 如果想要改数据集路径的话,请修改 build\darknet\cfg\voc.data文件。 /darknet detector train data/obj.data yolo-obj.cfg darknet53.conv.74 (使用./darknet 而不是 darknet.exe)。 /darknet/blob/master/darknet_video.py C API:https://github.com/AlexeyAB/darknet/blob/master/include/darknet.h

    2.8K20

    扫码关注腾讯云开发者

    领取腾讯云代金券