【发布时间】:2020-02-23 21:56:46
【问题描述】:
我想用 Yolo 建立一个数据库,这是我第一次使用深度学习
- 如何为 Yolo 构建数据库并对其进行训练?
- 如何获得分类的权重?
- 对于深度学习新手来说是不是太难了?
【问题讨论】:
-
尝试使用gluonCV。在您的模型开始运行之前,您可能需要几天的时间。
标签: opencv image-processing deep-learning yolo
我想用 Yolo 建立一个数据库,这是我第一次使用深度学习
【问题讨论】:
标签: opencv image-processing deep-learning yolo
是的,您可以轻松做到!欢迎来到深度学习社区。不客气。
首先从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 文件。
我们对象的标签应该保存在 data/custom.names 中。
使用脚本,您可以将数据集拆分为训练和测试-
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 更新过滤器参数。对于两个类,我们应该在行号设置过滤器 = 21:603、689、776 所有配置更改均针对custom_data/cfg/yolov3-custom.cfg
现在,我们已经定义了训练 YOLOv3 模型所需的所有项目。训练-
./darknet detector train custom_data/detector.data custom_data/cfg/yolov3-custom.cfg darknet53.conv.74
【讨论】:
您还可以在图像中标记对象的有界框以训练 Yolo right in your web browser,只需打开 url。此工具已部署到 GitHub Pages。
【讨论】:
使用这个流行的分叉暗网存储库https://github.com/AlexeyAB/darknet。作者描述了许多步骤,可帮助您构建和使用自己的 Yolo 检测器模型。
【讨论】:
filters、classes 参数,如 github.com/AlexeyAB/… 中所述。您可能想为自己的数据集计算自己的锚框值,只需按照链接上的指南进行操作
取决于您使用的操作系统类型。您可以拨打https://github.com/AlexeyAB/darknet [特别是对于Windows] 或坚持https://github.com/pjreddie/darknet。 这样做的步骤:
设置是严格的,过程本身不是。
【讨论】:
要构建自己的数据集,您应该使用 LabelImg。这是一个免费且非常简单的软件,可为您生成构建数据集所需的所有文件。事实上,因为您正在使用 yolo,所以您需要为每个图像创建一个 txt 文件,其中将包含重要信息,例如 bbox 坐标、标签名称。所有这些 txt 文件都是由 LabelImg 自动生成的,因此您只需使用 LabelImg 打开包含所有图像的目录,然后开始标记。然后,您将拥有所有 txt 文件,您还需要创建一些其他文件才能开始训练(请参阅https://blog.francium.tech/custom-object-training-and-detection-with-yolov3-darknet-and-opencv-41542f2ff44e)。
【讨论】: