win10 darknet yolov4 训练过程

目录

创建目录结构

下载需要的文件

一. 安装标注数据集工具LabelImg  

           1. 创建虚拟环境

           2. 激活虚拟环境

           3. 安装LabelImg

           4. 启动LabelImg 

二. 使用LabelImg标注图片

           1. Open Dir打开目录,选中图片

           2. Create RectBox框选目标

           3. 切换保存格式YOLO

           4. Change Save Dir切换保存结果到 darknet\x64\data\voc\VOCdevkit\VOC2007\labels ,结果是YOLO训练用到的 与图片关联的txt文件 和 类别文件classes.txt

三. 生成训练集文件 train.txt

四. 配置yolov4-obj.cfg

五. 配置yolov4-obj.data

六. 开始训练

七. 测试


 

创建目录结构

下载需要的文件

yolov4.conv.137 放到darknet-master\build\darknet\x64目录下

Anaconda3-2020.11-Windows-x86_64.exe 直接运行安装

 

一. 安装标注数据集工具LabelImg  

        开始菜单那打开 Anaconda Prompt (Anaconda3)

           1. 创建虚拟环境

conda create -n env_LabelImg_20201206 python=3.8

           2. 激活虚拟环境

activate env_LabelImg_20201206

           3. 安装LabelImg

pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install labelImg -i https://pypi.tuna.tsinghua.edu.cn/simple/

           4. 启动LabelImg 

LabelImg

二. 使用LabelImg标注图片

           1. Open Dir打开目录,选中图片

           2. Create RectBox框选目标

           3. 切换保存格式YOLO

           4. Change Save Dir切换保存结果到 darknet\x64\data\voc\VOCdevkit\VOC2007\labels ,结果是YOLO训练用到的 与图片关联的txt文件 和 类别文件classes.txt

            

三. 生成训练集文件 train.txt

创建python脚本 make_train_txt.py ,并保存在 darknet-master\build\darknet\x64\data\voc\VOCdevkit\VOC2007\make_train_txt.py

import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import join 

myRoot = r'D:\soft\Ai\darknet-master\build\darknet\x64\data\voc\VOCdevkit\VOC2007'#这里是你项目对应的目录
imageRoot = myRoot + r'\JPEGImages'
 
def getFile_name(file_dir):
    L=[]
    for root, dirs, files in os.walk(file_dir):
        print(files)
        for file in files:
            if os.path.splitext(file)[1] == '.jpg':
                L.append(os.path.splitext(file)[0]) #L.append(os.path.join(root, file))
    return L 
 
image_ids_train = getFile_name(imageRoot)
 
list_file_train = open(myRoot +r'\ImageSets\Main\train.txt', 'w')

for image_id in image_ids_train:
    list_file_train.write(imageRoot + '\\%s.jpg\n' % (image_id))   
list_file_train.close()
 

 

运行make_train_txt.py 生成的训练文件在ImageSets\Main\目录下

四. 配置yolov4-obj.cfg

复制cfg/yolov4-custom.cfg 并重命名为cfg/yolov4-obj.cfg

做如下修改:

1 更改batch为batch=64

2 更改subdivisions为subdivisions=16

3 更改max_batches为classes数*2000,但是不要少于4000,例如这里有classes=2,那么max_batches=4000

4 更改steps为max_batches的80%,90%,这里steps=3200,3600,再设置神经网络尺寸width=416 height=416,或者其他32的倍数。

5 在cfg的3个[yolo]里面,将classes=80改为你的classes数目,这里为classes=5,三个都要改

6 在每个[yolo]前面有个[convolutional],注意有两个,在[yolo]顶上那个里面改,将里面的filters=255改为filters=(classes+5)*3 这里filters=(2+5)*3=21,注意每个都要改。

五. 配置yolov4-obj.data

classes= 2
train  = data/voc/VOCdevkit/VOC2007/ImageSets/Main/train.txt
valid  = data/voc/VOCdevkit/VOC2007/ImageSets/Main/test.txt
names = data/voc/VOCdevkit/VOC2007/labels/classes.txt
backup = backup/

