尝试在自定义模型上显示图像时出现 Yolov4 错误

Yolov4 error when trying to display image on custom model

我已经训练了我自己的模型,使用我自己的自定义数据集,使用 Yolov4,我已经下载了 .cfg.weights.data 文件。

当我尝试 运行 我的模型时使用:

darknet.exe detector test cfg/obj.data cfg/yolov4-og.cfg custom-yolov4-detector_best.weights 

我收到错误:

Error: l.outputs == params.inputs filters= in the [convolutional]-layer doesn't correspond to classes= or mask= in [yolo]-layer 

我不知道这是否是我的错误,使用我 运行ning 的命令,还是我训练的模型的错误。

如有任何帮助,我们将不胜感激。

我假设您使用的是主要的暗网存储库 AlexeyAB。请确保您遵循以下说明:

  1. 确保在配置文件中分配正确的 classes 编号。

  2. 将3中的filters=255改为filters=(类 + 5)x3 [convolutional] 在每个 [yolo] 层之前,记住它只 必须是每个 [yolo]

    之前的最后一个 [convolutional]

    https://github.com/AlexeyAB/darknet/blob/0039fd26786ab5f71d5af725fc18b3f521e7acfd/cfg/yolov3.cfg#L603 https://github.com/AlexeyAB/darknet/blob/0039fd26786ab5f71d5af725fc18b3f521e7acfd/cfg/yolov3.cfg#L689 https://github.com/AlexeyAB/darknet/blob/0039fd26786ab5f71d5af725fc18b3f521e7acfd/cfg/yolov3.cfg#L776

    所以如果 classes=1 那么应该是 filters=18。如果 classes=2 则写 filters=21

    (一般filters取决于类, coords和masks个数,即filters=(类 + coords + 1)*,其中mask是anchors的索引。如果没有mask , 然后 filters=(类 + coords + 1)*num)

参考:https://github.com/AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects