yoloV3一步步训练自己的数据

YOLOV3的主页:

https://pjreddie.com/darknet/yolo/

运行主页上的代码得到:

首先使用一个开源的神经网络框架Darknet,使用C和CUDA,有CPU和GPU两种模式。

1、下载darknet

编辑Makefile文件:

2、编译:

make

如果遇到缺失包报错,将缺失的包装上去以后重新编译,重复下列两个操作,直到所有包都装好

make clean

make

安装好DarkNet之后,在darknet的子目录cfg/下已经有了一些网络模型的配置文件,在使用之前,需要下载好预训练好的权重文件yolo.weights(1.0 GB).

如果运行paper中的代码,则下载yolov3.weights后,运行以下命令就可以检测:

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

或者这个命令
./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg如果想检测多张图片,需要预先载入预训练的模型:

3、数据制作

制作VOC数据集:

根据上面的链接下载数据,得到

具体的每一个值的计算方式是这样的:假设一个标注的boundingbox的左下角和右上角坐标分别为(x1,y1)(x2,y2),图像的宽和高分别为w,h

归一化的中心点x坐标计算公式:((x2+x1) / 2.0)/ w

归一化的中心点y坐标计算公式:((y2+y1) / 2.0)/ h

归一化的目标框宽度的计算公式: (x2-x1) / w

