美文网首页
darknet调参

darknet调参

作者: yanghedada | 来源:发表于2019-01-16 23:44 被阅读17次

使用darknet调参

https://github.com/pjreddie/darknet

1. 数据制作

首先把数据制作成voc格式

这里的lables将会在后面得到

划分好训练集和测试集
split_all_data.py

import json
from collections import defaultdict
import os
import random

trainval_percent = 0.0
train_percent = 1.0
xmlfilepath = 'Annotations'
txtsavepath = 'ImageSets\Main'
total_xml = os.listdir(xmlfilepath)

num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)

ftrainval = open('ImageSets/Main/trainval.txt', 'w')
ftest = open('ImageSets/Main/test.txt', 'w')
ftrain = open('ImageSets/Main/train.txt', 'w')
fval = open('ImageSets/Main/val.txt', 'w')

for i in list:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        ftrainval.write(name)
        if i in train:
            ftest.write(name)
        else:
            fval.write(name)
    else:
        ftrain.write(name)

ftrainval.close()
ftrain.close()
fval.close()
ftest.close()

2 .使用 voc_label.py把xml格式数据转换成txt格式

2. 获取anchors

根据训练文件使用k-means得到anchors

gen_anchors.py

得到合适的anchors

3.修改文件

2.创建一个my.names文件

head 

3.修改voc.data

classes= 1
train  = /home/yanghe/Desktop/YangHE/darknet/2007_train.txt
valid  = /home/yanghe/Desktop/YangHE/darknet/2007_test.txt
names = data/my.names
backup = /home/yanghe/Desktop/YangHE/darknet/results
  1. 修改.cfg文件
    yolov3-voc.cfg
  2. 这个文件种有三处[yolo]
    把每一处的yolo下的改为classes=1
  3. 同时把上一层的[convolutional]下
    filters=18 #filters的数量改成(classes+5+1)3。上图是(1+4+1)3=18
image.png

里面3个yolo层上面的conv层的filters都要修改,修改公式为3 * (classes + 5)。例如我的就是18
所有的的yolo层class改为1

3.训练

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -gpus 0,1

4 测试:

测试单张图片:

./darknet detector test cfg/voc.data cfg/yolo-voc.cfg final_voc.weights your_img_path.jpg 

运行上述代码后,会在data文件夹下找到预测后的图片。

测试已有视屏:

./darknet detector demo cfg/voc.data cfg/yolo-voc.cfg final_voc.weights your_video_path.mp4 

测试时会直接弹出一个窗口播放视屏,可以看是实时检测视屏的效果。

测试摄像头实时检测场景:

./darknet detector demo cfg/voc.data cfg/yolo-voc.cfg final_voc.weights 

和测试已有视屏类似,运行该命令后,会调用摄像头,弹出一个窗口显示摄像头拍摄实时场景,并做实时检测。

预测测试集:

./darknet detector valid cfg/voc.data cfg/yolo-voc.cfg final_voc.weights

统计测试集合测试效果:

./darknet detector recall cfg/voc.data cfg/yolo-voc.cfg final_voc.weights

参考博客:
Yolov3训练数据
深度解析
Yolov3训练数据

相关文章

  • darknet调参

    使用darknet调参 https://github.com/pjreddie/darknet 1. 数据制作 首...

  • 调参

    1首先是数据增强,因为正常情况下,数据量往往不够,因此需要通过裁剪 2数据预处理,pca,normalizatio...

  • 调参

    参数更新 神经网络的学习目的是找到使损失函数尽可能小的参数,即解决一个最优化问题.但是由于神经网络参数空间过于复杂...

  • 调参

    死亡的神经元占的比例 RELU 文中给出了一种针对ReLU神经元的特殊初始化,并给出结论:网络中神经元的方差应该是...

  • 调参

    转载https://www.sohu.com/a/241208957_787107 基本原则:快速试错 一些大的注...

  • 调参

    1.lr用1e-2-1e-3结果较好。lr值小的话,上升test auc会比较慢,但最后结果说不定会比lr大要好。...

  • Darknet框架分析(一)

    Darknet简介: darknet【https://pjreddie.com/darknet/】是一个较为轻型的...

  • 4、深度学习框架Darknet

    1、首先从Darknet的Github仓库克隆Darknet项目,克隆命令如下: 2、进入Darknet目录,接着...

  • Day 6: 参数调节

    我们平时一直都在说“调参、调参”,但实际上,不是调“参数”,而是调“超参数” 1.参数(Parameter) 参数...

  • 深度学习调参技巧 调参trick

    |公|众|号|包包算法笔记| 背景 事情的起因其实这样,实验室老同学的论文要冲分,问我有没有啥在NN上,基本都有用...

网友评论

      本文标题:darknet调参

      本文链接:https://www.haomeiwen.com/subject/eegpdqtx.html