在win10下用yolov3训练自己的数据集

1.  在darknet-master\build\darknet\x64 新建yolo-obj.cfg文件(可以直接复制yolov3.cfg,然后重命名为yolo-obj.cfg),

然后就是修改这个文件内容了。

将batch 改成64 :batch=64

将subdivisions 改成8 :subdivisions=8

将每个yolo下(共有3处)的classes改成你自己的类的数量 :classes = 1(我的是1类)

将每个yolo上面第一个convolutional下的filters改成你自己的大小,计算方法是: filters=(classes + 5)x3   ,由于我的是1类,所以我的filters=18. (和上面一样,共有3处,3个yolo,每个yolo上面的第一个convolutional下的filters)每个yolo上面的第一个convolutional是网络的最后一个输出层。

!!!注意注意:如果你对显卡较差(4G显存以下),会出现内存溢出错误(Out of memory),改正方法:将batch改小些(64,32,16,8),将random改成0关闭多尺度训练。

2.在build\darknet\x64\data\下新建obj.names文件,里面写入你的类名,每个类名占一行。

3.在build\darknet\x64\data\下新建obj.data文件

把类别数改成你自己的数量。其他不变。

4.将你的所有样本图片放到:build\darknet\x64\data\obj\

5.将所有图片对于的txt文件也放到:build\darknet\x64\data\obj\

txt文件格式如下

jpg图片对应的txt可以用python脚本生成(不过要先用图片标注工具将目标圈出来,生成的是xml文件),下面是标注工具的下载链接:

链接:https://pan.baidu.com/s/1Vq5A96iB2Mo0waguvQSa2Q 密码:drlh

下面是将xml装成txt的脚本:

import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import joinclasses = ["bicycle"]  # 自行车检测def convert(size, box):dw = 1. / size[0]dh = 1. / size[1]x = (box[0] + box[1]) / 2.0y = (box[2] + box[3]) / 2.0w = box[1] - box[0]h = box[3] - box[2]x = x * dww = w * dwy = y * dhh = h * dhreturn (x, y, w, h)def convert_annotation(image_id):in_file = open('D:/darknet-master/scripts/VOCdevkit/voc/Annotations/%s.xml' % (image_id))out_file = open('D:/darknet-master/scripts/VOCdevkit/voc/labels/%s.txt' % (image_id), 'w')  # 生成txt格式文件tree = ET.parse(in_file)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)for obj in root.iter('object'):cls = obj.find('name').textif cls not in classes:continuecls_id = classes.index(cls)xmlbox = obj.find('bndbox')b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text),float(xmlbox.find('ymax').text))bb = convert((w, h), b)out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')image_ids_train = open('D:/darknet-master/scripts/VOCdevkit/voc/list.txt').read().strip().split('\',\'')  # list格式只有000000 000001# image_ids_val = open('/home/*****/darknet/scripts/VOCdevkit/voc/list').read().strip().split()list_file_train = open('boat_train.txt', 'w')
list_file_val = open('boat_val.txt', 'w')for image_id in image_ids_train:list_file_train.write('D:/darknet-master/scripts/VOCdevkit/voc/JPEGImages/%s.jpg\n' % (image_id))convert_annotation(image_id)
list_file_train.close()  # 只生成训练集,自己根据自己情况决定# for image_id in image_ids_val:#    list_file_val.write('/home/*****/darknet/boat_detect/images/%s.jpg\n'%(image_id))
#    convert_annotation(image_id)
# list_file_val.close()

5.在build\darknet\x64\data\下新建train.txt

将你的训练图片的路径放入文件,每行一个路径,如下图:

6.将darknet的预训练权重放入build\darknet\x64,下面是我的网盘链接,我的网盘里有:

链接:https://pan.baidu.com/s/1Gdo2gj1bggjUtW9CyYkIpQ 密码:x5ht

7.修改网络配置文件Makefile(在\darknet-master路径下)

8.打开win10终端,cd进入darknet-master\build\darknet\x64路径,然后输入:darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74   开始训练。

9.训练时,每训练100轮,都会生成一个权重文件在build\darknet\x64\backup\ 下,文件名例如:yolo-obj_100.weights(后面的100是训练100轮是的权重)。

10.测试训练效果:

将那个backup文件下最后一个权重文件复制到build\darknet\x64\文件下,打开win10终端,cd进入然后运行darknet-master\build\darknet\x64路径,然后输入:darknet.exe detector test data/obj.data yolo-obj.cfg yolo-obj_100.weights(最后的权重改为你自己的权重)。终端会提醒你输入图片路径,然后你输入测试图片的绝对路径即可看到效果。

参考教程:https://github.com/AlexeyAB/darknet#how-to-compile-on-linux

