如何在 YOLO (V4) 中编辑或删除边界框标签文本?

How can I edit or remove the bounding box label text in YOLO (V4)?

我想将边界框标签编辑为仅显示检测概率而不显示class标签,我该怎么做?

我在 darknet/src 中找到了一个名为 image.c 的文件,我认为这是我需要进行编辑的地方。 但是其中有多个功能似乎与此任务相关,我不确定要编辑哪个,以及如何编辑以获得我想要的内容。 image.c 中的代码很长,因此请参考 this link(官方暗网回购),其中我所指的代码可用。

我尝试通过简单地将第 511 行的代码更改为 printf("%s: %.0f%%", " ", prob * 100);、运行 !make 命令来编辑第 465 行的函数 void draw_detections,但标签仍然存在存在于检测中。

您正在项目中使用 alexyAB 模型。转到 image_opencv.cpp 文件并找到 draw_detections_cv_v3 函数,然后找到此行:

 strcat(labelstr, names[j]);

更改为:

strcat(labelstr, "");

终于找到了如何做到这一点:

找到文件 darknet/src/image.c

删除行代码在436

strcat(labelstr, names[selected_detections[i].best_class]);

从第 441 行到第 446 行

for (j = 0; j < classes; ++j) { 
    if (selected_detections[i].det.prob[j] > thresh && j != selected_detections[i].best_class) { 
        strcat(labelstr, ", "); 
        strcat(labelstr, names[j]); 
    } 
} 

确保在项目中重建暗网(!make)

注意:如果再次克隆暗网存储库,这些更改将被删除。