times:2020/3/23
操作系统:win10
环境:python 3.6
因为我之前把所有内容写在一篇文章里非常的乱,所以本文主线是训练自己的 yolo.h5 去识别图像中的人,所有小细节的操作,我都在文中添加了链接,新手的话需要注意看一下。
// 有任何的问题都可以直接评论,还有资料的话直接留言邮箱,说明问题//
//也可以评论下加下微信询问//
大家一起加油学习yolo,之后我会再出一篇详细介绍yolo代码的文章
如果你是 yolo 小白,或者环境配置等一直报错,请先参阅上一篇博文:keras-yolov3目标检测详解——适合新手 (环境配置、用官方权重识别自己的图片)
本文目的:
前面有篇文章说的是利用官方的权重直接识别自己的图片,我也展示了识别的效果。
今天我介绍一下如何创建自己的数据集去训练属于自己的 model
前提准备:
1、配置好环境的 python、anaconda 或 pycharm
2、labelimg 软件:下载方法: labelimg的下载与使用
3、准备一些图片,创建训练需要的 VOC 文件
(1) 官方的VOC2007下载链接:voc2007下载链接,可以从这里找需要的图片,或者一些有基础的朋友可以写爬虫去爬一些图片
(2) voc2007百度网盘下载链接:
链接:https://pan.baidu.com/s/18wqRTZDSz5NQEtvq0u0a1g
提取码:hexy
(3) 可以自己准备图片,不过最好准备多一点
.
.
正式训练步骤:
一、准备自己的voc2007数据集
先用 pycharm 或 spyder 打开 keras-yolo3 文件夹,用 pycharm 或 spyder 是为了看文件夹更方便,直接在 anaconda 里运行也是可以的
1、打开文件夹
完成后打开的文件夹应该是这样的:
2、新建voc2007数据集(存放自己的图片及标注信息)
新建的文件夹:如下
ImageSets 文件夹下还有个名为 Main 的小文件夹
VOCdevkit{
VOC2007{Annotations
ImageSets{main}
JPEGImages}
}
虽然表达的很丑,但是上面有图,应该还是可以看明白的
注意:文件夹的名称必须和上面展示的一样,这是 yolo 默认的
不然还需要改代码才行
3、用labelimg软件对自己的图片进行信息标注
想要训练自己的模型就要学会 labelimg 的使用,实在不想学的…就评论一下邮箱,我直接把我标注好的 VOC2007 文件夹打包发给你们吧
(1)需要训练的图片放在 JPEGImages 里面:
(2)labelimg 标注的 xlm 文件放在 Annotations 里面:
4、在 VOC2007 里新建一个 py 文件
我这里取名 voc.py
voc.py 的代码:
import os
import random
trainval_percent = 0.2 #测试集占0.2
train_percent = 0.8 #训练集占0.8
xmlfilepath = 'Annotations'
txtsavepath = '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('ImageSets/Main/trainval.txt', 'w')
ftest = open('ImageSets/Main/test.txt', 'w')
ftrain = open('ImageSets/Main/train.t