opencv - Yolo 用自己的数据集训练 yolo

标签 opencv image-processing deep-learning yolo

我想用 Yolo 建立一个数据库,这是我第一次使用深度学习

  1. 如何为 Yolo 构建数据库并对其进行训练?
  2. 如何获得分类的权重?
  3. 对于刚接触深度学习的人来说是不是太难了?

最佳答案

是的,您可以轻松做到!欢迎来到深度学习社区。不客气。

首先从Link下载darknet文件夹

进入文件夹并在命令提示符下输入make

git clone https://github.com/pjreddie/darknet
cd darknet
make

定义这些文件 -

data/custom.names
data/images
data/train.txt
data/test.txt

现在是时候使用 LabelImg 标记图像了并将其保存为 YOLO 格式,这将为图像数据集生成相应的标签 .txt 文件。

LabelImg labelling guide

我们对象的标签应该保存在 data/custom.names 中。

Custom.names example

使用脚本,您可以将数据集拆分为训练和测试-

import glob, os

dataset_path = '/media/subham/Data1/deep_learning/usecase/yolov3/images'

# Percentage of images to be used for the test set
percentage_test = 20

# Create and/or truncate train.txt and test.txt
file_train = open('train.txt', 'w')  
file_test = open('test.txt', 'w')

# Populate train.txt and test.txt
counter = 1  
index_test = round(100 / percentage_test)  
for pathAndFilename in glob.iglob(os.path.join(dataset_path, "*.jpg")):  
    title, ext = os.path.splitext(os.path.basename(pathAndFilename))

    if counter == index_test+1:
        counter = 1
        file_test.write(dataset_path + "/" + title + '.jpg' + "\n")
    else:
        file_train.write(dataset_path + "/" + title + '.jpg' + "\n")
        counter = counter + 1

为了训练我们的对象检测器,我们可以使用已经在庞大数据集上训练的现有预训练权重。来自 here我们可以将预训练的权重下载到根目录。

在 custom_data 目录中创建一个 yolo-custom.data 文件,该文件应包含有关训练和测试数据集的信息

classes=2
train=custom_data/train.txt
valid=custom_data/test.txt
names=custom_data/custom.names
backup=backup/

现在我们必须在 yolov3.cfg 中进行更改以训练我们的模型。为两类。根据需要的性能,我们可以选择 YOLOv3 配置文件。对于这个例子,我们将使用 yolov3.cfg。我们可以将文件从cfg/yolov3.cfg复制到custom_data/cfg/yolov3-custom.cfg

我们的网络应该训练的最大迭代次数由参数 max_batches=4000 设置。还要更新steps=3200,3600,它是max_batches 的80%、90%。 我们需要更新在 [yolo] 层之前的 [yolo] 和 [convolutional] 层的类和过滤器参数。 在这个例子中,因为我们有一个单一的类(特斯拉),我们将更新 [yolo] 层中的类参数为 1 行号:610、696、783 同样,我们需要根据类计数过滤器 =(类 + 5)* 3 更新过滤器参数。对于两个类,我们应该在行号:603、689、776 处设置过滤器 = 21 所有配置更改均针对custom_data/cfg/yolov3-custom.cfg

现在,我们已经定义了训练 YOLOv3 模型所需的所有项目。训练-

./darknet detector train custom_data/detector.data custom_data/cfg/yolov3-custom.cfg darknet53.conv.74

关于opencv - Yolo 用自己的数据集训练 yolo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58594235/

相关文章:

openCV 3.0 recoverPose 错误结果

c++ - 无效或损坏的 lib 文件 opencv_core220d.lib

android - 如何通过Android Intent 发送opencv Mat列表

java - ImageMagick:如何将原始 PNG 与有损 JPEG 进行比较?

python - 如何创建 Python 卷积核?

python - 如何使用 flow_from_directory 仅选择特定文件格式?

opencv - 在 ARM Docker 容器中构建 OPENCV 时出现问题

matlab - 如何在matlab中平均多个图像?

python - 将文本搜索添加到基于内容的图像检索(卷积网络)

python-3.x - 从 Tensorflow Keras 检查点重新加载最佳权重