yolov3的训练(一)下载与训练

2023-05-16

darknet框架简介
https://blog.csdn.net/mao_hui_fei/article/details/113820303

AlexeyAB大佬的关于darknet的详细文档信息
https://github.com/AlexeyAB/darknet

参考文件
YOLOV3训练自己的数据集(VOC数据集格式)
https://blog.csdn.net/weixin_43818251/article/details/89548583


同学们,这个系列的文件不要直接就跟着我操作了,因为这个是踩坑的记录,不是教程,我只是将整个流程记录下来,让后面的同学操作的时候能够避开这些坑,希望你能将整个系列的操作流程看了一遍斟酌后进行操作


那么这里我是使用红绿灯的识别作为目标,标签为"red", “green”, “null”
并且使用VOC数据集

darknet和VOC

首先下载darknet

git clone https://github.com/AlexeyAB/darknet.git

在这里插入图片描述

然后制作自己的VOC的数据集

当在LabelImg中标注完成图片后
然后需要对图片进行批量的重命名,格式是:000001.jpg 000002.jpg ……

标注完成制作好标签后,在darknet/scripts文件夹内建立VOCdevkit
文件夹,VOCdevkit件夹内部文件形式如下
在这里插入图片描述

首先要注意标注生成的.xml文件中 的路径问题
当标注任务分给队伍所有人进行标注生成后,汇总的.xml文件中 的路径都是不一样的
在这里插入图片描述

所以要对汇总的xml文件中的 路径都进行修改
打开/home/heying/darknet/scripts/VOCdevkit/VOC2020/rename_xml.py文件
进行修改路径

########################此文件可将.xml中的路径进行修改#########################

import os
import os.path
from xml.etree.ElementTree import parse, Element

# .xml文件地址
path = "/home/xiong/VOC/VOC_MAX/Annotations/"
# 得到文件夹下所有文件名称
files = os.listdir(path)  
s = []
# 遍历文件夹
for xmlFile in files:
    # 判断是否是文件夹,不是文件夹才打开
    if not os.path.isdir(xmlFile):
        print(xmlFile)
        pass
    path = "/home/xiong/VOC/VOC_MAX/Annotations/"
    newStr = os.path.join(path, xmlFile)
    #最核心的部分,路径拼接,输入的是具体路径
    #得到.xml文件的根(也就是annotation)
    dom = parse(newStr)
    root = dom.getroot()
    #获得后缀.前的文件名(分离文件名和扩展名)
    part = os.path.splitext(xmlFile)[0]
    # 文件名+后缀
    part1 = part + '.jpg'
    # path里的新属性值:
    newStr1 = '/home/xiong/VOC/VOC_MAX/JPEGImages/' + part1
    #通过句柄找到path的子节点,然后给子节点设置内容
    root.find('path').text = newStr1  
    # #打印输出
    print('已经修改')
    dom.write(newStr, xml_declaration=True)
    pass


#原文链接:https://blog.csdn.net/weixin_45392405/article/details/106679679

在这里插入图片描述

完成后使用python3运行
在这里插入图片描述

可以打开其中一个xml文件检查一下
在这里插入图片描述


然后在VOC数据集中新建一个Main文件
在这里插入图片描述

然后进行修改
在这里插入图片描述

运行set_txt.py文件生成train.txt和test.txt
适用于训练所需要的各种验证集与数据集
(这一步可能是适用于jetson-inference的训练。可能使用yolov3不需要这一步)
在这里插入图片描述

在darknet中git下来的代码中包含了voc_label.py的python文件,把它放到和 VOCdevkit 同级的目录下。修改相关配置
在这里插入图片描述

修改文件

#这里的参数使用命名文件夹的参数
sets=[('2020', 'train'),('2020', 'test')]

#使用的所有标签
classes = ["red", "green", "null"]
在修改所使用的标签文件,要注意ID号的顺序

在这里插入图片描述

完成后运行
可以看到程序在路径中生成的文件与内容
在这里插入图片描述

并且还会在VOCdevkit同级的目录下会生成2019_train.txt 和 2019_text.txt 两个文件,里面存有对应图片文件的绝对路径,训练时作为引用。
在这里插入图片描述

训练准备

在 darknet/data 目录下建立 myvoc.names 的文件(文件名无所谓,后缀得是.names),内容是类名
在这里插入图片描述

然后将标注的标签写入
在这里插入图片描述
修改 cfg/voc.data 文件,修改后如下所示:

classes= 3
train  = /home/heying/darknet/scripts/2020_train.txt
valid  = /home/heying/darknet/scripts/2020_test.txt
names = data/voc2020.names
backup = /home/heying/darknet/backup/

