【YOLOV5-5.x 源码讲解】整体项目文件导航
前言
这个项目是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.
有几个想法(最近找工作中,所以需要搁浅一段时间,后面会补上这个坑)
- 想在yolov5的基础上加一个分支进行分割任务
- yolov5 + Circular Smooth Label -> 旋转目标检测
- yolov5剪枝轻量化
已实现:
- YOLOv5 Head解耦: 【YOLOv5 Head解耦】
- 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
二、尚存在的问题
AWS Inferentia?
不是很清楚这其中的原理 AWS Inferentia 和 正常的推理公式有什么区别?
更新:亚马逊的一个部署推理使用, 和整体的模型算法关系不大,一般用不太到,不用太关注。non_max_suppression中的autolabelling是什么?这样子作不就导致最终mAP过高了吗?为什么这么做?
更新:已解决,在general.py的non_max_suppression函数中有详细解释!!!计算损失函数置信度损失这一步时为什么要对置信度进行排序???排不排序效果不是一样的吗?
更新:已解决,在loss.py的ComputeLoss类中已经解释清楚!
Reference
- Github: https://github.com/ultralytics/yolov5.
- Github: https://github.com/Laughing-q/yolov5_annotations.
- BiliBili: yolov5讲解.
- BiliBili 霹雳吧啦Wz: yolov3讲解.
- BiliBili 人工智能打游戏系列课程1:基于深度学习的目标检测算法: yolov3讲解.
- CSDN Laughing-q: YOLOV5讲解.
- CSDN 幻灵H_Ling: YOLOv5源代码导读.
- CSDN 昌山小屋: YOLOV5讲解.
- CSDN 恩泽君: (yolo v3)使用自己数据集k-means聚类产生的anchor效果反而变差解决方法.
- CSDN TheOldManAndTheSea: 目标检测 YOLOv5 - Sample Assignment.
- CSDN 菊头蝙蝠: yolov5–loss.py --v5.0版本-最新代码详细解释-2021-7-1更新.
- CSDN 外交官的后花园: YOLO-V3-SPP 训练时正样本筛选源码解析之build_targets.
- CSDN guikunchen: yolov5 代码解读 损失函数 loss.py.
- CSDN 迷途小书童的Note: YOLOv5的flask部署.
- CSDN RainbowSun1102: yolov5代码阅读笔记.
- CSDN Activewaste: 【干货】用tensorRT加速yolov5全记录,包含加速前后的数据对比.
- CSDN DEEPFELLOW: YOLOv5模型剪枝压缩.
- CSDN cv君: 【深入YoloV5(开源)】基于YoloV5的模型优化技术与使用OpenVINO推理实现.
- CSDN aabbcccddd01: YOLOv5模型网络结构简单理解及详解anchor设置.
- CSDN 技术挖掘者: YOLOv5算法详解.
- CSDN 那年当上博士前: 细数YOLOv5在使用过程中自己改动的部分.
- CSDN 啥都会一点的老程: 一点就分享系列(实践篇3-上篇)— 修改YOLOV5 之”魔刀小试“+ Trick心得分享+V5精髓部分源码解读.
- CSDN 一只歪脖子程序猿: YOLOv5 Android(完结).
- CSDN 是否龙磊磊真的一无所有: 目标检测计算mAP,AP,Recall,Precision的计算方式和代码(YOLO和FastRCNN等).
- CSDN YY_172: pytorch中加入注意力机制(CBAM),以yolov5为例).
- CSDN 菊头蝙蝠: yolov5–v5.0版本(最新)代码解析导航.
- CSDN 暮丶凉: YOLOV5源码解读(数据集加载和增强).
- CSDN wa1tzy: YOLOv5系列(2)——YOLOv5导出jit,onnx,engine.
- CSDN DLANDML: yolo5的改进策略.
- CSDN 昌山小屋: 【玩转yolov5】请看代码之自动anchor计算.
- CSDN Liaojiajia-2020: 自用代码 | YOLOv5 特征图可视化代码.
- CSDN Liaojiajia-2020: 自用代码 | 用Python对视频进行帧切割和帧合并.
- CSDN Liaojiajia-2020: YOLOv5代码详解(train.py部分).
- CSDN TheOldManAndTheSea: 目标检测 YOLOv5 自定义网络结构.
- CSDN 吸欧大王: yolov5深度剖析+源码debug级讲解系列(三)yolov5 head源码解析.
- CSDN 昌山小屋: 【玩转yolov5】之anchor匹配策略(build_targets)分析(1).
- CSDN BIT可达鸭: 在WEB端部署YOLOv5目标检测(Flask+VUE).
- CSDN xingzeng307: YOLOv5结合BiFPN.
- CSDN DEEPFELLOW: YOLOv5模型剪枝压缩(2)-YOLOv5模型简介和剪枝层选择.
- CSDN Charles.zhang: YOLOv5代码详解(common.py部分).
- CSDN a_cheng_: YOLOV5训练自己的数据集(踩坑经验之谈).
- CSDN Liaojiajia-2020: YOLOv5代码详解(yolov5l.yaml部分).
- CSDN \lambda: YOLOv5s网络结构详解.
【YOLOV5-5.x 源码讲解】整体项目文件导航相关推荐
- 【python表白神器】手把手教你用代码浪漫追求对象!(附完整源码+讲解)
文章目录 一.前言 二.演示看效果! 三.网站制作 四.部署网站 五.二维码制作 六.强烈推荐系列教程,建议学起来!! 七.总结 一.前言 跟着我做,做成功就去表白,不介意的话表白成功给我打个赏.第一 ...
- YOLOv5目标检测源码重磅发布了!
YOLOv5目标检测源码重磅发布了! https://github.com/ultralytics/yolov5 该存储库代表了对未来对象检测方法的超解析开源研究,并结合了在使用之前的YOLO存储库在 ...
- C++简介源码讲解精辟版,C++入门级C++学习,C++与C的区别值得知晓
C++简介源码讲解精辟版,C++入门级C++学习,C++与C的区别值得知晓 C语言和C++基础区别 C++标准输入和输出 命名空 1.命名空间的定义 : namespace 标识符{ } 例:name ...
- ORB特征点提取与均匀化——ORBSLAM2源码讲解(一)
文章目录 前言 一.基础知识 二.ORB特征均匀化策略对性能的影响 三.ORB特征金字塔 四.ORB提取扩展图像 五.ORB特征均匀化 总结 前言 本博客结合哔哩大学视频ORBSLAM2[ORBSLA ...
- 顾客信息表mysql_Qt5.5.0使用mysql编撰小软件源码讲解-顾客信息登记表_mysql
Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介 ...
- Oriented Fast神奇高效的代码实现方式——ORBSLAM2源码讲解(二)
文章目录 前言 一.基础知识 二.灰度质心法原理 三.UMAX 四.IC_Angle如何做加速运算 总结 前言 本博客结合哔哩大学视频ORBSLAM2[ORBSLAM2源码讲解专题一]ORB特征点提取 ...
- 27.串口通信实验源码讲解
串口通信实验源码讲解 笔记基于正点原子官方视频 视频连接https://www.bilibili.com/video/BV1Wx411d7wT?p=71&spm_id_from=333.100 ...
- 双目相机标定OpenCV源码讲解
双目相机标定OpenCV源码讲解 背景介绍 所述内容 参考资料 摄像机标定部分代码 代码思路 代码中的其他函数 找角点&求内参 求外参 求矫正映射矩阵 后记 背景介绍 暑假接近两个月的时间做了 ...
- android飞信短信箱程序源码讲解
android飞信短信箱程序源码讲解! 一.程序演示 图1.进入程序后的第1页面,头部的新消息提示在任意页面都会弹出. 图2.未读消息数量提示,任意页面. 图3.点击新建短信,(或者会话中的转发选项) ...
- 讲解java源码_Java学习之Java源码讲解
关于Java中源码的学习,是不少同学头疼的知识点.本文整理了JAVA源码学习的八大要点,分别是基础知识.面向对象.异常处理.集合.综合类核心代码.JAVA8新特性.Input/Output和Java小 ...
最新文章
- 中兴手机数据通道打不开_我用的是中兴手机,里面有流量,但是数据开不了,应该怎么办呢?...
- Data Lake Analytics的Geospatial分析函数
- sql 注入 相关函数
- spoj Favorite Dice(概率dp+期望)
- 36个excel技巧、50个快捷键
- 中外大都市人口密度的数据比较
- 关于poi导出excel浏览器不下载的问题
- Linux shell的简单学习
- 小学如何搞计算机课堂游戏活动,11个流行的小学课堂游戏
- PS制作渐变金属文字
- Oracle EBS PAC定期成本分配处理程序请求报错:30011一个无效帐户与正在处理的物料关联
- 软银在日本推物联网单车共享
- 微盛·企微管家出席腾讯教育第二届MEET创新峰会并现场分享
- 训练日记 2.10 - 4.7
- 解决pandas(Python)的报错:unsupported operand type(s) for -: ‘datetime.date’ and ‘Timestamp’
- EOS:一些必要的知识与常见错误:cloes工具(杂谈)1
- 信息安全等级保护定级备案流程
- 在IINA播放器上观看直播:IINA+ for Mac
- 大人小孩都适用的口才训练方法
- TCP三次握手、四次挥手以及TIME_WAIT详解