python调用yolov3模型_yolo3-keras的源码,可以用于训练自己的模型yolov3以及yolov3-tiny...

yolo3-keras

yolo3-keras的源码,可以用于训练自己的模型yolov3以及yolov3-tiny

一、环境要求

Python: 3.7.4

Tensorflow-GPU 1.14.0

Keras: 2.2.4

二、快速使用:

1.下载yolov3-keras代码

2.下载yolov3-keras权重文件权重 并将其放入根目录下

3.执行如下命令将darknet下的yolov3配置文件转换成keras适用的h5文件

python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5

python convert.py yolov3-tiny.cfg yolov3-tiny.weights model_data/yolov3-tiny.h5

模型文件对应说明如下:

模型文件

说明

ep034-loss6.105-val_loss6.205.h5

经过训练的模型

yolo.h5

YOLO 官方预训练模型

4.运行预测图像程序

python yolo_video.py --image

在命令行输入图片地址img/mask.jpg,即可预测

三、训练自身数据

1.使用VOC格式的数据进行训练

训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。

训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。

在训练前利用voc2yolo3.py文件生成对应的txt。

VOCdevkit

-VOC2007

├─ImageSets # 存放数据集列表文件,由voc2yolo3.py文件生成

├─Annotations # 存放图片标签,xml 格式

├─JPEGImages # 存放数据集中图片文件

└─voc2yolo3.py # 用来生成数据集列表文件

2.生成YOLOV3所需数据

每一行对应其图片位置及其真实框的位置

再运行根目录voc_annotation.py,运行前需要将voc_annotation文件中classes改成你自己的classes。

3.在训练前可根据自身需要修改model_data里面的yolo_anchors.txt和tiny_yolo_anchors.txt,利用kmeans.py来生成,k=9,生成yolo_anchors;k=6,生成tiny_yolo

3.在训练前需要修改model_data里面的voc_classes.txt文件,需要将classes改成你自己的classes。

4.修改train.py配置,通过修改anchor_path,从而选择使用yolov3训练还是yolov3-tiny训练

5.运行train.py 即可开始训练,训练好的模型存放在logs下。

四、测试

修改根目录下yolo.py文件,修改model_path,anchors_path,classes_path替换成自己的路径

1.单张图片测试

python yolo_video.py --image,输入图片名称即可

2.电脑摄像头实时检测

python yolo_video.py --input

此外对应的yolo.py文件174行改为vid = cv2.VideoCapture(0);

3.测试本地视频

python yolo_video.py --input

此外对应的yolo.py文件174行改为vid = cv2.VideoCapture("视频路径+视频名+视频后缀名");

4.测试本地视频并且保存视频效果

python yolo_video.py --output

此外对应的yolo.py文件184行改为out = cv2.VideoWriter("视频路径+视频名+视频后缀名", video_FourCC, video_fps, video_size);

五、注意:

一张图片最多只能识别20个对象的问题:

1.训练时,要在yolo3文件夹下面的utils.py里,修改get_random_data()函数,有一个默认参数是max_boxes=20,改成很大的数值就行了。

2.检测时,要在yolo3文件夹下面的model.py里,修改yolo_eval()函数,有一个默认参数是max_boxes=20,改成很大的数值就行了。

你可能感兴趣的:(python调用yolov3模型_yolo3-keras的源码,可以用于训练自己的模型yolov3以及yolov3-tiny...)