使暗网检测器只输出边界框的标签而没有置信度

make the darknet detector only output the label of the bounding box without confidence

因为学校项目的需要,想让darknet detector只输出bounding box的标签,没有信心。 由于这行指令: darknet.exe 检测器演示 data/crosswalk.data cfg/yolov3-crosswalk.cfg_test backup/yolov3-crosswalk_last(better2).weights -i 0 -thresh 0.05 -ext_output data/1.mp4。 所以我觉得应该是修改demo.c的部分,于是找了一行显示thresh的代码,下面是我找到的代码:

if (!benchmark && !dontdraw_bbox) draw_detections_cv_v3(show_img, local_dets, local_nboxes, demo_thresh, demo_names, demo_alphabet, demo_classes, demo_ext_output);

我删除了demo_thresh,但是视频测试的时候仍然显示thresh,请帮帮我,谢谢

您似乎在项目中使用了 alexyAB 模型,因为您有“draw_detections_cv_v3”功能 转到 image_opencv.cpp 文件并找到 draw_detections_cv_v3 函数 之后找到这一行:

sprintf(buff, " (%2.0f%%)", dets[i].prob[j] * 100);

并将其更改为:

sprintf(buff, "");

此行会将置信度附加到 buff 变量中,并将打印在该行中:

cv::putText(*show_img, labelstr, pt_text, cv::FONT_HERSHEY_COMPLEX_SMALL, font_size, black_color, 2 * font_size, CV_AA);

修改后需要重新制作darknet