特此声明:训练过程预先认为你对yolov3神经网络有一定了解的基础上进行

目录

一、先备齐下面的工具(预先善其事,必先利其器)

二、接下里使用我们的工具编译我们的环境

三、 训练自己的数据集

1.  制作训练样本

2. 准备训练前必备的文件

四、 训练及测试

4.1 训练

4.2 测试


一、先备齐下面的工具(预先善其事,必先利其器)

(如果你不想走弯路,还是按照我说的来吧)

1、VS2015 x64版本 自定义安装即可

2、darknet windows版本 链接:https://download.csdn.net/download/zsl091125/10856959

3、CUDA9.1 cudnn7.1

先安装在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1

cudnn解压出来直接覆盖该目录

下面是我的安装路径

. opencv3.4.0  解压,目录命名结构如下(C:\opencv_3.0\opencv\build)

下面是我的安装路径

上面安装完后,看一下环境变量,我的是win10下的环境变量,特别注意opencv_3.0的环境变量; 一般cuda的环境变量会自动加入,不需要我们管

二、接下里使用我们的工具编译我们的环境

1.  打开 darknet\build\darknet\darknet.sln

2. 右击选中部分,点重新生成,如果是按照我上面的流程安装,会编译很顺利的。

darknet \build\darknet\x64  中会生成 darknet.exe

三、 训练自己的数据集

1.  制作训练样本

我本人先用下面博客(https://blog.csdn.net/u011574296/article/details/78953681)使用的工具标注为voc数据集格式的xml文件,然后利用python自己转换了以下格式。

1.1 voc数据集xml格式如下:

1.2 yolov3使用的txt格式如下:

每张图片xxx.jpg对应一个label文件xxx.txt,  txt中的数据实际是像素点值除以实际宽高的,也就是占比

含义分别对应:

类别下标(从0开始)    中心点x坐标   中心点y坐标   目标宽度   目标高度

2. 准备训练前必备的文件

2.1、 类名字文件:defect.names 。

我的类文件名字如下:

2.2、 数据描述文件:defect.data。

从上到下分别为类别数量,训练集位置,测试集位置,类名字文件,训练模型保存路径

2.3  训练集(defect_train.txt)和测试集(defect_test.txt )位置文件:

2.4、存放图片的位置,在当前目录train中,每张图片都会有对应的label文件:

2.5. 网络配置文件(在cfg/yolov3-voc.cfg的基础上改的):

对参数的解释详见https://mp.csdn.net/postedit/85010833

yolo层前面的卷积层的filters数目=3x(classes+5),和聚类数目分布有关。如果想修改默认anchors数值,使用下面命令即可,当然也可以默认就可以。

darknet.exe detector calc_anchors data/voc.data -num_of_clusters 9 -width 416 -heigh 416

四、 训练及测试

4.1训练

开始训练(开始loss比较大,慢慢来,会降下去的):build\darknet\x64\darknet.exe detector train data\defect.data data\yolov3.cfg

(我用了50个小时训练,loss最后稳定在0.7,准确率达到了工程需求)

4.1.2 训练的过程中backup目录里面每到一定迭代次数,会有模型参数文件保存下来(比如yolov3_defect_1000.weights)。

00.weights

4.2 测试

00.weight

Yolov3实战 基于darknet window版的更多相关文章

  1. YOLO-V3实战(darknet)

    一. 准备工作 1)实验环境: darknet 是由 C 和 CUDA 开发的,不需要配置其他深度学习的框架(如,tensorflow.caffe 等),支持 CPU 和 GPU 运算,而且安装过程非 ...

  2. 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码

    在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...

  3. 基于股票大数据分析的Python入门实战(视频教学版)的精彩插图汇总

    在我写的这本书,<基于股票大数据分析的Python入门实战(视频教学版)>里,用能吸引人的股票案例,带领大家入门Python的语法,数据分析和机器学习. 京东链接是这个:https://i ...

  4. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  5. 《Selenium2自动化测试实战--基于Python语言》 --即将面市

    发展历程: <selenium_webdriver(python)第一版>   将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...

  6. 【阿里云产品公测】云引擎ACE新手实战基于Wordpress

    [阿里云产品公测]云引擎ACE新手实战基于Wordpress 作者:阿里云用户imnpc ACE(Aliyun Cloud Engine) 是一款弹性.分布式的应用托管环境,支持Java.php多种语 ...

  7. Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课

    Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课 本课程采用Q Q群直播方式进行直播,价值99元视频课程免费直播.完整的基于Swift项目实战,手把手教你做一个Swift版i ...

  8. 微信小程序实战之百思不得姐精简版

    原文:微信小程序实战之百思不得姐精简版 微信小程序基本组件和API已撸完,总归要回到正题的,花了大半天时间做了个精简版的百思不得姐,包括段子,图片,音频,视频,四个模块.这篇就带着大家简述下这个小的A ...

  9. 关于《Selenium3自动化测试实战--基于python语言》

    2016年1月,机缘巧合下我出版了<Selenium2自动化测试实战--基于python语言>这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目 ...

随机推荐

  1. Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  2. Entity Framework学习笔记——记一个错误解决方式及思路

    继续之前设定的学习目标前,先来一篇小小的外篇.按照第一篇里的配置方式配置好的工程前两天还能正常工作,昨天却突然无法通过Add-Migration命令进行数据库的升级.错误信息如下: System.Da ...

  3. 更改vsts源代码绑定服务器地址方法

    第一步找到更改源代码管理 第二步首先选中第一个,滚动条拉至最后一项,点击最后一项(全选). 第三步点击绑定,vsts会自动签出所有项目,而后签入就可以更改成功了.

  4. 06SpringMvc_适配器

    适配器的主要功能是去找控制器.Action实现了什么接口 本文案例实现的功能是:在页面上输入中文名字,然后在另外一个网页上显示出来. 案例结构:

  5. ENVI/IDL与ArcGIS集成开发的三种途径

    转载:本文来自ENVI5.0-IDL8.2系列产品白皮书_201303.PDF(Esri中国官网可下载)中P7-P10 ENVI 是一个非常开放的平台,提供一个健全的函数库,几乎涵盖ENVI 平台大部 ...

  6. pageoffice razor pageofficelink方式调用js实现操作文档

    用官方的开发者帮助文档即可,在后台实例化时一定要将pageofficecontrol控件的id属性定义,然后在前台通过定义的id属性来调用相应的方法

  7. Python之路-正则表达式

    作业一:整理正则表达式博客 正则表通常被用来检索.替换那些符合某个模式(规则)的文本,为了提取对自己有用的信息,由命令解释执行:而通配符和命令是同一级别,为了提示处理效率,直接由shell解释执行. ...

  8. Python实战之int学习笔记及简单练习

    ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__ ...

  9. Ext Designer生成表格

    1.生成表格代码 Ext.MyPanel=Ext.extend(Ext.Panel ,{ xtype:"panel", title:"我的面板", width: ...

  10. Mysql中给有记录的表添加唯一索引

    ALTER IGNORE TABLE neeqs ADD UNIQUE KEY `unique` (`seccode`, `enddate`, `f002v`);