使用yolo3模型训练自己的数据集

使用yolo3模型训练自己的数据集

本项目地址:https://github.com/Cw-zero/Retrain-yolo3

一、运行环境

1. Ubuntu16.04、

2. TensorFlow-gpu 1.4.0 或更高版本、

3. Keras 2.2.4 、

4. numpy 1.15.2(实测1.16.1会报错)。

二、创建数据集

1. 使用VOC2007数据集的文件结构:

  文件结构如下图,可以自己创建,也可以下载VOC2007数据集后删除文件内容。

  注:数据集中没有 test.py,你需要将其拷贝到VOC2007文件夹下。

2. 标注图片:

  使用LabelImg(https://github.com/tzutalin/labelImg)对训练图片进行标注生成标签,然后将所有图片放在 JPEGImages 文件夹下,将所有标签(.xml)放在 Annotations 文件夹下。

3. 划分数据集:

  python test.py  90%为训练集(train.txt), 9%为测试集(test.txt), 1%为评估数据集(val.txt)。txt文件保存在 ImageSets/Main 下。

4. 转换标签格式:

  python voc_annotation.py, 在执行之前,需要根据数据集的实际类别,修改voc_annotation.py中的classes(与标注时的class名字一样)。执行之后,将会得到train.txt、test.txt、val.txt,文本内容是:

  img_path、box位置(top left bottom right)、类别索引(0 1 2 ...)

三、准备训练

1.修改yolo3的网络结构:打开yolo3.cfg,搜索"yolo",如下图所示,需要修改filters、classes、random,一共可搜索到三处yolo,每处都需要修改。

  filters = 3x(5+len(classes))

  classes = len(classes)

  random:默认是1,显存小改为0

2. 确认相关依赖文件:

  a. model_data/voc_classes.txt:与你的class一致,一般需要手动修改;

  b. model_data/yolo_anchors.txt:确认存在即可;

  c. model_data/yolo_weights.h5:由 yolov3.weights 转换得到,需要先下载yolov3.weights,然后 python convert.py yolov3.cfg yolov3.weights model_data/yolo_weights.h5

  d. 存在logs文件夹

3. 开始训练:python train.py

参考:

https://github.com/qqwweee/keras-yolo3

  

原文地址:https://www.cnblogs.com/justcoder/p/10520997.html

时间: 2024-10-14 18:49:47

使用yolo3模型训练自己的数据集的相关文章

Faster-RCNN训练自己的数据集——备忘

新手学习,参考了http://www.cnblogs.com/CarryPotMan/p/5390336.html 只是在这篇博客中并没有说明自己训练集文件夹放置的位置以及修改中对应的文件信息.刚刚调通,记下来,以备以后自己少走些弯路. 配置py-faster-rcnn没什么好记的,文档也很多. 先说下数据集,需要准备三个文件夹:Annotations   Images   Imagelist Images文件夹 :存放所有的 train 和 val 的图片 Annotation文件夹  :存放

机器学习基本概念和模型训练基本问题

分类与回归的区别 二叉树 二叉树很容易理解,在这里我们一般用满二叉树:就是非叶子节点都有2个分支的树形数据结构 决策树分类 决策树最初是用来做决策用的,就好像下面的见不见相亲对象的决策过程一样: 如果把最后的决策结果看成是分类,那么决策树就可以用来分类了,例如,下面的例子就是把相亲对象分为见和不见两种. 下面通过一个例子来区分这些概念 特征,正负样本,训练集(数据),验证集(数据),预测集(数据) 我们的数据集是一百个点,如下图所示,是二维平面的100个点,这个就是我们总的数据集(全集),这些数

可变卷积Deforable ConvNet 迁移训练自己的数据集 MXNet框架 GPU版

[引言] 最近在用可变卷积的rfcn 模型迁移训练自己的数据集, MSRA官方使用的MXNet框架 环境搭建及配置:http://www.cnblogs.com/andre-ma/p/8867031.html 一 参数修改: 1.1  ~/Deformable-ConvNets/experiments/rfcn/cfgs/resnet_v1_101_voc0712_rfcn_dcn_end2end_ohem.yaml  文件中修改两个参数 (yaml文件包含对应训练脚本的一切配置信息和超参数)

AI模型训练无需购买设备啦!Tesar超算网络让AI模型训练更便捷!

现代科技的发展可以用日新月异来形容,新技术的出现也是层出不穷.一个眨眼的功夫,一门足以改变世界的应用可能就被发明出来了,当然也有可能一个遥遥领先的企业瞬间被超越.处在风云变化时代,最重要的就是时间,就是效率. 对于人工智能行业尤为如此,我们的衣食住行方面都有涉及到人工智能,这将为我们未来的生活提供便捷,一个优秀的idea 被构想出来之后就需要在最短的时间内实现应用,不然就很可能错失先机,被别的企业率先投入使用.而AI在进行深度学习模型训练的时候,需要耗费大量的时间与计算资源,如何在这方面节约时间

用深度学习做命名实体识别(四)——模型训练

通过本文你将了解如何训练一个人名.地址.组织.公司.产品.时间,共6个实体的命名实体识别模型. 准备训练样本 下面的链接中提供了已经用brat标注好的数据文件以及brat的配置文件,因为标注内容较多放到brat里加载会比较慢,所以拆分成了10份,每份包括3000多条样本数据,将这10份文件和相应的配置文件放到brat目录/data/project路径下,然后就可以从浏览器访问文件内容以及相应的标注情况了. 链接:https://pan.baidu.com/s/1-wjQnvCSrbhor9x3G

在C#下使用TensorFlow.NET训练自己的数据集

在C#下使用TensorFlow.NET训练自己的数据集 今天,我结合代码来详细介绍如何使用 SciSharp STACK 的 TensorFlow.NET 来训练CNN模型,该模型主要实现 图像的分类 ,可以直接移植该代码在 CPU 或 GPU 下使用,并针对你们自己本地的图像数据集进行训练和推理.TensorFlow.NET是基于 .NET Standard 框架的完整实现的TensorFlow,可以支持 .NET Framework 或 .NET CORE , TensorFlow.NET

输入法之模型训练

输入法,尤其是拼音输入法,解决的就是一些序列标注的问题,针对给定的状态(拼音),获取其概率最高的隐状态(中文). 这个是一个标准的HMM,针对HMM的解码过程,是一个很成熟也很完备的东西. local的计算和存储能力都有限,我们选择一般是二阶马尔科夫,也就是所谓的bigram model. 高阶对质量会有帮助,但是涉及到存储和计算,工程上不可行. 同理,利用ME 以及CRFmodel都可以解决这一类的标注问题,同样是工程上的问题,不太可行. 确定了采用bigram model,那么训练过程也就很

[Kaggle] dogs-vs-cats之模型训练

上一步建立好模型之后,现在就可以训练模型了. 主要代码如下: import sys #将当期路径加入系统path中 sys.path.append("E:\\CODE\\Anaconda\\tensorflow\\Kaggle\\My-TensorFlow-tutorials-master\\01 cats vs dogs\\") import os import numpy as np import tensorflow as tf import input_data import

opencv_人脸检测、模型训练、人脸识别

人脸检测.模型训练.人脸识别 2018-08-15 今天给大家带来一套人脸识别一个小案例,主要是帮助小伙伴们解决如何入门OpenCV人脸识别的问题,现在的AI行业比较火热,AI技术的使用比较广泛.就拿现在的只能手机来说吧,现在很多智能手机都必须有人脸识别解锁.拍照自动美颜.拍照物体识别等等功能,这些都是AI技术的功劳.在此也不多说了,让我们来见证奇迹的发生. 1.首先我们先准备好跑代码的环境,这一点很重要,我在跑这个代码的时候就是环境配置搞了我半天的实际,很头疼.我使用的是python3.6.5