• 使用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:UsersXXXDesktoplogs
    在浏览器上运行http://localhost:6006/即可查看

  • 相关阅读:
    AcWing每日一题--最大的和
    使用 *args 和 **kwargs 的含义
    Python的八大基本数据类型之 元组、列表、字典
    条件判断与if嵌套
    数据拼接与转换
    print()函数与转义字符
    BEGIN-2 序列求和
    BEGIN-1 A+B问题
    并发编程——进程——生产者消费者模型
    并发编程——进程——进程的同步与数据共享
  • 原文地址:https://www.cnblogs.com/wuu02/p/13179154.html
Copyright © 2020-2023  润新知