darknet训练自己的数据

voc数据格式:

  • –VOC
    • –Annotations //存放xml文件,每一个xml对应一张图像及各个目标的位置和类别信息
    • –ImageSets
      • –Main //存放train.txt、val.txt等,该文本文件里为图像名字(无后缀无路径)
      • –Layout
      • –Segmentation
    • –JPEGImages //原始图像
    • –SegmentationClass
    • –SegmentationObject

数据准备:

  1. 根据voc数据格式新建所有文件夹;
  2. 将图片放到JPEGImages下;
  3. ImageSets/Main下,新建train.txt存放训练图片名称,val.txt存放验证图片名称;
  4. 用lableimage生成xml
  5. 修改darknet\scripts\voc_label.py中对应文件位置;
    • 注意Difficult首字母大写;
    • 运行完后会在VOC新生成文件夹labels,同时在scripts\下应该生成了2017_train.txt、2017_val.txt,txt文件存放图片路径
    • labels文件夹存放图片坐标及其对应的类别
      txt文件可放到JPEGImages ,也可不放,注意文件夹名称不同时,需要放。
      这里写图片描述

训练流程:

  1. 新建voc.data
    classes= 2
    train  = E:/darknet/build/darknet/x64/data/myvoc/2017_train.txt //训练文件
    valid  = E:/darknet/build/darknet/x64/data/myvoc/2017_val.txt  //验证文件
    names = E:/darknet/build/darknet/x64/data/myvoc/voc.names  //类别名称
    backup = E:/darknet/build/darknet/x64/data/myvoc/backup/  //存放训练完成的权重,100/200/1000次
  1. 新建voc.names
    • 存放类别
    person
    car
  1. 修改tiny-yolo-voc.cfg
    • 修改region/classes
    • 修改最后convolutional/filters,filter=num×(classes + coords + 1)=5×(2+4+1)=35
  2. 训练
    • darknet detector train E:\darknet\build\darknet\x64\data\myvoc\voc.data E:\darknet\build\darknet\x64\data\myvoc\tiny-yolo-voc.cfg
    • ./darknet detector train data/myvoc/voc.data data/myvoc/tiny-yolo-voc.cfg
  3. 加载训练好的权重进行训练
  4. 测试
    • darknet.exe detector test data/myvoc/voc.data data/myvoc/tiny-yolo-voc.cfg data/myvoc/tiny-yolo-voc_200.weights E:/darknet/scripts/VOCdevkit/myVOC2017/JPEGImages/s8.jpg -thresh 0.3

没有更多推荐了,返回首页