因参加服创大赛,选题是安全帽检测,所以在这里和大家分享一下简单的用TensorFlow训练yolo v3的过程,适合新手快速上手。
1.下载项目
首先在git clone https://github.com/qqwweee/keras-yolo3将源码clone下来,原来速度太慢的话,可以借助gitee。
在gitee上将项目clone下来:
2.创建虚拟环境
由于作者使用的环境是python3.6+TensorFlow1.6.0+keras2.1.5。所以我们可以先用anaconda创建一个新的虚拟环境,如果创建虚拟环境失败的,可以参照我的这篇博客:conda无法创建虚拟环境。
conda create -n yolo python=3.6 #创建python=3.6的名为yolo的虚拟环境
conda activate yolo #进入新的conda环境
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==1.6.0 #使用清华镜像下载
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple keras==2.1.5
3.训练前的准备工作
(1)打开pycharm,打开下载的项目
(3)从YOLO网站下载YOLOv3权重
wget https://pjreddie.com/media/files/yolov3.weights
(4)将Darknet YOLO模型转换为Keras模型。
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
(5)生成自己的注释文件和类名称文件。
一张图片一排;
行格式:image_file_path box1 box2 … boxN;
框格式:(x_min,y_min,x_max,y_max,class_id无空格)。
对于VOC数据集,请尝试python voc_annotation.py,运行完成后会生成3个txt文件
(6)将项目文件夹model_data下的voc_classes.txt文件夹中的众多类删除,改成:
3.开始训练
(1)运行train.txt文件
(2)在训练过程中,会出现如下错误:
这个错误说找不到这张图片,这个原因困扰了我好久,其实罪魁祸首就是!!有的图片文件的后缀是.JPG大写,而写进train.txt文件里的全部是jpg小写的形式,所以当然找不到啦!后来我写了一个脚本来找出所有后缀为JPG的图片,然后把他们改掉!!代码如下:
import os
def file_name(file_dir):
L=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == '.JPG':
L.append(os.path.join(file))
return L
print(file_name("path"))
(3)最后再次运行train.txt文件。
然后就是静静的等待了!
本文地址:https://blog.csdn.net/weixin_44241117/article/details/107093545
希望与广大网友互动??
点此进行留言吧!