小编Shu*_*agi的帖子

如何在暗网中使用预训练的 yolov4 模型训练新课程

我使用 darknet 和 yolov4 为我的用例训练了一个自定义对象检测模型。我在 obj.name 文件中提到了 3 个类,如下所示:

# data/obj.names
no_helmet
helmet
vest
Run Code Online (Sandbox Code Playgroud)

培训已经完成,检测也取得了良好的效果。

现在,我想向模型添加 2 个新类,因此我使用 2 个新类名更新了类文件:

# data/obj.names
no_helmet
helmet
vest
fire
smoke
Run Code Online (Sandbox Code Playgroud)

我对配置文件进行了更改,并更新了所有classes=3层和前面的层。classes=5filter=24filter=30[yolo][convolutional]

对于数据集,我只提供了 2 个新类(firesmoke)的图像和注释。

然后我开始暗网训练,对于权重参数,我提供了我旧的 yolov4 训练权重。完成后,我进行了测试,但没有检测到图像中的任何内容。连老班都没有。

我哪里做错了?

我的感觉是,由于我没有为旧类提供数据集,因此模型忘记了这些数据集。但是,那么它至少应该检测到新的类别,对吗?还是我错了?

新编辑:

我使用组合数据集(旧的 3 个类和 2 个新类)对预训练的自定义权重(针对前 3 个类进行了训练)再次进行了训练,当我运行它进行测试时,仍然没有输出。

有人可以向我解释一下这是怎么回事吗?我想这背后有一些我不知道的数学原理。

我每次都必须从头开始训练吗?

python machine-learning object-detection darknet yolo

5
推荐指数
1
解决办法
6771
查看次数