前言

这个项目是github的开源项目,YOLOV5:https://github.com/ultralytics/yolov5,目前已经有14.1k个Star 和 4.9k 个Folk了,非常的火。下面我会给大家逐个的文件介绍这个项目中的所有代码,希望能帮到大家。

原本我下的2021年4月12日更新的v5.0版本,整个项目我做了一点点的文件位置的改变,也加了点自己在其他论文中学到的tricks。不过由于yolov5这个版本迭代的速度非常快,我这个代码也并不是和官网下载v5.0的那个版本就一模一样,而且我也参考了一些后面的版本代码,还是稍微改动了一些的,不过总体来说还是差不了太多的。下面我会按文件逐个函数的进行攻破,因为我本人也还是研一,肯定会有很多的不足,希望大家指正!!!

现在是2021-07-23,目标是在一个月内写完,也就是最迟2021-8-23日更完整个项目的所有的代码。

拖几天,还有3个文件!!!

写完了,断断续续写了35天,主要是最近比较忙,好在没拖到开学。希望对大家有些帮助!

注释版全部项目文件已上传至GitHub: yolov5-5.x-annotations.


有几个想法(最近找工作中,所以需要搁浅一段时间,后面会补上这个坑)

  1. 想在yolov5的基础上加一个分支进行分割任务
  2. yolov5 + Circular Smooth Label -> 旋转目标检测
  3. yolov5剪枝轻量化

已实现:

  1. YOLOv5 Head解耦: 【YOLOv5 Head解耦】
  2. yolov5+shufflenetv2轻量化【项目二、蜂巢检测项目】二、模型改进:YOLOv5s-ShuffleNetV2

一、导航

YOLOV5-U

  • data

    • hyp.scratch.yaml
    • coco128.yaml
  • models

    • activations.py
    • common.py
    • experimental.py
    • yolo.py
    • export.py
    • yolov5s.yaml
  • utils

    • autoanchor.py
    • datasets.py
    • general.py
    • google_utils.py
    • loss.py
    • metrics.py
    • plots.py
    • torch_utils.py
  • train.py

  • val(test).py

  • detect.py

二、尚存在的问题

  1. AWS Inferentia?

    不是很清楚这其中的原理 AWS Inferentia 和 正常的推理公式有什么区别?

    更新:亚马逊的一个部署推理使用, 和整体的模型算法关系不大,一般用不太到,不用太关注。

  2. non_max_suppression中的autolabelling是什么?这样子作不就导致最终mAP过高了吗?为什么这么做?

    更新:已解决,在general.py的non_max_suppression函数中有详细解释!!!

  3. 计算损失函数置信度损失这一步时为什么要对置信度进行排序???排不排序效果不是一样的吗?

    更新:已解决,在loss.py的ComputeLoss类中已经解释清楚!

