linux-mobaxterm-yolov5训练数据集ccpd--无数踩雷后

目录

1.代码准备

2.ccpd数据集准备

2.1ccpd数据集源下载至本地(占用12G左右内存,建议下载至D盘或移动硬盘):

2.2在数据集目录下建立两个文件夹test_datasest/ccpd_train:<如图

2.3ccpd转yolov5目标格式

(1)将数据集图片6:2:2分为训练集、验证集、测试集

(2)将x文件夹下图片命名信息提取切割,存储为txt文档,并存储至x文件夹

3.开始炼丹(训练)

3.1 炼丹over

3.2炼丹过程tensorboard可视化

3.2.1利用MobaXterm可视化Tensorboard

3.2.2开启tensorboard

4.用于检测目标


-----------------------------------------------使用mobaxterm!!!----------------------------------------------------

目录

1.代码准备

2.ccpd数据集准备

2.1ccpd数据集源下载至本地(占用12G左右内存,建议下载至D盘或移动硬盘):

2.2在数据集目录下建立两个文件夹images、labels:<如图

2.3ccpd转yolov5目标格式

(1)将数据集图片分为train、val两个文件夹

(2)将x文件夹下图片命名信息提取切割,存储为txt文档,并存储至x文件夹

(3)ccpd文件内txt与jpg文件分割:

(4)删除图片文件夹中生成的.txt文件

(5)最最最后一步!

3.开始炼丹(训练)

3.1 炼丹over

3.2炼丹过程tensorboard可视化

3.2.1利用MobaXterm可视化Tensorboard

3.2.2开启tensorboard

4.用于检测目标


1.代码准备

<yolov5代码下载至本地并上传至mobaxterm:

<文件夹地址:

       例:/home/li/~Pycode/

https://github.com/ultralytics/yolov5(建议翻墙进入github)

------<本人常用p/i/g/c/h/a>

2.ccpd数据集准备

2.1ccpd数据集源下载至本地(占用12G左右内存,建议下载至D盘或移动硬盘):

https://github.com/detectRecog/CCPD(建议翻墙进入github)

------<本人常用p/i/g/c/h/a>

<数据集在本地解压(本地解压更方便点)

<将解压后数据集文件上传至mobaxterm服务器:

<文件夹地址:

       例:/home/li/~Pycode/yolov5-master/data/

2.2在数据集目录下建立两个文件夹test_datasest/ccpd_train:<如图

 在ccpd_train目录下建立两个文件夹images/labels:<如图

  <两文件夹下分别创建两个文件夹train、val:<如图

2.3ccpd转yolov5目标格式

(1)将数据集图片6:2:2分为训练集、验证集、测试集

----------<修改路径:第六行:os.lisdir:自己的数据集文件夹

-------------------------<第13、14、15行:traindir:images/train所在地址

                      ---------------------------valdir:images/val所在地址

                      ---------------------------detect:检测所用图片所在地址

-------------------------<第16行:同第六行

import shutil
from shutil import copy2
trainfiles = os.listdir("/home/li/~Pycode/yolov5master/data/CCPD2019.tar/ccpd_fn/")
                  #(图片文件夹)
num_train = len(trainfiles)
print( "num_train: " + str(num_train) )
index_list = list(range(num_train))
print(index_list)
random.shuffle(index_list)
num = 0
trainDir = "/home/li/~Pycode/yolov5-master/data/ccpd_train/images/train/"
         #(将图片文件夹中的6份放在这个文件夹下)
validDir = "/home/li/~Pycode/yolov5-master/data/ccpd_train/images/val/"
         #(将图片文件夹中的2份放在这个文件夹下)
detectDir = "/home/li/~Pycode/yolov5-source/data/test_datasets/images/"
         #(将图片文件夹中的2份放在这个文件夹下)
for i in index_list:
    fileName = os.path.join("/home/li/~Pycode/yolov5master/data/CCPD2019.tar/ccpd_fn/", trainfiles[i])
    if num < num_train*0.6:
        print(str(fileName))
        copy2(fileName, trainDir)
    elif num < num_train*0.8:
        print(str(fileName))
        copy2(fileName, detectDir)
    else:
        copy2(fileName, validDir)
    num += 1

(2)将x文件夹下图片命名信息提取切割,存储为txt文档,并存储至x文件夹

---------<只修改 train/val 路径为图片所在路径!!!!!train、val两个文件夹!!!

import shutil
import cv2
import os

def txt_file(img_path):
    x = img_path.split("/", 9)
    if x[8] == "train":
        y = '/'.join(x[0:7]) + '/labels/' + 'train/'
    else:
        y = '/'.join(x[0:7]) + '/labels/' + 'val/'
    return y