在这里插入图片描述
其中
【classes= 3】指标签的数量,本次流程为3个
【train = /home/heying/darknet/scripts/2020_train.txt】 刚生成的2020_train.txt的绝对路径
【valid = /home/heying/darknet/scripts/2020_test.txt】刚生成的2020_test.txt的绝对路径
【names = data/voc2020.names】刚设置的标签名称的文件
【backup = /home/pjreddie/backup/】训练完成的权重保存路径

完成后保存并退出


然后修改 cfg/yolov3-voc.cfg 文件
主要是 filters 和 classes 的调整,文件前面的Testing和Training模式根据自己进行的方式进行选择,width和height根据自己训练的图片进行调整,但必须为32的倍数。控制训练的迭代次数为1000次

这里我依照启动摄像头的usb_cam程序的长宽来设置分辨率
在这里插入图片描述
在这里插入图片描述


然后下载darknet-53的预训练权重文件

wget https://pjreddie.com/media/files/darknet53.conv.74

在这里插入图片描述


开始进行训练

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -gpus 0,1 >>  /home/heying/darknet/scripts/VOCdevkit/VOC2020/traffic_light.log 

其中
这一行指令可以简化成
./darknet detector train [.data] [.cfg] [.weight]
【cfg/voc.data】→[.data] :指刚刚配置的.data文件路径
【 cfg/yolov3-voc.cfg】->[.cfg]:指刚刚配置的.cfg文件路径
【 darknet53.conv.74】->[.weight]:是预训练权重文件的路径,可以是.weight文件,也可以是.backup文件
【-gpus 0,1】是使用的GPU的个数,使用了两个
【 >> /home/heying/darknet/scripts/VOCdevkit/VOC2020/traffic_light.log 】这个只是将终端的标准输出记录下来,形成一个log日志文件,方便后续查看
在这里插入图片描述

但是很不幸darknet训练卡住
就是程序一直停滞在这里
在这里插入图片描述