Reference

  1. Github: https://github.com/ultralytics/yolov5.
  2. Github: https://github.com/Laughing-q/yolov5_annotations.
  3. BiliBili: yolov5讲解.
  4. BiliBili 霹雳吧啦Wz: yolov3讲解.
  5. BiliBili 人工智能打游戏系列课程1:基于深度学习的目标检测算法: yolov3讲解.
  6. CSDN Laughing-q: YOLOV5讲解.
  7. CSDN 幻灵H_Ling: YOLOv5源代码导读.
  8. CSDN 昌山小屋: YOLOV5讲解.
  9. CSDN 恩泽君: (yolo v3)使用自己数据集k-means聚类产生的anchor效果反而变差解决方法.
  10. CSDN TheOldManAndTheSea: 目标检测 YOLOv5 - Sample Assignment.
  11. CSDN 菊头蝙蝠: yolov5–loss.py --v5.0版本-最新代码详细解释-2021-7-1更新.
  12. CSDN 外交官的后花园: YOLO-V3-SPP 训练时正样本筛选源码解析之build_targets.
  13. CSDN guikunchen: yolov5 代码解读 损失函数 loss.py.
  14. CSDN 迷途小书童的Note: YOLOv5的flask部署.
  15. CSDN RainbowSun1102: yolov5代码阅读笔记.
  16. CSDN Activewaste: 【干货】用tensorRT加速yolov5全记录,包含加速前后的数据对比.
  17. CSDN DEEPFELLOW: YOLOv5模型剪枝压缩.
  18. CSDN cv君: 【深入YoloV5(开源)】基于YoloV5的模型优化技术与使用OpenVINO推理实现.
  19. CSDN aabbcccddd01: YOLOv5模型网络结构简单理解及详解anchor设置.
  20. CSDN 技术挖掘者: YOLOv5算法详解.
  21. CSDN 那年当上博士前: 细数YOLOv5在使用过程中自己改动的部分.
  22. CSDN 啥都会一点的老程: 一点就分享系列(实践篇3-上篇)— 修改YOLOV5 之”魔刀小试“+ Trick心得分享+V5精髓部分源码解读.
  23. CSDN 一只歪脖子程序猿: YOLOv5 Android(完结).
  24. CSDN 是否龙磊磊真的一无所有: 目标检测计算mAP,AP,Recall,Precision的计算方式和代码(YOLO和FastRCNN等).
  25. CSDN YY_172: pytorch中加入注意力机制(CBAM),以yolov5为例).
  26. CSDN 菊头蝙蝠: yolov5–v5.0版本(最新)代码解析导航.
  27. CSDN 暮丶凉: YOLOV5源码解读(数据集加载和增强).
  28. CSDN wa1tzy: YOLOv5系列(2)——YOLOv5导出jit,onnx,engine.
  29. CSDN DLANDML: yolo5的改进策略.
  30. CSDN 昌山小屋: 【玩转yolov5】请看代码之自动anchor计算.
  31. CSDN Liaojiajia-2020: 自用代码 | YOLOv5 特征图可视化代码.
  32. CSDN Liaojiajia-2020: 自用代码 | 用Python对视频进行帧切割和帧合并.
  33. CSDN Liaojiajia-2020: YOLOv5代码详解(train.py部分).
  34. CSDN TheOldManAndTheSea: 目标检测 YOLOv5 自定义网络结构.
  35. CSDN 吸欧大王: yolov5深度剖析+源码debug级讲解系列(三)yolov5 head源码解析.
  36. CSDN 昌山小屋: 【玩转yolov5】之anchor匹配策略(build_targets)分析(1).
  37. CSDN BIT可达鸭: 在WEB端部署YOLOv5目标检测(Flask+VUE).
  38. CSDN xingzeng307: YOLOv5结合BiFPN.
  39. CSDN DEEPFELLOW: YOLOv5模型剪枝压缩(2)-YOLOv5模型简介和剪枝层选择.
  40. CSDN Charles.zhang: YOLOv5代码详解(common.py部分).
  41. CSDN a_cheng_: YOLOV5训练自己的数据集(踩坑经验之谈).
  42. CSDN Liaojiajia-2020: YOLOv5代码详解(yolov5l.yaml部分).
  43. CSDN \lambda: YOLOv5s网络结构详解.