归一化的目标框高度计算公式:((y2-y1)/ h

如果图片的高度、宽度未知,可以通过cv2读取。

imginfo = cv2.imread(img_dir + img_name + ‘.jpg‘).shape

imginfo里存的是图像的[h, w,通道数] ,这一需要注意imginfo结果里的顺序

可以使用voc_label.py自动获取标签集合。

总共20个类,运行以上脚本,得到了训练集的路径名称和对应的标签。

这个脚本主要是将训练集的路径写到test.txt中,并将xml中的label设置成训练需要的格式。

构建训练集:

cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

构建好数据集,修改cfg/voc.data

train指定训练集的路径,valid指定测试集的路径,names的文件中指定了该数据集标注的检测的类别,内容为:

下载darknet53作为预训练的模型:

wget https://pjreddie.com/media/files/darknet53.conv.74训练模型:
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74如果想使用多GPU,则使用以下的命令:
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -gpus 0,1,2,3
如果想暂停训练,并且从断点开始训练则:
./darknet detector train cfg/coco.data cfg/yolov3.cfg backup/yolov3.backup -gpus 0,1,2,3
其中 cfg/yolov3-voc.cfg设置了网络的结构总结——使用自己的数据训练yolo模型:1、下载数据集制作数据训练集的格式train.txt(或者自己写下载数据集的脚本)
测试数据集:

标签数据集:

2、设置cfg/xxx.data,检测的类别数,训练集路径,测试集路径,检测类别

3、修改cfg模型设置:

3、下载预训练的模型,并且训练

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74

原文地址:https://www.cnblogs.com/tinrry/p/9697055.html

时间: 2024-08-30 14:40:46

yoloV3一步步训练自己的数据的相关文章

YOLOv3 训练自己的数据附优化与问题总结

YOLOv3 训练自己的数据附优化与问题总结 环境说明 系统:ubuntu16.04 显卡:Tesla k80 12G显存 python环境: 2.7 && 3.6 前提条件:cuda9.0 cudnn7.0 opencv3.4.0 安装cuda和cudnn教程 安装opencv3.4.0教程 实现YOLOV3的demo 首先安装darknet框架,官网链接 git clone https://github.com/pjreddie/darknet.git cd darknet vim M

caffe的学习和使用·一」--使用caffe训练自己的数据

学习知识的一种方式是先会用然后再问为什么. 在安装完成caffe,根据caffe的提示下载完mnist训练测试数据,并且运行lenet训练模型之后,摆在眼前的问题就是我怎么用caffe训练自己的数据啊,mnist的数据通过脚本就可以下载创建成lmdb,我要训练自己的数据集该怎么做? 用caffe训练自己的数据,必须解决的问题有两个:1.如何输入数据, 2.如何定义输出 首先我们解决第一个问题:训练数据的输入,这里我们之介绍使用lmdb的方式 查看lenet的train_val.prototxt,

YOLO2解读,训练自己的数据及相关转载以供学习

https://pjreddie.com/darknet/yolo/ 具体安装及使用可以参考官方文档https://github.com/pjreddie/darknet http://blog.csdn.net/u012235274/article/details/52399425 caffe-yolo 训练http://blog.csdn.net/u012235274/article/details/52120152 caffe 版本 yolo 过程记录 YOLOv2 参数详解[net]//

faster r-cnn 在CPU配置下训练自己的数据

因为没有GPU,所以在CPU下训练自己的数据,中间遇到了各种各样的坑,还好没有放弃,特以此文记录此过程. 1.在CPU下配置faster r-cnn,参考博客:http://blog.csdn.net/wjx2012yt/article/details/52197698#quote 2.在CPU下训练数据集,需要对py-faster-rcnn内的roi_pooling_layer和smooth_L1_loss_layer改为CPU版本, 并重新编译.这位博主对其进行了修改,可直接进行替换:htt

caffe再见之训练自己的数据

Caffe的数据格式采用leveldb或者lmdb格式 本文采用数据为已标定过的彩色图像,共1000张训练图共10个类别,200张测试图像10个类别,下载地址:http://pan.baidu.com/s/1hsvz4g8. 第一步:数据格式转换 1.编译conver_imageset,在\Caffe-Master\Build\x64\Release下生成convert_imageset.exe. 2.在根目录data文件下新建属于自己的数据集文件夹(主要是为了便于整理,具体位置可以根据自己需要

YOLOv3自有数据集训练

YOLO的作者表明他已经放弃CV,darknet是一个C语言库.无论从哪个方面来看,YOLO都是非常奇葩的一个类库.俄罗斯人AlexeyAB也属于其中一部分,他的代码以win平台为主,有很多有趣特点. 一.基本情况 https://github.com/AlexeyAB/darknet 非常详细地讲解了AlexeyAB版的darknet的配置方法.最为直观的是可以实时显示loss和mAP图. 它的中文翻译版本(有所简化) https://zhuanlan.zhihu.com/p/10262837

Faster-rcnn-matlab-cuda8.0+ZFnet训练自己的数据

主要参考这篇博文的,一步步配置就能跑起来~~ 先说一下所需要的硬件吧:我一开始用的是GT630,只有2G显存,程序跑到一半报错out of memory才知道起码要3G显存才能训练ZF net,至于VGG-16 net更是需要高达8G的显存.于是,换了台实验室的机子,用GTX1080试试. 至于软件,win7系统 + matlab 2014b + cuda 8.0 + vs 2013,别的没什么好说的,cuda 8.0 是1080的标配,不用不行.用了cuda8.0的缘故,mex文件需要自己编译

caffe的训练之一,数据的组织。

本教程为了那些第一次使用caffe框架进行深度学习训练的人而生的,我来一个简单关于caffe训练数据的组织来个简单的介绍.我们都知道caffe中使用leveldb 和lmd两种方式进行组织数据.这里介绍一种使用lmd进行训练数据组织的方式. 我来贴一段简单的代码 组织数据. 1.     lmd的打开和写入数据 定义环境lmd的环境 MDB_env *mdb_env; MDB_dbi mdb_dbi; MDB_val mdb_key, mdb_data; MDB_txn *mdb_txn; 打开

caffe 利用VGG训练自己的数据

写这个是因为有童鞋在跑VGG的时候遇到各种问题,供参考一下. 网络结构 以VGG16为例,自己跑的细胞数据 solver.prototxt: net: "/media/dl/source/Experiment/cell/test/vgg/vgg16.prototxt" test_iter: 42 test_interval: 1000 base_lr: 0.0001 lr_policy: "step" gamma: 0.1 stepsize: 100000 disp