分享大佬们写的darknet和yolo的学习

2019-07-13 06:15发布

我正在看【进击的YOLOv3,目标检测网络的巅峰之作 | 内附实景大片@慕课网 原创_慕课网_手记】,分享给你,一起看吧! https://m.imooc.com/mip/article/29342 一、学习YOLOv3 YOLOv3论文 YOLOv3:An Incremental Improvement全文翻译 【目标检测简史】进击的YOLOv3,目标检测网络的巅峰之作 语言生动易懂,适合新手学习,有很多实测的图,效果非常好,展示了YOLOv3的强大! 总结了YOLOv3的改进之处,并对下一代YOLO提出展望 【目标检测简史】YOLOv3的实景大片儿(含源码) 实测看效果,用YOLOv3检测一段视频,截取部分帧展示YOLOv3在小物体或者远处的物体识别、重叠遮挡物体的识别、运动模糊物体的识别、高密度汽车的识别、密集人群识别的效果。 目标检测网络之 YOLOv3 具体讲解了YOLOv1到v2到v3的改进之处,值得学习 如何评价最新的YOLOv3? 知乎话题,一些回答挺好的,各种总结、图表、文章链接 二、实践YOLOv3 YOLOv3官方Linux代码 YOLOv3官方网站 图表展示了YOLOv3的优势,讲解了如何搭建Darknet、下载预训练模型、测试图像、测试视频、用VOC数据集训练模型、用COCO数据集训练模型 YOLOv3: 训练自己的数据 详细讲解了如何制作VOC格式的数据集,将VOC格式的xml文件转换成YOLO格式的txt文件,修改训练相关的配置文件,如何训练自己的模型,如何进行测试,论文阅读 YOLO配置文件理解 详细讲解了YOLOv3配置文件每个参数的意义,以及源码中如何使用这些参数 三、修改YOLOv3 YOLOv3批量测试图片并保存在自定义文件夹下 讲解了如何批量测试图片并保存在自定义文件夹下,给出了代码 YOLOv3使用笔记——计算mAP、recall 讲解了YOLOv3如何计算mAP、recall来衡量模型效果 四、自己使用问题总结 1、运行test,recall,vaild命令时,文件中batch和subdivisions两项必须为1。否则会出现测试检测不到目标、计算recall为0,验证没有产生结果文件。训练时候根据GPU情况调大batch和subdivisions,官方cfg中两者值分别为64和16。 2、测试标签上如何添加置信值 由于官方代码测试只标注了类别,标签文字较大。使用过程中希望减小标签,并加上检测的置信值。 修改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%% ", names[j], dets[i].prob[j]*100); } } ///////////////////////////后面保持不变//////////////////////////////////////////////
修改src/image.c文件draw_detections函数中get_label函数调用的参数 image label = get_label(alphabet, labelstr, (im.h*.02)); 源码中为0.03,修改为0.02后,标签文字减小,可以根据需要调整。 修改代码后需要使用make clean,make重新编译。 加入置信值,减小标签大小后的检测效果图! 3、使用多GPU训练时,由于并行处理,训练迭代次数会一次跳过几轮,导致某些整数次迭代的模型没有保存。 修改example/detector.c文件中的第148行 源代码为:if(i%100000 || (i<1000 && i%1000))//迭代小于1000次,每100次保存模型,大于1000次,每10000次保存模型。 可以根据需要修改训练多少轮保存一个模型,if(i%10000 || (i<1000 && i%1000)),大于1000次,每1000次保存模型。
作者:zhangmt824
来源:CSDN
原文:https://blog.csdn.net/u011649150/article/details/81038645
版权声明:本文为博主原创文章,转载请附上博文链接!