此次流程失败

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yolov3的训练(一)下载与训练 的相关文章

  • 【YOLOv3 decode】YOLOv3中解码理解decode_box

    文章目录 1 解码是什么意思2 代码解读3 生成网格中心 代码详解4 按照网格格式生成先验框的宽高 代码详解5 感谢链接 1 解码是什么意思 在利用YOLOv3网络结构提取到out0 out1 out2之后 xff0c 不同尺度下每个网格点
  • jetson nano 部署yoloV3,yoloV4,yoloV3-tiny,yoloV4-tiny

    转载自 xff1a jetson nano 部署yoloV3 yoloV4 yoloV3 tiny yoloV4 tiny dingding的专栏 CSDN博客 jetson nano 部署yoloV3 yoloV4 yoloV3 tiny
  • yolov3 批量处理图片获得检测框坐标

    转载自 xff1a yolov3 批量处理图片获得检测框坐标 what it mean的博客 CSDN博客 yolov3 批量处理图片获得检测框坐标 HaLiXieDun 2021 02 24 13 59 03 799 正在上传 重新上传取
  • 【深度学习】Yolov3详解笔记及Pytorch代码

    Yolov3详解笔记及Pytorch代码 预测部分网络结构backbone xff1a Darknet 53output预测结果的解码 训练部分计算loss所需参数pred是什么target是什么loss的计算过程 预测部分 网络结构 DB
  • 修改代码,使得 yolov3输出选中框的坐标信息

    1 修改darknet image c中的draw detections v3函数 主要修改三段代码 xff1a 第一段 xff1a 第二段 xff1a 第三段 xff1a 修改完的draw detections v3函数如下 xff1a
  • keras--yolov3源码注释

    注意box的左上角 xff08 xmin xff0c ymin xff09 和右下角坐标 xff08 xmax xff0c ymax xff09 的坐标原点是左上角 xff0c 如下图 model py span class token t
  • 使用VSCode配置Anaconda(3.7)-python3.6(yolov3)环境

    最近因为毕设需要用到目标检测的功能 xff0c 所以在完全小白的前提下学习了下YOLOv3 xff08 Windows10 43 Keras 43 VSCode 43 Tensorflow xff09 xff0c 在使用VSCode时遇到了
  • Google Colab的详细使用教程—YOLOv3为例

    一 先哔哔几句热下身 相信疫情隔离在家而且还要使用深度学习的小伙伴们或多或少都会面临么的钱买高性能显卡又么的钱租服务器的窘境 下面我就来给小伙伴们介绍以下如何使用Google Colab免费服务器的故事吧 xff08 至于怎么上Google
  • YOLOv3

    YOLOv3 论文信息论文标题 xff1a 论文作者 xff1a 收录期刊 会议及年份 xff1a 论文学习YOLOv3 网络架构 xff1a YOLO 输出特征图解码 xff08 前向过程 xff09 xff1a 训练策略与损失函数 xf
  • yolov3 批量处理图片获得检测框坐标

    前言 yolov3实现检测 xff0c 需要所有检测框的坐标实现定位 在darknet master项目下实现检测框坐标的获取 前提 系统 xff1a Windows 语言 xff1a C 项目 xff1a darknet master 开
  • yolov3的训练(一)下载与训练

    darknet框架简介 https blog csdn net mao hui fei article details 113820303 AlexeyAB大佬的关于darknet的详细文档信息 https github com Alexe
  • ubuntu18中yolov3检测图片显示进程已杀死

    病因 xff1a 设备带不动YOLO的进程 解决方法 xff1a 此前本人ubuntu的内存设置为2g xff0c 将内存改为4g后再次检测凸显显示检测成功
  • yoloV3 darknet GPU手把手从编译到训练再到C++调用API

    我要先声明一下 xff0c 系统是Ubuntu18 04 xff0c 我的机器已经装好了opencv4 1 1 和 cuda10 0 的 xff0c 过程可参考我另一篇博客 xff0c 这部分不再说明 IDE使用qtcreator 1 下载
  • 自然场景OCR检测(YOLOv3+CRNN)

    自然场景OCR检测 YOLOv3 43 CRNN xff08 中文 43 英文模型 xff09 前言 最近对于自然场景下的OCR比较有兴趣 xff0c 所以总结了一些目前OCR现状 xff0c 并且找了一个自然场景OCR的项目练练手 本人新
  • 【Darknet-53】YOLOv3 backbone Darknet-53 详解

    文章目录 1 模型计算量与参数量2 Darknet 53网络3 感谢链接 1 模型计算量与参数量 模型计算量与参数量的计算方式主要有两种 xff0c 一种是使用thop库 xff0c 一种是使用torchsummaryX 使用pip ins
  • 【视觉检测C++接口实现】vs2019使用动态链接库yolo_cpp_dll调用yolov3

    目录 0 前言 1 准备工作 1 1 yolo cpp dll dll和yolo cpp dll lib的获取 1 2 pthreadGC2 dll和pthreadVC2 dll的获取 1 3 yolo v2 class hpp的获取 1
  • YOLO v3基于ROS应用记录

    有时候 就要敢于背上超出自己预料的包袱 真的努力后 你会发现自己要比想象的优秀很多 愿在别人眼里算不上梦想的梦想 成真 言归正传 记录下之前在ROS下跑yolov3的历程吧 感觉现在视觉感知领域用yolo的比faster RCNN多很多了
  • 目标检测标签文件txt转成xml

    最近在用ppyolo训练好的模型对新采集的数据进行标记 再人工微调 减少从头打标签的时间 但是推理保存的结果都是txt格式的 想要在labelimg中可视化 那就需要将txt转换成xml 以下代码即可完成这一功能 coding UTF 8
  • 睿智的目标检测51——Tensorflow2搭建yolo3目标检测平台

    睿智的目标检测51 Tensorflow2搭建yolo3目标检测平台 学习前言 源码下载 YoloV3实现思路 一 整体结构解析 二 网络结构解析 1 主干网络Darknet53介绍 2 构建FPN特征金字塔进行加强特征提取 3 利用Yol
  • u版YOLOv3的卷积权重分享

    网上有许多关于预训练权重的分享 但大部分都要收费 官网下载又太慢了 自己就破费一把 本着一人收费 大家共享的原则 将自己花钱下载的权重文件分享出来 yolov3 tiny conv 15 darknet53 conv 74 链接 https

