使用AIstudio训练YOLOv3模型

背景

本文原先基于百度的AIstudio训练,但是五月份的时候百度停止了对tensorflow框架的支持,所以以下仅作为参考。

百度AiStudio训练yolov3模型

AiStudio分为work和data两个文件夹,work保留永久文件,data每次重启都不会保存
因此将我们需要的代码、数据集和安装包都先打包成数据集上传,启动项目前添加数据集。
以下是我的使用步骤:

本教程前置工作

需要安装好Anaconda、tensorflow-gpu、keras、keras-yolo3目录和keras-yolo3目录下的VOCdevkit目录和logs/000目录。

安装Anaconda

这里选用miniconda,因为每次重启系统都要解压文件,原版太大了不好。在官网上下载Linux64位的版本。启动系统后,从/data/dataXXX目录中复制到/work/conda3目录,用bash miniconda.sh安装。路径不要选择默认路径,选择~/work下的目录。

bash ~/work/Miniconda3.sh
source ~/work/conda3/bin/activate

安装tensorflow-gpu

注意这里不要换用清华源,清华的cuda最高版本为8.0,而我们需要10.0

conda install python=3.6
conda insntall tensorflow-gpu==1.14.0
pip install keras==2.1.5

pip install Pillow
pip install matplotlib
conda install ffmpeg
pip install opencv-contrib-python

建立VOC格式目录

VOCdevkit
└── VOC2007
    ├── Annotations
    ├── ImageSets
    │   ├── Layout
    │   ├── Main
    │   └── Segmentation
    ├── JPEGImages
    └── labels

上传数据集

这里把kears-yolo3代码和自己处理好的jpeg图片以及xml上传为数据集,并在自己的项目中选择这个数据集。

PS.可以提前将jpeg图片文件夹名字改为JPEGImages,xml文件夹名称改为Annotations,使用时直接复制过去就好。

  • /data/dataXXX目录中解压到/data目录
cp ~/data/dataxxx/data.zip ~/data
ls
unzip data.zip
  • 移动到keras-yolo3/VOCdevkit对应子目录下
cd ~/data
mv JPEGImage ~/work/keras-yolo3/VOCdevkit/VOC2007/
mv Annotations ~/work/keras-yolo3/VOCdevkit/VOC2007/

数据集划分

在VOC2007目录内新建python脚本,将数据集划分为训练集和测试集。
代码见从零开始配置yolov3(keras)训练测试自己的数据中的第三节。

cd ~/work/keras-yolo3/VOCdevkit/VOC2007
python create_ImageSets.py

生成2017train等文件

运行keras-yolo3下的voc_annotation.py文件,这时主目录下会出现2007为前缀的几个文件。

cd ~/work/keras-yolo3
python voc_annotation.py

修改anchors

运行kmeans.py文件,将model_data中的yolo_anchors.txt文件修改成刚才输出的数据。

修改bacth

修改train.py中的batch_size。总共有两处,最好改成2,过大可能会报错。epoch按需修改,大概loss可以降至17到30。

运行代码

python train.py

使用训练后的模型

将/logs/000下的trained_weights_final.h5移动到model_data下,修改名字成yolo.h5

文件画图导出

修改yolo.py和yolo_vedio.py文件,改成下面github仓库里对应的文件。代码见下:keras-yolo3
运行下面的代码可以生成图片对应的txt预测结果,去掉--txt则生成识别的图片。

python yolo_video.py --imgdir ~/work/keras-yolo3/imagetest --txt

最后从指定的文件夹中,使用左边的可视界面下载到本机即可。

查看训练过程

本机安装Anaconda和tensorflow,使用命令tensorboard --logdir=C:\Users\XXX\Desktop\logs
在浏览器上运行http://localhost:6006/即可查看

猜你喜欢

转载自www.cnblogs.com/wuu02/p/13179154.html