赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
本文主要介绍一下如何配置yolo3-keras环境来进行模型训练。
这方面网上乱七八糟的资料很多,如果你有这方面的需要并且恰好看到了这篇文章,请耐下性子看下去。因为这个比较靠谱。
1、python = = 3.6
2、yolov3
3、TensorFlow-GPU = = 1.15 (这里强烈推荐GPU训练,因为要比CPU快太多太多了,况且重新安装CUDA和CUDNN并不麻烦)
4、CUDA= =10.0 CUDNN= =7.6.5
5、Keras = = 2.3.1
下载传送
(1) yolov3及官方权重文件
https://pan.baidu.com/s/1IvqfJgS1H7reYQCm3EU6Kw 提取码:6hcy
(2) Keras 和TensorFlow
直接用命令行下载即可
pip install tensorflow-gpu==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simplepip install keras ==2.3.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
(3) CUDA 和CUDNN
CUDA : https://developer.nvidia.com/cuda-toolkit-archive
CUDNN: https://developer.nvidia.com/rdp/cudnn-archive
安装步骤参考 这两个
打开界面如下:
创建如下的目录
test.py的代码如下:
import os import random trainval_percent = 0.2 train_percent = 0.8 xmlfilepath = 'VOCdevkit/VOC2007/Annotations' txtsavepath = 'VOCdevkit/VOC2007/ImageSets/Main' total_xml = os.listdir(xmlfilepath) num = len(total_xml) list = range(num) tv = int(num * trainval_percent) tr = int(tv * train_percent) trainval = random.sample(list, tv) train = random.sample(trainval, tr) ftrainval = open('VOCdevkit/VOC2007/ImageSets/Main/trainval.txt', 'w') ftest = open('VOCdevkit/VOC2007/ImageSets/Main/test.txt', 'w') ftrain = open('VOCdevkit/VOC2007/ImageSets/Main/train.txt', 'w') fval = open('VOCdevkit/VOC2007/ImageSets/Main/val.txt', 'w') for i in list: name = total_xml[i][:-4] + '\n' if i in trainval: ftrainval.write(name) if i in train: ftest.write(name) else: fval.write(name) else: ftrain.write(name) ftrainval.close() ftrain.close() fval.close() ftest.close()
这里说明一下
logs/000:用来放训练生成的权重文件
JPEGImages:用来存放拍摄目标物体的图片
Annotations:用来存放 标记后生成xml文件(下面会介绍)
ImageSets/Main:用来存放运行test.py后生成的数据文件
此次用的软件为labelimg,这个很简单2分钟就可学会
具体下载和使用方法可参考这个博主写的
第一处修改
在voc_annotation.py下修改classes里的内容,我训练,想要识别的的是一个矿泉水,所以我删除了其它内容。(记得和打标签时的拼写统一)
第二处修改
按图示修改
注: 很多博客下都修改了yolo3.cfg文件,其实我们用的是keras并没有用到,所以不用修改。但是要是使用darknet就要修改了。
运行成功后会生成如下文件:
开始训练自己的数据集
标红的部分建议改为1,太高的话训练时容易显存跑满报错。
寻
这是成功训练的图
… . … … … … … … …
… . … … … … … … …
在命令行下输入 python convert.py yolov3.cfg yolov3.weights model_data/ yolo.h5(这个看你生成的权重文件是什么名字)
vscode下在这输入即可
打开yolo.py文件
下载的这个是不全的,在最底下要加上这段才能运行。
然后把刚才转换的.h5权重文件放到指定目录,并在yolo.py修改相关文件名。(见图片)
!!然后就可以开始识别了!!
视频的话上传太麻烦了,如果需要的再联系我吧。
我最后训练的loss值在4左右。
还有一个要注意的地方,我当时训练完以后,识别本地的图片可以但是外接摄像头就没办法识别。这可能是因为训练时是RGB,但CV里读取是按GBR。后来我在如下地方更改了一下就可以识别了。
如果大家遇到和我一样的问题,可以参考一下。
.
由于距当时实际操作有些时间,可能有些地方不是很完善。有问题的话或者操作过程中有解决不了的报错问题,大家可以在文章底下留言,我会尽全力为大家解决的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。