随机推荐

  • 那一年读过的技术经典书

    转载请注明 xff1a http blog csdn net xinzhangyanxiang article details 10199757 大学刚毕业 xff0c 总结起来读过的书并不算多 xff0c 而且主要集中在大四的时期读的 x
  • Bert: 双向预训练+微调

    最近要开始使用Transformer去做一些事情了 xff0c 特地把与此相关的知识点记录下来 xff0c 构建相关的 完整的知识结构体系 以下是要写的文章 xff0c 文章大部分都发布在公众号 雨石记 上 xff0c 欢迎关注公众号获取最
  • Federated Learning: 问题与优化算法

    工作原因 xff0c 听到和使用Federated Learning框架很多 xff0c 但是对框架内的算法和架构了解不够细致 xff0c 特读论文以记之 这个系列计划要写的文章包括 xff1a Federated Learning 问题与
  • DIN: 阿里点击率预估之深度兴趣网络

    广告推荐算法系列文章 xff1a 莫比乌斯 百度的下一代query ad匹配算法百度凤巢分布式层次GPU参数服务器架构DIN 阿里点击率预估之深度兴趣网络DIEN 阿里点击率预估之深度兴趣进化网络 本文的知识点来源于参考文献 1 xff0c
  • DIEN: 阿里点击率预估之深度兴趣进化网络

    广告推荐算法系列文章 xff1a 莫比乌斯 百度的下一代query ad匹配算法百度凤巢分布式层次GPU参数服务器架构DIN 阿里点击率预估之深度兴趣网络基于Delaunay图的快速最大内积搜索算法DIEN 阿里点击率预估之深度兴趣进化网络
  • 概率矩阵分解模型 PMF

    本文是论文 一种结合推荐对象间关联关系的社会化推荐算法 的笔记 xff08 上 xff09 因为对其中的概率矩阵分解 Probabilistic Matrix Factorization PMF 不够了解 xff0c 因而我先去脑补了PMF
  • 卷积神经网络

    卷积神经网络 转载请注明 xff1a http blog csdn net stdcoutzyx article details 41596663 自今年七月份以来 xff0c 一直在实验室负责卷积神经网络 xff08 Convolutio
  • linux系统非线性结构的遍历算法

    介绍 非线性结构的二叉搜索树 xff08 BST xff09 可以进行各种不同方式的遍历 xff0c 所谓遍历 xff0c 就是环游树中的每一个节点 xff0c 然后根据我们的需要对这些节点做某种处理 树的遍历方式主要有以下几种 xff08
  • DeepID人脸识别算法之三代

    DeepID人脸识别算法之三代 转载请注明 xff1a http blog csdn net stdcoutzyx article details 42091205 DeepID xff0c 目前最强人脸识别算法 xff0c 已经三代 如今
  • 理解dropout

    理解dropout 开篇明义 xff0c dropout是指在深度学习网络的训练过程中 xff0c 对于神经网络单元 xff0c 按照一定的概率将其暂时从网络中丢弃 注意是暂时 xff0c 对于随机梯度下降来说 xff0c 由于是随机丢弃
  • 深度卷积对抗生成网络(DCGAN)

    本文是参考文献 1 的论文笔记 卷积神经网络在有监督学习中的各项任务上都有很好的表现 xff0c 但在无监督学习领域 xff0c 却比较少 本文介绍的算法将有监督学习中的CNN和无监督学习中的GAN结合到了一起 在非CNN条件下 xff0c
  • 看图说话——CNN和LSTM的联合应用

    看图说话是深度学习波及的领域之一 其基本思想是利用卷积神经网络来做图像的特征提取 xff0c 利用LSTM来生成描述 但这算是深度学习中热门的两大模型为数不多的联合应用了 本文是参考文献 1 的笔记 xff0c 论文是比较早的论文 xff0
  • 机器学习经典书籍小结

    机器学习经典书籍小结 转载本博客请注明链接 xff1a http blog csdn net xinzhangyanxiang article details 9069045 博客第一篇文章 1 是转载的 xff0c 也算是开始写博客不经意
  • Microsoft Media foundation概述(附实例)

    Microsoft Media Foundation是微软新一代多媒体开发平台 xff0c 用以取代原来的Directshow xff0c 为了满足现在多媒体播放的高清晰 xff0c 高品质 xff0c 颜色管理 xff0c 以及充分利用硬
  • Dockerfile中 使用pip镜像源加速下载

    用dockerfile文件制作镜像 xff0c 提高pip下载速度 1 安装pip3 xff0c python3 RUN apt get update RUN apt get install y python3 5 RUN apt get
  • NVIDIA Jetson Nano主机的autoware的学习与demo运行-第7章-Autoware源码安装

    Autoware源码安装 建立workspace mkdir p autoware ai src cd autoware ai 这个是下载了一个名为autoware ai repos的文件 xff0c 是为了方便管理多个git库而开发 43
  • NVIDIA Jetson Nano主机的autoware的学习与demo运行-第8章-Autoware官方demo运行

    Autoware官方demo 个人学习者很少拥有齐全的传感器以及工控机 xff0c 所以我们可以用autoware ai官网提供的一些录制好的rosbag包及个人笔记本来跑些有趣的demo 安装了 Autoware 之后 xff0c 就可以
  • NVIDIA Jetson AGX Xavier主机刷机与SSD安装

    任务逻辑 当有个新的AGX主机到手上后 xff0c 主机是启动的是eMMC xff0c 大约30G存储 这个安装了系统后到后面随便弄一下就不够存储了 xff0c 所以我是想要在主机上安装一个SSD xff0c 然后将系统直接放到SSD上 x
  • 自平衡linux红黑树

    简介 实际应用中的自平衡搜索二叉树 xff0c 除了AVL之外 xff0c 红黑树也是备受宠爱 他不仅是linux中非线性结构的标准算法 xff0c 而且是Java中TreeMap TreeSet机制 C 43 43 中的STL这些经典工具
  • yolov3的训练(一)下载与训练

    darknet框架简介 https blog csdn net mao hui fei article details 113820303 AlexeyAB大佬的关于darknet的详细文档信息 https github com Alexe