当前位置:首页 > 时尚生活

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

欢迎来到“两小时开源框架系列”专栏,这是我们的第12篇文章。caffe,tensorflow,pytorch,mxnet,keras,paddlepaddle,cntk,chainer,deeplearning4j,matconvnet,lasagne前面都提到过。

今天,darknet也是最后一个框架。关于本文中使用的数据和代码,请参考我们的官方git

https://github.com/longpeng2008/yousan.ai

作者&:编辑|有三个字

1 Darknet是什么

首先,我得表扬一下Darknet的主页,风格不错。

官网地址:https://pjreddie.com/darknet/

https://github.com/pjreddie/darknet

Darknet本身就是约瑟夫·雷德蒙为Yolo系列开发的框架。

约瑟夫·雷德蒙(Joseph Redmon),一个从《看一次变得更好、更快、更强》到《增量改进》,也就是从Yolo v1到Yolo v2和Yolo v3的男人,他的肖像很好。

Darknet几乎不依赖于库。是用C和CUDA编写的深度学习开源框架,支持CPU和GPU。

我们的第一个开源框架是caffe,但是现在最后一个Darknet和Caffe很像,但是更轻量级。

2 Darknet结构解读

首先,我们来看一下Darknet的代码结构,如下所示:

cfg有几个子目录,数据,例子,包括,python,src,S..

2.1数据目录

Imagenet.labels.list为:

n02120505

n02104365

n02086079

n02101556

我看得出是imagenet的类代码,对应的imagenet.shortnames.list是:

小狐

英语二传手

西伯利亚哈士奇

澳大利亚梗

可以看出,这两个文件存储了imagenet1000的类别信息。

再看9k.labels、9k . name、9k.trees,里面存储了Yolo9000论文对应的9418个类别。Coco.names,openimages.names和voc.names都差不多。

2.2 cfg目录

Cfg,下面有两种类型的文件,一种是。另一个是。cfg文件。当我们打开imagenet1k.data文件时,可以看到它配置了训练数据集的信息:

类别=1000 ##类别数量

train =/data/imagenet/imagenet 1k . train . list # #训练文件

valid =/data/imagenet/imagenet 1k . valid . list # #测试文件

backup =/home/pjreddie/backup/# #培训结果保存文件夹

labels = data/imagenet . labels . list #标签

name = data/imagenet . short name . list

top=5

另一种是。cfg文件。让我们打开cifar.cfg文件进行查看。

# #-1优化参数配置# #

[净]

批次=128

细分=1

高度=28

宽度=28

通道=3

max_crop=32

min_crop=32

# #数据增强参数

色调=.1

饱和度=.75

曝光=.75

# #学习速度策略

学习率=0.4

政策=poly

功率=4

Max _ beats = 5000 # #次迭代

动量=0.9 ##动量项

衰减=0.0005 ##常规项目

# #-2网络参数配置# #

[卷积]

Batch_normalize=1 ##是否要使用Batch_normalize

过滤器=128

尺寸=3

stride=1

pad=1

激活=泄漏##激活功能

[卷积]

batch_normalize=1

过滤器=128

尺寸=3

stride=1

pad=1

激活=泄漏

[卷积]

batch_normalize=1

过滤器=128

尺寸=3

stride=1

pad=1

激活=泄漏

[maxpool]

尺寸=2

stride=2

[辍学]

概率=.5

[卷积]

batch_normalize=1

过滤器=256

尺寸=3

stride=1

pad=1

激活=泄漏

[卷积]

batch_normalize=1

过滤器=256

尺寸=3

stride=1

pad=1

激活=泄漏

[卷积]

batch_normalize=1

过滤器=256

尺寸=3

stride=1

pad=1

激活=泄漏

[maxpool]

尺寸=2

stride=2

[辍学]

概率=.5

[卷积]

batch_normalize=1

过滤器=512

尺寸=3

stride=1

pad=1

激活=泄漏

[卷积]

batch_normalize=1

过滤器=512

尺寸=3

stride=1

pad=1

激活=泄漏