def txt_translate(path, txt_path):
    for filename in os.listdir(path):
        print(filename)

        list1 = filename.split("-", 3)  # 第一次分割,以减号'-'做分割
        subname = list1[2]
        list2 = filename.split(".", 1)
        subname1 = list2[1]
        if subname1 == 'txt':
            continue
        lt, rb = subname.split("_", 1)  # 第二次分割,以下划线'_'做分割
        lx, ly = lt.split("&", 1)
        rx, ry = rb.split("&", 1)
        width = int(rx) - int(lx)
        height = int(ry) - int(ly)  # bounding box的宽和高
        cx = float(lx) + width / 2
        cy = float(ly) + height / 2  # bounding box中心点

        img = cv2.imread(path + filename)
        if img is None:  # 自动删除失效图片(下载过程有的图片会存在无法读取的情况)
            os.remove(os.path.join(path, filename))
            continue
        width = width / img.shape[1]
        height = height / img.shape[0]
        cx = cx / img.shape[1]
        cy = cy / img.shape[0]

        txtname = filename.split(".", 1)
        txtfile = txt_path + txtname[0] + ".txt"
        # 绿牌是第0类,蓝牌是第1类
        with open(txtfile, "w") as f:
            f.write(str(0) + " " + str(cx) + " " + str(cy) + " " + str(width) + " " + str(height))


if __name__ == '__main__':
    # 修改此处地址
    trainDir = "/home/li/~Pycode/yolov5-master/data/ccpd_train/images/train/"
    validDir = "/home/li/~Pycode/yolov5-master/data/ccpd_train/images/val/"
    # 该处修改为图片存储地址
    txt_path1 = txt_file(trainDir)
    txt_path2 = txt_file(validDir)
    txt_translate(trainDir, txt_path1)
    txt_translate(validDir, txt_path2)

最后一步!

<打开yolov5文件夹下data文件夹,复制粘贴图中红色框框文件,修改命名像绿框框一样自己看得懂的名字。

 <修改内容如图

-----------------------至此!!!!-----------数据集准备完毕---鼓掌鼓掌~--------------------------------------_

3.开始炼丹(训练)

--------<修改如图默认参数,--weights:  default='  '根据需要选择,这里选用yolov5s.pt

-----------<--data : 如图修改   default

 <右键run!开始炼丹

<这个时候建议去厕所思考会儿人生----<如果网速可以,腿麻的时候回来差不多结束了

3.1 炼丹over

<炼丹结果如图:

<炼丹过程自动存储在文件夹路径:

                 /home/li/~Pycode/yolov5-master/runs/train/exp30/--------------<be like

3.2炼丹过程tensorboard可视化

3.2.1利用MobaXterm可视化Tensorboard

<如下图,红色箭头Tool -----<MobaSSHTunnel

<然后按照如图所示填写

-----------------<本地端号、服务器IP、端号、用户名.........

 <创建好后如图,点击start

3.2.2开启tensorboard

< 输入指令行:

cd "/home/li/~Pycode/yolov5-master/"

< 键入指令行:

tensorboard --logdir="runs/train"

<成功启动

<浏览器(建议chrome

<访问tensorboard

http://127.0.0.1:16006/

 -------------------------------------------炼丹至此over-----------撒花撒花--------------------------------------------

4.用于检测目标

<将需要检测的图片,在data/images文件夹下保存

<打开yolov5文件夹下的 detect.py文件

  -----------------<--weights:   default=炼丹过程最优结果:

---------------存储地址:"/home/li/~Pycode/yolov5-master/runs/train/exp30/weights/best.pt"

------------------<--source:     default=需要检测的图片路径

<右键run~~~,等待运行结束!

---------------检测结果保存地址:"/home/li/~Pycode/yolov5-master/runs/detect/"

----------------------------------------ccpd-----yolov5-------over~------------------------------------------------------

  • 13
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
YOLO系列是基于深度学习的端到端实时目标检测方法。 PyTorch版的YOLOv5轻量而高性能,更加灵活和易用,当前非常流行。 本课程将手把手地教大家使用labelImg标注和使用YOLOv5训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。  本课程的YOLOv5使用ultralytics/yolov5,在Windows和Ubuntu系统上分别做项目演示。包括:安装YOLOv5、标注自己的数据集、准备自己的数据集(自动划分训练集和验证集)、修改配置文件、使用wandb训练可视化工具、训练自己的数据集、测试训练出的网络模型和性能统计。 除本课程《YOLOv5实战训练自己的数据集(Windows和Ubuntu演示)》外,本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测:原理与源码解析》课程链接:https://edu.csdn.net/course/detail/31428《YOLOv5目标检测实战:Flask Web部署》课程链接:https://edu.csdn.net/course/detail/31087《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》课程链接:https://edu.csdn.net/course/detail/32303《YOLOv5目标检测实战:Jetson Nano部署》课程链接:https://edu.csdn.net/course/detail/32451《YOLOv5+DeepSORT多目标跟踪与计数精讲》课程链接:https://edu.csdn.net/course/detail/32669《YOLOv5实战口罩佩戴检测》课程链接:https://edu.csdn.net/course/detail/32744《YOLOv5实战中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/35209 《YOLOv5实战垃圾分类目标检测》课程链接:https://edu.csdn.net/course/detail/35284  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值