• Google Colab训练yolov3自定义数据集


    共分7步:

    一、进入Google Colab训练环境
    二、下载编译Darknet
    三、上传数据集
    四、修改配置文件
    五、下载预训练权重文件
    六、开始训练数据
    七、测试训练结果

    一、进入Google Colab训练环境

    打开 Google Drive 云端硬盘

    新建Google Colaboratory文件,进入python运行环境。 

    二、下载编译Darknet

    yolov3基于darknet深度学习框架。

    1. 运行如下代码,连接到Google Drive 云端硬盘

    1. import os
    2. from google.colab import drive
    3. drive.mount('/content/drive')

     弹出提示框时,按提示点击允许连接即可。

    2.下载darknet

    1. import os
    2. path = '/content/drive/MyDrive/darknet'
    3. if not os.path.isdir(path):
    4. !git clone https://github.com/AlexeyAB/darknet.git

    3. 修改makefile,开启GPU、cuda加速

     也可运行命令

    1. %cd /content/drive/MyDrive/darknet
    2. !sed -i 's/OPENCV=0/OPENCV=1/' Makefile
    3. !sed -i 's/GPU=0/GPU=1/' Makefile
    4. !sed -i 's/CUDNN=0/CUDNN=1/' Makefile
    5. !sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile
    6. !sed -i 's/LIBSO=0/LIBSO=1/' Makefile

     4.验证CUDA版本 

    !/usr/local/cuda/bin/nvcc --version

     5.编译生成darknet项目。

    !make

    三、上传数据集

    1. 将图片(*.jpg)和对应的标注文件(*.txt)放到同一文件夹下,并将数据放到darknet/data/obj文件夹下。我在网上找的口罩数据集。

     

    四、修改配置文件

    配置文件共有4个,即obj.data、obj.names、train.txt、yolov3-custom2.cfg。

     2.配置obj.data(位于darknet/data)

    obj.data为训练数据的总配置文件。classes为类别数,train、valid、names路径要正确,valid可有可无。backup训练过程中或训练后的权重文件存储路径。

    1. classes= 2
    2. train = data/train.txt
    3. valid = data/valid.txt
    4. names = data/obj.names
    5. backup = backup/

      3.配置obj.names(位于darknet/data)

    obj.names为类别名列表

    1. mask1
    2. mask2

     4.生成train.txt(放到darknet/data) 

     定位到darknet文件夹

    1. %cd /content/drive/
    2. %ls
    3. %cd MyDrive/
    4. %ls
    5. %cd darknet/
    6. %ls

     运行以下代码生成train.txt,注意数据集图片在该路径下(/content/drive/MyDrive/darknet/data/obj)。

    1. import os
    2. image_files = []
    3. os.chdir("/content/drive/MyDrive/darknet/data/obj")
    4. for filename in os.listdir(os.getcwd()):
    5. if filename.endswith(".jpg"):
    6. image_files.append("data/obj/" + filename)
    7. os.chdir("..")
    8. with open("train.txt", "w") as outfile:
    9. for image in image_files:
    10. outfile.write(image)
    11. outfile.write("\n")
    12. outfile.close()
    13. os.chdir("..")

     生成的train.txt位于darknet下,需要手动移动到darknet/data下

     5.配置yolov3-custom2.cfg(位于darknet/cfg) 

    复制darknet/cfg/yolov3.cfg,重命名为yolov3-custom2.cfg,打开并编辑

     

     修改一

      修改二,搜索yolo,修改classes、filters,共3处。

    五、下载预训练权重文件

    !wget http://pjreddie.com/media/files/darknet53.conv.74

     

    六、开始训练数据

    !./darknet detector train data/obj.data cfg/yolov3_custom2.cfg darknet53.conv.74 -dont_show

     等待数小时(我等了3个小时)后训练完成。

    查看loss下降过程, 打开darknet/chart.png

    权重文件位于darknet/backup 七、测试训练结果

    !./darknet detector test data/obj.data cfg/yolov3_custom2.cfg ./backup/yolov3_custom2_last.weights masktest.jpg -thresh 0.3

     

  • 相关阅读:
    Mybatis学习笔记——mybatis的整体架构
    PHP 图片的合并,微信小程序码合并,文字合并
    scratch绘制小太阳 2023年9月电子学会图形化编程scratch编程等级考试二级真题和答案解析
    悦音配音狂欢双十一丨惊喜等你来
    昨日阅读量700
    第十三届蓝桥杯大赛软件赛决赛(C/C++ 大学B组)
    SpringBoot自动配置原理
    uniapp小程序文件下载保存
    YOLO目标检测——VOC2007数据集+已标注VOC格式标签下载分享
    C++类模板学习笔记
  • 原文地址:https://blog.csdn.net/zouxin_88/article/details/128081613