[卷积]

batch_normalize=1

过滤器=512

尺寸=3

stride=1

pad=1

激活=泄漏

[辍学]

概率=.5

[卷积]

过滤器=10

size=1

stride=1

pad=1

激活=泄漏

[avgpool]

[softmax]

组=1

它由两部分组成。第一部分是优化参数的定义,类似caffe的solver.prototxt文件。第二部分是网络定义,类似caffe的train.prototxt文件,只是网络层是用[],批量归一化和激活函数是用[卷积]配置的。

最终的avgpool不需要配置池半径,softmax也不需要配置输入输出,所以组参数设置在最后。

你可能很好奇,残网怎么弄?

[快捷方式]

激活=泄漏

from=-3

如上所述,用from=-3参数配置意味着返回3个块。

2.3 python目录

下面只有两个文件,分别是darknet.py和proverbot.py..前者是python调用yolo模型的情况,后者没有用。

2.4包含、src、示例目录

Include和src是具体函数,卷积等运算在这里。例子是高级任务的定义,包括分类器和检测器。代码的解释超出了本文的内容,后面会详细说明。

3 数据准备和模型定义

3.1数据准备

之前介绍的都介绍过了,就开始准备培训资料了。和caffe一样,数据准备的过程非常简单。

首先,在数据目录中设置我们自己的任务,按照下面的目录准备文件

├──基因数据

├──标签

├──试验

├──测试列表

├──火车

└──火车.列表

使用以下命令生成文件

查找“pwd ”/ train-name *。jpg >。train.list

查找` pwd`/test -name *。jpg >。test.list

每行存储一个文件,标签通过后缀获得。

/Users/long Peng/Desktop/darknet/data/mouth/train/60 _ smile . jpg

/Users/long Peng/Desktop/darknet/data/mouth/train/201 _ smile . jpg

/Users/long Peng/Desktop/darknet/data/mouth/train/35 _ neutral . jpg

/Users/long Peng/Desktop/darknet/data/mouth/train/492 _ smile . jpg

标签的内容存储在labels.txt中,如下所示

中立的

微笑

3.2配置培训文件路径和网络

转到cfg目录并创建文件mouth.data和mouth . CFG mouth . data的内容如下:

classes = 2

train = data/mouth/train.list

valid = data/mouth/test.list

labels = data/mouth/labels.txt

backup = mouth/

top=5

mouth.cfg内容如下:

[净]

批次=16

细分=1

高度=48

宽度=48

通道=3

max_crop=48

min_crop=48

色调=.1

饱和度=.75

曝光=.75

学习率=0.01

政策=poly

功率=4

最大批次= 5000

动量=0.9

衰变=0.0005

[卷积]

batch_normalize=1

过滤器=12

尺寸=3

stride=1

pad=1

激活=泄漏

[maxpool]

尺寸=2

stride=2

[卷积]

batch_normalize=1

过滤器=24

size=1

stride=1

pad=1

激活=泄漏

[maxpool]

尺寸=2

stride=2

[卷积]

batch_normalize=1

过滤器=48

尺寸=3

stride=1

pad=1

激活=泄漏

[maxpool]

尺寸=2

stride=2

[已连接]

输出=128

激活=relu

[已连接]

输出=2

激活=线性

[softmax]

这里我们用一点数据增强操作,后面会看到它的威力。

4 模型训练

使用以下命令进行训练:

。/darknet分类器train CFG/mouth . data CFG/mouth . CFG

培训结果如下:

上面每一行显示:批号、纪元号、损耗、平均损耗、学习率、时间、看到的样本数。

提取并显示最终结果,损耗变化如下,说明收敛完美。

培训结束后,使用以下脚本进行测试。

。/darknet分类器有效CFG/mouth . data CFG/mouth . CFG mouth/mouth _ 50 . weights

样本的结果如下:

darknet/data/mouth/test/27 _ smile . jpg,1,0.006881,0.993119,

99:前1: 0.960000,前5: 1.000000

