darknet-yolov3后续使用问题

拥有回忆 提交于 2019-12-11 01:29:32

1、测试标签上添加置信值

问题:由于官方代码测试只标注了类别,标签文字较大。使用过程中希望减小标签,并加上检测的置信值。

1)修改src/image.c文件draw_detections函数,前面部分代码修改如下

    int i,j;
 
    for(i = 0; i < num; ++i){
        char labelstr[4096] = {0};
        int class = -1;
	char possible[2];//存放检测的置信值
        for(j = 0; j < classes; ++j){
	  sprintf(possible,"%.2f",dets[i].prob[j]);//置信值截取小数点后两位赋给possible
            if (dets[i].prob[j] > thresh){
                if (class < 0) {
                    strcat(labelstr, names[j]);
		    strcat(labelstr, possible);//标签中加入置信值
                    class = j;
                } else {
                    strcat(labelstr, ", ");
                    strcat(labelstr, names[j]);
		    strcat(labelstr, possible);//标签中加入置信值
                }
                printf("%s: %.0f%%\n", names[j], dets[i].prob[j]*100);
            }
        }
///////////////////////////后面保持不变//////////////////////////////////////////////

 2)修改src/image.c文件draw_detections函数中get_label函数调用的参数

image label = get_label(alphabet, labelstr, (im.h*.02));

源码中为0.03,修改为0.02后,标签文字减小,可以根据需要调整。

修改代码后需要使用make cleanmake重新编译。

加入置信值,减小标签大小后的检测效果图!
 

2、修改训练过程中的保存次数

问题:  训练过程中修改多少次保存一次权重

 

修改example/detector.c文件中的第148行:

if(i%10000==0 || (i<1000 && i%100==0))     //迭代小于1000次,每100次保存模型,大于1000次,每10000次保存模型。

可以根据需要修改训练多少轮保存一个模型。

 

 

 

 

参考:

YOLOv3学习笔记

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!