【YOLOV5-5.x 源码讲解】整体项目文件导航相关推荐

  1. 【python表白神器】手把手教你用代码浪漫追求对象!(附完整源码+讲解)

    文章目录 一.前言 二.演示看效果! 三.网站制作 四.部署网站 五.二维码制作 六.强烈推荐系列教程,建议学起来!! 七.总结 一.前言 跟着我做,做成功就去表白,不介意的话表白成功给我打个赏.第一 ...

  2. YOLOv5目标检测源码重磅发布了!

    YOLOv5目标检测源码重磅发布了! https://github.com/ultralytics/yolov5 该存储库代表了对未来对象检测方法的超解析开源研究,并结合了在使用之前的YOLO存储库在 ...

  3. C++简介源码讲解精辟版,C++入门级C++学习,C++与C的区别值得知晓

    C++简介源码讲解精辟版,C++入门级C++学习,C++与C的区别值得知晓 C语言和C++基础区别 C++标准输入和输出 命名空 1.命名空间的定义 : namespace 标识符{ } 例:name ...

  4. ORB特征点提取与均匀化——ORBSLAM2源码讲解(一)

    文章目录 前言 一.基础知识 二.ORB特征均匀化策略对性能的影响 三.ORB特征金字塔 四.ORB提取扩展图像 五.ORB特征均匀化 总结 前言 本博客结合哔哩大学视频ORBSLAM2[ORBSLA ...

  5. 顾客信息表mysql_Qt5.5.0使用mysql编撰小软件源码讲解-顾客信息登记表_mysql

    Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介 ...

  6. Oriented Fast神奇高效的代码实现方式——ORBSLAM2源码讲解(二)

    文章目录 前言 一.基础知识 二.灰度质心法原理 三.UMAX 四.IC_Angle如何做加速运算 总结 前言 本博客结合哔哩大学视频ORBSLAM2[ORBSLAM2源码讲解专题一]ORB特征点提取 ...

  7. 27.串口通信实验源码讲解

    串口通信实验源码讲解 笔记基于正点原子官方视频 视频连接https://www.bilibili.com/video/BV1Wx411d7wT?p=71&spm_id_from=333.100 ...

  8. 双目相机标定OpenCV源码讲解

    双目相机标定OpenCV源码讲解 背景介绍 所述内容 参考资料 摄像机标定部分代码 代码思路 代码中的其他函数 找角点&求内参 求外参 求矫正映射矩阵 后记 背景介绍 暑假接近两个月的时间做了 ...

  9. android飞信短信箱程序源码讲解

    android飞信短信箱程序源码讲解! 一.程序演示 图1.进入程序后的第1页面,头部的新消息提示在任意页面都会弹出. 图2.未读消息数量提示,任意页面. 图3.点击新建短信,(或者会话中的转发选项) ...

  10. 讲解java源码_Java学习之Java源码讲解

    关于Java中源码的学习,是不少同学头疼的知识点.本文整理了JAVA源码学习的八大要点,分别是基础知识.面向对象.异常处理.集合.综合类核心代码.JAVA8新特性.Input/Output和Java小 ...

最新文章

  1. 中兴手机数据通道打不开_我用的是中兴手机,里面有流量,但是数据开不了,应该怎么办呢?...
  2. Data Lake Analytics的Geospatial分析函数
  3. sql 注入 相关函数
  4. spoj Favorite Dice(概率dp+期望)
  5. 36个excel技巧、50个快捷键
  6. 中外大都市人口密度的数据比较
  7. 关于poi导出excel浏览器不下载的问题
  8. Linux shell的简单学习
  9. 小学如何搞计算机课堂游戏活动,11个流行的小学课堂游戏
  10. PS制作渐变金属文字
  11. Oracle EBS PAC定期成本分配处理程序请求报错:30011一个无效帐户与正在处理的物料关联
  12. 软银在日本推物联网单车共享
  13. 微盛·企微管家出席腾讯教育第二届MEET创新峰会并现场分享
  14. 训练日记 2.10 - 4.7
  15. 解决pandas(Python)的报错:unsupported operand type(s) for -: ‘datetime.date’ and ‘Timestamp’
  16. EOS:一些必要的知识与常见错误:cloes工具(杂谈)1
  17. 信息安全等级保护定级备案流程
  18. 在IINA播放器上观看直播:IINA+ for Mac
  19. 大人小孩都适用的口才训练方法
  20. TCP三次握手、四次挥手以及TIME_WAIT详解

热门文章

  1. iptv鉴权 php,[转]关于openwrt用于dhcp客户端协议突破iptv的dhcp+鉴权(ipoe)
  2. 电信烽火2821t虚拟服务器设置,iTV使用指南-烽火智能高清机顶盒装维手册
  3. Java Web架构知识整理
  4. 工具------Java反编译工具XJad
  5. ubuntu内部错误
  6. 分享128个商务模板PPT模板,总有一款适合你
  7. FLTK学习笔记4-在FLTK中显示图片(上)
  8. 【机器学习】机器学习数据集大全
  9. 2021-03-03
  10. 人工合成生命的最新进展比AI还快