记录,基于keras的YOLOv3的实现和解读

本人正在使用YOLOv3进行车流量的侦测,记录一下学习的过程,使用的开源代码为keras-yolo3-master 链接如下:keras-yolo3-master
本人从使用角度及代码角度入手,关于yolov3的解释请参考yolov3
本文基于windows10 + pycharm 环境进行:

一.跑跑试试

1.下载权重文件:
yolov3.weights
2.转换为转换为h5文件:
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
直接在终端输入上述命令即可,确保当前目录是在项目文件下
3.运行yolo文件,拷入自己的视频进行检测:为了可以直接run文件而不在终端通过python + 文件名的方式,在yolo.py文件末尾加上下面代码:

if __name__ == '__main__':
    detect_video(YOLO(),'D:\PycharmProjects\CarFlowDetection\dete.mp4')
    

后面的路径为视频存放的路径随便找一个下载到本地即可。运行yolo文件没有报错就ok了

二.代码理解

  1. train.py
  2. yolo.py
  3. model.py

暂时先说说对这三个文件的理解:这是自己对该代码见解,若有错误请批评指教
train.py :
记录,基于keras的YOLOv3的实现和解读_第1张图片
这几行代码主要指定了训练的类别文件、anchor文件的路径。anchors的值可以使用默认的也可以通过运行Kmeans.py生成
记录,基于keras的YOLOv3的实现和解读_第2张图片
通过anchors的个数对使用的模型进行判断,如果为6则创建tiny_yolov3,否则创建yolov3.
记录,基于keras的YOLOv3的实现和解读_第3张图片

这部分主要是对模型编译和训练的参数进行设定,具体有些参数还在理解当中。
记录,基于keras的YOLOv3的实现和解读_第4张图片
这个阶段的训练主要是得到一个稳定的loss,为第二阶段的训练做准备。
记录,基于keras的YOLOv3的实现和解读_第5张图片
第二阶段训练,fine-tune参数,使得模型变得更好。最后保存训练的模型为trained_weights_final.h5
记录,基于keras的YOLOv3的实现和解读_第6张图片
这些函数主要是读取classname,anchor,以及训练集图像和box
train.py文件主要完成的就是加载必要的东西,编译网络并对网络进行训练
今天先写到这里,未完待续。。。

你可能感兴趣的:(Car)