保存到 data/yolov4-obj.data

六. 开始训练

.\darknet.exe detector train data/yolov4-obj.data cfg/yolov4-obj.cfg yolov4.conv.137 -map

七. 测试

.\yolo_console_dll.exe data/voc/VOCdevkit/VOC2007/labels/classes.txt cfg/yolov4-obj.cfg backup/yolov4-obj_last.weights 008766af0b28da4033824cdff3410716.mp4

训练结果会在backup目录下生成权重文件yolov4-obj_last.weights

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
### 回答1: Darknet YOLOv4训练数据集是指用于训练YOLOv4目标检测模型的数据集,其中包含了大量的图像和对应的标注信息,用于训练模型识别不同的物体。这些数据集通常由专业的数据科学家和研究人员创建,以确保数据的质量和准确性。训练数据集的质量对于模型的准确性和性能至关重要,因此在选择和使用训练数据集时需要非常谨慎。 ### 回答2: Darknet YOLOv4是一种开源深度学习框架,可用于训练各种图像识别和物体检测模型。为了训练Darknet YOLOv4模型,需要使用大量的数据集,以便模型可以充分学习,并提高识别和检测的准确性。 训练数据集是Darknet YOLOv4训练的重要组成部分。一个好的数据集应该是大规模的、多样的和真实的。例如,对于目标检测算法,需要大量包含目标的图像,例如人、车、道路标志等。数据集应该涵盖不同的光照条件、角度、遮挡、比例、背景等多种情况。此外,为了提高模型的鲁棒性,还需要添加一些负样本,例如一些没有目标的图像。 数据集的构建可以通过手动标记或使用第三方标记服务完成,例如Amazon Mechancial Turk、SuperAnnotate、Labelbox等。在标记数据集时,必须谨慎,确保每个目标都有足够的标记,并且标记精度达到标准。 对于Darknet YOLOv4模型的训练,通常需要运行数千次迭代,以便模型可以逐渐学习更复杂的特征。在每次迭代中,将图片输入到模型中,模型将预测每个目标在图像中的位置和类别。然后计算预测框和真实框之间的损失函数,并使用反向传播算法更新模型的权重。重复这个过程,直到模型精度满意为止。 为了获得更好的模型精度,还可以采用一些技术,例如数据增强、模型融合、超参数调整等。数据增强可以通过对原始图像进行旋转、翻转、缩放等操作,生成一系列不同的训练图像。模型融合可以使用多个模型进行推理,以使预测更准确。超参数调整可以调整模型的学习率、动量、批量大小等超参数,以提高训练效果。 总的来说,Darknet YOLOv4训练数据集是训练好模型的关键。创建一个好的数据集需要耗费大量的时间和精力,但是训练出精度更高的模型可以帮助我们更好地解决实际问题。 ### 回答3: Darknet是一个开源的深度学习框架,Yolov4则是一种基于Darknet开发的物体识别算法。为了让Yolov4达到更好的识别效果,需要训练数据集。 训练数据集一般需要包含所需要识别的物体的图像,同时标注每个物体的位置和类型。这个过程通常需要人工完成,成本较高,且需要一定的时间和经验。一般来说,数据集的越大,训练出的模型效果也会越好。 在训练数据集时,还需要注意一些技巧。首先,需要对数据集进行预处理,例如对图像进行大小统一化、裁剪等操作。其次,需要设置好训练的超参数,例如学习率、批次大小等。 除了使用自己的数据集之外,还可以使用一些公开的数据集进行训练,例如PASCAL VOC、COCO等。这些数据集已经被标注好了物体的位置和类型,因此可以直接用于训练。 最后,在训练数据集时还需要注意数据集的质量。数据集的质量决定了模型的识别能力和鲁棒性,因此需要不断进行反复训练和调整,直到达到满意的效果。 综上所述,训练数据集是训练Yolov4模型的重要一环,需要仔细制定方案、选择好数据集和完成数据标注工作,同时还需要反复训练和调整以获取更好的识别效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛的信仰

您的鼓励,将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值