样本darknet/data/嘴部/test/27 _ smile.jpg被归为1类,被归为0和1的概率分别为0.006881和0.993119,这是第99个测试样本,top1和top5的平均准确率分别为0.96和1。

到目前为止,我们已经在不到500个样本中完成了精度良好的分类器的训练。有了这么轻便的暗网,我决定粉一下。

总结

本文阐述了如何使用darknet深度学习框架来完成一个分类任务。虽然框架小,但是真的很快,很轻。建议玩深度学习特别是计算机视觉的都要用。

1.《darknet 【darknet速成】Darknet图像分类从模型自定义到测试》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《darknet 【darknet速成】Darknet图像分类从模型自定义到测试》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/725801.html

上一篇

流入天津涉疫雪糕仍有21盒在追查 相关接触者核酸均阴性

下一篇

2.5万美军到位 华盛顿像武装营地 过程真相详细揭秘!

美媒再曝国会骚乱细节:示威者被警察“目送”上楼 肆意拍摄机密文件

  • 美媒再曝国会骚乱细节:示威者被警察“目送”上楼 肆意拍摄机密文件
  • 美媒再曝国会骚乱细节:示威者被警察“目送”上楼 肆意拍摄机密文件
  • 美媒再曝国会骚乱细节:示威者被警察“目送”上楼 肆意拍摄机密文件
电脑重装系统文件会丢失吗 重装系统硬盘上的资料会丢失吗?

电脑重装系统文件会丢失吗 重装系统硬盘上的资料会丢失吗?

win10重装系统硬盘上的数据会丢失吗?这是许多用户在重新安装系统之前都会考虑的问题。下面云骑士给大家介绍一下。  系统的一键重新安装只会清除系统磁盘上的数据,而不会影响其他磁盘。一般电脑的...

qlv文件怎么转换成mp4 qlv文件怎么转换成mp4?腾讯视频转换为mp4的方法

  • qlv文件怎么转换成mp4 qlv文件怎么转换成mp4?腾讯视频转换为mp4的方法
  • qlv文件怎么转换成mp4 qlv文件怎么转换成mp4?腾讯视频转换为mp4的方法
  • qlv文件怎么转换成mp4 qlv文件怎么转换成mp4?腾讯视频转换为mp4的方法
主持人手卡尺寸 说话的分寸,就是做人的尺寸!

主持人手卡尺寸 说话的分寸,就是做人的尺寸!

《春秋》有云:“人之所以为人,是因为说话。”说吧,也许大家都会。但不是每个人都能说好。古往今来,不难发现,不懂得恰当说话的人,一般都很难成就大事。能成就大事的人,往往学会说话。很多时...

临时文件清理 如何删除临时文件夹

  • 临时文件清理 如何删除临时文件夹
  • 临时文件清理 如何删除临时文件夹
  • 临时文件清理 如何删除临时文件夹

jpg图片怎么转换成pdf jpg图片怎么转换成pdf文件?这个工具一键搞定

  • jpg图片怎么转换成pdf jpg图片怎么转换成pdf文件?这个工具一键搞定
  • jpg图片怎么转换成pdf jpg图片怎么转换成pdf文件?这个工具一键搞定
  • jpg图片怎么转换成pdf jpg图片怎么转换成pdf文件?这个工具一键搞定

微孔过滤 精细过滤和粗过滤微孔过滤器的区别以及保养方式

孔隙过滤器主要用于制药、生物制品、食品等行业的预过滤和终端精密杀菌过滤。从结构上看,它由折叠式微孔膜滤芯和不锈钢外筒组成,内装单芯或多芯滤芯。过滤筒采用快装夹具或螺栓连接,拆卸非常方便。它具...

空调空气过滤器 空调空气过滤器有几种类型

空调空气过滤器 空调空气过滤器有几种类型

昆山嘉禾为您推广空调节空空气过滤器 冬天冷不开空会生病。很多家庭一年更换一次空空气滤清器,每次看到更换的空空气滤清器都脏到完全堵塞。人们通常不会注意到完全堵塞的空气体过滤器无法过滤空气体。...