一、学习 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 命令时,<test_cfg> 文件中 batch 和 subdivisions 两项必须为 1。否则会出现测试检测不到目标、计算 recall 为 0,验证没有产生结果文件。训练时候根据 GPU 情况调大 batch 和 subdivisions,官方 cfg 中两者值分别为 64 和 16。

2、测试标签上如何添加置信值

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

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

  1.   int i,j;

  2.  

  3.     for(i = 0; i < num; ++i){

  4.         char labelstr[4096] = {0};

  5.         int class = -1;

  6.     char possible[2];//存放检测的置信值

  7.         for(j = 0; j < classes; ++j){

  8.       sprintf(possible,"%.2f",dets[i].prob[j]);//置信值截取小数点后两位赋给possible

  9.             if (dets[i].prob[j] > thresh){

  10.                 if (class < 0) {

  11.                     strcat(labelstr, names[j]);

  12.             strcat(labelstr, possible);//标签中加入置信值

  13.                     class = j;

  14.                 } else {

  15.                     strcat(labelstr, ", ");

  16.                     strcat(labelstr, names[j]);

  17.             strcat(labelstr, possible);//标签中加入置信值

  18.                 }

  19.                 printf("%s: %.0f%%\n", names[j], dets[i].prob[j]*100);

  20.             }

  21.         }

///后面保持不变//
修改 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%10000==0 || (i<1000 && i%100==0))// 迭代小于 1000 次,每 100 次保存模型,大于 1000 次,每 10000 次保存模型。

可以根据需要修改训练多少轮保存一个模型,if(i%1000==0 || (i<1000 && i%100==0)),大于 1000 次,每 1000 次保存模型。

YOLOv3 学习笔记:大神好贴汇总+自身经验记录相关推荐

  1. OpenCV学习笔记大集锦

    转载自: OpenCV学习笔记大集锦 – 视觉机器人 http://www.cvrobot.net/collect-opencv-resource-learn-study-note-chinese/ ...

  2. [转]OpenCV学习笔记大集锦

    转载自: OpenCV学习笔记大集锦 – 视觉机器人 http://www.cvrobot.net/collect-opencv-resource-learn-study-note-chinese/ ...

  3. YoloV3学习笔记(一)—— 打标签

    YoloV3学习笔记(一) labelimg标注图片 labelimg页面介绍 报错分析 解决方法 labelimg标注图片 搭建好Yolov3+pytorch+windows环境后,为了训练模型,标 ...

  4. YOLOV3学习笔记(噼里啪啦up主)

    YOLOV3学习笔记(噼里啪啦up主) YOLOV3上面的IOU LOSS是错误的,因为在两个候选框和目标框围成的面积相同时,YOLOV3并没有告诉网络应该选哪个候选框. 2. 在YOLOV3中判断候 ...

  5. lisp 边坡_史诗级测量大神分享---道路测量全过程经验

    原标题:史诗级测量大神分享---道路测量全过程经验 工程施工测量事关重大,而且并不如许多人所想的,手里操作着个测量仪器就是工程测量的全部,测量人员的水平高低,其实更体现在预见能力和谋划能力上. 道路施 ...

  6. Mysql学习笔记(基础)基础sql语句详细记录

    数据库学习(基础) // 个人网课学习记录,如果有违规等问题,请联系我删除~ mysql下载安装( 解压版安装配置 下载版安装配置 ) 需求分析:使用cmd命令来创建一个数据库,并对数据库中得一张分类 ...

  7. Android 开发学习笔记:七大知识点板块汇总

    前言 我从事 Android 开发行业也有些年头,工作期间也接触过很多 Android 开发者, 因此也非常清楚 程序员最大的限制并非年龄而是实力: 但大多数初中级Android工程师,想要提升技能, ...

  8. 【干货】国外大神提高插画设计能力的经验分享

    每个国外设计大神都是我们学习的榜样,哪怕是做插画设计的,对于我们这些品牌平面设计师来做,这些设计思维和经验同样值得我们学习,举一反三,设计都是有共性的.下面的国外大神的经验文章译文. 对我来说,生命中 ...

  9. android字体!字节大神强推千页PDF学习笔记,大厂面试题汇总

    基本情况 先说一下个人基本情况,计算机科学与技术专业.主要学的Android开发,所以投的岗位都是Android开发工程师.投了知乎,内推了阿里蘑菇街腾讯百度网易.腾讯百度都没有收到面试,知乎Skyp ...

最新文章

  1. Fiat–Shamir heuristic 启发式的应用 理解 代码实现
  2. 文化创意企业纷纷跨界融合,软件资产管理奠定安全基础
  3. 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D...
  4. 被程序员忽视的位运算
  5. android自定义viewgroup之我也玩瀑布流
  6. 2016-7-4收藏夹接口
  7. Educational Codeforces Round 48
  8. mysql数据库业务逻辑_Mysql业务设计(逻辑设计)
  9. 解释器模式(行为模式)
  10. Cookie字符串转Map集合方法
  11. 黑客事件中如何实现利益最大化?
  12. AI发展“风口”在哪里?陪伴才是“蓝海”
  13. 《我的祖国》正确英译应该是《The Evercountry, Mine》
  14. 微信小程序使用webview打开pdf文档及显示网页内容
  15. STM32F072RB 实作笔记(一)- Keil 安装
  16. 塞规公差带图_工作量规公差带.ppt
  17. LaTeX 排版(二)——排版数学公式
  18. 【网络编程】-40 数据链路层之以太网、MAC、MTU详解
  19. Linux下通过rdesktop连接Windows远程桌面
  20. AndroidManifest文件

热门文章

  1. boost::statechart模块自定义反应测试相关的测试程序
  2. boost::combine相关的测试程序
  3. boost::mp11::mp_map_keys相关用法的测试程序
  4. boost::intrusive::list_member_hook用法的测试程序
  5. Boost:自定义vector的测试程序
  6. DCMTK:简单存储服务类提供者
  7. DCMTK:测试ConcatenationCreator类
  8. VTK:直线网格之RGrid
  9. OpenCV calcOpticalFlowPyrLK用法的实例(附完整代码)
  10. OpenCV椭圆拟合ellipse fitting的实例(附完整代码)