darknet使用自己的数据集 图像分类

首先是数据存放的地方:

打开我们编译好的darknet文件 存放我们自己的数据 :

darknet-master是我编译好的darknet文件  

找到data文件将自己的数据集放入 (这里的是花的一个数据集)darknet使用自己的数据集 图像分类_第1张图片我使用

 

train 和 test 是我们存放我们的图片数据(展示train文件夹):

存放的是6个类别信息

darknet使用自己的数据集 图像分类_第2张图片

 

展示第一个类别信息

darknet使用自己的数据集 图像分类_第3张图片

 

之后创建一个labels.txt文件 存放我们的类别名称:

darknet使用自己的数据集 图像分类_第4张图片

 

之后创建一个data.txt文件将

   find `pwd`/train -name \*.jpg > train.list
   find `pwd`/test -name \*.jpg > test.list

写入到data.txt文件中

darknet使用自己的数据集 图像分类_第5张图片

 

再将data.txt 修改为data.sh  (生成data.sh格式要装有Git,否则文件不可用)

darknet使用自己的数据集 图像分类_第6张图片

 

点击data.sh会获取两个文件  test.list  train.list  存放的是我们图片的路径(下列展示为文本打开方式):

darknet使用自己的数据集 图像分类_第7张图片

 

通过文本格式打开 test.list和train.list  将图片的路径修改   将 /e/  修改为E:\(我这里是e盘,根据不同情况修改     就是自己图片的路径 最好是绝对路径相对路径我没试过):

darknet使用自己的数据集 图像分类_第8张图片

 

接下来就是进入 cfg文件(跟data文件同级目录 ):

darknet使用自己的数据集 图像分类_第9张图片

darknet使用自己的数据集 图像分类_第10张图片

 

cfg存放的是我们的一些网络结构和一些参数:

创建mouth.data  mouth.cfg两个文件(你可以创建一个文件夹 最好不要有中文,只要运行是的路径对就没问题,这里我是直接创建的):

darknet使用自己的数据集 图像分类_第11张图片

在通过文本方式打开 mouth.data写入  :

      classes=5

      train  = E:\darknet-master\build\darknet\x64\data\flower\train.list

      valid  = E:\darknet-master\build\darknet\x64\data\flower\test.list

      labels = E:\darknet-master\build\darknet\x64\data\flower\labels.txt

      backup = E:\darknet-master\build\darknet\x64\data\flower\

      top=5

darknet使用自己的数据集 图像分类_第12张图片

获取我们在data文件中创建 flower中的  test.list  train.list  labels.txt 这些文件

这里面 classes 是自己训练模型的类别个数  我这里是5分类   top我忘了.....(跟classes一样一样就行了......)

backup = E:\darknet-master\build\darknet\x64\data\flower\    是保存我们的一些数据如权重等 保存到我们路径下的文件夹下(我这个保存到我放入的数据集中了)

再通过文本方式打开 mouth.cfg写入  

[net]

batch=16

subdivisions=1

height=48

width=48

channels=3

max_crop=48

min_crop=48

hue=.1

saturation=.75

exposure=.75

learning_rate=0.01

policy=poly

power=4

max_batches = 5000

momentum=0.9

decay=0.0005

[convolutional]

batch_normalize=1

filters=12

size=3

stride=1

pad=1

activation=leaky

[maxpool]

size=2

stride=2

[convolutional]

batch_normalize=1

filters=24

size=1

stride=1

pad=1

activation=leaky

[maxpool]

size=2

stride=2

[convolutional]

batch_normalize=1

filters=48

size=3

stride=1

pad=1

activation=leaky

[maxpool]

size=2

stride=2

[connected]

output=128

activation=relu

[connected]

output=5

activation=linear

[softmax]

 

darknet使用自己的数据集 图像分类_第13张图片

里面存放的是网络结构的一些参数 如 批次啦 图片大小啦  等等一些数据

 

这些数据 注意最后一个 output = 是你的类别总数  我这里是  5个类别 所以是 output=5 

相当于全连接层

 

最后就是训练数据 进入x64目录下 cmd 进入虚拟环境 

darknet使用自己的数据集 图像分类_第14张图片

输入darknet classifier train cfg/mouth.data cfg/mouth.cfg 就可以运行了

mouth.data  mouth.cfg是我们在cfg创建的文件

 

效果展示

darknet使用自己的数据集 图像分类_第15张图片

保存地址

darknet使用自己的数据集 图像分类_第16张图片

注:这是我之前看的一个博客所编写的一个txt文件  过了几个月之后又用到这个模型了,于是想着发一篇关于训练自己数据的博客(方便自己使用)但是没找到之前的博客  如有侵权请告知

 

 

你可能感兴趣的:(darknet使用自己的数据集 图像分类)