一些代码问题
开始阅读代码 代码地址:https://github.com/longcw/yolo2-pytorch 论文地址:https://arxiv.org/abs/1612.08242 关于YOLOv2代码的阅读,因为一些开源的代码实现年代久远,某些工具版本不匹配,难以调试,增加了学习难度。So,我计划重点学习一下YOLOv3以及YOLOv5的代码。 1.关于路径问题 1ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) 这里使用os模块是为了跨平台兼容性,os.path 模块确保路径在 Windows 和 Unix 系统上都能正确处理,可以学习一下。 __file__ : 这是一个 Python 的内置变量,表示当前脚本的文件路径。例如,如果你在运行一个名为 script.py 的文件,__file__ 的值可能是...
YOLO源码学习过程-YOLOv2(二)
4.Some details about Dimension Clusters 前文提到了YOLOv2 引入了锚框机制,希望通过预定义的锚框尺寸来更好地适应训练数据中目标的真实边界框(Ground Truth Boxes)。为了让锚框更贴合数据集,作者使用 K-Means 聚类来分析训练集中边界框的宽高分布,从而自动生成一组“先验框”(Priors)。但关键在于,聚类的目标是什么?如何定义“相似性”? 标准的K-means算法步骤: 12341.随机选择K个样本作为初始簇中心2.针对数据集中每个样本,计算它到K个初始簇中心的距离,并将其分到距离最小的聚类中心所对应的类中3.针对每个类别,重新计算它的聚类中心4.重复上面的步骤2、3,直到达到某个终止条件(迭代次数、最小误差变化) 上面所提到的,计算每一个样本到K个初始簇中心的**距离。标准的 K-Means 聚类使用欧几里得距离**作为度量,例如对于边界框的宽高 (w, h) 和聚类中心 (wc,hcw_c, h_cwc,hc),距离计算为: d=(w−wc)2+(h−hc)2d = \sqrt{(w -...
YOLO源码学习过程-YOLOv2(一)
学习YOLOv2源码(一) 记录学习YOLOv2论文,原理以及阅读理解代码过程。 至于为什么不从YOLOv1开始学习呢,是因为学习YOLOv1的时候,本博客还没建立,所以没有系统的写笔记,也懒得重新写了,哈哈。 论文地址:[1612.08242] YOLO9000: Better, Faster, Stronger (arxiv.org) 项目主页:YOLO: Real-Time Object Detection (pjreddie.com) 1.Batch Normalization 的基本原理 Batch Normalization(BN)层通过标准化每一层的输入(均值为 0,方差为 1),在训练阶段加速模型收敛、提升性能)、允许更高学习率、提供正则化效果(减少 Dropout 依赖)并增强稳定性,支持 YOLOv2 的多尺度训练和 Darknet-19 网络的高效训练;在测试阶段则退化为固定线性变换,确保推理一致性,整体上显著优化了模型的训练效率和检测精度。 BN 的核心思想是对每一层的输入进行标准化处理,使其均值为 0,方差为...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start Create a new post 1$ hexo new "My New Post" More info: Writing Run server 1$ hexo server More info: Server Generate static files 1$ hexo generate More info: Generating Deploy to remote sites 1$ hexo deploy More info: Deployment