win10下yolov3训练自己的数据集相关推荐

  1. Win10下YOLOv3配置、制作数据集与训练检验

    文章目录 前言 1.YOLO项目 2.电脑配置与环境 2.1 安装Cuda 2.1.1 查看本机驱动版本 2.1.2 安装过程 2.2 安装Cudnn 2.3 安装OpenCV 2.4 安装VS201 ...

  2. 小白教程:Ubuntu下使用Darknet/YOLOV3训练自己的数据集

    小白教程:Ubuntu下使用Darknet/YOLOV3训练自己的数据集 YOLOV3官网教程:https://pjreddie.com/darknet/yolo/ 使用预训练模型进行检测 git c ...

  3. win10+keras+yolo4训练自己的数据集

    win10+keras+yolo4训练自己的数据集 ** 一.下载准备 1.(1)yolo4的github代码:https://github.com/Ma-Dan/keras-yolo4 (2)所准备 ...

  4. YOLOV3训练自己的数据集(PyTorch版本)

    由于这一段时间从事目标检测相关工作,因而接触到yolov3,进行目标检测,具体原理大家可以参考大神的博客目标检测(九)--YOLO v1,v2,v3,我就不细讲了,直接进入正题,如何利用深度学习框架P ...

  5. 『论文笔记』TensorFlow1.6.0+Keras 2.1.5+Python3.5+Yolov3训练自己的数据集!

    TensorFlow1.6.0+Keras 2.1.5+Python3.5+Yolov3训练自己的数据集! 文章目录 前期准备 一. Yolov3简要介绍 1.1. Yolov3网络结构图 1.2. ...

  6. WIN10使用YOLOX训练自己的数据集(图解超详细)

    文章目录 WIN10使用YOLOX训练自己的数据集(图解超详细) 下载YOLOX源码 配置环境,修改源码 添加权重文件 建立VOCdevkit文件夹 添加数据集 划分训练集和测试集 修改 类别 为自己 ...

  7. yolov3 训练自己的数据集 手把手教学 ubuntu 18.04 显卡1650 显存4g 跟着操作做保证学会

    yolov3 训练自己的数据集 手把手教学 ubuntu 18.04 显卡1650 显存4g 跟着操作做保证学会 这是我的训练效果,成功实现裂痕检测 演示视频:https://b23.tv/Ccmwi ...

  8. yolov3训练自己的数据集——第一次实操完整记录

    参考: yolov3 darknet yolo源码解析 bacth参数对性能影响 backpropogation算法 yolo中7*7个grid和rpn中的9个anchors darknet源码学习 ...

  9. Windows10下使用darknet和YOLOV3训练自己的数据集

    前言 1.我的环境是windows10,vs2015,cuda9.1,cudnn7.1. 2. darknet加yoloV3,用cmake和vs2015编译成darknet.exe. 3. 我的目录结 ...

最新文章

  1. iOS-生成国际化包-配置App多语言支持
  2. Python基础(三):字符串和元组常用方法
  3. how is sales pipeline retrieved from backend
  4. UVa1607 poj1435 UVaLive1686 Gates
  5. shell脚本注意点
  6. 博士当中学老师是“人才浪费”?
  7. vue如何把数组转为json数组_vue.js,_vuejs Ajax取得一个数据json数组,vue.js - phpStudy...
  8. SAS中修改一个表为编辑模式的时候不成功并给出警告的原因及解决办法
  9. 素数c语言,C语言素数怎么表示
  10. Backbone - Involution: Inverting the Inherence of Convolution for Visual Recognition
  11. 用matlab求roc曲线的面积Auc,sklearn计算ROC曲线下面积AUC
  12. 多元逻辑回归 - 小技巧(一)
  13. qt打开xls文件_使用QtXlsx来读写excel文件
  14. 一个简单光栅器的实现(四) 几何阶段的坐标变换的C++实现
  15. c语言5个同学三门成绩,求助:c语言 求5个同学语数外三门功课的总分与均分。大家看我错在哪了...
  16. 区块链行业人才市场大盘点(附求职指南)
  17. 用青龙面板跑闲趣赚(趣闲赚)脚本(收益超级稳定)
  18. XTPToolKitPro常用功能
  19. 网上电子元器件采购商城:打破采购环节信息不对称难题,赋能企业高效协同管理
  20. Windows下 wget 的安装与使用

热门文章

  1. PostgreSQL设置字段默认值汇总(包含varchar,int,bool,时间,主键自增)
  2. houseoforange_hitcon_2016(unsortbin attack,fsop)
  3. windows下ssh server搭建方法
  4. C++ 项目实战:跨平台的文件与视频压缩解压工具的设计与实现
  5. linux系统 安装nvm
  6. 模拟海_学前教育系未来之星 课堂模拟大赛
  7. 第一遍Java学习笔记
  8. 怎样用postman做接口测试,一篇足矣
  9. 【阅读笔记】Gradient Harmonized Single-stage Detector
  10. EOS智能合约开发系列(13): 多签合约代码分析(二)