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 clean,make重新编译。
加入置信值,减小标签大小后的检测效果图!
2、修改训练过程中的保存次数
问题: 训练过程中修改多少次保存一次权重
修改example/detector.c文件中的第148行:
if(i%10000==0 || (i<1000 && i%100==0)) //迭代小于1000次,每100次保存模型,大于1000次,每10000次保存模型。
可以根据需要修改训练多少轮保存一个模型。
3、darknet的python接口
1)修改darknet下的 python/darknet.py 的最后4行
2)解决依赖文件 libdarknet.so文件
find / -name libdarknet.so //找到libdarknet.so 的文件路径信息,一般在 ~/darknet/libdarknet.so
ln -s ~/darknet/libdarknet.so /usr/lib // 假设上步的路径为~/darknet/libdarknet.so(以实际为准),建立软链接
或者: 在darknet.py,把libdarknet.so的路径信息加入lib
3)运行darknet.py
python python/darknet.py
若出现 如下信息说明运行成功:
参考: