如何在 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
)
注意:如果再次克隆暗网存储库,这些更改将被删除。
我想将边界框标签编辑为仅显示检测概率而不显示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
)
注意:如果再次克隆暗网存储库,这些更改将被删除。